summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/field_select.s970
-rwxr-xr-xasm/high_scores.s7055
-rwxr-xr-xasm/intro.s7283
-rwxr-xr-xasm/options.s2841
-rwxr-xr-xasm/pokedex.s9472
-rwxr-xr-xasm/rom_1068C.s348
-rwxr-xr-xasm/rom_11B9C.s (renamed from asm/main.s)38126
-rwxr-xr-xasm/rom_24C.s4503
-rwxr-xr-xasm/rom_25A4.s810
-rwxr-xr-xasm/rom_2C58.s2085
-rwxr-xr-xasm/rom_528AC.s529
-rwxr-xr-xasm/titlescreen.s2277
-rwxr-xr-xdata/rom.s18
-rwxr-xr-xld_script.txt13
14 files changed, 38206 insertions, 38124 deletions
diff --git a/asm/field_select.s b/asm/field_select.s
new file mode 100755
index 0000000..28ad002
--- /dev/null
+++ b/asm/field_select.s
@@ -0,0 +1,970 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start FieldSelectMain
+FieldSelectMain: @ 0x08008AD4
+ push {lr}
+ ldr r1, _08008AEC @ =0x080792C0
+ ldr r0, _08008AF0 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008AEC: .4byte 0x080792C0
+_08008AF0: .4byte 0x0200B0C0
+
+ thumb_func_start LoadFieldSelectGraphics
+LoadFieldSelectGraphics: @ 0x08008AF4
+ push {r4, lr}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _08008BD4 @ =0x04000008
+ movs r0, #4
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08008BD8 @ =0x0400000A
+ adds r3, #5
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r3, #0xfb
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08008BDC @ =0x0400000C
+ adds r3, #0xa
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _08008BE0 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r4, #0x16]
+ ldr r0, _08008BE4 @ =0x040000D4
+ ldr r1, _08008BE8 @ =gFieldSelectBGPals
+ str r1, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r3, _08008BEC @ =0x80000100
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08008BF0 @ =gFieldSelectWindow_Gfx
+ str r1, [r0]
+ ldr r1, _08008BF4 @ =0x06004000
+ str r1, [r0, #4]
+ ldr r1, _08008BF8 @ =0x80000A00
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08008BFC @ =gFieldSelectMiniFields_Gfx
+ str r1, [r0]
+ ldr r1, _08008C00 @ =0x06008000
+ str r1, [r0, #4]
+ ldr r1, _08008C04 @ =0x80001C00
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08008C08 @ =0x080A2400
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r2, _08008C0C @ =0x80000400
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08008C10 @ =gFieldSelectFrameShadowTilemap
+ str r1, [r0]
+ ldr r1, _08008C14 @ =0x06000800
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08008C18 @ =gFieldSelectWindowTilemap
+ str r1, [r0]
+ ldr r1, _08008C1C @ =0x06001000
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08008C20 @ =gFieldSelectSpritePals
+ str r1, [r0]
+ ldr r1, _08008C24 @ =0x05000200
+ str r1, [r0, #4]
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08008C28 @ =gFieldSelectSpriteGfx
+ str r1, [r0]
+ ldr r1, _08008C2C @ =0x06010000
+ str r1, [r0, #4]
+ ldr r1, _08008C30 @ =0x80002010
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ bl sub_CBC
+ bl sub_8C38
+ ldr r0, _08008C34 @ =sub_8F94 + 1
+ bl sub_FD5C
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+ movs r0, #3
+ bl m4aSongNumStart
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008BD4: .4byte 0x04000008
+_08008BD8: .4byte 0x0400000A
+_08008BDC: .4byte 0x0400000C
+_08008BE0: .4byte 0x0200B0C0
+_08008BE4: .4byte 0x040000D4
+_08008BE8: .4byte gFieldSelectBGPals
+_08008BEC: .4byte 0x80000100
+_08008BF0: .4byte gFieldSelectWindow_Gfx
+_08008BF4: .4byte 0x06004000
+_08008BF8: .4byte 0x80000A00
+_08008BFC: .4byte gFieldSelectMiniFields_Gfx
+_08008C00: .4byte 0x06008000
+_08008C04: .4byte 0x80001C00
+_08008C08: .4byte 0x080A2400
+_08008C0C: .4byte 0x80000400
+_08008C10: .4byte gFieldSelectFrameShadowTilemap
+_08008C14: .4byte 0x06000800
+_08008C18: .4byte gFieldSelectWindowTilemap
+_08008C1C: .4byte 0x06001000
+_08008C20: .4byte gFieldSelectSpritePals
+_08008C24: .4byte 0x05000200
+_08008C28: .4byte gFieldSelectSpriteGfx
+_08008C2C: .4byte 0x06010000
+_08008C30: .4byte 0x80002010
+_08008C34: .4byte sub_8F94 + 1
+
+ thumb_func_start sub_8C38
+sub_8C38: @ 0x08008C38
+ ldr r2, _08008C70 @ =0x02002838
+ movs r3, #0
+ movs r1, #0
+ movs r0, #2
+ strh r0, [r2]
+ movs r0, #3
+ strh r0, [r2, #2]
+ strh r1, [r2, #4]
+ movs r0, #1
+ strh r0, [r2, #6]
+ strh r1, [r2, #8]
+ strh r1, [r2, #0xa]
+ strh r1, [r2, #0xc]
+ strh r1, [r2, #0xe]
+ strh r1, [r2, #0x16]
+ strh r1, [r2, #0x12]
+ strb r3, [r2, #0x14]
+ ldr r0, _08008C74 @ =0x0200B134
+ adds r1, r0, #0
+ adds r1, #0xce
+ ldrb r1, [r1]
+ strb r1, [r2, #0x10]
+ subs r0, #0x74
+ strb r3, [r0, #4]
+ ldr r0, _08008C78 @ =0x02002850
+ strb r3, [r0]
+ bx lr
+ .align 2, 0
+_08008C70: .4byte 0x02002838
+_08008C74: .4byte 0x0200B134
+_08008C78: .4byte 0x02002850
+
+ thumb_func_start sub_8C7C
+sub_8C7C: @ 0x08008C7C
+ push {r4, r5, r6, r7, lr}
+ bl sub_8F94
+ ldr r7, _08008CC4 @ =0x0200B0C0
+ ldrh r1, [r7, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0xf
+ bne _08008CA0
+ ldr r1, _08008CC8 @ =0x02002850
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _08008CCC @ =0x02002838
+ movs r0, #0
+ strh r0, [r1, #0x16]
+ ldrb r0, [r7, #3]
+ adds r0, #1
+ strb r0, [r7, #3]
+_08008CA0:
+ ldr r0, _08008CC8 @ =0x02002850
+ movs r6, #0
+ ldrsb r6, [r0, r6]
+ cmp r6, #0
+ beq _08008CAC
+ b _08008F56
+_08008CAC:
+ ldr r5, _08008CCC @ =0x02002838
+ ldrh r4, [r5, #0xa]
+ adds r3, r5, #0
+ cmp r4, #1
+ bne _08008CB8
+ b _08008E2E
+_08008CB8:
+ cmp r4, #1
+ bgt _08008CD0
+ cmp r4, #0
+ beq _08008CDC
+ b _08008F4C
+ .align 2, 0
+_08008CC4: .4byte 0x0200B0C0
+_08008CC8: .4byte 0x02002850
+_08008CCC: .4byte 0x02002838
+_08008CD0:
+ cmp r4, #2
+ beq _08008DC2
+ cmp r4, #3
+ bne _08008CDA
+ b _08008F08
+_08008CDA:
+ b _08008F4C
+_08008CDC:
+ ldrh r1, [r7, #0x18]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _08008CFC
+ ldrh r4, [r5, #8]
+ cmp r4, #1
+ bne _08008D1A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ strh r6, [r5, #8]
+ strh r6, [r5, #4]
+ strh r4, [r5, #6]
+ strh r4, [r5, #0xa]
+ b _08008D1A
+_08008CFC:
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _08008D1A
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ bne _08008D1A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ movs r0, #1
+ strh r0, [r5, #8]
+ strh r0, [r5, #4]
+ strh r6, [r5, #6]
+ strh r0, [r5, #0xa]
+_08008D1A:
+ ldr r2, _08008D50 @ =0x0200B0C0
+ ldrh r1, [r2, #0x18]
+ movs r4, #1
+ adds r0, r4, #0
+ ands r0, r1
+ adds r5, r2, #0
+ cmp r0, #0
+ beq _08008D66
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r1, _08008D54 @ =0x02002838
+ movs r2, #0
+ movs r3, #2
+ strh r3, [r1, #0xa]
+ movs r0, #1
+ strb r0, [r1, #0x14]
+ strh r2, [r1, #0xe]
+ ldrh r0, [r1, #8]
+ cmp r0, #0
+ bne _08008D58
+ strh r2, [r1, #4]
+ strh r4, [r1, #6]
+ strh r3, [r1]
+ movs r0, #3
+ b _08008D62
+ .align 2, 0
+_08008D50: .4byte 0x0200B0C0
+_08008D54: .4byte 0x02002838
+_08008D58:
+ strh r4, [r1, #4]
+ strh r2, [r1, #6]
+ movs r0, #7
+ strh r0, [r1]
+ movs r0, #0xb
+_08008D62:
+ strh r0, [r1, #2]
+ strh r2, [r1, #0xc]
+_08008D66:
+ ldrh r1, [r5, #0x18]
+ movs r4, #2
+ adds r0, r4, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08008DAA
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldrb r0, [r5, #3]
+ adds r0, #1
+ movs r3, #0
+ strb r0, [r5, #3]
+ ldr r1, _08008D98 @ =0x02002838
+ movs r2, #1
+ strh r2, [r1, #0x16]
+ ldrh r0, [r1, #8]
+ cmp r0, #0
+ bne _08008D9C
+ strh r3, [r1, #4]
+ strh r2, [r1, #6]
+ strh r4, [r1]
+ movs r0, #3
+ b _08008DA6
+ .align 2, 0
+_08008D98: .4byte 0x02002838
+_08008D9C:
+ strh r2, [r1, #4]
+ strh r3, [r1, #6]
+ movs r0, #7
+ strh r0, [r1]
+ movs r0, #0xb
+_08008DA6:
+ strh r0, [r1, #2]
+ strh r3, [r1, #0xc]
+_08008DAA:
+ ldr r1, _08008DB8 @ =0x0200B0C0
+ ldrb r0, [r1, #4]
+ cmp r0, #1
+ bhi _08008DBC
+ movs r0, #0
+ strb r0, [r1, #6]
+ b _08008F4C
+ .align 2, 0
+_08008DB8: .4byte 0x0200B0C0
+_08008DBC:
+ movs r0, #1
+ strb r0, [r1, #6]
+ b _08008F4C
+_08008DC2:
+ ldrh r1, [r7, #0x18]
+ movs r0, #0x30
+ ands r0, r1
+ cmp r0, #0
+ beq _08008DDA
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrb r1, [r5, #0x10]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r5, #0x10]
+_08008DDA:
+ ldrh r1, [r7, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08008E00
+ movs r0, #0x65
+ bl m4aSongNumStart
+ strh r6, [r5, #0xe]
+ strh r6, [r5, #0xc]
+ ldrb r0, [r5, #0x10]
+ movs r2, #0xa1
+ lsls r2, r2, #1
+ adds r1, r7, r2
+ strb r0, [r1]
+ bl sub_52B30
+ movs r0, #3
+ strh r0, [r5, #0xa]
+_08008E00:
+ ldrh r0, [r7, #0x18]
+ ands r4, r0
+ cmp r4, #0
+ beq _08008E12
+ movs r0, #0x66
+ bl m4aSongNumStart
+ strb r6, [r5, #0x14]
+ strh r6, [r5, #0xa]
+_08008E12:
+ ldrh r0, [r5, #0xe]
+ adds r0, #1
+ strh r0, [r5, #0xe]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ bgt _08008E22
+ b _08008F4C
+_08008E22:
+ strh r6, [r5, #0xe]
+ ldrh r1, [r5, #0x12]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r5, #0x12]
+ b _08008F4C
+_08008E2E:
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ bne _08008E5C
+ ldr r2, _08008E58 @ =0x086A6B14
+ movs r4, #0xc
+ ldrsh r0, [r5, r4]
+ movs r1, #4
+ subs r0, r1, r0
+ lsls r0, r0, #1
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ strh r0, [r5]
+ movs r4, #0xc
+ ldrsh r0, [r5, r4]
+ subs r1, r1, r0
+ lsls r1, r1, #1
+ adds r2, #0xa
+ adds r1, r1, r2
+ ldrh r0, [r1]
+ b _08008E76
+ .align 2, 0
+_08008E58: .4byte 0x086A6B14
+_08008E5C:
+ ldr r1, _08008E94 @ =0x086A6B14
+ movs r2, #0xc
+ ldrsh r0, [r5, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5]
+ movs r4, #0xc
+ ldrsh r0, [r5, r4]
+ lsls r0, r0, #1
+ adds r1, #0xa
+ adds r0, r0, r1
+ ldrh r0, [r0]
+_08008E76:
+ strh r0, [r5, #2]
+ ldr r0, _08008E98 @ =0x0200B0C0
+ ldr r1, [r0, #0x4c]
+ movs r0, #1
+ ands r1, r0
+ cmp r1, #0
+ bne _08008EA0
+ ldrh r2, [r3, #0xc]
+ movs r4, #0xc
+ ldrsh r0, [r3, r4]
+ cmp r0, #3
+ bgt _08008E9C
+ adds r0, r2, #1
+ strh r0, [r3, #0xc]
+ b _08008EA0
+ .align 2, 0
+_08008E94: .4byte 0x086A6B14
+_08008E98: .4byte 0x0200B0C0
+_08008E9C:
+ strh r1, [r3, #0xc]
+ strh r1, [r3, #0xa]
+_08008EA0:
+ ldr r0, _08008ED0 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _08008ED8
+ ldr r4, _08008ED4 @ =0x02002838
+ ldrh r5, [r4, #8]
+ cmp r5, #1
+ bne _08008F4C
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ movs r0, #0
+ strh r0, [r4, #8]
+ strh r0, [r4, #4]
+ strh r5, [r4, #6]
+ movs r1, #2
+ strh r1, [r4]
+ movs r1, #3
+ strh r1, [r4, #2]
+ strh r0, [r4, #0xc]
+ strh r0, [r4, #0xa]
+ b _08008F4C
+ .align 2, 0
+_08008ED0: .4byte 0x0200B0C0
+_08008ED4: .4byte 0x02002838
+_08008ED8:
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _08008F4C
+ ldr r4, _08008F04 @ =0x02002838
+ ldrh r5, [r4, #8]
+ cmp r5, #0
+ bne _08008F4C
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ movs r0, #1
+ strh r0, [r4, #8]
+ strh r0, [r4, #4]
+ strh r5, [r4, #6]
+ movs r0, #7
+ strh r0, [r4]
+ movs r0, #0xb
+ strh r0, [r4, #2]
+ strh r5, [r4, #0xc]
+ strh r5, [r4, #0xa]
+ b _08008F4C
+ .align 2, 0
+_08008F04: .4byte 0x02002838
+_08008F08:
+ ldrh r0, [r5, #0xe]
+ adds r0, #1
+ strh r0, [r5, #0xe]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _08008F4C
+ strh r6, [r5, #0xe]
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ bne _08008F28
+ ldrh r1, [r5, #4]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r5, #4]
+ b _08008F30
+_08008F28:
+ ldrh r1, [r5, #6]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r5, #6]
+_08008F30:
+ ldr r1, _08008F5C @ =0x02002838
+ ldrh r0, [r1, #0xc]
+ adds r0, #1
+ strh r0, [r1, #0xc]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #5
+ ble _08008F4C
+ movs r0, #2
+ strh r0, [r1, #0x16]
+ ldr r1, _08008F60 @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+_08008F4C:
+ ldr r0, _08008F60 @ =0x0200B0C0
+ ldr r1, _08008F5C @ =0x02002838
+ ldrh r1, [r1, #8]
+ strb r1, [r0, #4]
+ strb r1, [r0, #5]
+_08008F56:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008F5C: .4byte 0x02002838
+_08008F60: .4byte 0x0200B0C0
+
+ thumb_func_start sub_8F64
+sub_8F64: @ 0x08008F64
+ push {lr}
+ ldr r0, _08008F88 @ =sub_8F94 + 1
+ bl sub_FE04
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08008F8C @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, _08008F90 @ =0x02002838
+ ldrh r0, [r0, #0x16]
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008F88: .4byte sub_8F94 + 1
+_08008F8C: .4byte 0x0201A4B4
+_08008F90: .4byte 0x02002838
+
+ thumb_func_start sub_8F94
+sub_8F94: @ 0x08008F94
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r5, _08009254 @ =0x0200B0C0
+ ldrh r0, [r5, #0x38]
+ ldr r0, _08009258 @ =0x00000642
+ strh r0, [r5, #0x38]
+ ldrh r0, [r5, #0x3a]
+ ldr r0, _0800925C @ =0x00000808
+ strh r0, [r5, #0x3a]
+ ldr r1, _08009260 @ =0x04000050
+ ldrh r0, [r5, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r5, #0x3a]
+ strh r0, [r1]
+ movs r0, #0xbe
+ lsls r0, r0, #2
+ adds r6, r5, r0
+ movs r1, #0xec
+ lsls r1, r1, #2
+ adds r1, r1, r5
+ mov sb, r1
+ ldr r4, _08009264 @ =0x02002838
+ ldrh r0, [r4]
+ movs r2, #0xb8
+ muls r0, r2, r0
+ adds r0, r0, r6
+ str r0, [sp]
+ ldrh r0, [r4, #2]
+ muls r0, r2, r0
+ adds r0, r0, r6
+ mov sl, r0
+ ldrb r1, [r4, #0x10]
+ lsls r1, r1, #1
+ movs r3, #0x12
+ ldrsh r0, [r4, r3]
+ adds r0, #0xc
+ adds r1, r1, r0
+ adds r0, r1, #0
+ muls r0, r2, r0
+ adds r0, r0, r6
+ mov r8, r0
+ ldrh r0, [r4, #4]
+ strh r0, [r6]
+ ldrh r0, [r4, #6]
+ mov r7, sb
+ strh r0, [r7]
+ movs r0, #1
+ ldr r1, [sp]
+ strh r0, [r1]
+ mov r2, sl
+ strh r0, [r2]
+ movs r0, #0x14
+ ldrsb r0, [r4, r0]
+ mov r3, r8
+ strh r0, [r3]
+ ldr r0, _08009268 @ =0x086A6AD4
+ movs r1, #0x10
+ adds r2, r6, #0
+ bl sub_358
+ ldrh r0, [r4, #4]
+ cmp r0, #1
+ bne _08009066
+ movs r0, #0x25
+ strh r0, [r6, #2]
+ movs r0, #0x18
+ strh r0, [r6, #4]
+ ldr r7, _0800926C @ =0x03005000
+ movs r0, #0xc0
+ lsls r0, r0, #2
+ adds r4, r5, r0
+ ldr r1, _08009270 @ =0x000001FF
+ mov ip, r1
+ movs r5, #1
+_08009032:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ mov r0, ip
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08009274 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _08009032
+_08009066:
+ ldr r0, _08009264 @ =0x02002838
+ ldrh r1, [r0, #6]
+ cmp r1, #1
+ bne _080090BC
+ movs r0, #0x8d
+ mov r3, sb
+ strh r0, [r3, #2]
+ movs r0, #0x18
+ strh r0, [r3, #4]
+ ldr r6, _0800926C @ =0x03005000
+ ldr r7, _08009274 @ =0xFFFFFE00
+ mov ip, r7
+ mov r4, sb
+ adds r4, #8
+ movs r5, #1
+_08009084:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, sb
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r0, _08009270 @ =0x000001FF
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r2, sb
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _08009084
+_080090BC:
+ movs r0, #0x20
+ ldr r7, [sp]
+ strh r0, [r7, #2]
+ strh r0, [r7, #4]
+ ldr r1, _08009264 @ =0x02002838
+ ldrh r0, [r1]
+ lsls r0, r0, #2
+ ldr r2, _08009268 @ =0x086A6AD4
+ adds r0, r0, r2
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r3, [r6]
+ cmp r5, r3
+ bge _0800913A
+ movs r7, #0xd
+ rsbs r7, r7, #0
+ mov ip, r7
+ ldr r0, _08009274 @ =0xFFFFFE00
+ mov sb, r0
+ ldr r4, [sp]
+ adds r4, #8
+_080090E6:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ ldr r1, _0800926C @ =0x03005000
+ adds r2, r2, r1
+ ldrb r1, [r2, #1]
+ mov r0, ip
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r2, _0800926C @ =0x03005000
+ adds r3, r3, r2
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, [sp]
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08009270 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ ldr r3, _0800926C @ =0x03005000
+ adds r1, r1, r3
+ ldr r7, [sp]
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r3, [r6]
+ cmp r5, r3
+ blt _080090E6
+_0800913A:
+ movs r0, #0x88
+ mov r7, sl
+ strh r0, [r7, #2]
+ movs r0, #0x20
+ strh r0, [r7, #4]
+ ldr r1, _08009264 @ =0x02002838
+ ldrh r0, [r1, #2]
+ lsls r0, r0, #2
+ ldr r2, _08009268 @ =0x086A6AD4
+ adds r0, r0, r2
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r3, [r6]
+ cmp r5, r3
+ bge _080091BA
+ movs r7, #0xd
+ rsbs r7, r7, #0
+ mov ip, r7
+ ldr r0, _08009274 @ =0xFFFFFE00
+ mov sb, r0
+ mov r4, sl
+ adds r4, #8
+_08009166:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ ldr r1, _0800926C @ =0x03005000
+ adds r2, r2, r1
+ ldrb r1, [r2, #1]
+ mov r0, ip
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r2, _0800926C @ =0x03005000
+ adds r3, r3, r2
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ mov r2, sl
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08009270 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ ldr r3, _0800926C @ =0x03005000
+ adds r1, r1, r3
+ mov r7, sl
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r3, [r6]
+ cmp r5, r3
+ blt _08009166
+_080091BA:
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _08009234
+ ldr r1, _08009278 @ =0x086A6B28
+ ldr r2, _08009264 @ =0x02002838
+ ldrh r0, [r2, #8]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ strh r0, [r7, #2]
+ ldrh r0, [r2, #8]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrh r0, [r0, #2]
+ strh r0, [r7, #4]
+ ldr r6, _0800926C @ =0x03005000
+ movs r3, #0xd
+ rsbs r3, r3, #0
+ mov sb, r3
+ ldr r7, _08009274 @ =0xFFFFFE00
+ mov ip, r7
+ mov r4, r8
+ adds r4, #8
+ movs r5, #4
+_080091EC:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #1]
+ mov r0, sb
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, r8
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08009270 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r3, r8
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _080091EC
+_08009234:
+ movs r0, #0
+ ldr r1, [sp]
+ strh r0, [r1]
+ mov r2, sl
+ strh r0, [r2]
+ mov r3, r8
+ strh r0, [r3]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009254: .4byte 0x0200B0C0
+_08009258: .4byte 0x00000642
+_0800925C: .4byte 0x00000808
+_08009260: .4byte 0x04000050
+_08009264: .4byte 0x02002838
+_08009268: .4byte 0x086A6AD4
+_0800926C: .4byte 0x03005000
+_08009270: .4byte 0x000001FF
+_08009274: .4byte 0xFFFFFE00
+_08009278: .4byte 0x086A6B28
diff --git a/asm/high_scores.s b/asm/high_scores.s
new file mode 100755
index 0000000..4aa3124
--- /dev/null
+++ b/asm/high_scores.s
@@ -0,0 +1,7055 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start HighScoresMain
+HighScoresMain: @ 0x0800CE48
+ push {lr}
+ ldr r1, _0800CE60 @ =0x080793E8
+ ldr r0, _0800CE64 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CE60: .4byte 0x080793E8
+_0800CE64: .4byte 0x0200B0C0
+
+ thumb_func_start sub_CE68_Main
+sub_CE68_Main: @ 0x0800CE68
+ push {lr}
+ ldr r1, _0800CE80 @ =0x08079424
+ ldr r0, _0800CE84 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CE80: .4byte 0x08079424
+_0800CE84: .4byte 0x0200B0C0
+
+ thumb_func_start sub_CE88
+sub_CE88: @ 0x0800CE88
+ push {r4, r5, r6, r7, lr}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800CF68 @ =0x0400000C
+ ldr r3, _0800CF6C @ =0x00004006
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800CF70 @ =0x0400000E
+ ldr r3, _0800CF74 @ =0x0000420F
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r7, _0800CF78 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r7, #0x16]
+ ldr r4, _0800CF7C @ =0x040000D4
+ ldr r0, _0800CF80 @ =0x0809DBE0
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _0800CF84 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800CF88 @ =0x080957A0
+ str r0, [r4]
+ ldr r0, _0800CF8C @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _0800CF90 @ =0x80002400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800CF94 @ =0x0809AFC0
+ str r0, [r4]
+ ldr r0, _0800CF98 @ =0x0600C000
+ str r0, [r4, #4]
+ ldr r0, _0800CF9C @ =0x80001600
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800CFA0 @ =0x080947A0
+ str r0, [r4]
+ ldr r6, _0800CFA4 @ =0x03005C00
+ str r6, [r4, #4]
+ ldr r5, _0800CFA8 @ =0x80000800
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800CFAC @ =0x08099FC0
+ str r0, [r4]
+ ldr r0, _0800CFB0 @ =0x06001000
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800CFB4 @ =0x0809DDE0
+ str r0, [r4]
+ ldr r0, _0800CFB8 @ =0x05000200
+ str r0, [r4, #4]
+ ldr r0, _0800CFBC @ =0x80000080
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800CFC0 @ =0x0809DFE0
+ str r0, [r4]
+ ldr r0, _0800CFC4 @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _0800CFC8 @ =0x80002210
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_CFD4
+ bl sub_EE64
+ str r6, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r4, _0800CFCC @ =0x0202C588
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _0800CF50
+ movs r0, #9
+ bl m4aSongNumStart
+_0800CF50:
+ movs r0, #0
+ strh r0, [r4]
+ bl sub_CBC
+ bl sub_24C
+ ldr r0, _0800CFD0 @ =0x02002858
+ ldrb r0, [r0, #0xa]
+ strb r0, [r7, #3]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CF68: .4byte 0x0400000C
+_0800CF6C: .4byte 0x00004006
+_0800CF70: .4byte 0x0400000E
+_0800CF74: .4byte 0x0000420F
+_0800CF78: .4byte 0x0200B0C0
+_0800CF7C: .4byte 0x040000D4
+_0800CF80: .4byte 0x0809DBE0
+_0800CF84: .4byte 0x80000100
+_0800CF88: .4byte 0x080957A0
+_0800CF8C: .4byte 0x06004000
+_0800CF90: .4byte 0x80002400
+_0800CF94: .4byte 0x0809AFC0
+_0800CF98: .4byte 0x0600C000
+_0800CF9C: .4byte 0x80001600
+_0800CFA0: .4byte 0x080947A0
+_0800CFA4: .4byte 0x03005C00
+_0800CFA8: .4byte 0x80000800
+_0800CFAC: .4byte 0x08099FC0
+_0800CFB0: .4byte 0x06001000
+_0800CFB4: .4byte 0x0809DDE0
+_0800CFB8: .4byte 0x05000200
+_0800CFBC: .4byte 0x80000080
+_0800CFC0: .4byte 0x0809DFE0
+_0800CFC4: .4byte 0x06010000
+_0800CFC8: .4byte 0x80002210
+_0800CFCC: .4byte 0x0202C588
+_0800CFD0: .4byte 0x02002858
+
+ thumb_func_start sub_CFD4
+sub_CFD4: @ 0x0800CFD4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ movs r7, #0
+ ldr r0, _0800D0B0 @ =0x02002858
+ mov r8, r0
+ ldr r1, _0800D0B4 @ =0x0202C610
+ mov sl, r1
+ ldr r2, _0800D0B8 @ =0x0200B134
+ mov sb, r2
+ movs r3, #0
+ mov ip, r3
+_0800CFF0:
+ movs r3, #0
+ mov r4, ip
+ movs r6, #0
+_0800CFF6:
+ adds r0, r4, #0
+ adds r0, #0xe4
+ adds r0, r6, r0
+ mov r1, sb
+ adds r5, r0, r1
+ adds r0, r6, r4
+ mov r1, sl
+ adds r2, r0, r1
+ movs r1, #5
+_0800D008:
+ ldm r5!, {r0}
+ stm r2!, {r0}
+ subs r1, #1
+ cmp r1, #0
+ bge _0800D008
+ adds r6, #0x18
+ adds r3, #1
+ cmp r3, #7
+ ble _0800CFF6
+ movs r2, #0xc0
+ add ip, r2
+ adds r7, #1
+ cmp r7, #1
+ ble _0800CFF0
+ movs r7, #0
+ ldr r6, _0800D0BC @ =0x0202C550
+ ldr r5, _0800D0B4 @ =0x0202C610
+_0800D02A:
+ lsls r0, r7, #1
+ adds r4, r7, #1
+ adds r0, r0, r7
+ lsls r1, r0, #3
+ lsls r0, r0, #6
+ adds r2, r0, r5
+ adds r1, r1, r6
+ movs r3, #5
+_0800D03A:
+ ldm r2!, {r0}
+ stm r1!, {r0}
+ subs r3, #1
+ cmp r3, #0
+ bge _0800D03A
+ adds r7, r4, #0
+ cmp r7, #1
+ ble _0800D02A
+ movs r3, #0
+ movs r2, #0
+ mov r4, r8
+ strh r2, [r4, #0x10]
+ strh r2, [r4, #0x12]
+ strh r2, [r4, #0x14]
+ strh r2, [r4, #0x18]
+ strh r2, [r4, #0x1a]
+ strh r2, [r4, #0x1e]
+ strh r2, [r4, #0x1c]
+ strh r2, [r4, #0x20]
+ strh r2, [r4, #0x22]
+ mov r0, r8
+ adds r0, #0x25
+ strb r3, [r0]
+ mov r1, r8
+ adds r1, #0x26
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _0800D0C0 @ =0x0201B178
+ strb r3, [r1]
+ ldr r4, _0800D0C4 @ =0x0202BEBC
+ strb r0, [r4]
+ ldr r0, _0800D0C8 @ =0x0201C18C
+ strb r3, [r0]
+ ldr r1, _0800D0CC @ =0x02002884
+ strb r3, [r1]
+ ldr r4, _0800D0D0 @ =0x02002885
+ strb r3, [r4]
+ ldr r1, _0800D0D4 @ =0x0202C588
+ movs r4, #0
+ ldrsh r0, [r1, r4]
+ cmp r0, #1
+ beq _0800D090
+ b _0800D1C0
+_0800D090:
+ ldr r0, _0800D0D8 @ =0x0200B0C0
+ ldr r1, [r0, #0x5c]
+ mov r4, r8
+ str r1, [r4]
+ ldr r1, [r0, #0x58]
+ str r1, [r4, #4]
+ ldrb r1, [r0, #4]
+ cmp r1, #1
+ bne _0800D0E4
+ strb r1, [r4, #0xb]
+ movs r0, #0xf0
+ ldr r2, _0800D0DC @ =0x02002882
+ strh r0, [r2]
+ ldr r3, _0800D0E0 @ =0x02002880
+ strh r1, [r3]
+ b _0800D0F6
+ .align 2, 0
+_0800D0B0: .4byte 0x02002858
+_0800D0B4: .4byte 0x0202C610
+_0800D0B8: .4byte 0x0200B134
+_0800D0BC: .4byte 0x0202C550
+_0800D0C0: .4byte 0x0201B178
+_0800D0C4: .4byte 0x0202BEBC
+_0800D0C8: .4byte 0x0201C18C
+_0800D0CC: .4byte 0x02002884
+_0800D0D0: .4byte 0x02002885
+_0800D0D4: .4byte 0x0202C588
+_0800D0D8: .4byte 0x0200B0C0
+_0800D0DC: .4byte 0x02002882
+_0800D0E0: .4byte 0x02002880
+_0800D0E4:
+ mov r4, r8
+ strb r3, [r4, #0xb]
+ ldr r0, _0800D178 @ =0x02002882
+ strh r2, [r0]
+ movs r1, #1
+ rsbs r1, r1, #0
+ adds r0, r1, #0
+ ldr r2, _0800D17C @ =0x02002880
+ strh r0, [r2]
+_0800D0F6:
+ ldr r4, _0800D180 @ =0x02002858
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldrb r2, [r4, #0xb]
+ bl sub_F3DC
+ adds r3, r0, #0
+ str r3, [r4, #0xc]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r3, r0
+ beq _0800D14A
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldrb r2, [r4, #0xb]
+ bl sub_F434
+ movs r7, #0
+ ldr r5, _0800D184 @ =0x0202C610
+ adds r3, r4, #0
+ ldr r6, _0800D188 @ =0x0201A500
+ adds r4, r6, #0
+_0800D122:
+ lsls r2, r7, #2
+ ldr r1, [r3, #0xc]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r2, r2, r0
+ ldrb r1, [r3, #0xb]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #6
+ adds r2, r2, r0
+ adds r2, r2, r5
+ ldm r4!, {r0}
+ str r0, [r2]
+ adds r7, #1
+ cmp r7, #3
+ ble _0800D122
+ ldr r1, _0800D180 @ =0x02002858
+ ldr r0, [r6]
+ strh r0, [r1, #0x16]
+_0800D14A:
+ bl sub_FD20
+ lsls r0, r0, #0x18
+ asrs r3, r0, #0x18
+ cmp r3, #1
+ bne _0800D1A8
+ ldr r0, _0800D18C @ =0x0202BEB0
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ cmp r2, #0
+ bne _0800D1A0
+ ldr r0, _0800D190 @ =0x0201C18C
+ strb r3, [r0]
+ ldr r1, _0800D194 @ =0x0201A4B8
+ movs r0, #0xb8
+ strh r0, [r1]
+ ldr r0, _0800D198 @ =0x0202C580
+ strb r2, [r0]
+ ldr r0, _0800D19C @ =0x0202BED4
+ strb r2, [r0]
+ ldr r0, _0800D180 @ =0x02002858
+ strb r3, [r0, #0xa]
+ b _0800D1DA
+ .align 2, 0
+_0800D178: .4byte 0x02002882
+_0800D17C: .4byte 0x02002880
+_0800D180: .4byte 0x02002858
+_0800D184: .4byte 0x0202C610
+_0800D188: .4byte 0x0201A500
+_0800D18C: .4byte 0x0202BEB0
+_0800D190: .4byte 0x0201C18C
+_0800D194: .4byte 0x0201A4B8
+_0800D198: .4byte 0x0202C580
+_0800D19C: .4byte 0x0202BED4
+_0800D1A0:
+ ldr r1, _0800D1A4 @ =0x0201C18C
+ b _0800D1AA
+ .align 2, 0
+_0800D1A4: .4byte 0x0201C18C
+_0800D1A8:
+ ldr r1, _0800D1B8 @ =0x0202BEB0
+_0800D1AA:
+ movs r0, #0
+ strb r0, [r1]
+ ldr r1, _0800D1BC @ =0x02002858
+ movs r0, #2
+ strb r0, [r1, #0xa]
+ b _0800D1DA
+ .align 2, 0
+_0800D1B8: .4byte 0x0202BEB0
+_0800D1BC: .4byte 0x02002858
+_0800D1C0:
+ mov r4, r8
+ strb r3, [r4, #0xb]
+ ldr r0, _0800D200 @ =0x02002882
+ strh r2, [r0]
+ movs r1, #1
+ rsbs r1, r1, #0
+ adds r0, r1, #0
+ ldr r2, _0800D204 @ =0x02002880
+ strh r0, [r2]
+ bl sub_E464
+ movs r0, #3
+ strb r0, [r4, #0xa]
+_0800D1DA:
+ ldr r2, _0800D208 @ =0x0200B0C0
+ ldr r0, _0800D200 @ =0x02002882
+ ldrh r1, [r0]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r4, #0xbc
+ lsls r4, r4, #2
+ adds r0, r2, r4
+ strh r1, [r0]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D200: .4byte 0x02002882
+_0800D204: .4byte 0x02002880
+_0800D208: .4byte 0x0200B0C0
+
+ thumb_func_start sub_D20C
+sub_D20C: @ 0x0800D20C
+ push {r4, r5, lr}
+ ldr r4, _0800D224 @ =0x0202BED4
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ adds r5, r4, #0
+ cmp r0, #1
+ beq _0800D248
+ cmp r0, #1
+ bgt _0800D228
+ cmp r0, #0
+ beq _0800D232
+ b _0800D2E0
+ .align 2, 0
+_0800D224: .4byte 0x0202BED4
+_0800D228:
+ cmp r0, #2
+ beq _0800D290
+ cmp r0, #3
+ beq _0800D2B4
+ b _0800D2E0
+_0800D232:
+ ldr r0, _0800D244 @ =0x02002858
+ movs r1, #0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, #3
+ bne _0800D2E0
+ movs r0, #0x11
+ bl m4aSongNumStart
+ b _0800D2A2
+ .align 2, 0
+_0800D244: .4byte 0x02002858
+_0800D248:
+ ldr r1, _0800D284 @ =0x0201A4B8
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ ldr r0, _0800D288 @ =0x02002858
+ ldrh r2, [r0, #0x18]
+ movs r0, #3
+ ands r2, r0
+ cmp r2, #0
+ bne _0800D26E
+ ldr r3, _0800D28C @ =0x0202C580
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #4
+ ble _0800D26E
+ strb r2, [r3]
+_0800D26E:
+ movs r2, #0
+ ldrsh r0, [r1, r2]
+ cmp r0, #0x50
+ bne _0800D2E0
+ ldr r1, _0800D28C @ =0x0202C580
+ movs r0, #0
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r0, #1
+ strb r0, [r5]
+ b _0800D2E0
+ .align 2, 0
+_0800D284: .4byte 0x0201A4B8
+_0800D288: .4byte 0x02002858
+_0800D28C: .4byte 0x0202C580
+_0800D290:
+ ldr r0, _0800D2AC @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #3
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D2E0
+ ldr r1, _0800D2B0 @ =0x0202C580
+ movs r0, #0
+ strb r0, [r1]
+_0800D2A2:
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ b _0800D2E0
+ .align 2, 0
+_0800D2AC: .4byte 0x0200B0C0
+_0800D2B0: .4byte 0x0202C580
+_0800D2B4:
+ ldr r0, _0800D2F4 @ =0x0201A4B8
+ ldrh r1, [r0]
+ subs r1, #4
+ strh r1, [r0]
+ lsls r1, r1, #0x10
+ asrs r1, r1, #0x10
+ movs r0, #0x18
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bge _0800D2E0
+ ldr r1, _0800D2F8 @ =0x02002858
+ movs r2, #0
+ movs r0, #0
+ strh r0, [r1, #0x18]
+ ldr r1, _0800D2FC @ =0x0202BEB0
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, _0800D300 @ =0x0201C18C
+ strb r2, [r0]
+ ldr r1, _0800D304 @ =0x0200B0C0
+ movs r0, #2
+ strb r0, [r1, #3]
+_0800D2E0:
+ ldr r1, _0800D2F8 @ =0x02002858
+ ldrh r0, [r1, #0x18]
+ adds r0, #1
+ strh r0, [r1, #0x18]
+ bl sub_E860
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D2F4: .4byte 0x0201A4B8
+_0800D2F8: .4byte 0x02002858
+_0800D2FC: .4byte 0x0202BEB0
+_0800D300: .4byte 0x0201C18C
+_0800D304: .4byte 0x0200B0C0
+
+ thumb_func_start sub_D308
+sub_D308: @ 0x0800D308
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #8
+ ldr r4, _0800D32C @ =0x02002858
+ movs r0, #0x1a
+ ldrsh r2, [r4, r0]
+ cmp r2, #0
+ bne _0800D35E
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ bne _0800D330
+ movs r0, #0xa5
+ lsls r0, r0, #1
+ bl m4aSongNumStart
+ movs r0, #0xa0
+ b _0800D35C
+ .align 2, 0
+_0800D32C: .4byte 0x02002858
+_0800D330:
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _0800D354
+ ldr r0, _0800D34C @ =0x000003E7
+ strh r0, [r4, #0x18]
+ strh r2, [r4, #0x1a]
+ movs r0, #9
+ bl m4aSongNumStart
+ ldr r1, _0800D350 @ =0x0200B0C0
+ movs r0, #3
+ strb r0, [r1, #3]
+ b _0800D35E
+ .align 2, 0
+_0800D34C: .4byte 0x000003E7
+_0800D350: .4byte 0x0200B0C0
+_0800D354:
+ ldr r0, _0800D3C8 @ =0x0000014B
+ bl m4aSongNumStart
+ movs r0, #0x5a
+_0800D35C:
+ strh r0, [r4, #0x18]
+_0800D35E:
+ ldr r7, _0800D3CC @ =0x02002858
+ ldrh r0, [r7, #0x14]
+ adds r0, #1
+ movs r1, #0
+ strh r0, [r7, #0x14]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800D3FC
+ strh r1, [r7, #0x14]
+ movs r2, #0x12
+ ldrsh r0, [r7, r2]
+ cmp r0, #0
+ bne _0800D3D4
+ movs r0, #1
+ strh r0, [r7, #0x12]
+ ldrb r2, [r7, #0xb]
+ lsls r0, r2, #1
+ movs r4, #6
+ subs r0, r4, r0
+ ldr r3, _0800D3D0 @ =0x08079870
+ mov r8, r3
+ ldr r1, [r7, #0xc]
+ lsls r1, r1, #2
+ add r1, r8
+ lsls r2, r2, #5
+ ldr r1, [r1]
+ adds r1, r1, r2
+ movs r6, #4
+ str r6, [sp]
+ movs r5, #2
+ str r5, [sp, #4]
+ movs r2, #0
+ movs r3, #0x15
+ bl sub_10618
+ ldrb r1, [r7, #0xb]
+ lsls r0, r1, #1
+ subs r4, r4, r0
+ ldr r0, [r7, #0xc]
+ lsls r0, r0, #2
+ add r0, r8
+ lsls r1, r1, #5
+ ldr r3, [r0]
+ adds r3, r3, r1
+ str r6, [sp]
+ str r5, [sp, #4]
+ movs r0, #0
+ movs r1, #0x17
+ adds r2, r4, #0
+ bl sub_10618
+ b _0800D3FC
+ .align 2, 0
+_0800D3C8: .4byte 0x0000014B
+_0800D3CC: .4byte 0x02002858
+_0800D3D0: .4byte 0x08079870
+_0800D3D4:
+ strh r1, [r7, #0x12]
+ ldrb r1, [r7, #0xb]
+ lsls r0, r1, #1
+ movs r2, #6
+ subs r2, r2, r0
+ ldr r3, _0800D4A0 @ =0x08079870
+ ldr r0, [r7, #0xc]
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ lsls r1, r1, #5
+ ldr r3, [r0]
+ adds r3, r3, r1
+ movs r0, #4
+ str r0, [sp]
+ movs r0, #2
+ str r0, [sp, #4]
+ movs r0, #0
+ movs r1, #0x15
+ bl sub_10618
+_0800D3FC:
+ ldr r4, _0800D4A4 @ =0x02002858
+ ldrh r0, [r4, #0x1e]
+ adds r0, #1
+ movs r5, #0
+ strh r0, [r4, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800D42C
+ strh r5, [r4, #0x1e]
+ ldrb r0, [r4, #0xb]
+ ldr r1, [r4, #0xc]
+ movs r3, #0x1c
+ ldrsh r2, [r4, r3]
+ bl sub_F8B0
+ ldrh r0, [r4, #0x1c]
+ adds r0, #1
+ strh r0, [r4, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _0800D42C
+ strh r5, [r4, #0x1c]
+_0800D42C:
+ ldr r4, _0800D4A4 @ =0x02002858
+ ldrh r0, [r4, #0x1a]
+ adds r0, #1
+ movs r2, #0
+ strh r0, [r4, #0x1a]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r3, #0x18
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ ble _0800D482
+ strh r2, [r4, #0x1a]
+ movs r1, #0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, #1
+ bne _0800D476
+ strh r2, [r4, #0x12]
+ strh r2, [r4, #0x14]
+ ldrb r1, [r4, #0xb]
+ lsls r0, r1, #1
+ movs r2, #6
+ subs r2, r2, r0
+ ldr r3, _0800D4A0 @ =0x08079870
+ ldr r0, [r4, #0xc]
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ lsls r1, r1, #5
+ ldr r3, [r0]
+ adds r3, r3, r1
+ movs r0, #4
+ str r0, [sp]
+ movs r0, #2
+ str r0, [sp, #4]
+ movs r0, #0
+ movs r1, #0x15
+ bl sub_10618
+_0800D476:
+ movs r0, #9
+ bl m4aSongNumStart
+ ldr r1, _0800D4A8 @ =0x0200B0C0
+ movs r0, #4
+ strb r0, [r1, #3]
+_0800D482:
+ ldr r1, _0800D4AC @ =0x040000D4
+ ldr r0, _0800D4B0 @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800D4B4 @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add sp, #8
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D4A0: .4byte 0x08079870
+_0800D4A4: .4byte 0x02002858
+_0800D4A8: .4byte 0x0200B0C0
+_0800D4AC: .4byte 0x040000D4
+_0800D4B0: .4byte 0x03005C00
+_0800D4B4: .4byte 0x80000800
+
+ thumb_func_start sub_D4B8
+sub_D4B8: @ 0x0800D4B8
+ push {r4, lr}
+ bl sub_E464
+ ldr r4, _0800D500 @ =0x0200B0C0
+ ldr r0, [r4, #0x4c]
+ movs r1, #0xc
+ bl __umodsi3
+ cmp r0, #0
+ bne _0800D4E0
+ ldr r1, _0800D504 @ =0x02002858
+ ldrh r2, [r1, #0x1a]
+ movs r0, #1
+ subs r0, r0, r2
+ strh r0, [r1, #0x1a]
+ adds r1, #0x25
+ ldrb r2, [r1]
+ movs r0, #1
+ subs r0, r0, r2
+ strb r0, [r1]
+_0800D4E0:
+ ldrh r1, [r4, #0x18]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D50C
+ ldr r0, _0800D508 @ =0x02002880
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r3, r0, #0
+ cmp r1, r2
+ beq _0800D522
+ strh r2, [r3]
+ b _0800D522
+ .align 2, 0
+_0800D500: .4byte 0x0200B0C0
+_0800D504: .4byte 0x02002858
+_0800D508: .4byte 0x02002880
+_0800D50C:
+ movs r0, #0x10
+ ands r0, r1
+ ldr r3, _0800D53C @ =0x02002880
+ cmp r0, #0
+ beq _0800D522
+ movs r1, #0
+ ldrsh r0, [r3, r1]
+ cmp r0, #1
+ beq _0800D522
+ movs r0, #1
+ strh r0, [r3]
+_0800D522:
+ movs r2, #0
+ ldrsh r0, [r3, r2]
+ cmp r0, #0
+ ble _0800D544
+ ldr r1, _0800D540 @ =0x02002882
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0xef
+ bgt _0800D55A
+ adds r0, r2, #0
+ adds r0, #8
+ b _0800D558
+ .align 2, 0
+_0800D53C: .4byte 0x02002880
+_0800D540: .4byte 0x02002882
+_0800D544:
+ cmp r0, #0
+ bge _0800D55A
+ ldr r1, _0800D608 @ =0x02002882
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _0800D55A
+ adds r0, r2, #0
+ subs r0, #8
+_0800D558:
+ strh r0, [r1]
+_0800D55A:
+ ldr r4, _0800D60C @ =0x0200B0C0
+ ldrh r1, [r4, #0x18]
+ movs r0, #3
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D570
+ movs r0, #0x66
+ bl m4aSongNumStart
+ movs r0, #0xb
+ strb r0, [r4, #3]
+_0800D570:
+ ldrh r1, [r4, #0x18]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D59E
+ ldr r0, _0800D608 @ =0x02002882
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ beq _0800D588
+ cmp r0, #0xf0
+ bne _0800D59E
+_0800D588:
+ movs r0, #0x68
+ bl m4aSongNumStart
+ ldr r1, _0800D610 @ =0x0201B178
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _0800D614 @ =0x0202BEBC
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #5
+ strb r0, [r4, #3]
+_0800D59E:
+ ldr r3, _0800D60C @ =0x0200B0C0
+ ldrh r2, [r3, #0x1c]
+ movs r1, #0x88
+ lsls r1, r1, #2
+ adds r0, r1, #0
+ ands r0, r2
+ adds r4, r3, #0
+ cmp r0, r1
+ bne _0800D620
+ ldrh r1, [r4, #0x18]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D63E
+ ldr r0, _0800D608 @ =0x02002882
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ beq _0800D5CA
+ cmp r0, #0xf0
+ bne _0800D5FC
+_0800D5CA:
+ ldr r2, _0800D618 @ =0x02002884
+ movs r0, #0x28
+ strb r0, [r2]
+ ldr r1, _0800D61C @ =0x02002885
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #3
+ bne _0800D5FC
+ movs r0, #0
+ strb r0, [r1]
+ strb r0, [r2]
+ movs r0, #0x68
+ bl m4aSongNumStart
+ ldr r1, _0800D610 @ =0x0201B178
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _0800D614 @ =0x0202BEBC
+ movs r0, #4
+ strb r0, [r1]
+ movs r0, #0xa
+ strb r0, [r4, #3]
+_0800D5FC:
+ ldr r2, _0800D618 @ =0x02002884
+ ldrb r1, [r2]
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ ldr r4, _0800D60C @ =0x0200B0C0
+ b _0800D628
+ .align 2, 0
+_0800D608: .4byte 0x02002882
+_0800D60C: .4byte 0x0200B0C0
+_0800D610: .4byte 0x0201B178
+_0800D614: .4byte 0x0202BEBC
+_0800D618: .4byte 0x02002884
+_0800D61C: .4byte 0x02002885
+_0800D620:
+ ldr r2, _0800D658 @ =0x02002884
+ ldrb r1, [r2]
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+_0800D628:
+ cmp r0, #0
+ ble _0800D63E
+ subs r0, r1, #1
+ strb r0, [r2]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bgt _0800D63E
+ movs r1, #0
+ strb r1, [r2]
+ ldr r0, _0800D65C @ =0x02002885
+ strb r1, [r0]
+_0800D63E:
+ ldr r0, _0800D660 @ =0x02002882
+ ldrh r1, [r0]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ strh r1, [r0]
+ movs r2, #0xbc
+ lsls r2, r2, #2
+ adds r0, r4, r2
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D658: .4byte 0x02002884
+_0800D65C: .4byte 0x02002885
+_0800D660: .4byte 0x02002882
+
+ thumb_func_start sub_D664
+sub_D664: @ 0x0800D664
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ bl sub_E3A8
+ ldr r4, _0800D6E8 @ =0x02002858
+ ldrh r0, [r4, #0x14]
+ adds r0, #1
+ movs r5, #0
+ strh r0, [r4, #0x14]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xc
+ ble _0800D68C
+ strh r5, [r4, #0x14]
+ ldrh r1, [r4, #0x12]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r4, #0x12]
+_0800D68C:
+ ldrh r0, [r4, #0x1e]
+ adds r0, #1
+ strh r0, [r4, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800D6B8
+ strh r5, [r4, #0x1e]
+ ldrb r0, [r4, #0xb]
+ ldr r1, [r4, #0xc]
+ movs r3, #0x1c
+ ldrsh r2, [r4, r3]
+ bl sub_F8B0
+ ldrh r0, [r4, #0x1c]
+ adds r0, #1
+ strh r0, [r4, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _0800D6B8
+ strh r5, [r4, #0x1c]
+_0800D6B8:
+ ldr r0, _0800D6EC @ =0x0200B0C0
+ ldrh r1, [r0, #0x1c]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D6F0
+ ldr r4, _0800D6E8 @ =0x02002858
+ movs r7, #0x20
+ ldrsh r0, [r4, r7]
+ cmp r0, #0
+ bne _0800D72C
+ movs r0, #0x6b
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0x16]
+ subs r0, #1
+ strh r0, [r4, #0x16]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bge _0800D718
+ movs r0, #0x29
+ strh r0, [r4, #0x16]
+ b _0800D718
+ .align 2, 0
+_0800D6E8: .4byte 0x02002858
+_0800D6EC: .4byte 0x0200B0C0
+_0800D6F0:
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D72C
+ ldr r4, _0800D788 @ =0x02002858
+ movs r7, #0x20
+ ldrsh r5, [r4, r7]
+ cmp r5, #0
+ bne _0800D72C
+ movs r0, #0x6b
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0x16]
+ adds r0, #1
+ strh r0, [r4, #0x16]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x29
+ ble _0800D718
+ strh r5, [r4, #0x16]
+_0800D718:
+ movs r1, #0x16
+ ldrsh r0, [r4, r1]
+ ldr r1, [r4, #0xc]
+ movs r3, #0x10
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, #0xb]
+ bl sub_F670
+ movs r0, #9
+ strh r0, [r4, #0x20]
+_0800D72C:
+ ldr r0, _0800D78C @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D794
+ ldr r4, _0800D788 @ =0x02002858
+ movs r7, #0x10
+ ldrsh r0, [r4, r7]
+ cmp r0, #3
+ beq _0800D7A6
+ movs r0, #0x67
+ bl m4aSongNumStart
+ movs r0, #1
+ strh r0, [r4, #0x12]
+ movs r1, #0x16
+ ldrsh r0, [r4, r1]
+ ldr r1, [r4, #0xc]
+ movs r3, #0x10
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, #0xb]
+ bl sub_F670
+ ldr r3, _0800D790 @ =0x0202C610
+ movs r7, #0x10
+ ldrsh r1, [r4, r7]
+ lsls r1, r1, #2
+ ldr r2, [r4, #0xc]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r2, [r4, #0xb]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r1, r1, r3
+ movs r2, #0x16
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ ldrh r0, [r4, #0x10]
+ adds r0, #1
+ b _0800D7F6
+ .align 2, 0
+_0800D788: .4byte 0x02002858
+_0800D78C: .4byte 0x0200B0C0
+_0800D790: .4byte 0x0202C610
+_0800D794:
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D818
+ ldr r4, _0800D7B0 @ =0x02002858
+ movs r1, #0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _0800D7B4
+_0800D7A6:
+ movs r0, #0x8a
+ bl m4aSongNumStart
+ b _0800D818
+ .align 2, 0
+_0800D7B0: .4byte 0x02002858
+_0800D7B4:
+ movs r0, #0x67
+ bl m4aSongNumStart
+ movs r0, #1
+ strh r0, [r4, #0x12]
+ movs r2, #0x16
+ ldrsh r0, [r4, r2]
+ ldr r1, [r4, #0xc]
+ movs r3, #0x10
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, #0xb]
+ bl sub_F670
+ ldr r3, _0800D8F8 @ =0x0202C610
+ movs r7, #0x10
+ ldrsh r1, [r4, r7]
+ lsls r1, r1, #2
+ ldr r2, [r4, #0xc]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r2, [r4, #0xb]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r1, r1, r3
+ movs r2, #0x16
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ ldrh r0, [r4, #0x10]
+ subs r0, #1
+_0800D7F6:
+ strh r0, [r4, #0x10]
+ movs r7, #0x10
+ ldrsh r1, [r4, r7]
+ lsls r1, r1, #2
+ ldr r2, [r4, #0xc]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r2, [r4, #0xb]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r1, r1, r3
+ ldr r0, [r1]
+ strh r0, [r4, #0x16]
+_0800D818:
+ ldr r0, _0800D8FC @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r5, #1
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ bne _0800D828
+ b _0800D936
+_0800D828:
+ ldr r4, _0800D900 @ =0x02002858
+ strh r5, [r4, #0x12]
+ movs r1, #0x16
+ ldrsh r0, [r4, r1]
+ ldr r1, [r4, #0xc]
+ movs r3, #0x10
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, #0xb]
+ bl sub_F670
+ ldr r5, _0800D8F8 @ =0x0202C610
+ movs r7, #0x10
+ ldrsh r1, [r4, r7]
+ lsls r1, r1, #2
+ ldr r2, [r4, #0xc]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r2, [r4, #0xb]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r1, r1, r5
+ movs r2, #0x16
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ movs r3, #0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, #3
+ bne _0800D90C
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldrb r0, [r4, #0xb]
+ ldr r1, [r4, #0xc]
+ movs r7, #0x1c
+ ldrsh r2, [r4, r7]
+ bl sub_FAE8
+ movs r3, #0
+ adds r6, r5, #0
+ ldr r5, _0800D904 @ =0x0201A500
+_0800D880:
+ lsls r2, r3, #2
+ ldr r1, [r4, #0xc]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r2, r2, r0
+ ldrb r1, [r4, #0xb]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #6
+ adds r2, r2, r0
+ adds r2, r2, r6
+ ldr r0, [r2]
+ stm r5!, {r0}
+ adds r3, #1
+ cmp r3, #3
+ ble _0800D880
+ movs r3, #0
+ ldr r0, _0800D908 @ =0x0200B134
+ mov r8, r0
+ ldr r1, _0800D8F8 @ =0x0202C610
+ mov ip, r1
+_0800D8AC:
+ movs r1, #0
+ adds r2, r3, #1
+ mov sb, r2
+ lsls r0, r3, #1
+ adds r0, r0, r3
+ lsls r5, r0, #6
+ adds r6, r5, #0
+ adds r6, #0xe4
+_0800D8BC:
+ lsls r0, r1, #1
+ adds r4, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r1, r0, r6
+ mov r3, r8
+ adds r2, r1, r3
+ adds r3, r0, r5
+ movs r1, #5
+_0800D8CE:
+ mov r7, ip
+ adds r0, r3, r7
+ ldr r0, [r0]
+ stm r2!, {r0}
+ adds r3, #4
+ subs r1, #1
+ cmp r1, #0
+ bge _0800D8CE
+ adds r1, r4, #0
+ cmp r1, #7
+ ble _0800D8BC
+ mov r3, sb
+ cmp r3, #1
+ ble _0800D8AC
+ bl sub_52B30
+ ldr r1, _0800D8FC @ =0x0200B0C0
+ movs r0, #3
+ strb r0, [r1, #3]
+ b _0800D9B6
+ .align 2, 0
+_0800D8F8: .4byte 0x0202C610
+_0800D8FC: .4byte 0x0200B0C0
+_0800D900: .4byte 0x02002858
+_0800D904: .4byte 0x0201A500
+_0800D908: .4byte 0x0200B134
+_0800D90C:
+ movs r0, #0x6a
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0x10]
+ adds r0, #1
+ strh r0, [r4, #0x10]
+ movs r0, #0x10
+ ldrsh r1, [r4, r0]
+ lsls r1, r1, #2
+ ldr r2, [r4, #0xc]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r2, [r4, #0xb]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r1, r1, r5
+ b _0800D9B2
+_0800D936:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _0800D9B6
+ ldr r4, _0800D950 @ =0x02002858
+ movs r1, #0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _0800D954
+ movs r0, #0x8a
+ bl m4aSongNumStart
+ b _0800D9B6
+ .align 2, 0
+_0800D950: .4byte 0x02002858
+_0800D954:
+ movs r0, #0x6a
+ bl m4aSongNumStart
+ strh r5, [r4, #0x12]
+ movs r2, #0x16
+ ldrsh r0, [r4, r2]
+ ldr r1, [r4, #0xc]
+ movs r3, #0x10
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, #0xb]
+ bl sub_F670
+ ldr r3, _0800D9E4 @ =0x0202C610
+ movs r7, #0x10
+ ldrsh r1, [r4, r7]
+ lsls r1, r1, #2
+ ldr r2, [r4, #0xc]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r2, [r4, #0xb]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r1, r1, r3
+ movs r2, #0x16
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ ldrh r0, [r4, #0x10]
+ subs r0, #1
+ strh r0, [r4, #0x10]
+ movs r7, #0x10
+ ldrsh r1, [r4, r7]
+ lsls r1, r1, #2
+ ldr r2, [r4, #0xc]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r2, [r4, #0xb]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r1, r1, r3
+_0800D9B2:
+ ldr r0, [r1]
+ strh r0, [r4, #0x16]
+_0800D9B6:
+ ldr r1, _0800D9E8 @ =0x040000D4
+ ldr r0, _0800D9EC @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800D9F0 @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r1, _0800D9F4 @ =0x02002858
+ ldrh r2, [r1, #0x20]
+ movs r3, #0x20
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _0800D9D8
+ subs r0, r2, #1
+ strh r0, [r1, #0x20]
+_0800D9D8:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D9E4: .4byte 0x0202C610
+_0800D9E8: .4byte 0x040000D4
+_0800D9EC: .4byte 0x03005C00
+_0800D9F0: .4byte 0x80000800
+_0800D9F4: .4byte 0x02002858
+
+ thumb_func_start sub_D9F8
+sub_D9F8: @ 0x0800D9F8
+ push {lr}
+ bl sub_19B4
+ bl sub_E908
+ ldr r1, _0800DA18 @ =0x0201B124
+ movs r0, #0
+ strb r0, [r1]
+ bl sub_E464
+ ldr r1, _0800DA1C @ =0x0200B0C0
+ movs r0, #6
+ strb r0, [r1, #3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DA18: .4byte 0x0201B124
+_0800DA1C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_DA20
+sub_DA20: @ 0x0800DA20
+ push {r4, r5, lr}
+ bl sub_E464
+ ldr r4, _0800DA4C @ =0x0200B0C0
+ ldrh r1, [r4, #0x18]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _0800DA58
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _0800DA50 @ =0x0201B178
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _0800DA54 @ =0x0202BEBC
+ strb r1, [r0]
+ bl sub_2568
+ movs r0, #3
+ strb r0, [r4, #3]
+ b _0800DB2E
+ .align 2, 0
+_0800DA4C: .4byte 0x0200B0C0
+_0800DA50: .4byte 0x0201B178
+_0800DA54: .4byte 0x0202BEBC
+_0800DA58:
+ ldr r5, _0800DAB8 @ =0x0202ADD0
+ ldr r0, _0800DABC @ =0x0202BEC8
+ ldr r1, _0800DAC0 @ =0x0202C5F0
+ ldr r2, _0800DAC4 @ =0x0201A4D0
+ bl sub_1B04
+ str r0, [r5]
+ ldr r1, _0800DAC8 @ =0x0202BDF0
+ movs r3, #3
+ ands r3, r0
+ str r3, [r1]
+ ldr r2, _0800DACC @ =0x0201C1AC
+ movs r1, #0x1c
+ ands r1, r0
+ lsrs r1, r1, #2
+ strb r1, [r2]
+ ldr r2, _0800DAD0 @ =0x0202ADDC
+ movs r1, #0xe0
+ lsls r1, r1, #4
+ ands r1, r0
+ lsrs r1, r1, #9
+ strb r1, [r2]
+ movs r1, #0x40
+ ands r1, r0
+ cmp r1, #0
+ beq _0800DB2E
+ cmp r3, #1
+ bhi _0800DB2E
+ bl sub_E970
+ ldr r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800DAE8
+ bl sub_E94C
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _0800DAD4
+ movs r0, #8
+ strb r0, [r4, #3]
+ b _0800DAE8
+ .align 2, 0
+_0800DAB8: .4byte 0x0202ADD0
+_0800DABC: .4byte 0x0202BEC8
+_0800DAC0: .4byte 0x0202C5F0
+_0800DAC4: .4byte 0x0201A4D0
+_0800DAC8: .4byte 0x0202BDF0
+_0800DACC: .4byte 0x0201C1AC
+_0800DAD0: .4byte 0x0202ADDC
+_0800DAD4:
+ cmp r1, #1
+ bne _0800DAE8
+ ldr r0, _0800DB34 @ =0x0202BEBC
+ movs r1, #2
+ strb r1, [r0]
+ movs r0, #7
+ strb r0, [r4, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_0800DAE8:
+ ldr r1, _0800DB38 @ =0x0201A510
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ ldr r0, _0800DB3C @ =0x0202ADD0
+ ldr r0, [r0]
+ movs r1, #0xfe
+ lsls r1, r1, #0xf
+ ands r0, r1
+ cmp r0, #0
+ beq _0800DB2E
+ ldr r0, _0800DB40 @ =0x0202ADE4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _0800DB2E
+ ldr r1, _0800DB44 @ =0x0201A444
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb4
+ ble _0800DB2E
+ ldr r1, _0800DB34 @ =0x0202BEBC
+ movs r0, #2
+ strb r0, [r1]
+ ldr r1, _0800DB48 @ =0x0200B0C0
+ movs r0, #7
+ strb r0, [r1, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_0800DB2E:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DB34: .4byte 0x0202BEBC
+_0800DB38: .4byte 0x0201A510
+_0800DB3C: .4byte 0x0202ADD0
+_0800DB40: .4byte 0x0202ADE4
+_0800DB44: .4byte 0x0201A444
+_0800DB48: .4byte 0x0200B0C0
+
+ thumb_func_start sub_DB4C
+sub_DB4C: @ 0x0800DB4C
+ ldr r1, _0800DB68 @ =0x0201A444
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _0800DB66
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _0800DB6C @ =0x0200B0C0
+ movs r0, #5
+ strb r0, [r1, #3]
+_0800DB66:
+ bx lr
+ .align 2, 0
+_0800DB68: .4byte 0x0201A444
+_0800DB6C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_DB70
+sub_DB70: @ 0x0800DB70
+ push {r4, r5, r6, lr}
+ bl sub_E464
+ ldr r1, _0800DBDC @ =0x02002858
+ ldrh r0, [r1, #0x22]
+ adds r0, #1
+ movs r2, #0
+ strh r0, [r1, #0x22]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x5a
+ ble _0800DBD4
+ movs r0, #0
+ strh r0, [r1, #0x22]
+ ldr r0, _0800DBE0 @ =0x0201B178
+ strb r2, [r0]
+ ldr r0, _0800DBE4 @ =0x0202BEBC
+ strb r2, [r0]
+ bl sub_2568
+ bl sub_1AA4
+ movs r1, #0
+ ldr r6, _0800DBE8 @ =0x0202C550
+ ldr r5, _0800DBEC @ =0x0202C610
+_0800DBA2:
+ lsls r0, r1, #1
+ adds r4, r1, #1
+ adds r0, r0, r1
+ lsls r1, r0, #3
+ lsls r0, r0, #6
+ adds r3, r0, r5
+ adds r1, r1, r6
+ movs r2, #5
+_0800DBB2:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, #1
+ cmp r2, #0
+ bge _0800DBB2
+ adds r1, r4, #0
+ cmp r1, #1
+ ble _0800DBA2
+ movs r4, #0
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r0, _0800DBF0 @ =0x0200B0C0
+ strb r4, [r0, #3]
+_0800DBD4:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DBDC: .4byte 0x02002858
+_0800DBE0: .4byte 0x0201B178
+_0800DBE4: .4byte 0x0202BEBC
+_0800DBE8: .4byte 0x0202C550
+_0800DBEC: .4byte 0x0202C610
+_0800DBF0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_DBF4
+sub_DBF4: @ 0x0800DBF4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ bl sub_E464
+ ldr r2, _0800DC14 @ =0x02002858
+ movs r1, #0x22
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x82
+ beq _0800DC28
+ cmp r0, #0x82
+ bgt _0800DC18
+ cmp r0, #4
+ beq _0800DC1E
+ b _0800DCBA
+ .align 2, 0
+_0800DC14: .4byte 0x02002858
+_0800DC18:
+ cmp r0, #0xfa
+ beq _0800DC3C
+ b _0800DCBA
+_0800DC1E:
+ bl sub_2568
+ bl sub_1AA4
+ b _0800DCBA
+_0800DC28:
+ ldr r1, _0800DC38 @ =0x0202BEBC
+ movs r0, #3
+ strb r0, [r1]
+ movs r0, #0x65
+ bl m4aSongNumStart
+ b _0800DCBA
+ .align 2, 0
+_0800DC38: .4byte 0x0202BEBC
+_0800DC3C:
+ movs r1, #0
+ movs r0, #0
+ strh r0, [r2, #0x22]
+ ldr r0, _0800DCD0 @ =0x0201B178
+ strb r1, [r0]
+ ldr r0, _0800DCD4 @ =0x0202BEBC
+ strb r1, [r0]
+ movs r0, #0
+ bl sub_F4FC
+ ldr r1, _0800DCD8 @ =0x0202BED8
+ str r0, [r1]
+ movs r0, #1
+ bl sub_F4FC
+ ldr r1, _0800DCDC @ =0x0201B170
+ str r0, [r1]
+ movs r2, #0
+ ldr r3, _0800DCE0 @ =0x0200B134
+ mov r8, r3
+ ldr r7, _0800DCE4 @ =0x0202C610
+ mov ip, r7
+_0800DC68:
+ movs r1, #0
+ lsls r0, r2, #1
+ adds r3, r2, #1
+ mov sb, r3
+ adds r0, r0, r2
+ lsls r5, r0, #6
+ adds r6, r5, #0
+ adds r6, #0xe4
+_0800DC78:
+ lsls r0, r1, #1
+ adds r4, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r1, r0, r6
+ add r1, r8
+ adds r2, r0, r5
+ movs r3, #5
+_0800DC88:
+ mov r7, ip
+ adds r0, r2, r7
+ ldr r0, [r0]
+ stm r1!, {r0}
+ adds r2, #4
+ subs r3, #1
+ cmp r3, #0
+ bge _0800DC88
+ adds r1, r4, #0
+ cmp r1, #7
+ ble _0800DC78
+ mov r2, sb
+ cmp r2, #1
+ ble _0800DC68
+ bl sub_52B30
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _0800DCE8 @ =0x0200B0C0
+ movs r0, #0xc
+ strb r0, [r1, #3]
+_0800DCBA:
+ ldr r1, _0800DCEC @ =0x02002858
+ ldrh r0, [r1, #0x22]
+ adds r0, #1
+ strh r0, [r1, #0x22]
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DCD0: .4byte 0x0201B178
+_0800DCD4: .4byte 0x0202BEBC
+_0800DCD8: .4byte 0x0202BED8
+_0800DCDC: .4byte 0x0201B170
+_0800DCE0: .4byte 0x0200B134
+_0800DCE4: .4byte 0x0202C610
+_0800DCE8: .4byte 0x0200B0C0
+_0800DCEC: .4byte 0x02002858
+
+ thumb_func_start sub_DCF0
+sub_DCF0: @ 0x0800DCF0
+ push {r4, r5, lr}
+ bl sub_E464
+ ldr r5, _0800DD20 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _0800DD24
+ movs r0, #0x65
+ bl m4aSongNumStart
+ bl sub_F6E0
+ bl sub_52B30
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ movs r0, #0
+ b _0800DD3C
+ .align 2, 0
+_0800DD20: .4byte 0x0200B0C0
+_0800DD24:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _0800DD3E
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _0800DD44 @ =0x0201B178
+ strb r4, [r0]
+ ldr r0, _0800DD48 @ =0x0202BEBC
+ strb r4, [r0]
+ movs r0, #3
+_0800DD3C:
+ strb r0, [r5, #3]
+_0800DD3E:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DD44: .4byte 0x0201B178
+_0800DD48: .4byte 0x0202BEBC
+
+ thumb_func_start sub_DD4C
+sub_DD4C: @ 0x0800DD4C
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _0800DD6C @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #1
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DD6C: .4byte 0x0201A4B4
+
+ thumb_func_start sub_DD70
+sub_DD70: @ 0x0800DD70
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800DE50 @ =0x0400000C
+ ldr r3, _0800DE54 @ =0x00004006
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800DE58 @ =0x0400000E
+ ldr r3, _0800DE5C @ =0x0000420F
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r6, _0800DE60 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r6, #0x16]
+ ldr r4, _0800DE64 @ =0x040000D4
+ ldr r0, _0800DE68 @ =0x0809DBE0
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _0800DE6C @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800DE70 @ =0x080957A0
+ str r0, [r4]
+ ldr r0, _0800DE74 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _0800DE78 @ =0x80002400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800DE7C @ =0x0809AFC0
+ str r0, [r4]
+ ldr r0, _0800DE80 @ =0x0600C000
+ str r0, [r4, #4]
+ ldr r0, _0800DE84 @ =0x80001600
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800DE88 @ =0x080947A0
+ str r0, [r4]
+ ldr r0, _0800DE8C @ =0x03005C00
+ mov r8, r0
+ str r0, [r4, #4]
+ ldr r5, _0800DE90 @ =0x80000800
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800DE94 @ =0x08099FC0
+ str r0, [r4]
+ ldr r0, _0800DE98 @ =0x06001000
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800DE9C @ =0x0809DDE0
+ str r0, [r4]
+ ldr r0, _0800DEA0 @ =0x05000200
+ str r0, [r4, #4]
+ ldr r0, _0800DEA4 @ =0x80000010
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800DEA8 @ =0x0809DFE0
+ str r0, [r4]
+ ldr r0, _0800DEAC @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _0800DEB0 @ =0x80002210
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_DEB4
+ bl sub_EE64
+ mov r1, r8
+ str r1, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ movs r0, #9
+ bl m4aSongNumStart
+ bl sub_CBC
+ bl sub_24C
+ ldrb r0, [r6, #3]
+ adds r0, #1
+ strb r0, [r6, #3]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DE50: .4byte 0x0400000C
+_0800DE54: .4byte 0x00004006
+_0800DE58: .4byte 0x0400000E
+_0800DE5C: .4byte 0x0000420F
+_0800DE60: .4byte 0x0200B0C0
+_0800DE64: .4byte 0x040000D4
+_0800DE68: .4byte 0x0809DBE0
+_0800DE6C: .4byte 0x80000100
+_0800DE70: .4byte 0x080957A0
+_0800DE74: .4byte 0x06004000
+_0800DE78: .4byte 0x80002400
+_0800DE7C: .4byte 0x0809AFC0
+_0800DE80: .4byte 0x0600C000
+_0800DE84: .4byte 0x80001600
+_0800DE88: .4byte 0x080947A0
+_0800DE8C: .4byte 0x03005C00
+_0800DE90: .4byte 0x80000800
+_0800DE94: .4byte 0x08099FC0
+_0800DE98: .4byte 0x06001000
+_0800DE9C: .4byte 0x0809DDE0
+_0800DEA0: .4byte 0x05000200
+_0800DEA4: .4byte 0x80000010
+_0800DEA8: .4byte 0x0809DFE0
+_0800DEAC: .4byte 0x06010000
+_0800DEB0: .4byte 0x80002210
+
+ thumb_func_start sub_DEB4
+sub_DEB4: @ 0x0800DEB4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ movs r2, #0
+ ldr r0, _0800DF54 @ =0x02002858
+ mov r8, r0
+ ldr r0, _0800DF58 @ =0x0200B0C0
+ mov ip, r0
+ ldr r0, _0800DF5C @ =0x0202C610
+ mov sl, r0
+ movs r0, #0x74
+ add r0, ip
+ mov sb, r0
+_0800DED2:
+ movs r1, #0
+ lsls r0, r2, #1
+ adds r7, r2, #1
+ adds r0, r0, r2
+ lsls r5, r0, #6
+ adds r6, r5, #0
+ adds r6, #0xe4
+_0800DEE0:
+ lsls r0, r1, #1
+ adds r4, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r1, r0, r6
+ add r1, sb
+ adds r0, r0, r5
+ mov r2, sl
+ adds r3, r0, r2
+ movs r2, #5
+_0800DEF4:
+ ldm r1!, {r0}
+ stm r3!, {r0}
+ subs r2, #1
+ cmp r2, #0
+ bge _0800DEF4
+ adds r1, r4, #0
+ cmp r1, #7
+ ble _0800DEE0
+ adds r2, r7, #0
+ cmp r2, #1
+ ble _0800DED2
+ movs r0, #0
+ movs r1, #0
+ mov r2, r8
+ strh r0, [r2, #8]
+ strh r0, [r2, #0x1e]
+ strh r0, [r2, #0x1c]
+ strb r1, [r2, #0xb]
+ ldr r2, _0800DF60 @ =0x02002882
+ strh r0, [r2]
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ ldr r2, _0800DF64 @ =0x02002880
+ strh r0, [r2]
+ mov r0, r8
+ adds r0, #0x24
+ strb r1, [r0]
+ mov r0, r8
+ strb r1, [r0, #0xa]
+ ldr r2, _0800DF60 @ =0x02002882
+ ldrh r1, [r2]
+ movs r0, #0xbd
+ lsls r0, r0, #2
+ add r0, ip
+ strh r1, [r0]
+ ldrh r1, [r2]
+ movs r0, #0xbc
+ lsls r0, r0, #2
+ add r0, ip
+ strh r1, [r0]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DF54: .4byte 0x02002858
+_0800DF58: .4byte 0x0200B0C0
+_0800DF5C: .4byte 0x0202C610
+_0800DF60: .4byte 0x02002882
+_0800DF64: .4byte 0x02002880
+
+ thumb_func_start sub_DF68
+sub_DF68: @ 0x0800DF68
+ push {r4, r5, lr}
+ ldr r0, _0800DF80 @ =0x02002858
+ ldrb r4, [r0, #0xa]
+ adds r5, r0, #0
+ cmp r4, #1
+ beq _0800DFE8
+ cmp r4, #1
+ bgt _0800DF88
+ cmp r4, #0
+ beq _0800DF94
+ ldr r4, _0800DF84 @ =0x0200B0C0
+ b _0800E072
+ .align 2, 0
+_0800DF80: .4byte 0x02002858
+_0800DF84: .4byte 0x0200B0C0
+_0800DF88:
+ cmp r4, #2
+ beq _0800E020
+ ldr r4, _0800DF90 @ =0x0200B0C0
+ b _0800E072
+ .align 2, 0
+_0800DF90: .4byte 0x0200B0C0
+_0800DF94:
+ ldrh r0, [r5, #0x1e]
+ adds r0, #1
+ strh r0, [r5, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800DFC0
+ strh r4, [r5, #0x1e]
+ movs r0, #0x1c
+ ldrsh r2, [r5, r0]
+ movs r0, #0
+ movs r1, #0
+ bl sub_F8B0
+ ldrh r0, [r5, #0x1c]
+ adds r0, #1
+ strh r0, [r5, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _0800DFC0
+ strh r4, [r5, #0x1c]
+_0800DFC0:
+ ldr r0, _0800DFE0 @ =0x02002858
+ movs r1, #8
+ ldrsh r2, [r0, r1]
+ movs r1, #0x96
+ lsls r1, r1, #2
+ adds r5, r0, #0
+ ldr r4, _0800DFE4 @ =0x0200B0C0
+ cmp r2, r1
+ ble _0800E072
+ movs r0, #0
+ strh r0, [r5, #8]
+ strh r0, [r5, #0x1e]
+ strh r0, [r5, #0x1c]
+ movs r0, #1
+ strb r0, [r5, #0xa]
+ b _0800E072
+ .align 2, 0
+_0800DFE0: .4byte 0x02002858
+_0800DFE4: .4byte 0x0200B0C0
+_0800DFE8:
+ ldr r2, _0800E018 @ =0x02002882
+ ldrh r0, [r2]
+ adds r0, #8
+ strh r0, [r2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xef
+ ble _0800E000
+ movs r0, #0
+ strh r0, [r5, #8]
+ movs r0, #2
+ strb r0, [r5, #0xa]
+_0800E000:
+ ldr r1, _0800E01C @ =0x0200B0C0
+ ldrh r2, [r2]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ subs r3, #4
+ adds r0, r1, r3
+ strh r2, [r0]
+ adds r4, r1, #0
+ b _0800E072
+ .align 2, 0
+_0800E018: .4byte 0x02002882
+_0800E01C: .4byte 0x0200B0C0
+_0800E020:
+ ldrh r0, [r5, #0x1e]
+ adds r0, #1
+ movs r4, #0
+ strh r0, [r5, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800E04E
+ strh r4, [r5, #0x1e]
+ movs r0, #0x1c
+ ldrsh r2, [r5, r0]
+ movs r0, #1
+ movs r1, #0
+ bl sub_F8B0
+ ldrh r0, [r5, #0x1c]
+ adds r0, #1
+ strh r0, [r5, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _0800E04E
+ strh r4, [r5, #0x1c]
+_0800E04E:
+ ldr r0, _0800E0B0 @ =0x02002858
+ movs r1, #8
+ ldrsh r2, [r0, r1]
+ movs r1, #0x96
+ lsls r1, r1, #2
+ adds r5, r0, #0
+ ldr r4, _0800E0B4 @ =0x0200B0C0
+ cmp r2, r1
+ ble _0800E072
+ movs r1, #0
+ movs r0, #0
+ strh r0, [r5, #8]
+ adds r0, r5, #0
+ adds r0, #0x24
+ strb r1, [r0]
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+_0800E072:
+ ldrh r0, [r5, #8]
+ adds r0, #1
+ strh r0, [r5, #8]
+ ldr r1, _0800E0B8 @ =0x040000D4
+ ldr r0, _0800E0BC @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800E0C0 @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldrh r1, [r4, #0x18]
+ movs r0, #0xb
+ ands r0, r1
+ cmp r0, #0
+ beq _0800E0A8
+ movs r0, #0x66
+ bl m4aSongNumStart
+ adds r1, r5, #0
+ adds r1, #0x24
+ movs r0, #1
+ strb r0, [r1]
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+_0800E0A8:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E0B0: .4byte 0x02002858
+_0800E0B4: .4byte 0x0200B0C0
+_0800E0B8: .4byte 0x040000D4
+_0800E0BC: .4byte 0x03005C00
+_0800E0C0: .4byte 0x80000800
+
+ thumb_func_start sub_E0C4
+sub_E0C4: @ 0x0800E0C4
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r0, _0800E0E8 @ =0x02002858
+ adds r0, #0x24
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E0E8: .4byte 0x02002858
+
+ thumb_func_start sub_E0EC
+sub_E0EC: @ 0x0800E0EC
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800E1CC @ =0x0400000C
+ ldr r3, _0800E1D0 @ =0x00004006
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800E1D4 @ =0x0400000E
+ ldr r3, _0800E1D8 @ =0x0000420F
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r6, _0800E1DC @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r6, #0x16]
+ ldr r4, _0800E1E0 @ =0x040000D4
+ ldr r0, _0800E1E4 @ =0x0809DBE0
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _0800E1E8 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800E1EC @ =0x080957A0
+ str r0, [r4]
+ ldr r0, _0800E1F0 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _0800E1F4 @ =0x80002400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800E1F8 @ =0x0809AFC0
+ str r0, [r4]
+ ldr r0, _0800E1FC @ =0x0600C000
+ str r0, [r4, #4]
+ ldr r0, _0800E200 @ =0x80001600
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800E204 @ =0x080947A0
+ str r0, [r4]
+ ldr r0, _0800E208 @ =0x03005C00
+ mov r8, r0
+ str r0, [r4, #4]
+ ldr r5, _0800E20C @ =0x80000800
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800E210 @ =0x08099FC0
+ str r0, [r4]
+ ldr r0, _0800E214 @ =0x06001000
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800E218 @ =0x0809DDE0
+ str r0, [r4]
+ ldr r0, _0800E21C @ =0x05000200
+ str r0, [r4, #4]
+ ldr r0, _0800E220 @ =0x80000010
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800E224 @ =0x0809DFE0
+ str r0, [r4]
+ ldr r0, _0800E228 @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _0800E22C @ =0x80002210
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_DEB4
+ bl sub_EE64
+ mov r1, r8
+ str r1, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ movs r0, #9
+ bl m4aSongNumStart
+ bl sub_CBC
+ bl sub_24C
+ ldrb r0, [r6, #3]
+ adds r0, #1
+ strb r0, [r6, #3]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E1CC: .4byte 0x0400000C
+_0800E1D0: .4byte 0x00004006
+_0800E1D4: .4byte 0x0400000E
+_0800E1D8: .4byte 0x0000420F
+_0800E1DC: .4byte 0x0200B0C0
+_0800E1E0: .4byte 0x040000D4
+_0800E1E4: .4byte 0x0809DBE0
+_0800E1E8: .4byte 0x80000100
+_0800E1EC: .4byte 0x080957A0
+_0800E1F0: .4byte 0x06004000
+_0800E1F4: .4byte 0x80002400
+_0800E1F8: .4byte 0x0809AFC0
+_0800E1FC: .4byte 0x0600C000
+_0800E200: .4byte 0x80001600
+_0800E204: .4byte 0x080947A0
+_0800E208: .4byte 0x03005C00
+_0800E20C: .4byte 0x80000800
+_0800E210: .4byte 0x08099FC0
+_0800E214: .4byte 0x06001000
+_0800E218: .4byte 0x0809DDE0
+_0800E21C: .4byte 0x05000200
+_0800E220: .4byte 0x80000010
+_0800E224: .4byte 0x0809DFE0
+_0800E228: .4byte 0x06010000
+_0800E22C: .4byte 0x80002210
+
+ thumb_func_start sub_E230
+sub_E230: @ 0x0800E230
+ push {r4, r5, lr}
+ ldr r0, _0800E248 @ =0x02002858
+ ldrb r4, [r0, #0xa]
+ adds r5, r0, #0
+ cmp r4, #1
+ beq _0800E2BC
+ cmp r4, #1
+ bgt _0800E250
+ cmp r4, #0
+ beq _0800E25C
+ ldr r4, _0800E24C @ =0x0200B0C0
+ b _0800E344
+ .align 2, 0
+_0800E248: .4byte 0x02002858
+_0800E24C: .4byte 0x0200B0C0
+_0800E250:
+ cmp r4, #2
+ beq _0800E2F4
+ ldr r4, _0800E258 @ =0x0200B0C0
+ b _0800E344
+ .align 2, 0
+_0800E258: .4byte 0x0200B0C0
+_0800E25C:
+ ldr r0, _0800E2B0 @ =0x0202BED8
+ ldr r1, [r0]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ beq _0800E292
+ ldrh r0, [r5, #0x1e]
+ adds r0, #1
+ strh r0, [r5, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800E292
+ strh r4, [r5, #0x1e]
+ movs r0, #0x1c
+ ldrsh r2, [r5, r0]
+ movs r0, #0
+ bl sub_F8B0
+ ldrh r0, [r5, #0x1c]
+ adds r0, #1
+ strh r0, [r5, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _0800E292
+ strh r4, [r5, #0x1c]
+_0800E292:
+ ldr r0, _0800E2B4 @ =0x02002858
+ movs r2, #8
+ ldrsh r1, [r0, r2]
+ adds r5, r0, #0
+ ldr r4, _0800E2B8 @ =0x0200B0C0
+ cmp r1, #0x78
+ ble _0800E344
+ movs r0, #0
+ strh r0, [r5, #8]
+ strh r0, [r5, #0x1e]
+ strh r0, [r5, #0x1c]
+ movs r0, #1
+ strb r0, [r5, #0xa]
+ b _0800E344
+ .align 2, 0
+_0800E2B0: .4byte 0x0202BED8
+_0800E2B4: .4byte 0x02002858
+_0800E2B8: .4byte 0x0200B0C0
+_0800E2BC:
+ ldr r2, _0800E2EC @ =0x02002882
+ ldrh r0, [r2]
+ adds r0, #8
+ strh r0, [r2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xef
+ ble _0800E2D4
+ movs r0, #0
+ strh r0, [r5, #8]
+ movs r0, #2
+ strb r0, [r5, #0xa]
+_0800E2D4:
+ ldr r1, _0800E2F0 @ =0x0200B0C0
+ ldrh r2, [r2]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ subs r3, #4
+ adds r0, r1, r3
+ strh r2, [r0]
+ adds r4, r1, #0
+ b _0800E344
+ .align 2, 0
+_0800E2EC: .4byte 0x02002882
+_0800E2F0: .4byte 0x0200B0C0
+_0800E2F4:
+ ldr r0, _0800E378 @ =0x0201B170
+ ldr r1, [r0]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ beq _0800E32C
+ ldrh r0, [r5, #0x1e]
+ adds r0, #1
+ movs r4, #0
+ strh r0, [r5, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800E32C
+ strh r4, [r5, #0x1e]
+ movs r0, #0x1c
+ ldrsh r2, [r5, r0]
+ movs r0, #1
+ bl sub_F8B0
+ ldrh r0, [r5, #0x1c]
+ adds r0, #1
+ strh r0, [r5, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _0800E32C
+ strh r4, [r5, #0x1c]
+_0800E32C:
+ ldr r0, _0800E37C @ =0x02002858
+ movs r2, #8
+ ldrsh r1, [r0, r2]
+ adds r5, r0, #0
+ ldr r4, _0800E380 @ =0x0200B0C0
+ cmp r1, #0x78
+ ble _0800E344
+ movs r0, #0
+ strh r0, [r5, #8]
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+_0800E344:
+ ldrh r0, [r5, #8]
+ adds r0, #1
+ strh r0, [r5, #8]
+ ldr r1, _0800E384 @ =0x040000D4
+ ldr r0, _0800E388 @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800E38C @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldrh r1, [r4, #0x18]
+ movs r0, #0xb
+ ands r0, r1
+ cmp r0, #0
+ beq _0800E372
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+_0800E372:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E378: .4byte 0x0201B170
+_0800E37C: .4byte 0x02002858
+_0800E380: .4byte 0x0200B0C0
+_0800E384: .4byte 0x040000D4
+_0800E388: .4byte 0x03005C00
+_0800E38C: .4byte 0x80000800
+
+ thumb_func_start sub_E390
+sub_E390: @ 0x0800E390
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ movs r0, #8
+ bl sub_23C
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_E3A8
+sub_E3A8: @ 0x0800E3A8
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _0800E448 @ =0x02002858
+ movs r0, #0x12
+ ldrsh r1, [r4, r0]
+ movs r0, #0xb8
+ muls r0, r1, r0
+ ldr r2, _0800E44C @ =0x0200B3B8
+ adds r5, r0, r2
+ movs r0, #1
+ strh r0, [r5]
+ ldr r0, _0800E450 @ =0x086A7DA8
+ movs r1, #2
+ bl sub_358
+ ldr r2, _0800E454 @ =0x080797F0
+ ldr r0, [r4, #0xc]
+ lsls r0, r0, #3
+ ldrb r1, [r4, #0xb]
+ lsls r1, r1, #6
+ adds r0, r0, r1
+ adds r0, r0, r2
+ ldr r1, [r0]
+ movs r3, #0x10
+ ldrsh r0, [r4, r3]
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ strh r1, [r5, #2]
+ ldr r1, [r4, #0xc]
+ lsls r1, r1, #3
+ ldrb r0, [r4, #0xb]
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r2, #4
+ adds r1, r1, r2
+ ldr r0, [r1]
+ strh r0, [r5, #4]
+ ldr r7, _0800E458 @ =0x03005000
+ ldr r0, _0800E45C @ =0xFFFFFE00
+ mov r8, r0
+ adds r4, r5, #0
+ adds r4, #8
+ ldr r2, _0800E460 @ =0x000001FF
+ mov ip, r2
+ movs r6, #1
+_0800E404:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r2, #2
+ ldrsh r0, [r5, r2]
+ adds r1, r1, r0
+ mov r0, ip
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r5, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _0800E404
+ movs r0, #0
+ strh r0, [r5]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E448: .4byte 0x02002858
+_0800E44C: .4byte 0x0200B3B8
+_0800E450: .4byte 0x086A7DA8
+_0800E454: .4byte 0x080797F0
+_0800E458: .4byte 0x03005000
+_0800E45C: .4byte 0xFFFFFE00
+_0800E460: .4byte 0x000001FF
+
+ thumb_func_start sub_E464
+sub_E464: @ 0x0800E464
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r6, _0800E5CC @ =0x0200B3B8
+ adds r4, r6, #0
+ movs r0, #0xb8
+ adds r0, r0, r6
+ mov sl, r0
+ mov r5, sl
+ ldr r0, _0800E5D0 @ =0x0202BEBC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r2, #0xb8
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r3, #0xb8
+ lsls r3, r3, #1
+ adds r0, r6, r3
+ adds r7, r1, r0
+ ldr r0, _0800E5D4 @ =0x02002858
+ mov sb, r0
+ ldr r1, _0800E5D8 @ =0x0200287D
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r2, #0xa1
+ lsls r2, r2, #3
+ adds r0, r6, r2
+ adds r1, r1, r0
+ mov r8, r1
+ ldr r0, _0800E5DC @ =0x02002882
+ movs r3, #0
+ ldrsh r1, [r0, r3]
+ cmp r1, #0
+ beq _0800E4B4
+ b _0800E674
+_0800E4B4:
+ movs r0, #1
+ strh r0, [r6]
+ strh r1, [r5]
+ ldr r0, _0800E5E0 @ =0x0201B178
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r7]
+ mov r0, sb
+ adds r0, #0x26
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _0800E5E4 @ =0x086A7DB0
+ movs r1, #9
+ adds r2, r6, #0
+ bl sub_358
+ movs r0, #0xdc
+ strh r0, [r6, #2]
+ movs r0, #0x90
+ strh r0, [r6, #4]
+ adds r4, #8
+ ldr r2, _0800E5E8 @ =0x03005000
+ mov sl, r2
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ add r2, sl
+ mov r3, sb
+ movs r5, #0x1a
+ ldrsh r1, [r3, r5]
+ lsls r1, r1, #1
+ adds r1, #2
+ ldr r3, _0800E5EC @ =0x000003FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #4]
+ ldr r0, _0800E5F0 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ add r2, sl
+ movs r5, #2
+ ldrsh r1, [r4, r5]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r5, _0800E5F4 @ =0x000001FF
+ adds r0, r5, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _0800E5F8 @ =0xFFFFFE00
+ mov ip, r0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sl
+ ldrb r0, [r6, #4]
+ ldrb r4, [r4, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ mov r1, r8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800E5AA
+ movs r0, #0x54
+ strh r0, [r1, #2]
+ movs r0, #0x96
+ strh r0, [r1, #4]
+ ldr r2, _0800E5D8 @ =0x0200287D
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #7
+ lsls r0, r0, #2
+ ldr r3, _0800E5E4 @ =0x086A7DB0
+ adds r0, r0, r3
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r0, [r6]
+ cmp r5, r0
+ bge _0800E5AA
+ mov sb, sl
+ mov sl, ip
+ mov r4, r8
+ adds r4, #8
+_0800E56A:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ mov ip, r1
+ mov r1, r8
+ movs r2, #2
+ ldrsh r0, [r1, r2]
+ mov r2, ip
+ adds r1, r2, r0
+ ldr r2, _0800E5F4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ mov r3, r8
+ ldrb r0, [r3, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r3, [r6]
+ cmp r5, r3
+ blt _0800E56A
+_0800E5AA:
+ ldrh r0, [r7]
+ cmp r0, #1
+ beq _0800E5B2
+ b _0800E846
+_0800E5B2:
+ ldr r0, _0800E5D0 @ =0x0202BEBC
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r2, r0, #0
+ cmp r1, #0
+ beq _0800E5C2
+ cmp r1, #4
+ bne _0800E5FC
+_0800E5C2:
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x64
+ b _0800E602
+ .align 2, 0
+_0800E5CC: .4byte 0x0200B3B8
+_0800E5D0: .4byte 0x0202BEBC
+_0800E5D4: .4byte 0x02002858
+_0800E5D8: .4byte 0x0200287D
+_0800E5DC: .4byte 0x02002882
+_0800E5E0: .4byte 0x0201B178
+_0800E5E4: .4byte 0x086A7DB0
+_0800E5E8: .4byte 0x03005000
+_0800E5EC: .4byte 0x000003FF
+_0800E5F0: .4byte 0xFFFFFC00
+_0800E5F4: .4byte 0x000001FF
+_0800E5F8: .4byte 0xFFFFFE00
+_0800E5FC:
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x50
+_0800E602:
+ strh r0, [r7, #4]
+ ldr r1, _0800E664 @ =0x086A7DB0
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #2
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r0, [r6]
+ cmp r5, r0
+ blt _0800E61C
+ b _0800E846
+_0800E61C:
+ ldr r1, _0800E668 @ =0x03005000
+ mov sb, r1
+ ldr r2, _0800E66C @ =0xFFFFFE00
+ mov sl, r2
+ adds r4, r7, #0
+ adds r4, #8
+_0800E628:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r2, _0800E670 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ ldrb r0, [r7, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r0, [r6]
+ cmp r5, r0
+ blt _0800E628
+ b _0800E846
+ .align 2, 0
+_0800E664: .4byte 0x086A7DB0
+_0800E668: .4byte 0x03005000
+_0800E66C: .4byte 0xFFFFFE00
+_0800E670: .4byte 0x000001FF
+_0800E674:
+ cmp r1, #0xf0
+ beq _0800E67A
+ b _0800E834
+_0800E67A:
+ movs r0, #0
+ strh r0, [r6]
+ movs r0, #1
+ mov r1, sl
+ strh r0, [r1]
+ ldr r0, _0800E79C @ =0x0201B178
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r7]
+ mov r0, sb
+ adds r0, #0x26
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov r2, r8
+ strh r0, [r2]
+ ldr r0, _0800E7A0 @ =0x086A7DB0
+ movs r1, #9
+ adds r2, r6, #0
+ bl sub_358
+ movs r0, #4
+ mov r3, sl
+ strh r0, [r3, #2]
+ movs r0, #0x90
+ strh r0, [r3, #4]
+ adds r4, r5, #0
+ adds r4, #8
+ ldr r5, _0800E7A4 @ =0x03005000
+ mov ip, r5
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ add r2, ip
+ mov r0, sb
+ movs r3, #0x1a
+ ldrsh r1, [r0, r3]
+ lsls r1, r1, #1
+ adds r1, #2
+ ldr r5, _0800E7A8 @ =0x000003FF
+ adds r0, r5, #0
+ ands r1, r0
+ ldrh r3, [r2, #4]
+ ldr r0, _0800E7AC @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ add r2, ip
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r3, sl
+ movs r5, #2
+ ldrsh r0, [r3, r5]
+ adds r1, r1, r0
+ ldr r3, _0800E7B0 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _0800E7B4 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ mov r5, sl
+ ldrb r0, [r5, #4]
+ ldrb r4, [r4, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ mov r1, r8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800E77C
+ movs r0, #0x54
+ strh r0, [r1, #2]
+ movs r0, #0x96
+ strh r0, [r1, #4]
+ ldr r2, _0800E7B8 @ =0x0200287D
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #7
+ lsls r0, r0, #2
+ ldr r3, _0800E7A0 @ =0x086A7DB0
+ adds r0, r0, r3
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r0, [r6]
+ cmp r5, r0
+ bge _0800E77C
+ mov sb, ip
+ ldr r1, _0800E7B4 @ =0xFFFFFE00
+ mov sl, r1
+ mov r4, r8
+ adds r4, #8
+_0800E73C:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r0, #2
+ ldrsh r2, [r4, r0]
+ mov ip, r2
+ mov r1, r8
+ movs r2, #2
+ ldrsh r0, [r1, r2]
+ mov r2, ip
+ adds r1, r2, r0
+ ldr r2, _0800E7B0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ mov r3, r8
+ ldrb r0, [r3, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r3, [r6]
+ cmp r5, r3
+ blt _0800E73C
+_0800E77C:
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _0800E846
+ ldr r0, _0800E7BC @ =0x0202BEBC
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r2, r0, #0
+ cmp r1, #0
+ beq _0800E792
+ cmp r1, #4
+ bne _0800E7C0
+_0800E792:
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x64
+ b _0800E7C6
+ .align 2, 0
+_0800E79C: .4byte 0x0201B178
+_0800E7A0: .4byte 0x086A7DB0
+_0800E7A4: .4byte 0x03005000
+_0800E7A8: .4byte 0x000003FF
+_0800E7AC: .4byte 0xFFFFFC00
+_0800E7B0: .4byte 0x000001FF
+_0800E7B4: .4byte 0xFFFFFE00
+_0800E7B8: .4byte 0x0200287D
+_0800E7BC: .4byte 0x0202BEBC
+_0800E7C0:
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x50
+_0800E7C6:
+ strh r0, [r7, #4]
+ ldr r1, _0800E824 @ =0x086A7DB0
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #2
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r0, [r6]
+ cmp r5, r0
+ bge _0800E846
+ ldr r1, _0800E828 @ =0x03005000
+ mov sb, r1
+ ldr r2, _0800E82C @ =0xFFFFFE00
+ mov sl, r2
+ adds r4, r7, #0
+ adds r4, #8
+_0800E7EA:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r2, _0800E830 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ ldrb r0, [r7, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r0, [r6]
+ cmp r5, r0
+ blt _0800E7EA
+ b _0800E846
+ .align 2, 0
+_0800E824: .4byte 0x086A7DB0
+_0800E828: .4byte 0x03005000
+_0800E82C: .4byte 0xFFFFFE00
+_0800E830: .4byte 0x000001FF
+_0800E834:
+ movs r0, #0
+ strh r0, [r6]
+ mov r1, sl
+ strh r0, [r1]
+ ldr r0, _0800E85C @ =0x086A7DB0
+ movs r1, #9
+ adds r2, r6, #0
+ bl sub_358
+_0800E846:
+ movs r0, #0
+ strh r0, [r7]
+ mov r2, r8
+ strh r0, [r2]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E85C: .4byte 0x086A7DB0
+
+ thumb_func_start sub_E860
+sub_E860: @ 0x0800E860
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0800E8E8 @ =0x0202C580
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ movs r0, #0xb8
+ muls r0, r1, r0
+ ldr r2, _0800E8EC @ =0x0200B3B8
+ adds r5, r0, r2
+ ldr r0, _0800E8F0 @ =0x0201C18C
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r5]
+ ldr r0, _0800E8F4 @ =0x086A7DD4
+ movs r1, #5
+ bl sub_358
+ ldrh r0, [r5]
+ cmp r0, #1
+ bne _0800E8DA
+ movs r0, #0x78
+ strh r0, [r5, #2]
+ ldr r0, _0800E8F8 @ =0x0201A4B8
+ ldrh r0, [r0]
+ strh r0, [r5, #4]
+ ldr r7, _0800E8FC @ =0x03005000
+ ldr r0, _0800E900 @ =0xFFFFFE00
+ mov r8, r0
+ adds r4, r5, #0
+ adds r4, #8
+ ldr r2, _0800E904 @ =0x000001FF
+ mov ip, r2
+ movs r6, #3
+_0800E8A6:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r2, #2
+ ldrsh r0, [r5, r2]
+ adds r1, r1, r0
+ mov r0, ip
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r5, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _0800E8A6
+_0800E8DA:
+ movs r0, #0
+ strh r0, [r5]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E8E8: .4byte 0x0202C580
+_0800E8EC: .4byte 0x0200B3B8
+_0800E8F0: .4byte 0x0201C18C
+_0800E8F4: .4byte 0x086A7DD4
+_0800E8F8: .4byte 0x0201A4B8
+_0800E8FC: .4byte 0x03005000
+_0800E900: .4byte 0xFFFFFE00
+_0800E904: .4byte 0x000001FF
+
+ thumb_func_start sub_E908
+sub_E908: @ 0x0800E908
+ ldr r1, _0800E92C @ =0x0202C5F0
+ movs r2, #0
+ ldr r0, _0800E930 @ =0x0000CFCF
+ strh r0, [r1]
+ ldr r0, _0800E934 @ =0x0201C1B0
+ movs r1, #1
+ strh r1, [r0]
+ ldr r0, _0800E938 @ =0x0202C59C
+ strh r1, [r0]
+ ldr r0, _0800E93C @ =0x0202ADE4
+ strb r2, [r0]
+ ldr r0, _0800E940 @ =0x0201A4BC
+ strb r2, [r0]
+ ldr r0, _0800E944 @ =0x0202C598
+ strb r2, [r0]
+ ldr r0, _0800E948 @ =0x0202C54C
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0800E92C: .4byte 0x0202C5F0
+_0800E930: .4byte 0x0000CFCF
+_0800E934: .4byte 0x0201C1B0
+_0800E938: .4byte 0x0202C59C
+_0800E93C: .4byte 0x0202ADE4
+_0800E940: .4byte 0x0201A4BC
+_0800E944: .4byte 0x0202C598
+_0800E948: .4byte 0x0202C54C
+
+ thumb_func_start sub_E94C
+sub_E94C: @ 0x0800E94C
+ push {lr}
+ ldr r0, _0800E95C @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0800E960
+ bl sub_EBEC
+ b _0800E964
+ .align 2, 0
+_0800E95C: .4byte 0x0202BF20
+_0800E960:
+ bl sub_ED28
+_0800E964:
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_E970
+sub_E970: @ 0x0800E970
+ push {lr}
+ ldr r0, _0800E980 @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0800E984
+ bl sub_E994
+ b _0800E988
+ .align 2, 0
+_0800E980: .4byte 0x0202BF20
+_0800E984:
+ bl sub_EAC0
+_0800E988:
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_E994
+sub_E994: @ 0x0800E994
+ push {r4, r5, lr}
+ ldr r0, _0800E9B4 @ =0x0202ADE4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0800EA04
+ ldr r0, _0800E9B8 @ =0x0201A4BC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0800E9BC
+ cmp r0, #1
+ beq _0800E9F4
+ b _0800EAB2
+ .align 2, 0
+_0800E9B4: .4byte 0x0202ADE4
+_0800E9B8: .4byte 0x0201A4BC
+_0800E9BC:
+ ldr r0, _0800E9D0 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800E9DC
+ ldr r1, _0800E9D4 @ =0x0202C5F0
+ ldr r0, _0800E9D8 @ =0x0000DEDE
+ strh r0, [r1]
+ b _0800EAB2
+ .align 2, 0
+_0800E9D0: .4byte 0x0200B0C0
+_0800E9D4: .4byte 0x0202C5F0
+_0800E9D8: .4byte 0x0000DEDE
+_0800E9DC:
+ ldr r1, _0800E9F0 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_0800E9E4:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _0800E9E4
+ b _0800EAB2
+ .align 2, 0
+_0800E9F0: .4byte 0x0202C5F0
+_0800E9F4:
+ ldr r1, _0800E9FC @ =0x0202C5F0
+ ldr r0, _0800EA00 @ =0x0000EDED
+ strh r0, [r1]
+ b _0800EAB2
+ .align 2, 0
+_0800E9FC: .4byte 0x0202C5F0
+_0800EA00: .4byte 0x0000EDED
+_0800EA04:
+ ldr r0, _0800EA24 @ =0x0202C59C
+ ldrh r2, [r0]
+ adds r1, r2, #0
+ adds r5, r0, #0
+ cmp r1, #7
+ bhi _0800EA30
+ ldr r1, _0800EA28 @ =0x0202C5F0
+ ldr r2, _0800EA2C @ =0x0000CFCF
+ adds r0, r1, #0
+ adds r0, #0xe
+_0800EA18:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _0800EA18
+ b _0800EAAC
+ .align 2, 0
+_0800EA24: .4byte 0x0202C59C
+_0800EA28: .4byte 0x0202C5F0
+_0800EA2C: .4byte 0x0000CFCF
+_0800EA30:
+ cmp r1, #9
+ bhi _0800EA9C
+ adds r0, r2, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ ldr r3, _0800EA94 @ =0x0202C5F0
+ movs r4, #0
+ strh r2, [r3]
+ ldr r1, _0800EA98 @ =0x0202C610
+ mov ip, r1
+ lsls r2, r0, #1
+ adds r2, r2, r0
+ lsls r2, r2, #6
+ adds r0, r2, r1
+ ldr r1, [r0]
+ lsls r1, r1, #8
+ mov r0, ip
+ adds r0, #4
+ adds r0, r2, r0
+ ldr r0, [r0]
+ orrs r0, r1
+ strh r0, [r3, #2]
+ mov r0, ip
+ adds r0, #8
+ adds r0, r2, r0
+ ldr r1, [r0]
+ lsls r1, r1, #8
+ mov r0, ip
+ adds r0, #0xc
+ adds r0, r2, r0
+ ldr r0, [r0]
+ orrs r0, r1
+ strh r0, [r3, #4]
+ mov r0, ip
+ adds r0, #0x10
+ adds r0, r2, r0
+ ldrh r1, [r0, #2]
+ strh r1, [r3, #6]
+ ldr r0, [r0]
+ strh r0, [r3, #8]
+ mov r0, ip
+ adds r0, #0x14
+ adds r2, r2, r0
+ ldrh r0, [r2, #2]
+ strh r0, [r3, #0xa]
+ ldr r0, [r2]
+ strh r0, [r3, #0xc]
+ strh r4, [r3, #0xe]
+ b _0800EAAC
+ .align 2, 0
+_0800EA94: .4byte 0x0202C5F0
+_0800EA98: .4byte 0x0202C610
+_0800EA9C:
+ ldr r1, _0800EABC @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_0800EAA4:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _0800EAA4
+_0800EAAC:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_0800EAB2:
+ movs r0, #0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800EABC: .4byte 0x0202C5F0
+
+ thumb_func_start sub_EAC0
+sub_EAC0: @ 0x0800EAC0
+ push {r4, r5, lr}
+ ldr r0, _0800EAE0 @ =0x0202ADE4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0800EB30
+ ldr r0, _0800EAE4 @ =0x0202C598
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0800EAE8
+ cmp r0, #1
+ beq _0800EB20
+ b _0800EBDE
+ .align 2, 0
+_0800EAE0: .4byte 0x0202ADE4
+_0800EAE4: .4byte 0x0202C598
+_0800EAE8:
+ ldr r0, _0800EAFC @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800EB08
+ ldr r1, _0800EB00 @ =0x0202C5F0
+ ldr r0, _0800EB04 @ =0x0000DEDE
+ strh r0, [r1]
+ b _0800EBDE
+ .align 2, 0
+_0800EAFC: .4byte 0x0200B0C0
+_0800EB00: .4byte 0x0202C5F0
+_0800EB04: .4byte 0x0000DEDE
+_0800EB08:
+ ldr r1, _0800EB1C @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_0800EB10:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _0800EB10
+ b _0800EBDE
+ .align 2, 0
+_0800EB1C: .4byte 0x0202C5F0
+_0800EB20:
+ ldr r1, _0800EB28 @ =0x0202C5F0
+ ldr r0, _0800EB2C @ =0x0000EDED
+ strh r0, [r1]
+ b _0800EBDE
+ .align 2, 0
+_0800EB28: .4byte 0x0202C5F0
+_0800EB2C: .4byte 0x0000EDED
+_0800EB30:
+ ldr r0, _0800EB50 @ =0x0202C59C
+ ldrh r2, [r0]
+ adds r1, r2, #0
+ adds r5, r0, #0
+ cmp r1, #7
+ bhi _0800EB5C
+ ldr r1, _0800EB54 @ =0x0202C5F0
+ ldr r2, _0800EB58 @ =0x0000CFCF
+ adds r0, r1, #0
+ adds r0, #0xe
+_0800EB44:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _0800EB44
+ b _0800EBD8
+ .align 2, 0
+_0800EB50: .4byte 0x0202C59C
+_0800EB54: .4byte 0x0202C5F0
+_0800EB58: .4byte 0x0000CFCF
+_0800EB5C:
+ cmp r1, #9
+ bhi _0800EBC8
+ adds r0, r2, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ ldr r3, _0800EBC0 @ =0x0202C5F0
+ movs r4, #0
+ strh r2, [r3]
+ ldr r1, _0800EBC4 @ =0x0202C610
+ mov ip, r1
+ lsls r2, r0, #1
+ adds r2, r2, r0
+ lsls r2, r2, #6
+ adds r0, r2, r1
+ ldr r1, [r0]
+ lsls r1, r1, #8
+ mov r0, ip
+ adds r0, #4
+ adds r0, r2, r0
+ ldr r0, [r0]
+ orrs r0, r1
+ strh r0, [r3, #2]
+ mov r0, ip
+ adds r0, #8
+ adds r0, r2, r0
+ ldr r1, [r0]
+ lsls r1, r1, #8
+ mov r0, ip
+ adds r0, #0xc
+ adds r0, r2, r0
+ ldr r0, [r0]
+ orrs r0, r1
+ strh r0, [r3, #4]
+ mov r0, ip
+ adds r0, #0x10
+ adds r0, r2, r0
+ ldrh r1, [r0, #2]
+ strh r1, [r3, #6]
+ ldr r0, [r0]
+ strh r0, [r3, #8]
+ mov r0, ip
+ adds r0, #0x14
+ adds r2, r2, r0
+ ldrh r0, [r2, #2]
+ strh r0, [r3, #0xa]
+ ldr r0, [r2]
+ strh r0, [r3, #0xc]
+ strh r4, [r3, #0xe]
+ b _0800EBD8
+ .align 2, 0
+_0800EBC0: .4byte 0x0202C5F0
+_0800EBC4: .4byte 0x0202C610
+_0800EBC8:
+ ldr r1, _0800EBE8 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_0800EBD0:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _0800EBD0
+_0800EBD8:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_0800EBDE:
+ movs r0, #0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800EBE8: .4byte 0x0202C5F0
+
+ thumb_func_start sub_EBEC
+sub_EBEC: @ 0x0800EBEC
+ push {r4, r5, lr}
+ ldr r4, _0800EC08 @ =0x0202ADE4
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _0800EC7C
+ ldr r3, _0800EC0C @ =0x0201A4BC
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ cmp r1, #0
+ beq _0800EC10
+ cmp r1, #1
+ beq _0800EC30
+ b _0800ECFC
+ .align 2, 0
+_0800EC08: .4byte 0x0202ADE4
+_0800EC0C: .4byte 0x0201A4BC
+_0800EC10:
+ ldr r2, _0800EC28 @ =0x0201A4D0
+ ldrh r0, [r2]
+ ldr r1, _0800EC2C @ =0x0000DEDE
+ cmp r0, r1
+ beq _0800EC20
+ ldrh r0, [r2, #2]
+ cmp r0, r1
+ bne _0800ECFC
+_0800EC20:
+ movs r0, #1
+ strb r0, [r3]
+ b _0800ECFC
+ .align 2, 0
+_0800EC28: .4byte 0x0201A4D0
+_0800EC2C: .4byte 0x0000DEDE
+_0800EC30:
+ ldr r3, _0800EC54 @ =0x0201A4D0
+ ldrh r2, [r3]
+ ldr r0, _0800EC58 @ =0x0000EDED
+ cmp r2, r0
+ bne _0800EC64
+ ldrh r0, [r3, #2]
+ cmp r0, r2
+ bne _0800EC64
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ strb r0, [r4]
+ ldr r0, _0800EC5C @ =0x0202BEBC
+ strb r1, [r0]
+ ldr r0, _0800EC60 @ =0x0202C59C
+ strh r1, [r0]
+ b _0800ECFC
+ .align 2, 0
+_0800EC54: .4byte 0x0201A4D0
+_0800EC58: .4byte 0x0000EDED
+_0800EC5C: .4byte 0x0202BEBC
+_0800EC60: .4byte 0x0202C59C
+_0800EC64:
+ ldr r1, _0800EC78 @ =0x0202C54C
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ ble _0800ECFC
+ movs r0, #1
+ b _0800ED1E
+ .align 2, 0
+_0800EC78: .4byte 0x0202C54C
+_0800EC7C:
+ ldr r4, _0800ECF0 @ =0x0201A4D0
+ ldrh r5, [r4, #2]
+ adds r0, r5, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, #1
+ bhi _0800ED1C
+ ldr r0, _0800ECF4 @ =0x0201C1B0
+ strh r5, [r0]
+ ldr r0, _0800ECF8 @ =0x0202C550
+ mov ip, r0
+ lsls r3, r1, #1
+ adds r3, r3, r1
+ lsls r3, r3, #3
+ adds r1, r3, r0
+ ldrh r0, [r4, #6]
+ lsrs r0, r0, #8
+ str r0, [r1]
+ mov r0, ip
+ adds r0, #4
+ adds r0, r3, r0
+ ldrb r1, [r4, #6]
+ str r1, [r0]
+ mov r1, ip
+ adds r1, #8
+ adds r1, r3, r1
+ ldrh r0, [r4, #0xa]
+ lsrs r0, r0, #8
+ str r0, [r1]
+ mov r0, ip
+ adds r0, #0xc
+ adds r0, r3, r0
+ ldrb r1, [r4, #0xa]
+ str r1, [r0]
+ mov r2, ip
+ adds r2, #0x10
+ adds r2, r3, r2
+ ldrh r0, [r4, #0xe]
+ lsls r0, r0, #0x10
+ ldrh r1, [r4, #0x12]
+ orrs r0, r1
+ str r0, [r2]
+ mov r0, ip
+ adds r0, #0x14
+ adds r3, r3, r0
+ ldrh r0, [r4, #0x16]
+ lsls r0, r0, #0x10
+ ldrh r1, [r4, #0x1a]
+ orrs r0, r1
+ str r0, [r3]
+ lsls r0, r5, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #9
+ bne _0800ECFC
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _0800ED1E
+ .align 2, 0
+_0800ECF0: .4byte 0x0201A4D0
+_0800ECF4: .4byte 0x0201C1B0
+_0800ECF8: .4byte 0x0202C550
+_0800ECFC:
+ movs r1, #0
+ ldr r4, _0800ED24 @ =0x0201A4D0
+ movs r3, #0
+_0800ED02:
+ lsls r0, r1, #2
+ adds r2, r1, #1
+ movs r1, #1
+ adds r0, r0, r4
+ adds r0, #2
+_0800ED0C:
+ strh r3, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _0800ED0C
+ adds r1, r2, #0
+ cmp r1, #7
+ ble _0800ED02
+_0800ED1C:
+ movs r0, #0
+_0800ED1E:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800ED24: .4byte 0x0201A4D0
+
+ thumb_func_start sub_ED28
+sub_ED28: @ 0x0800ED28
+ push {r4, r5, lr}
+ ldr r4, _0800ED44 @ =0x0202ADE4
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _0800EDB8
+ ldr r3, _0800ED48 @ =0x0202C598
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ cmp r1, #0
+ beq _0800ED4C
+ cmp r1, #1
+ beq _0800ED6C
+ b _0800EE38
+ .align 2, 0
+_0800ED44: .4byte 0x0202ADE4
+_0800ED48: .4byte 0x0202C598
+_0800ED4C:
+ ldr r2, _0800ED64 @ =0x0201A4D0
+ ldrh r0, [r2]
+ ldr r1, _0800ED68 @ =0x0000DEDE
+ cmp r0, r1
+ beq _0800ED5C
+ ldrh r0, [r2, #2]
+ cmp r0, r1
+ bne _0800EE38
+_0800ED5C:
+ movs r0, #1
+ strb r0, [r3]
+ b _0800EE38
+ .align 2, 0
+_0800ED64: .4byte 0x0201A4D0
+_0800ED68: .4byte 0x0000DEDE
+_0800ED6C:
+ ldr r3, _0800ED90 @ =0x0201A4D0
+ ldrh r2, [r3]
+ ldr r0, _0800ED94 @ =0x0000EDED
+ cmp r2, r0
+ bne _0800EDA0
+ ldrh r0, [r3, #2]
+ cmp r0, r2
+ bne _0800EDA0
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ strb r0, [r4]
+ ldr r0, _0800ED98 @ =0x0202BEBC
+ strb r1, [r0]
+ ldr r0, _0800ED9C @ =0x0202C59C
+ strh r1, [r0]
+ b _0800EE38
+ .align 2, 0
+_0800ED90: .4byte 0x0201A4D0
+_0800ED94: .4byte 0x0000EDED
+_0800ED98: .4byte 0x0202BEBC
+_0800ED9C: .4byte 0x0202C59C
+_0800EDA0:
+ ldr r1, _0800EDB4 @ =0x0202C54C
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ ble _0800EE38
+ movs r0, #1
+ b _0800EE5A
+ .align 2, 0
+_0800EDB4: .4byte 0x0202C54C
+_0800EDB8:
+ ldr r4, _0800EE2C @ =0x0201A4D0
+ ldrh r5, [r4]
+ adds r0, r5, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, #1
+ bhi _0800EE58
+ ldr r0, _0800EE30 @ =0x0201C1B0
+ strh r5, [r0]
+ ldr r0, _0800EE34 @ =0x0202C550
+ mov ip, r0
+ lsls r3, r1, #1
+ adds r3, r3, r1
+ lsls r3, r3, #3
+ adds r1, r3, r0
+ ldrh r0, [r4, #4]
+ lsrs r0, r0, #8
+ str r0, [r1]
+ mov r0, ip
+ adds r0, #4
+ adds r0, r3, r0
+ ldrb r1, [r4, #4]
+ str r1, [r0]
+ mov r1, ip
+ adds r1, #8
+ adds r1, r3, r1
+ ldrh r0, [r4, #8]
+ lsrs r0, r0, #8
+ str r0, [r1]
+ mov r0, ip
+ adds r0, #0xc
+ adds r0, r3, r0
+ ldrb r1, [r4, #8]
+ str r1, [r0]
+ mov r2, ip
+ adds r2, #0x10
+ adds r2, r3, r2
+ ldrh r0, [r4, #0xc]
+ lsls r0, r0, #0x10
+ ldrh r1, [r4, #0x10]
+ orrs r0, r1
+ str r0, [r2]
+ mov r0, ip
+ adds r0, #0x14
+ adds r3, r3, r0
+ ldrh r0, [r4, #0x14]
+ lsls r0, r0, #0x10
+ ldrh r1, [r4, #0x18]
+ orrs r0, r1
+ str r0, [r3]
+ lsls r0, r5, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #9
+ bne _0800EE38
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _0800EE5A
+ .align 2, 0
+_0800EE2C: .4byte 0x0201A4D0
+_0800EE30: .4byte 0x0201C1B0
+_0800EE34: .4byte 0x0202C550
+_0800EE38:
+ movs r1, #0
+ ldr r4, _0800EE60 @ =0x0201A4D0
+ movs r3, #0
+_0800EE3E:
+ lsls r0, r1, #2
+ adds r2, r1, #1
+ movs r1, #1
+ adds r0, r0, r4
+ adds r0, #2
+_0800EE48:
+ strh r3, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _0800EE48
+ adds r1, r2, #0
+ cmp r1, #7
+ ble _0800EE3E
+_0800EE58:
+ movs r0, #0
+_0800EE5A:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800EE60: .4byte 0x0201A4D0
+
+ thumb_func_start sub_EE64
+sub_EE64: @ 0x0800EE64
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x10
+ movs r6, #0
+ ldr r4, _0800EF20 @ =0x086A7FAC
+ ldr r5, _0800EF24 @ =0x0202C610
+_0800EE76:
+ ldm r5!, {r0}
+ lsls r0, r0, #1
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ adds r0, #0x80
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #6
+ movs r1, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ movs r1, #8
+ movs r3, #3
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #3
+ ble _0800EE76
+ movs r5, #1
+ ldr r0, _0800EF20 @ =0x086A7FAC
+ mov sb, r0
+ ldr r1, _0800EF24 @ =0x0202C610
+ mov sl, r1
+_0800EEA4:
+ movs r6, #0
+ lsls r7, r5, #1
+ adds r2, r5, #1
+ mov r8, r2
+ adds r4, r7, #0
+ adds r0, r4, r5
+ lsls r0, r0, #3
+ mov r1, sl
+ adds r5, r0, r1
+_0800EEB6:
+ ldm r5!, {r0}
+ lsls r0, r0, #1
+ add r0, sb
+ ldrh r0, [r0]
+ adds r0, #0xa0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #6
+ movs r1, #1
+ str r1, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #8
+ adds r3, r4, #3
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #3
+ ble _0800EEB6
+ mov r5, r8
+ cmp r5, #7
+ ble _0800EEA4
+ ldr r1, _0800EF24 @ =0x0202C610
+ ldr r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ bl sub_F21C
+ movs r6, #0
+ movs r5, #0xc
+ ldr r4, _0800EF28 @ =0x0202C5C0
+ movs r7, #1
+_0800EEF4:
+ adds r0, r6, #1
+ movs r1, #3
+ bl __modsi3
+ cmp r0, #0
+ bne _0800EF2C
+ movs r2, #0x90
+ lsls r2, r2, #1
+ adds r0, r2, #0
+ ldrh r1, [r4]
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r7, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #9
+ adds r2, r5, #0
+ movs r3, #2
+ bl sub_105A0
+ b _0800EF44
+ .align 2, 0
+_0800EF20: .4byte 0x086A7FAC
+_0800EF24: .4byte 0x0202C610
+_0800EF28: .4byte 0x0202C5C0
+_0800EF2C:
+ ldrh r0, [r4]
+ adds r0, #0xe0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r7, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #9
+ adds r2, r5, #0
+ movs r3, #2
+ bl sub_105A0
+_0800EF44:
+ adds r5, #1
+ adds r4, #2
+ adds r6, #1
+ cmp r6, #0xd
+ ble _0800EEF4
+ ldr r4, _0800EFC8 @ =0x0202C5C0
+ ldrh r0, [r4, #0x1c]
+ adds r0, #0xe0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #1
+ str r1, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #9
+ movs r2, #0x1a
+ movs r3, #2
+ bl sub_105A0
+ movs r5, #1
+ ldr r2, _0800EFCC @ =0x0202C610
+ str r2, [sp, #8]
+ mov sl, r5
+ movs r0, #2
+ mov sb, r0
+_0800EF76:
+ lsls r4, r5, #1
+ adds r1, r4, r5
+ lsls r1, r1, #3
+ ldr r0, [sp, #8]
+ adds r0, #0x10
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ldr r2, _0800EFD0 @ =0x0202C624
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl sub_F21C
+ movs r6, #0
+ adds r7, r4, #0
+ adds r5, #1
+ mov r8, r5
+ movs r5, #0xc
+ ldr r4, _0800EFC8 @ =0x0202C5C0
+_0800EF9A:
+ adds r0, r6, #1
+ movs r1, #3
+ bl __modsi3
+ cmp r0, #0
+ bne _0800EFD4
+ movs r1, #0xd0
+ lsls r1, r1, #1
+ adds r0, r1, #0
+ ldrh r2, [r4]
+ adds r0, r0, r2
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov r1, sl
+ str r1, [sp]
+ mov r2, sb
+ str r2, [sp, #4]
+ movs r1, #9
+ adds r2, r5, #0
+ adds r3, r7, #3
+ bl sub_105A0
+ b _0800EFF4
+ .align 2, 0
+_0800EFC8: .4byte 0x0202C5C0
+_0800EFCC: .4byte 0x0202C610
+_0800EFD0: .4byte 0x0202C624
+_0800EFD4:
+ movs r1, #0xb0
+ lsls r1, r1, #1
+ adds r0, r1, #0
+ ldrh r2, [r4]
+ adds r0, r0, r2
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov r1, sl
+ str r1, [sp]
+ mov r2, sb
+ str r2, [sp, #4]
+ movs r1, #9
+ adds r2, r5, #0
+ adds r3, r7, #3
+ bl sub_105A0
+_0800EFF4:
+ adds r5, #1
+ adds r4, #2
+ adds r6, #1
+ cmp r6, #0xd
+ ble _0800EF9A
+ movs r1, #0xb0
+ lsls r1, r1, #1
+ adds r0, r1, #0
+ ldr r2, _0800F0E4 @ =0x0202C5C0
+ ldrh r2, [r2, #0x1c]
+ adds r0, r0, r2
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r3, r7, #3
+ mov r1, sl
+ str r1, [sp]
+ mov r2, sb
+ str r2, [sp, #4]
+ movs r1, #9
+ movs r2, #0x1a
+ bl sub_105A0
+ mov r5, r8
+ cmp r5, #7
+ ble _0800EF76
+ movs r6, #0
+ ldr r7, _0800F0E8 @ =0x086A7FAC
+ ldr r0, _0800F0EC @ =0x0202C610
+ adds r5, r0, #0
+ adds r5, #0xc0
+ movs r4, #1
+_0800F032:
+ ldm r5!, {r0}
+ lsls r0, r0, #1
+ adds r0, r0, r7
+ ldrh r0, [r0]
+ adds r0, #0x80
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #4
+ str r4, [sp]
+ str r4, [sp, #4]
+ movs r1, #8
+ movs r3, #0x23
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #3
+ ble _0800F032
+ movs r5, #1
+ ldr r0, _0800F0E8 @ =0x086A7FAC
+ mov sb, r0
+ ldr r1, _0800F0F0 @ =0x0202C6D0
+ mov sl, r1
+_0800F05E:
+ movs r6, #0
+ lsls r7, r5, #1
+ adds r2, r5, #1
+ mov r8, r2
+ adds r4, r7, #0
+ adds r0, r4, r5
+ lsls r0, r0, #3
+ mov r1, sl
+ adds r5, r0, r1
+_0800F070:
+ ldm r5!, {r0}
+ lsls r0, r0, #1
+ add r0, sb
+ ldrh r0, [r0]
+ adds r0, #0xa0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #4
+ movs r1, #1
+ str r1, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #8
+ adds r3, r4, #0
+ adds r3, #0x23
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #3
+ ble _0800F070
+ mov r5, r8
+ cmp r5, #7
+ ble _0800F05E
+ ldr r1, _0800F0EC @ =0x0202C610
+ adds r0, r1, #0
+ adds r0, #0xd0
+ ldr r0, [r0]
+ adds r1, #0xd4
+ ldr r1, [r1]
+ bl sub_F21C
+ movs r6, #0
+ movs r5, #0xa
+ ldr r4, _0800F0E4 @ =0x0202C5C0
+ movs r7, #1
+_0800F0B6:
+ adds r0, r6, #1
+ movs r1, #3
+ bl __modsi3
+ cmp r0, #0
+ bne _0800F0F4
+ movs r2, #0x90
+ lsls r2, r2, #1
+ adds r0, r2, #0
+ ldrh r1, [r4]
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r7, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #9
+ adds r2, r5, #0
+ movs r3, #0x22
+ bl sub_105A0
+ b _0800F10C
+ .align 2, 0
+_0800F0E4: .4byte 0x0202C5C0
+_0800F0E8: .4byte 0x086A7FAC
+_0800F0EC: .4byte 0x0202C610
+_0800F0F0: .4byte 0x0202C6D0
+_0800F0F4:
+ ldrh r0, [r4]
+ adds r0, #0xe0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r7, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #9
+ adds r2, r5, #0
+ movs r3, #0x22
+ bl sub_105A0
+_0800F10C:
+ adds r5, #1
+ adds r4, #2
+ adds r6, #1
+ cmp r6, #0xd
+ ble _0800F0B6
+ ldr r4, _0800F19C @ =0x0202C5C0
+ lsls r0, r6, #1
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ adds r0, #0xe0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #1
+ str r1, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #9
+ movs r2, #0x18
+ movs r3, #0x22
+ bl sub_105A0
+ movs r5, #1
+ ldr r2, _0800F1A0 @ =0x0202C610
+ str r2, [sp, #0xc]
+ mov sl, r5
+ movs r0, #2
+ mov sb, r0
+_0800F142:
+ lsls r4, r5, #1
+ adds r1, r4, r5
+ lsls r1, r1, #3
+ ldr r0, [sp, #0xc]
+ adds r0, #0xd0
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ldr r2, _0800F1A4 @ =0x0202C6E4
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl sub_F21C
+ movs r6, #0
+ adds r7, r4, #0
+ adds r5, #1
+ mov r8, r5
+_0800F162:
+ adds r4, r6, #1
+ adds r0, r4, #0
+ movs r1, #3
+ bl __modsi3
+ cmp r0, #0
+ bne _0800F1A8
+ lsls r1, r6, #1
+ ldr r0, _0800F19C @ =0x0202C5C0
+ adds r1, r1, r0
+ movs r2, #0xd0
+ lsls r2, r2, #1
+ adds r0, r2, #0
+ ldrh r1, [r1]
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #0
+ adds r2, #0xa
+ mov r1, sl
+ str r1, [sp]
+ mov r1, sb
+ str r1, [sp, #4]
+ movs r1, #9
+ adds r3, r7, #0
+ adds r3, #0x23
+ bl sub_105A0
+ b _0800F1D2
+ .align 2, 0
+_0800F19C: .4byte 0x0202C5C0
+_0800F1A0: .4byte 0x0202C610
+_0800F1A4: .4byte 0x0202C6E4
+_0800F1A8:
+ lsls r1, r6, #1
+ ldr r2, _0800F218 @ =0x0202C5C0
+ adds r1, r1, r2
+ movs r2, #0xb0
+ lsls r2, r2, #1
+ adds r0, r2, #0
+ ldrh r1, [r1]
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #0
+ adds r2, #0xa
+ mov r1, sl
+ str r1, [sp]
+ mov r1, sb
+ str r1, [sp, #4]
+ movs r1, #9
+ adds r3, r7, #0
+ adds r3, #0x23
+ bl sub_105A0
+_0800F1D2:
+ adds r6, r4, #0
+ cmp r4, #0xd
+ ble _0800F162
+ lsls r1, r4, #1
+ ldr r2, _0800F218 @ =0x0202C5C0
+ adds r1, r1, r2
+ movs r2, #0xb0
+ lsls r2, r2, #1
+ adds r0, r2, #0
+ ldrh r1, [r1]
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r3, r7, #0
+ adds r3, #0x23
+ mov r1, sl
+ str r1, [sp]
+ mov r2, sb
+ str r2, [sp, #4]
+ movs r1, #9
+ movs r2, #0x18
+ bl sub_105A0
+ mov r5, r8
+ cmp r5, #7
+ ble _0800F142
+ add sp, #0x10
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F218: .4byte 0x0202C5C0
+
+ thumb_func_start sub_F21C
+sub_F21C: @ 0x0800F21C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ adds r5, r0, #0
+ adds r7, r1, #0
+ cmp r5, #0
+ bne _0800F250
+ cmp r7, #0
+ bne _0800F250
+ ldr r4, _0800F24C @ =0x0202C5C0
+ adds r2, r4, #0
+ movs r1, #0xa
+ adds r0, r4, #0
+ adds r0, #0x1a
+_0800F23E:
+ strh r1, [r0]
+ subs r0, #2
+ cmp r0, r2
+ bge _0800F23E
+ movs r0, #0
+ strh r0, [r4, #0x1c]
+ b _0800F392
+ .align 2, 0
+_0800F24C: .4byte 0x0202C5C0
+_0800F250:
+ ldr r0, _0800F25C @ =0x0098967F
+ cmp r5, r0
+ bls _0800F260
+ adds r5, r0, #0
+ b _0800F266
+ .align 2, 0
+_0800F25C: .4byte 0x0098967F
+_0800F260:
+ ldr r0, _0800F3A4 @ =0x05F5E0FF
+ cmp r7, r0
+ bls _0800F268
+_0800F266:
+ ldr r7, _0800F3A4 @ =0x05F5E0FF
+_0800F268:
+ ldr r4, _0800F3A8 @ =0x0202C5C0
+ ldr r0, _0800F3AC @ =0x000F4240
+ mov sl, r0
+ adds r0, r5, #0
+ mov r1, sl
+ bl __udivsi3
+ str r0, [sp]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r4]
+ adds r0, r5, #0
+ mov r1, sl
+ bl __umodsi3
+ adds r5, r0, #0
+ ldr r0, _0800F3B0 @ =0x000186A0
+ mov sb, r0
+ adds r0, r5, #0
+ mov r1, sb
+ bl __udivsi3
+ strh r0, [r4, #2]
+ adds r0, r5, #0
+ mov r1, sb
+ bl __umodsi3
+ adds r5, r0, #0
+ ldr r1, _0800F3B4 @ =0x00002710
+ mov r8, r1
+ bl __udivsi3
+ strh r0, [r4, #4]
+ adds r0, r5, #0
+ mov r1, r8
+ bl __umodsi3
+ adds r5, r0, #0
+ movs r6, #0xfa
+ lsls r6, r6, #2
+ adds r1, r6, #0
+ bl __udivsi3
+ strh r0, [r4, #6]
+ adds r0, r5, #0
+ adds r1, r6, #0
+ bl __umodsi3
+ adds r5, r0, #0
+ movs r1, #0x64
+ bl __udivsi3
+ strh r0, [r4, #8]
+ adds r0, r5, #0
+ movs r1, #0x64
+ bl __umodsi3
+ adds r5, r0, #0
+ movs r1, #0xa
+ bl __udivsi3
+ strh r0, [r4, #0xa]
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl __umodsi3
+ strh r0, [r4, #0xc]
+ ldr r5, _0800F3B8 @ =0x00989680
+ adds r0, r7, #0
+ adds r1, r5, #0
+ bl __udivsi3
+ strh r0, [r4, #0xe]
+ adds r0, r7, #0
+ adds r1, r5, #0
+ bl __umodsi3
+ adds r5, r0, #0
+ mov r1, sl
+ bl __udivsi3
+ strh r0, [r4, #0x10]
+ adds r0, r5, #0
+ mov r1, sl
+ bl __umodsi3
+ adds r5, r0, #0
+ mov r1, sb
+ bl __udivsi3
+ strh r0, [r4, #0x12]
+ adds r0, r5, #0
+ mov r1, sb
+ bl __umodsi3
+ adds r5, r0, #0
+ mov r1, r8
+ bl __udivsi3
+ strh r0, [r4, #0x14]
+ adds r0, r5, #0
+ mov r1, r8
+ bl __umodsi3
+ adds r5, r0, #0
+ adds r1, r6, #0
+ bl __udivsi3
+ strh r0, [r4, #0x16]
+ adds r0, r5, #0
+ adds r1, r6, #0
+ bl __umodsi3
+ adds r5, r0, #0
+ movs r1, #0x64
+ bl __udivsi3
+ strh r0, [r4, #0x18]
+ adds r0, r5, #0
+ movs r1, #0x64
+ bl __umodsi3
+ adds r5, r0, #0
+ movs r1, #0xa
+ bl __udivsi3
+ strh r0, [r4, #0x1a]
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl __umodsi3
+ strh r0, [r4, #0x1c]
+ ldr r5, [sp]
+ lsls r0, r5, #0x10
+ cmp r0, #0
+ bne _0800F392
+ movs r3, #0xa
+ adds r1, r4, #0
+ adds r2, r4, #0
+ adds r2, #0x1c
+_0800F380:
+ strh r3, [r1]
+ adds r4, #2
+ adds r1, #2
+ cmp r1, r2
+ bgt _0800F392
+ movs r5, #0
+ ldrsh r0, [r4, r5]
+ cmp r0, #0
+ beq _0800F380
+_0800F392:
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F3A4: .4byte 0x05F5E0FF
+_0800F3A8: .4byte 0x0202C5C0
+_0800F3AC: .4byte 0x000F4240
+_0800F3B0: .4byte 0x000186A0
+_0800F3B4: .4byte 0x00002710
+_0800F3B8: .4byte 0x00989680
+
+ thumb_func_start sub_F3BC
+sub_F3BC: @ 0x0800F3BC
+ cmp r0, r2
+ bhi _0800F3C8
+ cmp r0, r2
+ blo _0800F3D4
+ cmp r1, r3
+ bls _0800F3CC
+_0800F3C8:
+ movs r0, #1
+ b _0800F3D8
+_0800F3CC:
+ cmp r1, r3
+ blo _0800F3D4
+ movs r0, #0
+ b _0800F3D8
+_0800F3D4:
+ movs r0, #1
+ rsbs r0, r0, #0
+_0800F3D8:
+ bx lr
+
+ thumb_func_start sub_F3DC
+sub_F3DC: @ 0x0800F3DC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ mov sb, r0
+ mov r8, r1
+ movs r6, #0
+ ldr r7, _0800F414 @ =0x0202C610
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r1, r7, #0
+ adds r1, #0x14
+ adds r5, r0, r1
+ adds r4, r0, #0
+_0800F3FA:
+ adds r0, r7, #0
+ adds r0, #0x10
+ adds r0, r4, r0
+ ldr r2, [r0]
+ ldr r3, [r5]
+ mov r0, sb
+ mov r1, r8
+ bl sub_F3BC
+ cmp r0, #0
+ blt _0800F418
+ adds r0, r6, #0
+ b _0800F426
+ .align 2, 0
+_0800F414: .4byte 0x0202C610
+_0800F418:
+ adds r5, #0x18
+ adds r4, #0x18
+ adds r6, #1
+ cmp r6, #7
+ ble _0800F3FA
+ movs r0, #1
+ rsbs r0, r0, #0
+_0800F426:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_F434
+sub_F434: @ 0x0800F434
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r8, r2
+ mov sb, r3
+ movs r5, #7
+ ldr r0, _0800F4F8 @ =0x0202C610
+ mov ip, r0
+ cmp r5, sb
+ ble _0800F4A4
+ mov sl, ip
+ lsls r0, r2, #1
+ add r0, r8
+ lsls r1, r0, #6
+ mov r2, ip
+ adds r0, r2, r1
+ adds r3, r0, #0
+ adds r3, #0x90
+ adds r7, r1, #0
+ adds r7, #0x90
+ adds r6, r1, #0
+ adds r6, #0xa8
+ adds r0, r1, #0
+ adds r0, #0xac
+ adds r4, r0, r2
+ subs r0, #0x18
+ adds r2, r0, r2
+_0800F474:
+ ldr r0, [r3]
+ str r0, [r3, #0x18]
+ ldr r0, [r2]
+ str r0, [r4]
+ ldr r0, [r2, #4]
+ str r0, [r4, #4]
+ ldr r0, [r2, #8]
+ str r0, [r4, #8]
+ mov r0, sl
+ adds r0, #0x10
+ adds r1, r6, r0
+ adds r0, r7, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r3, #0x14]
+ str r0, [r3, #0x2c]
+ subs r3, #0x18
+ subs r2, #0x18
+ subs r7, #0x18
+ subs r4, #0x18
+ subs r6, #0x18
+ subs r5, #1
+ cmp r5, sb
+ bgt _0800F474
+_0800F4A4:
+ lsls r1, r5, #1
+ adds r1, r1, r5
+ lsls r1, r1, #3
+ mov r2, r8
+ lsls r0, r2, #1
+ add r0, r8
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ mov r2, ip
+ adds r0, r1, r2
+ movs r2, #0
+ str r2, [r0]
+ mov r0, ip
+ adds r0, #4
+ adds r0, r1, r0
+ str r2, [r0]
+ mov r0, ip
+ adds r0, #8
+ adds r0, r1, r0
+ str r2, [r0]
+ mov r0, ip
+ adds r0, #0xc
+ adds r0, r1, r0
+ str r2, [r0]
+ mov r0, ip
+ adds r0, #0x10
+ adds r0, r1, r0
+ ldr r2, [sp]
+ str r2, [r0]
+ mov r0, ip
+ adds r0, #0x14
+ adds r1, r1, r0
+ ldr r0, [sp, #4]
+ str r0, [r1]
+ add sp, #8
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F4F8: .4byte 0x0202C610
+
+ thumb_func_start sub_F4FC
+sub_F4FC: @ 0x0800F4FC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ str r0, [sp]
+ ldr r0, _0800F668 @ =0x0202C550
+ mov r8, r0
+ ldr r1, [sp]
+ lsls r4, r1, #1
+ adds r4, r4, r1
+ lsls r0, r4, #3
+ mov sb, r0
+ mov r6, r8
+ adds r6, #0x10
+ add r6, sb
+ ldr r0, [r6]
+ mov r5, r8
+ adds r5, #0x14
+ add r5, sb
+ ldr r1, [r5]
+ ldr r2, [sp]
+ bl sub_F3DC
+ mov sl, r0
+ ldr r7, _0800F66C @ =0x0202C610
+ lsls r0, r0, #1
+ add r0, sl
+ lsls r0, r0, #3
+ lsls r4, r4, #6
+ adds r4, r0, r4
+ adds r0, r7, #0
+ adds r0, #0x10
+ adds r0, r4, r0
+ ldr r0, [r0]
+ adds r1, r7, #0
+ adds r1, #0x14
+ adds r1, r4, r1
+ ldr r1, [r1]
+ ldr r2, [r6]
+ ldr r3, [r5]
+ bl sub_F3BC
+ mov ip, r8
+ cmp r0, #0
+ bne _0800F5A2
+ adds r0, r4, r7
+ mov r1, sb
+ add r1, ip
+ ldr r2, [r0]
+ ldr r0, [r1]
+ cmp r2, r0
+ bne _0800F5A2
+ adds r1, r7, #4
+ adds r1, r4, r1
+ mov r0, ip
+ adds r0, #4
+ add r0, sb
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _0800F5A2
+ adds r1, r7, #0
+ adds r1, #8
+ adds r1, r4, r1
+ mov r0, ip
+ adds r0, #8
+ add r0, sb
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _0800F5A2
+ adds r1, r7, #0
+ adds r1, #0xc
+ adds r1, r4, r1
+ mov r0, ip
+ adds r0, #0xc
+ add r0, sb
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _0800F656
+_0800F5A2:
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp sl, r0
+ beq _0800F656
+ movs r4, #7
+ ldr r1, _0800F668 @ =0x0202C550
+ mov ip, r1
+ ldr r0, [sp]
+ lsls r3, r0, #1
+ ldr r1, _0800F66C @ =0x0202C610
+ mov r8, r1
+ cmp r4, sl
+ ble _0800F5EA
+ mov r7, r8
+ adds r0, r3, r0
+ lsls r6, r0, #6
+_0800F5C2:
+ movs r5, #0
+ lsls r0, r4, #1
+ subs r1, r4, #1
+ adds r0, r0, r4
+ lsls r0, r0, #3
+ adds r0, r0, r6
+ adds r2, r0, r7
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r0, r6
+ adds r4, r0, r7
+_0800F5DA:
+ ldm r4!, {r0}
+ stm r2!, {r0}
+ adds r5, #1
+ cmp r5, #5
+ ble _0800F5DA
+ adds r4, r1, #0
+ cmp r4, sl
+ bgt _0800F5C2
+_0800F5EA:
+ lsls r2, r4, #1
+ adds r2, r2, r4
+ lsls r2, r2, #3
+ ldr r4, [sp]
+ adds r3, r3, r4
+ lsls r0, r3, #6
+ adds r2, r2, r0
+ mov r0, r8
+ adds r1, r2, r0
+ lsls r3, r3, #3
+ mov r4, ip
+ adds r0, r3, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r8
+ adds r1, #4
+ adds r1, r2, r1
+ mov r0, ip
+ adds r0, #4
+ adds r0, r3, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r8
+ adds r1, #8
+ adds r1, r2, r1
+ mov r0, ip
+ adds r0, #8
+ adds r0, r3, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r8
+ adds r1, #0xc
+ adds r1, r2, r1
+ mov r0, ip
+ adds r0, #0xc
+ adds r0, r3, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r8
+ adds r1, #0x10
+ adds r1, r2, r1
+ mov r0, ip
+ adds r0, #0x10
+ adds r0, r3, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r0, r8
+ adds r0, #0x14
+ adds r2, r2, r0
+ mov r0, ip
+ adds r0, #0x14
+ adds r3, r3, r0
+ ldr r0, [r3]
+ str r0, [r2]
+_0800F656:
+ mov r0, sl
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800F668: .4byte 0x0202C550
+_0800F66C: .4byte 0x0202C610
+
+ thumb_func_start sub_F670
+sub_F670: @ 0x0800F670
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #8
+ adds r7, r0, #0
+ mov r8, r2
+ ldr r2, _0800F6D8 @ =0x086A7FAC
+ lsls r0, r7, #1
+ adds r0, r0, r2
+ ldrh r7, [r0]
+ ldr r6, _0800F6DC @ =0x08079730
+ lsls r4, r1, #1
+ adds r4, r4, r1
+ lsls r4, r4, #2
+ lsls r0, r3, #1
+ adds r0, r0, r3
+ lsls r0, r0, #5
+ adds r4, r4, r0
+ adds r0, r6, #0
+ adds r0, #8
+ adds r0, r4, r0
+ ldr r5, [r0]
+ lsls r0, r5, #5
+ adds r1, r7, #0
+ adds r1, #0x80
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r1, r4, r6
+ mov r2, r8
+ lsls r2, r2, #0x10
+ asrs r2, r2, #0x10
+ mov r8, r2
+ ldr r2, [r1]
+ add r2, r8
+ adds r6, #4
+ adds r4, r4, r6
+ ldr r3, [r4]
+ movs r1, #1
+ str r1, [sp]
+ adds r5, #1
+ str r5, [sp, #4]
+ movs r1, #8
+ bl sub_105A0
+ add sp, #8
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F6D8: .4byte 0x086A7FAC
+_0800F6DC: .4byte 0x08079730
+
+ thumb_func_start sub_F6E0
+sub_F6E0: @ 0x0800F6E0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ ldr r1, _0800F740 @ =0x0202BEB0
+ movs r0, #0
+ strb r0, [r1]
+ movs r2, #0
+ ldr r0, _0800F744 @ =0x0200B134
+ mov r8, r0
+ ldr r3, _0800F748 @ =0x08079430
+ mov ip, r3
+_0800F6F8:
+ movs r1, #0
+ lsls r0, r2, #1
+ adds r7, r2, #1
+ mov sb, r7
+ adds r0, r0, r2
+ lsls r5, r0, #6
+ adds r6, r5, #0
+ adds r6, #0xe4
+_0800F708:
+ lsls r0, r1, #1
+ adds r4, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r1, r0, r6
+ add r1, r8
+ adds r2, r0, r5
+ movs r3, #5
+_0800F718:
+ mov r7, ip
+ adds r0, r2, r7
+ ldr r0, [r0]
+ stm r1!, {r0}
+ adds r2, #4
+ subs r3, #1
+ cmp r3, #0
+ bge _0800F718
+ adds r1, r4, #0
+ cmp r1, #7
+ ble _0800F708
+ mov r2, sb
+ cmp r2, #1
+ ble _0800F6F8
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F740: .4byte 0x0202BEB0
+_0800F744: .4byte 0x0200B134
+_0800F748: .4byte 0x08079430
+
+ thumb_func_start sub_F74C
+sub_F74C: @ 0x0800F74C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x14
+ movs r0, #0
+ mov r8, r0
+ ldr r1, _0800F85C @ =0x0200B134
+ str r1, [sp]
+_0800F760:
+ bl sub_C00
+ movs r1, #0x2a
+ bl __umodsi3
+ lsls r0, r0, #0x18
+ lsrs r4, r0, #0x18
+ mov r3, r8
+ lsls r2, r3, #1
+ adds r1, r2, r3
+ lsls r1, r1, #6
+ ldr r3, _0800F860 @ =0x0200B218
+ adds r0, r1, r3
+ str r4, [r0]
+ mov sb, r2
+ mov r0, r8
+ adds r0, #1
+ str r0, [sp, #8]
+ ldr r2, [sp]
+ adds r1, r2, r1
+ adds r6, r1, #0
+ adds r6, #0xe8
+ movs r5, #2
+_0800F78E:
+ bl sub_C00
+ movs r1, #0xa
+ bl __umodsi3
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #7
+ bhi _0800F7AE
+ bl sub_C00
+ movs r1, #0x2a
+ bl __umodsi3
+ lsls r0, r0, #0x18
+ lsrs r4, r0, #0x18
+_0800F7AE:
+ stm r6!, {r4}
+ subs r5, #1
+ cmp r5, #0
+ bge _0800F78E
+ bl sub_C00
+ adds r7, r0, #0
+ bl sub_C00
+ adds r6, r0, #0
+ mov r0, sb
+ add r0, r8
+ lsls r0, r0, #6
+ ldr r1, [sp]
+ adds r1, #0xf4
+ adds r1, r0, r1
+ str r7, [r1]
+ ldr r3, _0800F864 @ =0x0200B22C
+ adds r1, r0, r3
+ str r6, [r1]
+ movs r1, #1
+ mov r8, r1
+ ldr r2, [sp]
+ str r2, [sp, #4]
+ mov sl, r0
+_0800F7E0:
+ bl sub_C00
+ movs r1, #0x2a
+ bl __umodsi3
+ lsls r0, r0, #0x18
+ lsrs r4, r0, #0x18
+ mov r3, r8
+ lsls r2, r3, #1
+ adds r1, r2, r3
+ lsls r1, r1, #3
+ mov r3, sl
+ adds r0, r1, r3
+ ldr r3, _0800F860 @ =0x0200B218
+ adds r0, r0, r3
+ str r4, [r0]
+ str r2, [sp, #0x10]
+ mov r0, r8
+ adds r0, #1
+ str r0, [sp, #0xc]
+ adds r1, #4
+ movs r5, #2
+ adds r0, r3, #0
+ add r0, sl
+ adds r1, r1, r0
+ mov sb, r1
+_0800F814:
+ bl sub_C00
+ movs r1, #0xa
+ bl __umodsi3
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #7
+ bhi _0800F834
+ bl sub_C00
+ movs r1, #0x2a
+ bl __umodsi3
+ lsls r0, r0, #0x18
+ lsrs r4, r0, #0x18
+_0800F834:
+ mov r1, sb
+ adds r1, #4
+ mov sb, r1
+ subs r1, #4
+ stm r1!, {r4}
+ subs r5, #1
+ cmp r5, #0
+ bge _0800F814
+ bl sub_C00
+ adds r1, r7, #0
+ bl __umodsi3
+ adds r7, r0, #0
+ cmp r7, #0
+ beq _0800F868
+ bl sub_C00
+ b _0800F872
+ .align 2, 0
+_0800F85C: .4byte 0x0200B134
+_0800F860: .4byte 0x0200B218
+_0800F864: .4byte 0x0200B22C
+_0800F868:
+ bl sub_C00
+ adds r1, r6, #0
+ bl __umodsi3
+_0800F872:
+ adds r6, r0, #0
+ ldr r1, [sp, #0x10]
+ add r1, r8
+ lsls r1, r1, #3
+ add r1, sl
+ ldr r0, [sp, #4]
+ adds r0, #0xf4
+ adds r0, r1, r0
+ str r7, [r0]
+ ldr r2, _0800F8AC @ =0x0200B22C
+ adds r1, r1, r2
+ str r6, [r1]
+ ldr r3, [sp, #0xc]
+ mov r8, r3
+ cmp r3, #7
+ ble _0800F7E0
+ ldr r0, [sp, #8]
+ mov r8, r0
+ cmp r0, #1
+ bgt _0800F89C
+ b _0800F760
+_0800F89C:
+ add sp, #0x14
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F8AC: .4byte 0x0200B22C
+
+ thumb_func_start sub_F8B0
+sub_F8B0: @ 0x0800F8B0
+ push {r4, r5, r6, r7, lr}
+ lsls r2, r2, #0x10
+ lsrs r5, r2, #0x10
+ cmp r0, #0
+ beq _0800F8BC
+ b _0800F9CC
+_0800F8BC:
+ cmp r1, #0
+ bne _0800F93C
+ ldr r0, _0800F924 @ =0x03005C00
+ ldr r7, _0800F928 @ =0x000090EA
+ ldr r6, _0800F92C @ =0x0000912A
+ ldr r1, _0800F930 @ =0x086A7FA4
+ adds r2, r0, #0
+ adds r2, #0x98
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r1
+ movs r4, #0xe
+_0800F8D4:
+ ldrh r1, [r2]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800F8E8
+ cmp r0, r6
+ beq _0800F8E8
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r1, r0
+ strh r0, [r2]
+_0800F8E8:
+ adds r2, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800F8D4
+ ldr r0, _0800F924 @ =0x03005C00
+ ldr r7, _0800F934 @ =0x0000910A
+ ldr r6, _0800F938 @ =0x0000914A
+ ldr r1, _0800F930 @ =0x086A7FA4
+ adds r3, r0, #0
+ adds r3, #0xd8
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r1
+ movs r4, #0xe
+_0800F904:
+ ldrh r1, [r3]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800F918
+ cmp r0, r6
+ beq _0800F918
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r1, r0
+ strh r0, [r3]
+_0800F918:
+ adds r3, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800F904
+ b _0800FAC2
+ .align 2, 0
+_0800F924: .4byte 0x03005C00
+_0800F928: .4byte 0x000090EA
+_0800F92C: .4byte 0x0000912A
+_0800F930: .4byte 0x086A7FA4
+_0800F934: .4byte 0x0000910A
+_0800F938: .4byte 0x0000914A
+_0800F93C:
+ lsls r1, r1, #1
+ adds r0, r1, #3
+ lsls r0, r0, #5
+ adds r3, r0, #0
+ adds r3, #0xc
+ adds r6, r1, #0
+ ldr r1, _0800F9B4 @ =0x03005C00
+ ldr r0, _0800F9B8 @ =0x0000916A
+ mov ip, r0
+ ldr r7, _0800F9BC @ =0x000091AA
+ ldr r2, _0800F9C0 @ =0x086A7FA4
+ lsls r0, r3, #1
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r2
+ movs r4, #0xe
+_0800F95E:
+ ldrh r2, [r1]
+ adds r0, r2, #0
+ cmp r0, ip
+ beq _0800F972
+ cmp r0, r7
+ beq _0800F972
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r2, r0
+ strh r0, [r1]
+_0800F972:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800F95E
+ adds r0, r6, #4
+ lsls r0, r0, #5
+ adds r3, r0, #0
+ adds r3, #0xc
+ ldr r1, _0800F9B4 @ =0x03005C00
+ ldr r7, _0800F9C4 @ =0x0000918A
+ ldr r6, _0800F9C8 @ =0x000091CA
+ ldr r2, _0800F9C0 @ =0x086A7FA4
+ lsls r0, r3, #1
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r2
+ movs r4, #0xe
+_0800F996:
+ ldrh r3, [r1]
+ adds r0, r3, #0
+ cmp r0, r7
+ beq _0800F9AA
+ cmp r0, r6
+ beq _0800F9AA
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r3, r0
+ strh r0, [r1]
+_0800F9AA:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800F996
+ b _0800FAC2
+ .align 2, 0
+_0800F9B4: .4byte 0x03005C00
+_0800F9B8: .4byte 0x0000916A
+_0800F9BC: .4byte 0x000091AA
+_0800F9C0: .4byte 0x086A7FA4
+_0800F9C4: .4byte 0x0000918A
+_0800F9C8: .4byte 0x000091CA
+_0800F9CC:
+ cmp r1, #0
+ bne _0800FA54
+ ldr r0, _0800FA34 @ =0x03005C00
+ ldr r7, _0800FA38 @ =0x000090EA
+ ldr r6, _0800FA3C @ =0x0000912A
+ ldr r1, _0800FA40 @ =0x086A7FA4
+ ldr r3, _0800FA44 @ =0x00000894
+ adds r2, r0, r3
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r1
+ movs r4, #0xe
+_0800F9E4:
+ ldrh r1, [r2]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800F9F8
+ cmp r0, r6
+ beq _0800F9F8
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r1, r0
+ strh r0, [r2]
+_0800F9F8:
+ adds r2, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800F9E4
+ ldr r0, _0800FA34 @ =0x03005C00
+ ldr r7, _0800FA48 @ =0x0000910A
+ ldr r6, _0800FA4C @ =0x0000914A
+ ldr r1, _0800FA40 @ =0x086A7FA4
+ ldr r4, _0800FA50 @ =0x000008D4
+ adds r3, r0, r4
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r1
+ movs r4, #0xe
+_0800FA14:
+ ldrh r1, [r3]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800FA28
+ cmp r0, r6
+ beq _0800FA28
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r1, r0
+ strh r0, [r3]
+_0800FA28:
+ adds r3, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FA14
+ b _0800FAC2
+ .align 2, 0
+_0800FA34: .4byte 0x03005C00
+_0800FA38: .4byte 0x000090EA
+_0800FA3C: .4byte 0x0000912A
+_0800FA40: .4byte 0x086A7FA4
+_0800FA44: .4byte 0x00000894
+_0800FA48: .4byte 0x0000910A
+_0800FA4C: .4byte 0x0000914A
+_0800FA50: .4byte 0x000008D4
+_0800FA54:
+ lsls r0, r1, #1
+ lsls r3, r0, #6
+ adds r6, r0, #0
+ ldr r1, _0800FAC8 @ =0x03005C00
+ ldr r0, _0800FACC @ =0x0000916A
+ mov ip, r0
+ ldr r7, _0800FAD0 @ =0x000091AA
+ ldr r2, _0800FAD4 @ =0x086A7FA4
+ ldr r4, _0800FAD8 @ =0x000008D4
+ adds r0, r3, r4
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r2
+ movs r4, #0xe
+_0800FA72:
+ ldrh r2, [r1]
+ adds r0, r2, #0
+ cmp r0, ip
+ beq _0800FA86
+ cmp r0, r7
+ beq _0800FA86
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r2, r0
+ strh r0, [r1]
+_0800FA86:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FA72
+ lsls r3, r6, #6
+ ldr r1, _0800FAC8 @ =0x03005C00
+ ldr r7, _0800FADC @ =0x0000918A
+ ldr r6, _0800FAE0 @ =0x000091CA
+ ldr r2, _0800FAD4 @ =0x086A7FA4
+ ldr r4, _0800FAE4 @ =0x00000914
+ adds r0, r3, r4
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r2
+ movs r4, #0xe
+_0800FAA6:
+ ldrh r3, [r1]
+ adds r0, r3, #0
+ cmp r0, r7
+ beq _0800FABA
+ cmp r0, r6
+ beq _0800FABA
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r3, r0
+ strh r0, [r1]
+_0800FABA:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FAA6
+_0800FAC2:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FAC8: .4byte 0x03005C00
+_0800FACC: .4byte 0x0000916A
+_0800FAD0: .4byte 0x000091AA
+_0800FAD4: .4byte 0x086A7FA4
+_0800FAD8: .4byte 0x000008D4
+_0800FADC: .4byte 0x0000918A
+_0800FAE0: .4byte 0x000091CA
+_0800FAE4: .4byte 0x00000914
+
+ thumb_func_start sub_FAE8
+sub_FAE8: @ 0x0800FAE8
+ push {r4, r5, r6, r7, lr}
+ lsls r2, r2, #0x10
+ lsrs r5, r2, #0x10
+ cmp r0, #0
+ beq _0800FAF4
+ b _0800FC04
+_0800FAF4:
+ cmp r1, #0
+ bne _0800FB74
+ ldr r0, _0800FB5C @ =0x03005C00
+ ldr r7, _0800FB60 @ =0x000090EA
+ ldr r6, _0800FB64 @ =0x0000912A
+ ldr r1, _0800FB68 @ =0x086A7FA8
+ adds r2, r0, #0
+ adds r2, #0x98
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r1
+ movs r4, #0xe
+_0800FB0C:
+ ldrh r1, [r2]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800FB20
+ cmp r0, r6
+ beq _0800FB20
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r1, r0
+ strh r0, [r2]
+_0800FB20:
+ adds r2, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FB0C
+ ldr r0, _0800FB5C @ =0x03005C00
+ ldr r7, _0800FB6C @ =0x0000910A
+ ldr r6, _0800FB70 @ =0x0000914A
+ ldr r1, _0800FB68 @ =0x086A7FA8
+ adds r3, r0, #0
+ adds r3, #0xd8
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r1
+ movs r4, #0xe
+_0800FB3C:
+ ldrh r1, [r3]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800FB50
+ cmp r0, r6
+ beq _0800FB50
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r1, r0
+ strh r0, [r3]
+_0800FB50:
+ adds r3, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FB3C
+ b _0800FCFA
+ .align 2, 0
+_0800FB5C: .4byte 0x03005C00
+_0800FB60: .4byte 0x000090EA
+_0800FB64: .4byte 0x0000912A
+_0800FB68: .4byte 0x086A7FA8
+_0800FB6C: .4byte 0x0000910A
+_0800FB70: .4byte 0x0000914A
+_0800FB74:
+ lsls r1, r1, #1
+ adds r0, r1, #3
+ lsls r0, r0, #5
+ adds r3, r0, #0
+ adds r3, #0xc
+ adds r6, r1, #0
+ ldr r1, _0800FBEC @ =0x03005C00
+ ldr r0, _0800FBF0 @ =0x0000916A
+ mov ip, r0
+ ldr r7, _0800FBF4 @ =0x000091AA
+ ldr r2, _0800FBF8 @ =0x086A7FA8
+ lsls r0, r3, #1
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r2
+ movs r4, #0xe
+_0800FB96:
+ ldrh r2, [r1]
+ adds r0, r2, #0
+ cmp r0, ip
+ beq _0800FBAA
+ cmp r0, r7
+ beq _0800FBAA
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r2, r0
+ strh r0, [r1]
+_0800FBAA:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FB96
+ adds r0, r6, #4
+ lsls r0, r0, #5
+ adds r3, r0, #0
+ adds r3, #0xc
+ ldr r1, _0800FBEC @ =0x03005C00
+ ldr r7, _0800FBFC @ =0x0000918A
+ ldr r6, _0800FC00 @ =0x000091CA
+ ldr r2, _0800FBF8 @ =0x086A7FA8
+ lsls r0, r3, #1
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r2
+ movs r4, #0xe
+_0800FBCE:
+ ldrh r3, [r1]
+ adds r0, r3, #0
+ cmp r0, r7
+ beq _0800FBE2
+ cmp r0, r6
+ beq _0800FBE2
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r3, r0
+ strh r0, [r1]
+_0800FBE2:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FBCE
+ b _0800FCFA
+ .align 2, 0
+_0800FBEC: .4byte 0x03005C00
+_0800FBF0: .4byte 0x0000916A
+_0800FBF4: .4byte 0x000091AA
+_0800FBF8: .4byte 0x086A7FA8
+_0800FBFC: .4byte 0x0000918A
+_0800FC00: .4byte 0x000091CA
+_0800FC04:
+ cmp r1, #0
+ bne _0800FC8C
+ ldr r0, _0800FC6C @ =0x03005C00
+ ldr r7, _0800FC70 @ =0x000090EA
+ ldr r6, _0800FC74 @ =0x0000912A
+ ldr r1, _0800FC78 @ =0x086A7FA8
+ ldr r3, _0800FC7C @ =0x00000894
+ adds r2, r0, r3
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r1
+ movs r4, #0xe
+_0800FC1C:
+ ldrh r1, [r2]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800FC30
+ cmp r0, r6
+ beq _0800FC30
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r1, r0
+ strh r0, [r2]
+_0800FC30:
+ adds r2, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FC1C
+ ldr r0, _0800FC6C @ =0x03005C00
+ ldr r7, _0800FC80 @ =0x0000910A
+ ldr r6, _0800FC84 @ =0x0000914A
+ ldr r1, _0800FC78 @ =0x086A7FA8
+ ldr r4, _0800FC88 @ =0x000008D4
+ adds r3, r0, r4
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r1
+ movs r4, #0xe
+_0800FC4C:
+ ldrh r1, [r3]
+ adds r0, r1, #0
+ cmp r0, r7
+ beq _0800FC60
+ cmp r0, r6
+ beq _0800FC60
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r1, r0
+ strh r0, [r3]
+_0800FC60:
+ adds r3, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FC4C
+ b _0800FCFA
+ .align 2, 0
+_0800FC6C: .4byte 0x03005C00
+_0800FC70: .4byte 0x000090EA
+_0800FC74: .4byte 0x0000912A
+_0800FC78: .4byte 0x086A7FA8
+_0800FC7C: .4byte 0x00000894
+_0800FC80: .4byte 0x0000910A
+_0800FC84: .4byte 0x0000914A
+_0800FC88: .4byte 0x000008D4
+_0800FC8C:
+ lsls r0, r1, #1
+ lsls r3, r0, #6
+ adds r6, r0, #0
+ ldr r1, _0800FD00 @ =0x03005C00
+ ldr r0, _0800FD04 @ =0x0000916A
+ mov ip, r0
+ ldr r7, _0800FD08 @ =0x000091AA
+ ldr r2, _0800FD0C @ =0x086A7FA8
+ ldr r4, _0800FD10 @ =0x000008D4
+ adds r0, r3, r4
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r3, r0, r2
+ movs r4, #0xe
+_0800FCAA:
+ ldrh r2, [r1]
+ adds r0, r2, #0
+ cmp r0, ip
+ beq _0800FCBE
+ cmp r0, r7
+ beq _0800FCBE
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r2, r0
+ strh r0, [r1]
+_0800FCBE:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FCAA
+ lsls r3, r6, #6
+ ldr r1, _0800FD00 @ =0x03005C00
+ ldr r7, _0800FD14 @ =0x0000918A
+ ldr r6, _0800FD18 @ =0x000091CA
+ ldr r2, _0800FD0C @ =0x086A7FA8
+ ldr r4, _0800FD1C @ =0x00000914
+ adds r0, r3, r4
+ adds r1, r0, r1
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r2
+ movs r4, #0xe
+_0800FCDE:
+ ldrh r3, [r1]
+ adds r0, r3, #0
+ cmp r0, r7
+ beq _0800FCF2
+ cmp r0, r6
+ beq _0800FCF2
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, r3, r0
+ strh r0, [r1]
+_0800FCF2:
+ adds r1, #2
+ subs r4, #1
+ cmp r4, #0
+ bge _0800FCDE
+_0800FCFA:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FD00: .4byte 0x03005C00
+_0800FD04: .4byte 0x0000916A
+_0800FD08: .4byte 0x000091AA
+_0800FD0C: .4byte 0x086A7FA8
+_0800FD10: .4byte 0x000008D4
+_0800FD14: .4byte 0x0000918A
+_0800FD18: .4byte 0x000091CA
+_0800FD1C: .4byte 0x00000914
+
+ thumb_func_start sub_FD20
+sub_FD20: @ 0x0800FD20
+ sub sp, #0x19c
+ movs r2, #0
+ ldr r3, _0800FD48 @ =0x0200B134
+ mov r1, sp
+_0800FD28:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _0800FD28
+ movs r2, #0
+ mov r1, sp
+_0800FD3A:
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ beq _0800FD4C
+ movs r0, #0
+ b _0800FD56
+ .align 2, 0
+_0800FD48: .4byte 0x0200B134
+_0800FD4C:
+ adds r1, #2
+ adds r2, #1
+ cmp r2, #0xc8
+ ble _0800FD3A
+ movs r0, #1
+_0800FD56:
+ add sp, #0x19c
+ bx lr
+
+ thumb_func_start sub_FD5C
+sub_FD5C: @ 0x0800FD5C
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #4
+ mov r8, r0
+ ldr r4, _0800FDC8 @ =0x040000D4
+ movs r6, #0xa0
+ lsls r6, r6, #0x13
+ str r6, [r4]
+ ldr r2, _0800FDCC @ =0x0201A920
+ str r2, [r4, #4]
+ ldr r5, _0800FDD0 @ =0x80000200
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r1, sp
+ ldr r3, _0800FDD4 @ =0x00007FFF
+ adds r0, r3, #0
+ strh r0, [r1]
+ str r1, [r4]
+ ldr r0, _0800FDD8 @ =0xFFFFFC00
+ adds r1, r2, r0
+ str r1, [r4, #4]
+ ldr r0, _0800FDDC @ =0x81000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ str r1, [r4]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r2, r2, r3
+ str r2, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ str r2, [r4]
+ str r6, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_1050C
+ movs r7, #0
+_0800FDAA:
+ mov r0, r8
+ cmp r0, #0
+ beq _0800FDB4
+ bl _call_via_r8
+_0800FDB4:
+ adds r0, r7, #0
+ bl sub_1001C
+ bl sub_D74
+ cmp r7, #0x1f
+ bne _0800FDE0
+ ldr r0, _0800FDCC @ =0x0201A920
+ b _0800FDE2
+ .align 2, 0
+_0800FDC8: .4byte 0x040000D4
+_0800FDCC: .4byte 0x0201A920
+_0800FDD0: .4byte 0x80000200
+_0800FDD4: .4byte 0x00007FFF
+_0800FDD8: .4byte 0xFFFFFC00
+_0800FDDC: .4byte 0x81000200
+_0800FDE0:
+ ldr r0, _0800FE00 @ =0x0201AD20
+_0800FDE2:
+ str r0, [r4]
+ str r6, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ adds r0, r7, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #0x1f
+ bls _0800FDAA
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FE00: .4byte 0x0201AD20
+
+ thumb_func_start sub_FE04
+sub_FE04: @ 0x0800FE04
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #4
+ adds r5, r0, #0
+ ldr r1, _0800FE6C @ =0x040000D4
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ mov r8, r0
+ str r0, [r1]
+ ldr r3, _0800FE70 @ =0x0201A520
+ str r3, [r1, #4]
+ ldr r4, _0800FE74 @ =0x80000200
+ str r4, [r1, #8]
+ ldr r0, [r1, #8]
+ mov r2, sp
+ ldr r6, _0800FE78 @ =0x00007FFF
+ adds r0, r6, #0
+ strh r0, [r2]
+ str r2, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r3, r2
+ str r0, [r1, #4]
+ ldr r0, _0800FE7C @ =0x81000200
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ str r3, [r1]
+ movs r6, #0x80
+ lsls r6, r6, #4
+ adds r3, r3, r6
+ str r3, [r1, #4]
+ str r4, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r7, #0
+ adds r6, r1, #0
+_0800FE4C:
+ cmp r5, #0
+ beq _0800FE54
+ bl _call_via_r5
+_0800FE54:
+ adds r0, r7, #0
+ bl sub_1001C
+ bl sub_D74
+ cmp r7, #0x1f
+ bne _0800FE84
+ ldr r0, _0800FE80 @ =0x0201A920
+ str r0, [r6]
+ mov r0, r8
+ str r0, [r6, #4]
+ b _0800FE8C
+ .align 2, 0
+_0800FE6C: .4byte 0x040000D4
+_0800FE70: .4byte 0x0201A520
+_0800FE74: .4byte 0x80000200
+_0800FE78: .4byte 0x00007FFF
+_0800FE7C: .4byte 0x81000200
+_0800FE80: .4byte 0x0201A920
+_0800FE84:
+ ldr r0, _0800FEB4 @ =0x0201AD20
+ str r0, [r6]
+ mov r2, r8
+ str r2, [r6, #4]
+_0800FE8C:
+ str r4, [r6, #8]
+ ldr r0, [r6, #8]
+ adds r0, r7, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #0x1f
+ bls _0800FE4C
+ bl sub_10528
+ bl sub_D74
+ bl sub_490
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FEB4: .4byte 0x0201AD20
+
+ thumb_func_start sub_FEB8
+sub_FEB8: @ 0x0800FEB8
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #4
+ mov r8, r2
+ ldr r4, _0800FF34 @ =0x040000D4
+ str r0, [r4]
+ ldr r2, _0800FF38 @ =0x0201A920
+ str r2, [r4, #4]
+ ldr r0, _0800FF3C @ =0x80000100
+ str r0, [r4, #8]
+ ldr r3, [r4, #8]
+ str r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r3, r2, r1
+ str r3, [r4, #4]
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r1, sp
+ movs r0, #0
+ strh r0, [r1]
+ str r1, [r4]
+ ldr r0, _0800FF40 @ =0xFFFFFC00
+ adds r2, r2, r0
+ str r2, [r4, #4]
+ ldr r0, _0800FF44 @ =0x81000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ str r2, [r4]
+ str r3, [r4, #4]
+ ldr r5, _0800FF48 @ =0x80000200
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ str r3, [r4]
+ movs r6, #0xa0
+ lsls r6, r6, #0x13
+ str r6, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_1050C
+ ldr r1, _0800FF4C @ =0x0200B0C0
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ ldrh r0, [r0]
+ strh r0, [r1, #0x16]
+ movs r7, #0
+_0800FF18:
+ mov r1, r8
+ cmp r1, #0
+ beq _0800FF22
+ bl _call_via_r8
+_0800FF22:
+ adds r0, r7, #0
+ bl sub_1001C
+ bl sub_D74
+ cmp r7, #0x1f
+ bne _0800FF50
+ ldr r0, _0800FF38 @ =0x0201A920
+ b _0800FF52
+ .align 2, 0
+_0800FF34: .4byte 0x040000D4
+_0800FF38: .4byte 0x0201A920
+_0800FF3C: .4byte 0x80000100
+_0800FF40: .4byte 0xFFFFFC00
+_0800FF44: .4byte 0x81000200
+_0800FF48: .4byte 0x80000200
+_0800FF4C: .4byte 0x0200B0C0
+_0800FF50:
+ ldr r0, _0800FF70 @ =0x0201AD20
+_0800FF52:
+ str r0, [r4]
+ str r6, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ adds r0, r7, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #0x1f
+ bls _0800FF18
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FF70: .4byte 0x0201AD20
+
+ thumb_func_start sub_FF74
+sub_FF74: @ 0x0800FF74
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #4
+ adds r5, r0, #0
+ ldr r1, _0800FFDC @ =0x040000D4
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ mov r8, r0
+ str r0, [r1]
+ ldr r3, _0800FFE0 @ =0x0201A520
+ str r3, [r1, #4]
+ ldr r4, _0800FFE4 @ =0x80000200
+ str r4, [r1, #8]
+ ldr r0, [r1, #8]
+ mov r2, sp
+ movs r0, #0
+ strh r0, [r2]
+ str r2, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r3, r2
+ str r0, [r1, #4]
+ ldr r0, _0800FFE8 @ =0x81000200
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ str r3, [r1]
+ movs r0, #0x80
+ lsls r0, r0, #4
+ adds r3, r3, r0
+ str r3, [r1, #4]
+ str r4, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r7, #0
+ adds r6, r1, #0
+_0800FFBA:
+ cmp r5, #0
+ beq _0800FFC2
+ bl _call_via_r5
+_0800FFC2:
+ adds r0, r7, #0
+ bl sub_1001C
+ bl sub_D74
+ cmp r7, #0x1f
+ bne _0800FFF0
+ ldr r0, _0800FFEC @ =0x0201A920
+ str r0, [r6]
+ mov r2, r8
+ str r2, [r6, #4]
+ b _0800FFF8
+ .align 2, 0
+_0800FFDC: .4byte 0x040000D4
+_0800FFE0: .4byte 0x0201A520
+_0800FFE4: .4byte 0x80000200
+_0800FFE8: .4byte 0x81000200
+_0800FFEC: .4byte 0x0201A920
+_0800FFF0:
+ ldr r0, _08010018 @ =0x0201AD20
+ str r0, [r6]
+ mov r0, r8
+ str r0, [r6, #4]
+_0800FFF8:
+ str r4, [r6, #8]
+ ldr r0, [r6, #8]
+ adds r0, r7, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #0x1f
+ bls _0800FFBA
+ bl sub_D74
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010018: .4byte 0x0201AD20
+
+ thumb_func_start sub_1001C
+sub_1001C: @ 0x0801001C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x14
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ add r1, sp, #0xc
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #2
+ strh r0, [r1, #2]
+ movs r0, #1
+ strh r0, [r1, #4]
+ movs r2, #3
+ strh r2, [r1, #6]
+ adds r0, r7, #0
+ ands r0, r2
+ lsls r0, r0, #1
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ lsls r0, r0, #0x17
+ lsrs r1, r0, #0x10
+ mov ip, r1
+ movs r1, #0x80
+ lsls r1, r1, #0x10
+ adds r0, r0, r1
+ lsrs r0, r0, #0x10
+ mov r8, r0
+ ldr r0, _080100D8 @ =0x0000FFFC
+ ands r7, r0
+ adds r0, r7, #4
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp ip, r8
+ bhs _08010160
+ add r5, sp, #8
+ ldr r0, _080100DC @ =0x0201A520
+ mov sb, r0
+ add r4, sp, #4
+ mov r6, sp
+ movs r1, #0xf8
+ lsls r1, r1, #7
+ mov sl, r1
+_08010076:
+ mov r0, ip
+ lsls r3, r0, #1
+ mov r1, sb
+ adds r2, r3, r1
+ ldrh r1, [r2]
+ movs r0, #0x1f
+ ands r0, r1
+ strh r0, [r5]
+ ldrh r1, [r2]
+ movs r0, #0xf8
+ lsls r0, r0, #2
+ ands r0, r1
+ lsrs r0, r0, #5
+ strh r0, [r4]
+ ldrh r1, [r2]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xa
+ strh r0, [r6]
+ movs r2, #0x80
+ lsls r2, r2, #3
+ add r2, sb
+ adds r2, r3, r2
+ ldrh r1, [r2]
+ movs r0, #0x1f
+ ands r0, r1
+ strh r0, [r5, #2]
+ ldrh r1, [r2]
+ movs r0, #0xf8
+ lsls r0, r0, #2
+ ands r0, r1
+ lsrs r0, r0, #5
+ strh r0, [r4, #2]
+ ldrh r1, [r2]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xa
+ strh r0, [r6, #2]
+ ldrh r1, [r6]
+ cmp r1, r0
+ bhs _080100E0
+ ldrh r0, [r6, #2]
+ subs r0, r0, r1
+ muls r0, r7, r0
+ asrs r0, r0, #5
+ adds r1, r1, r0
+ strh r1, [r6]
+ b _080100EE
+ .align 2, 0
+_080100D8: .4byte 0x0000FFFC
+_080100DC: .4byte 0x0201A520
+_080100E0:
+ ldrh r0, [r6]
+ ldrh r1, [r6, #2]
+ subs r1, r0, r1
+ muls r1, r7, r1
+ asrs r1, r1, #5
+ subs r0, r0, r1
+ strh r0, [r6]
+_080100EE:
+ ldrh r1, [r4, #2]
+ ldrh r0, [r4]
+ cmp r0, r1
+ bhs _08010106
+ ldrh r0, [r4, #2]
+ ldrh r1, [r4]
+ subs r0, r0, r1
+ muls r0, r7, r0
+ asrs r0, r0, #5
+ adds r1, r1, r0
+ strh r1, [r4]
+ b _08010114
+_08010106:
+ ldrh r0, [r4]
+ ldrh r1, [r4, #2]
+ subs r1, r0, r1
+ muls r1, r7, r1
+ asrs r1, r1, #5
+ subs r0, r0, r1
+ strh r0, [r4]
+_08010114:
+ ldrh r1, [r5, #2]
+ ldrh r0, [r5]
+ cmp r0, r1
+ bhs _0801012C
+ ldrh r0, [r5, #2]
+ ldrh r1, [r5]
+ subs r0, r0, r1
+ muls r0, r7, r0
+ asrs r0, r0, #5
+ adds r1, r1, r0
+ strh r1, [r5]
+ b _0801013A
+_0801012C:
+ ldrh r0, [r5]
+ ldrh r1, [r5, #2]
+ subs r1, r0, r1
+ muls r1, r7, r1
+ asrs r1, r1, #5
+ subs r0, r0, r1
+ strh r0, [r5]
+_0801013A:
+ movs r2, #0x80
+ lsls r2, r2, #4
+ add r2, sb
+ adds r2, r3, r2
+ ldrh r1, [r6]
+ lsls r1, r1, #0xa
+ ldrh r0, [r4]
+ lsls r0, r0, #5
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, ip
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov ip, r0
+ cmp ip, r8
+ blo _08010076
+_08010160:
+ add sp, #0x14
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_10170
+sub_10170: @ 0x08010170
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x14
+ str r1, [sp, #0x10]
+ lsls r2, r2, #0x10
+ lsrs r1, r2, #0x10
+ mov r8, r1
+ lsls r3, r3, #0x10
+ lsrs r3, r3, #0x10
+ mov ip, r3
+ ldr r1, _08010298 @ =0x040000D4
+ str r0, [r1]
+ ldr r4, _0801029C @ =0x0201A520
+ str r4, [r1, #4]
+ lsrs r2, r2, #0x11
+ movs r0, #0x80
+ lsls r0, r0, #0x18
+ orrs r0, r2
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add r3, sp, #0xc
+ movs r0, #0
+ strh r0, [r3]
+ str r3, [r1]
+ movs r0, #0x80
+ lsls r0, r0, #3
+ adds r3, r4, r0
+ str r3, [r1, #4]
+ movs r0, #0x81
+ lsls r0, r0, #0x18
+ orrs r2, r0
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r7, #0
+ cmp r7, r8
+ bhs _08010270
+ add r5, sp, #8
+ add r4, sp, #4
+ movs r1, #0xf8
+ lsls r1, r1, #2
+ mov sl, r1
+ mov r6, sp
+ movs r0, #0xf8
+ lsls r0, r0, #7
+ mov sb, r0
+_080101D0:
+ lsls r3, r7, #1
+ ldr r1, _0801029C @ =0x0201A520
+ adds r2, r3, r1
+ ldrh r1, [r2]
+ movs r0, #0x1f
+ ands r0, r1
+ strh r0, [r5]
+ ldrh r1, [r2]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #5
+ strh r0, [r4]
+ ldrh r1, [r2]
+ mov r0, sb
+ ands r0, r1
+ lsrs r0, r0, #0xa
+ strh r0, [r6]
+ ldr r0, _080102A0 @ =0x0201A920
+ adds r2, r3, r0
+ ldrh r1, [r2]
+ movs r0, #0x1f
+ ands r0, r1
+ strh r0, [r5, #2]
+ ldrh r1, [r2]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #5
+ strh r0, [r4, #2]
+ ldrh r1, [r2]
+ mov r0, sb
+ ands r0, r1
+ lsrs r1, r0, #0xa
+ strh r1, [r6, #2]
+ ldrh r0, [r6]
+ cmp r0, r1
+ bls _08010222
+ adds r1, r0, #0
+ mov r0, ip
+ muls r0, r1, r0
+ asrs r0, r0, #5
+ subs r1, r1, r0
+_08010222:
+ strh r1, [r6]
+ ldrh r1, [r4, #2]
+ ldrh r0, [r4]
+ cmp r0, r1
+ bls _08010236
+ adds r1, r0, #0
+ mov r0, ip
+ muls r0, r1, r0
+ asrs r0, r0, #5
+ subs r1, r1, r0
+_08010236:
+ strh r1, [r4]
+ ldrh r1, [r5, #2]
+ ldrh r0, [r5]
+ cmp r0, r1
+ bls _0801024A
+ adds r1, r0, #0
+ mov r0, ip
+ muls r0, r1, r0
+ asrs r0, r0, #5
+ subs r1, r1, r0
+_0801024A:
+ strh r1, [r5]
+ ldr r1, _0801029C @ =0x0201A520
+ movs r0, #0x80
+ lsls r0, r0, #4
+ adds r2, r1, r0
+ adds r2, r3, r2
+ ldrh r1, [r6]
+ lsls r1, r1, #0xa
+ ldrh r0, [r4]
+ lsls r0, r0, #5
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r2]
+ adds r0, r7, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, r8
+ blo _080101D0
+_08010270:
+ ldr r2, _08010298 @ =0x040000D4
+ ldr r1, _080102A4 @ =0x0201AD20
+ str r1, [r2]
+ ldr r0, [sp, #0x10]
+ str r0, [r2, #4]
+ mov r1, r8
+ lsrs r0, r1, #1
+ movs r1, #0x80
+ lsls r1, r1, #0x18
+ orrs r0, r1
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ add sp, #0x14
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010298: .4byte 0x040000D4
+_0801029C: .4byte 0x0201A520
+_080102A0: .4byte 0x0201A920
+_080102A4: .4byte 0x0201AD20
+
+ thumb_func_start sub_102A8
+sub_102A8: @ 0x080102A8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x14
+ str r1, [sp, #0x10]
+ lsls r2, r2, #0x10
+ lsrs r1, r2, #0x10
+ mov r8, r1
+ lsls r3, r3, #0x10
+ lsrs r7, r3, #0x10
+ ldr r1, _08010368 @ =0x040000D4
+ str r0, [r1]
+ ldr r4, _0801036C @ =0x0201A520
+ str r4, [r1, #4]
+ lsrs r2, r2, #0x11
+ movs r0, #0x80
+ lsls r0, r0, #0x18
+ orrs r0, r2
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add r3, sp, #0xc
+ ldr r5, _08010370 @ =0x00007FFF
+ adds r0, r5, #0
+ strh r0, [r3]
+ str r3, [r1]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r0, r4, r3
+ str r0, [r1, #4]
+ movs r0, #0x81
+ lsls r0, r0, #0x18
+ orrs r2, r0
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r5, #0
+ mov ip, r5
+ cmp ip, r8
+ bhs _080103F4
+ add r5, sp, #8
+ mov sb, r4
+ add r4, sp, #4
+ mov r6, sp
+ movs r0, #0xf8
+ lsls r0, r0, #7
+ mov sl, r0
+_08010306:
+ mov r1, ip
+ lsls r3, r1, #1
+ mov r0, sb
+ adds r2, r3, r0
+ ldrh r1, [r2]
+ movs r0, #0x1f
+ ands r0, r1
+ strh r0, [r5]
+ ldrh r1, [r2]
+ movs r0, #0xf8
+ lsls r0, r0, #2
+ ands r0, r1
+ lsrs r0, r0, #5
+ strh r0, [r4]
+ ldrh r1, [r2]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xa
+ strh r0, [r6]
+ movs r2, #0x80
+ lsls r2, r2, #3
+ add r2, sb
+ adds r2, r3, r2
+ ldrh r1, [r2]
+ movs r0, #0x1f
+ ands r0, r1
+ strh r0, [r5, #2]
+ ldrh r1, [r2]
+ movs r0, #0xf8
+ lsls r0, r0, #2
+ ands r0, r1
+ lsrs r0, r0, #5
+ strh r0, [r4, #2]
+ ldrh r1, [r2]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xa
+ strh r0, [r6, #2]
+ ldrh r1, [r6]
+ cmp r1, r0
+ bhs _08010374
+ ldrh r0, [r6, #2]
+ subs r0, r0, r1
+ muls r0, r7, r0
+ asrs r0, r0, #5
+ adds r1, r1, r0
+ strh r1, [r6]
+ b _08010382
+ .align 2, 0
+_08010368: .4byte 0x040000D4
+_0801036C: .4byte 0x0201A520
+_08010370: .4byte 0x00007FFF
+_08010374:
+ ldrh r0, [r6]
+ ldrh r1, [r6, #2]
+ subs r1, r0, r1
+ muls r1, r7, r1
+ asrs r1, r1, #5
+ subs r0, r0, r1
+ strh r0, [r6]
+_08010382:
+ ldrh r1, [r4, #2]
+ ldrh r0, [r4]
+ cmp r0, r1
+ bhs _0801039A
+ ldrh r0, [r4, #2]
+ ldrh r1, [r4]
+ subs r0, r0, r1
+ muls r0, r7, r0
+ asrs r0, r0, #5
+ adds r1, r1, r0
+ strh r1, [r4]
+ b _080103A8
+_0801039A:
+ ldrh r0, [r4]
+ ldrh r1, [r4, #2]
+ subs r1, r0, r1
+ muls r1, r7, r1
+ asrs r1, r1, #5
+ subs r0, r0, r1
+ strh r0, [r4]
+_080103A8:
+ ldrh r1, [r5, #2]
+ ldrh r0, [r5]
+ cmp r0, r1
+ bhs _080103C0
+ ldrh r0, [r5, #2]
+ ldrh r1, [r5]
+ subs r0, r0, r1
+ muls r0, r7, r0
+ asrs r0, r0, #5
+ adds r1, r1, r0
+ strh r1, [r5]
+ b _080103CE
+_080103C0:
+ ldrh r0, [r5]
+ ldrh r1, [r5, #2]
+ subs r1, r0, r1
+ muls r1, r7, r1
+ asrs r1, r1, #5
+ subs r0, r0, r1
+ strh r0, [r5]
+_080103CE:
+ movs r2, #0x80
+ lsls r2, r2, #4
+ add r2, sb
+ adds r2, r3, r2
+ ldrh r1, [r6]
+ lsls r1, r1, #0xa
+ ldrh r0, [r4]
+ lsls r0, r0, #5
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, ip
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov ip, r0
+ cmp ip, r8
+ blo _08010306
+_080103F4:
+ ldr r2, _0801041C @ =0x040000D4
+ ldr r1, _08010420 @ =0x0201AD20
+ str r1, [r2]
+ ldr r3, [sp, #0x10]
+ str r3, [r2, #4]
+ mov r5, r8
+ lsrs r0, r5, #1
+ movs r1, #0x80
+ lsls r1, r1, #0x18
+ orrs r0, r1
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ add sp, #0x14
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801041C: .4byte 0x040000D4
+_08010420: .4byte 0x0201AD20
+
+ thumb_func_start sub_10424
+sub_10424: @ 0x08010424
+ push {r4, r5, r6, lr}
+ ldr r4, _08010470 @ =0x04000054
+ movs r3, #0x10
+ strh r3, [r4]
+ ldr r6, _08010474 @ =0x04000050
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r1, [r2]
+ movs r0, #0xf8
+ lsls r0, r0, #5
+ ands r0, r1
+ lsrs r0, r0, #8
+ movs r1, #0xa0
+ orrs r0, r1
+ strh r0, [r6]
+ ldrh r1, [r2]
+ ldr r0, _08010478 @ =0x0000FF7F
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _0801047C @ =0x0200B0C0
+ ldrh r0, [r2]
+ movs r5, #0
+ strh r0, [r1, #0x16]
+ strh r3, [r4]
+ bl sub_D74
+ movs r0, #8
+ strh r0, [r4]
+ bl sub_D74
+ strh r5, [r4]
+ bl sub_D74
+ strh r5, [r6]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010470: .4byte 0x04000054
+_08010474: .4byte 0x04000050
+_08010478: .4byte 0x0000FF7F
+_0801047C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_10480
+sub_10480: @ 0x08010480
+ push {r4, r5, lr}
+ sub sp, #4
+ ldr r5, _080104F8 @ =0x04000054
+ movs r4, #0
+ strh r4, [r5]
+ ldr r2, _080104FC @ =0x04000050
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ ldrh r1, [r0]
+ movs r0, #0xf8
+ lsls r0, r0, #5
+ ands r0, r1
+ lsrs r0, r0, #8
+ movs r1, #0xa0
+ orrs r0, r1
+ strh r0, [r2]
+ strh r4, [r5]
+ bl sub_D74
+ movs r0, #8
+ strh r0, [r5]
+ bl sub_D74
+ movs r0, #0x10
+ strh r0, [r5]
+ bl sub_D74
+ mov r0, sp
+ strh r4, [r0]
+ ldr r1, _08010500 @ =0x040000D4
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08010504 @ =0x8100C000
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08010508 @ =0x04000010
+ strh r4, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ bl sub_D74
+ add sp, #4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080104F8: .4byte 0x04000054
+_080104FC: .4byte 0x04000050
+_08010500: .4byte 0x040000D4
+_08010504: .4byte 0x8100C000
+_08010508: .4byte 0x04000010
+
+ thumb_func_start sub_1050C
+sub_1050C: @ 0x0801050C
+ movs r1, #0x80
+ lsls r1, r1, #0x13
+ ldrh r2, [r1]
+ ldr r0, _08010520 @ =0x0000FF7F
+ ands r0, r2
+ strh r0, [r1]
+ ldr r2, _08010524 @ =0x0200B0C0
+ ldrh r0, [r1]
+ strh r0, [r2, #0x16]
+ bx lr
+ .align 2, 0
+_08010520: .4byte 0x0000FF7F
+_08010524: .4byte 0x0200B0C0
+
+ thumb_func_start sub_10528
+sub_10528: @ 0x08010528
+ ldr r1, _08010540 @ =0x0200B0C0
+ ldrh r0, [r1, #0x16]
+ movs r2, #0x80
+ orrs r0, r2
+ strh r0, [r1, #0x16]
+ movs r1, #0x80
+ lsls r1, r1, #0x13
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08010540: .4byte 0x0200B0C0
+
+ thumb_func_start sub_10544
+sub_10544: @ 0x08010544
+ ldr r1, _08010580 @ =0x04000004
+ ldrh r2, [r1]
+ ldr r0, _08010584 @ =0x0000FFF7
+ ands r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1]
+ ldr r0, _08010588 @ =0x0000FFDF
+ ands r0, r2
+ strh r0, [r1]
+ ldr r1, _0801058C @ =0x04000200
+ ldrh r2, [r1]
+ ldr r0, _08010590 @ =0x00003FFF
+ ands r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1]
+ ldr r0, _08010594 @ =0x00003FFE
+ ands r0, r2
+ strh r0, [r1]
+ ldrh r0, [r1]
+ adds r1, r0, #0
+ cmp r1, #0
+ bne _08010574
+ ldr r0, _08010598 @ =0x04000208
+ strh r1, [r0]
+_08010574:
+ ldr r0, _0801059C @ =0x04000202
+ ldrh r1, [r0]
+ movs r2, #1
+ orrs r1, r2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08010580: .4byte 0x04000004
+_08010584: .4byte 0x0000FFF7
+_08010588: .4byte 0x0000FFDF
+_0801058C: .4byte 0x04000200
+_08010590: .4byte 0x00003FFF
+_08010594: .4byte 0x00003FFE
+_08010598: .4byte 0x04000208
+_0801059C: .4byte 0x04000202
+
+ thumb_func_start sub_105A0
+sub_105A0: @ 0x080105A0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r4, [sp, #0x24]
+ mov ip, r4
+ ldr r4, [sp, #0x28]
+ mov sb, r4
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp]
+ lsls r1, r1, #0x10
+ lsrs r1, r1, #0x10
+ mov sl, r1
+ movs r1, #0
+ cmp r1, sb
+ bge _08010602
+ lsls r0, r3, #5
+ adds r0, r0, r2
+ mov r8, r0
+_080105CC:
+ movs r2, #0
+ adds r6, r1, #1
+ cmp r2, ip
+ bge _080105FA
+ ldr r7, _08010614 @ =0x03005C00
+ lsls r0, r1, #5
+ mov r1, r8
+ adds r5, r1, r0
+ ldr r1, [sp]
+ adds r4, r1, r0
+ mov r0, sl
+ lsls r3, r0, #0xc
+_080105E4:
+ adds r0, r5, r2
+ lsls r0, r0, #1
+ adds r0, r0, r7
+ adds r1, r2, r4
+ orrs r1, r3
+ strh r1, [r0]
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ cmp r2, ip
+ blt _080105E4
+_080105FA:
+ lsls r0, r6, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, sb
+ blt _080105CC
+_08010602:
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010614: .4byte 0x03005C00
+
+ thumb_func_start sub_10618
+sub_10618: @ 0x08010618
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ adds r5, r0, #0
+ adds r4, r1, #0
+ ldr r7, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ mov ip, r0
+ movs r1, #0
+ cmp r1, ip
+ bge _08010678
+ ldr r0, _08010688 @ =0x03005C00
+ mov sl, r0
+ lsls r0, r3, #5
+ adds r0, r0, r2
+ mov sb, r0
+ lsls r0, r4, #5
+ adds r0, r0, r5
+ mov r8, r0
+_08010642:
+ movs r2, #0
+ adds r6, r1, #1
+ cmp r2, r7
+ bge _08010670
+ mov r4, sl
+ lsls r0, r1, #5
+ mov r1, sb
+ adds r5, r1, r0
+ mov r1, r8
+ adds r3, r1, r0
+_08010656:
+ adds r1, r5, r2
+ lsls r1, r1, #1
+ adds r1, r1, r4
+ adds r0, r3, r2
+ lsls r0, r0, #1
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ cmp r2, r7
+ blt _08010656
+_08010670:
+ lsls r0, r6, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, ip
+ blt _08010642
+_08010678:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010688: .4byte 0x03005C00
diff --git a/asm/intro.s b/asm/intro.s
new file mode 100755
index 0000000..51a8aa4
--- /dev/null
+++ b/asm/intro.s
@@ -0,0 +1,7283 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start IntroMain
+IntroMain: @ 0x0800927C
+ push {lr}
+ ldr r1, _08009294 @ =0x080792CC
+ ldr r0, _08009298 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009294: .4byte 0x080792CC
+_08009298: .4byte 0x0200B0C0
+
+ thumb_func_start sub_929C
+sub_929C: @ 0x0800929C
+ push {r4, lr}
+ bl sub_438
+ movs r3, #0x80
+ lsls r3, r3, #0x13
+ movs r0, #0x80
+ strh r0, [r3]
+ ldr r1, _08009318 @ =0x0400000A
+ movs r0, #5
+ strh r0, [r1]
+ ldrh r0, [r3]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r1, r2, #0
+ orrs r0, r1
+ strh r0, [r3]
+ ldr r1, _0800931C @ =0x040000D4
+ ldr r0, _08009320 @ =0x080798C0
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r2, _08009324 @ =0x80000400
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08009328 @ =0x0807A0C0
+ str r0, [r1]
+ ldr r0, _0800932C @ =0x06004000
+ str r0, [r1, #4]
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08009330 @ =gIntroCopyright_Pal
+ str r0, [r1]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08009334 @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r4, _08009338 @ =0x0200B0C0
+ ldrh r0, [r3]
+ movs r2, #0
+ movs r1, #0
+ strh r0, [r4, #0x16]
+ ldr r0, _0800933C @ =0x0202BF10
+ strh r1, [r0]
+ ldr r0, _08009340 @ =0x0202C790
+ strb r2, [r0]
+ ldr r0, _08009344 @ =sub_93F8 + 1
+ bl sub_898
+ bl sub_CBC
+ bl sub_24C
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009318: .4byte 0x0400000A
+_0800931C: .4byte 0x040000D4
+_08009320: .4byte 0x080798C0
+_08009324: .4byte 0x80000400
+_08009328: .4byte 0x0807A0C0
+_0800932C: .4byte 0x06004000
+_08009330: .4byte gIntroCopyright_Pal
+_08009334: .4byte 0x80000100
+_08009338: .4byte 0x0200B0C0
+_0800933C: .4byte 0x0202BF10
+_08009340: .4byte 0x0202C790
+_08009344: .4byte sub_93F8 + 1
+
+ thumb_func_start sub_9348
+sub_9348: @ 0x08009348
+ ldr r1, _08009368 @ =0x0202BF10
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x78
+ ble _08009364
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _0800936C @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+_08009364:
+ bx lr
+ .align 2, 0
+_08009368: .4byte 0x0202BF10
+_0800936C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_9370
+sub_9370: @ 0x08009370
+ push {lr}
+ movs r0, #0
+ bl sub_FF74
+ bl sub_D10
+ ldr r1, _08009388 @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009388: .4byte 0x0200B0C0
+
+ thumb_func_start sub_938C
+sub_938C: @ 0x0800938C
+ push {lr}
+ ldr r1, _080093C0 @ =0x080792E0
+ ldr r0, _080093C4 @ =0x0202C790
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _080093C8 @ =0x0202BF10
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ ldr r2, _080093CC @ =0x0200B0C0
+ ldrh r1, [r2, #0x18]
+ movs r0, #9
+ ands r0, r1
+ cmp r0, #0
+ beq _080093BA
+ movs r0, #4
+ strb r0, [r2, #3]
+_080093BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080093C0: .4byte 0x080792E0
+_080093C4: .4byte 0x0202C790
+_080093C8: .4byte 0x0202BF10
+_080093CC: .4byte 0x0200B0C0
+
+ thumb_func_start sub_93D0
+sub_93D0: @ 0x080093D0
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ bl sub_8BC
+ ldr r1, _080093F4 @ =0x0201A4B4
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #1
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080093F4: .4byte 0x0201A4B4
+
+ thumb_func_start sub_93F8
+sub_93F8: @ 0x080093F8
+ push {lr}
+ ldr r0, _08009480 @ =0x04000004
+ ldrh r1, [r0]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _0800947C
+ bl m4aSoundMain
+ bl VBlankIntrWait
+ ldr r1, _08009484 @ =0x040000D4
+ ldr r0, _08009488 @ =0x03005000
+ str r0, [r1]
+ movs r0, #0xe0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800948C @ =0x84000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldr r1, _08009490 @ =0x0200B0C0
+ ldrh r0, [r1, #0x16]
+ strh r0, [r2]
+ adds r2, #0x10
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, #2
+ adds r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, #2
+ adds r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, #2
+ adds r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, #2
+ adds r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, #2
+ adds r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, #2
+ adds r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, #2
+ ldr r0, _08009494 @ =0x000002F6
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+_0800947C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009480: .4byte 0x04000004
+_08009484: .4byte 0x040000D4
+_08009488: .4byte 0x03005000
+_0800948C: .4byte 0x84000100
+_08009490: .4byte 0x0200B0C0
+_08009494: .4byte 0x000002F6
+
+ thumb_func_start sub_9498
+sub_9498: @ 0x08009498
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ bl sub_490
+ bl sub_518
+ bl sub_578
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x80
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800961C @ =0x04000008
+ movs r3, #0xd0
+ lsls r3, r3, #5
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r7, #0x80
+ lsls r7, r7, #1
+ adds r1, r7, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08009620 @ =0x0400000A
+ ldr r3, _08009624 @ =0x00005B01
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r7, #0x80
+ lsls r7, r7, #2
+ adds r1, r7, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08009628 @ =0x0400000C
+ ldr r3, _0800962C @ =0x00005D02
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r7, #0x80
+ lsls r7, r7, #3
+ adds r1, r7, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08009630 @ =0x0400000E
+ ldr r3, _08009634 @ =0x00001F03
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r7, #0x80
+ lsls r7, r7, #4
+ adds r1, r7, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _08009638 @ =0x040000D4
+ ldr r0, _0800963C @ =0x080B9CC0
+ str r0, [r4]
+ ldr r0, _08009640 @ =0x0600D000
+ str r0, [r4, #4]
+ ldr r2, _08009644 @ =0x80000400
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08009648 @ =0x080BC4C0
+ str r0, [r4]
+ ldr r0, _0800964C @ =0x0600D800
+ str r0, [r4, #4]
+ ldr r1, _08009650 @ =0x80000800
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08009654 @ =0x080BB4C0
+ str r0, [r4]
+ ldr r0, _08009658 @ =0x0600E800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800965C @ =0x080B3CA0
+ str r0, [r4]
+ ldr r0, _08009660 @ =0x0600F800
+ str r0, [r4, #4]
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08009664 @ =0x080B44A0
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08009668 @ =0x80002C00
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800966C @ =0x080BD4C0
+ str r0, [r4]
+ ldr r0, _08009670 @ =0x0201C1C0
+ str r0, [r4, #4]
+ ldr r0, _08009674 @ =0x80003400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r6, _08009678 @ =gIntroScene1Sprites_Pals
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ mov sl, r0
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r0, r6, #0
+ mov r1, sl
+ movs r3, #0x20
+ bl sub_10170
+ ldr r0, _0800967C @ =gIntroScene1Sprites_Gfx
+ str r0, [r4]
+ ldr r0, _08009680 @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _08009684 @ =0x80004000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ str r6, [r4]
+ ldr r5, _08009688 @ =0x05000200
+ str r5, [r4, #4]
+ ldr r1, _0800968C @ =0x80000100
+ mov r8, r1
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_96A8
+ ldr r1, _08009690 @ =0x0200B0C0
+ ldr r2, _08009694 @ =0x0202ADA0
+ ldrh r3, [r2]
+ movs r7, #0xba
+ lsls r7, r7, #2
+ adds r0, r1, r7
+ movs r7, #0
+ mov sb, r7
+ strh r3, [r0]
+ ldrh r3, [r2, #2]
+ ldr r7, _08009698 @ =0x000002EA
+ adds r0, r1, r7
+ strh r3, [r0]
+ ldrh r3, [r2, #0x24]
+ adds r7, #2
+ adds r0, r1, r7
+ strh r3, [r0]
+ ldrh r3, [r2, #0x26]
+ adds r7, #2
+ adds r0, r1, r7
+ strh r3, [r0]
+ ldrh r3, [r2, #0xc]
+ adds r7, #2
+ adds r0, r1, r7
+ strh r3, [r0]
+ ldrh r3, [r2, #0xe]
+ adds r7, #2
+ adds r0, r1, r7
+ strh r3, [r0]
+ ldrh r3, [r2, #0x18]
+ adds r7, #2
+ adds r0, r1, r7
+ strh r3, [r0]
+ ldrh r0, [r2, #0x1a]
+ ldr r2, _0800969C @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_CBC
+ mov r0, sl
+ adds r1, r6, #0
+ movs r2, #0
+ bl sub_FEB8
+ str r6, [r4]
+ str r5, [r4, #4]
+ mov r3, r8
+ str r3, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r7, sb
+ str r7, [r4]
+ str r5, [r4, #4]
+ ldr r0, _080096A0 @ =0x80000010
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r1, _080096A4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800961C: .4byte 0x04000008
+_08009620: .4byte 0x0400000A
+_08009624: .4byte 0x00005B01
+_08009628: .4byte 0x0400000C
+_0800962C: .4byte 0x00005D02
+_08009630: .4byte 0x0400000E
+_08009634: .4byte 0x00001F03
+_08009638: .4byte 0x040000D4
+_0800963C: .4byte 0x080B9CC0
+_08009640: .4byte 0x0600D000
+_08009644: .4byte 0x80000400
+_08009648: .4byte 0x080BC4C0
+_0800964C: .4byte 0x0600D800
+_08009650: .4byte 0x80000800
+_08009654: .4byte 0x080BB4C0
+_08009658: .4byte 0x0600E800
+_0800965C: .4byte 0x080B3CA0
+_08009660: .4byte 0x0600F800
+_08009664: .4byte 0x080B44A0
+_08009668: .4byte 0x80002C00
+_0800966C: .4byte 0x080BD4C0
+_08009670: .4byte 0x0201C1C0
+_08009674: .4byte 0x80003400
+_08009678: .4byte gIntroScene1Sprites_Pals
+_0800967C: .4byte gIntroScene1Sprites_Gfx
+_08009680: .4byte 0x06010000
+_08009684: .4byte 0x80004000
+_08009688: .4byte 0x05000200
+_0800968C: .4byte 0x80000100
+_08009690: .4byte 0x0200B0C0
+_08009694: .4byte 0x0202ADA0
+_08009698: .4byte 0x000002EA
+_0800969C: .4byte 0x000002F6
+_080096A0: .4byte 0x80000010
+_080096A4: .4byte 0x0202C790
+
+ thumb_func_start sub_96A8
+sub_96A8: @ 0x080096A8
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0800975C @ =0x0201A450
+ mov ip, r0
+ movs r5, #0
+ movs r2, #0
+ movs r1, #0x78
+ mov r8, r1
+ mov r1, r8
+ strh r1, [r0, #0x10]
+ movs r6, #0x50
+ strh r6, [r0, #0x12]
+ strh r2, [r0, #0x18]
+ movs r4, #1
+ strb r4, [r0, #0x1c]
+ movs r0, #0x9c
+ mov r1, ip
+ strh r0, [r1, #0x30]
+ movs r0, #0x92
+ strh r0, [r1, #0x32]
+ mov r0, ip
+ adds r0, #0x3c
+ strb r5, [r0]
+ strh r2, [r1, #0x3a]
+ movs r0, #0x9d
+ strh r0, [r1, #0x20]
+ movs r0, #0x93
+ strh r0, [r1, #0x22]
+ mov r0, ip
+ adds r0, #0x2c
+ strb r5, [r0]
+ adds r0, #0x14
+ movs r1, #0x80
+ strh r1, [r0]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #0xa
+ strb r4, [r0]
+ ldr r0, _08009760 @ =0x0202ADA0
+ ldr r1, _08009764 @ =0x0000FFA8
+ strh r1, [r0]
+ adds r1, #0x22
+ strh r1, [r0, #2]
+ strh r2, [r0, #8]
+ strh r2, [r0, #0xa]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ strh r3, [r0, #0xc]
+ strh r2, [r0, #0xe]
+ strh r2, [r0, #0x14]
+ movs r1, #0xfb
+ strh r1, [r0, #0x24]
+ strh r2, [r0, #0x26]
+ strh r2, [r0, #0x2c]
+ strh r2, [r0, #0x18]
+ strh r2, [r0, #0x1a]
+ mov r1, r8
+ mov r0, ip
+ strh r1, [r0]
+ strh r6, [r0, #2]
+ strh r2, [r0, #8]
+ strh r2, [r0, #0xa]
+ strb r4, [r0, #0xc]
+ ldr r0, _08009768 @ =0x0201C1B8
+ strb r5, [r0]
+ ldr r1, _0800976C @ =0x0202ADD4
+ movs r0, #0x10
+ strb r0, [r1]
+ ldr r0, _08009770 @ =0x0202C594
+ strh r2, [r0]
+ ldr r0, _08009774 @ =0x02019C30
+ str r3, [r0]
+ ldr r0, _08009778 @ =0x0201C188
+ str r3, [r0]
+ ldr r0, _0800977C @ =0x0202BF10
+ strh r2, [r0]
+ ldr r0, _08009780 @ =0x0202A578
+ strh r2, [r0]
+ ldr r1, _08009784 @ =0x0202BEF0
+ movs r0, #0x20
+ str r0, [r1]
+ ldr r1, _08009788 @ =0x0202C5A8
+ movs r0, #8
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800975C: .4byte 0x0201A450
+_08009760: .4byte 0x0202ADA0
+_08009764: .4byte 0x0000FFA8
+_08009768: .4byte 0x0201C1B8
+_0800976C: .4byte 0x0202ADD4
+_08009770: .4byte 0x0202C594
+_08009774: .4byte 0x02019C30
+_08009778: .4byte 0x0201C188
+_0800977C: .4byte 0x0202BF10
+_08009780: .4byte 0x0202A578
+_08009784: .4byte 0x0202BEF0
+_08009788: .4byte 0x0202C5A8
+
+ thumb_func_start sub_978C
+sub_978C: @ 0x0800978C
+ push {r4, r5, r6, lr}
+ bl sub_9CB8
+ ldr r1, _080097C0 @ =0x0201A450
+ ldrh r2, [r1, #8]
+ movs r3, #8
+ ldrsh r0, [r1, r3]
+ cmp r0, #0x24
+ bne _080097CC
+ ldrh r0, [r1, #0xa]
+ adds r0, #1
+ movs r2, #0
+ strh r0, [r1, #0xa]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1b
+ ble _0800981A
+ strh r2, [r1, #0xa]
+ ldr r0, _080097C4 @ =0x0202A578
+ strh r2, [r0]
+ ldr r1, _080097C8 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ b _0800981A
+ .align 2, 0
+_080097C0: .4byte 0x0201A450
+_080097C4: .4byte 0x0202A578
+_080097C8: .4byte 0x0202C790
+_080097CC:
+ ldrh r0, [r1, #0xa]
+ adds r0, #1
+ strh r0, [r1, #0xa]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ ble _080097E2
+ movs r0, #0
+ strh r0, [r1, #0xa]
+ adds r0, r2, #1
+ strh r0, [r1, #8]
+_080097E2:
+ ldr r3, _08009820 @ =0x0202BF10
+ ldr r5, _08009824 @ =0x086A77A8
+ ldr r4, _08009828 @ =0x0202A578
+ movs r6, #0
+ ldrsh r2, [r4, r6]
+ lsls r2, r2, #2
+ ldr r0, _0800982C @ =0x0202C5A8
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r2, r2, r0
+ adds r0, r5, #2
+ adds r0, r2, r0
+ movs r6, #0
+ ldrsh r1, [r3, r6]
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ blt _0800981A
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ bl m4aSongNumStart
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+_0800981A:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009820: .4byte 0x0202BF10
+_08009824: .4byte 0x086A77A8
+_08009828: .4byte 0x0202A578
+_0800982C: .4byte 0x0202C5A8
+
+ thumb_func_start sub_9830
+sub_9830: @ 0x08009830
+ push {lr}
+ ldr r0, _08009868 @ =0x02019C30
+ ldr r2, [r0]
+ subs r2, #0x10
+ str r2, [r0]
+ ldr r1, _0800986C @ =0x0201C188
+ ldr r0, [r1]
+ subs r0, #0x10
+ str r0, [r1]
+ ldr r1, _08009870 @ =0x0201A450
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ cmp r2, #0x1f
+ bgt _0800985E
+ movs r0, #0
+ strh r0, [r1, #0xa]
+ movs r0, #0x25
+ strh r0, [r1, #8]
+ ldr r1, _08009874 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800985E:
+ bl sub_9D70
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009868: .4byte 0x02019C30
+_0800986C: .4byte 0x0201C188
+_08009870: .4byte 0x0201A450
+_08009874: .4byte 0x0202C790
+
+ thumb_func_start sub_9878
+sub_9878: @ 0x08009878
+ push {lr}
+ ldr r1, _080098AC @ =0x0201A450
+ ldrh r0, [r1, #0xa]
+ adds r0, #1
+ strh r0, [r1, #0xa]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _080098A8
+ movs r0, #0
+ strh r0, [r1, #0xa]
+ movs r0, #0x78
+ strh r0, [r1]
+ movs r0, #0x58
+ strh r0, [r1, #2]
+ movs r0, #1
+ strb r0, [r1, #0xc]
+ movs r0, #0xd8
+ bl m4aSongNumStart
+ ldr r1, _080098B0 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_080098A8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080098AC: .4byte 0x0201A450
+_080098B0: .4byte 0x0202C790
+
+ thumb_func_start sub_98B4
+sub_98B4: @ 0x080098B4
+ push {lr}
+ ldr r1, _080098F0 @ =0x0201A450
+ ldrh r2, [r1, #8]
+ movs r3, #8
+ ldrsh r0, [r1, r3]
+ cmp r0, #0x2b
+ bne _08009900
+ ldrh r0, [r1, #0xa]
+ adds r0, #1
+ strh r0, [r1, #0xa]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ ble _08009916
+ movs r0, #0
+ strb r0, [r1, #0xc]
+ ldr r0, _080098F4 @ =0x080B3C60
+ ldr r1, _080098F8 @ =0x050000E0
+ movs r2, #0x20
+ movs r3, #0
+ bl sub_10170
+ movs r0, #8
+ bl m4aSongNumStart
+ ldr r1, _080098FC @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ b _08009916
+ .align 2, 0
+_080098F0: .4byte 0x0201A450
+_080098F4: .4byte 0x080B3C60
+_080098F8: .4byte 0x050000E0
+_080098FC: .4byte 0x0202C790
+_08009900:
+ ldrh r0, [r1, #0xa]
+ adds r0, #1
+ strh r0, [r1, #0xa]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ ble _08009916
+ movs r0, #0
+ strh r0, [r1, #0xa]
+ adds r0, r2, #1
+ strh r0, [r1, #8]
+_08009916:
+ bl sub_9CB8
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_9920
+sub_9920: @ 0x08009920
+ push {lr}
+ ldr r0, _08009954 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #3
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08009982
+ ldr r1, _08009958 @ =0x0202C594
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #7
+ bgt _08009964
+ adds r0, r2, #1
+ strh r0, [r1]
+ ldr r1, _0800995C @ =0x0201C1B8
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ ldr r1, _08009960 @ =0x0202ADD4
+ ldrb r0, [r1]
+ subs r0, #1
+ b _08009976
+ .align 2, 0
+_08009954: .4byte 0x0202BF10
+_08009958: .4byte 0x0202C594
+_0800995C: .4byte 0x0201C1B8
+_08009960: .4byte 0x0202ADD4
+_08009964:
+ ldr r0, _0800998C @ =0x0201C1C0
+ ldr r1, _08009990 @ =0x060036E0
+ movs r2, #8
+ movs r3, #8
+ bl sub_10708
+ ldr r1, _08009994 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+_08009976:
+ strb r0, [r1]
+ ldr r2, _08009998 @ =0x0201A450
+ ldrh r1, [r2, #0x18]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #0x18]
+_08009982:
+ bl sub_9E90
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800998C: .4byte 0x0201C1C0
+_08009990: .4byte 0x060036E0
+_08009994: .4byte 0x0202C790
+_08009998: .4byte 0x0201A450
+
+ thumb_func_start sub_999C
+sub_999C: @ 0x0800999C
+ push {r4, r5, lr}
+ ldr r5, _08009A84 @ =0x0202BEF0
+ ldr r0, [r5]
+ cmp r0, #0
+ ble _080099D0
+ subs r0, #2
+ str r0, [r5]
+ cmp r0, #0
+ bgt _080099B2
+ movs r0, #0
+ str r0, [r5]
+_080099B2:
+ ldr r4, _08009A88 @ =gIntroScene1Sprites_Pals
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ movs r2, #0x80
+ lsls r2, r2, #2
+ ldrh r3, [r5]
+ adds r0, r4, #0
+ bl sub_10170
+ ldr r1, _08009A8C @ =0x05000200
+ ldrh r3, [r5]
+ adds r0, r4, #0
+ movs r2, #0x20
+ bl sub_10170
+_080099D0:
+ ldr r5, _08009A90 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #3
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _080099EC
+ ldr r2, _08009A94 @ =0x0201A450
+ ldrh r1, [r2, #0x18]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #0x18]
+_080099EC:
+ ldr r4, _08009A98 @ =0x0202ADA0
+ ldrh r0, [r4]
+ subs r0, #1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ movs r5, #1
+ ands r0, r5
+ cmp r0, #0
+ bne _08009A04
+ ldrh r0, [r4, #2]
+ subs r0, #1
+ strh r0, [r4, #2]
+_08009A04:
+ ldr r1, _08009A9C @ =0x0200B0C0
+ ldrh r2, [r4]
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #2]
+ ldr r2, _08009AA0 @ =0x000002EA
+ adds r1, r1, r2
+ strh r0, [r1]
+ ldrh r0, [r4, #0xa]
+ adds r0, #1
+ strh r0, [r4, #0xa]
+ ldr r2, _08009AA4 @ =0x086A7768
+ movs r1, #8
+ ldrsh r3, [r4, r1]
+ lsls r1, r3, #2
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r2, #2
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _08009A78
+ ldr r1, _08009AA8 @ =0x086A7788
+ lsls r0, r3, #1
+ adds r0, r0, r1
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ ldr r1, _08009AAC @ =0x0201C1C0
+ adds r0, r0, r1
+ ldr r1, _08009AB0 @ =0x060036E0
+ movs r2, #8
+ movs r3, #8
+ bl sub_10708
+ ldrh r0, [r4, #8]
+ adds r0, #1
+ strh r0, [r4, #8]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _08009A78
+ ldr r1, _08009A94 @ =0x0201A450
+ adds r0, r1, #0
+ adds r0, #0x3c
+ strb r5, [r0]
+ subs r0, #0x10
+ strb r5, [r0]
+ movs r0, #0
+ strb r0, [r1, #0x1c]
+ movs r0, #0
+ strh r0, [r4, #0x14]
+ ldr r1, _08009AB4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_08009A78:
+ bl sub_9E90
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009A84: .4byte 0x0202BEF0
+_08009A88: .4byte gIntroScene1Sprites_Pals
+_08009A8C: .4byte 0x05000200
+_08009A90: .4byte 0x0202BF10
+_08009A94: .4byte 0x0201A450
+_08009A98: .4byte 0x0202ADA0
+_08009A9C: .4byte 0x0200B0C0
+_08009AA0: .4byte 0x000002EA
+_08009AA4: .4byte 0x086A7768
+_08009AA8: .4byte 0x086A7788
+_08009AAC: .4byte 0x0201C1C0
+_08009AB0: .4byte 0x060036E0
+_08009AB4: .4byte 0x0202C790
+
+ thumb_func_start sub_9AB8
+sub_9AB8: @ 0x08009AB8
+ push {r4, lr}
+ ldr r1, _08009B54 @ =0x0201A450
+ ldrh r0, [r1, #0x30]
+ subs r0, #0xe
+ strh r0, [r1, #0x30]
+ ldrh r0, [r1, #0x32]
+ subs r0, #0xd
+ strh r0, [r1, #0x32]
+ ldr r3, _08009B58 @ =0x0202ADA0
+ ldrh r0, [r3, #0x24]
+ subs r0, #0x10
+ strh r0, [r3, #0x24]
+ ldrh r0, [r3, #0x26]
+ adds r0, #1
+ strh r0, [r3, #0x26]
+ ldrh r0, [r3, #0xc]
+ subs r0, #0x10
+ strh r0, [r3, #0xc]
+ ldrh r0, [r1, #0x20]
+ subs r0, #0xe
+ strh r0, [r1, #0x20]
+ ldrh r0, [r1, #0x22]
+ subs r0, #0xd
+ strh r0, [r1, #0x22]
+ adds r2, r1, #0
+ adds r2, #0x40
+ ldrh r0, [r2]
+ adds r0, #0xb
+ strh r0, [r2]
+ adds r1, #0x42
+ ldrh r0, [r1]
+ subs r0, #2
+ strh r0, [r1]
+ ldr r0, _08009B5C @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ adds r4, r3, #0
+ cmp r0, #0
+ bne _08009B14
+ ldrh r0, [r4]
+ subs r0, #1
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ subs r0, #1
+ strh r0, [r4, #2]
+_08009B14:
+ ldrh r0, [r4, #0xa]
+ adds r0, #1
+ strh r0, [r4, #0xa]
+ ldr r2, _08009B60 @ =0x086A7768
+ movs r1, #8
+ ldrsh r3, [r4, r1]
+ lsls r1, r3, #2
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r2, #2
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _08009B94
+ adds r0, r3, #0
+ cmp r0, #6
+ bgt _08009B70
+ ldr r1, _08009B64 @ =0x086A7788
+ lsls r0, r3, #1
+ adds r0, r0, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ ldr r1, _08009B68 @ =0x0201C1C0
+ adds r0, r0, r1
+ ldr r1, _08009B6C @ =0x060036E0
+ movs r2, #8
+ movs r3, #8
+ bl sub_10708
+ b _08009B8A
+ .align 2, 0
+_08009B54: .4byte 0x0201A450
+_08009B58: .4byte 0x0202ADA0
+_08009B5C: .4byte 0x0202BF10
+_08009B60: .4byte 0x086A7768
+_08009B64: .4byte 0x086A7788
+_08009B68: .4byte 0x0201C1C0
+_08009B6C: .4byte 0x060036E0
+_08009B70:
+ ldr r1, _08009BF0 @ =0x086A7788
+ lsls r0, r3, #1
+ adds r0, r0, r1
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ ldr r1, _08009BF4 @ =0x0201C1C0
+ adds r0, r0, r1
+ ldr r1, _08009BF8 @ =0x060032C0
+ movs r2, #0xa
+ movs r3, #0xa
+ bl sub_10708
+_08009B8A:
+ ldr r1, _08009BFC @ =0x0202ADA0
+ ldrh r0, [r1, #8]
+ adds r0, #1
+ strh r0, [r1, #8]
+ adds r4, r1, #0
+_08009B94:
+ adds r1, r4, #0
+ ldrh r0, [r1, #0x14]
+ adds r0, #1
+ strh r0, [r1, #0x14]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _08009BB0
+ movs r0, #0
+ strh r0, [r1, #0x14]
+ ldr r1, _08009C00 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+_08009BB0:
+ bl sub_9E90
+ ldr r1, _08009C04 @ =0x0200B0C0
+ ldrh r2, [r4]
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #2]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x24]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x26]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xc]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0xe]
+ ldr r2, _08009C08 @ =0x000002F2
+ adds r1, r1, r2
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009BF0: .4byte 0x086A7788
+_08009BF4: .4byte 0x0201C1C0
+_08009BF8: .4byte 0x060032C0
+_08009BFC: .4byte 0x0202ADA0
+_08009C00: .4byte 0x0202C790
+_08009C04: .4byte 0x0200B0C0
+_08009C08: .4byte 0x000002F2
+
+ thumb_func_start nullsub_4
+nullsub_4: @ 0x08009C0C
+ bx lr
+
+ thumb_func_start sub_9C10
+sub_9C10: @ 0x08009C10
+ push {r4, lr}
+ ldr r4, _08009C7C @ =0x0202ADA0
+ ldrh r0, [r4, #0x18]
+ adds r0, #1
+ strh r0, [r4, #0x18]
+ ldr r0, _08009C80 @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _08009C40
+ ldr r1, _08009C84 @ =0x0201A450
+ ldrh r0, [r1, #0x30]
+ subs r0, #1
+ strh r0, [r1, #0x30]
+ ldrh r0, [r1, #0x32]
+ subs r0, #1
+ strh r0, [r1, #0x32]
+ ldrh r0, [r1, #0x20]
+ subs r0, #2
+ strh r0, [r1, #0x20]
+ ldrh r0, [r1, #0x22]
+ subs r0, #2
+ strh r0, [r1, #0x22]
+_08009C40:
+ bl sub_9E90
+ ldr r1, _08009C88 @ =0x0200B0C0
+ ldrh r2, [r4, #0x18]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x1a]
+ ldr r2, _08009C8C @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ ldr r1, _08009C84 @ =0x0201A450
+ ldrh r0, [r1, #0x3a]
+ adds r0, #1
+ strh r0, [r1, #0x3a]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x14
+ ble _08009C74
+ movs r0, #0
+ strh r0, [r1, #0x3a]
+ ldr r1, _08009C90 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #3
+ strb r0, [r1]
+_08009C74:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009C7C: .4byte 0x0202ADA0
+_08009C80: .4byte 0x0202BF10
+_08009C84: .4byte 0x0201A450
+_08009C88: .4byte 0x0200B0C0
+_08009C8C: .4byte 0x000002F6
+_08009C90: .4byte 0x0202C790
+
+ thumb_func_start nullsub_5
+nullsub_5: @ 0x08009C94
+ bx lr
+
+ thumb_func_start nullsub_17
+nullsub_17: @ 0x08009C98
+ bx lr
+
+ thumb_func_start sub_9C9C
+sub_9C9C: @ 0x08009C9C
+ push {lr}
+ bl sub_10480
+ bl sub_10544
+ ldr r1, _08009CB4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009CB4: .4byte 0x0202C790
+
+ thumb_func_start sub_9CB8
+sub_9CB8: @ 0x08009CB8
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08009D54 @ =0x0201A450
+ movs r0, #8
+ ldrsh r1, [r4, r0]
+ movs r0, #0xb8
+ muls r0, r1, r0
+ ldr r2, _08009D58 @ =0x0200B698
+ adds r5, r0, r2
+ movs r0, #0xc
+ ldrsb r0, [r4, r0]
+ strh r0, [r5]
+ ldr r6, _08009D5C @ =0x086A769C
+ ldr r1, _08009D60 @ =0xFFFFFD20
+ adds r2, r2, r1
+ adds r0, r6, #0
+ movs r1, #0x31
+ bl sub_358
+ ldrh r0, [r5]
+ cmp r0, #1
+ bne _08009D46
+ ldrh r0, [r4]
+ strh r0, [r5, #2]
+ ldrh r0, [r4, #2]
+ strh r0, [r5, #4]
+ movs r2, #8
+ ldrsh r0, [r4, r2]
+ adds r0, #4
+ lsls r0, r0, #2
+ adds r0, r0, r6
+ ldr r7, [r0]
+ movs r6, #0
+ ldrh r0, [r7]
+ cmp r6, r0
+ bge _08009D46
+ ldr r1, _08009D64 @ =0x03005000
+ mov ip, r1
+ ldr r2, _08009D68 @ =0xFFFFFE00
+ mov r8, r2
+ adds r4, r5, #0
+ adds r4, #8
+_08009D0E:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r2, #2
+ ldrsh r0, [r5, r2]
+ adds r1, r1, r0
+ ldr r2, _08009D6C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldrb r0, [r5, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ ldrh r0, [r7]
+ cmp r6, r0
+ blt _08009D0E
+_08009D46:
+ movs r0, #0
+ strh r0, [r5]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009D54: .4byte 0x0201A450
+_08009D58: .4byte 0x0200B698
+_08009D5C: .4byte 0x086A769C
+_08009D60: .4byte 0xFFFFFD20
+_08009D64: .4byte 0x03005000
+_08009D68: .4byte 0xFFFFFE00
+_08009D6C: .4byte 0x000001FF
+
+ thumb_func_start sub_9D70
+sub_9D70: @ 0x08009D70
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r0, _08009E68 @ =0x0200D078
+ mov r8, r0
+ ldr r6, _08009E6C @ =0x0201A450
+ movs r0, #0xc
+ ldrsb r0, [r6, r0]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _08009E70 @ =0x086A769C
+ ldr r2, _08009E74 @ =0xFFFFE340
+ add r2, r8
+ movs r1, #0x31
+ bl sub_358
+ mov r2, r8
+ ldrh r0, [r2]
+ cmp r0, #1
+ bne _08009E50
+ ldr r5, _08009E78 @ =0x02019C30
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ ldr r4, _08009E7C @ =0x0201C188
+ movs r2, #0
+ ldrsh r1, [r4, r2]
+ movs r2, #0
+ bl sub_7C0
+ ldrh r0, [r6]
+ mov r3, r8
+ strh r0, [r3, #2]
+ ldrh r0, [r6, #2]
+ strh r0, [r3, #4]
+ movs r7, #0
+ ldr r6, _08009E80 @ =0x03005000
+ mov sl, r5
+ mov sb, r4
+ mov r5, r8
+ adds r5, #8
+ movs r0, #0xf
+ rsbs r0, r0, #0
+ mov ip, r0
+_08009DCC:
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r3, r0, r6
+ lsls r0, r7, #2
+ ldr r1, _08009E84 @ =0x086A7798
+ adds r4, r0, r1
+ movs r2, #0
+ ldrsh r1, [r4, r2]
+ mov r2, sl
+ ldr r0, [r2]
+ muls r1, r0, r1
+ cmp r1, #0
+ bge _08009DE8
+ adds r1, #0xff
+_08009DE8:
+ asrs r1, r1, #8
+ str r1, [sp]
+ mov r1, r8
+ movs r2, #2
+ ldrsh r0, [r1, r2]
+ ldr r2, [sp]
+ adds r1, r2, r0
+ ldr r2, _08009E88 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08009E8C @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r2, r0, r6
+ movs r3, #2
+ ldrsh r1, [r4, r3]
+ mov r3, sb
+ ldr r0, [r3]
+ muls r0, r1, r0
+ cmp r0, #0
+ bge _08009E1C
+ adds r0, #0xff
+_08009E1C:
+ asrs r0, r0, #8
+ mov r1, r8
+ ldrb r1, [r1, #4]
+ adds r0, r0, r1
+ strb r0, [r2]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #1]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #3]
+ mov r0, ip
+ ands r0, r2
+ strb r0, [r1, #3]
+ adds r5, #8
+ adds r7, #1
+ cmp r7, #3
+ ble _08009DCC
+_08009E50:
+ movs r0, #0
+ mov r2, r8
+ strh r0, [r2]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009E68: .4byte 0x0200D078
+_08009E6C: .4byte 0x0201A450
+_08009E70: .4byte 0x086A769C
+_08009E74: .4byte 0xFFFFE340
+_08009E78: .4byte 0x02019C30
+_08009E7C: .4byte 0x0201C188
+_08009E80: .4byte 0x03005000
+_08009E84: .4byte 0x086A7798
+_08009E88: .4byte 0x000001FF
+_08009E8C: .4byte 0xFFFFFE00
+
+ thumb_func_start sub_9E90
+sub_9E90: @ 0x08009E90
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r3, _0800A12C @ =0x0200B0C0
+ ldrh r0, [r3, #0x38]
+ movs r0, #0xf1
+ lsls r0, r0, #4
+ strh r0, [r3, #0x38]
+ ldr r0, _0800A130 @ =0x0201C1B8
+ ldrb r1, [r0]
+ ldr r0, _0800A134 @ =0x0202ADD4
+ ldrb r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r3, #0x3a]
+ strh r1, [r3, #0x3a]
+ ldr r1, _0800A138 @ =0x04000050
+ ldrh r0, [r3, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r3, #0x3a]
+ strh r0, [r1]
+ ldr r4, _0800A13C @ =0x0201A450
+ movs r0, #0x18
+ ldrsh r1, [r4, r0]
+ movs r0, #0xb8
+ muls r0, r1, r0
+ movs r1, #0xbe
+ lsls r1, r1, #2
+ adds r2, r3, r1
+ adds r0, r0, r2
+ mov r8, r0
+ movs r6, #0xa4
+ lsls r6, r6, #3
+ adds r6, r6, r3
+ mov sb, r6
+ movs r7, #0x8d
+ lsls r7, r7, #3
+ adds r7, r7, r3
+ mov sl, r7
+ movs r0, #0x1c
+ ldrsb r0, [r4, r0]
+ mov r1, r8
+ strh r0, [r1]
+ adds r0, r4, #0
+ adds r0, #0x2c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r6]
+ adds r0, r4, #0
+ adds r0, #0x3c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r7]
+ adds r0, r4, #0
+ adds r0, #0x4c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r6, _0800A140 @ =0x0200D638
+ strh r0, [r6]
+ ldr r5, _0800A144 @ =0x086A769C
+ adds r0, r5, #0
+ movs r1, #0x31
+ bl sub_358
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _08009F9E
+ ldrh r0, [r4, #0x10]
+ strh r0, [r7, #2]
+ ldrh r0, [r4, #0x12]
+ strh r0, [r7, #4]
+ movs r1, #0x18
+ ldrsh r0, [r4, r1]
+ lsls r0, r0, #2
+ adds r0, r0, r5
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r5, #0
+ ldrh r2, [r0]
+ cmp r5, r2
+ bge _08009F9E
+ ldr r7, _0800A148 @ =0x03005000
+ ldr r6, _0800A14C @ =0xFFFFFE00
+ mov ip, r6
+ mov r4, r8
+ adds r4, #8
+_08009F4C:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r7
+ ldrb r1, [r2, #1]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, r8
+ movs r6, #2
+ ldrsh r0, [r2, r6]
+ adds r1, r1, r0
+ ldr r2, _0800A150 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ mov r6, r8
+ ldrb r0, [r6, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldr r6, [sp]
+ ldrh r6, [r6]
+ cmp r5, r6
+ blt _08009F4C
+_08009F9E:
+ mov r7, sb
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _0800A01C
+ ldr r0, _0800A13C @ =0x0201A450
+ ldrh r1, [r0, #0x20]
+ strh r1, [r7, #2]
+ ldrh r0, [r0, #0x22]
+ strh r0, [r7, #4]
+ ldr r6, _0800A148 @ =0x03005000
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ mov ip, r0
+ mov r4, sb
+ adds r4, #8
+ movs r5, #3
+_08009FBE:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #1]
+ mov r0, ip
+ ands r0, r2
+ movs r2, #4
+ orrs r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #5]
+ mov r0, ip
+ ands r0, r2
+ movs r7, #4
+ orrs r0, r7
+ strb r0, [r1, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, sb
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800A150 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _0800A14C @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r7, sb
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _08009FBE
+_0800A01C:
+ mov r6, sl
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _0800A098
+ ldr r0, _0800A13C @ =0x0201A450
+ ldrh r1, [r0, #0x30]
+ strh r1, [r6, #2]
+ ldrh r0, [r0, #0x32]
+ strh r0, [r6, #4]
+ ldr r6, _0800A148 @ =0x03005000
+ ldr r7, _0800A14C @ =0xFFFFFE00
+ mov ip, r7
+ mov r4, sl
+ adds r4, #8
+ movs r5, #3
+_0800A03A:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #1]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, sl
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800A150 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r7, sl
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _0800A03A
+_0800A098:
+ ldr r6, _0800A140 @ =0x0200D638
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _0800A10A
+ ldr r0, _0800A13C @ =0x0201A450
+ adds r1, r0, #0
+ adds r1, #0x40
+ ldrh r1, [r1]
+ strh r1, [r6, #2]
+ adds r0, #0x42
+ ldrh r0, [r0]
+ strh r0, [r6, #4]
+ ldr r6, _0800A148 @ =0x03005000
+ movs r7, #0xd
+ rsbs r7, r7, #0
+ mov ip, r7
+ ldr r4, _0800A140 @ =0x0200D638
+ adds r4, #8
+ movs r5, #7
+_0800A0BE:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #5]
+ mov r0, ip
+ ands r0, r1
+ movs r1, #8
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ ldr r2, _0800A140 @ =0x0200D638
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800A150 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _0800A14C @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldr r7, _0800A140 @ =0x0200D638
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _0800A0BE
+_0800A10A:
+ movs r0, #0
+ mov r6, r8
+ strh r0, [r6]
+ mov r7, sb
+ strh r0, [r7]
+ mov r1, sl
+ strh r0, [r1]
+ ldr r2, _0800A140 @ =0x0200D638
+ strh r0, [r2]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A12C: .4byte 0x0200B0C0
+_0800A130: .4byte 0x0201C1B8
+_0800A134: .4byte 0x0202ADD4
+_0800A138: .4byte 0x04000050
+_0800A13C: .4byte 0x0201A450
+_0800A140: .4byte 0x0200D638
+_0800A144: .4byte 0x086A769C
+_0800A148: .4byte 0x03005000
+_0800A14C: .4byte 0xFFFFFE00
+_0800A150: .4byte 0x000001FF
+
+ thumb_func_start sub_A154
+sub_A154: @ 0x0800A154
+ push {lr}
+ bl sub_518
+ ldr r1, _0800A168 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A168: .4byte 0x0202C790
+
+ thumb_func_start sub_A16C
+sub_A16C: @ 0x0800A16C
+ push {r4, lr}
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r0, #0
+ strh r0, [r2]
+ ldr r1, _0800A250 @ =0x04000008
+ movs r3, #0xcc
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #1
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800A254 @ =0x0400000A
+ ldr r3, _0800A258 @ =0x0000DA01
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800A25C @ =0x0400000E
+ ldr r3, _0800A260 @ =0x00001E03
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0800A264 @ =0x040000D4
+ ldr r1, _0800A268 @ =0x080D0700
+ str r1, [r0]
+ ldr r1, _0800A26C @ =0x06006000
+ str r1, [r0, #4]
+ ldr r2, _0800A270 @ =0x80001000
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A274 @ =0x080D2700
+ str r1, [r0]
+ ldr r1, _0800A278 @ =0x0600D000
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A27C @ =0x080CBEE0
+ str r1, [r0]
+ ldr r1, _0800A280 @ =0x0600F000
+ str r1, [r0, #4]
+ ldr r1, _0800A284 @ =0x80000400
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A288 @ =0x080CC6E0
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800A28C @ =0x80001E00
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A290 @ =0x080CBCE0
+ str r1, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800A294 @ =0x80000040
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ bl sub_A2A8
+ ldr r1, _0800A298 @ =0x0200B0C0
+ ldr r3, _0800A29C @ =0x0202ADA0
+ ldrh r2, [r3]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0x18]
+ adds r4, #6
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, #0x1a]
+ ldr r2, _0800A2A0 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800A2A4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A250: .4byte 0x04000008
+_0800A254: .4byte 0x0400000A
+_0800A258: .4byte 0x0000DA01
+_0800A25C: .4byte 0x0400000E
+_0800A260: .4byte 0x00001E03
+_0800A264: .4byte 0x040000D4
+_0800A268: .4byte 0x080D0700
+_0800A26C: .4byte 0x06006000
+_0800A270: .4byte 0x80001000
+_0800A274: .4byte 0x080D2700
+_0800A278: .4byte 0x0600D000
+_0800A27C: .4byte 0x080CBEE0
+_0800A280: .4byte 0x0600F000
+_0800A284: .4byte 0x80000400
+_0800A288: .4byte 0x080CC6E0
+_0800A28C: .4byte 0x80001E00
+_0800A290: .4byte 0x080CBCE0
+_0800A294: .4byte 0x80000040
+_0800A298: .4byte 0x0200B0C0
+_0800A29C: .4byte 0x0202ADA0
+_0800A2A0: .4byte 0x000002F6
+_0800A2A4: .4byte 0x0202C790
+
+ thumb_func_start sub_A2A8
+sub_A2A8: @ 0x0800A2A8
+ ldr r0, _0800A2D8 @ =0x0202ADA0
+ movs r2, #0
+ movs r1, #0x1c
+ strh r1, [r0]
+ ldr r1, _0800A2DC @ =0x0000FF2C
+ strh r1, [r0, #2]
+ strh r2, [r0, #4]
+ movs r1, #0xe
+ strh r1, [r0, #6]
+ ldr r1, _0800A2E0 @ =0x0000FF5C
+ strh r1, [r0, #0xc]
+ subs r1, #0x54
+ strh r1, [r0, #0xe]
+ strh r2, [r0, #0x10]
+ movs r1, #0x10
+ strh r1, [r0, #0x12]
+ strh r2, [r0, #0x18]
+ strh r2, [r0, #0x1a]
+ strh r2, [r0, #0x20]
+ ldr r0, _0800A2E4 @ =0x0202BF10
+ strh r2, [r0]
+ ldr r0, _0800A2E8 @ =0x0202A578
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_0800A2D8: .4byte 0x0202ADA0
+_0800A2DC: .4byte 0x0000FF2C
+_0800A2E0: .4byte 0x0000FF5C
+_0800A2E4: .4byte 0x0202BF10
+_0800A2E8: .4byte 0x0202A578
+
+ thumb_func_start nullsub_6
+nullsub_6: @ 0x0800A2EC
+ bx lr
+
+ thumb_func_start sub_A2F0
+sub_A2F0: @ 0x0800A2F0
+ push {r4, lr}
+ ldr r3, _0800A384 @ =0x0202ADA0
+ ldrh r4, [r3, #6]
+ ldrh r1, [r3, #2]
+ adds r0, r4, r1
+ strh r0, [r3, #2]
+ ldrh r2, [r3, #0x12]
+ ldrh r1, [r3, #0xe]
+ adds r0, r2, r1
+ strh r0, [r3, #0xe]
+ ldrh r0, [r3, #0x18]
+ subs r0, #1
+ strh r0, [r3, #0x18]
+ ldrh r0, [r3, #0x1a]
+ subs r0, #1
+ strh r0, [r3, #0x1a]
+ ldrh r0, [r3]
+ subs r0, #1
+ strh r0, [r3]
+ ldrh r0, [r3, #0xc]
+ adds r0, #1
+ strh r0, [r3, #0xc]
+ ldr r0, _0800A388 @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800A330
+ subs r0, r4, #1
+ strh r0, [r3, #6]
+ subs r0, r2, #1
+ strh r0, [r3, #0x12]
+_0800A330:
+ ldr r1, _0800A38C @ =0x0200B0C0
+ ldrh r2, [r3]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0x18]
+ adds r4, #6
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, #0x1a]
+ ldr r2, _0800A390 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ ldrh r0, [r3, #0x20]
+ adds r0, #1
+ strh r0, [r3, #0x20]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x27
+ ble _0800A37E
+ movs r0, #0
+ strh r0, [r3, #0x20]
+ ldr r1, _0800A394 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+_0800A37E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A384: .4byte 0x0202ADA0
+_0800A388: .4byte 0x0202BF10
+_0800A38C: .4byte 0x0200B0C0
+_0800A390: .4byte 0x000002F6
+_0800A394: .4byte 0x0202C790
+
+ thumb_func_start nullsub_7
+nullsub_7: @ 0x0800A398
+ bx lr
+
+ thumb_func_start sub_A39C
+sub_A39C: @ 0x0800A39C
+ push {r4, lr}
+ ldr r3, _0800A428 @ =0x0202ADA0
+ ldrh r0, [r3, #2]
+ adds r0, #1
+ strh r0, [r3, #2]
+ ldrh r0, [r3, #0xe]
+ adds r0, #1
+ strh r0, [r3, #0xe]
+ ldrh r0, [r3, #0x18]
+ subs r0, #1
+ strh r0, [r3, #0x18]
+ ldrh r0, [r3, #0x1a]
+ subs r0, #1
+ strh r0, [r3, #0x1a]
+ ldrh r0, [r3]
+ subs r0, #1
+ strh r0, [r3]
+ ldrh r0, [r3, #0xc]
+ adds r0, #1
+ strh r0, [r3, #0xc]
+ ldr r0, _0800A42C @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800A3DC
+ ldrh r0, [r3, #6]
+ subs r0, #1
+ strh r0, [r3, #6]
+ ldrh r0, [r3, #0x12]
+ subs r0, #1
+ strh r0, [r3, #0x12]
+_0800A3DC:
+ ldr r1, _0800A430 @ =0x0200B0C0
+ ldrh r2, [r3]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0x18]
+ adds r4, #6
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, #0x1a]
+ ldr r2, _0800A434 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_10480
+ bl sub_10544
+ ldr r1, _0800A438 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A428: .4byte 0x0202ADA0
+_0800A42C: .4byte 0x0202BF10
+_0800A430: .4byte 0x0200B0C0
+_0800A434: .4byte 0x000002F6
+_0800A438: .4byte 0x0202C790
+
+ thumb_func_start sub_A43C
+sub_A43C: @ 0x0800A43C
+ push {lr}
+ bl sub_518
+ ldr r1, _0800A450 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A450: .4byte 0x0202C790
+
+ thumb_func_start sub_A454
+sub_A454: @ 0x0800A454
+ push {r4, lr}
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x80
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800A5A0 @ =0x04000008
+ movs r3, #0xb4
+ lsls r3, r3, #7
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #1
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800A5A4 @ =0x0400000A
+ ldr r3, _0800A5A8 @ =0x00001C01
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800A5AC @ =0x0400000C
+ ldr r3, _0800A5B0 @ =0x00005D02
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800A5B4 @ =0x0400000E
+ ldr r3, _0800A5B8 @ =0x00001F03
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0800A5BC @ =0x040000D4
+ ldr r1, _0800A5C0 @ =0x080DE520
+ str r1, [r0]
+ ldr r1, _0800A5C4 @ =0x0600D000
+ str r1, [r0, #4]
+ ldr r3, _0800A5C8 @ =0x80000800
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A5CC @ =0x080DCD20
+ str r1, [r0]
+ ldr r1, _0800A5D0 @ =0x0600E000
+ str r1, [r0, #4]
+ ldr r2, _0800A5D4 @ =0x80000400
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A5D8 @ =0x080D4900
+ str r1, [r0]
+ ldr r1, _0800A5DC @ =0x0600E800
+ str r1, [r0, #4]
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A5E0 @ =0x080D5900
+ str r1, [r0]
+ ldr r1, _0800A5E4 @ =0x0600F800
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A5E8 @ =0x080DD520
+ str r1, [r0]
+ ldr r1, _0800A5EC @ =0x03005C00
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A5F0 @ =0x080DDD20
+ str r1, [r0]
+ ldr r1, _0800A5F4 @ =0x0201B180
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A5F8 @ =0x080D6100
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800A5FC @ =0x80003600
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r3, _0800A600 @ =0x080D4700
+ str r3, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r2, _0800A604 @ =0x80000070
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800A608 @ =0x080DF520
+ str r1, [r0]
+ ldr r1, _0800A60C @ =0x06010000
+ str r1, [r0, #4]
+ ldr r1, _0800A610 @ =0x80001000
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ str r3, [r0]
+ ldr r1, _0800A614 @ =0x05000200
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+ bl sub_A628
+ bl sub_A87C
+ ldr r1, _0800A618 @ =0x0200B0C0
+ ldr r2, _0800A61C @ =0x0202ADA0
+ ldrh r3, [r2]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x18]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x1a]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x24]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r0, [r2, #0x26]
+ ldr r2, _0800A620 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800A624 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A5A0: .4byte 0x04000008
+_0800A5A4: .4byte 0x0400000A
+_0800A5A8: .4byte 0x00001C01
+_0800A5AC: .4byte 0x0400000C
+_0800A5B0: .4byte 0x00005D02
+_0800A5B4: .4byte 0x0400000E
+_0800A5B8: .4byte 0x00001F03
+_0800A5BC: .4byte 0x040000D4
+_0800A5C0: .4byte 0x080DE520
+_0800A5C4: .4byte 0x0600D000
+_0800A5C8: .4byte 0x80000800
+_0800A5CC: .4byte 0x080DCD20
+_0800A5D0: .4byte 0x0600E000
+_0800A5D4: .4byte 0x80000400
+_0800A5D8: .4byte 0x080D4900
+_0800A5DC: .4byte 0x0600E800
+_0800A5E0: .4byte 0x080D5900
+_0800A5E4: .4byte 0x0600F800
+_0800A5E8: .4byte 0x080DD520
+_0800A5EC: .4byte 0x03005C00
+_0800A5F0: .4byte 0x080DDD20
+_0800A5F4: .4byte 0x0201B180
+_0800A5F8: .4byte 0x080D6100
+_0800A5FC: .4byte 0x80003600
+_0800A600: .4byte 0x080D4700
+_0800A604: .4byte 0x80000070
+_0800A608: .4byte 0x080DF520
+_0800A60C: .4byte 0x06010000
+_0800A610: .4byte 0x80001000
+_0800A614: .4byte 0x05000200
+_0800A618: .4byte 0x0200B0C0
+_0800A61C: .4byte 0x0202ADA0
+_0800A620: .4byte 0x000002F6
+_0800A624: .4byte 0x0202C790
+
+ thumb_func_start sub_A628
+sub_A628: @ 0x0800A628
+ ldr r1, _0800A65C @ =0x0202ADA0
+ movs r2, #0
+ movs r0, #0x2c
+ strh r0, [r1]
+ ldr r0, _0800A660 @ =0x0000FF8E
+ strh r0, [r1, #2]
+ ldr r3, _0800A664 @ =0x0201A450
+ adds r0, #0x46
+ strh r0, [r3]
+ movs r0, #0x72
+ strh r0, [r3, #2]
+ ldr r0, _0800A668 @ =0x0000FFCE
+ strh r0, [r1, #0xc]
+ movs r0, #0x1e
+ strh r0, [r1, #0xe]
+ strh r2, [r1, #0x18]
+ strh r2, [r1, #0x1a]
+ strh r2, [r1, #0x20]
+ strh r2, [r1, #0x24]
+ strh r2, [r1, #0x26]
+ ldr r0, _0800A66C @ =0x0202BF10
+ strh r2, [r0]
+ ldr r0, _0800A670 @ =0x0202A578
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_0800A65C: .4byte 0x0202ADA0
+_0800A660: .4byte 0x0000FF8E
+_0800A664: .4byte 0x0201A450
+_0800A668: .4byte 0x0000FFCE
+_0800A66C: .4byte 0x0202BF10
+_0800A670: .4byte 0x0202A578
+
+ thumb_func_start sub_A674
+sub_A674: @ 0x0800A674
+ push {r4, lr}
+ ldr r4, _0800A6FC @ =0x0202ADA0
+ ldrh r0, [r4]
+ subs r0, #0x11
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ adds r0, #0xa
+ strh r0, [r4, #2]
+ ldr r1, _0800A700 @ =0x0201A450
+ ldrh r0, [r1]
+ adds r0, #0x11
+ strh r0, [r1]
+ ldrh r0, [r1, #2]
+ subs r0, #0xa
+ strh r0, [r1, #2]
+ ldrh r0, [r4, #0x18]
+ adds r0, #0x10
+ strh r0, [r4, #0x18]
+ ldrh r0, [r4, #0xc]
+ adds r0, #4
+ strh r0, [r4, #0xc]
+ ldrh r0, [r4, #0xe]
+ subs r0, #8
+ strh r0, [r4, #0xe]
+ ldrh r0, [r4, #0x20]
+ adds r0, #1
+ strh r0, [r4, #0x20]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _0800A6BE
+ movs r0, #0
+ strh r0, [r4, #0x20]
+ ldr r1, _0800A704 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800A6BE:
+ bl sub_A87C
+ ldr r1, _0800A708 @ =0x0200B0C0
+ ldrh r2, [r4]
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #2]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xc]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xe]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x18]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x1a]
+ ldr r2, _0800A70C @ =0x000002F2
+ adds r1, r1, r2
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A6FC: .4byte 0x0202ADA0
+_0800A700: .4byte 0x0201A450
+_0800A704: .4byte 0x0202C790
+_0800A708: .4byte 0x0200B0C0
+_0800A70C: .4byte 0x000002F2
+
+ thumb_func_start sub_A710
+sub_A710: @ 0x0800A710
+ push {r4, r5, r6, lr}
+ ldr r5, _0800A7C8 @ =0x0202ADA0
+ ldrh r0, [r5, #0x24]
+ subs r0, #1
+ movs r6, #0
+ strh r0, [r5, #0x24]
+ ldr r2, _0800A7CC @ =0x0202BF10
+ ldrh r0, [r2]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800A742
+ ldrh r0, [r5]
+ subs r0, #1
+ strh r0, [r5]
+ ldrh r0, [r5, #2]
+ adds r0, #1
+ strh r0, [r5, #2]
+ ldr r1, _0800A7D0 @ =0x0201A450
+ ldrh r0, [r1]
+ adds r0, #2
+ strh r0, [r1]
+ ldrh r0, [r1, #2]
+ subs r0, #2
+ strh r0, [r1, #2]
+_0800A742:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ movs r1, #3
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0800A776
+ ldr r0, _0800A7D4 @ =0x040000D4
+ movs r3, #0xa0
+ lsls r3, r3, #0x13
+ str r3, [r0]
+ ldr r4, _0800A7D8 @ =0x0202BE70
+ str r4, [r0, #4]
+ ldr r1, _0800A7DC @ =0x80000010
+ str r1, [r0, #8]
+ ldr r2, [r0, #8]
+ ldr r2, _0800A7E0 @ =0x05000040
+ str r2, [r0]
+ str r3, [r0, #4]
+ str r1, [r0, #8]
+ ldr r3, [r0, #8]
+ str r4, [r0]
+ str r2, [r0, #4]
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+_0800A776:
+ ldr r4, _0800A7E4 @ =0x0200B0C0
+ ldrh r1, [r5]
+ movs r2, #0xba
+ lsls r2, r2, #2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldrh r1, [r5, #2]
+ adds r2, #2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldrh r1, [r5, #0x24]
+ adds r2, #0xa
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldrh r1, [r5, #0x26]
+ adds r2, #2
+ adds r0, r4, r2
+ strh r1, [r0]
+ bl sub_A87C
+ movs r1, #0x20
+ ldrsh r0, [r5, r1]
+ cmp r0, #2
+ bne _0800A7F4
+ ldr r1, _0800A7D4 @ =0x040000D4
+ ldr r0, _0800A7E8 @ =0x03005C00
+ str r0, [r1]
+ ldr r0, _0800A7EC @ =0x0600E000
+ str r0, [r1, #4]
+ ldr r0, _0800A7F0 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ strh r6, [r5, #0xc]
+ strh r6, [r5, #0xe]
+ movs r2, #0xbb
+ lsls r2, r2, #2
+ adds r0, r4, r2
+ strh r6, [r0]
+ movs r1, #0
+ adds r2, #2
+ b _0800A818
+ .align 2, 0
+_0800A7C8: .4byte 0x0202ADA0
+_0800A7CC: .4byte 0x0202BF10
+_0800A7D0: .4byte 0x0201A450
+_0800A7D4: .4byte 0x040000D4
+_0800A7D8: .4byte 0x0202BE70
+_0800A7DC: .4byte 0x80000010
+_0800A7E0: .4byte 0x05000040
+_0800A7E4: .4byte 0x0200B0C0
+_0800A7E8: .4byte 0x03005C00
+_0800A7EC: .4byte 0x0600E000
+_0800A7F0: .4byte 0x80000400
+_0800A7F4:
+ cmp r0, #4
+ bne _0800A81C
+ ldr r1, _0800A840 @ =0x040000D4
+ ldr r0, _0800A844 @ =0x0201B180
+ str r0, [r1]
+ ldr r0, _0800A848 @ =0x0600E000
+ str r0, [r1, #4]
+ ldr r0, _0800A84C @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ strh r6, [r5, #0xc]
+ strh r6, [r5, #0xe]
+ movs r1, #0xbb
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ strh r6, [r0]
+ movs r1, #0
+ ldr r2, _0800A850 @ =0x000002EE
+_0800A818:
+ adds r0, r4, r2
+ strh r1, [r0]
+_0800A81C:
+ ldr r1, _0800A854 @ =0x0202ADA0
+ ldrh r0, [r1, #0x20]
+ adds r0, #1
+ strh r0, [r1, #0x20]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1d
+ ble _0800A838
+ movs r0, #0
+ strh r0, [r1, #0x20]
+ ldr r1, _0800A858 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+_0800A838:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A840: .4byte 0x040000D4
+_0800A844: .4byte 0x0201B180
+_0800A848: .4byte 0x0600E000
+_0800A84C: .4byte 0x80000400
+_0800A850: .4byte 0x000002EE
+_0800A854: .4byte 0x0202ADA0
+_0800A858: .4byte 0x0202C790
+
+ thumb_func_start nullsub_8
+nullsub_8: @ 0x0800A85C
+ bx lr
+
+ thumb_func_start sub_A860
+sub_A860: @ 0x0800A860
+ push {lr}
+ bl sub_10480
+ bl sub_10544
+ ldr r1, _0800A878 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A878: .4byte 0x0202C790
+
+ thumb_func_start sub_A87C
+sub_A87C: @ 0x0800A87C
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _0800A92C @ =0x0200B0C0
+ ldrh r0, [r4, #0x38]
+ ldr r0, _0800A930 @ =0x00001F50
+ strh r0, [r4, #0x38]
+ ldrh r0, [r4, #0x3a]
+ ldr r0, _0800A934 @ =0x00000808
+ strh r0, [r4, #0x3a]
+ ldr r1, _0800A938 @ =0x04000050
+ ldrh r0, [r4, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r4, #0x3a]
+ strh r0, [r1]
+ movs r0, #0xbe
+ lsls r0, r0, #2
+ adds r5, r4, r0
+ movs r0, #1
+ strh r0, [r5]
+ ldr r0, _0800A93C @ =0x086A795C
+ movs r1, #1
+ adds r2, r5, #0
+ bl sub_358
+ ldrh r0, [r5]
+ cmp r0, #1
+ bne _0800A91C
+ ldr r0, _0800A940 @ =0x0201A450
+ ldrh r1, [r0]
+ strh r1, [r5, #2]
+ ldrh r0, [r0, #2]
+ strh r0, [r5, #4]
+ ldr r7, _0800A944 @ =0x03005000
+ movs r2, #0xd
+ rsbs r2, r2, #0
+ mov r8, r2
+ ldr r0, _0800A948 @ =0xFFFFFE00
+ mov ip, r0
+ movs r2, #0xc0
+ lsls r2, r2, #2
+ adds r4, r4, r2
+ movs r6, #3
+_0800A8D4:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r7
+ ldrb r1, [r2, #5]
+ mov r0, r8
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r2, #2
+ ldrsh r0, [r5, r2]
+ adds r1, r1, r0
+ ldr r2, _0800A94C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r5, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _0800A8D4
+_0800A91C:
+ movs r0, #0
+ strh r0, [r5]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A92C: .4byte 0x0200B0C0
+_0800A930: .4byte 0x00001F50
+_0800A934: .4byte 0x00000808
+_0800A938: .4byte 0x04000050
+_0800A93C: .4byte 0x086A795C
+_0800A940: .4byte 0x0201A450
+_0800A944: .4byte 0x03005000
+_0800A948: .4byte 0xFFFFFE00
+_0800A94C: .4byte 0x000001FF
+
+ thumb_func_start sub_A950
+sub_A950: @ 0x0800A950
+ push {lr}
+ bl sub_518
+ ldr r1, _0800A964 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A964: .4byte 0x0202C790
+
+ thumb_func_start sub_A968
+sub_A968: @ 0x0800A968
+ push {r4, lr}
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r0, #0
+ strh r0, [r2]
+ ldr r1, _0800AA50 @ =0x04000008
+ movs r3, #0xcc
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800AA54 @ =0x0400000A
+ ldr r3, _0800AA58 @ =0x0000DA01
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #2
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800AA5C @ =0x0400000E
+ ldr r3, _0800AA60 @ =0x00001E03
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0800AA64 @ =0x040000D4
+ ldr r1, _0800AA68 @ =0x080E5F60
+ str r1, [r0]
+ ldr r1, _0800AA6C @ =0x06006000
+ str r1, [r0, #4]
+ ldr r3, _0800AA70 @ =0x80001000
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800AA74 @ =0x080E7F60
+ str r1, [r0]
+ ldr r1, _0800AA78 @ =0x0600D000
+ str r1, [r0, #4]
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800AA7C @ =0x080E1740
+ str r1, [r0]
+ ldr r1, _0800AA80 @ =0x0600F000
+ str r1, [r0, #4]
+ ldr r1, _0800AA84 @ =0x80000400
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800AA88 @ =0x080E1F40
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800AA8C @ =0x80002000
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800AA90 @ =0x080E1540
+ str r1, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800AA94 @ =0x80000030
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ ldr r4, _0800AA98 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r4, #0x16]
+ bl sub_AAA8
+ ldr r2, _0800AA9C @ =0x0202ADA0
+ ldrh r1, [r2]
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldrh r1, [r2, #2]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldrh r1, [r2, #0xc]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldrh r1, [r2, #0xe]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldrh r1, [r2, #0x18]
+ adds r3, #6
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldrh r0, [r2, #0x1a]
+ ldr r1, _0800AAA0 @ =0x000002F6
+ adds r4, r4, r1
+ strh r0, [r4]
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800AAA4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800AA50: .4byte 0x04000008
+_0800AA54: .4byte 0x0400000A
+_0800AA58: .4byte 0x0000DA01
+_0800AA5C: .4byte 0x0400000E
+_0800AA60: .4byte 0x00001E03
+_0800AA64: .4byte 0x040000D4
+_0800AA68: .4byte 0x080E5F60
+_0800AA6C: .4byte 0x06006000
+_0800AA70: .4byte 0x80001000
+_0800AA74: .4byte 0x080E7F60
+_0800AA78: .4byte 0x0600D000
+_0800AA7C: .4byte 0x080E1740
+_0800AA80: .4byte 0x0600F000
+_0800AA84: .4byte 0x80000400
+_0800AA88: .4byte 0x080E1F40
+_0800AA8C: .4byte 0x80002000
+_0800AA90: .4byte 0x080E1540
+_0800AA94: .4byte 0x80000030
+_0800AA98: .4byte 0x0200B0C0
+_0800AA9C: .4byte 0x0202ADA0
+_0800AAA0: .4byte 0x000002F6
+_0800AAA4: .4byte 0x0202C790
+
+ thumb_func_start sub_AAA8
+sub_AAA8: @ 0x0800AAA8
+ ldr r0, _0800AAD8 @ =0x0202ADA0
+ movs r2, #0
+ movs r1, #0x1c
+ strh r1, [r0]
+ ldr r1, _0800AADC @ =0x0000FF20
+ strh r1, [r0, #2]
+ strh r2, [r0, #4]
+ movs r1, #0xf
+ strh r1, [r0, #6]
+ ldr r1, _0800AAE0 @ =0x0000FF64
+ strh r1, [r0, #0xc]
+ movs r1, #0xe0
+ strh r1, [r0, #0xe]
+ strh r2, [r0, #0x10]
+ ldr r1, _0800AAE4 @ =0x0000FFF1
+ strh r1, [r0, #0x12]
+ strh r2, [r0, #0x18]
+ strh r2, [r0, #0x1a]
+ strh r2, [r0, #0x20]
+ ldr r0, _0800AAE8 @ =0x0202BF10
+ strh r2, [r0]
+ ldr r0, _0800AAEC @ =0x0202A578
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_0800AAD8: .4byte 0x0202ADA0
+_0800AADC: .4byte 0x0000FF20
+_0800AAE0: .4byte 0x0000FF64
+_0800AAE4: .4byte 0x0000FFF1
+_0800AAE8: .4byte 0x0202BF10
+_0800AAEC: .4byte 0x0202A578
+
+ thumb_func_start nullsub_9
+nullsub_9: @ 0x0800AAF0
+ bx lr
+
+ thumb_func_start sub_AAF4
+sub_AAF4: @ 0x0800AAF4
+ push {r4, lr}
+ ldr r3, _0800AB7C @ =0x0202ADA0
+ ldrh r4, [r3, #6]
+ ldrh r1, [r3, #2]
+ adds r0, r4, r1
+ strh r0, [r3, #2]
+ ldrh r2, [r3, #0x12]
+ ldrh r1, [r3, #0xe]
+ adds r0, r2, r1
+ strh r0, [r3, #0xe]
+ ldrh r0, [r3, #0x18]
+ subs r0, #1
+ strh r0, [r3, #0x18]
+ ldrh r0, [r3]
+ subs r0, #1
+ strh r0, [r3]
+ ldrh r0, [r3, #0xc]
+ adds r0, #1
+ strh r0, [r3, #0xc]
+ ldr r0, _0800AB80 @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800AB2E
+ subs r0, r4, #1
+ strh r0, [r3, #6]
+ adds r0, r2, #1
+ strh r0, [r3, #0x12]
+_0800AB2E:
+ ldr r1, _0800AB84 @ =0x0200B0C0
+ ldrh r2, [r3]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, #0x18]
+ movs r2, #0xbd
+ lsls r2, r2, #2
+ adds r1, r1, r2
+ strh r0, [r1]
+ ldrh r0, [r3, #0x20]
+ adds r0, #1
+ strh r0, [r3, #0x20]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x27
+ ble _0800AB76
+ movs r0, #0
+ strh r0, [r3, #0x20]
+ ldr r1, _0800AB88 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+_0800AB76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800AB7C: .4byte 0x0202ADA0
+_0800AB80: .4byte 0x0202BF10
+_0800AB84: .4byte 0x0200B0C0
+_0800AB88: .4byte 0x0202C790
+
+ thumb_func_start nullsub_10
+nullsub_10: @ 0x0800AB8C
+ bx lr
+
+ thumb_func_start sub_AB90
+sub_AB90: @ 0x0800AB8E
+ push {r4, lr}
+ ldr r3, _0800AC10 @ =0x0202ADA0
+ ldrh r4, [r3, #6]
+ ldrh r1, [r3, #2]
+ adds r0, r4, r1
+ strh r0, [r3, #2]
+ ldrh r2, [r3, #0x12]
+ ldrh r1, [r3, #0xe]
+ adds r0, r2, r1
+ strh r0, [r3, #0xe]
+ ldrh r0, [r3, #0x18]
+ subs r0, #1
+ strh r0, [r3, #0x18]
+ ldrh r0, [r3]
+ subs r0, #1
+ strh r0, [r3]
+ ldrh r0, [r3, #0xc]
+ adds r0, #1
+ strh r0, [r3, #0xc]
+ ldr r0, _0800AC14 @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800ABCA
+ subs r0, r4, #1
+ strh r0, [r3, #6]
+ adds r0, r2, #1
+ strh r0, [r3, #0x12]
+_0800ABCA:
+ ldr r1, _0800AC18 @ =0x0200B0C0
+ ldrh r2, [r3]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, #0x18]
+ movs r2, #0xbd
+ lsls r2, r2, #2
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_10480
+ bl sub_10544
+ ldr r1, _0800AC1C @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800AC10: .4byte 0x0202ADA0
+_0800AC14: .4byte 0x0202BF10
+_0800AC18: .4byte 0x0200B0C0
+_0800AC1C: .4byte 0x0202C790
+
+ thumb_func_start sub_AC20
+sub_AC20: @ 0x0800AC20
+ push {lr}
+ bl sub_518
+ ldr r1, _0800AC34 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800AC34: .4byte 0x0202C790
+
+ thumb_func_start sub_AC38
+sub_AC38: @ 0x0800AC38
+ push {r4, lr}
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x80
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800AD78 @ =0x04000008
+ movs r3, #0xc0
+ lsls r3, r3, #4
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #1
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800AD7C @ =0x0400000A
+ ldr r3, _0800AD80 @ =0x00004E01
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800AD84 @ =0x0400000C
+ ldr r3, _0800AD88 @ =0x00005C02
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800AD8C @ =0x0400000E
+ ldr r3, _0800AD90 @ =0x00001E03
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0800AD94 @ =0x040000D4
+ ldr r1, _0800AD98 @ =0x080F1980
+ str r1, [r0]
+ ldr r1, _0800AD9C @ =0x06006000
+ str r1, [r0, #4]
+ ldr r3, _0800ADA0 @ =0x80000400
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800ADA4 @ =0x080EB160
+ str r1, [r0]
+ ldr r1, _0800ADA8 @ =0x06007000
+ str r1, [r0, #4]
+ ldr r2, _0800ADAC @ =0x80000800
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800ADB0 @ =0x080EA160
+ str r1, [r0]
+ ldr r1, _0800ADB4 @ =0x0600E000
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800ADB8 @ =0x080EC160
+ str r1, [r0]
+ ldr r1, _0800ADBC @ =0x0600F000
+ str r1, [r0, #4]
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800ADC0 @ =0x080EC960
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800ADC4 @ =0x80001400
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800ADC8 @ =0x080BD4C0
+ str r1, [r0]
+ ldr r1, _0800ADCC @ =0x03000000
+ str r1, [r0, #4]
+ ldr r1, _0800ADD0 @ =0x80002000
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r3, _0800ADD4 @ =0x080E9F60
+ str r3, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r2, _0800ADD8 @ =0x800000C0
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800ADDC @ =0x080F2180
+ str r1, [r0]
+ ldr r1, _0800ADE0 @ =0x06010000
+ str r1, [r0, #4]
+ ldr r1, _0800ADE4 @ =0x80001800
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ str r3, [r0]
+ ldr r1, _0800ADE8 @ =0x05000200
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+ bl sub_ADFC
+ bl sub_B0E8
+ ldr r1, _0800ADEC @ =0x0200B0C0
+ ldr r2, _0800ADF0 @ =0x0202ADA0
+ ldrh r3, [r2]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x18]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x1a]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x24]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r0, [r2, #0x26]
+ ldr r2, _0800ADF4 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800ADF8 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800AD78: .4byte 0x04000008
+_0800AD7C: .4byte 0x0400000A
+_0800AD80: .4byte 0x00004E01
+_0800AD84: .4byte 0x0400000C
+_0800AD88: .4byte 0x00005C02
+_0800AD8C: .4byte 0x0400000E
+_0800AD90: .4byte 0x00001E03
+_0800AD94: .4byte 0x040000D4
+_0800AD98: .4byte 0x080F1980
+_0800AD9C: .4byte 0x06006000
+_0800ADA0: .4byte 0x80000400
+_0800ADA4: .4byte 0x080EB160
+_0800ADA8: .4byte 0x06007000
+_0800ADAC: .4byte 0x80000800
+_0800ADB0: .4byte 0x080EA160
+_0800ADB4: .4byte 0x0600E000
+_0800ADB8: .4byte 0x080EC160
+_0800ADBC: .4byte 0x0600F000
+_0800ADC0: .4byte 0x080EC960
+_0800ADC4: .4byte 0x80001400
+_0800ADC8: .4byte 0x080BD4C0
+_0800ADCC: .4byte 0x03000000
+_0800ADD0: .4byte 0x80002000
+_0800ADD4: .4byte 0x080E9F60
+_0800ADD8: .4byte 0x800000C0
+_0800ADDC: .4byte 0x080F2180
+_0800ADE0: .4byte 0x06010000
+_0800ADE4: .4byte 0x80001800
+_0800ADE8: .4byte 0x05000200
+_0800ADEC: .4byte 0x0200B0C0
+_0800ADF0: .4byte 0x0202ADA0
+_0800ADF4: .4byte 0x000002F6
+_0800ADF8: .4byte 0x0202C790
+
+ thumb_func_start sub_ADFC
+sub_ADFC: @ 0x0800ADFC
+ push {r4, r5, lr}
+ ldr r1, _0800AE54 @ =0x0201A450
+ movs r5, #0
+ movs r2, #0xb4
+ strh r2, [r1, #0x10]
+ ldr r0, _0800AE58 @ =0x0000FFBC
+ strh r0, [r1, #0x12]
+ strh r2, [r1]
+ strh r0, [r1, #2]
+ movs r0, #0x80
+ strh r0, [r1, #0x20]
+ movs r0, #0x88
+ strh r0, [r1, #0x22]
+ ldr r4, _0800AE5C @ =0x0202ADA0
+ ldr r0, _0800AE60 @ =0x0000FF58
+ strh r0, [r4]
+ adds r0, #0x40
+ strh r0, [r4, #2]
+ strh r5, [r4, #8]
+ strh r5, [r4, #0xa]
+ strh r5, [r4, #4]
+ ldr r0, _0800AE64 @ =0x03002300
+ ldr r1, _0800AE68 @ =0x06002EE0
+ movs r2, #8
+ movs r3, #8
+ bl sub_10708
+ movs r0, #0xa5
+ strh r0, [r4, #0xc]
+ strh r5, [r4, #0xe]
+ strh r5, [r4, #0x14]
+ movs r0, #0xa0
+ strh r0, [r4, #0x18]
+ strh r5, [r4, #0x1a]
+ strh r5, [r4, #0x20]
+ strh r5, [r4, #0x24]
+ strh r5, [r4, #0x26]
+ ldr r0, _0800AE6C @ =0x0202BF10
+ strh r5, [r0]
+ ldr r0, _0800AE70 @ =0x0202A578
+ strh r5, [r0]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800AE54: .4byte 0x0201A450
+_0800AE58: .4byte 0x0000FFBC
+_0800AE5C: .4byte 0x0202ADA0
+_0800AE60: .4byte 0x0000FF58
+_0800AE64: .4byte 0x03002300
+_0800AE68: .4byte 0x06002EE0
+_0800AE6C: .4byte 0x0202BF10
+_0800AE70: .4byte 0x0202A578
+
+ thumb_func_start sub_AE74
+sub_AE74: @ 0x0800AE74
+ push {r4, lr}
+ ldr r1, _0800AF5C @ =0x0201A450
+ ldrh r0, [r1, #0x10]
+ subs r0, #0x10
+ strh r0, [r1, #0x10]
+ ldrh r0, [r1, #0x12]
+ adds r0, #0xa
+ strh r0, [r1, #0x12]
+ ldrh r0, [r1]
+ subs r0, #0x10
+ strh r0, [r1]
+ ldrh r0, [r1, #2]
+ adds r0, #0xa
+ strh r0, [r1, #2]
+ ldrh r0, [r1, #0x20]
+ adds r0, #5
+ strh r0, [r1, #0x20]
+ ldrh r0, [r1, #0x22]
+ subs r0, #3
+ strh r0, [r1, #0x22]
+ ldr r4, _0800AF60 @ =0x0202ADA0
+ ldrh r0, [r4, #0xc]
+ subs r0, #0x10
+ strh r0, [r4, #0xc]
+ ldrh r0, [r4, #0xe]
+ adds r0, #1
+ strh r0, [r4, #0xe]
+ ldrh r0, [r4, #0x18]
+ subs r0, #0x10
+ strh r0, [r4, #0x18]
+ ldrh r1, [r4, #4]
+ ldrh r2, [r4]
+ adds r0, r1, r2
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ adds r0, #9
+ strh r0, [r4, #2]
+ adds r1, #1
+ strh r1, [r4, #4]
+ ldrh r0, [r4, #0xa]
+ adds r0, #1
+ strh r0, [r4, #0xa]
+ ldr r2, _0800AF64 @ =0x086A79FC
+ movs r3, #8
+ ldrsh r1, [r4, r3]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r2, #2
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _0800AF02
+ ldrh r0, [r4, #8]
+ adds r0, #1
+ strh r0, [r4, #8]
+ ldr r1, _0800AF68 @ =0x086A7A1C
+ movs r3, #8
+ ldrsh r0, [r4, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ ldr r1, _0800AF6C @ =0x03000000
+ adds r0, r0, r1
+ ldr r1, _0800AF70 @ =0x06002EE0
+ movs r2, #8
+ movs r3, #8
+ bl sub_10708
+_0800AF02:
+ bl sub_B0E8
+ ldr r1, _0800AF74 @ =0x0200B0C0
+ ldrh r2, [r4]
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #2]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xc]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xe]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x18]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x1a]
+ ldr r2, _0800AF78 @ =0x000002F2
+ adds r1, r1, r2
+ strh r0, [r1]
+ ldrh r0, [r4, #0x20]
+ adds r0, #1
+ strh r0, [r4, #0x20]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _0800AF54
+ movs r0, #0
+ strh r0, [r4, #0x20]
+ ldr r1, _0800AF7C @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800AF54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800AF5C: .4byte 0x0201A450
+_0800AF60: .4byte 0x0202ADA0
+_0800AF64: .4byte 0x086A79FC
+_0800AF68: .4byte 0x086A7A1C
+_0800AF6C: .4byte 0x03000000
+_0800AF70: .4byte 0x06002EE0
+_0800AF74: .4byte 0x0200B0C0
+_0800AF78: .4byte 0x000002F2
+_0800AF7C: .4byte 0x0202C790
+
+ thumb_func_start sub_AF80
+sub_AF80: @ 0x0800AF80
+ push {r4, lr}
+ ldr r3, _0800B064 @ =0x0202ADA0
+ ldrh r0, [r3, #0xa]
+ adds r0, #1
+ strh r0, [r3, #0xa]
+ ldr r2, _0800B068 @ =0x086A79FC
+ movs r4, #8
+ ldrsh r1, [r3, r4]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r2, #2
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _0800AFCC
+ ldrh r1, [r3, #8]
+ movs r4, #8
+ ldrsh r0, [r3, r4]
+ cmp r0, #6
+ bgt _0800AFCC
+ adds r0, r1, #1
+ strh r0, [r3, #8]
+ ldr r1, _0800B06C @ =0x086A7A1C
+ movs r2, #8
+ ldrsh r0, [r3, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ lsls r0, r0, #1
+ ldr r1, _0800B070 @ =0x03000000
+ adds r0, r0, r1
+ ldr r1, _0800B074 @ =0x06002EE0
+ movs r2, #8
+ movs r3, #8
+ bl sub_10708
+_0800AFCC:
+ bl sub_B0E8
+ ldr r3, _0800B064 @ =0x0202ADA0
+ ldrh r0, [r3, #0x24]
+ adds r0, #1
+ strh r0, [r3, #0x24]
+ ldr r0, _0800B078 @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800AFFE
+ ldr r1, _0800B07C @ =0x0201A450
+ ldrh r0, [r1, #0x10]
+ subs r0, #1
+ strh r0, [r1, #0x10]
+ ldrh r0, [r1, #0x12]
+ adds r0, #1
+ strh r0, [r1, #0x12]
+ ldrh r0, [r1]
+ subs r0, #2
+ strh r0, [r1]
+ ldrh r0, [r1, #2]
+ adds r0, #2
+ strh r0, [r1, #2]
+_0800AFFE:
+ ldr r1, _0800B080 @ =0x0200B0C0
+ ldrh r2, [r3]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0x18]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0x1a]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0x24]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, #0x26]
+ ldr r2, _0800B084 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ ldrh r0, [r3, #0x2c]
+ adds r0, #1
+ strh r0, [r3, #0x2c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1d
+ ble _0800B05C
+ movs r0, #0
+ strh r0, [r3, #0x2c]
+ ldr r1, _0800B088 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+_0800B05C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B064: .4byte 0x0202ADA0
+_0800B068: .4byte 0x086A79FC
+_0800B06C: .4byte 0x086A7A1C
+_0800B070: .4byte 0x03000000
+_0800B074: .4byte 0x06002EE0
+_0800B078: .4byte 0x0202BF10
+_0800B07C: .4byte 0x0201A450
+_0800B080: .4byte 0x0200B0C0
+_0800B084: .4byte 0x000002F6
+_0800B088: .4byte 0x0202C790
+
+ thumb_func_start nullsub_11
+nullsub_11: @ 0x0800B08C
+ bx lr
+
+ thumb_func_start sub_B090
+sub_B090: @ 0x0800B090
+ push {lr}
+ sub sp, #8
+ bl sub_10480
+ bl sub_578
+ movs r2, #0
+ str r2, [sp]
+ ldr r1, _0800B0D4 @ =0x040000D4
+ mov r0, sp
+ str r0, [r1]
+ movs r0, #0xe0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800B0D8 @ =0x85000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add r0, sp, #4
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _0800B0DC @ =0x06010000
+ str r0, [r1, #4]
+ ldr r0, _0800B0E0 @ =0x81002800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bl sub_10544
+ ldr r1, _0800B0E4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ add sp, #8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B0D4: .4byte 0x040000D4
+_0800B0D8: .4byte 0x85000100
+_0800B0DC: .4byte 0x06010000
+_0800B0E0: .4byte 0x81002800
+_0800B0E4: .4byte 0x0202C790
+
+ thumb_func_start sub_B0E8
+sub_B0E8: @ 0x0800B0E8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r4, _0800B2C0 @ =0x0200B0C0
+ ldrh r0, [r4, #0x38]
+ movs r0, #0xf1
+ lsls r0, r0, #4
+ strh r0, [r4, #0x38]
+ ldrh r0, [r4, #0x3a]
+ ldr r0, _0800B2C4 @ =0x00000808
+ strh r0, [r4, #0x3a]
+ ldr r1, _0800B2C8 @ =0x04000050
+ ldrh r0, [r4, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r4, #0x3a]
+ strh r0, [r1]
+ movs r0, #0xec
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ mov sl, r0
+ movs r1, #0xbe
+ lsls r1, r1, #2
+ adds r1, r1, r4
+ mov r8, r1
+ movs r2, #0x8d
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ mov sb, r2
+ movs r0, #1
+ mov r7, sl
+ strh r0, [r7]
+ strh r0, [r1]
+ strh r0, [r2]
+ ldr r0, _0800B2CC @ =0x086A79EC
+ movs r1, #3
+ mov r2, r8
+ bl sub_358
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _0800B1B8
+ ldr r0, _0800B2D0 @ =0x0201A450
+ ldrh r1, [r0]
+ strh r1, [r7, #2]
+ ldrh r0, [r0, #2]
+ strh r0, [r7, #4]
+ ldr r6, _0800B2D4 @ =0x03005000
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ mov ip, r0
+ movs r1, #0xee
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ movs r5, #3
+_0800B15A:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #1]
+ mov r0, ip
+ ands r0, r2
+ movs r2, #4
+ orrs r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #5]
+ mov r0, ip
+ ands r0, r2
+ movs r7, #4
+ orrs r0, r7
+ strb r0, [r1, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, sl
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800B2D8 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _0800B2DC @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r7, sl
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _0800B15A
+_0800B1B8:
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _0800B234
+ ldr r0, _0800B2D0 @ =0x0201A450
+ ldrh r1, [r0, #0x10]
+ strh r1, [r7, #2]
+ ldrh r0, [r0, #0x12]
+ strh r0, [r7, #4]
+ ldr r6, _0800B2D4 @ =0x03005000
+ ldr r0, _0800B2DC @ =0xFFFFFE00
+ mov ip, r0
+ mov r4, r8
+ adds r4, #8
+ movs r5, #3
+_0800B1D6:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #1]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ mov r7, r8
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r7, _0800B2D8 @ =0x000001FF
+ adds r0, r7, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r2, r8
+ ldrb r0, [r2, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _0800B1D6
+_0800B234:
+ mov r1, sb
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800B2A2
+ ldr r0, _0800B2D0 @ =0x0201A450
+ ldrh r1, [r0, #0x20]
+ mov r2, sb
+ strh r1, [r2, #2]
+ ldrh r0, [r0, #0x22]
+ strh r0, [r2, #4]
+ ldr r6, _0800B2D4 @ =0x03005000
+ movs r7, #0xd
+ rsbs r7, r7, #0
+ mov ip, r7
+ mov r4, sb
+ adds r4, #8
+ movs r5, #7
+_0800B256:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #5]
+ mov r0, ip
+ ands r0, r1
+ movs r1, #8
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, sb
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800B2D8 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _0800B2DC @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r7, sb
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _0800B256
+_0800B2A2:
+ movs r0, #0
+ mov r7, sl
+ strh r0, [r7]
+ mov r1, r8
+ strh r0, [r1]
+ mov r2, sb
+ strh r0, [r2]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B2C0: .4byte 0x0200B0C0
+_0800B2C4: .4byte 0x00000808
+_0800B2C8: .4byte 0x04000050
+_0800B2CC: .4byte 0x086A79EC
+_0800B2D0: .4byte 0x0201A450
+_0800B2D4: .4byte 0x03005000
+_0800B2D8: .4byte 0x000001FF
+_0800B2DC: .4byte 0xFFFFFE00
+
+ thumb_func_start sub_B2E0
+sub_B2E0: @ 0x0800B2E0
+ push {lr}
+ bl sub_518
+ ldr r1, _0800B2F4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B2F4: .4byte 0x0202C790
+
+ thumb_func_start sub_B2F8
+sub_B2F8: @ 0x0800B2F8
+ push {r4, lr}
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x80
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800B428 @ =0x04000008
+ movs r3, #0xf0
+ lsls r3, r3, #4
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #1
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800B42C @ =0x0400000A
+ ldr r3, _0800B430 @ =0x0000DA01
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800B434 @ =0x0400000C
+ ldr r3, _0800B438 @ =0x00001E02
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800B43C @ =0x0400000E
+ ldr r3, _0800B440 @ =0x00001F03
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0800B444 @ =0x040000D4
+ ldr r1, _0800B448 @ =0x080FD7C0
+ str r1, [r0]
+ ldr r1, _0800B44C @ =0x06007800
+ str r1, [r0, #4]
+ ldr r2, _0800B450 @ =0x80000400
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800B454 @ =0x080FDFC0
+ str r1, [r0]
+ ldr r1, _0800B458 @ =0x0600D000
+ str r1, [r0, #4]
+ ldr r1, _0800B45C @ =0x80001000
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800B460 @ =0x080FCFC0
+ str r1, [r0]
+ ldr r1, _0800B464 @ =0x0600F000
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800B468 @ =0x080F63A0
+ str r1, [r0]
+ ldr r1, _0800B46C @ =0x0600F800
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800B470 @ =0x080F6BA0
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800B474 @ =0x80003200
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r3, _0800B478 @ =0x080F61A0
+ str r3, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r2, _0800B47C @ =0x80000040
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800B480 @ =0x080FFFC0
+ str r1, [r0]
+ ldr r1, _0800B484 @ =0x06010000
+ str r1, [r0, #4]
+ ldr r1, _0800B488 @ =0x80000800
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ str r3, [r0]
+ ldr r1, _0800B48C @ =0x05000200
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+ bl sub_B4A0
+ ldr r1, _0800B490 @ =0x0200B0C0
+ ldr r2, _0800B494 @ =0x0202ADA0
+ ldrh r3, [r2]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #2]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0xc]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0xe]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x18]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x1a]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r3, [r2, #0x24]
+ adds r4, #2
+ adds r0, r1, r4
+ strh r3, [r0]
+ ldrh r0, [r2, #0x26]
+ ldr r2, _0800B498 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800B49C @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B428: .4byte 0x04000008
+_0800B42C: .4byte 0x0400000A
+_0800B430: .4byte 0x0000DA01
+_0800B434: .4byte 0x0400000C
+_0800B438: .4byte 0x00001E02
+_0800B43C: .4byte 0x0400000E
+_0800B440: .4byte 0x00001F03
+_0800B444: .4byte 0x040000D4
+_0800B448: .4byte 0x080FD7C0
+_0800B44C: .4byte 0x06007800
+_0800B450: .4byte 0x80000400
+_0800B454: .4byte 0x080FDFC0
+_0800B458: .4byte 0x0600D000
+_0800B45C: .4byte 0x80001000
+_0800B460: .4byte 0x080FCFC0
+_0800B464: .4byte 0x0600F000
+_0800B468: .4byte 0x080F63A0
+_0800B46C: .4byte 0x0600F800
+_0800B470: .4byte 0x080F6BA0
+_0800B474: .4byte 0x80003200
+_0800B478: .4byte 0x080F61A0
+_0800B47C: .4byte 0x80000040
+_0800B480: .4byte 0x080FFFC0
+_0800B484: .4byte 0x06010000
+_0800B488: .4byte 0x80000800
+_0800B48C: .4byte 0x05000200
+_0800B490: .4byte 0x0200B0C0
+_0800B494: .4byte 0x0202ADA0
+_0800B498: .4byte 0x000002F6
+_0800B49C: .4byte 0x0202C790
+
+ thumb_func_start sub_B4A0
+sub_B4A0: @ 0x0800B4A0
+ push {r4, r5, r6, r7, lr}
+ ldr r1, _0800B540 @ =0x0202ADA0
+ movs r3, #0
+ movs r4, #0x1e
+ strh r4, [r1, #0xc]
+ ldr r0, _0800B544 @ =0x0000FF6A
+ strh r0, [r1, #0xe]
+ movs r0, #1
+ strh r0, [r1, #0x14]
+ ldr r0, _0800B548 @ =0x0000FFFE
+ strh r0, [r1]
+ subs r0, #3
+ strh r0, [r1, #2]
+ strh r3, [r1, #4]
+ movs r2, #8
+ strh r2, [r1, #6]
+ subs r0, #0x6b
+ strh r0, [r1, #0x18]
+ adds r0, #0x44
+ strh r0, [r1, #0x1a]
+ strh r2, [r1, #0x1c]
+ strh r3, [r1, #0x1e]
+ strh r3, [r1, #0x24]
+ strh r3, [r1, #0x26]
+ ldr r3, _0800B54C @ =0x0201A450
+ movs r0, #0x32
+ strh r0, [r3]
+ movs r1, #0x3c
+ strh r1, [r3, #2]
+ movs r0, #0x50
+ strh r0, [r3, #0x10]
+ strh r1, [r3, #0x12]
+ movs r0, #0x8c
+ strh r0, [r3, #0x20]
+ movs r2, #0x64
+ strh r2, [r3, #0x22]
+ movs r0, #0xc8
+ strh r0, [r3, #0x30]
+ movs r0, #0x5a
+ strh r0, [r3, #0x32]
+ adds r0, r3, #0
+ adds r0, #0x40
+ strh r1, [r0]
+ adds r0, #2
+ strh r4, [r0]
+ adds r1, r3, #0
+ adds r1, #0x50
+ movs r0, #0x96
+ strh r0, [r1]
+ adds r0, r3, #0
+ adds r0, #0x52
+ strh r2, [r0]
+ ldr r5, _0800B550 @ =0x0202C548
+ ldr r6, _0800B554 @ =0x0202BF10
+ ldr r7, _0800B558 @ =0x0202A578
+ ldr r0, _0800B55C @ =0x0202BEB4
+ mov ip, r0
+ movs r4, #0
+ movs r2, #0
+ adds r0, r3, #0
+ adds r0, #8
+ movs r1, #5
+_0800B51C:
+ strh r2, [r0]
+ strh r2, [r0, #2]
+ strb r4, [r0, #4]
+ adds r0, #0x10
+ subs r1, #1
+ cmp r1, #0
+ bge _0800B51C
+ movs r0, #0
+ strb r0, [r5]
+ movs r0, #0
+ strh r0, [r6]
+ strh r0, [r7]
+ mov r1, ip
+ strb r0, [r1]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B540: .4byte 0x0202ADA0
+_0800B544: .4byte 0x0000FF6A
+_0800B548: .4byte 0x0000FFFE
+_0800B54C: .4byte 0x0201A450
+_0800B550: .4byte 0x0202C548
+_0800B554: .4byte 0x0202BF10
+_0800B558: .4byte 0x0202A578
+_0800B55C: .4byte 0x0202BEB4
+
+ thumb_func_start sub_B560
+sub_B560: @ 0x0800B560
+ push {r4, r5, lr}
+ ldr r2, _0800B694 @ =0x0202ADA0
+ ldr r3, _0800B698 @ =0x086A7AC0
+ ldr r1, _0800B69C @ =0x0202C548
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r4, [r2, #0xc]
+ adds r0, r0, r4
+ strh r0, [r2, #0xc]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ ldrb r0, [r0, #1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r5, [r2, #0xe]
+ adds r0, r0, r5
+ strh r0, [r2, #0xe]
+ ldr r3, _0800B6A0 @ =0x086A7AE4
+ ldr r4, _0800B6A4 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ adds r0, r0, r3
+ ldrb r1, [r0]
+ movs r0, #0x10
+ ands r0, r1
+ adds r5, r2, #0
+ cmp r0, #0
+ beq _0800B5C2
+ ldrh r0, [r5, #6]
+ ldrh r2, [r5, #2]
+ adds r1, r0, r2
+ strh r1, [r5, #2]
+ subs r0, #2
+ strh r0, [r5, #6]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0xa
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bgt _0800B5C2
+ movs r0, #8
+ strh r0, [r5, #6]
+_0800B5C2:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ adds r0, r0, r3
+ ldrb r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800B5EE
+ ldrh r0, [r5, #0x1c]
+ ldrh r2, [r5, #0x18]
+ adds r1, r0, r2
+ strh r1, [r5, #0x18]
+ subs r0, #2
+ strh r0, [r5, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0xa
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bgt _0800B5EE
+ movs r0, #8
+ strh r0, [r5, #0x1c]
+_0800B5EE:
+ ldr r1, _0800B6A8 @ =0x0200B0C0
+ ldrh r2, [r5]
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r5, #2]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r5, #0xc]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r5, #0xe]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r5, #0x18]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r5, #0x1a]
+ ldr r5, _0800B6AC @ =0x000002F2
+ adds r1, r1, r5
+ strh r0, [r1]
+ ldr r1, _0800B6B0 @ =0x086A7B34
+ ldr r3, _0800B6B4 @ =0x0202BEB4
+ movs r2, #0
+ ldrsb r2, [r3, r2]
+ lsls r0, r2, #2
+ adds r0, r0, r1
+ movs r5, #0
+ ldrsh r1, [r4, r5]
+ ldrb r0, [r0, #2]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bne _0800B64C
+ ldr r1, _0800B6B8 @ =0x0201A450
+ lsls r0, r2, #4
+ adds r0, r0, r1
+ movs r1, #1
+ strb r1, [r0, #0xc]
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+_0800B64C:
+ bl sub_B7F8
+ ldr r4, _0800B6BC @ =0x0202A578
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ ldr r2, _0800B698 @ =0x086A7AC0
+ ldr r3, _0800B69C @ =0x0202C548
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1, #2]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ ble _0800B68C
+ movs r0, #0
+ strh r0, [r4]
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #8
+ ble _0800B68C
+ ldr r1, _0800B6C0 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800B68C:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B694: .4byte 0x0202ADA0
+_0800B698: .4byte 0x086A7AC0
+_0800B69C: .4byte 0x0202C548
+_0800B6A0: .4byte 0x086A7AE4
+_0800B6A4: .4byte 0x0202BF10
+_0800B6A8: .4byte 0x0200B0C0
+_0800B6AC: .4byte 0x000002F2
+_0800B6B0: .4byte 0x086A7B34
+_0800B6B4: .4byte 0x0202BEB4
+_0800B6B8: .4byte 0x0201A450
+_0800B6BC: .4byte 0x0202A578
+_0800B6C0: .4byte 0x0202C790
+
+ thumb_func_start sub_B6C4
+sub_B6C4: @ 0x0800B6C4
+ push {r4, r5, lr}
+ ldr r2, _0800B784 @ =0x086A7AE4
+ ldr r3, _0800B788 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r3, r1]
+ adds r0, r0, r2
+ ldrb r1, [r0]
+ movs r0, #0x10
+ ands r0, r1
+ adds r4, r2, #0
+ adds r2, r3, #0
+ ldr r3, _0800B78C @ =0x0202ADA0
+ cmp r0, #0
+ beq _0800B6FC
+ ldrh r0, [r3, #6]
+ ldrh r5, [r3, #2]
+ adds r1, r0, r5
+ strh r1, [r3, #2]
+ subs r0, #2
+ strh r0, [r3, #6]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0xa
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bgt _0800B6FC
+ movs r0, #8
+ strh r0, [r3, #6]
+_0800B6FC:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ adds r0, r0, r4
+ ldrb r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800B728
+ ldrh r0, [r3, #0x1c]
+ ldrh r2, [r3, #0x18]
+ adds r1, r0, r2
+ strh r1, [r3, #0x18]
+ subs r0, #2
+ strh r0, [r3, #0x1c]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0xa
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bgt _0800B728
+ movs r0, #8
+ strh r0, [r3, #0x1c]
+_0800B728:
+ ldr r1, _0800B790 @ =0x0200B0C0
+ ldrh r2, [r3]
+ movs r4, #0xba
+ lsls r4, r4, #2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #2]
+ ldr r5, _0800B794 @ =0x000002EA
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldrh r2, [r3, #0xc]
+ adds r4, #4
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r2, [r3, #0xe]
+ adds r5, #4
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldrh r2, [r3, #0x18]
+ adds r4, #4
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, #0x1a]
+ adds r5, #4
+ adds r1, r1, r5
+ strh r0, [r1]
+ bl sub_B7F8
+ ldr r1, _0800B798 @ =0x0202A578
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x10
+ ble _0800B77C
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _0800B79C @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800B77C:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B784: .4byte 0x086A7AE4
+_0800B788: .4byte 0x0202BF10
+_0800B78C: .4byte 0x0202ADA0
+_0800B790: .4byte 0x0200B0C0
+_0800B794: .4byte 0x000002EA
+_0800B798: .4byte 0x0202A578
+_0800B79C: .4byte 0x0202C790
+
+ thumb_func_start sub_B7A0
+sub_B7A0: @ 0x0800B7A0
+ push {lr}
+ sub sp, #8
+ bl sub_578
+ movs r2, #0
+ str r2, [sp]
+ ldr r1, _0800B7E4 @ =0x040000D4
+ mov r0, sp
+ str r0, [r1]
+ movs r0, #0xe0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800B7E8 @ =0x85000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add r0, sp, #4
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _0800B7EC @ =0x06010000
+ str r0, [r1, #4]
+ ldr r0, _0800B7F0 @ =0x81002800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bl sub_10480
+ bl sub_10544
+ ldr r1, _0800B7F4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ add sp, #8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B7E4: .4byte 0x040000D4
+_0800B7E8: .4byte 0x85000100
+_0800B7EC: .4byte 0x06010000
+_0800B7F0: .4byte 0x81002800
+_0800B7F4: .4byte 0x0202C790
+
+ thumb_func_start sub_B7F8
+sub_B7F8: @ 0x0800B7F8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x24
+ ldr r6, _0800BA0C @ =0x0201A450
+ movs r1, #8
+ ldrsh r0, [r6, r1]
+ lsls r2, r0, #4
+ adds r2, r2, r0
+ lsls r2, r2, #2
+ adds r2, r2, r0
+ lsls r2, r2, #4
+ ldr r3, _0800BA10 @ =0x0200B3B8
+ adds r2, r2, r3
+ str r2, [sp]
+ movs r4, #0x18
+ ldrsh r1, [r6, r4]
+ lsls r0, r1, #4
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ adds r1, r3, #0
+ adds r1, #0xb8
+ adds r0, r0, r1
+ str r0, [sp, #4]
+ movs r0, #0x28
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, #4
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ movs r4, #0xb8
+ lsls r4, r4, #1
+ adds r1, r3, r4
+ adds r0, r0, r1
+ str r0, [sp, #8]
+ movs r0, #0x38
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, #4
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ adds r4, #0xb8
+ adds r1, r3, r4
+ adds r0, r0, r1
+ str r0, [sp, #0xc]
+ adds r0, r6, #0
+ adds r0, #0x48
+ movs r4, #0
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #4
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ movs r4, #0xb8
+ lsls r4, r4, #2
+ adds r1, r3, r4
+ adds r0, r0, r1
+ str r0, [sp, #0x10]
+ adds r0, r6, #0
+ adds r0, #0x58
+ movs r4, #0
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #4
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ movs r4, #0xe6
+ lsls r4, r4, #2
+ adds r1, r3, r4
+ adds r0, r0, r1
+ str r0, [sp, #0x14]
+ movs r0, #0xc
+ ldrsb r0, [r6, r0]
+ strh r0, [r2]
+ ldr r1, [sp, #4]
+ movs r0, #0x1c
+ ldrsb r0, [r6, r0]
+ strh r0, [r1]
+ ldr r1, [sp, #8]
+ adds r0, r6, #0
+ adds r0, #0x2c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r1, [sp, #0xc]
+ adds r0, r6, #0
+ adds r0, #0x3c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r1, [sp, #0x10]
+ adds r0, r6, #0
+ adds r0, #0x4c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r1, [sp, #0x14]
+ adds r0, r6, #0
+ adds r0, #0x5c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r4, _0800BA14 @ =0x086A7A78
+ adds r0, r4, #0
+ movs r1, #0x12
+ adds r2, r3, #0
+ bl sub_358
+ movs r5, #0
+ str r6, [sp, #0x18]
+_0800B8EC:
+ lsls r0, r5, #2
+ mov r6, sp
+ adds r4, r6, r0
+ ldr r1, [r4]
+ ldrh r1, [r1]
+ str r0, [sp, #0x20]
+ adds r0, r5, #1
+ str r0, [sp, #0x1c]
+ cmp r1, #1
+ bne _0800B9DA
+ lsls r3, r5, #4
+ ldr r1, [sp, #0x18]
+ adds r2, r3, r1
+ ldr r6, [sp, #0x20]
+ ldr r1, _0800BA18 @ =0x086A7B34
+ adds r0, r6, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldrh r6, [r2]
+ adds r1, r1, r6
+ strh r1, [r2]
+ ldrb r0, [r0, #1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r6, [r2, #2]
+ adds r0, r0, r6
+ strh r0, [r2, #2]
+ ldr r0, [r4]
+ strh r1, [r0, #2]
+ ldr r1, [r4]
+ ldrh r0, [r2, #2]
+ strh r0, [r1, #4]
+ movs r0, #8
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r0, r5, r0
+ lsls r0, r0, #2
+ ldr r1, _0800BA14 @ =0x086A7A78
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov r8, r0
+ movs r7, #0
+ mov sb, r3
+ ldrh r2, [r0]
+ cmp r7, r2
+ bge _0800B998
+ adds r5, r4, #0
+ ldr r3, _0800BA1C @ =0x03005000
+ mov ip, r3
+ ldr r4, _0800BA20 @ =0xFFFFFE00
+ mov sl, r4
+ movs r6, #8
+_0800B958:
+ ldr r0, [r5]
+ adds r4, r0, r6
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ add r2, ip
+ movs r3, #2
+ ldrsh r1, [r4, r3]
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ adds r1, r1, r0
+ ldr r3, _0800BA24 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r5]
+ ldrb r0, [r0, #4]
+ ldrb r4, [r4, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ adds r6, #8
+ adds r7, #1
+ mov r4, r8
+ ldrh r4, [r4]
+ cmp r7, r4
+ blt _0800B958
+_0800B998:
+ ldr r1, [sp, #0x18]
+ add r1, sb
+ ldrh r0, [r1, #0xa]
+ adds r0, #1
+ movs r2, #0
+ strh r0, [r1, #0xa]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800B9BC
+ strh r2, [r1, #0xa]
+ ldrh r2, [r1, #8]
+ movs r6, #8
+ ldrsh r0, [r1, r6]
+ cmp r0, #1
+ bgt _0800B9BC
+ adds r0, r2, #1
+ strh r0, [r1, #8]
+_0800B9BC:
+ ldr r1, [sp, #0x20]
+ ldr r2, _0800BA18 @ =0x086A7B34
+ adds r0, r1, r2
+ ldr r3, _0800BA28 @ =0x0202BF10
+ movs r4, #0
+ ldrsh r1, [r3, r4]
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bne _0800B9DA
+ ldr r1, [sp, #0x18]
+ add r1, sb
+ movs r0, #0
+ strb r0, [r1, #0xc]
+_0800B9DA:
+ ldr r5, [sp, #0x1c]
+ cmp r5, #5
+ ble _0800B8EC
+ ldr r0, [sp]
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, [sp, #4]
+ strh r1, [r0]
+ ldr r0, [sp, #8]
+ strh r1, [r0]
+ ldr r0, [sp, #0xc]
+ strh r1, [r0]
+ ldr r0, [sp, #0x10]
+ strh r1, [r0]
+ ldr r0, [sp, #0x14]
+ strh r1, [r0]
+ add sp, #0x24
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800BA0C: .4byte 0x0201A450
+_0800BA10: .4byte 0x0200B3B8
+_0800BA14: .4byte 0x086A7A78
+_0800BA18: .4byte 0x086A7B34
+_0800BA1C: .4byte 0x03005000
+_0800BA20: .4byte 0xFFFFFE00
+_0800BA24: .4byte 0x000001FF
+_0800BA28: .4byte 0x0202BF10
+
+ thumb_func_start sub_BA2C
+sub_BA2C: @ 0x0800BA2C
+ ldr r1, _0800BA38 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0800BA38: .4byte 0x0202C790
+
+ thumb_func_start sub_BA3C
+sub_BA3C: @ 0x0800BA3C
+ push {r4, r5, lr}
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x80
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _0800BB6C @ =0x04000008
+ movs r3, #0xd4
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800BB70 @ =0x0400000A
+ ldr r3, _0800BB74 @ =0x0000D801
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #2
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800BB78 @ =0x0400000C
+ ldr r3, _0800BB7C @ =0x0000DC02
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800BB80 @ =0x0400000E
+ ldr r3, _0800BB84 @ =0x00000F03
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0800BB88 @ =0x040000D4
+ ldr r1, _0800BB8C @ =0x08108A00
+ str r1, [r0]
+ ldr r1, _0800BB90 @ =0x0600A000
+ str r1, [r0, #4]
+ ldr r3, _0800BB94 @ =0x80001000
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800BB98 @ =0x0810AA00
+ str r1, [r0]
+ ldr r1, _0800BB9C @ =0x0600C000
+ str r1, [r0, #4]
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800BBA0 @ =0x08106A00
+ str r1, [r0]
+ ldr r1, _0800BBA4 @ =0x0600E000
+ str r1, [r0, #4]
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800BBA8 @ =0x081011E0
+ str r1, [r0]
+ ldr r1, _0800BBAC @ =0x06007800
+ str r1, [r0, #4]
+ ldr r1, _0800BBB0 @ =0x80000400
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800BBB4 @ =0x081019E0
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800BBB8 @ =0x80002800
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r5, _0800BBBC @ =0x08100FE0
+ str r5, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r4, _0800BBC0 @ =0x800000B0
+ str r4, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800BBC4 @ =0x0810CA00
+ str r1, [r0]
+ ldr r1, _0800BBC8 @ =0x06010000
+ str r1, [r0, #4]
+ str r3, [r0, #8]
+ ldr r1, [r0, #8]
+ str r5, [r0]
+ ldr r1, _0800BBCC @ =0x05000200
+ str r1, [r0, #4]
+ str r4, [r0, #8]
+ ldr r0, [r0, #8]
+ ldr r4, _0800BBD0 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r4, #0x16]
+ bl sub_BBE0
+ ldr r1, _0800BBD4 @ =0x0202ADA0
+ ldrh r2, [r1]
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldrh r2, [r1, #2]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldrh r2, [r1, #0xc]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldrh r2, [r1, #0xe]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldrh r2, [r1, #0x18]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldrh r2, [r1, #0x1a]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldrh r2, [r1, #0x24]
+ adds r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldrh r0, [r1, #0x26]
+ ldr r1, _0800BBD8 @ =0x000002F6
+ adds r4, r4, r1
+ strh r0, [r4]
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800BBDC @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800BB6C: .4byte 0x04000008
+_0800BB70: .4byte 0x0400000A
+_0800BB74: .4byte 0x0000D801
+_0800BB78: .4byte 0x0400000C
+_0800BB7C: .4byte 0x0000DC02
+_0800BB80: .4byte 0x0400000E
+_0800BB84: .4byte 0x00000F03
+_0800BB88: .4byte 0x040000D4
+_0800BB8C: .4byte 0x08108A00
+_0800BB90: .4byte 0x0600A000
+_0800BB94: .4byte 0x80001000
+_0800BB98: .4byte 0x0810AA00
+_0800BB9C: .4byte 0x0600C000
+_0800BBA0: .4byte 0x08106A00
+_0800BBA4: .4byte 0x0600E000
+_0800BBA8: .4byte 0x081011E0
+_0800BBAC: .4byte 0x06007800
+_0800BBB0: .4byte 0x80000400
+_0800BBB4: .4byte 0x081019E0
+_0800BBB8: .4byte 0x80002800
+_0800BBBC: .4byte 0x08100FE0
+_0800BBC0: .4byte 0x800000B0
+_0800BBC4: .4byte 0x0810CA00
+_0800BBC8: .4byte 0x06010000
+_0800BBCC: .4byte 0x05000200
+_0800BBD0: .4byte 0x0200B0C0
+_0800BBD4: .4byte 0x0202ADA0
+_0800BBD8: .4byte 0x000002F6
+_0800BBDC: .4byte 0x0202C790
+
+ thumb_func_start sub_BBE0
+sub_BBE0: @ 0x0800BBE0
+ ldr r1, _0800BC30 @ =0x0202ADA0
+ movs r2, #0
+ ldr r0, _0800BC34 @ =0x0000FEFC
+ strh r0, [r1]
+ movs r0, #0x46
+ strh r0, [r1, #2]
+ strh r2, [r1, #6]
+ ldr r0, _0800BC38 @ =0x0000FEE8
+ strh r0, [r1, #0xc]
+ movs r0, #0x5a
+ strh r0, [r1, #0xe]
+ strh r2, [r1, #0x12]
+ ldr r0, _0800BC3C @ =0x0000FF10
+ strh r0, [r1, #0x18]
+ adds r0, #0xbe
+ strh r0, [r1, #0x1a]
+ adds r0, #0x2f
+ strh r0, [r1, #0x1e]
+ strh r2, [r1, #0x24]
+ strh r2, [r1, #0x26]
+ ldr r1, _0800BC40 @ =0x0201A450
+ movs r0, #0x94
+ lsls r0, r0, #1
+ strh r0, [r1]
+ movs r0, #0x2c
+ strh r0, [r1, #2]
+ strh r2, [r1, #4]
+ strh r2, [r1, #6]
+ ldr r0, _0800BC44 @ =0x0202BF10
+ strh r2, [r0]
+ ldr r0, _0800BC48 @ =0x0202A578
+ strh r2, [r0]
+ ldr r0, _0800BC4C @ =0x0202C5E4
+ movs r2, #0x80
+ lsls r2, r2, #1
+ adds r1, r2, #0
+ strh r1, [r0]
+ ldr r0, _0800BC50 @ =0x0202ADD8
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0800BC30: .4byte 0x0202ADA0
+_0800BC34: .4byte 0x0000FEFC
+_0800BC38: .4byte 0x0000FEE8
+_0800BC3C: .4byte 0x0000FF10
+_0800BC40: .4byte 0x0201A450
+_0800BC44: .4byte 0x0202BF10
+_0800BC48: .4byte 0x0202A578
+_0800BC4C: .4byte 0x0202C5E4
+_0800BC50: .4byte 0x0202ADD8
+
+ thumb_func_start sub_BC54
+sub_BC54: @ 0x0800BC54
+ push {r4, r5, r6, lr}
+ ldr r4, _0800BCD0 @ =0x0202ADA0
+ ldrh r0, [r4, #0x18]
+ adds r0, #2
+ strh r0, [r4, #0x18]
+ ldrh r0, [r4, #0x1a]
+ ldrh r6, [r4, #0x1e]
+ subs r0, r0, r6
+ strh r0, [r4, #0x1a]
+ ldr r5, _0800BCD4 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #3
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0800BC88
+ adds r0, r6, #1
+ strh r0, [r4, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800BC88
+ ldr r0, _0800BCD8 @ =0x0000FFFD
+ strh r0, [r4, #0x1e]
+_0800BC88:
+ ldrh r0, [r4, #0x24]
+ subs r0, #1
+ strh r0, [r4, #0x24]
+ ldrh r0, [r4, #0x26]
+ subs r0, #1
+ strh r0, [r4, #0x26]
+ ldr r1, _0800BCDC @ =0x0200B0C0
+ ldrh r2, [r4, #0x18]
+ movs r3, #0xbc
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x1a]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x24]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x26]
+ ldr r2, _0800BCE0 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0x20
+ ble _0800BCC8
+ ldr r1, _0800BCE4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800BCC8:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800BCD0: .4byte 0x0202ADA0
+_0800BCD4: .4byte 0x0202BF10
+_0800BCD8: .4byte 0x0000FFFD
+_0800BCDC: .4byte 0x0200B0C0
+_0800BCE0: .4byte 0x000002F6
+_0800BCE4: .4byte 0x0202C790
+
+ thumb_func_start sub_BCE8
+sub_BCE8: @ 0x0800BCE8
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _0800BDA4 @ =0x0202ADA0
+ ldrh r0, [r4, #0x18]
+ adds r0, #2
+ strh r0, [r4, #0x18]
+ ldrh r0, [r4, #0x1a]
+ ldrh r6, [r4, #0x1e]
+ subs r0, r0, r6
+ strh r0, [r4, #0x1a]
+ ldr r5, _0800BDA8 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #3
+ bl __modsi3
+ lsls r0, r0, #0x10
+ adds r7, r5, #0
+ cmp r0, #0
+ bne _0800BD1E
+ adds r0, r6, #1
+ strh r0, [r4, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800BD1E
+ ldr r0, _0800BDAC @ =0x0000FFFD
+ strh r0, [r4, #0x1e]
+_0800BD1E:
+ ldrh r0, [r4, #0xc]
+ adds r0, #3
+ strh r0, [r4, #0xc]
+ ldrh r0, [r4, #0xe]
+ ldrh r5, [r4, #0x12]
+ subs r0, r0, r5
+ strh r0, [r4, #0xe]
+ movs r2, #0
+ ldrsh r0, [r7, r2]
+ movs r1, #5
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0800BD4C
+ adds r0, r5, #1
+ strh r0, [r4, #0x12]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #7
+ ble _0800BD4C
+ ldr r0, _0800BDB0 @ =0x0000FFFA
+ strh r0, [r4, #0x12]
+_0800BD4C:
+ ldrh r0, [r4, #0x24]
+ subs r0, #1
+ strh r0, [r4, #0x24]
+ ldrh r0, [r4, #0x26]
+ subs r0, #1
+ strh r0, [r4, #0x26]
+ ldr r1, _0800BDB4 @ =0x0200B0C0
+ ldrh r2, [r4, #0x18]
+ movs r3, #0xbc
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x1a]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xc]
+ subs r3, #6
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xe]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x24]
+ adds r3, #6
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x26]
+ ldr r2, _0800BDB8 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ movs r3, #0
+ ldrsh r0, [r7, r3]
+ cmp r0, #0x50
+ ble _0800BD9C
+ ldr r1, _0800BDBC @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800BD9C:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800BDA4: .4byte 0x0202ADA0
+_0800BDA8: .4byte 0x0202BF10
+_0800BDAC: .4byte 0x0000FFFD
+_0800BDB0: .4byte 0x0000FFFA
+_0800BDB4: .4byte 0x0200B0C0
+_0800BDB8: .4byte 0x000002F6
+_0800BDBC: .4byte 0x0202C790
+
+ thumb_func_start sub_BDC0
+sub_BDC0: @ 0x0800BDC0
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _0800BEB4 @ =0x0202ADA0
+ ldrh r0, [r4, #0x18]
+ adds r0, #2
+ strh r0, [r4, #0x18]
+ ldrh r0, [r4, #0x1a]
+ ldrh r6, [r4, #0x1e]
+ subs r0, r0, r6
+ strh r0, [r4, #0x1a]
+ ldr r5, _0800BEB8 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #3
+ bl __modsi3
+ lsls r0, r0, #0x10
+ adds r7, r5, #0
+ cmp r0, #0
+ bne _0800BDF6
+ adds r0, r6, #1
+ strh r0, [r4, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800BDF6
+ ldr r0, _0800BEBC @ =0x0000FFFD
+ strh r0, [r4, #0x1e]
+_0800BDF6:
+ ldrh r0, [r4, #0xc]
+ adds r0, #3
+ strh r0, [r4, #0xc]
+ ldrh r0, [r4, #0xe]
+ ldrh r5, [r4, #0x12]
+ subs r0, r0, r5
+ strh r0, [r4, #0xe]
+ movs r2, #0
+ ldrsh r0, [r7, r2]
+ movs r1, #5
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0800BE24
+ adds r0, r5, #1
+ strh r0, [r4, #0x12]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #7
+ ble _0800BE24
+ ldr r0, _0800BEC0 @ =0x0000FFFA
+ strh r0, [r4, #0x12]
+_0800BE24:
+ ldrh r0, [r4]
+ adds r0, #4
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ ldrh r2, [r4, #6]
+ subs r0, r0, r2
+ strh r0, [r4, #2]
+ ldrh r0, [r7]
+ movs r1, #3
+ ands r0, r1
+ cmp r0, #0
+ bne _0800BE4C
+ adds r0, r2, #1
+ strh r0, [r4, #6]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #7
+ ble _0800BE4C
+ ldr r0, _0800BEBC @ =0x0000FFFD
+ strh r0, [r4, #6]
+_0800BE4C:
+ ldrh r0, [r4, #0x24]
+ subs r0, #1
+ strh r0, [r4, #0x24]
+ ldrh r0, [r4, #0x26]
+ subs r0, #1
+ strh r0, [r4, #0x26]
+ ldr r1, _0800BEC4 @ =0x0200B0C0
+ ldrh r2, [r4, #0x18]
+ movs r3, #0xbc
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x1a]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xc]
+ subs r3, #6
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xe]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4]
+ subs r3, #6
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #2]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x24]
+ adds r3, #0xa
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x26]
+ ldr r2, _0800BEC8 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ movs r3, #0
+ ldrsh r0, [r7, r3]
+ cmp r0, #0x64
+ ble _0800BEAC
+ ldr r1, _0800BECC @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800BEAC:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800BEB4: .4byte 0x0202ADA0
+_0800BEB8: .4byte 0x0202BF10
+_0800BEBC: .4byte 0x0000FFFD
+_0800BEC0: .4byte 0x0000FFFA
+_0800BEC4: .4byte 0x0200B0C0
+_0800BEC8: .4byte 0x000002F6
+_0800BECC: .4byte 0x0202C790
+
+ thumb_func_start sub_BED0
+sub_BED0: @ 0x0800BED0
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _0800BFF4 @ =0x0202ADA0
+ ldrh r0, [r4, #0x18]
+ adds r0, #2
+ strh r0, [r4, #0x18]
+ ldrh r0, [r4, #0x1a]
+ ldrh r6, [r4, #0x1e]
+ subs r0, r0, r6
+ strh r0, [r4, #0x1a]
+ ldr r5, _0800BFF8 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #3
+ bl __modsi3
+ lsls r0, r0, #0x10
+ adds r7, r5, #0
+ cmp r0, #0
+ bne _0800BF06
+ adds r0, r6, #1
+ strh r0, [r4, #0x1e]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800BF06
+ ldr r0, _0800BFFC @ =0x0000FFFD
+ strh r0, [r4, #0x1e]
+_0800BF06:
+ ldrh r0, [r4, #0xc]
+ adds r0, #3
+ strh r0, [r4, #0xc]
+ ldrh r0, [r4, #0xe]
+ ldrh r5, [r4, #0x12]
+ subs r0, r0, r5
+ strh r0, [r4, #0xe]
+ movs r2, #0
+ ldrsh r0, [r7, r2]
+ movs r1, #5
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0800BF34
+ adds r0, r5, #1
+ strh r0, [r4, #0x12]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #7
+ ble _0800BF34
+ ldr r0, _0800C000 @ =0x0000FFFA
+ strh r0, [r4, #0x12]
+_0800BF34:
+ ldrh r0, [r4]
+ adds r0, #4
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ ldrh r2, [r4, #6]
+ subs r0, r0, r2
+ strh r0, [r4, #2]
+ ldrh r0, [r7]
+ movs r1, #3
+ ands r0, r1
+ cmp r0, #0
+ bne _0800BF5C
+ adds r0, r2, #1
+ strh r0, [r4, #6]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #7
+ ble _0800BF5C
+ ldr r0, _0800BFFC @ =0x0000FFFD
+ strh r0, [r4, #6]
+_0800BF5C:
+ ldr r2, _0800C004 @ =0x0201A450
+ ldrh r0, [r2]
+ subs r0, #2
+ strh r0, [r2]
+ ldrh r3, [r2, #6]
+ ldrh r1, [r2, #2]
+ adds r0, r3, r1
+ strh r0, [r2, #2]
+ ldrh r0, [r7]
+ movs r1, #3
+ ands r0, r1
+ cmp r0, #0
+ bne _0800BF86
+ adds r0, r3, #1
+ strh r0, [r2, #6]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800BF86
+ ldr r0, _0800C008 @ =0x0000FFFC
+ strh r0, [r2, #6]
+_0800BF86:
+ ldrh r0, [r4, #0x24]
+ subs r0, #1
+ strh r0, [r4, #0x24]
+ ldrh r0, [r4, #0x26]
+ subs r0, #1
+ strh r0, [r4, #0x26]
+ ldr r1, _0800C00C @ =0x0200B0C0
+ ldrh r2, [r4, #0x18]
+ movs r3, #0xbc
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x1a]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xc]
+ subs r3, #6
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0xe]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4]
+ subs r3, #6
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #2]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r2, [r4, #0x24]
+ adds r3, #0xa
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x26]
+ ldr r2, _0800C010 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_C0D8
+ ldr r0, _0800BFF8 @ =0x0202BF10
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ cmp r0, #0xc0
+ ble _0800BFEC
+ ldr r1, _0800C014 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800BFEC:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800BFF4: .4byte 0x0202ADA0
+_0800BFF8: .4byte 0x0202BF10
+_0800BFFC: .4byte 0x0000FFFD
+_0800C000: .4byte 0x0000FFFA
+_0800C004: .4byte 0x0201A450
+_0800C008: .4byte 0x0000FFFC
+_0800C00C: .4byte 0x0200B0C0
+_0800C010: .4byte 0x000002F6
+_0800C014: .4byte 0x0202C790
+
+ thumb_func_start sub_C018
+sub_C018: @ 0x0800C018
+ push {r4, r5, lr}
+ ldr r4, _0800C044 @ =0x0202ADA0
+ ldrh r0, [r4, #0x24]
+ subs r0, #1
+ strh r0, [r4, #0x24]
+ ldrh r0, [r4, #0x26]
+ subs r0, #1
+ strh r0, [r4, #0x26]
+ ldr r5, _0800C048 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #6
+ bl __modsi3
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0
+ bne _0800C050
+ ldr r1, _0800C04C @ =0x0201A450
+ ldrh r0, [r1]
+ subs r0, #3
+ b _0800C05A
+ .align 2, 0
+_0800C044: .4byte 0x0202ADA0
+_0800C048: .4byte 0x0202BF10
+_0800C04C: .4byte 0x0201A450
+_0800C050:
+ cmp r0, #3
+ bne _0800C05C
+ ldr r1, _0800C0A4 @ =0x0201A450
+ ldrh r0, [r1]
+ adds r0, #3
+_0800C05A:
+ strh r0, [r1]
+_0800C05C:
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ cmp r0, #0xca
+ ble _0800C074
+ ldr r1, _0800C0A8 @ =0x0202C5E4
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ ldr r1, _0800C0AC @ =0x0202ADD8
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+_0800C074:
+ ldr r1, _0800C0B0 @ =0x0200B0C0
+ ldrh r2, [r4, #0x24]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, #0x26]
+ ldr r2, _0800C0B4 @ =0x000002F6
+ adds r1, r1, r2
+ strh r0, [r1]
+ bl sub_C0D8
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0xde
+ ble _0800C09C
+ ldr r1, _0800C0B8 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800C09C:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C0A4: .4byte 0x0201A450
+_0800C0A8: .4byte 0x0202C5E4
+_0800C0AC: .4byte 0x0202ADD8
+_0800C0B0: .4byte 0x0200B0C0
+_0800C0B4: .4byte 0x000002F6
+_0800C0B8: .4byte 0x0202C790
+
+ thumb_func_start sub_C0BC
+sub_C0BC: @ 0x0800C0BC
+ push {lr}
+ bl sub_10480
+ bl sub_10544
+ ldr r1, _0800C0D4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C0D4: .4byte 0x0202C790
+
+ thumb_func_start sub_C0D8
+sub_C0D8: @ 0x0800C0D8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r0, _0800C1EC @ =0x0200B3B8
+ mov r8, r0
+ movs r0, #1
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _0800C1F0 @ =0x086A7B74
+ movs r1, #1
+ mov r2, r8
+ bl sub_358
+ mov r2, r8
+ ldrh r0, [r2]
+ cmp r0, #1
+ bne _0800C1D4
+ ldr r5, _0800C1F4 @ =0x0202C5E4
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ ldr r4, _0800C1F8 @ =0x0202ADD8
+ movs r2, #0
+ ldrsh r1, [r4, r2]
+ movs r2, #0
+ bl sub_7C0
+ ldr r1, _0800C1FC @ =0x0201A450
+ ldrh r0, [r1]
+ mov r3, r8
+ strh r0, [r3, #2]
+ ldrh r0, [r1, #2]
+ strh r0, [r3, #4]
+ movs r7, #0
+ ldr r6, _0800C200 @ =0x03005000
+ mov sl, r4
+ mov r5, r8
+ adds r5, #8
+ ldr r4, _0800C204 @ =0xFFFFFE00
+ mov sb, r4
+ movs r0, #4
+ rsbs r0, r0, #0
+ mov ip, r0
+_0800C132:
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r3, r0, r6
+ lsls r0, r7, #2
+ ldr r1, _0800C208 @ =0x086A7B7C
+ adds r4, r0, r1
+ movs r0, #0
+ ldrsh r2, [r4, r0]
+ str r2, [sp]
+ ldr r1, _0800C1F4 @ =0x0202C5E4
+ movs r2, #0
+ ldrsh r0, [r1, r2]
+ ldr r2, [sp]
+ adds r1, r2, #0
+ muls r1, r0, r1
+ cmp r1, #0
+ bge _0800C16A
+ adds r1, #0xff
+_0800C16A:
+ asrs r1, r1, #8
+ str r1, [sp]
+ mov r1, r8
+ movs r2, #2
+ ldrsh r0, [r1, r2]
+ ldr r2, [sp]
+ adds r1, r2, r0
+ ldr r2, _0800C20C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r2, r0, r6
+ movs r3, #2
+ ldrsh r1, [r4, r3]
+ mov r4, sl
+ movs r3, #0
+ ldrsh r0, [r4, r3]
+ muls r0, r1, r0
+ cmp r0, #0
+ bge _0800C1A0
+ adds r0, #0xff
+_0800C1A0:
+ asrs r0, r0, #8
+ mov r4, r8
+ ldrb r4, [r4, #4]
+ adds r0, r0, r4
+ strb r0, [r2]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #1]
+ mov r0, ip
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #3]
+ movs r0, #0xf
+ rsbs r0, r0, #0
+ ands r0, r2
+ strb r0, [r1, #3]
+ adds r5, #8
+ adds r7, #1
+ cmp r7, #3
+ ble _0800C132
+_0800C1D4:
+ movs r0, #0
+ mov r1, r8
+ strh r0, [r1]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C1EC: .4byte 0x0200B3B8
+_0800C1F0: .4byte 0x086A7B74
+_0800C1F4: .4byte 0x0202C5E4
+_0800C1F8: .4byte 0x0202ADD8
+_0800C1FC: .4byte 0x0201A450
+_0800C200: .4byte 0x03005000
+_0800C204: .4byte 0xFFFFFE00
+_0800C208: .4byte 0x086A7B7C
+_0800C20C: .4byte 0x000001FF
+
+ thumb_func_start sub_C210
+sub_C210: @ 0x0800C210
+ push {lr}
+ bl sub_518
+ ldr r1, _0800C224 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C224: .4byte 0x0202C790
+
+ thumb_func_start sub_C228
+sub_C228: @ 0x0800C228
+ push {r4, lr}
+ movs r3, #0x80
+ lsls r3, r3, #0x13
+ movs r1, #0x80
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r3]
+ ldr r1, _0800C2B4 @ =0x0400000C
+ movs r0, #7
+ strh r0, [r1]
+ ldrh r0, [r3]
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r1, r2, #0
+ orrs r0, r1
+ strh r0, [r3]
+ ldr r0, _0800C2B8 @ =0x040000D4
+ ldr r1, _0800C2BC @ =0x0810EC20
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800C2C0 @ =0x80000400
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800C2C4 @ =0x0810F420
+ str r1, [r0]
+ ldr r1, _0800C2C8 @ =0x06004000
+ str r1, [r0, #4]
+ ldr r1, _0800C2CC @ =0x80001A00
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r4, _0800C2D0 @ =0x0810EA20
+ str r4, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r2, _0800C2D4 @ =0x800000A0
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800C2D8 @ =0x08112840
+ str r1, [r0]
+ ldr r1, _0800C2DC @ =0x06010000
+ str r1, [r0, #4]
+ ldr r1, _0800C2E0 @ =0x80001600
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ str r4, [r0]
+ ldr r1, _0800C2E4 @ =0x05000200
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+ ldr r1, _0800C2E8 @ =0x0200B0C0
+ ldrh r0, [r3]
+ strh r0, [r1, #0x16]
+ bl sub_C2F0
+ bl sub_C4F0
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800C2EC @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C2B4: .4byte 0x0400000C
+_0800C2B8: .4byte 0x040000D4
+_0800C2BC: .4byte 0x0810EC20
+_0800C2C0: .4byte 0x80000400
+_0800C2C4: .4byte 0x0810F420
+_0800C2C8: .4byte 0x06004000
+_0800C2CC: .4byte 0x80001A00
+_0800C2D0: .4byte 0x0810EA20
+_0800C2D4: .4byte 0x800000A0
+_0800C2D8: .4byte 0x08112840
+_0800C2DC: .4byte 0x06010000
+_0800C2E0: .4byte 0x80001600
+_0800C2E4: .4byte 0x05000200
+_0800C2E8: .4byte 0x0200B0C0
+_0800C2EC: .4byte 0x0202C790
+
+ thumb_func_start sub_C2F0
+sub_C2F0: @ 0x0800C2F0
+ push {r4, r5, r6, lr}
+ ldr r0, _0800C380 @ =0x0201A450
+ mov ip, r0
+ movs r4, #0
+ movs r1, #0
+ movs r5, #0x78
+ strh r5, [r0, #0x10]
+ movs r2, #0x50
+ strh r2, [r0, #0x12]
+ movs r0, #4
+ mov r3, ip
+ strh r0, [r3, #0x14]
+ strh r0, [r3, #0x16]
+ strh r1, [r3, #0x18]
+ strh r5, [r3]
+ strh r2, [r3, #2]
+ strb r4, [r3, #0xc]
+ movs r2, #0x80
+ strh r2, [r3, #0x20]
+ movs r3, #0x58
+ mov r0, ip
+ strh r3, [r0, #0x22]
+ strh r1, [r0, #0x28]
+ strh r1, [r0, #0x2a]
+ adds r0, #0x2c
+ strb r4, [r0]
+ mov r0, ip
+ strh r2, [r0, #0x30]
+ movs r6, #0x48
+ strh r6, [r0, #0x32]
+ strh r1, [r0, #0x38]
+ strh r1, [r0, #0x3a]
+ adds r0, #0x3c
+ strb r4, [r0]
+ adds r0, #4
+ movs r2, #0x70
+ strh r2, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #6
+ strh r1, [r0]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strb r4, [r0]
+ adds r0, #4
+ strh r5, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #6
+ strh r1, [r0]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strb r4, [r0]
+ adds r0, #4
+ strh r2, [r0]
+ adds r0, #2
+ strh r6, [r0]
+ adds r0, #6
+ strh r1, [r0]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strb r4, [r0]
+ ldr r0, _0800C384 @ =0x0202BF10
+ strh r1, [r0]
+ ldr r0, _0800C388 @ =0x0202A578
+ strh r1, [r0]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C380: .4byte 0x0201A450
+_0800C384: .4byte 0x0202BF10
+_0800C388: .4byte 0x0202A578
+
+ thumb_func_start sub_C38C
+sub_C38C: @ 0x0800C38C
+ push {lr}
+ bl sub_C4F0
+ ldr r0, _0800C3C4 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #1
+ ble _0800C3C0
+ ldr r2, _0800C3C8 @ =0x0201A450
+ movs r1, #1
+ strb r1, [r2, #0xc]
+ adds r0, r2, #0
+ adds r0, #0x2c
+ strb r1, [r0]
+ adds r0, #0x10
+ strb r1, [r0]
+ adds r0, #0x10
+ strb r1, [r0]
+ adds r0, #0x10
+ strb r1, [r0]
+ adds r0, #0x10
+ strb r1, [r0]
+ ldr r1, _0800C3CC @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800C3C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C3C4: .4byte 0x0202BF10
+_0800C3C8: .4byte 0x0201A450
+_0800C3CC: .4byte 0x0202C790
+
+ thumb_func_start sub_C3D0
+sub_C3D0: @ 0x0800C3D0
+ push {r4, lr}
+ ldr r3, _0800C408 @ =0x0201A450
+ ldrh r0, [r3]
+ subs r0, #9
+ strh r0, [r3]
+ ldrh r0, [r3, #2]
+ subs r0, #6
+ strh r0, [r3, #2]
+ ldrh r0, [r3, #0x18]
+ adds r0, #1
+ strh r0, [r3, #0x18]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ bgt _0800C40C
+ ldrh r2, [r3, #0x14]
+ ldrh r1, [r3, #0x10]
+ adds r0, r2, r1
+ strh r0, [r3, #0x10]
+ ldrh r1, [r3, #0x16]
+ ldrh r4, [r3, #0x12]
+ adds r0, r1, r4
+ strh r0, [r3, #0x12]
+ subs r2, #1
+ strh r2, [r3, #0x14]
+ subs r1, #1
+ strh r1, [r3, #0x16]
+ b _0800C424
+ .align 2, 0
+_0800C408: .4byte 0x0201A450
+_0800C40C:
+ ldr r0, _0800C444 @ =0x0202BF10
+ ldrh r0, [r0]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800C424
+ ldrh r0, [r3, #0x10]
+ adds r0, #1
+ strh r0, [r3, #0x10]
+ ldrh r0, [r3, #0x12]
+ adds r0, #1
+ strh r0, [r3, #0x12]
+_0800C424:
+ bl sub_C4F0
+ ldr r0, _0800C448 @ =0x0201A450
+ movs r2, #2
+ ldrsh r1, [r0, r2]
+ movs r0, #0x20
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bge _0800C43E
+ ldr r1, _0800C44C @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800C43E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C444: .4byte 0x0202BF10
+_0800C448: .4byte 0x0201A450
+_0800C44C: .4byte 0x0202C790
+
+ thumb_func_start sub_C450
+sub_C450: @ 0x0800C450
+ push {lr}
+ bl sub_C4F0
+ ldr r2, _0800C484 @ =0x0202BF10
+ ldrh r0, [r2]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800C470
+ ldr r0, _0800C488 @ =0x0201A450
+ ldrh r1, [r0, #0x10]
+ adds r1, #1
+ strh r1, [r0, #0x10]
+ ldrh r1, [r0, #0x12]
+ adds r1, #1
+ strh r1, [r0, #0x12]
+_0800C470:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x14
+ ble _0800C480
+ ldr r1, _0800C48C @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #3
+ strb r0, [r1]
+_0800C480:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C484: .4byte 0x0202BF10
+_0800C488: .4byte 0x0201A450
+_0800C48C: .4byte 0x0202C790
+
+ thumb_func_start nullsub_12
+nullsub_12: @ 0x0800C490
+ bx lr
+
+ thumb_func_start nullsub_13
+nullsub_13: @ 0x0800C494
+ bx lr
+
+ thumb_func_start sub_C498
+sub_C498: @ 0x0800C498
+ push {lr}
+ sub sp, #8
+ bl sub_10480
+ bl sub_578
+ movs r2, #0
+ str r2, [sp]
+ ldr r1, _0800C4DC @ =0x040000D4
+ mov r0, sp
+ str r0, [r1]
+ movs r0, #0xe0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800C4E0 @ =0x85000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add r0, sp, #4
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _0800C4E4 @ =0x06010000
+ str r0, [r1, #4]
+ ldr r0, _0800C4E8 @ =0x81002800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bl sub_10544
+ ldr r1, _0800C4EC @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ add sp, #8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C4DC: .4byte 0x040000D4
+_0800C4E0: .4byte 0x85000100
+_0800C4E4: .4byte 0x06010000
+_0800C4E8: .4byte 0x81002800
+_0800C4EC: .4byte 0x0202C790
+
+ thumb_func_start sub_C4F0
+sub_C4F0: @ 0x0800C4F0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x20
+ ldr r0, _0800C64C @ =0x0200B3B8
+ mov r8, r0
+ ldr r6, _0800C650 @ =0x0201A450
+ movs r1, #0x28
+ ldrsh r0, [r6, r1]
+ movs r2, #0xe6
+ lsls r2, r2, #2
+ adds r3, r0, #0
+ muls r3, r2, r3
+ movs r0, #0xb8
+ lsls r0, r0, #1
+ add r0, r8
+ adds r3, r3, r0
+ str r3, [sp]
+ movs r7, #0x38
+ ldrsh r0, [r6, r7]
+ muls r0, r2, r0
+ movs r1, #0x8a
+ lsls r1, r1, #2
+ add r1, r8
+ adds r0, r0, r1
+ str r0, [sp, #4]
+ adds r0, r6, #0
+ adds r0, #0x48
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ muls r0, r2, r0
+ movs r1, #0xb8
+ lsls r1, r1, #2
+ add r1, r8
+ adds r0, r0, r1
+ str r0, [sp, #8]
+ adds r0, r6, #0
+ adds r0, #0x58
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ muls r0, r2, r0
+ adds r1, r2, #0
+ add r1, r8
+ adds r0, r0, r1
+ str r0, [sp, #0xc]
+ adds r0, r6, #0
+ adds r0, #0x68
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ muls r0, r2, r0
+ movs r1, #0x8a
+ lsls r1, r1, #3
+ add r1, r8
+ adds r0, r0, r1
+ str r0, [sp, #0x10]
+ movs r0, #0xc
+ ldrsb r0, [r6, r0]
+ mov r2, r8
+ strh r0, [r2]
+ movs r0, #1
+ ldr r7, _0800C654 @ =0x0200B470
+ strh r0, [r7]
+ adds r0, r6, #0
+ adds r0, #0x2c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r3]
+ ldr r1, [sp, #4]
+ adds r0, r6, #0
+ adds r0, #0x3c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r1, [sp, #8]
+ adds r0, r6, #0
+ adds r0, #0x4c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r1, [sp, #0xc]
+ adds r0, r6, #0
+ adds r0, #0x5c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r1, [sp, #0x10]
+ adds r0, r6, #0
+ adds r0, #0x6c
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r0, _0800C658 @ =0x086A7C24
+ movs r1, #0x11
+ bl sub_358
+ mov r1, r8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800C614
+ ldrh r0, [r6]
+ strh r0, [r1, #2]
+ ldrh r0, [r6, #2]
+ strh r0, [r1, #4]
+ mov r5, r8
+ adds r5, #8
+ ldr r4, _0800C65C @ =0x03005000
+ ldrh r1, [r1, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r2, [r1, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r2
+ strb r0, [r1, #5]
+ mov r3, r8
+ ldrh r2, [r3, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r7, #2
+ ldrsh r1, [r5, r7]
+ movs r7, #2
+ ldrsh r0, [r3, r7]
+ adds r1, r1, r0
+ ldr r3, _0800C660 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _0800C664 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ mov r7, r8
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r7, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_0800C614:
+ movs r5, #0
+ str r6, [sp, #0x14]
+_0800C618:
+ lsls r1, r5, #2
+ mov r2, sp
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ adds r4, r1, #0
+ adds r3, r5, #1
+ str r3, [sp, #0x18]
+ cmp r0, #1
+ beq _0800C62E
+ b _0800C75A
+_0800C62E:
+ ldr r1, _0800C668 @ =0x0202A578
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #5
+ ble _0800C670
+ lsls r1, r5, #3
+ ldr r6, _0800C66C @ =0x086A7C68
+ adds r0, r1, r6
+ ldrb r2, [r0, #2]
+ ldrb r0, [r0, #3]
+ b _0800C67A
+ .align 2, 0
+_0800C64C: .4byte 0x0200B3B8
+_0800C650: .4byte 0x0201A450
+_0800C654: .4byte 0x0200B470
+_0800C658: .4byte 0x086A7C24
+_0800C65C: .4byte 0x03005000
+_0800C660: .4byte 0x000001FF
+_0800C664: .4byte 0xFFFFFE00
+_0800C668: .4byte 0x0202A578
+_0800C66C: .4byte 0x086A7C68
+_0800C670:
+ lsls r1, r5, #3
+ ldr r7, _0800C7F8 @ =0x086A7C68
+ adds r0, r1, r7
+ ldrb r2, [r0]
+ ldrb r0, [r0, #1]
+_0800C67A:
+ adds r7, r1, #0
+ adds r3, r5, #2
+ lsls r1, r3, #4
+ ldr r6, [sp, #0x14]
+ adds r1, r1, r6
+ lsls r2, r2, #0x18
+ asrs r2, r2, #0x18
+ ldrh r6, [r1]
+ adds r2, r2, r6
+ strh r2, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r6, [r1, #2]
+ adds r0, r0, r6
+ strh r0, [r1, #2]
+ add r4, sp
+ ldr r0, [r4]
+ strh r2, [r0, #2]
+ ldr r2, [r4]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #4]
+ movs r0, #8
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ adds r0, #2
+ adds r0, r5, r0
+ lsls r0, r0, #2
+ ldr r1, _0800C7FC @ =0x086A7C24
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov sb, r0
+ movs r6, #0
+ str r3, [sp, #0x1c]
+ adds r5, #1
+ str r5, [sp, #0x18]
+ ldrh r2, [r0]
+ cmp r6, r2
+ bge _0800C732
+ ldr r3, _0800C800 @ =0x03005000
+ mov ip, r3
+ ldr r0, _0800C7F8 @ =0x086A7C68
+ adds r7, r7, r0
+ mov sl, r7
+ movs r7, #8
+_0800C6D4:
+ ldr r0, [r4]
+ adds r5, r0, r7
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ add r2, ip
+ mov r0, sl
+ ldrb r1, [r0, #5]
+ movs r3, #3
+ ands r1, r3
+ lsls r1, r1, #2
+ ldrb r3, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ add r2, ip
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ ldr r0, [r4]
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ adds r1, r1, r0
+ ldr r3, _0800C804 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _0800C808 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r4]
+ ldrb r0, [r0, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r7, #8
+ adds r6, #1
+ mov r0, sb
+ ldrh r0, [r0]
+ cmp r6, r0
+ blt _0800C6D4
+_0800C732:
+ ldr r1, [sp, #0x1c]
+ lsls r0, r1, #4
+ ldr r2, [sp, #0x14]
+ adds r3, r0, r2
+ ldrh r0, [r3, #0xa]
+ adds r0, #1
+ movs r1, #0
+ strh r0, [r3, #0xa]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800C75A
+ strh r1, [r3, #0xa]
+ ldrh r1, [r3, #8]
+ movs r6, #8
+ ldrsh r0, [r3, r6]
+ cmp r0, #1
+ bgt _0800C75A
+ adds r0, r1, #1
+ strh r0, [r3, #8]
+_0800C75A:
+ ldr r5, [sp, #0x18]
+ cmp r5, #4
+ bgt _0800C762
+ b _0800C618
+_0800C762:
+ ldr r7, _0800C80C @ =0x0200B470
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _0800C7C8
+ ldr r0, _0800C810 @ =0x0201A450
+ ldrh r1, [r0, #0x10]
+ strh r1, [r7, #2]
+ ldrh r0, [r0, #0x12]
+ strh r0, [r7, #4]
+ ldr r5, _0800C800 @ =0x03005000
+ ldr r0, _0800C808 @ =0xFFFFFE00
+ mov sb, r0
+ adds r4, r7, #0
+ adds r4, #8
+ movs r6, #3
+_0800C780:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r0, [r2, #5]
+ movs r1, #0xc
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ ldr r7, _0800C80C @ =0x0200B470
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r7, _0800C804 @ =0x000001FF
+ adds r0, r7, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r2, _0800C80C @ =0x0200B470
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _0800C780
+_0800C7C8:
+ movs r0, #0
+ ldr r6, _0800C80C @ =0x0200B470
+ strh r0, [r6]
+ mov r7, r8
+ strh r0, [r7]
+ ldr r1, [sp]
+ strh r0, [r1]
+ ldr r1, [sp, #4]
+ strh r0, [r1]
+ ldr r1, [sp, #8]
+ strh r0, [r1]
+ ldr r1, [sp, #0xc]
+ strh r0, [r1]
+ ldr r1, [sp, #0x10]
+ strh r0, [r1]
+ add sp, #0x20
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C7F8: .4byte 0x086A7C68
+_0800C7FC: .4byte 0x086A7C24
+_0800C800: .4byte 0x03005000
+_0800C804: .4byte 0x000001FF
+_0800C808: .4byte 0xFFFFFE00
+_0800C80C: .4byte 0x0200B470
+_0800C810: .4byte 0x0201A450
+
+ thumb_func_start sub_C814
+sub_C814: @ 0x0800C814
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ bl sub_518
+ movs r0, #0
+ str r0, [sp]
+ ldr r1, _0800C924 @ =0x040000D4
+ mov r0, sp
+ str r0, [r1]
+ movs r0, #0xe0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800C928 @ =0x85000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r5, #0
+ ldr r6, _0800C92C @ =0x0200B0C0
+ movs r1, #0xb8
+ mov sb, r1
+ movs r4, #0
+ movs r3, #0xc0
+ lsls r3, r3, #2
+ mov r8, r3
+ ldr r7, _0800C930 @ =0x00000302
+ mov ip, r7
+ movs r0, #0xc1
+ lsls r0, r0, #2
+ mov sl, r0
+_0800C854:
+ mov r2, sb
+ muls r2, r5, r2
+ adds r1, r2, r6
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r4, [r0]
+ ldr r7, _0800C934 @ =0x000002FA
+ adds r0, r1, r7
+ strh r4, [r0]
+ movs r0, #0xbf
+ lsls r0, r0, #2
+ adds r1, r1, r0
+ strh r4, [r1]
+ movs r3, #0
+_0800C872:
+ lsls r0, r3, #3
+ adds r0, r0, r2
+ adds r0, r0, r6
+ mov r7, r8
+ adds r1, r0, r7
+ strh r4, [r1]
+ mov r7, ip
+ adds r1, r0, r7
+ strh r4, [r1]
+ add r0, sl
+ strh r4, [r0]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, #0x15
+ bls _0800C872
+ adds r0, r5, #1
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r5, #0x13
+ bls _0800C854
+ movs r5, #0
+ mov sl, r5
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ mov ip, r0
+ movs r1, #0x11
+ rsbs r1, r1, #0
+ mov sb, r1
+ movs r3, #0x21
+ rsbs r3, r3, #0
+ mov r8, r3
+ movs r4, #0x3f
+ ldr r6, _0800C938 @ =0xFFFFFE00
+ adds r3, #0x12
+_0800C8B8:
+ lsls r2, r5, #3
+ ldr r7, _0800C93C @ =0x03005000
+ adds r2, r2, r7
+ movs r0, #0xf4
+ strb r0, [r2]
+ movs r0, #0
+ strb r0, [r2, #1]
+ ldrh r1, [r2, #2]
+ adds r0, r6, #0
+ ands r0, r1
+ movs r7, #0xfa
+ lsls r7, r7, #1
+ adds r1, r7, #0
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrb r1, [r2, #3]
+ adds r0, r3, #0
+ ands r0, r1
+ mov r1, sb
+ ands r0, r1
+ mov r7, r8
+ ands r0, r7
+ ands r0, r4
+ strb r0, [r2, #3]
+ ldrh r1, [r2, #4]
+ ldr r0, _0800C940 @ =0xFFFFFC00
+ ands r0, r1
+ strh r0, [r2, #4]
+ ldrb r1, [r2, #5]
+ mov r0, ip
+ ands r0, r1
+ movs r1, #0xf
+ ands r0, r1
+ strb r0, [r2, #5]
+ mov r0, sl
+ strh r0, [r2, #6]
+ adds r0, r5, #1
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r5, #0x13
+ bls _0800C8B8
+ ldr r1, _0800C944 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C924: .4byte 0x040000D4
+_0800C928: .4byte 0x85000100
+_0800C92C: .4byte 0x0200B0C0
+_0800C930: .4byte 0x00000302
+_0800C934: .4byte 0x000002FA
+_0800C938: .4byte 0xFFFFFE00
+_0800C93C: .4byte 0x03005000
+_0800C940: .4byte 0xFFFFFC00
+_0800C944: .4byte 0x0202C790
+
+ thumb_func_start sub_C948
+sub_C948: @ 0x0800C948
+ push {r4, lr}
+ movs r3, #0x80
+ lsls r3, r3, #0x13
+ movs r1, #0x80
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r3]
+ ldr r1, _0800C9E4 @ =0x0400000E
+ movs r0, #7
+ strh r0, [r1]
+ ldrh r0, [r3]
+ movs r2, #0x80
+ lsls r2, r2, #4
+ adds r1, r2, #0
+ orrs r0, r1
+ strh r0, [r3]
+ ldr r0, _0800C9E8 @ =0x040000D4
+ ldr r1, _0800C9EC @ =0x08115A60
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _0800C9F0 @ =0x80000400
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800C9F4 @ =0x08116260
+ str r1, [r0]
+ ldr r1, _0800C9F8 @ =0x06004000
+ str r1, [r0, #4]
+ ldr r1, _0800C9FC @ =0x80001200
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r4, _0800CA00 @ =0x08115860
+ str r4, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r2, _0800CA04 @ =0x80000020
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _0800CA08 @ =0x08118680
+ str r1, [r0]
+ ldr r1, _0800CA0C @ =0x06010000
+ str r1, [r0, #4]
+ ldr r1, _0800CA10 @ =0x80003800
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ str r4, [r0]
+ ldr r1, _0800CA14 @ =0x05000200
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+ ldr r4, _0800CA18 @ =0x0200B0C0
+ ldrh r0, [r3]
+ strh r0, [r4, #0x16]
+ bl sub_CA28
+ ldr r2, _0800CA1C @ =0x0202ADA0
+ ldrh r1, [r2]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldrh r0, [r2, #2]
+ ldr r1, _0800CA20 @ =0x000002F6
+ adds r4, r4, r1
+ strh r0, [r4]
+ bl sub_CBC
+ bl sub_10424
+ ldr r1, _0800CA24 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800C9E4: .4byte 0x0400000E
+_0800C9E8: .4byte 0x040000D4
+_0800C9EC: .4byte 0x08115A60
+_0800C9F0: .4byte 0x80000400
+_0800C9F4: .4byte 0x08116260
+_0800C9F8: .4byte 0x06004000
+_0800C9FC: .4byte 0x80001200
+_0800CA00: .4byte 0x08115860
+_0800CA04: .4byte 0x80000020
+_0800CA08: .4byte 0x08118680
+_0800CA0C: .4byte 0x06010000
+_0800CA10: .4byte 0x80003800
+_0800CA14: .4byte 0x05000200
+_0800CA18: .4byte 0x0200B0C0
+_0800CA1C: .4byte 0x0202ADA0
+_0800CA20: .4byte 0x000002F6
+_0800CA24: .4byte 0x0202C790
+
+ thumb_func_start sub_CA28
+sub_CA28: @ 0x0800CA28
+ push {r4, lr}
+ ldr r0, _0800CA80 @ =0x0202ADA0
+ movs r4, #0
+ movs r3, #0
+ strh r3, [r0]
+ strh r3, [r0, #2]
+ ldr r1, _0800CA84 @ =0x0201A450
+ movs r0, #0xf0
+ strh r0, [r1]
+ movs r0, #0x1e
+ strh r0, [r1, #2]
+ movs r0, #0xe
+ strh r0, [r1, #4]
+ movs r2, #1
+ movs r0, #1
+ strh r0, [r1, #8]
+ strb r2, [r1, #0xc]
+ movs r0, #0x84
+ lsls r0, r0, #1
+ strh r0, [r1, #0x10]
+ movs r0, #0x50
+ strh r0, [r1, #0x12]
+ movs r0, #6
+ strh r0, [r1, #0x14]
+ strb r4, [r1, #0x1c]
+ ldr r0, _0800CA88 @ =0x0202BF10
+ strh r3, [r0]
+ ldr r0, _0800CA8C @ =0x0202A578
+ strh r3, [r0]
+ ldr r0, _0800CA90 @ =0x0202C5E4
+ movs r2, #0x80
+ lsls r2, r2, #1
+ adds r1, r2, #0
+ strh r1, [r0]
+ ldr r0, _0800CA94 @ =0x0202ADD8
+ strh r1, [r0]
+ ldr r0, _0800CA98 @ =0x0202BEDC
+ strb r4, [r0]
+ ldr r0, _0800CA9C @ =0x0202A56C
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CA80: .4byte 0x0202ADA0
+_0800CA84: .4byte 0x0201A450
+_0800CA88: .4byte 0x0202BF10
+_0800CA8C: .4byte 0x0202A578
+_0800CA90: .4byte 0x0202C5E4
+_0800CA94: .4byte 0x0202ADD8
+_0800CA98: .4byte 0x0202BEDC
+_0800CA9C: .4byte 0x0202A56C
+
+ thumb_func_start sub_CAA0
+sub_CAA0: @ 0x0800CAA0
+ push {r4, r5, lr}
+ ldr r4, _0800CB48 @ =0x0202ADA0
+ ldrh r0, [r4]
+ subs r0, #0x24
+ strh r0, [r4]
+ ldr r5, _0800CB4C @ =0x0201A450
+ ldr r1, _0800CB50 @ =0x086A7D4C
+ ldr r2, _0800CB54 @ =0x0202A578
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r5]
+ subs r0, r0, r1
+ strh r0, [r5]
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ ldr r0, _0800CB58 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #5
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0800CAEA
+ ldrh r0, [r5, #8]
+ adds r0, #1
+ strh r0, [r5, #8]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xa
+ ble _0800CAEA
+ movs r0, #1
+ strh r0, [r5, #8]
+_0800CAEA:
+ ldr r0, _0800CB5C @ =0x0200B0C0
+ ldrh r1, [r4]
+ movs r2, #0xbd
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ strh r1, [r0]
+ bl sub_CD18
+ ldr r2, _0800CB58 @ =0x0202BF10
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ cmp r0, #0x28
+ ble _0800CB26
+ ldr r1, _0800CB60 @ =0x0202C5E4
+ ldrh r0, [r1]
+ adds r0, #6
+ strh r0, [r1]
+ ldr r1, _0800CB64 @ =0x0202ADD8
+ ldrh r0, [r1]
+ adds r0, #6
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800CB26
+ ldr r1, _0800CB4C @ =0x0201A450
+ ldrh r0, [r1, #2]
+ adds r0, #1
+ strh r0, [r1, #2]
+_0800CB26:
+ ldr r0, _0800CB58 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x5a
+ ble _0800CB42
+ ldr r1, _0800CB4C @ =0x0201A450
+ movs r0, #0
+ strb r0, [r1, #0xc]
+ movs r0, #1
+ strb r0, [r1, #0x1c]
+ ldr r1, _0800CB68 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800CB42:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CB48: .4byte 0x0202ADA0
+_0800CB4C: .4byte 0x0201A450
+_0800CB50: .4byte 0x086A7D4C
+_0800CB54: .4byte 0x0202A578
+_0800CB58: .4byte 0x0202BF10
+_0800CB5C: .4byte 0x0200B0C0
+_0800CB60: .4byte 0x0202C5E4
+_0800CB64: .4byte 0x0202ADD8
+_0800CB68: .4byte 0x0202C790
+
+ thumb_func_start sub_CB6C
+sub_CB6C: @ 0x0800CB6C
+ ldr r0, _0800CB94 @ =0x0202ADA0
+ ldrh r1, [r0]
+ subs r1, #0x24
+ strh r1, [r0]
+ ldr r0, _0800CB98 @ =0x0200B0C0
+ movs r2, #0xbd
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ strh r1, [r0]
+ ldr r0, _0800CB9C @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x78
+ ble _0800CB90
+ ldr r1, _0800CBA0 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800CB90:
+ bx lr
+ .align 2, 0
+_0800CB94: .4byte 0x0202ADA0
+_0800CB98: .4byte 0x0200B0C0
+_0800CB9C: .4byte 0x0202BF10
+_0800CBA0: .4byte 0x0202C790
+
+ thumb_func_start sub_CBA4
+sub_CBA4: @ 0x0800CBA4
+ push {r4, lr}
+ ldr r0, _0800CBBC @ =0x0202BF10
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, #0
+ cmp r1, #0x86
+ bgt _0800CBC4
+ ldr r1, _0800CBC0 @ =0x0201A450
+ ldrh r0, [r1, #0x10]
+ subs r0, #0xc
+ b _0800CBCA
+ .align 2, 0
+_0800CBBC: .4byte 0x0202BF10
+_0800CBC0: .4byte 0x0201A450
+_0800CBC4:
+ ldr r1, _0800CC68 @ =0x0201A450
+ ldrh r0, [r1, #0x10]
+ subs r0, #1
+_0800CBCA:
+ strh r0, [r1, #0x10]
+ ldrh r0, [r2]
+ movs r1, #1
+ ands r0, r1
+ ldr r2, _0800CC6C @ =0x0202BEDC
+ cmp r0, #0
+ bne _0800CBEA
+ ldrb r0, [r2]
+ adds r0, #3
+ strb r0, [r2]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x20
+ ble _0800CBEA
+ movs r0, #0x20
+ strb r0, [r2]
+_0800CBEA:
+ ldr r4, _0800CC70 @ =0x08115860
+ ldr r1, _0800CC74 @ =0x05000200
+ movs r3, #0
+ ldrsb r3, [r2, r3]
+ lsls r3, r3, #0x10
+ lsrs r3, r3, #0x10
+ adds r0, r4, #0
+ movs r2, #0x20
+ bl sub_102A8
+ ldr r0, _0800CC78 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x88
+ ble _0800CC30
+ ldr r2, _0800CC7C @ =0x0202A56C
+ ldrb r0, [r2]
+ adds r0, #2
+ strb r0, [r2]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x20
+ ble _0800CC1C
+ movs r0, #0x20
+ strb r0, [r2]
+_0800CC1C:
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ movs r3, #0
+ ldrsb r3, [r2, r3]
+ lsls r3, r3, #0x10
+ lsrs r3, r3, #0x10
+ adds r0, r4, #0
+ movs r2, #0x40
+ bl sub_102A8
+_0800CC30:
+ ldr r0, _0800CC80 @ =0x0202ADA0
+ ldrh r1, [r0]
+ subs r1, #0x24
+ strh r1, [r0]
+ ldr r0, _0800CC84 @ =0x0200B0C0
+ movs r2, #0xbd
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ strh r1, [r0]
+ bl sub_CD18
+ ldr r1, _0800CC78 @ =0x0202BF10
+ movs r2, #0
+ ldrsh r0, [r1, r2]
+ cmp r0, #0x98
+ ble _0800CC62
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _0800CC88 @ =0x0202A578
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _0800CC8C @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #2
+ strb r0, [r1]
+_0800CC62:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CC68: .4byte 0x0201A450
+_0800CC6C: .4byte 0x0202BEDC
+_0800CC70: .4byte 0x08115860
+_0800CC74: .4byte 0x05000200
+_0800CC78: .4byte 0x0202BF10
+_0800CC7C: .4byte 0x0202A56C
+_0800CC80: .4byte 0x0202ADA0
+_0800CC84: .4byte 0x0200B0C0
+_0800CC88: .4byte 0x0202A578
+_0800CC8C: .4byte 0x0202C790
+
+ thumb_func_start nullsub_14
+nullsub_14: @ 0x0800CC90
+ bx lr
+
+ thumb_func_start sub_CC94
+sub_CC94: @ 0x0800CC94
+ push {r4, r5, r6, lr}
+ ldr r6, _0800CCE4 @ =0x0202BF10
+ movs r1, #0
+ ldrsh r0, [r6, r1]
+ movs r1, #0xa
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0800CCCE
+ ldr r1, _0800CCE8 @ =0x0202A578
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ ldr r4, _0800CCEC @ =0x02032EE0
+ ldr r5, _0800CCF0 @ =0x0000FFFF
+ movs r0, #0
+ ldrsh r1, [r1, r0]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ bl __divsi3
+ adds r2, r0, #0
+ lsls r2, r2, #0x10
+ lsrs r2, r2, #0x10
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl m4aMPlayVolumeControl
+_0800CCCE:
+ movs r1, #0
+ ldrsh r0, [r6, r1]
+ cmp r0, #0x2d
+ ble _0800CCDE
+ ldr r1, _0800CCF4 @ =0x0202C790
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+_0800CCDE:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CCE4: .4byte 0x0202BF10
+_0800CCE8: .4byte 0x0202A578
+_0800CCEC: .4byte 0x02032EE0
+_0800CCF0: .4byte 0x0000FFFF
+_0800CCF4: .4byte 0x0202C790
+
+ thumb_func_start sub_CCF8
+sub_CCF8: @ 0x0800CCF8
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _0800CD14 @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CD14: .4byte 0x0200B0C0
+
+ thumb_func_start sub_CD18
+sub_CD18: @ 0x0800CD18
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ ldr r7, _0800CE28 @ =0x0201A450
+ movs r0, #8
+ ldrsh r1, [r7, r0]
+ movs r0, #0xb8
+ muls r1, r0, r1
+ ldr r0, _0800CE2C @ =0x0200B3B8
+ adds r6, r1, r0
+ mov r8, r0
+ movs r0, #0xc
+ ldrsb r0, [r7, r0]
+ strh r0, [r6]
+ movs r0, #0x1c
+ ldrsb r0, [r7, r0]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _0800CE30 @ =0x086A7D20
+ movs r1, #0xb
+ mov r2, r8
+ bl sub_358
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _0800CDBA
+ ldr r0, _0800CE34 @ =0x0202C5E4
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ ldr r1, _0800CE38 @ =0x0202ADD8
+ movs r3, #0
+ ldrsh r1, [r1, r3]
+ movs r2, #0
+ bl sub_7C0
+ ldrh r0, [r7]
+ strh r0, [r6, #2]
+ ldrh r0, [r7, #2]
+ strh r0, [r6, #4]
+ adds r5, r6, #0
+ adds r5, #8
+ ldr r4, _0800CE3C @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r3, _0800CE40 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _0800CE44 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r1, #1]
+ movs r2, #3
+ orrs r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r2, [r1, #3]
+ movs r0, #0xf
+ rsbs r0, r0, #0
+ ands r0, r2
+ strb r0, [r1, #3]
+_0800CDBA:
+ mov r1, r8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800CE12
+ ldrh r0, [r7, #0x10]
+ strh r0, [r1, #2]
+ ldrh r0, [r7, #0x12]
+ strh r0, [r1, #4]
+ ldr r2, _0800CE3C @ =0x03005000
+ mov sb, r2
+ ldr r3, _0800CE44 @ =0xFFFFFE00
+ mov ip, r3
+ mov r4, r8
+ adds r4, #8
+ movs r5, #3
+_0800CDD8:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ mov r2, r8
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800CE40 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ mov r3, r8
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _0800CDD8
+_0800CE12:
+ movs r0, #0
+ strh r0, [r6]
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CE28: .4byte 0x0201A450
+_0800CE2C: .4byte 0x0200B3B8
+_0800CE30: .4byte 0x086A7D20
+_0800CE34: .4byte 0x0202C5E4
+_0800CE38: .4byte 0x0202ADD8
+_0800CE3C: .4byte 0x03005000
+_0800CE40: .4byte 0x000001FF
+_0800CE44: .4byte 0xFFFFFE00
diff --git a/asm/options.s b/asm/options.s
new file mode 100755
index 0000000..48dcdd7
--- /dev/null
+++ b/asm/options.s
@@ -0,0 +1,2841 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start OptionsMain
+OptionsMain: @ 0x08051220
+ push {lr}
+ ldr r1, _08051238 @ =0x08527F08
+ ldr r0, _0805123C @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051238: .4byte 0x08527F08
+_0805123C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_51240
+sub_51240: @ 0x08051240
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #4
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _08051358 @ =0x04000008
+ movs r0, #4
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0805135C @ =0x0400000A
+ adds r3, #9
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r3, #0xf7
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08051360 @ =0x0200B0C0
+ mov sb, r0
+ ldrh r0, [r2]
+ mov r1, sb
+ strh r0, [r1, #0x16]
+ ldr r5, _08051364 @ =0x040000D4
+ ldr r0, _08051368 @ =0x0852B468
+ str r0, [r5]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r5, #4]
+ ldr r0, _0805136C @ =0x80000100
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051370 @ =0x08528828
+ str r0, [r5]
+ ldr r0, _08051374 @ =0x06004000
+ str r0, [r5, #4]
+ ldr r0, _08051378 @ =0x80000C00
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _0805137C @ =0x0852A848
+ str r0, [r5]
+ ldr r0, _08051380 @ =0x06008000
+ str r0, [r5, #4]
+ ldr r0, _08051384 @ =0x80000600
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051388 @ =0x08528028
+ str r0, [r5]
+ ldr r7, _0805138C @ =0x03005C00
+ str r7, [r5, #4]
+ ldr r6, _08051390 @ =0x80000400
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ str r7, [r5]
+ movs r3, #0xc0
+ lsls r3, r3, #0x13
+ mov r8, r3
+ str r3, [r5, #4]
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051394 @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _080512F8
+ movs r4, #2
+ str r4, [sp]
+ movs r0, #0x12
+ movs r1, #4
+ movs r2, #2
+ movs r3, #1
+ bl sub_1068C
+ str r4, [sp]
+ movs r0, #0x12
+ movs r1, #5
+ movs r2, #3
+ movs r3, #2
+ bl sub_1068C
+_080512F8:
+ str r7, [r5]
+ mov r0, r8
+ str r0, [r5, #4]
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051398 @ =0x0852A048
+ str r0, [r5]
+ ldr r0, _0805139C @ =0x06000800
+ str r0, [r5, #4]
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _080513A0 @ =0x0852B668
+ str r0, [r5]
+ ldr r0, _080513A4 @ =0x05000200
+ str r0, [r5, #4]
+ ldr r0, _080513A8 @ =0x80000030
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _080513AC @ =0x0852B868
+ str r0, [r5]
+ ldr r0, _080513B0 @ =0x06010000
+ str r0, [r5, #4]
+ ldr r0, _080513B4 @ =0x80001010
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ bl sub_513B8
+ bl sub_51C9C
+ bl m4aMPlayAllStop
+ bl sub_CBC
+ bl sub_24C
+ bl sub_10C0
+ mov r1, sb
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+ add sp, #4
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051358: .4byte 0x04000008
+_0805135C: .4byte 0x0400000A
+_08051360: .4byte 0x0200B0C0
+_08051364: .4byte 0x040000D4
+_08051368: .4byte 0x0852B468
+_0805136C: .4byte 0x80000100
+_08051370: .4byte 0x08528828
+_08051374: .4byte 0x06004000
+_08051378: .4byte 0x80000C00
+_0805137C: .4byte 0x0852A848
+_08051380: .4byte 0x06008000
+_08051384: .4byte 0x80000600
+_08051388: .4byte 0x08528028
+_0805138C: .4byte 0x03005C00
+_08051390: .4byte 0x80000400
+_08051394: .4byte 0x02019C0C
+_08051398: .4byte 0x0852A048
+_0805139C: .4byte 0x06000800
+_080513A0: .4byte 0x0852B668
+_080513A4: .4byte 0x05000200
+_080513A8: .4byte 0x80000030
+_080513AC: .4byte 0x0852B868
+_080513B0: .4byte 0x06010000
+_080513B4: .4byte 0x80001010
+
+ thumb_func_start sub_513B8
+sub_513B8: @ 0x080513B8
+ push {r4, r5, r6, lr}
+ ldr r0, _08051468 @ =0x02002920
+ mov ip, r0
+ movs r2, #0
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ movs r3, #1
+ movs r0, #1
+ mov r4, ip
+ strh r0, [r4, #6]
+ strh r1, [r4, #8]
+ strh r1, [r4, #0xa]
+ ldr r0, _0805146C @ =0x0200B134
+ adds r0, #0xcf
+ ldrb r0, [r0]
+ strh r0, [r4, #0xc]
+ strh r1, [r4, #0xe]
+ strh r1, [r4, #0x10]
+ strb r2, [r4, #0x12]
+ strb r2, [r4, #0x13]
+ strb r3, [r4, #0x14]
+ strb r2, [r4, #0x15]
+ strb r2, [r4, #0x16]
+ strb r3, [r4, #0x17]
+ strh r1, [r4, #0x18]
+ mov r2, ip
+ movs r3, #0
+ movs r1, #5
+ adds r0, r2, #0
+ adds r0, #0x1f
+_080513F8:
+ strb r3, [r0]
+ subs r0, #1
+ subs r1, #1
+ cmp r1, #0
+ bge _080513F8
+ movs r0, #0
+ strh r0, [r2, #0x20]
+ strh r0, [r2, #0x22]
+ movs r3, #0xa
+ movs r1, #1
+ adds r0, r2, #0
+ adds r0, #0x26
+_08051410:
+ strh r3, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _08051410
+ movs r0, #0
+ strh r0, [r2, #0x28]
+ movs r1, #0
+ ldr r6, _08051470 @ =0x02031AF0
+ ldr r5, _08051474 @ =0x08527ED6
+_08051424:
+ adds r4, r1, #1
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r2, r0, r5
+ adds r1, r0, r6
+ movs r3, #9
+_08051432:
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, #1
+ adds r1, #1
+ subs r3, #1
+ cmp r3, #0
+ bge _08051432
+ adds r1, r4, #0
+ cmp r1, #3
+ ble _08051424
+ bl sub_52528
+ ldr r0, _08051478 @ =0x02019C0C
+ ldr r4, [r0]
+ cmp r4, #1
+ bne _0805147C
+ ldr r3, _08051468 @ =0x02002920
+ ldr r0, _0805146C @ =0x0200B134
+ adds r0, #0xcd
+ ldrb r1, [r0]
+ adds r2, r3, #0
+ adds r2, #0x2a
+ strb r1, [r2]
+ strb r4, [r0]
+ adds r2, r3, #0
+ b _0805148C
+ .align 2, 0
+_08051468: .4byte 0x02002920
+_0805146C: .4byte 0x0200B134
+_08051470: .4byte 0x02031AF0
+_08051474: .4byte 0x08527ED6
+_08051478: .4byte 0x02019C0C
+_0805147C:
+ ldr r2, _080514B0 @ =0x02002920
+ adds r0, r2, #0
+ adds r0, #0x2a
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _080514B4 @ =0x0200B134
+ adds r0, #0xcd
+ strb r1, [r0]
+_0805148C:
+ adds r1, r2, #0
+ adds r1, #0x2e
+ movs r0, #0
+ strb r0, [r1]
+ subs r1, #3
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #2
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080514B0: .4byte 0x02002920
+_080514B4: .4byte 0x0200B134
+
+ thumb_func_start sub_514B8
+sub_514B8: @ 0x080514B8
+ push {r4, r5, r6, r7, lr}
+ bl sub_51C9C
+ ldr r0, _080514D4 @ =0x02002920
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #4
+ bls _080514CA
+ b _08051B98
+_080514CA:
+ lsls r0, r0, #2
+ ldr r1, _080514D8 @ =_080514DC
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080514D4: .4byte 0x02002920
+_080514D8: .4byte _080514DC
+_080514DC: @ jump table
+ .4byte _080514F0 @ case 0
+ .4byte _080517A8 @ case 1
+ .4byte _080518D4 @ case 2
+ .4byte _08051A08 @ case 3
+ .4byte _08051AB8 @ case 4
+_080514F0:
+ ldr r0, _08051514 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0805152C
+ ldr r4, _08051518 @ =0x02002920
+ movs r2, #0xa
+ ldrsh r0, [r4, r2]
+ cmp r0, #0xd
+ beq _0805156C
+ cmp r0, #0xe
+ bne _0805151C
+ movs r0, #0x67
+ bl m4aSongNumStart
+ movs r0, #0xd
+ b _0805156A
+ .align 2, 0
+_08051514: .4byte 0x0200B0C0
+_08051518: .4byte 0x02002920
+_0805151C:
+ cmp r0, #0
+ ble _0805156C
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0xa]
+ subs r0, #1
+ b _0805156A
+_0805152C:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0805156C
+ ldr r4, _0805154C @ =0x02002920
+ movs r3, #0xa
+ ldrsh r0, [r4, r3]
+ cmp r0, #5
+ bgt _08051550
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0xa]
+ adds r0, #1
+ b _0805156A
+ .align 2, 0
+_0805154C: .4byte 0x02002920
+_08051550:
+ cmp r0, #0xd
+ bne _0805155E
+ movs r0, #0x67
+ bl m4aSongNumStart
+ movs r0, #0xe
+ b _0805156A
+_0805155E:
+ cmp r0, #0xe
+ bne _0805156C
+ movs r0, #0x67
+ bl m4aSongNumStart
+ movs r0, #2
+_0805156A:
+ strh r0, [r4, #0xa]
+_0805156C:
+ ldr r0, _080515E8 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _08051594
+ ldr r0, _080515EC @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _08051594
+ ldr r4, _080515F0 @ =0x02002920
+ ldrh r0, [r4, #0xa]
+ cmp r0, #1
+ bhi _08051594
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0xa]
+ adds r0, #0xd
+ strh r0, [r4, #0xa]
+_08051594:
+ ldr r0, _080515E8 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _080515C2
+ ldr r0, _080515EC @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _080515C2
+ ldr r4, _080515F0 @ =0x02002920
+ ldrh r0, [r4, #0xa]
+ subs r0, #0xd
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #1
+ bhi _080515C2
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0xa]
+ subs r0, #0xd
+ strh r0, [r4, #0xa]
+_080515C2:
+ ldr r4, _080515E8 @ =0x0200B0C0
+ ldrh r1, [r4, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _080515D0
+ b _0805177C
+_080515D0:
+ ldr r0, _080515F0 @ =0x02002920
+ movs r6, #0xa
+ ldrsh r0, [r0, r6]
+ cmp r0, #0xe
+ bls _080515DC
+ b _08051A96
+_080515DC:
+ lsls r0, r0, #2
+ ldr r1, _080515F4 @ =_080515F8
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080515E8: .4byte 0x0200B0C0
+_080515EC: .4byte 0x02019C0C
+_080515F0: .4byte 0x02002920
+_080515F4: .4byte _080515F8
+_080515F8: @ jump table
+ .4byte _08051634 @ case 0
+ .4byte _08051674 @ case 1
+ .4byte _080516B0 @ case 2
+ .4byte _080516B0 @ case 3
+ .4byte _080516B0 @ case 4
+ .4byte _080516B0 @ case 5
+ .4byte _080516D0 @ case 6
+ .4byte _08051A96 @ case 7
+ .4byte _08051A96 @ case 8
+ .4byte _08051A96 @ case 9
+ .4byte _08051A96 @ case 10
+ .4byte _08051A96 @ case 11
+ .4byte _08051A96 @ case 12
+ .4byte _08051738 @ case 13
+ .4byte _080516F8 @ case 14
+_08051634:
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r3, _08051670 @ =0x02002920
+ movs r4, #0
+ movs r1, #0
+ movs r2, #1
+ movs r0, #1
+ strh r0, [r3]
+ strh r1, [r3, #0x18]
+ adds r0, r3, #0
+ adds r0, #0x30
+ strb r2, [r0]
+ adds r1, r3, #0
+ adds r1, #0x2e
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #1
+ beq _0805165C
+ b _08051A96
+_0805165C:
+ adds r0, r3, #0
+ adds r0, #0x2b
+ strb r4, [r0]
+ adds r0, #2
+ strb r4, [r0]
+ subs r0, #1
+ strb r4, [r0]
+ strb r4, [r1]
+ b _08051A96
+ .align 2, 0
+_08051670: .4byte 0x02002920
+_08051674:
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r2, _080516AC @ =0x02002920
+ movs r3, #0
+ movs r1, #0
+ movs r0, #2
+ strh r0, [r2]
+ strh r1, [r2, #0x18]
+ adds r1, r2, #0
+ adds r1, #0x30
+ movs r0, #1
+ strb r0, [r1]
+ subs r1, #2
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #1
+ beq _0805169A
+ b _08051A96
+_0805169A:
+ adds r0, r2, #0
+ adds r0, #0x2b
+ strb r3, [r0]
+ adds r0, #2
+ strb r3, [r0]
+ subs r0, #1
+ strb r3, [r0]
+ strb r3, [r1]
+ b _08051A96
+ .align 2, 0
+_080516AC: .4byte 0x02002920
+_080516B0:
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r0, _080516C8 @ =0x02002920
+ ldrh r1, [r0, #0xa]
+ subs r1, #2
+ strh r1, [r0, #0xc]
+ ldr r0, _080516CC @ =0x0200B134
+ adds r0, #0xcf
+ strb r1, [r0]
+ b _08051A96
+ .align 2, 0
+_080516C8: .4byte 0x02002920
+_080516CC: .4byte 0x0200B134
+_080516D0:
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r2, _080516F0 @ =0x02002920
+ ldrh r1, [r2, #0xa]
+ subs r1, #2
+ strh r1, [r2, #0xc]
+ ldr r0, _080516F4 @ =0x0200B134
+ adds r0, #0xcf
+ strb r1, [r0]
+ movs r0, #7
+ strh r0, [r2, #0xa]
+ movs r0, #3
+ strh r0, [r2]
+ b _08051A96
+ .align 2, 0
+_080516F0: .4byte 0x02002920
+_080516F4: .4byte 0x0200B134
+_080516F8:
+ ldr r0, _08051730 @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _08051702
+ b _08051A96
+_08051702:
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r1, _08051734 @ =0x02002920
+ adds r0, r1, #0
+ adds r0, #0x2d
+ movs r2, #0
+ strb r2, [r0]
+ adds r3, r1, #0
+ adds r3, #0x2e
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #1
+ bne _08051720
+ strb r2, [r3]
+_08051720:
+ adds r0, r1, #0
+ adds r0, #0x2b
+ strb r2, [r0]
+ adds r0, #1
+ strb r2, [r0]
+ subs r0, #2
+ strb r2, [r0]
+ b _08051A96
+ .align 2, 0
+_08051730: .4byte 0x02019C0C
+_08051734: .4byte 0x02002920
+_08051738:
+ ldr r0, _08051774 @ =0x02019C0C
+ ldr r4, [r0]
+ cmp r4, #1
+ beq _08051742
+ b _08051A96
+_08051742:
+ movs r0, #0x65
+ bl m4aSongNumStart
+ movs r0, #0xb
+ bl sub_11B0
+ ldr r2, _08051778 @ =0x02002920
+ adds r1, r2, #0
+ adds r1, #0x2e
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bne _0805175E
+ strb r4, [r1]
+_0805175E:
+ adds r1, r2, #0
+ adds r1, #0x2b
+ movs r0, #0
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r0, r2, #0
+ adds r0, #0x2a
+ strb r4, [r0]
+ b _08051A96
+ .align 2, 0
+_08051774: .4byte 0x02019C0C
+_08051778: .4byte 0x02002920
+_0805177C:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ bne _08051786
+ b _08051A96
+_08051786:
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+ ldr r7, _080517A4 @ =0x00000143
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ bl sub_525CC
+ b _08051A96
+ .align 2, 0
+_080517A4: .4byte 0x00000143
+_080517A8:
+ ldr r1, _080517C8 @ =0x0200B0C0
+ ldrh r2, [r1, #0x1c]
+ movs r0, #0x20
+ ands r0, r2
+ adds r3, r1, #0
+ cmp r0, #0
+ beq _080517D0
+ ldr r0, _080517CC @ =0x02002920
+ movs r2, #0x18
+ ldrsh r1, [r0, r2]
+ adds r4, r0, #0
+ cmp r1, #0
+ bne _080517EC
+ ldrh r0, [r4, #0xe]
+ subs r0, #1
+ b _080517E6
+ .align 2, 0
+_080517C8: .4byte 0x0200B0C0
+_080517CC: .4byte 0x02002920
+_080517D0:
+ movs r0, #0x10
+ ands r0, r2
+ ldr r4, _080517FC @ =0x02002920
+ cmp r0, #0
+ beq _080517EC
+ movs r6, #0x18
+ ldrsh r0, [r4, r6]
+ cmp r0, #0
+ bne _080517EC
+ ldrh r0, [r4, #0xe]
+ adds r0, #1
+_080517E6:
+ strh r0, [r4, #0xe]
+ movs r0, #0xa
+ strh r0, [r4, #0x18]
+_080517EC:
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _08051800
+ ldrh r0, [r4, #0xe]
+ adds r0, #0xa
+ b _0805180C
+ .align 2, 0
+_080517FC: .4byte 0x02002920
+_08051800:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0805180E
+ ldrh r0, [r4, #0xe]
+ subs r0, #0xa
+_0805180C:
+ strh r0, [r4, #0xe]
+_0805180E:
+ ldr r5, _08051880 @ =0x02002920
+ movs r7, #0xe
+ ldrsh r0, [r5, r7]
+ cmp r0, #0
+ bge _0805181C
+ movs r0, #0x21
+ strh r0, [r5, #0xe]
+_0805181C:
+ movs r1, #0xe
+ ldrsh r0, [r5, r1]
+ cmp r0, #0x21
+ ble _08051828
+ movs r0, #0
+ strh r0, [r5, #0xe]
+_08051828:
+ ldrh r4, [r5, #0xe]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl __divsi3
+ strb r0, [r5, #0x12]
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl __modsi3
+ adds r4, r0, #0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl __divsi3
+ strb r0, [r5, #0x13]
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl __modsi3
+ strb r0, [r5, #0x14]
+ ldr r0, _08051884 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _0805188C
+ bl m4aMPlayAllStop
+ ldr r0, _08051888 @ =0x08527D22
+ movs r2, #0xe
+ ldrsh r1, [r5, r2]
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ bl m4aSongNumStart
+ b _080518AA
+ .align 2, 0
+_08051880: .4byte 0x02002920
+_08051884: .4byte 0x0200B0C0
+_08051888: .4byte 0x08527D22
+_0805188C:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _080518AA
+ bl m4aMPlayAllStop
+ movs r0, #0x66
+ bl m4aSongNumStart
+ movs r1, #0
+ strh r4, [r5, #4]
+ adds r0, r5, #0
+ adds r0, #0x30
+ strb r1, [r0]
+ strh r4, [r5]
+_080518AA:
+ ldr r0, _080518CC @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _080518C0
+ ldr r2, _080518D0 @ =0x02002920
+ ldrh r1, [r2, #4]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #4]
+_080518C0:
+ ldr r1, _080518D0 @ =0x02002920
+ ldrh r2, [r1, #0x18]
+ movs r3, #0x18
+ ldrsh r0, [r1, r3]
+ b _080519F4
+ .align 2, 0
+_080518CC: .4byte 0x0200B0C0
+_080518D0: .4byte 0x02002920
+_080518D4:
+ ldr r1, _080518F4 @ =0x0200B0C0
+ ldrh r2, [r1, #0x1c]
+ movs r0, #0x20
+ ands r0, r2
+ adds r3, r1, #0
+ cmp r0, #0
+ beq _080518FC
+ ldr r0, _080518F8 @ =0x02002920
+ movs r6, #0x18
+ ldrsh r1, [r0, r6]
+ adds r4, r0, #0
+ cmp r1, #0
+ bne _08051918
+ ldrh r0, [r4, #0x10]
+ subs r0, #1
+ b _08051912
+ .align 2, 0
+_080518F4: .4byte 0x0200B0C0
+_080518F8: .4byte 0x02002920
+_080518FC:
+ movs r0, #0x10
+ ands r0, r2
+ ldr r4, _08051928 @ =0x02002920
+ cmp r0, #0
+ beq _08051918
+ movs r7, #0x18
+ ldrsh r0, [r4, r7]
+ cmp r0, #0
+ bne _08051918
+ ldrh r0, [r4, #0x10]
+ adds r0, #1
+_08051912:
+ strh r0, [r4, #0x10]
+ movs r0, #0xa
+ strh r0, [r4, #0x18]
+_08051918:
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0805192C
+ ldrh r0, [r4, #0x10]
+ adds r0, #0xa
+ b _08051938
+ .align 2, 0
+_08051928: .4byte 0x02002920
+_0805192C:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0805193A
+ ldrh r0, [r4, #0x10]
+ subs r0, #0xa
+_08051938:
+ strh r0, [r4, #0x10]
+_0805193A:
+ ldr r5, _080519AC @ =0x02002920
+ movs r1, #0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, #0
+ bge _08051948
+ movs r0, #0xb7
+ strh r0, [r5, #0x10]
+_08051948:
+ movs r2, #0x10
+ ldrsh r0, [r5, r2]
+ cmp r0, #0xb7
+ ble _08051954
+ movs r0, #0
+ strh r0, [r5, #0x10]
+_08051954:
+ ldrh r4, [r5, #0x10]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl __divsi3
+ strb r0, [r5, #0x15]
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl __modsi3
+ adds r4, r0, #0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl __divsi3
+ strb r0, [r5, #0x16]
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl __modsi3
+ strb r0, [r5, #0x17]
+ ldr r0, _080519B0 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _080519B8
+ bl m4aMPlayAllStop
+ ldr r0, _080519B4 @ =0x08527D66
+ movs r3, #0x10
+ ldrsh r1, [r5, r3]
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ bl m4aSongNumStart
+ b _080519D6
+ .align 2, 0
+_080519AC: .4byte 0x02002920
+_080519B0: .4byte 0x0200B0C0
+_080519B4: .4byte 0x08527D66
+_080519B8:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _080519D6
+ bl m4aMPlayAllStop
+ movs r0, #0x66
+ bl m4aSongNumStart
+ movs r1, #0
+ strh r4, [r5, #4]
+ adds r0, r5, #0
+ adds r0, #0x30
+ strb r1, [r0]
+ strh r4, [r5]
+_080519D6:
+ ldr r0, _08051A00 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _080519EC
+ ldr r2, _08051A04 @ =0x02002920
+ ldrh r1, [r2, #4]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #4]
+_080519EC:
+ ldr r1, _08051A04 @ =0x02002920
+ ldrh r2, [r1, #0x18]
+ movs r6, #0x18
+ ldrsh r0, [r1, r6]
+_080519F4:
+ cmp r0, #0
+ bgt _080519FA
+ b _08051B98
+_080519FA:
+ subs r0, r2, #1
+ strh r0, [r1, #0x18]
+ b _08051B98
+ .align 2, 0
+_08051A00: .4byte 0x0200B0C0
+_08051A04: .4byte 0x02002920
+_08051A08:
+ ldr r0, _08051A2C @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _08051A34
+ ldr r4, _08051A30 @ =0x02002920
+ movs r7, #0xa
+ ldrsh r0, [r4, r7]
+ cmp r0, #7
+ ble _08051A52
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0xa]
+ subs r0, #1
+ b _08051A50
+ .align 2, 0
+_08051A2C: .4byte 0x0200B0C0
+_08051A30: .4byte 0x02002920
+_08051A34:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08051A52
+ ldr r4, _08051A78 @ =0x02002920
+ movs r1, #0xa
+ ldrsh r0, [r4, r1]
+ cmp r0, #0xa
+ bgt _08051A52
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4, #0xa]
+ adds r0, #1
+_08051A50:
+ strh r0, [r4, #0xa]
+_08051A52:
+ ldr r0, _08051A7C @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _08051A80
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r0, _08051A78 @ =0x02002920
+ movs r1, #4
+ strh r1, [r0]
+ movs r2, #0xa
+ ldrsh r1, [r0, r2]
+ adds r0, r0, r1
+ movs r1, #1
+ strb r1, [r0, #0x13]
+ b _08051A96
+ .align 2, 0
+_08051A78: .4byte 0x02002920
+_08051A7C: .4byte 0x0200B0C0
+_08051A80:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08051A96
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r1, _08051AB0 @ =0x02002920
+ movs r0, #6
+ strh r0, [r1, #0xa]
+ strh r4, [r1]
+_08051A96:
+ ldr r0, _08051AB4 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _08051B98
+ ldr r2, _08051AB0 @ =0x02002920
+ ldrh r1, [r2, #2]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #2]
+ b _08051B98
+ .align 2, 0
+_08051AB0: .4byte 0x02002920
+_08051AB4: .4byte 0x0200B0C0
+_08051AB8:
+ ldr r4, _08051BF4 @ =0x02002920
+ ldrh r0, [r4, #8]
+ adds r0, #1
+ movs r5, #0
+ strh r0, [r4, #8]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x18
+ ble _08051AD4
+ strh r5, [r4, #8]
+ ldrh r1, [r4, #6]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r4, #6]
+_08051AD4:
+ ldr r0, _08051BF8 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ ldr r0, _08051BFC @ =0x000003F7
+ ands r0, r1
+ cmp r0, #0
+ beq _08051B0E
+ movs r0, #0x65
+ bl m4aSongNumStart
+ movs r0, #0xa
+ strh r0, [r4, #0x20]
+ strh r5, [r4, #0x22]
+ movs r0, #0
+ adds r3, r4, #0
+ adds r3, #0x24
+ movs r2, #0xa
+_08051AF4:
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #1
+ adds r0, r0, r3
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r0, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #1
+ ble _08051AF4
+ movs r0, #0
+ strh r0, [r4, #0x28]
+_08051B0E:
+ ldr r4, _08051BF4 @ =0x02002920
+ movs r3, #0x20
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ ble _08051B98
+ bl sub_524BC
+ ldrh r0, [r4, #0x20]
+ subs r0, #1
+ strh r0, [r4, #0x20]
+ lsls r0, r0, #0x10
+ asrs r5, r0, #0x10
+ cmp r5, #0
+ bne _08051B98
+ ldr r2, _08051C00 @ =0x02031AF0
+ movs r6, #0xa
+ ldrsh r0, [r4, r6]
+ subs r0, #7
+ lsls r0, r0, #1
+ adds r2, #0x28
+ adds r0, r0, r2
+ ldrh r1, [r4, #0x24]
+ strb r1, [r0]
+ movs r7, #0xa
+ ldrsh r0, [r4, r7]
+ subs r0, #7
+ lsls r0, r0, #1
+ adds r0, #1
+ adds r0, r0, r2
+ ldrh r1, [r4, #0x26]
+ strb r1, [r0]
+ ldr r2, _08051C04 @ =0x0200B134
+ movs r0, #0xa
+ ldrsh r1, [r4, r0]
+ subs r1, #7
+ lsls r1, r1, #2
+ adds r0, r2, #0
+ adds r0, #0xd0
+ adds r1, r1, r0
+ ldr r3, _08051C08 @ =0x086BB910
+ movs r6, #0x24
+ ldrsh r0, [r4, r6]
+ lsls r0, r0, #3
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r7, #0xa
+ ldrsh r1, [r4, r7]
+ subs r1, #7
+ lsls r1, r1, #2
+ adds r2, #0xd2
+ adds r1, r1, r2
+ movs r2, #0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, r0, #3
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r0, #3
+ strh r0, [r4]
+ movs r3, #0xa
+ ldrsh r0, [r4, r3]
+ adds r0, r4, r0
+ adds r0, #0x13
+ movs r1, #0
+ strb r1, [r0]
+ strh r5, [r4, #8]
+ movs r0, #1
+ strh r0, [r4, #6]
+_08051B98:
+ ldr r2, _08051BF4 @ =0x02002920
+ movs r6, #0x2e
+ adds r6, r6, r2
+ mov ip, r6
+ movs r0, #0
+ ldrsb r0, [r6, r0]
+ cmp r0, #1
+ bne _08051C10
+ adds r4, r2, #0
+ adds r4, #0x2b
+ ldrb r0, [r4]
+ adds r0, #1
+ movs r5, #0
+ strb r0, [r4]
+ lsls r0, r0, #0x18
+ ldr r6, _08051C0C @ =0x086BB9B4
+ adds r3, r2, #0
+ adds r3, #0x2c
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ lsls r1, r1, #2
+ adds r1, r1, r6
+ asrs r0, r0, #0x18
+ movs r7, #2
+ ldrsh r1, [r1, r7]
+ cmp r0, r1
+ ble _08051C30
+ strb r5, [r4]
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r2, #0x2d
+ cmp r0, #0xc
+ ble _08051BE8
+ strb r5, [r3]
+ strb r5, [r2]
+ mov r0, ip
+ strb r5, [r0]
+_08051BE8:
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ b _08051C2E
+ .align 2, 0
+_08051BF4: .4byte 0x02002920
+_08051BF8: .4byte 0x0200B0C0
+_08051BFC: .4byte 0x000003F7
+_08051C00: .4byte 0x02031AF0
+_08051C04: .4byte 0x0200B134
+_08051C08: .4byte 0x086BB910
+_08051C0C: .4byte 0x086BB9B4
+_08051C10:
+ adds r1, r2, #0
+ adds r1, #0x2b
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x12
+ ble _08051C30
+ movs r0, #0
+ strb r0, [r1]
+ adds r2, #0x2d
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+_08051C2E:
+ strb r0, [r2]
+_08051C30:
+ bl sub_11FC
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_51C3C
+sub_51C3C: @ 0x08051C3C
+ push {lr}
+ bl sub_111C
+ bl sub_1170
+ cmp r0, #0
+ beq _08051C56
+ bl sub_1198
+ ldr r1, _08051C5C @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+_08051C56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051C5C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_51C60
+sub_51C60: @ 0x08051C60
+ push {lr}
+ ldr r1, _08051C90 @ =0x0200B134
+ ldr r0, _08051C94 @ =0x02002920
+ adds r0, #0x2a
+ ldrb r0, [r0]
+ adds r1, #0xcd
+ strb r0, [r1]
+ bl sub_52B30
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08051C98 @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #1
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051C90: .4byte 0x0200B134
+_08051C94: .4byte 0x02002920
+_08051C98: .4byte 0x0201A4B4
+
+ thumb_func_start sub_51C9C
+sub_51C9C: @ 0x08051C9C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x8c
+ ldr r0, _08051D38 @ =0x0200B3B8
+ mov r8, r0
+ ldr r2, _08051D3C @ =0x02002920
+ movs r3, #4
+ ldrsh r1, [r2, r3]
+ movs r0, #0xe6
+ lsls r0, r0, #4
+ muls r1, r0, r1
+ movs r0, #0xa1
+ lsls r0, r0, #3
+ add r0, r8
+ adds r1, r1, r0
+ str r1, [sp, #0x60]
+ add r4, sp, #0xc
+ mov sl, r4
+ mov r6, sp
+ adds r6, #0x18
+ str r6, [sp, #0x6c]
+ mov r7, sp
+ adds r7, #0x1c
+ str r7, [sp, #0x74]
+ mov r0, sp
+ adds r0, #0x20
+ str r0, [sp, #0x7c]
+ movs r0, #0xb8
+ lsls r0, r0, #2
+ add r0, r8
+ mov r3, sl
+ mov r1, r8
+ adds r1, #0xb8
+ mov r2, sp
+ movs r4, #2
+ mov ip, r4
+_08051CEA:
+ stm r2!, {r1}
+ stm r3!, {r0}
+ adds r0, #0xb8
+ adds r1, #0xb8
+ movs r6, #1
+ rsbs r6, r6, #0
+ add ip, r6
+ mov r7, ip
+ cmp r7, #0
+ bge _08051CEA
+ movs r0, #0
+ mov ip, r0
+ movs r1, #8
+ add r1, r8
+ mov sb, r1
+ ldr r2, _08051D40 @ =0x0200B978
+ adds r2, #8
+ str r2, [sp, #0x70]
+ ldr r0, _08051D44 @ =0x0200BAE8
+ adds r4, r0, #0
+ adds r4, #0xb8
+ adds r5, r0, #0
+ movs r3, #0
+ ldr r1, [sp, #0x6c]
+ adds r2, r5, #0
+ subs r2, #0xb8
+_08051D1E:
+ ldr r0, _08051D48 @ =0x0200293A
+ add r0, ip
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _08051D50
+ ldr r6, _08051D3C @ =0x02002920
+ movs r7, #6
+ ldrsh r0, [r6, r7]
+ cmp r0, #1
+ bne _08051D50
+ ldr r0, _08051D4C @ =0x0200C7D8
+ str r0, [r1]
+ b _08051D52
+ .align 2, 0
+_08051D38: .4byte 0x0200B3B8
+_08051D3C: .4byte 0x02002920
+_08051D40: .4byte 0x0200B978
+_08051D44: .4byte 0x0200BAE8
+_08051D48: .4byte 0x0200293A
+_08051D4C: .4byte 0x0200C7D8
+_08051D50:
+ str r2, [r1]
+_08051D52:
+ ldr r6, [sp, #0x74]
+ adds r0, r6, r3
+ str r5, [r0]
+ ldr r7, [sp, #0x7c]
+ adds r0, r7, r3
+ str r4, [r0]
+ movs r0, #0x8a
+ lsls r0, r0, #2
+ adds r4, r4, r0
+ adds r5, r5, r0
+ adds r2, r2, r0
+ adds r3, #0xc
+ adds r1, #0xc
+ movs r6, #1
+ add ip, r6
+ mov r7, ip
+ cmp r7, #5
+ ble _08051D1E
+ ldr r0, _08051F64 @ =0x0200C890
+ str r0, [sp, #0x64]
+ movs r0, #1
+ mov r1, r8
+ strh r0, [r1]
+ movs r2, #1
+ mov r1, sp
+ movs r3, #2
+ mov ip, r3
+_08051D88:
+ ldm r1!, {r0}
+ strh r2, [r0]
+ movs r4, #1
+ rsbs r4, r4, #0
+ add ip, r4
+ mov r6, ip
+ cmp r6, #0
+ bge _08051D88
+ ldr r7, [sp, #0x64]
+ adds r7, #8
+ str r7, [sp, #0x78]
+ movs r2, #1
+ mov r1, sl
+ movs r0, #2
+ mov ip, r0
+_08051DA6:
+ ldm r1!, {r0}
+ strh r2, [r0]
+ movs r3, #1
+ rsbs r3, r3, #0
+ add ip, r3
+ mov r4, ip
+ cmp r4, #0
+ bge _08051DA6
+ movs r0, #1
+ ldr r6, [sp, #0x60]
+ strh r0, [r6]
+ ldr r7, _08051F68 @ =0x0200B978
+ strh r0, [r7]
+ movs r0, #0
+ mov ip, r0
+ ldr r6, [sp, #0x6c]
+ movs r3, #1
+ movs r2, #0
+_08051DCA:
+ adds r1, r2, r6
+ movs r5, #2
+_08051DCE:
+ ldm r1!, {r0}
+ strh r3, [r0]
+ subs r5, #1
+ cmp r5, #0
+ bge _08051DCE
+ adds r2, #0xc
+ movs r1, #1
+ add ip, r1
+ mov r4, ip
+ cmp r4, #5
+ ble _08051DCA
+ movs r0, #1
+ ldr r6, [sp, #0x64]
+ strh r0, [r6]
+ ldr r7, _08051F6C @ =0x0200C948
+ strh r0, [r7]
+ ldr r5, _08051F70 @ =0x02002920
+ adds r0, r5, #0
+ adds r0, #0x30
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r1, _08051F74 @ =0x0200CA00
+ strh r0, [r1]
+ ldr r0, _08051F78 @ =0x086BB9EC
+ movs r1, #0x20
+ ldr r2, _08051F7C @ =0x0200B3B8
+ bl sub_358
+ ldr r2, _08051F80 @ =0x086BB968
+ movs r3, #0xa
+ ldrsh r1, [r5, r3]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldrh r0, [r5, #2]
+ ldrh r1, [r1]
+ adds r0, r0, r1
+ mov r4, r8
+ strh r0, [r4, #2]
+ movs r6, #0xa
+ ldrsh r0, [r5, r6]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0, #2]
+ strh r0, [r4, #4]
+ mov r7, sb
+ ldr r4, _08051F84 @ =0x03005000
+ mov r0, r8
+ ldrh r2, [r0, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r3, #2
+ ldrsh r1, [r7, r3]
+ movs r6, #2
+ ldrsh r0, [r0, r6]
+ adds r1, r1, r0
+ ldr r3, _08051F88 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r6, _08051F8C @ =0xFFFFFE00
+ adds r0, r6, #0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ mov r0, r8
+ ldrh r1, [r0, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r1, #0
+ mov ip, r1
+ mov r8, r4
+ mov r5, sp
+ movs r2, #0x48
+ mov sb, r2
+_08051E6C:
+ ldr r0, [r5]
+ mov r3, sb
+ strh r3, [r0, #2]
+ ldr r1, [r5]
+ movs r0, #0x20
+ strh r0, [r1, #4]
+ ldr r4, [r5]
+ adds r7, r4, #0
+ adds r7, #8
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ add r2, r8
+ ldr r0, _08051F90 @ =0x02002932
+ add r0, ip
+ ldrb r1, [r0]
+ adds r1, #0x16
+ ldrh r3, [r2, #4]
+ ldr r0, _08051F94 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r3, [r4, #8]
+ lsls r3, r3, #3
+ add r3, r8
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ ldr r0, [r5]
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ adds r1, r1, r0
+ ldr r2, _08051F88 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ adds r0, r6, #0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ add r1, r8
+ ldm r5!, {r0}
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r3, #7
+ add sb, r3
+ movs r4, #1
+ add ip, r4
+ mov r7, ip
+ cmp r7, #2
+ ble _08051E6C
+ movs r0, #0
+ mov ip, r0
+ ldr r1, _08051F84 @ =0x03005000
+ mov r8, r1
+ movs r6, #0x48
+ mov r5, sl
+_08051EE2:
+ ldr r0, [r5]
+ strh r6, [r0, #2]
+ ldr r0, [r5]
+ movs r2, #0x2c
+ mov sb, r2
+ mov r3, sb
+ strh r3, [r0, #4]
+ ldr r4, [r5]
+ adds r7, r4, #0
+ adds r7, #8
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ add r2, r8
+ ldr r0, _08051F98 @ =0x02002935
+ add r0, ip
+ ldrb r1, [r0]
+ adds r1, #0x16
+ ldrh r3, [r2, #4]
+ ldr r0, _08051F94 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r3, [r4, #8]
+ lsls r3, r3, #3
+ add r3, r8
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ ldr r0, [r5]
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ adds r1, r1, r0
+ ldr r2, _08051F88 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08051F8C @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ add r1, r8
+ ldm r5!, {r0}
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r6, #7
+ movs r3, #1
+ add ip, r3
+ mov r4, ip
+ cmp r4, #2
+ ble _08051EE2
+ movs r0, #0x48
+ ldr r6, [sp, #0x60]
+ strh r0, [r6, #2]
+ ldr r7, _08051F70 @ =0x02002920
+ movs r1, #0xa
+ ldrsh r0, [r7, r1]
+ cmp r0, #0
+ bne _08051F9C
+ movs r0, #0x20
+ strh r0, [r6, #4]
+ b _08051FA6
+ .align 2, 0
+_08051F64: .4byte 0x0200C890
+_08051F68: .4byte 0x0200B978
+_08051F6C: .4byte 0x0200C948
+_08051F70: .4byte 0x02002920
+_08051F74: .4byte 0x0200CA00
+_08051F78: .4byte 0x086BB9EC
+_08051F7C: .4byte 0x0200B3B8
+_08051F80: .4byte 0x086BB968
+_08051F84: .4byte 0x03005000
+_08051F88: .4byte 0x000001FF
+_08051F8C: .4byte 0xFFFFFE00
+_08051F90: .4byte 0x02002932
+_08051F94: .4byte 0xFFFFFC00
+_08051F98: .4byte 0x02002935
+_08051F9C:
+ cmp r0, #1
+ bne _08051FA6
+ mov r3, sb
+ ldr r2, [sp, #0x60]
+ strh r3, [r2, #4]
+_08051FA6:
+ ldr r5, _080520D0 @ =0x03005000
+ ldr r7, _080520D4 @ =0xFFFFFE00
+ ldr r4, [sp, #0x60]
+ adds r4, #8
+ movs r6, #1
+ mov ip, r6
+_08051FB2:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ ldr r2, [sp, #0x60]
+ movs r6, #2
+ ldrsh r0, [r2, r6]
+ adds r1, r1, r0
+ ldr r0, _080520D8 @ =0x000001FF
+ adds r6, r0, #0
+ ands r1, r6
+ ldrh r2, [r3, #2]
+ adds r0, r7, #0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r2, [sp, #0x60]
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ movs r0, #1
+ rsbs r0, r0, #0
+ add ip, r0
+ mov r1, ip
+ cmp r1, #0
+ bge _08051FB2
+ movs r0, #0x48
+ ldr r2, _080520DC @ =0x0200B978
+ strh r0, [r2, #2]
+ ldr r3, _080520E0 @ =0x02002920
+ movs r4, #0xc
+ ldrsh r0, [r3, r4]
+ lsls r0, r0, #1
+ ldr r7, _080520E4 @ =0x086BB9A8
+ adds r0, r0, r7
+ ldrh r0, [r0]
+ strh r0, [r2, #4]
+ ldr r7, [sp, #0x70]
+ ldrh r2, [r2, #8]
+ lsls r2, r2, #3
+ ldr r0, _080520D0 @ =0x03005000
+ adds r2, r2, r0
+ movs r3, #2
+ ldrsh r1, [r7, r3]
+ adds r1, #0x48
+ ands r1, r6
+ ldrh r3, [r2, #2]
+ ldr r0, _080520D4 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r4, _080520DC @ =0x0200B978
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r6, _080520D0 @ =0x03005000
+ adds r1, r1, r6
+ ldrb r0, [r4, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r7, #0
+ mov ip, r7
+ ldr r0, _080520E0 @ =0x02002920
+ str r0, [sp, #0x68]
+ movs r1, #0x54
+ str r1, [sp, #0x80]
+ movs r2, #0
+ str r2, [sp, #0x84]
+ movs r3, #0
+ str r3, [sp, #0x88]
+ ldr r4, [sp, #0x6c]
+ mov r8, r4
+_0805204E:
+ ldr r0, [sp, #0x68]
+ adds r0, #0x1a
+ add r0, ip
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _080520E8
+ mov r6, r8
+ ldr r1, [r6]
+ movs r0, #0x9c
+ strh r0, [r1, #2]
+ ldr r0, [r6]
+ add r7, sp, #0x80
+ ldrh r7, [r7]
+ strh r7, [r0, #4]
+ movs r5, #0
+ ldr r1, [sp, #0x68]
+ movs r2, #6
+ ldrsh r0, [r1, r2]
+ adds r0, #1
+ cmp r5, r0
+ blt _0805207A
+ b _080522E2
+_0805207A:
+ ldr r3, [sp, #0x6c]
+ ldr r6, [sp, #0x84]
+ adds r4, r3, r6
+ ldr r7, _080520D0 @ =0x03005000
+ mov sb, r7
+ movs r6, #8
+ ldr r0, _080520D4 @ =0xFFFFFE00
+ mov sl, r0
+_0805208A:
+ ldr r0, [r4]
+ adds r7, r0, r6
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, sb
+ movs r3, #2
+ ldrsh r1, [r7, r3]
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ adds r1, r1, r0
+ ldr r3, _080520D8 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7]
+ lsls r1, r1, #3
+ add r1, sb
+ ldr r0, [r4]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r6, #8
+ adds r5, #1
+ ldr r7, [sp, #0x68]
+ movs r1, #6
+ ldrsh r0, [r7, r1]
+ adds r0, #1
+ cmp r5, r0
+ blt _0805208A
+ b _080522E2
+ .align 2, 0
+_080520D0: .4byte 0x03005000
+_080520D4: .4byte 0xFFFFFE00
+_080520D8: .4byte 0x000001FF
+_080520DC: .4byte 0x0200B978
+_080520E0: .4byte 0x02002920
+_080520E4: .4byte 0x086BB9A8
+_080520E8:
+ mov r2, r8
+ ldr r1, [r2]
+ movs r0, #0x9c
+ strh r0, [r1, #2]
+ ldr r0, [r2]
+ add r3, sp, #0x80
+ ldrh r3, [r3]
+ strh r3, [r0, #4]
+ ldr r4, [r2]
+ adds r7, r4, #0
+ adds r7, #8
+ ldr r6, [sp, #0x68]
+ movs r0, #0xc
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ ldr r1, [sp, #0x88]
+ adds r0, r1, r0
+ ldr r2, _08052490 @ =0x02031AF0
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ lsls r0, r0, #3
+ ldr r1, _08052498 @ =0x086BB910
+ adds r6, r0, r1
+ ldrh r0, [r6, #2]
+ ldr r1, _0805249C @ =0x000003FF
+ ands r1, r0
+ ldrh r3, [r2, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r2, [r6, #4]
+ lsls r2, r2, #6
+ ldrb r3, [r1, #1]
+ movs r0, #0x3f
+ mov sl, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, #1]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r1, _08052494 @ =0x03005000
+ adds r2, r2, r1
+ ldrb r1, [r6, #5]
+ lsls r1, r1, #6
+ ldrb r3, [r2, #3]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #3]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ mov r3, r8
+ ldr r0, [r3]
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ adds r1, r1, r0
+ ldr r0, _080524A4 @ =0x000001FF
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ mov r3, r8
+ ldr r0, [r3]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ ldr r4, [sp, #0x68]
+ movs r7, #0xc
+ ldrsh r1, [r4, r7]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r0, #1
+ ldr r1, [sp, #0x88]
+ adds r0, r1, r0
+ ldr r2, _08052490 @ =0x02031AF0
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ mov sb, r0
+ cmp r0, #0xa
+ bne _080521B8
+ b _080522E2
+_080521B8:
+ ldr r3, [sp, #0x74]
+ ldr r4, [sp, #0x84]
+ adds r5, r3, r4
+ ldr r1, [r5]
+ mov r7, r8
+ ldr r0, [r7]
+ ldrh r0, [r0, #2]
+ ldrb r6, [r6, #6]
+ adds r0, r0, r6
+ strh r0, [r1, #2]
+ ldr r1, [r5]
+ ldr r0, [r7]
+ ldrh r0, [r0, #4]
+ strh r0, [r1, #4]
+ ldr r4, [r5]
+ adds r7, r4, #0
+ adds r7, #8
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r2, r2, r0
+ ldrh r1, [r2, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r1
+ movs r1, #0x2a
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r2, [r1, #1]
+ mov r0, sl
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r1, r1, r3
+ ldrb r2, [r1, #3]
+ mov r0, sl
+ ands r0, r2
+ strb r0, [r1, #3]
+ ldrh r3, [r4, #8]
+ lsls r3, r3, #3
+ ldr r6, _08052494 @ =0x03005000
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ ldr r0, [r5]
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ adds r1, r1, r0
+ ldr r6, _080524A4 @ =0x000001FF
+ ands r1, r6
+ ldrh r2, [r3, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r1, r1, r0
+ ldr r0, [r5]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ ldr r1, [sp, #0x7c]
+ ldr r2, [sp, #0x84]
+ adds r6, r1, r2
+ ldr r1, [r6]
+ ldr r0, [r5]
+ ldrh r0, [r0, #2]
+ adds r0, #8
+ strh r0, [r1, #2]
+ ldr r1, [r6]
+ mov r3, r8
+ ldr r0, [r3]
+ ldrh r0, [r0, #4]
+ strh r0, [r1, #4]
+ ldr r5, [r6]
+ adds r7, r5, #0
+ adds r7, #8
+ ldrh r3, [r5, #8]
+ lsls r3, r3, #3
+ ldr r4, _08052494 @ =0x03005000
+ adds r3, r3, r4
+ mov r0, sb
+ lsls r4, r0, #3
+ ldr r1, _08052498 @ =0x086BB910
+ adds r4, r4, r1
+ ldrh r0, [r4, #2]
+ ldr r1, _0805249C @ =0x000003FF
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r2, [r5, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ ldrb r1, [r4, #4]
+ lsls r1, r1, #6
+ ldrb r3, [r2, #1]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r2, [r5, #8]
+ lsls r2, r2, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r2, r2, r0
+ ldrb r1, [r4, #5]
+ lsls r1, r1, #6
+ ldrb r3, [r2, #3]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #3]
+ ldrh r3, [r5, #8]
+ lsls r3, r3, #3
+ ldr r1, _08052494 @ =0x03005000
+ adds r3, r3, r1
+ movs r2, #2
+ ldrsh r1, [r7, r2]
+ ldr r0, [r6]
+ movs r4, #2
+ ldrsh r0, [r0, r4]
+ adds r1, r1, r0
+ ldr r0, _080524A4 @ =0x000001FF
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldr r0, [r6]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+_080522E2:
+ ldr r3, [sp, #0x80]
+ adds r3, #0xc
+ str r3, [sp, #0x80]
+ ldr r4, [sp, #0x84]
+ adds r4, #0xc
+ str r4, [sp, #0x84]
+ ldr r6, [sp, #0x88]
+ adds r6, #2
+ str r6, [sp, #0x88]
+ movs r7, #0xc
+ add r8, r7
+ movs r0, #1
+ add ip, r0
+ mov r1, ip
+ cmp r1, #4
+ bgt _08052304
+ b _0805204E
+_08052304:
+ movs r5, #8
+ movs r0, #0xaa
+ ldr r2, [sp, #0x64]
+ strh r0, [r2, #2]
+ ldr r0, _080524AC @ =0x02002920
+ adds r0, #0x2a
+ ldrb r0, [r0]
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #2
+ movs r0, #0x2c
+ subs r0, r0, r1
+ strh r0, [r2, #4]
+ ldr r7, [sp, #0x78]
+ ldrh r2, [r2, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ movs r4, #2
+ ldrsh r1, [r7, r4]
+ adds r1, #0xaa
+ ldr r6, _080524A4 @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r4, _080524A8 @ =0xFFFFFE00
+ adds r0, r4, #0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r0, [sp, #0x64]
+ ldrh r1, [r0, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r0, #0xc0
+ ldr r3, _080524B0 @ =0x0200C948
+ strh r0, [r3, #2]
+ strh r5, [r3, #4]
+ ldr r6, _080524AC @ =0x02002920
+ adds r6, #0x2d
+ mov sl, r6
+ adds r5, r3, #0
+ adds r5, #8
+ movs r6, #0x40
+ mov sb, r4
+ movs r7, #1
+ mov ip, r7
+_0805236C:
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r3, r3, r0
+ mov r2, sl
+ movs r1, #0
+ ldrsb r1, [r2, r1]
+ lsls r1, r1, #2
+ adds r1, r6, r1
+ ldr r7, _0805249C @ =0x000003FF
+ adds r4, r7, #0
+ ands r1, r4
+ ldrh r2, [r3, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r3, r3, r0
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ ldr r7, _080524B0 @ =0x0200C948
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r7, _080524A4 @ =0x000001FF
+ mov r8, r7
+ mov r0, r8
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldr r3, _080524B0 @ =0x0200C948
+ ldrb r0, [r3, #4]
+ ldrb r7, [r5, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r5, #8
+ adds r6, #0x80
+ movs r0, #1
+ rsbs r0, r0, #0
+ add ip, r0
+ mov r1, ip
+ cmp r1, #0
+ bge _0805236C
+ ldr r2, _080524B4 @ =0x0200CA00
+ ldrh r0, [r2]
+ cmp r0, #1
+ bne _08052454
+ movs r0, #0xb0
+ strh r0, [r2, #2]
+ movs r0, #8
+ strh r0, [r2, #4]
+ adds r7, r2, #0
+ adds r7, #8
+ ldrh r2, [r2, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ ldr r5, _080524AC @ =0x02002920
+ adds r5, #0x2f
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #6
+ adds r1, #0x54
+ ands r1, r4
+ ldrh r3, [r2, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldr r4, _080524B4 @ =0x0200CA00
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r6, _08052494 @ =0x03005000
+ adds r2, r2, r6
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ movs r3, #2
+ ldrsh r0, [r4, r3]
+ adds r1, r1, r0
+ mov r4, r8
+ ands r1, r4
+ ldrh r3, [r2, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r6, _080524B4 @ =0x0200CA00
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r1, r1, r0
+ ldrb r0, [r6, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ ldr r0, _080524B8 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #0x12
+ bl __umodsi3
+ cmp r0, #0
+ bne _08052454
+ ldrb r1, [r5]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r5]
+_08052454:
+ movs r0, #0
+ ldr r1, [sp, #0x60]
+ strh r0, [r1]
+ mov ip, r0
+ ldr r4, [sp, #0x6c]
+ movs r3, #0
+_08052460:
+ mov r2, ip
+ adds r2, #1
+ mov r6, ip
+ lsls r0, r6, #1
+ add r0, ip
+ lsls r0, r0, #2
+ adds r1, r0, r4
+ movs r5, #2
+_08052470:
+ ldm r1!, {r0}
+ strh r3, [r0]
+ subs r5, #1
+ cmp r5, #0
+ bge _08052470
+ mov ip, r2
+ cmp r2, #5
+ ble _08052460
+ add sp, #0x8c
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052490: .4byte 0x02031AF0
+_08052494: .4byte 0x03005000
+_08052498: .4byte 0x086BB910
+_0805249C: .4byte 0x000003FF
+_080524A0: .4byte 0xFFFFFC00
+_080524A4: .4byte 0x000001FF
+_080524A8: .4byte 0xFFFFFE00
+_080524AC: .4byte 0x02002920
+_080524B0: .4byte 0x0200C948
+_080524B4: .4byte 0x0200CA00
+_080524B8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_524BC
+sub_524BC: @ 0x080524BC
+ push {r4, r5, lr}
+ ldr r1, _0805251C @ =0x02002920
+ movs r2, #0x28
+ ldrsh r0, [r1, r2]
+ adds r2, r1, #0
+ cmp r0, #1
+ bgt _08052514
+ ldr r0, _08052520 @ =0x0200B0C0
+ ldrh r0, [r0, #0x1c]
+ ldr r4, _08052524 @ =0x000003F7
+ ands r4, r0
+ cmp r4, #0
+ beq _08052514
+ movs r3, #0
+_080524D8:
+ movs r1, #1
+ lsls r1, r3
+ ands r1, r4
+ cmp r1, #0
+ beq _0805250E
+ movs r5, #0x22
+ ldrsh r0, [r2, r5]
+ ands r0, r1
+ cmp r0, #0
+ bne _0805250E
+ ldrh r0, [r2, #0x22]
+ orrs r1, r0
+ strh r1, [r2, #0x22]
+ movs r1, #0x28
+ ldrsh r0, [r2, r1]
+ lsls r0, r0, #1
+ adds r1, r2, #0
+ adds r1, #0x24
+ adds r0, r0, r1
+ strh r3, [r0]
+ ldrh r0, [r2, #0x28]
+ adds r0, #1
+ strh r0, [r2, #0x28]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ beq _08052514
+_0805250E:
+ adds r3, #1
+ cmp r3, #9
+ ble _080524D8
+_08052514:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805251C: .4byte 0x02002920
+_08052520: .4byte 0x0200B0C0
+_08052524: .4byte 0x000003F7
+
+ thumb_func_start sub_52528
+sub_52528: @ 0x08052528
+ push {r4, r5, r6, r7, lr}
+ movs r0, #0
+ ldr r1, _0805255C @ =0x0200B204
+ mov ip, r1
+ ldr r6, _08052560 @ =0x02031B18
+_08052532:
+ movs r2, #0
+ lsls r4, r0, #2
+ lsls r3, r0, #1
+ adds r5, r0, #1
+_0805253A:
+ lsls r0, r2, #1
+ adds r0, r0, r4
+ add r0, ip
+ movs r7, #0
+ ldrsh r1, [r0, r7]
+ cmp r1, #0x10
+ beq _0805259A
+ cmp r1, #0x10
+ bgt _0805256A
+ cmp r1, #2
+ beq _08052592
+ cmp r1, #2
+ bgt _08052564
+ cmp r1, #1
+ beq _0805258E
+ b _080525B2
+ .align 2, 0
+_0805255C: .4byte 0x0200B204
+_08052560: .4byte 0x02031B18
+_08052564:
+ cmp r1, #4
+ beq _08052596
+ b _080525B2
+_0805256A:
+ cmp r1, #0x80
+ beq _080525A6
+ cmp r1, #0x80
+ bgt _0805257C
+ cmp r1, #0x20
+ beq _0805259E
+ cmp r1, #0x40
+ beq _080525A2
+ b _080525B2
+_0805257C:
+ movs r0, #0x80
+ lsls r0, r0, #1
+ cmp r1, r0
+ beq _080525AA
+ movs r0, #0x80
+ lsls r0, r0, #2
+ cmp r1, r0
+ beq _080525AE
+ b _080525B2
+_0805258E:
+ movs r1, #0
+ b _080525B4
+_08052592:
+ movs r1, #1
+ b _080525B4
+_08052596:
+ movs r1, #2
+ b _080525B4
+_0805259A:
+ movs r1, #4
+ b _080525B4
+_0805259E:
+ movs r1, #5
+ b _080525B4
+_080525A2:
+ movs r1, #6
+ b _080525B4
+_080525A6:
+ movs r1, #7
+ b _080525B4
+_080525AA:
+ movs r1, #8
+ b _080525B4
+_080525AE:
+ movs r1, #9
+ b _080525B4
+_080525B2:
+ movs r1, #0xa
+_080525B4:
+ adds r0, r3, r2
+ adds r0, r0, r6
+ strb r1, [r0]
+ adds r2, #1
+ cmp r2, #1
+ ble _0805253A
+ adds r0, r5, #0
+ cmp r0, #4
+ ble _08052532
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_525CC
+sub_525CC: @ 0x080525CC
+ push {r4, r5, r6, lr}
+ lsls r0, r0, #0x18
+ movs r1, #0x80
+ lsls r1, r1, #0x11
+ adds r0, r0, r1
+ asrs r0, r0, #0x18
+ cmp r0, #5
+ bls _080525DE
+ b _080528A2
+_080525DE:
+ lsls r0, r0, #2
+ ldr r1, _080525E8 @ =_080525EC
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080525E8: .4byte _080525EC
+_080525EC: @ jump table
+ .4byte _08052604 @ case 0
+ .4byte _080526CC @ case 1
+ .4byte _08052720 @ case 2
+ .4byte _08052770 @ case 3
+ .4byte _080527C0 @ case 4
+ .4byte _08052814 @ case 5
+_08052604:
+ ldr r0, _080526BC @ =0x0200B0C0
+ mov ip, r0
+ ldr r6, _080526C0 @ =0x086BB910
+ ldrh r5, [r6, #0x28]
+ adds r0, #0x60
+ strh r5, [r0]
+ adds r0, r6, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ mov r0, ip
+ adds r0, #0x62
+ strh r2, [r0]
+ ldrh r4, [r6]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r6, #0
+ adds r0, #0x48
+ ldrh r3, [r0]
+ mov r0, ip
+ adds r0, #0x68
+ strh r3, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r6, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ mov r0, ip
+ adds r0, #0x6c
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ strh r1, [r0]
+ ldrh r1, [r6, #8]
+ movs r0, #0xa2
+ lsls r0, r0, #1
+ add r0, ip
+ strh r1, [r0]
+ movs r0, #0xa3
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ movs r0, #0xa4
+ lsls r0, r0, #1
+ add r0, ip
+ strh r4, [r0]
+ movs r0, #0xa5
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ movs r0, #0xa6
+ lsls r0, r0, #1
+ add r0, ip
+ strh r5, [r0]
+ movs r0, #0xa7
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ ldrh r1, [r6, #0x20]
+ movs r0, #0xa8
+ lsls r0, r0, #1
+ add r0, ip
+ strh r1, [r0]
+ movs r0, #0xa9
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ ldrh r1, [r6, #0x30]
+ movs r0, #0xaa
+ lsls r0, r0, #1
+ add r0, ip
+ strh r1, [r0]
+ movs r0, #0xab
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ movs r2, #0
+ ldr r4, _080526C4 @ =0x02031B18
+ ldr r3, _080526C8 @ =0x08527EFE
+_080526AA:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, #1
+ cmp r2, #9
+ ble _080526AA
+ b _080528A2
+ .align 2, 0
+_080526BC: .4byte 0x0200B0C0
+_080526C0: .4byte 0x086BB910
+_080526C4: .4byte 0x02031B18
+_080526C8: .4byte 0x08527EFE
+_080526CC:
+ ldr r4, _08052718 @ =0x0200B0C0
+ ldr r5, _0805271C @ =0x086BB910
+ ldrh r1, [r5, #0x28]
+ adds r0, r4, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r5, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ ldrh r1, [r5]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r5, #0
+ adds r0, #0x48
+ ldrh r3, [r0]
+ adds r0, r4, #0
+ adds r0, #0x68
+ strh r3, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r5, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x6c
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ b _080528A0
+ .align 2, 0
+_08052718: .4byte 0x0200B0C0
+_0805271C: .4byte 0x086BB910
+_08052720:
+ ldr r3, _08052768 @ =0x0200B0C0
+ ldr r4, _0805276C @ =0x086BB910
+ ldrh r1, [r4, #0x28]
+ adds r0, r3, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r3, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ ldrh r1, [r4]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x48
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x68
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x6c
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #8]
+ b _08052802
+ .align 2, 0
+_08052768: .4byte 0x0200B0C0
+_0805276C: .4byte 0x086BB910
+_08052770:
+ ldr r4, _080527B8 @ =0x0200B0C0
+ ldr r5, _080527BC @ =0x086BB910
+ adds r0, r5, #0
+ adds r0, #0x48
+ ldrh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r5, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ adds r0, r5, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x64
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r3, [r5, #0x28]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r5]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ b _080528A0
+ .align 2, 0
+_080527B8: .4byte 0x0200B0C0
+_080527BC: .4byte 0x086BB910
+_080527C0:
+ ldr r3, _0805280C @ =0x0200B0C0
+ ldr r4, _08052810 @ =0x086BB910
+ adds r0, r4, #0
+ adds r0, #0x48
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r3, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x64
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #0x28]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #0x20]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #0x30]
+_08052802:
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ b _080528A2
+ .align 2, 0
+_0805280C: .4byte 0x0200B0C0
+_08052810: .4byte 0x086BB910
+_08052814:
+ ldr r2, _080528A8 @ =0x0200B0C0
+ movs r1, #0xa2
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ movs r1, #0xa3
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x62
+ strh r0, [r1]
+ movs r1, #0xa4
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x64
+ strh r1, [r0]
+ movs r1, #0xa5
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x66
+ strh r0, [r1]
+ movs r1, #0xa6
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x68
+ strh r1, [r0]
+ movs r1, #0xa7
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x6a
+ strh r0, [r1]
+ movs r1, #0xa8
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x6c
+ strh r1, [r0]
+ movs r1, #0xa9
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x6e
+ strh r0, [r1]
+ movs r1, #0xaa
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x70
+ strh r1, [r0]
+ movs r1, #0xab
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x72
+_080528A0:
+ strh r1, [r0]
+_080528A2:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080528A8: .4byte 0x0200B0C0
diff --git a/asm/pokedex.s b/asm/pokedex.s
new file mode 100755
index 0000000..c207762
--- /dev/null
+++ b/asm/pokedex.s
@@ -0,0 +1,9472 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start PokedexMain
+PokedexMain: @ 0x08003DAC
+ push {lr}
+ ldr r1, _08003DC4 @ =0x0805C880
+ ldr r0, _08003DC8 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003DC4: .4byte 0x0805C880
+_08003DC8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_3DCC
+sub_3DCC: @ 0x08003DCC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x86
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _08003F30 @ =0x0400000A
+ movs r0, #5
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #2
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08003F34 @ =0x0400000C
+ subs r3, #0xf2
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08003F38 @ =0x0400000E
+ ldr r3, _08003F3C @ =0x0000020F
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r7, _08003F40 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r7, #0x16]
+ ldr r4, _08003F44 @ =0x040000D4
+ ldr r0, _08003F48 @ =0x08082720
+ str r0, [r4]
+ ldr r0, _08003F4C @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08003F50 @ =0x80002200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F54 @ =0x08087B40
+ str r0, [r4]
+ ldr r0, _08003F58 @ =0x0600C000
+ str r0, [r4, #4]
+ ldr r0, _08003F5C @ =0x80000A00
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F60 @ =0x08089760
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08003F64 @ =0x80000100
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F68 @ =0x08081F20
+ str r0, [r4]
+ ldr r0, _08003F6C @ =0x03005C00
+ mov sl, r0
+ str r0, [r4, #4]
+ ldr r2, _08003F70 @ =0x80000400
+ mov r8, r2
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F74 @ =0x08087340
+ str r0, [r4]
+ ldr r3, _08003F78 @ =0x02019C40
+ mov sb, r3
+ str r3, [r4, #4]
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F7C @ =0x08088F60
+ str r0, [r4]
+ ldr r0, _08003F80 @ =0x06001000
+ str r0, [r4, #4]
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F84 @ =0x08089960
+ str r0, [r4]
+ ldr r0, _08003F88 @ =0x05000200
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F8C @ =0x08089B60
+ str r0, [r4]
+ ldr r0, _08003F90 @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _08003F94 @ =0x80003610
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_3FAC
+ ldr r0, _08003F98 @ =0x0202BEB8
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ ldr r1, _08003F9C @ =0x0201A514
+ movs r2, #0
+ ldrsh r1, [r1, r2]
+ bl sub_6BEC
+ ldr r6, _08003FA0 @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ bl sub_681C
+ ldr r5, _08003FA4 @ =0x0202C5B0
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ bl sub_6CA0
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ bl sub_6F30
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ bl sub_6F78
+ movs r1, #0
+ ldrsh r0, [r6, r1]
+ bl sub_8974
+ movs r2, #0
+ ldrsh r0, [r6, r2]
+ bl sub_8A78
+ movs r1, #0x9a
+ lsls r1, r1, #2
+ add r1, sb
+ movs r0, #0x59
+ strh r0, [r1]
+ mov r3, sl
+ str r3, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ mov r0, r8
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r1, sb
+ str r1, [r4]
+ ldr r0, _08003FA8 @ =0x06000800
+ str r0, [r4, #4]
+ mov r2, r8
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_51FC
+ bl sub_CBC
+ bl sub_24C
+ movs r0, #1
+ strb r0, [r7, #3]
+ movs r0, #0x2e
+ bl m4aSongNumStart
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003F30: .4byte 0x0400000A
+_08003F34: .4byte 0x0400000C
+_08003F38: .4byte 0x0400000E
+_08003F3C: .4byte 0x0000020F
+_08003F40: .4byte 0x0200B0C0
+_08003F44: .4byte 0x040000D4
+_08003F48: .4byte 0x08082720
+_08003F4C: .4byte 0x06004000
+_08003F50: .4byte 0x80002200
+_08003F54: .4byte 0x08087B40
+_08003F58: .4byte 0x0600C000
+_08003F5C: .4byte 0x80000A00
+_08003F60: .4byte 0x08089760
+_08003F64: .4byte 0x80000100
+_08003F68: .4byte 0x08081F20
+_08003F6C: .4byte 0x03005C00
+_08003F70: .4byte 0x80000400
+_08003F74: .4byte 0x08087340
+_08003F78: .4byte 0x02019C40
+_08003F7C: .4byte 0x08088F60
+_08003F80: .4byte 0x06001000
+_08003F84: .4byte 0x08089960
+_08003F88: .4byte 0x05000200
+_08003F8C: .4byte 0x08089B60
+_08003F90: .4byte 0x06010000
+_08003F94: .4byte 0x80003610
+_08003F98: .4byte 0x0202BEB8
+_08003F9C: .4byte 0x0201A514
+_08003FA0: .4byte 0x0202ADE0
+_08003FA4: .4byte 0x0202C5B0
+_08003FA8: .4byte 0x06000800
+
+ thumb_func_start sub_3FAC
+sub_3FAC: @ 0x08003FAC
+ push {r4, r5, lr}
+ ldr r0, _0800401C @ =0x0202ADE0
+ movs r4, #0
+ strh r4, [r0]
+ ldr r0, _08004020 @ =0x0202C5B0
+ strh r4, [r0]
+ ldr r0, _08004024 @ =0x0201A448
+ strh r4, [r0]
+ ldr r0, _08004028 @ =0x0202BF00
+ strh r4, [r0]
+ ldr r0, _0800402C @ =0x0202A57C
+ strh r4, [r0]
+ ldr r0, _08004030 @ =0x0201A4F0
+ strh r4, [r0]
+ ldr r0, _08004034 @ =0x0202BE20
+ strh r4, [r0]
+ ldr r0, _08004038 @ =0x0202C58C
+ strh r4, [r0]
+ ldr r0, _0800403C @ =0x02019C24
+ strb r4, [r0]
+ ldr r0, _08004040 @ =0x0202BF0C
+ strh r4, [r0]
+ ldr r0, _08004044 @ =0x0201A440
+ strh r4, [r0]
+ ldr r0, _08004048 @ =0x0202C5E8
+ strh r4, [r0]
+ ldr r0, _0800404C @ =0x0202BEF4
+ strh r4, [r0]
+ ldr r0, _08004050 @ =0x0202A588
+ movs r5, #1
+ strh r5, [r0]
+ ldr r0, _08004054 @ =0x0202A55C
+ strh r5, [r0]
+ ldr r0, _08004058 @ =0x0202A568
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ ldr r0, _0800405C @ =0x0202BF14
+ strh r1, [r0]
+ ldr r0, _08004060 @ =0x0202A558
+ strh r1, [r0]
+ ldr r0, _08004064 @ =0x0202BEE0
+ strb r4, [r0]
+ ldr r0, _08004068 @ =0x0202BF04
+ strb r5, [r0]
+ bl sub_88E4
+ bl sub_FD20
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #1
+ bne _08004070
+ ldr r0, _0800406C @ =0x0202C590
+ strb r5, [r0]
+ b _08004074
+ .align 2, 0
+_0800401C: .4byte 0x0202ADE0
+_08004020: .4byte 0x0202C5B0
+_08004024: .4byte 0x0201A448
+_08004028: .4byte 0x0202BF00
+_0800402C: .4byte 0x0202A57C
+_08004030: .4byte 0x0201A4F0
+_08004034: .4byte 0x0202BE20
+_08004038: .4byte 0x0202C58C
+_0800403C: .4byte 0x02019C24
+_08004040: .4byte 0x0202BF0C
+_08004044: .4byte 0x0201A440
+_08004048: .4byte 0x0202C5E8
+_0800404C: .4byte 0x0202BEF4
+_08004050: .4byte 0x0202A588
+_08004054: .4byte 0x0202A55C
+_08004058: .4byte 0x0202A568
+_0800405C: .4byte 0x0202BF14
+_08004060: .4byte 0x0202A558
+_08004064: .4byte 0x0202BEE0
+_08004068: .4byte 0x0202BF04
+_0800406C: .4byte 0x0202C590
+_08004070:
+ ldr r0, _080040C8 @ =0x0202C590
+ strb r4, [r0]
+_08004074:
+ ldr r0, _080040CC @ =0x0202BEC4
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _080040D0 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r0, _080040D4 @ =0x0201B120
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080040D8 @ =0x02002830
+ strb r1, [r0]
+ ldr r0, _080040DC @ =0x02002831
+ strb r1, [r0]
+ ldr r0, _080040E0 @ =0x0202C794
+ strb r1, [r0]
+ ldr r0, _080040E4 @ =0x0201C1B4
+ strb r1, [r0]
+ ldr r0, _080040E8 @ =0x0202C5AC
+ strb r1, [r0]
+ ldr r0, _080040EC @ =0x02019C28
+ strb r1, [r0]
+ ldr r5, _080040F0 @ =0x0202A1C0
+ ldr r4, _080040F4 @ =0x0202A574
+ adds r3, r5, #0
+ ldr r2, _080040F8 @ =0x0202A390
+ movs r1, #0xe0
+_080040A6:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, #2
+ adds r2, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _080040A6
+ adds r1, r5, #0
+ movs r2, #0xcc
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ beq _080040FC
+ movs r0, #0xcd
+ b _08004146
+ .align 2, 0
+_080040C8: .4byte 0x0202C590
+_080040CC: .4byte 0x0202BEC4
+_080040D0: .4byte 0x0202BEFC
+_080040D4: .4byte 0x0201B120
+_080040D8: .4byte 0x02002830
+_080040DC: .4byte 0x02002831
+_080040E0: .4byte 0x0202C794
+_080040E4: .4byte 0x0201C1B4
+_080040E8: .4byte 0x0202C5AC
+_080040EC: .4byte 0x02019C28
+_080040F0: .4byte 0x0202A1C0
+_080040F4: .4byte 0x0202A574
+_080040F8: .4byte 0x0202A390
+_080040FC:
+ movs r2, #0xcb
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ beq _0800410E
+ movs r0, #0xcc
+ b _08004146
+_0800410E:
+ movs r2, #0xca
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ beq _08004120
+ movs r0, #0xcb
+ b _08004146
+_08004120:
+ movs r2, #0xc9
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ beq _08004132
+ movs r0, #0xca
+ b _08004146
+_08004132:
+ movs r2, #0xc8
+ lsls r2, r2, #1
+ adds r0, r5, r2
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ beq _08004144
+ movs r0, #0xc9
+ b _08004146
+_08004144:
+ movs r0, #0xc8
+_08004146:
+ strh r0, [r4]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_4150
+sub_4150: @ 0x08004150
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _08004174 @ =0x0200B0C0
+ ldrh r2, [r4, #0x1c]
+ movs r0, #4
+ ands r0, r2
+ cmp r0, #0
+ beq _08004230
+ ldr r1, _08004178 @ =0x0202BF04
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #0x40
+ ands r0, r2
+ cmp r0, #0
+ beq _0800417C
+ bl sub_4D74
+ b _080041A8
+ .align 2, 0
+_08004174: .4byte 0x0200B0C0
+_08004178: .4byte 0x0202BF04
+_0800417C:
+ movs r0, #0x80
+ ands r0, r2
+ cmp r0, #0
+ beq _0800418A
+ bl sub_4E34
+ b _080041A8
+_0800418A:
+ movs r0, #0x20
+ ands r0, r2
+ cmp r0, #0
+ beq _08004198
+ bl sub_4EF0
+ b _080041A8
+_08004198:
+ movs r0, #0x10
+ ands r0, r2
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, #0
+ beq _080041B6
+ bl sub_4F50
+_080041A8:
+ bl sub_5064
+ bl sub_51CC
+ movs r0, #2
+ strb r0, [r4, #3]
+ b _080041BE
+_080041B6:
+ ldr r0, _08004200 @ =0x02019C24
+ strb r1, [r0]
+ bl sub_5064
+_080041BE:
+ ldr r3, _08004204 @ =0x0200B0C0
+ ldrh r1, [r3, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _080041CC
+ b _08004388
+_080041CC:
+ ldr r0, _08004208 @ =0x0202C5E8
+ movs r2, #0
+ strh r2, [r0]
+ ldr r1, _0800420C @ =0x0202A1C0
+ ldr r0, _08004210 @ =0x0202ADE0
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #1
+ ble _08004228
+ ldr r0, _08004214 @ =0x0202BF04
+ strb r2, [r0]
+ ldr r1, _08004218 @ =0x040000D4
+ ldr r0, _0800421C @ =0x06000280
+ str r0, [r1]
+ ldr r0, _08004220 @ =0x0202A590
+ str r0, [r1, #4]
+ ldr r0, _08004224 @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r0, #3
+ strb r0, [r3, #3]
+ b _08004388
+ .align 2, 0
+_08004200: .4byte 0x02019C24
+_08004204: .4byte 0x0200B0C0
+_08004208: .4byte 0x0202C5E8
+_0800420C: .4byte 0x0202A1C0
+_08004210: .4byte 0x0202ADE0
+_08004214: .4byte 0x0202BF04
+_08004218: .4byte 0x040000D4
+_0800421C: .4byte 0x06000280
+_08004220: .4byte 0x0202A590
+_08004224: .4byte 0x80000100
+_08004228:
+ movs r0, #0x8a
+ bl m4aSongNumStart
+ b _08004388
+_08004230:
+ ldr r1, _08004248 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #0x40
+ ands r0, r2
+ cmp r0, #0
+ beq _0800424C
+ bl sub_4D74
+ bl sub_5174
+ b _0800428A
+ .align 2, 0
+_08004248: .4byte 0x0202BF04
+_0800424C:
+ movs r0, #0x80
+ ands r0, r2
+ cmp r0, #0
+ beq _0800425E
+ bl sub_4E34
+ bl sub_5174
+ b _0800428A
+_0800425E:
+ movs r0, #0x20
+ ands r0, r2
+ cmp r0, #0
+ beq _08004270
+ bl sub_4EF0
+ bl sub_5174
+ b _0800428A
+_08004270:
+ movs r0, #0x10
+ ands r0, r2
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, #0
+ beq _08004286
+ bl sub_4F50
+ bl sub_5174
+ b _0800428A
+_08004286:
+ ldr r0, _080042A4 @ =0x02019C24
+ strb r1, [r0]
+_0800428A:
+ ldr r0, _080042A8 @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ bl sub_8A78
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ cmp r1, #1
+ bne _080042B0
+ ldr r0, _080042AC @ =0x0202A588
+ strh r1, [r0]
+ b _080042B6
+ .align 2, 0
+_080042A4: .4byte 0x02019C24
+_080042A8: .4byte 0x0202ADE0
+_080042AC: .4byte 0x0202A588
+_080042B0:
+ ldr r1, _0800430C @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+_080042B6:
+ ldr r0, _08004310 @ =0x0202A55C
+ movs r7, #1
+ strh r7, [r0]
+ ldr r0, _08004314 @ =0x0202A568
+ movs r6, #0
+ movs r2, #0
+ strh r2, [r0]
+ strh r2, [r0, #2]
+ ldr r0, _08004318 @ =0x0201A440
+ strh r2, [r0]
+ ldr r0, _0800431C @ =0x0202BF0C
+ strh r2, [r0]
+ ldr r5, _08004320 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800434C
+ ldr r0, _08004324 @ =0x0202C5E8
+ strh r2, [r0]
+ ldr r1, _08004328 @ =0x0202A1C0
+ ldr r0, _0800432C @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ cmp r0, #1
+ ble _08004344
+ ldr r0, _08004330 @ =0x0202BF04
+ strb r6, [r0]
+ ldr r1, _08004334 @ =0x040000D4
+ ldr r0, _08004338 @ =0x06000280
+ str r0, [r1]
+ ldr r0, _0800433C @ =0x0202A590
+ str r0, [r1, #4]
+ ldr r0, _08004340 @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r0, #3
+ b _08004382
+ .align 2, 0
+_0800430C: .4byte 0x0202A588
+_08004310: .4byte 0x0202A55C
+_08004314: .4byte 0x0202A568
+_08004318: .4byte 0x0201A440
+_0800431C: .4byte 0x0202BF0C
+_08004320: .4byte 0x0200B0C0
+_08004324: .4byte 0x0202C5E8
+_08004328: .4byte 0x0202A1C0
+_0800432C: .4byte 0x0202ADE0
+_08004330: .4byte 0x0202BF04
+_08004334: .4byte 0x040000D4
+_08004338: .4byte 0x06000280
+_0800433C: .4byte 0x0202A590
+_08004340: .4byte 0x80000100
+_08004344:
+ movs r0, #0x8a
+ bl m4aSongNumStart
+ b _08004384
+_0800434C:
+ movs r0, #2
+ ands r0, r1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ cmp r4, #0
+ beq _08004362
+ movs r0, #0x66
+ bl m4aSongNumStart
+ movs r0, #0xc
+ b _08004382
+_08004362:
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08004384
+ movs r0, #0x68
+ bl m4aSongNumStart
+ ldr r0, _080043B4 @ =0x0202BEC4
+ strb r7, [r0]
+ ldr r0, _080043B8 @ =0x0202BEFC
+ strb r6, [r0]
+ ldr r0, _080043BC @ =0x0202BF04
+ strb r6, [r0]
+ ldr r0, _080043C0 @ =0x0202A588
+ strh r4, [r0]
+ movs r0, #6
+_08004382:
+ strb r0, [r5, #3]
+_08004384:
+ bl sub_4FC8
+_08004388:
+ ldr r1, _080043C4 @ =0x0202C58C
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _08004398
+ subs r0, r2, #1
+ strh r0, [r1]
+_08004398:
+ bl sub_51FC
+ ldr r1, _080043C8 @ =0x040000D4
+ ldr r0, _080043CC @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _080043D0 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080043B4: .4byte 0x0202BEC4
+_080043B8: .4byte 0x0202BEFC
+_080043BC: .4byte 0x0202BF04
+_080043C0: .4byte 0x0202A588
+_080043C4: .4byte 0x0202C58C
+_080043C8: .4byte 0x040000D4
+_080043CC: .4byte 0x03005C00
+_080043D0: .4byte 0x80000400
+
+ thumb_func_start sub_43D4
+sub_43D4: @ 0x080043D4
+ push {lr}
+ bl sub_5174
+ ldr r0, _08004410 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r1, _08004414 @ =0x0202C58C
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _080043F0
+ subs r0, r2, #1
+ strh r0, [r1]
+_080043F0:
+ bl sub_51FC
+ ldr r1, _08004418 @ =0x040000D4
+ ldr r0, _0800441C @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08004420 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r1, _08004424 @ =0x0200B0C0
+ movs r0, #1
+ strb r0, [r1, #3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004410: .4byte 0x0202A588
+_08004414: .4byte 0x0202C58C
+_08004418: .4byte 0x040000D4
+_0800441C: .4byte 0x03005C00
+_08004420: .4byte 0x80000400
+_08004424: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4428
+sub_4428: @ 0x08004428
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ movs r3, #0
+ ldr r7, _08004548 @ =0x0202A558
+ ldr r0, _0800454C @ =0x02019C40
+ mov ip, r0
+ ldr r1, _08004550 @ =0x0805C780
+ mov sl, r1
+ ldr r6, _08004554 @ =0x0805C7C0
+ mov sb, r6
+ ldr r0, _08004558 @ =0x03005C00
+ mov r8, r0
+ adds r5, r7, #0
+ ldr r4, _0800455C @ =0x0805C840
+_0800444A:
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ adds r0, #0xa
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ add r0, r8
+ lsls r2, r3, #1
+ ldrh r1, [r4]
+ strh r1, [r0]
+ movs r6, #0
+ ldrsh r0, [r5, r6]
+ adds r0, #9
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ ldr r1, _0800454C @ =0x02019C40
+ adds r0, r0, r1
+ mov r6, sl
+ adds r1, r2, r6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ adds r0, #0xa
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ ldr r6, _0800454C @ =0x02019C40
+ adds r0, r0, r6
+ add r2, sb
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1f
+ ble _0800444A
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ movs r1, #0x9a
+ lsls r1, r1, #2
+ add r1, ip
+ movs r4, #0
+ movs r3, #0
+ movs r0, #0x59
+ strh r0, [r1]
+ ldr r2, _08004560 @ =0x040000D4
+ ldr r0, _08004558 @ =0x03005C00
+ str r0, [r2]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r2, #4]
+ ldr r1, _08004564 @ =0x80000400
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r6, ip
+ str r6, [r2]
+ ldr r0, _08004568 @ =0x06000800
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldrsh r0, [r7, r1]
+ cmp r0, #7
+ ble _08004538
+ strh r3, [r7]
+ ldr r0, _0800456C @ =0x0202C5E8
+ strh r3, [r0]
+ ldr r0, _08004570 @ =0x0202BEF4
+ strh r3, [r0]
+ ldr r0, _08004574 @ =0x02019C28
+ strb r4, [r0]
+ ldr r0, _08004578 @ =0x0202C5AC
+ strb r4, [r0]
+ ldr r4, _0800457C @ =0x0202ADE0
+ movs r6, #0
+ ldrsh r0, [r4, r6]
+ cmp r0, #0xc8
+ bgt _080044F0
+ ldr r1, _08004580 @ =0x0201C1B4
+ movs r0, #1
+ strb r0, [r1]
+_080044F0:
+ ldr r0, _08004584 @ =0x08086B40
+ str r0, [r2]
+ ldr r0, _08004588 @ =0x06000280
+ str r0, [r2, #4]
+ ldr r0, _0800458C @ =0x800000E0
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ ldr r1, _08004590 @ =0x0202C794
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ bl sub_70E0
+ ldr r0, _08004594 @ =0x02032EE0
+ ldr r1, _08004598 @ =0x0000FFFF
+ movs r2, #0x40
+ bl m4aMPlayVolumeControl
+ ldr r2, _0800459C @ =0x086A3700
+ movs r6, #0
+ ldrsh r1, [r4, r6]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ movs r1, #0
+ movs r2, #0x7f
+ movs r3, #0xa
+ bl sub_5291C
+ ldr r1, _080045A0 @ =0x0200B0C0
+ movs r0, #5
+ strb r0, [r1, #3]
+_08004538:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004548: .4byte 0x0202A558
+_0800454C: .4byte 0x02019C40
+_08004550: .4byte 0x0805C780
+_08004554: .4byte 0x0805C7C0
+_08004558: .4byte 0x03005C00
+_0800455C: .4byte 0x0805C840
+_08004560: .4byte 0x040000D4
+_08004564: .4byte 0x80000400
+_08004568: .4byte 0x06000800
+_0800456C: .4byte 0x0202C5E8
+_08004570: .4byte 0x0202BEF4
+_08004574: .4byte 0x02019C28
+_08004578: .4byte 0x0202C5AC
+_0800457C: .4byte 0x0202ADE0
+_08004580: .4byte 0x0201C1B4
+_08004584: .4byte 0x08086B40
+_08004588: .4byte 0x06000280
+_0800458C: .4byte 0x800000E0
+_08004590: .4byte 0x0202C794
+_08004594: .4byte 0x02032EE0
+_08004598: .4byte 0x0000FFFF
+_0800459C: .4byte 0x086A3700
+_080045A0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_45A4
+sub_45A4: @ 0x080045A4
+ push {r4, r5, r6, lr}
+ ldr r1, _08004620 @ =0x0202C5E8
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0x50
+ bgt _080045CA
+ adds r0, r2, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x50
+ bne _080045CA
+ ldr r0, _08004624 @ =0x02032EE0
+ ldr r1, _08004628 @ =0x0000FFFF
+ movs r2, #0x80
+ lsls r2, r2, #1
+ bl m4aMPlayVolumeControl
+_080045CA:
+ ldr r1, _0800462C @ =0x0202BEF4
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1e
+ ble _080045E8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r2, _08004630 @ =0x0202C5AC
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_080045E8:
+ ldr r0, _08004634 @ =0x0202BE20
+ movs r6, #0
+ strh r6, [r0]
+ ldr r0, _08004638 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _08004644
+ ldr r5, _0800463C @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ cmp r0, #0xc8
+ bgt _0800467A
+ ldr r4, _08004640 @ =0x0202C794
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #1
+ bne _0800467A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ strb r6, [r4]
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ movs r1, #0
+ b _08004670
+ .align 2, 0
+_08004620: .4byte 0x0202C5E8
+_08004624: .4byte 0x02032EE0
+_08004628: .4byte 0x0000FFFF
+_0800462C: .4byte 0x0202BEF4
+_08004630: .4byte 0x0202C5AC
+_08004634: .4byte 0x0202BE20
+_08004638: .4byte 0x0200B0C0
+_0800463C: .4byte 0x0202ADE0
+_08004640: .4byte 0x0202C794
+_08004644:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0800467A
+ ldr r5, _080046BC @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0xc8
+ bgt _0800467A
+ ldr r4, _080046C0 @ =0x0202C794
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _0800467A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ movs r0, #1
+ strb r0, [r4]
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #1
+_08004670:
+ bl sub_70E0
+ ldr r1, _080046C4 @ =0x02019C28
+ ldrb r0, [r4]
+ strb r0, [r1]
+_0800467A:
+ ldr r6, _080046C8 @ =0x0200B0C0
+ ldrh r1, [r6, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _08004700
+ ldr r5, _080046BC @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ cmp r0, #0xc8
+ bgt _08004730
+ ldr r4, _080046C0 @ =0x0202C794
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _080046CC
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ ldrb r1, [r4]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r4]
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ bl sub_70E0
+ ldr r1, _080046C4 @ =0x02019C28
+ ldrb r0, [r4]
+ strb r0, [r1]
+ b _08004730
+ .align 2, 0
+_080046BC: .4byte 0x0202ADE0
+_080046C0: .4byte 0x0202C794
+_080046C4: .4byte 0x02019C28
+_080046C8: .4byte 0x0200B0C0
+_080046CC:
+ movs r0, #0x69
+ bl m4aSongNumStart
+ ldr r0, _080046F0 @ =0x02032EE0
+ ldr r1, _080046F4 @ =0x0000FFFF
+ movs r2, #0x80
+ lsls r2, r2, #1
+ bl m4aMPlayVolumeControl
+ movs r0, #0
+ strb r0, [r4]
+ ldr r0, _080046F8 @ =0x0202C5E8
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080046FC @ =0x0202BEF4
+ strh r1, [r0]
+ b _08004728
+ .align 2, 0
+_080046F0: .4byte 0x02032EE0
+_080046F4: .4byte 0x0000FFFF
+_080046F8: .4byte 0x0202C5E8
+_080046FC: .4byte 0x0202BEF4
+_08004700:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08004730
+ movs r0, #0x69
+ bl m4aSongNumStart
+ ldr r0, _0800476C @ =0x02032EE0
+ ldr r1, _08004770 @ =0x0000FFFF
+ movs r2, #0x80
+ lsls r2, r2, #1
+ bl m4aMPlayVolumeControl
+ ldr r0, _08004774 @ =0x0202C794
+ strb r4, [r0]
+ ldr r0, _08004778 @ =0x0202C5E8
+ movs r1, #0
+ strh r4, [r0]
+ ldr r0, _0800477C @ =0x0202BEF4
+ strh r4, [r0]
+_08004728:
+ ldr r0, _08004780 @ =0x0201C1B4
+ strb r1, [r0]
+ movs r0, #4
+ strb r0, [r6, #3]
+_08004730:
+ ldr r0, _08004784 @ =0x0200B0C0
+ ldrh r1, [r0, #0x1c]
+ movs r0, #4
+ ands r0, r1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ cmp r4, #0
+ beq _08004808
+ ldr r1, _08004788 @ =0x0202A1C0
+ ldr r0, _0800478C @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r2, r0, #1
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _080047E4
+ ldr r0, _08004790 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _08004798
+ ldr r1, _08004794 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ b _0800482C
+ .align 2, 0
+_0800476C: .4byte 0x02032EE0
+_08004770: .4byte 0x0000FFFF
+_08004774: .4byte 0x0202C794
+_08004778: .4byte 0x0202C5E8
+_0800477C: .4byte 0x0202BEF4
+_08004780: .4byte 0x0201C1B4
+_08004784: .4byte 0x0200B0C0
+_08004788: .4byte 0x0202A1C0
+_0800478C: .4byte 0x0202ADE0
+_08004790: .4byte 0x086A61BC
+_08004794: .4byte 0x0202A588
+_08004798:
+ cmp r1, #0x63
+ bgt _080047C0
+ ldr r0, _080047B4 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080047B8 @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _080047BC @ =0x0202A568
+ movs r2, #0
+ movs r0, #1
+ strh r0, [r1]
+ strh r2, [r1, #2]
+ b _08004842
+ .align 2, 0
+_080047B4: .4byte 0x0202A588
+_080047B8: .4byte 0x0202A55C
+_080047BC: .4byte 0x0202A568
+_080047C0:
+ ldr r0, _080047D8 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080047DC @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _080047E0 @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #1
+ strh r0, [r1, #2]
+ b _08004842
+ .align 2, 0
+_080047D8: .4byte 0x0202A588
+_080047DC: .4byte 0x0202A55C
+_080047E0: .4byte 0x0202A568
+_080047E4:
+ ldr r1, _080047FC @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08004800 @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _08004804 @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ b _08004842
+ .align 2, 0
+_080047FC: .4byte 0x0202A588
+_08004800: .4byte 0x0202A55C
+_08004804: .4byte 0x0202A568
+_08004808:
+ ldr r0, _08004820 @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ bl sub_8A78
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ cmp r1, #1
+ bne _08004828
+ ldr r0, _08004824 @ =0x0202A588
+ strh r1, [r0]
+ b _0800482C
+ .align 2, 0
+_08004820: .4byte 0x0202ADE0
+_08004824: .4byte 0x0202A588
+_08004828:
+ ldr r0, _0800484C @ =0x0202A588
+ strh r4, [r0]
+_0800482C:
+ ldr r1, _08004850 @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r0, _08004854 @ =0x0202A568
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ ldr r0, _08004858 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _0800485C @ =0x0202BF0C
+ strh r1, [r0]
+_08004842:
+ bl sub_51FC
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800484C: .4byte 0x0202A588
+_08004850: .4byte 0x0202A55C
+_08004854: .4byte 0x0202A568
+_08004858: .4byte 0x0201A440
+_0800485C: .4byte 0x0202BF0C
+
+ thumb_func_start sub_4860
+sub_4860: @ 0x08004860
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ movs r3, #0
+ ldr r0, _0800496C @ =0x02019C40
+ mov r8, r0
+ ldr r7, _08004970 @ =0x0202A558
+ ldr r1, _08004974 @ =0x0805C800
+ mov sb, r1
+ ldr r0, _08004978 @ =0x03005C00
+ mov sl, r0
+ mov r6, r8
+ adds r5, r7, #0
+ ldr r4, _0800497C @ =0x0805C7C0
+ movs r1, #0x11
+ mov ip, r1
+_08004886:
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ mov r1, ip
+ subs r0, r1, r0
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ lsls r2, r3, #1
+ ldrh r1, [r4]
+ strh r1, [r0]
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ movs r0, #0x12
+ subs r0, r0, r1
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ add r2, sb
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1f
+ ble _08004886
+ movs r1, #0
+ ldrsh r0, [r7, r1]
+ cmp r0, #7
+ bgt _080048F2
+ movs r3, #0
+ ldr r0, _08004978 @ =0x03005C00
+ mov ip, r0
+ adds r6, r7, #0
+ ldr r5, _08004980 @ =0x0202A590
+ movs r4, #0x11
+ movs r2, #7
+_080048D0:
+ movs r1, #0
+ ldrsh r0, [r6, r1]
+ subs r1, r4, r0
+ lsls r1, r1, #5
+ adds r1, r1, r3
+ lsls r1, r1, #1
+ add r1, ip
+ subs r0, r2, r0
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r3, #1
+ cmp r3, #0x1f
+ ble _080048D0
+_080048F2:
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ movs r1, #0x9a
+ lsls r1, r1, #2
+ add r1, r8
+ movs r3, #0
+ movs r0, #0x59
+ strh r0, [r1]
+ ldr r2, _08004984 @ =0x040000D4
+ mov r0, r8
+ str r0, [r2]
+ ldr r0, _08004988 @ =0x06000800
+ str r0, [r2, #4]
+ ldr r1, _0800498C @ =0x80000400
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r0, sl
+ str r0, [r2]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldrsh r0, [r7, r1]
+ cmp r0, #8
+ ble _0800495A
+ strh r3, [r7]
+ ldr r0, _08004990 @ =0x0202A588
+ strh r3, [r0]
+ ldr r1, _08004994 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ mov r0, sp
+ strh r3, [r0]
+ str r0, [r2]
+ ldr r0, _08004998 @ =0x03000000
+ str r0, [r2, #4]
+ ldr r1, _0800499C @ =0x81000C00
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r0, sp
+ strh r3, [r0]
+ str r0, [r2]
+ ldr r0, _080049A0 @ =0x06005C00
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r1, _080049A4 @ =0x0200B0C0
+ movs r0, #1
+ strb r0, [r1, #3]
+_0800495A:
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800496C: .4byte 0x02019C40
+_08004970: .4byte 0x0202A558
+_08004974: .4byte 0x0805C800
+_08004978: .4byte 0x03005C00
+_0800497C: .4byte 0x0805C7C0
+_08004980: .4byte 0x0202A590
+_08004984: .4byte 0x040000D4
+_08004988: .4byte 0x06000800
+_0800498C: .4byte 0x80000400
+_08004990: .4byte 0x0202A588
+_08004994: .4byte 0x0202BF04
+_08004998: .4byte 0x03000000
+_0800499C: .4byte 0x81000C00
+_080049A0: .4byte 0x06005C00
+_080049A4: .4byte 0x0200B0C0
+
+ thumb_func_start sub_49A8
+sub_49A8: @ 0x080049A8
+ push {lr}
+ bl sub_19B4
+ bl sub_5E60
+ ldr r1, _080049C8 @ =0x0201B124
+ movs r0, #0
+ strb r0, [r1]
+ bl sub_599C
+ ldr r1, _080049CC @ =0x0200B0C0
+ movs r0, #7
+ strb r0, [r1, #3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080049C8: .4byte 0x0201B124
+_080049CC: .4byte 0x0200B0C0
+
+ thumb_func_start sub_49D0
+sub_49D0: @ 0x080049D0
+ push {r4, r5, lr}
+ bl sub_599C
+ ldr r5, _08004A08 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08004A1C
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _08004A0C @ =0x0202BEC4
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _08004A10 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r1, _08004A14 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, _08004A18 @ =0x0202A588
+ movs r4, #1
+ strh r4, [r0]
+ bl sub_2568
+ strb r4, [r5, #3]
+ b _08004AF2
+ .align 2, 0
+_08004A08: .4byte 0x0200B0C0
+_08004A0C: .4byte 0x0202BEC4
+_08004A10: .4byte 0x0202BEFC
+_08004A14: .4byte 0x0202BF04
+_08004A18: .4byte 0x0202A588
+_08004A1C:
+ ldr r4, _08004A7C @ =0x0202ADD0
+ ldr r0, _08004A80 @ =0x0202BEC8
+ ldr r1, _08004A84 @ =0x0202C5F0
+ ldr r2, _08004A88 @ =0x0201A4D0
+ bl sub_1B04
+ str r0, [r4]
+ ldr r1, _08004A8C @ =0x0202BDF0
+ movs r3, #3
+ ands r3, r0
+ str r3, [r1]
+ ldr r2, _08004A90 @ =0x0201C1AC
+ movs r1, #0x1c
+ ands r1, r0
+ lsrs r1, r1, #2
+ strb r1, [r2]
+ ldr r2, _08004A94 @ =0x0202ADDC
+ movs r1, #0xe0
+ lsls r1, r1, #4
+ ands r1, r0
+ lsrs r1, r1, #9
+ strb r1, [r2]
+ movs r1, #0x40
+ ands r1, r0
+ cmp r1, #0
+ beq _08004AF2
+ cmp r3, #1
+ bhi _08004AF2
+ bl sub_5EC8
+ ldr r0, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _08004AAC
+ bl sub_5EA4
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _08004A98
+ movs r0, #9
+ strb r0, [r5, #3]
+ b _08004AAC
+ .align 2, 0
+_08004A7C: .4byte 0x0202ADD0
+_08004A80: .4byte 0x0202BEC8
+_08004A84: .4byte 0x0202C5F0
+_08004A88: .4byte 0x0201A4D0
+_08004A8C: .4byte 0x0202BDF0
+_08004A90: .4byte 0x0201C1AC
+_08004A94: .4byte 0x0202ADDC
+_08004A98:
+ cmp r1, #1
+ bne _08004AAC
+ ldr r0, _08004AF8 @ =0x0202BEFC
+ movs r1, #2
+ strb r1, [r0]
+ movs r0, #8
+ strb r0, [r5, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_08004AAC:
+ ldr r1, _08004AFC @ =0x0201A510
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ ldr r0, _08004B00 @ =0x0202ADD0
+ ldr r0, [r0]
+ movs r1, #0xfe
+ lsls r1, r1, #0xf
+ ands r0, r1
+ cmp r0, #0
+ beq _08004AF2
+ ldr r0, _08004B04 @ =0x0201B128
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _08004AF2
+ ldr r1, _08004B08 @ =0x0201A444
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb4
+ ble _08004AF2
+ ldr r1, _08004AF8 @ =0x0202BEFC
+ movs r0, #2
+ strb r0, [r1]
+ ldr r1, _08004B0C @ =0x0200B0C0
+ movs r0, #8
+ strb r0, [r1, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_08004AF2:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004AF8: .4byte 0x0202BEFC
+_08004AFC: .4byte 0x0201A510
+_08004B00: .4byte 0x0202ADD0
+_08004B04: .4byte 0x0201B128
+_08004B08: .4byte 0x0201A444
+_08004B0C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4B10
+sub_4B10: @ 0x08004B10
+ ldr r1, _08004B2C @ =0x0201A444
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _08004B2A
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08004B30 @ =0x0200B0C0
+ movs r0, #6
+ strb r0, [r1, #3]
+_08004B2A:
+ bx lr
+ .align 2, 0
+_08004B2C: .4byte 0x0201A444
+_08004B30: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4B34
+sub_4B34: @ 0x08004B34
+ push {lr}
+ bl sub_599C
+ ldr r2, _08004B94 @ =0x0201B120
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x5a
+ ble _08004B90
+ movs r1, #0
+ strh r1, [r2]
+ ldr r0, _08004B98 @ =0x0202BEC4
+ strb r1, [r0]
+ ldr r0, _08004B9C @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r1, _08004BA0 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _08004BA4 @ =0x0202A588
+ movs r0, #1
+ strh r0, [r1]
+ bl sub_2568
+ bl sub_1AA4
+ ldr r3, _08004BA8 @ =0x0202A1C0
+ ldr r2, _08004BAC @ =0x0202A390
+ movs r1, #0xe0
+_08004B70:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, #2
+ adds r2, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _08004B70
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004BB0 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #3]
+_08004B90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004B94: .4byte 0x0201B120
+_08004B98: .4byte 0x0202BEC4
+_08004B9C: .4byte 0x0202BEFC
+_08004BA0: .4byte 0x0202BF04
+_08004BA4: .4byte 0x0202A588
+_08004BA8: .4byte 0x0202A1C0
+_08004BAC: .4byte 0x0202A390
+_08004BB0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4BB4
+sub_4BB4: @ 0x08004BB4
+ push {r4, lr}
+ bl sub_599C
+ ldr r2, _08004BD0 @ =0x0201B120
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x82
+ beq _08004BE4
+ cmp r0, #0x82
+ bgt _08004BD4
+ cmp r0, #4
+ beq _08004BDA
+ b _08004C4E
+ .align 2, 0
+_08004BD0: .4byte 0x0201B120
+_08004BD4:
+ cmp r0, #0xfa
+ beq _08004BF8
+ b _08004C4E
+_08004BDA:
+ bl sub_2568
+ bl sub_1AA4
+ b _08004C4E
+_08004BE4:
+ ldr r1, _08004BF4 @ =0x0202BEFC
+ movs r0, #3
+ strb r0, [r1]
+ movs r0, #0x65
+ bl m4aSongNumStart
+ b _08004C4E
+ .align 2, 0
+_08004BF4: .4byte 0x0202BEFC
+_08004BF8:
+ movs r1, #0
+ strh r1, [r2]
+ ldr r0, _08004C5C @ =0x0202BEC4
+ strb r1, [r0]
+ ldr r0, _08004C60 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r1, _08004C64 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _08004C68 @ =0x0202A588
+ movs r0, #1
+ strh r0, [r1]
+ ldr r3, _08004C6C @ =0x0202A390
+ ldr r1, _08004C70 @ =0x0202A1C0
+ movs r2, #0xe0
+_08004C16:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r3, #2
+ adds r1, #2
+ subs r2, #1
+ cmp r2, #0
+ bge _08004C16
+ movs r2, #0
+ ldr r4, _08004C74 @ =0x0200B134
+ ldr r3, _08004C70 @ =0x0202A1C0
+_08004C2A:
+ adds r1, r2, r4
+ ldrh r0, [r3]
+ strb r0, [r1]
+ adds r3, #2
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _08004C2A
+ bl sub_52B30
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004C78 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #3]
+_08004C4E:
+ ldr r1, _08004C7C @ =0x0201B120
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004C5C: .4byte 0x0202BEC4
+_08004C60: .4byte 0x0202BEFC
+_08004C64: .4byte 0x0202BF04
+_08004C68: .4byte 0x0202A588
+_08004C6C: .4byte 0x0202A390
+_08004C70: .4byte 0x0202A1C0
+_08004C74: .4byte 0x0200B134
+_08004C78: .4byte 0x0200B0C0
+_08004C7C: .4byte 0x0201B120
+
+ thumb_func_start sub_4C80
+sub_4C80: @ 0x08004C80
+ push {r4, r5, r6, r7, lr}
+ bl sub_51FC
+ ldr r7, _08004CF8 @ =0x0200B0C0
+ ldrh r1, [r7, #0x18]
+ movs r6, #1
+ movs r5, #1
+ adds r4, r5, #0
+ ands r4, r1
+ cmp r4, #0
+ beq _08004D18
+ movs r0, #0x65
+ bl m4aSongNumStart
+ movs r3, #0
+ ldr r1, _08004CFC @ =0x0202A1C0
+ ldr r0, _08004D00 @ =0x0202A390
+ movs r2, #0xe0
+_08004CA4:
+ strh r3, [r0]
+ strh r3, [r1]
+ adds r1, #2
+ adds r0, #2
+ subs r2, #1
+ cmp r2, #0
+ bge _08004CA4
+ movs r2, #0
+ ldr r5, _08004D04 @ =0x0202BEC4
+ ldr r6, _08004D08 @ =0x0202BEFC
+ ldr r7, _08004D0C @ =0x0202BF04
+ ldr r0, _08004D10 @ =0x0202A588
+ mov ip, r0
+ ldr r4, _08004D14 @ =0x0200B134
+ ldr r3, _08004CFC @ =0x0202A1C0
+_08004CC2:
+ adds r1, r2, r4
+ ldrh r0, [r3]
+ strb r0, [r1]
+ adds r3, #2
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _08004CC2
+ movs r0, #0
+ strb r0, [r5]
+ strb r0, [r6]
+ movs r0, #1
+ strb r0, [r7]
+ movs r0, #1
+ mov r1, ip
+ strh r0, [r1]
+ bl sub_52B30
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004CF8 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #3]
+ b _08004D38
+ .align 2, 0
+_08004CF8: .4byte 0x0200B0C0
+_08004CFC: .4byte 0x0202A1C0
+_08004D00: .4byte 0x0202A390
+_08004D04: .4byte 0x0202BEC4
+_08004D08: .4byte 0x0202BEFC
+_08004D0C: .4byte 0x0202BF04
+_08004D10: .4byte 0x0202A588
+_08004D14: .4byte 0x0200B134
+_08004D18:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08004D38
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _08004D40 @ =0x0202BEC4
+ strb r4, [r0]
+ ldr r0, _08004D44 @ =0x0202BEFC
+ strb r4, [r0]
+ ldr r0, _08004D48 @ =0x0202BF04
+ strb r6, [r0]
+ ldr r0, _08004D4C @ =0x0202A588
+ strh r5, [r0]
+ strb r6, [r7, #3]
+_08004D38:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004D40: .4byte 0x0202BEC4
+_08004D44: .4byte 0x0202BEFC
+_08004D48: .4byte 0x0202BF04
+_08004D4C: .4byte 0x0202A588
+
+ thumb_func_start sub_4D50
+sub_4D50: @ 0x08004D50
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004D70 @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #1
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004D70: .4byte 0x0201A4B4
+
+ thumb_func_start sub_4D74
+sub_4D74: @ 0x08004D74
+ push {r4, r5, lr}
+ ldr r5, _08004DC4 @ =0x0202C58C
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ bne _08004E26
+ ldr r0, _08004DC8 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _08004DCC @ =0x0202BF0C
+ strh r1, [r0]
+ ldr r4, _08004DD0 @ =0x0202A57C
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _08004E08
+ ldr r2, _08004DD4 @ =0x0202C5B0
+ ldrh r1, [r2]
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ cmp r0, #0
+ bne _08004DE4
+ ldr r0, _08004DD8 @ =0x02019C24
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08004DF6
+ ldr r0, _08004DDC @ =0x0202A574
+ ldrh r0, [r0]
+ subs r1, r0, #5
+ strh r1, [r2]
+ ldr r1, _08004DE0 @ =0x0202ADE0
+ subs r0, #1
+ strh r0, [r1]
+ movs r0, #4
+ strh r0, [r4]
+ movs r0, #0x67
+ bl m4aSongNumStart
+ b _08004DF6
+ .align 2, 0
+_08004DC4: .4byte 0x0202C58C
+_08004DC8: .4byte 0x0201A440
+_08004DCC: .4byte 0x0202BF0C
+_08004DD0: .4byte 0x0202A57C
+_08004DD4: .4byte 0x0202C5B0
+_08004DD8: .4byte 0x02019C24
+_08004DDC: .4byte 0x0202A574
+_08004DE0: .4byte 0x0202ADE0
+_08004DE4:
+ subs r0, r1, #1
+ strh r0, [r2]
+ ldr r1, _08004E00 @ =0x0202ADE0
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ movs r0, #0x67
+ bl m4aSongNumStart
+_08004DF6:
+ ldr r1, _08004E04 @ =0x0202C58C
+ movs r0, #9
+ strh r0, [r1]
+ b _08004E20
+ .align 2, 0
+_08004E00: .4byte 0x0202ADE0
+_08004E04: .4byte 0x0202C58C
+_08004E08:
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4]
+ subs r0, #1
+ strh r0, [r4]
+ ldr r1, _08004E2C @ =0x0202ADE0
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r5]
+_08004E20:
+ ldr r1, _08004E30 @ =0x02019C24
+ movs r0, #1
+ strb r0, [r1]
+_08004E26:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004E2C: .4byte 0x0202ADE0
+_08004E30: .4byte 0x02019C24
+
+ thumb_func_start sub_4E34
+sub_4E34: @ 0x08004E34
+ push {r4, r5, lr}
+ ldr r5, _08004E80 @ =0x0202C58C
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ bne _08004EE2
+ ldr r0, _08004E84 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _08004E88 @ =0x0202BF0C
+ strh r1, [r0]
+ ldr r4, _08004E8C @ =0x0202A57C
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #4
+ bne _08004EC4
+ ldr r2, _08004E90 @ =0x0202C5B0
+ movs r3, #0
+ ldrsh r1, [r2, r3]
+ ldr r0, _08004E94 @ =0x0202A574
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ subs r0, #5
+ cmp r1, r0
+ bne _08004EA0
+ ldr r0, _08004E98 @ =0x02019C24
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bne _08004EB4
+ strh r1, [r2]
+ ldr r0, _08004E9C @ =0x0202ADE0
+ strh r1, [r0]
+ strh r1, [r4]
+ movs r0, #0x67
+ bl m4aSongNumStart
+ b _08004EB4
+ .align 2, 0
+_08004E80: .4byte 0x0202C58C
+_08004E84: .4byte 0x0201A440
+_08004E88: .4byte 0x0202BF0C
+_08004E8C: .4byte 0x0202A57C
+_08004E90: .4byte 0x0202C5B0
+_08004E94: .4byte 0x0202A574
+_08004E98: .4byte 0x02019C24
+_08004E9C: .4byte 0x0202ADE0
+_08004EA0:
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ ldr r1, _08004EBC @ =0x0202ADE0
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ movs r0, #0x67
+ bl m4aSongNumStart
+_08004EB4:
+ ldr r1, _08004EC0 @ =0x0202C58C
+ movs r0, #9
+ strh r0, [r1]
+ b _08004EDC
+ .align 2, 0
+_08004EBC: .4byte 0x0202ADE0
+_08004EC0: .4byte 0x0202C58C
+_08004EC4:
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ ldr r1, _08004EE8 @ =0x0202ADE0
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r5]
+_08004EDC:
+ ldr r1, _08004EEC @ =0x02019C24
+ movs r0, #1
+ strb r0, [r1]
+_08004EE2:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004EE8: .4byte 0x0202ADE0
+_08004EEC: .4byte 0x02019C24
+
+ thumb_func_start sub_4EF0
+sub_4EF0: @ 0x08004EF0
+ push {r4, r5, r6, lr}
+ ldr r6, _08004F38 @ =0x0202C58C
+ movs r0, #0
+ ldrsh r4, [r6, r0]
+ cmp r4, #0
+ bne _08004F32
+ ldr r0, _08004F3C @ =0x0201A440
+ strh r4, [r0]
+ ldr r0, _08004F40 @ =0x0202BF0C
+ strh r4, [r0]
+ ldr r5, _08004F44 @ =0x0202C5B0
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ cmp r0, #0
+ beq _08004F32
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r5]
+ subs r0, #5
+ strh r0, [r5]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bge _08004F22
+ strh r4, [r5]
+_08004F22:
+ ldr r1, _08004F48 @ =0x0202ADE0
+ ldr r0, _08004F4C @ =0x0202A57C
+ ldrh r0, [r0]
+ ldrh r5, [r5]
+ adds r0, r0, r5
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r6]
+_08004F32:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004F38: .4byte 0x0202C58C
+_08004F3C: .4byte 0x0201A440
+_08004F40: .4byte 0x0202BF0C
+_08004F44: .4byte 0x0202C5B0
+_08004F48: .4byte 0x0202ADE0
+_08004F4C: .4byte 0x0202A57C
+
+ thumb_func_start sub_4F50
+sub_4F50: @ 0x08004F50
+ push {r4, r5, r6, lr}
+ ldr r6, _08004FAC @ =0x0202C58C
+ movs r0, #0
+ ldrsh r1, [r6, r0]
+ cmp r1, #0
+ bne _08004FA6
+ ldr r0, _08004FB0 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _08004FB4 @ =0x0202BF0C
+ strh r1, [r0]
+ ldr r4, _08004FB8 @ =0x0202C5B0
+ movs r2, #0
+ ldrsh r1, [r4, r2]
+ ldr r5, _08004FBC @ =0x0202A574
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ subs r0, #5
+ cmp r1, r0
+ beq _08004FA6
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4]
+ adds r0, #5
+ strh r0, [r4]
+ movs r0, #0
+ ldrsh r1, [r4, r0]
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ subs r0, #5
+ cmp r1, r0
+ ble _08004F96
+ ldrh r0, [r5]
+ subs r0, #5
+ strh r0, [r4]
+_08004F96:
+ ldr r1, _08004FC0 @ =0x0202ADE0
+ ldr r0, _08004FC4 @ =0x0202A57C
+ ldrh r0, [r0]
+ ldrh r4, [r4]
+ adds r0, r0, r4
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r6]
+_08004FA6:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004FAC: .4byte 0x0202C58C
+_08004FB0: .4byte 0x0201A440
+_08004FB4: .4byte 0x0202BF0C
+_08004FB8: .4byte 0x0202C5B0
+_08004FBC: .4byte 0x0202A574
+_08004FC0: .4byte 0x0202ADE0
+_08004FC4: .4byte 0x0202A57C
+
+ thumb_func_start sub_4FC8
+sub_4FC8: @ 0x08004FC8
+ push {r4, r5, lr}
+ ldr r5, _08005048 @ =0x0200B0C0
+ ldrh r2, [r5, #0x1c]
+ movs r1, #0x88
+ lsls r1, r1, #2
+ adds r0, r1, #0
+ ands r0, r2
+ cmp r0, r1
+ bne _08005022
+ ldrh r1, [r5, #0x18]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08005022
+ ldr r2, _0800504C @ =0x02002830
+ movs r0, #0x28
+ strb r0, [r2]
+ ldr r1, _08005050 @ =0x02002831
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #3
+ bne _08005022
+ movs r4, #0
+ strb r4, [r1]
+ strb r4, [r2]
+ movs r0, #0x68
+ bl m4aSongNumStart
+ ldr r1, _08005054 @ =0x0202BEC4
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _08005058 @ =0x0202BEFC
+ movs r0, #4
+ strb r0, [r1]
+ ldr r0, _0800505C @ =0x0202BF04
+ strb r4, [r0]
+ ldr r1, _08005060 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #0xb
+ strb r0, [r5, #3]
+_08005022:
+ ldr r2, _0800504C @ =0x02002830
+ ldrb r1, [r2]
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ ble _08005040
+ subs r0, r1, #1
+ strb r0, [r2]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bgt _08005040
+ movs r1, #0
+ strb r1, [r2]
+ ldr r0, _08005050 @ =0x02002831
+ strb r1, [r0]
+_08005040:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005048: .4byte 0x0200B0C0
+_0800504C: .4byte 0x02002830
+_08005050: .4byte 0x02002831
+_08005054: .4byte 0x0202BEC4
+_08005058: .4byte 0x0202BEFC
+_0800505C: .4byte 0x0202BF04
+_08005060: .4byte 0x0202A588
+
+ thumb_func_start sub_5064
+sub_5064: @ 0x08005064
+ ldr r1, _080050A8 @ =0x0202A1C0
+ ldr r0, _080050AC @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r2, r0, #1
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08005110
+ ldr r0, _080050B0 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _080050C8
+ ldr r1, _080050B4 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _080050B8 @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r0, _080050BC @ =0x0202A568
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ ldr r0, _080050C0 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _080050C4 @ =0x0202BF0C
+ strh r1, [r0]
+ b _08005124
+ .align 2, 0
+_080050A8: .4byte 0x0202A1C0
+_080050AC: .4byte 0x0202ADE0
+_080050B0: .4byte 0x086A61BC
+_080050B4: .4byte 0x0202A588
+_080050B8: .4byte 0x0202A55C
+_080050BC: .4byte 0x0202A568
+_080050C0: .4byte 0x0201A440
+_080050C4: .4byte 0x0202BF0C
+_080050C8:
+ cmp r1, #0x63
+ bgt _080050F0
+ ldr r0, _080050E4 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080050E8 @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _080050EC @ =0x0202A568
+ movs r2, #0
+ movs r0, #1
+ strh r0, [r1]
+ strh r2, [r1, #2]
+ b _08005124
+ .align 2, 0
+_080050E4: .4byte 0x0202A588
+_080050E8: .4byte 0x0202A55C
+_080050EC: .4byte 0x0202A568
+_080050F0:
+ ldr r0, _08005104 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _08005108 @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _0800510C @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #1
+ b _08005122
+ .align 2, 0
+_08005104: .4byte 0x0202A588
+_08005108: .4byte 0x0202A55C
+_0800510C: .4byte 0x0202A568
+_08005110:
+ ldr r1, _08005128 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _0800512C @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _08005130 @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+_08005122:
+ strh r0, [r1, #2]
+_08005124:
+ bx lr
+ .align 2, 0
+_08005128: .4byte 0x0202A588
+_0800512C: .4byte 0x0202A55C
+_08005130: .4byte 0x0202A568
+
+ thumb_func_start sub_5134
+sub_5134: @ 0x08005134
+ ldr r1, _08005160 @ =0x0202A1C0
+ ldr r0, _08005164 @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r2, r0, #1
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08005170
+ ldr r0, _08005168 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ beq _08005170
+ cmp r1, #0x63
+ bgt _0800516C
+ movs r0, #1
+ b _08005172
+ .align 2, 0
+_08005160: .4byte 0x0202A1C0
+_08005164: .4byte 0x0202ADE0
+_08005168: .4byte 0x086A61BC
+_0800516C:
+ movs r0, #2
+ b _08005172
+_08005170:
+ movs r0, #0
+_08005172:
+ bx lr
+
+ thumb_func_start sub_5174
+sub_5174: @ 0x08005174
+ push {r4, lr}
+ ldr r4, _080051BC @ =0x0202C5B0
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_6CA0
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_6F30
+ ldr r4, _080051C0 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_681C
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_6F78
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_8974
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_8A78
+ ldr r0, _080051C4 @ =0x0202BF00
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080051C8 @ =0x0201A448
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080051BC: .4byte 0x0202C5B0
+_080051C0: .4byte 0x0202ADE0
+_080051C4: .4byte 0x0202BF00
+_080051C8: .4byte 0x0201A448
+
+ thumb_func_start sub_51CC
+sub_51CC: @ 0x080051CC
+ push {lr}
+ bl sub_5134
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080051E8
+ ldr r0, _080051E4 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ bl sub_6F78
+ b _080051F2
+ .align 2, 0
+_080051E4: .4byte 0x0202ADE0
+_080051E8:
+ ldr r0, _080051F8 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ bl sub_8974
+_080051F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080051F8: .4byte 0x0202ADE0
+
+ thumb_func_start sub_51FC
+sub_51FC: @ 0x080051FC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x18
+ ldr r4, _08005348 @ =0x0200B3B8
+ adds r7, r4, #0
+ adds r7, #0xb8
+ movs r0, #0xb8
+ lsls r0, r0, #1
+ adds r0, r0, r4
+ mov r8, r0
+ movs r1, #0x8a
+ lsls r1, r1, #2
+ adds r1, r1, r4
+ mov sl, r1
+ ldr r0, _0800534C @ =0x0201A448
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r2, #0xb8
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r3, #0xe6
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ adds r1, r1, r0
+ str r1, [sp]
+ ldr r0, _08005350 @ =0x0202BEFC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r1, r0, #0
+ muls r1, r2, r1
+ ldr r3, _08005354 @ =0x00000C38
+ adds r0, r4, r3
+ adds r1, r1, r0
+ mov sb, r1
+ ldr r0, _08005358 @ =0x0202BEE0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r3, #0xfd
+ lsls r3, r3, #4
+ adds r0, r4, r3
+ adds r1, r1, r0
+ str r1, [sp, #4]
+ ldr r0, _0800535C @ =0x02019C28
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r1, r1, #1
+ ldr r0, _08005360 @ =0x0202C5AC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, #0x19
+ adds r1, r1, r0
+ adds r0, r1, #0
+ muls r0, r2, r0
+ adds r0, r0, r4
+ str r0, [sp, #8]
+ movs r0, #1
+ strh r0, [r4]
+ strh r0, [r7]
+ ldr r0, _08005364 @ =0x0202A55C
+ ldrh r0, [r0]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r1, _08005368 @ =0x0202A568
+ ldrh r0, [r1]
+ mov r2, sl
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ ldr r3, _0800536C @ =0x0200B698
+ strh r0, [r3]
+ ldr r0, _08005370 @ =0x0202A588
+ ldrh r0, [r0]
+ ldr r1, [sp]
+ strh r0, [r1]
+ ldr r0, _08005374 @ =0x0202BEC4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov r2, sb
+ strh r0, [r2]
+ ldr r0, _08005378 @ =0x0202BF04
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r3, [sp, #4]
+ strh r0, [r3]
+ ldr r0, _0800537C @ =0x0202C590
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r1, _08005380 @ =0x0200C4F8
+ strh r0, [r1]
+ ldr r0, _08005384 @ =0x0201C1B4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r2, [sp, #8]
+ strh r0, [r2]
+ ldr r0, _08005388 @ =0x086A6148
+ movs r1, #0x1d
+ adds r2, r4, #0
+ bl sub_358
+ ldr r0, _0800538C @ =0x0201A4F0
+ ldrh r0, [r0]
+ adds r0, #0x14
+ strh r0, [r4, #2]
+ ldr r0, _08005390 @ =0x0202A57C
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #4
+ adds r0, #0x54
+ strh r0, [r4, #4]
+ adds r6, r4, #0
+ adds r6, #8
+ ldr r5, _08005394 @ =0x03005000
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r0, [r1, #5]
+ movs r2, #0xc
+ orrs r0, r2
+ strb r0, [r1, #5]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ movs r0, #2
+ ldrsh r1, [r6, r0]
+ movs r3, #2
+ ldrsh r0, [r4, r3]
+ adds r1, r1, r0
+ ldr r3, _08005398 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _0800539C @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r0, [r4, #4]
+ ldrb r6, [r6, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+ ldr r1, _080053A0 @ =0x0202ADE0
+ movs r4, #0
+ ldrsh r0, [r1, r4]
+ cmp r0, #0xc7
+ bgt _080053A8
+ ldr r4, _080053A4 @ =0x0202BF08
+ movs r1, #3
+ bl __divsi3
+ adds r0, #0x56
+ strh r0, [r4]
+ adds r1, r4, #0
+ b _080053AE
+ .align 2, 0
+_08005348: .4byte 0x0200B3B8
+_0800534C: .4byte 0x0201A448
+_08005350: .4byte 0x0202BEFC
+_08005354: .4byte 0x00000C38
+_08005358: .4byte 0x0202BEE0
+_0800535C: .4byte 0x02019C28
+_08005360: .4byte 0x0202C5AC
+_08005364: .4byte 0x0202A55C
+_08005368: .4byte 0x0202A568
+_0800536C: .4byte 0x0200B698
+_08005370: .4byte 0x0202A588
+_08005374: .4byte 0x0202BEC4
+_08005378: .4byte 0x0202BF04
+_0800537C: .4byte 0x0202C590
+_08005380: .4byte 0x0200C4F8
+_08005384: .4byte 0x0201C1B4
+_08005388: .4byte 0x086A6148
+_0800538C: .4byte 0x0201A4F0
+_08005390: .4byte 0x0202A57C
+_08005394: .4byte 0x03005000
+_08005398: .4byte 0x000001FF
+_0800539C: .4byte 0xFFFFFE00
+_080053A0: .4byte 0x0202ADE0
+_080053A4: .4byte 0x0202BF08
+_080053A8:
+ ldr r1, _08005564 @ =0x0202BF08
+ movs r0, #0x98
+ strh r0, [r1]
+_080053AE:
+ movs r0, #0xd
+ strh r0, [r7, #2]
+ ldrh r0, [r1]
+ strh r0, [r7, #4]
+ adds r6, r7, #0
+ adds r6, #8
+ ldr r4, _08005568 @ =0x03005000
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r1, #5]
+ movs r2, #0xc
+ orrs r0, r2
+ strb r0, [r1, #5]
+ ldrh r2, [r7, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r3, #2
+ ldrsh r1, [r6, r3]
+ movs r3, #2
+ ldrsh r0, [r7, r3]
+ adds r1, r1, r0
+ ldr r3, _0800556C @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08005570 @ =0xFFFFFE00
+ mov ip, r0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r7, #4]
+ ldrb r6, [r6, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+ mov r1, r8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800545E
+ movs r0, #0x24
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ adds r5, r4, #0
+ mov r4, r8
+ adds r4, #8
+ movs r6, #5
+_08005410:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ mov r7, r8
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r7, _0800556C @ =0x000001FF
+ adds r0, r7, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ mov r2, r8
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _08005410
+_0800545E:
+ mov r4, sl
+ ldrh r0, [r4]
+ cmp r0, #1
+ bne _08005536
+ movs r0, #0x24
+ strh r0, [r4, #2]
+ movs r0, #0x1c
+ strh r0, [r4, #4]
+ movs r6, #0
+ ldr r7, _08005574 @ =0x0202BF0C
+ mov r8, r7
+ ldr r7, _08005568 @ =0x03005000
+ mov r5, sl
+ adds r5, #8
+ ldr r0, _08005570 @ =0xFFFFFE00
+ mov ip, r0
+_0800547E:
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r7
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r4, [r5]
+ lsls r4, r4, #3
+ adds r4, r4, r7
+ lsls r3, r6, #1
+ ldr r1, _08005578 @ =0x0202BF14
+ movs r0, #0
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, #3
+ adds r3, r3, r0
+ ldr r1, _0800557C @ =0x086A5DDA
+ adds r3, r3, r1
+ str r3, [sp, #0x14]
+ mov r3, r8
+ movs r0, #0
+ ldrsh r1, [r3, r0]
+ lsls r1, r1, #1
+ lsls r0, r2, #2
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldr r2, _08005580 @ =0x086A5DF2
+ adds r1, r1, r2
+ ldrh r1, [r1]
+ ldr r3, [sp, #0x14]
+ ldrh r3, [r3]
+ adds r1, r1, r3
+ ldr r2, _08005584 @ =0x000003FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r4, #4]
+ ldr r0, _08005588 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, #4]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r4, #2
+ ldrsh r1, [r5, r4]
+ mov r2, sl
+ movs r4, #2
+ ldrsh r0, [r2, r4]
+ adds r1, r1, r0
+ ldr r2, _0800556C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ mov r3, sl
+ ldrb r0, [r3, #4]
+ ldrb r4, [r5, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ adds r5, #8
+ adds r6, #1
+ cmp r6, #3
+ ble _0800547E
+ ldr r7, _0800558C @ =0x0201A440
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xe
+ ble _08005536
+ movs r1, #0
+ strh r1, [r7]
+ mov r2, r8
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _08005536
+ strh r1, [r2]
+_08005536:
+ ldr r3, _08005590 @ =0x0200B698
+ ldrh r0, [r3]
+ cmp r0, #1
+ beq _08005540
+ b _0800568A
+_08005540:
+ ldr r1, _08005594 @ =0x086A6356
+ ldr r0, _08005598 @ =0x0202ADE0
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r7, #0
+ ldrsh r1, [r0, r7]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _0800559C
+ movs r0, #1
+ str r0, [sp, #0x10]
+ movs r1, #0x24
+ str r1, [sp, #0xc]
+ b _080055A4
+ .align 2, 0
+_08005564: .4byte 0x0202BF08
+_08005568: .4byte 0x03005000
+_0800556C: .4byte 0x000001FF
+_08005570: .4byte 0xFFFFFE00
+_08005574: .4byte 0x0202BF0C
+_08005578: .4byte 0x0202BF14
+_0800557C: .4byte 0x086A5DDA
+_08005580: .4byte 0x086A5DF2
+_08005584: .4byte 0x000003FF
+_08005588: .4byte 0xFFFFFC00
+_0800558C: .4byte 0x0201A440
+_08005590: .4byte 0x0200B698
+_08005594: .4byte 0x086A6356
+_08005598: .4byte 0x0202ADE0
+_0800559C:
+ movs r2, #2
+ str r2, [sp, #0x10]
+ movs r3, #0x30
+ str r3, [sp, #0xc]
+_080055A4:
+ movs r0, #0x30
+ ldr r4, _08005760 @ =0x0200B698
+ strh r0, [r4, #2]
+ movs r0, #0x28
+ strh r0, [r4, #4]
+ movs r6, #0
+ ldr r7, _08005764 @ =0x0202BF0C
+ mov r8, r7
+ ldr r0, [sp, #0x10]
+ lsls r0, r0, #3
+ mov sl, r0
+ ldr r5, _08005768 @ =0x03005000
+ adds r4, #8
+ movs r0, #0x66
+ ldr r2, [sp, #0x10]
+ adds r1, r2, #0
+ muls r1, r0, r1
+ mov ip, r1
+_080055C8:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ lsls r2, r6, #1
+ add r2, sl
+ ldr r7, _0800576C @ =0x086A5DDA
+ adds r2, r2, r7
+ mov r1, r8
+ movs r7, #0
+ ldrsh r0, [r1, r7]
+ lsls r0, r0, #1
+ add r0, ip
+ ldr r1, _08005770 @ =0x086A5EE2
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r2, _08005774 @ =0x000003FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ ldr r0, _08005778 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, _08005760 @ =0x0200B698
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800577C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08005780 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r3, _08005760 @ =0x0200B698
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ cmp r6, #3
+ ble _080055C8
+ ldr r0, _08005784 @ =0x0201A440
+ ldrh r1, [r0]
+ adds r1, #1
+ strh r1, [r0]
+ mov r2, r8
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #1
+ movs r2, #0x66
+ ldr r4, [sp, #0x10]
+ muls r2, r4, r2
+ adds r0, r0, r2
+ ldr r7, _08005788 @ =0x086A6014
+ adds r0, r0, r7
+ lsls r1, r1, #0x10
+ asrs r1, r1, #0x10
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ ble _0800568A
+ movs r1, #0
+ ldr r3, _08005784 @ =0x0201A440
+ strh r1, [r3]
+ mov r4, r8
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldr r7, [sp, #0xc]
+ cmp r0, r7
+ ble _0800568A
+ strh r1, [r4]
+_0800568A:
+ ldr r1, [sp]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800573C
+ movs r0, #0x24
+ strh r0, [r1, #2]
+ movs r0, #0x40
+ strh r0, [r1, #4]
+ ldr r2, _0800578C @ =0x086A6148
+ ldr r1, _08005790 @ =0x0201A448
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ adds r0, #5
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldr r5, [r0]
+ movs r6, #0
+ mov r8, r1
+ ldr r4, _08005794 @ =0x0202BF00
+ mov ip, r4
+ ldrh r7, [r5]
+ cmp r6, r7
+ bge _08005716
+ ldr r0, _08005780 @ =0xFFFFFE00
+ mov sl, r0
+ ldr r4, [sp]
+ adds r4, #8
+_080056C0:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ ldr r1, _08005768 @ =0x03005000
+ adds r2, r2, r1
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r2, _08005768 @ =0x03005000
+ adds r3, r3, r2
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, [sp]
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800577C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ ldr r3, _08005768 @ =0x03005000
+ adds r1, r1, r3
+ ldr r7, [sp]
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ ldrh r3, [r5]
+ cmp r6, r3
+ blt _080056C0
+_08005716:
+ mov r4, ip
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800573C
+ movs r1, #0
+ strh r1, [r4]
+ mov r7, r8
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb
+ ble _0800573C
+ strh r1, [r7]
+_0800573C:
+ mov r1, sb
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005818
+ ldr r0, _08005798 @ =0x0202BEFC
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r2, r0, #0
+ cmp r1, #0
+ beq _08005754
+ cmp r1, #4
+ bne _0800579C
+_08005754:
+ movs r0, #0x78
+ mov r3, sb
+ strh r0, [r3, #2]
+ movs r0, #0x64
+ strh r0, [r3, #4]
+ b _080057A6
+ .align 2, 0
+_08005760: .4byte 0x0200B698
+_08005764: .4byte 0x0202BF0C
+_08005768: .4byte 0x03005000
+_0800576C: .4byte 0x086A5DDA
+_08005770: .4byte 0x086A5EE2
+_08005774: .4byte 0x000003FF
+_08005778: .4byte 0xFFFFFC00
+_0800577C: .4byte 0x000001FF
+_08005780: .4byte 0xFFFFFE00
+_08005784: .4byte 0x0201A440
+_08005788: .4byte 0x086A6014
+_0800578C: .4byte 0x086A6148
+_08005790: .4byte 0x0201A448
+_08005794: .4byte 0x0202BF00
+_08005798: .4byte 0x0202BEFC
+_0800579C:
+ movs r0, #0x78
+ mov r4, sb
+ strh r0, [r4, #2]
+ movs r0, #0x50
+ strh r0, [r4, #4]
+_080057A6:
+ ldr r1, _0800597C @ =0x086A6148
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #0x11
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r6, #0
+ ldrh r7, [r5]
+ cmp r6, r7
+ bge _08005818
+ ldr r0, _08005980 @ =0x03005000
+ mov ip, r0
+ movs r1, #0xd
+ rsbs r1, r1, #0
+ mov sl, r1
+ ldr r2, _08005984 @ =0xFFFFFE00
+ mov r8, r2
+ mov r4, sb
+ adds r4, #8
+_080057CE:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldrb r2, [r1, #5]
+ mov r0, sl
+ ands r0, r2
+ strb r0, [r1, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ mov r2, sb
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08005988 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ mov r3, sb
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ ldrh r0, [r5]
+ cmp r6, r0
+ blt _080057CE
+_08005818:
+ ldr r1, [sp, #4]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800588A
+ movs r0, #0x9e
+ strh r0, [r1, #2]
+ movs r0, #0x94
+ strh r0, [r1, #4]
+ ldr r1, _0800597C @ =0x086A6148
+ ldr r0, _0800598C @ =0x0202BEE0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, #0x16
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r6, #0
+ ldrh r2, [r5]
+ cmp r6, r2
+ bge _0800588A
+ ldr r3, _08005980 @ =0x03005000
+ mov sl, r3
+ ldr r4, _08005984 @ =0xFFFFFE00
+ mov r8, r4
+ ldr r4, [sp, #4]
+ adds r4, #8
+_0800584E:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sl
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, [sp, #4]
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08005988 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sl
+ ldr r3, [sp, #4]
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ ldrh r0, [r5]
+ cmp r6, r0
+ blt _0800584E
+_0800588A:
+ ldr r1, _08005990 @ =0x0200C4F8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _080058EE
+ movs r0, #0xa8
+ strh r0, [r1, #2]
+ movs r0, #0x54
+ strh r0, [r1, #4]
+ ldr r5, _08005980 @ =0x03005000
+ ldr r2, _08005984 @ =0xFFFFFE00
+ mov r8, r2
+ adds r4, r1, #0
+ adds r4, #8
+ movs r6, #2
+_080058A6:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r0, [r2, #5]
+ movs r1, #0xc
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, _08005990 @ =0x0200C4F8
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08005988 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r3, _08005990 @ =0x0200C4F8
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _080058A6
+_080058EE:
+ ldr r1, [sp, #8]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005932
+ movs r0, #0x78
+ strh r0, [r1, #2]
+ movs r0, #0x84
+ strh r0, [r1, #4]
+ adds r6, r1, #0
+ adds r6, #8
+ ldrh r2, [r1, #8]
+ lsls r2, r2, #3
+ ldr r3, _08005980 @ =0x03005000
+ adds r2, r2, r3
+ movs r4, #2
+ ldrsh r1, [r6, r4]
+ adds r1, #0x78
+ ldr r7, _08005988 @ =0x000001FF
+ adds r0, r7, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08005984 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r0, [sp, #8]
+ ldrh r1, [r0, #8]
+ lsls r1, r1, #3
+ ldr r2, _08005980 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r0, [r0, #4]
+ ldrb r6, [r6, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+_08005932:
+ ldr r3, _08005994 @ =0x0202BE20
+ ldrh r0, [r3]
+ adds r0, #1
+ strh r0, [r3]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xc
+ ble _0800595A
+ movs r0, #0
+ strh r0, [r3]
+ ldr r2, _08005998 @ =0x0201A4F0
+ ldrh r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2]
+ ldr r2, _0800598C @ =0x0202BEE0
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_0800595A:
+ movs r0, #0
+ ldr r4, [sp]
+ strh r0, [r4]
+ mov r7, sb
+ strh r0, [r7]
+ ldr r1, [sp, #4]
+ strh r0, [r1]
+ ldr r2, [sp, #8]
+ strh r0, [r2]
+ add sp, #0x18
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800597C: .4byte 0x086A6148
+_08005980: .4byte 0x03005000
+_08005984: .4byte 0xFFFFFE00
+_08005988: .4byte 0x000001FF
+_0800598C: .4byte 0x0202BEE0
+_08005990: .4byte 0x0200C4F8
+_08005994: .4byte 0x0202BE20
+_08005998: .4byte 0x0201A4F0
+
+ thumb_func_start sub_599C
+sub_599C: @ 0x0800599C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0xc
+ ldr r7, _08005CFC @ =0x0200B3B8
+ adds r6, r7, #0
+ adds r6, #0xb8
+ ldr r0, _08005D00 @ =0x0201A448
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r2, #0xb8
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r3, #0xe6
+ lsls r3, r3, #2
+ adds r0, r7, r3
+ adds r1, r1, r0
+ str r1, [sp]
+ ldr r0, _08005D04 @ =0x0202BEFC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r1, r0, #0
+ muls r1, r2, r1
+ ldr r4, _08005D08 @ =0x00000C38
+ adds r0, r7, r4
+ adds r1, r1, r0
+ str r1, [sp, #4]
+ movs r2, #0
+ movs r0, #1
+ strh r0, [r7]
+ strh r0, [r6]
+ ldr r0, _08005D0C @ =0x0202A55C
+ ldrh r0, [r0]
+ ldr r5, _08005D10 @ =0x0200B528
+ strh r0, [r5]
+ ldr r1, _08005D14 @ =0x0202A568
+ ldrh r0, [r1]
+ ldr r3, _08005D18 @ =0x0200B5E0
+ strh r0, [r3]
+ ldrh r0, [r1, #2]
+ ldr r4, _08005D1C @ =0x0200B698
+ strh r0, [r4]
+ ldr r5, [sp]
+ strh r2, [r5]
+ ldr r0, _08005D20 @ =0x0202BEC4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r1, [sp, #4]
+ strh r0, [r1]
+ ldr r0, _08005D24 @ =0x0202C590
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r2, _08005D28 @ =0x0200C4F8
+ strh r0, [r2]
+ ldr r0, _08005D2C @ =0x086A6148
+ movs r1, #0x1d
+ adds r2, r7, #0
+ bl sub_2414
+ ldr r0, _08005D30 @ =0x0201A4F0
+ ldrh r0, [r0]
+ adds r0, #0x14
+ strh r0, [r7, #2]
+ ldr r0, _08005D34 @ =0x0202A57C
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #4
+ adds r0, #0x54
+ strh r0, [r7, #4]
+ adds r5, r7, #0
+ adds r5, #8
+ ldr r4, _08005D38 @ =0x03005000
+ mov sl, r4
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ add r1, sl
+ ldrb r2, [r1, #5]
+ movs r4, #0xd
+ rsbs r4, r4, #0
+ adds r0, r4, #0
+ ands r0, r2
+ movs r2, #8
+ mov sb, r2
+ mov r3, sb
+ orrs r0, r3
+ strb r0, [r1, #5]
+ ldrh r2, [r7, #8]
+ lsls r2, r2, #3
+ add r2, sl
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r7, r3]
+ adds r1, r1, r0
+ ldr r0, _08005D3C @ =0x000001FF
+ mov r8, r0
+ mov r3, r8
+ ands r1, r3
+ ldrh r3, [r2, #2]
+ ldr r0, _08005D40 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ add r1, sl
+ ldrb r0, [r7, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldr r5, _08005D44 @ =0x0202BF08
+ ldr r0, _08005D48 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #3
+ bl __divsi3
+ adds r0, #0x56
+ strh r0, [r5]
+ movs r1, #0xd
+ strh r1, [r6, #2]
+ strh r0, [r6, #4]
+ adds r5, r7, #0
+ adds r5, #0xc0
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ add r0, sl
+ ldrb r1, [r0, #5]
+ ands r4, r1
+ mov r2, sb
+ orrs r4, r2
+ strb r4, [r0, #5]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ add r2, sl
+ movs r3, #2
+ ldrsh r1, [r5, r3]
+ movs r4, #2
+ ldrsh r0, [r6, r4]
+ adds r1, r1, r0
+ mov r0, r8
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08005D40 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ add r1, sl
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldr r1, _08005D10 @ =0x0200B528
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005B30
+ movs r0, #0x24
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ mov r4, sl
+ ldr r2, _08005D40 @ =0xFFFFFE00
+ mov r8, r2
+ movs r3, #0xbc
+ lsls r3, r3, #1
+ adds r6, r7, r3
+ movs r7, #5
+_08005AF6:
+ ldrh r3, [r6]
+ lsls r3, r3, #3
+ adds r3, r3, r4
+ movs r5, #2
+ ldrsh r1, [r6, r5]
+ ldr r2, _08005D10 @ =0x0200B528
+ movs r5, #2
+ ldrsh r0, [r2, r5]
+ adds r1, r1, r0
+ ldr r2, _08005D3C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r6]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldr r3, _08005D10 @ =0x0200B528
+ ldrb r0, [r3, #4]
+ ldrb r5, [r6, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r6, #8
+ subs r7, #1
+ cmp r7, #0
+ bge _08005AF6
+_08005B30:
+ ldr r6, _08005D18 @ =0x0200B5E0
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _08005BD4
+ movs r0, #0x24
+ strh r0, [r6, #2]
+ movs r0, #0x1c
+ strh r0, [r6, #4]
+ movs r7, #0
+ ldr r0, _08005D4C @ =0x0202BF0C
+ mov ip, r0
+ ldr r6, _08005D38 @ =0x03005000
+ ldr r1, _08005D50 @ =0x086A5DF2
+ mov sb, r1
+ ldr r2, _08005D54 @ =0xFFFFFC00
+ mov sl, r2
+ ldr r5, _08005D18 @ =0x0200B5E0
+ adds r5, #8
+ ldr r3, _08005D40 @ =0xFFFFFE00
+ mov r8, r3
+_08005B58:
+ ldrh r4, [r5]
+ lsls r4, r4, #3
+ adds r4, r4, r6
+ lsls r3, r7, #1
+ ldr r0, _08005D58 @ =0x0202BF14
+ movs r1, #0
+ ldrsh r2, [r0, r1]
+ lsls r0, r2, #3
+ adds r3, r3, r0
+ ldr r0, _08005D5C @ =0x086A5DDA
+ adds r3, r3, r0
+ str r3, [sp, #8]
+ mov r3, ip
+ movs r0, #0
+ ldrsh r1, [r3, r0]
+ lsls r1, r1, #1
+ lsls r0, r2, #2
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ add r1, sb
+ ldrh r1, [r1]
+ ldr r2, [sp, #8]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r3, _08005D60 @ =0x000003FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r2, [r4, #4]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, #4]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r4, #2
+ ldrsh r1, [r5, r4]
+ ldr r2, _08005D18 @ =0x0200B5E0
+ movs r4, #2
+ ldrsh r0, [r2, r4]
+ adds r1, r1, r0
+ ldr r2, _08005D3C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldr r3, _08005D18 @ =0x0200B5E0
+ ldrb r0, [r3, #4]
+ ldrb r4, [r5, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ adds r5, #8
+ adds r7, #1
+ cmp r7, #3
+ ble _08005B58
+_08005BD4:
+ ldr r5, _08005D1C @ =0x0200B698
+ ldrh r0, [r5]
+ cmp r0, #1
+ bne _08005C68
+ movs r0, #0x30
+ strh r0, [r5, #2]
+ movs r0, #0x28
+ strh r0, [r5, #4]
+ ldr r6, _08005D4C @ =0x0202BF0C
+ mov ip, r6
+ ldr r0, _08005D5C @ =0x086A5DDA
+ ldr r1, _08005D64 @ =0x086A5E1A
+ mov sl, r1
+ adds r4, r5, #0
+ adds r4, #8
+ adds r5, r0, #0
+ adds r5, #8
+ ldr r2, _08005D54 @ =0xFFFFFC00
+ mov sb, r2
+ ldr r3, _08005D40 @ =0xFFFFFE00
+ mov r8, r3
+ movs r7, #3
+_08005C00:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r6, _08005D38 @ =0x03005000
+ adds r3, r3, r6
+ mov r1, ip
+ movs r2, #0
+ ldrsh r0, [r1, r2]
+ lsls r0, r0, #1
+ add r0, sl
+ ldrh r1, [r0]
+ ldrh r6, [r5]
+ adds r1, r1, r6
+ ldr r2, _08005D60 @ =0x000003FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r6, _08005D38 @ =0x03005000
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ ldr r2, _08005D1C @ =0x0200B698
+ movs r6, #2
+ ldrsh r0, [r2, r6]
+ adds r1, r1, r0
+ ldr r2, _08005D3C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ ldr r3, _08005D38 @ =0x03005000
+ adds r1, r1, r3
+ ldr r6, _08005D1C @ =0x0200B698
+ ldrb r0, [r6, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #2
+ subs r7, #1
+ cmp r7, #0
+ bge _08005C00
+_08005C68:
+ ldr r3, [sp]
+ ldrh r0, [r3]
+ cmp r0, #1
+ bne _08005CD8
+ movs r0, #0x24
+ strh r0, [r3, #2]
+ movs r0, #0x40
+ strh r0, [r3, #4]
+ ldr r1, _08005D2C @ =0x086A6148
+ ldr r0, _08005D00 @ =0x0201A448
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ adds r0, #5
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r7, #0
+ ldrh r6, [r5]
+ cmp r7, r6
+ bge _08005CD8
+ ldr r0, _08005D38 @ =0x03005000
+ mov sb, r0
+ ldr r1, _08005D40 @ =0xFFFFFE00
+ mov r8, r1
+ adds r4, r3, #0
+ adds r4, #8
+_08005C9C:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ ldr r6, [sp]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r6, _08005D3C @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ ldr r2, [sp]
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ adds r7, #1
+ ldrh r6, [r5]
+ cmp r7, r6
+ blt _08005C9C
+_08005CD8:
+ ldr r1, [sp, #4]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005DD0
+ ldr r0, _08005D04 @ =0x0202BEFC
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r2, r0, #0
+ cmp r1, #0
+ beq _08005CF0
+ cmp r1, #4
+ bne _08005D68
+_08005CF0:
+ movs r0, #0x78
+ ldr r3, [sp, #4]
+ strh r0, [r3, #2]
+ movs r0, #0x64
+ strh r0, [r3, #4]
+ b _08005D72
+ .align 2, 0
+_08005CFC: .4byte 0x0200B3B8
+_08005D00: .4byte 0x0201A448
+_08005D04: .4byte 0x0202BEFC
+_08005D08: .4byte 0x00000C38
+_08005D0C: .4byte 0x0202A55C
+_08005D10: .4byte 0x0200B528
+_08005D14: .4byte 0x0202A568
+_08005D18: .4byte 0x0200B5E0
+_08005D1C: .4byte 0x0200B698
+_08005D20: .4byte 0x0202BEC4
+_08005D24: .4byte 0x0202C590
+_08005D28: .4byte 0x0200C4F8
+_08005D2C: .4byte 0x086A6148
+_08005D30: .4byte 0x0201A4F0
+_08005D34: .4byte 0x0202A57C
+_08005D38: .4byte 0x03005000
+_08005D3C: .4byte 0x000001FF
+_08005D40: .4byte 0xFFFFFE00
+_08005D44: .4byte 0x0202BF08
+_08005D48: .4byte 0x0202ADE0
+_08005D4C: .4byte 0x0202BF0C
+_08005D50: .4byte 0x086A5DF2
+_08005D54: .4byte 0xFFFFFC00
+_08005D58: .4byte 0x0202BF14
+_08005D5C: .4byte 0x086A5DDA
+_08005D60: .4byte 0x000003FF
+_08005D64: .4byte 0x086A5E1A
+_08005D68:
+ movs r0, #0x78
+ ldr r4, [sp, #4]
+ strh r0, [r4, #2]
+ movs r0, #0x50
+ strh r0, [r4, #4]
+_08005D72:
+ ldr r1, _08005E4C @ =0x086A6148
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #0x11
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r7, #0
+ ldrh r6, [r5]
+ cmp r7, r6
+ bge _08005DD0
+ ldr r0, _08005E50 @ =0x03005000
+ mov sb, r0
+ ldr r1, _08005E54 @ =0xFFFFFE00
+ mov r8, r1
+ ldr r4, [sp, #4]
+ adds r4, #8
+_08005D94:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ ldr r6, [sp, #4]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r6, _08005E58 @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ ldr r2, [sp, #4]
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ adds r7, #1
+ ldrh r6, [r5]
+ cmp r7, r6
+ blt _08005D94
+_08005DD0:
+ ldr r1, _08005E5C @ =0x0200C4F8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005E34
+ movs r0, #0xa8
+ strh r0, [r1, #2]
+ movs r0, #0x54
+ strh r0, [r1, #4]
+ ldr r5, _08005E50 @ =0x03005000
+ ldr r2, _08005E54 @ =0xFFFFFE00
+ mov r8, r2
+ adds r4, r1, #0
+ adds r4, #8
+ movs r7, #2
+_08005DEC:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r0, [r2, #5]
+ movs r1, #0xc
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r6, #2
+ ldrsh r1, [r4, r6]
+ ldr r2, _08005E5C @ =0x0200C4F8
+ movs r6, #2
+ ldrsh r0, [r2, r6]
+ adds r1, r1, r0
+ ldr r2, _08005E58 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r3, _08005E5C @ =0x0200C4F8
+ ldrb r0, [r3, #4]
+ ldrb r6, [r4, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+ adds r4, #8
+ subs r7, #1
+ cmp r7, #0
+ bge _08005DEC
+_08005E34:
+ movs r0, #0
+ ldr r1, [sp, #4]
+ strh r0, [r1]
+ add sp, #0xc
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005E4C: .4byte 0x086A6148
+_08005E50: .4byte 0x03005000
+_08005E54: .4byte 0xFFFFFE00
+_08005E58: .4byte 0x000001FF
+_08005E5C: .4byte 0x0200C4F8
+
+ thumb_func_start sub_5E60
+sub_5E60: @ 0x08005E60
+ ldr r1, _08005E84 @ =0x0202C5F0
+ movs r2, #0
+ ldr r0, _08005E88 @ =0x0000DDDD
+ strh r0, [r1]
+ ldr r0, _08005E8C @ =0x0202C5B4
+ movs r1, #1
+ strh r1, [r0]
+ ldr r0, _08005E90 @ =0x0201C180
+ strh r1, [r0]
+ ldr r0, _08005E94 @ =0x0201B128
+ strb r2, [r0]
+ ldr r0, _08005E98 @ =0x0201C1BC
+ strb r2, [r0]
+ ldr r0, _08005E9C @ =0x0202C544
+ strb r2, [r0]
+ ldr r0, _08005EA0 @ =0x0202BECC
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_08005E84: .4byte 0x0202C5F0
+_08005E88: .4byte 0x0000DDDD
+_08005E8C: .4byte 0x0202C5B4
+_08005E90: .4byte 0x0201C180
+_08005E94: .4byte 0x0201B128
+_08005E98: .4byte 0x0201C1BC
+_08005E9C: .4byte 0x0202C544
+_08005EA0: .4byte 0x0202BECC
+
+ thumb_func_start sub_5EA4
+sub_5EA4: @ 0x08005EA4
+ push {lr}
+ ldr r0, _08005EB4 @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08005EB8
+ bl sub_639C
+ b _08005EBC
+ .align 2, 0
+_08005EB4: .4byte 0x0202BF20
+_08005EB8:
+ bl sub_65DC
+_08005EBC:
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_5EC8
+sub_5EC8: @ 0x08005EC8
+ push {lr}
+ ldr r0, _08005ED8 @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08005EDC
+ bl sub_5EEC
+ b _08005EE0
+ .align 2, 0
+_08005ED8: .4byte 0x0202BF20
+_08005EDC:
+ bl sub_6144
+_08005EE0:
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_5EEC
+sub_5EEC: @ 0x08005EEC
+ push {r4, r5, lr}
+ ldr r0, _08005F0C @ =0x0201B128
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08005F5C
+ ldr r0, _08005F10 @ =0x0201C1BC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _08005F14
+ cmp r0, #1
+ beq _08005F4C
+ b _08006136
+ .align 2, 0
+_08005F0C: .4byte 0x0201B128
+_08005F10: .4byte 0x0201C1BC
+_08005F14:
+ ldr r0, _08005F28 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08005F34
+ ldr r1, _08005F2C @ =0x0202C5F0
+ ldr r0, _08005F30 @ =0x0000FEFE
+ strh r0, [r1]
+ b _08006136
+ .align 2, 0
+_08005F28: .4byte 0x0200B0C0
+_08005F2C: .4byte 0x0202C5F0
+_08005F30: .4byte 0x0000FEFE
+_08005F34:
+ ldr r1, _08005F48 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08005F3C:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08005F3C
+ b _08006136
+ .align 2, 0
+_08005F48: .4byte 0x0202C5F0
+_08005F4C:
+ ldr r1, _08005F54 @ =0x0202C5F0
+ ldr r0, _08005F58 @ =0x0000ECEC
+ strh r0, [r1]
+ b _08006136
+ .align 2, 0
+_08005F54: .4byte 0x0202C5F0
+_08005F58: .4byte 0x0000ECEC
+_08005F5C:
+ ldr r0, _08005F78 @ =0x0201C180
+ ldrh r1, [r0]
+ adds r5, r0, #0
+ cmp r1, #7
+ bhi _08005F84
+ ldr r1, _08005F7C @ =0x0202C5F0
+ ldr r2, _08005F80 @ =0x0000DDDD
+ adds r0, r1, #0
+ adds r0, #0xe
+_08005F6E:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08005F6E
+ b _08006130
+ .align 2, 0
+_08005F78: .4byte 0x0201C180
+_08005F7C: .4byte 0x0202C5F0
+_08005F80: .4byte 0x0000DDDD
+_08005F84:
+ cmp r1, #0xf
+ bls _08005F8A
+ b _08006120
+_08005F8A:
+ ldrh r2, [r5]
+ adds r1, r2, #0
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #0x12
+ lsrs r0, r0, #0x10
+ mov ip, r0
+ ldr r4, _08006118 @ =0x0202C5F0
+ strh r2, [r4]
+ ldr r3, _0800611C @ =0x0202A1C0
+ lsls r2, r0, #1
+ adds r2, r2, r3
+ adds r0, #1
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #2
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #3
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #2]
+ mov r2, ip
+ adds r2, #4
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #6
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #7
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #4]
+ mov r2, ip
+ adds r2, #8
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #9
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xa
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xb
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #6]
+ mov r2, ip
+ adds r2, #0xc
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0xd
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xe
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xf
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #8]
+ mov r2, ip
+ adds r2, #0x10
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x11
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x12
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x13
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xa]
+ mov r2, ip
+ adds r2, #0x14
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x15
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x16
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x17
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xc]
+ mov r2, ip
+ adds r2, #0x18
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x19
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1a
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1b
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xe]
+ b _08006130
+ .align 2, 0
+_08006118: .4byte 0x0202C5F0
+_0800611C: .4byte 0x0202A1C0
+_08006120:
+ ldr r1, _08006140 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08006128:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08006128
+_08006130:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_08006136:
+ movs r0, #0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006140: .4byte 0x0202C5F0
+
+ thumb_func_start sub_6144
+sub_6144: @ 0x08006144
+ push {r4, r5, lr}
+ ldr r0, _08006164 @ =0x0201B128
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _080061B4
+ ldr r0, _08006168 @ =0x0202C544
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0800616C
+ cmp r0, #1
+ beq _080061A4
+ b _0800638E
+ .align 2, 0
+_08006164: .4byte 0x0201B128
+_08006168: .4byte 0x0202C544
+_0800616C:
+ ldr r0, _08006180 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800618C
+ ldr r1, _08006184 @ =0x0202C5F0
+ ldr r0, _08006188 @ =0x0000FEFE
+ strh r0, [r1]
+ b _0800638E
+ .align 2, 0
+_08006180: .4byte 0x0200B0C0
+_08006184: .4byte 0x0202C5F0
+_08006188: .4byte 0x0000FEFE
+_0800618C:
+ ldr r1, _080061A0 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08006194:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08006194
+ b _0800638E
+ .align 2, 0
+_080061A0: .4byte 0x0202C5F0
+_080061A4:
+ ldr r1, _080061AC @ =0x0202C5F0
+ ldr r0, _080061B0 @ =0x0000ECEC
+ strh r0, [r1]
+ b _0800638E
+ .align 2, 0
+_080061AC: .4byte 0x0202C5F0
+_080061B0: .4byte 0x0000ECEC
+_080061B4:
+ ldr r0, _080061D0 @ =0x0201C180
+ ldrh r1, [r0]
+ adds r5, r0, #0
+ cmp r1, #7
+ bhi _080061DC
+ ldr r1, _080061D4 @ =0x0202C5F0
+ ldr r2, _080061D8 @ =0x0000DDDD
+ adds r0, r1, #0
+ adds r0, #0xe
+_080061C6:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _080061C6
+ b _08006388
+ .align 2, 0
+_080061D0: .4byte 0x0201C180
+_080061D4: .4byte 0x0202C5F0
+_080061D8: .4byte 0x0000DDDD
+_080061DC:
+ cmp r1, #0xf
+ bls _080061E2
+ b _08006378
+_080061E2:
+ ldrh r2, [r5]
+ adds r1, r2, #0
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #0x12
+ lsrs r0, r0, #0x10
+ mov ip, r0
+ ldr r4, _08006370 @ =0x0202C5F0
+ strh r2, [r4]
+ ldr r3, _08006374 @ =0x0202A1C0
+ lsls r2, r0, #1
+ adds r2, r2, r3
+ adds r0, #1
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #2
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #3
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #2]
+ mov r2, ip
+ adds r2, #4
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #6
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #7
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #4]
+ mov r2, ip
+ adds r2, #8
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #9
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xa
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xb
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #6]
+ mov r2, ip
+ adds r2, #0xc
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0xd
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xe
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xf
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #8]
+ mov r2, ip
+ adds r2, #0x10
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x11
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x12
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x13
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xa]
+ mov r2, ip
+ adds r2, #0x14
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x15
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x16
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x17
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xc]
+ mov r2, ip
+ adds r2, #0x18
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x19
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1a
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1b
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xe]
+ b _08006388
+ .align 2, 0
+_08006370: .4byte 0x0202C5F0
+_08006374: .4byte 0x0202A1C0
+_08006378:
+ ldr r1, _08006398 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08006380:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08006380
+_08006388:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_0800638E:
+ movs r0, #0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006398: .4byte 0x0202C5F0
+
+ thumb_func_start sub_639C
+sub_639C: @ 0x0800639C
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #0x38
+ ldr r4, _080063C0 @ =0x0201B128
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _08006438
+ ldr r3, _080063C4 @ =0x0201C1BC
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ cmp r1, #0
+ beq _080063C8
+ cmp r1, #1
+ beq _080063E8
+ b _080065AA
+ .align 2, 0
+_080063C0: .4byte 0x0201B128
+_080063C4: .4byte 0x0201C1BC
+_080063C8:
+ ldr r2, _080063E0 @ =0x0201A4D0
+ ldrh r0, [r2]
+ ldr r1, _080063E4 @ =0x0000FEFE
+ cmp r0, r1
+ beq _080063DA
+ ldrh r0, [r2, #2]
+ cmp r0, r1
+ beq _080063DA
+ b _080065AA
+_080063DA:
+ movs r0, #1
+ strb r0, [r3]
+ b _080065AA
+ .align 2, 0
+_080063E0: .4byte 0x0201A4D0
+_080063E4: .4byte 0x0000FEFE
+_080063E8:
+ ldr r3, _0800640C @ =0x0201A4D0
+ ldrh r2, [r3]
+ ldr r0, _08006410 @ =0x0000ECEC
+ cmp r2, r0
+ bne _0800641C
+ ldrh r0, [r3, #2]
+ cmp r0, r2
+ bne _0800641C
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ strb r0, [r4]
+ ldr r0, _08006414 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r0, _08006418 @ =0x0201C180
+ strh r1, [r0]
+ b _080065AA
+ .align 2, 0
+_0800640C: .4byte 0x0201A4D0
+_08006410: .4byte 0x0000ECEC
+_08006414: .4byte 0x0202BEFC
+_08006418: .4byte 0x0201C180
+_0800641C:
+ ldr r1, _08006434 @ =0x0202BECC
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ bgt _0800642E
+ b _080065AA
+_0800642E:
+ movs r0, #1
+ b _080065CC
+ .align 2, 0
+_08006434: .4byte 0x0202BECC
+_08006438:
+ ldr r7, _0800656C @ =0x0201A4D0
+ ldrh r1, [r7, #2]
+ adds r0, r1, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #7
+ bls _0800644A
+ b _080065CA
+_0800644A:
+ ldr r0, _08006570 @ =0x0202C5B4
+ mov r8, r0
+ strh r1, [r0]
+ mov r2, sp
+ ldrh r1, [r7, #6]
+ movs r6, #0xf
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2]
+ movs r5, #0xf0
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #2]
+ movs r4, #0xf0
+ lsls r4, r4, #4
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #4]
+ movs r3, #0xf0
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #6]
+ ldrh r1, [r7, #0xa]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #8]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0xa]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0xc]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0xe]
+ ldrh r1, [r7, #0xe]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x10]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x12]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x14]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x16]
+ ldrh r1, [r7, #0x12]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x18]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x1a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x1c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x1e]
+ ldrh r1, [r7, #0x16]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x20]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x22]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x24]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x26]
+ ldrh r1, [r7, #0x1a]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x28]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x2a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x2c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x2e]
+ mov r1, sp
+ ldrh r0, [r7, #0x1e]
+ ands r6, r0
+ strh r6, [r1, #0x30]
+ ands r5, r0
+ lsrs r5, r5, #4
+ strh r5, [r1, #0x32]
+ ands r4, r0
+ lsrs r4, r4, #8
+ strh r4, [r1, #0x34]
+ ands r3, r0
+ lsrs r3, r3, #0xc
+ strh r3, [r1, #0x36]
+ movs r3, #0
+ ldr r6, _08006574 @ =0x0202A1C0
+ ldr r5, _08006578 @ =0x0202A390
+ mov r4, sp
+_08006540:
+ mov r2, r8
+ ldrh r1, [r2]
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ cmp r0, #0
+ bne _0800657C
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _0800657C
+ adds r1, r1, r5
+ movs r0, #2
+ b _08006592
+ .align 2, 0
+_0800656C: .4byte 0x0201A4D0
+_08006570: .4byte 0x0202C5B4
+_08006574: .4byte 0x0202A1C0
+_08006578: .4byte 0x0202A390
+_0800657C:
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #1
+ bne _08006594
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _08006594
+ adds r1, r1, r5
+ movs r0, #3
+_08006592:
+ strh r0, [r1]
+_08006594:
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1b
+ ble _08006540
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #0xf
+ bne _080065AA
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _080065CC
+_080065AA:
+ movs r3, #0
+ ldr r5, _080065D8 @ =0x0201A4D0
+ movs r4, #0
+_080065B0:
+ adds r2, r3, #1
+ lsls r0, r3, #2
+ movs r1, #1
+ adds r0, r0, r5
+ adds r0, #2
+_080065BA:
+ strh r4, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _080065BA
+ adds r3, r2, #0
+ cmp r3, #7
+ ble _080065B0
+_080065CA:
+ movs r0, #0
+_080065CC:
+ add sp, #0x38
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080065D8: .4byte 0x0201A4D0
+
+ thumb_func_start sub_65DC
+sub_65DC: @ 0x080065DC
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #0x38
+ ldr r4, _08006600 @ =0x0201B128
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _08006678
+ ldr r3, _08006604 @ =0x0202C544
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ cmp r1, #0
+ beq _08006608
+ cmp r1, #1
+ beq _08006628
+ b _080067EA
+ .align 2, 0
+_08006600: .4byte 0x0201B128
+_08006604: .4byte 0x0202C544
+_08006608:
+ ldr r2, _08006620 @ =0x0201A4D0
+ ldrh r0, [r2]
+ ldr r1, _08006624 @ =0x0000FEFE
+ cmp r0, r1
+ beq _0800661A
+ ldrh r0, [r2, #2]
+ cmp r0, r1
+ beq _0800661A
+ b _080067EA
+_0800661A:
+ movs r0, #1
+ strb r0, [r3]
+ b _080067EA
+ .align 2, 0
+_08006620: .4byte 0x0201A4D0
+_08006624: .4byte 0x0000FEFE
+_08006628:
+ ldr r3, _0800664C @ =0x0201A4D0
+ ldrh r2, [r3]
+ ldr r0, _08006650 @ =0x0000ECEC
+ cmp r2, r0
+ bne _0800665C
+ ldrh r0, [r3, #2]
+ cmp r0, r2
+ bne _0800665C
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ strb r0, [r4]
+ ldr r0, _08006654 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r0, _08006658 @ =0x0201C180
+ strh r1, [r0]
+ b _080067EA
+ .align 2, 0
+_0800664C: .4byte 0x0201A4D0
+_08006650: .4byte 0x0000ECEC
+_08006654: .4byte 0x0202BEFC
+_08006658: .4byte 0x0201C180
+_0800665C:
+ ldr r1, _08006674 @ =0x0202BECC
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ bgt _0800666E
+ b _080067EA
+_0800666E:
+ movs r0, #1
+ b _0800680C
+ .align 2, 0
+_08006674: .4byte 0x0202BECC
+_08006678:
+ ldr r7, _080067AC @ =0x0201A4D0
+ ldrh r1, [r7]
+ adds r0, r1, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #7
+ bls _0800668A
+ b _0800680A
+_0800668A:
+ ldr r0, _080067B0 @ =0x0202C5B4
+ mov r8, r0
+ strh r1, [r0]
+ mov r2, sp
+ ldrh r1, [r7, #4]
+ movs r6, #0xf
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2]
+ movs r5, #0xf0
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #2]
+ movs r4, #0xf0
+ lsls r4, r4, #4
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #4]
+ movs r3, #0xf0
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #6]
+ ldrh r1, [r7, #8]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #8]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0xa]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0xc]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0xe]
+ ldrh r1, [r7, #0xc]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x10]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x12]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x14]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x16]
+ ldrh r1, [r7, #0x10]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x18]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x1a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x1c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x1e]
+ ldrh r1, [r7, #0x14]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x20]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x22]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x24]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x26]
+ ldrh r1, [r7, #0x18]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x28]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x2a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x2c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x2e]
+ mov r1, sp
+ ldrh r0, [r7, #0x1c]
+ ands r6, r0
+ strh r6, [r1, #0x30]
+ ands r5, r0
+ lsrs r5, r5, #4
+ strh r5, [r1, #0x32]
+ ands r4, r0
+ lsrs r4, r4, #8
+ strh r4, [r1, #0x34]
+ ands r3, r0
+ lsrs r3, r3, #0xc
+ strh r3, [r1, #0x36]
+ movs r3, #0
+ ldr r6, _080067B4 @ =0x0202A1C0
+ ldr r5, _080067B8 @ =0x0202A390
+ mov r4, sp
+_08006780:
+ mov r2, r8
+ ldrh r1, [r2]
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ cmp r0, #0
+ bne _080067BC
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _080067BC
+ adds r1, r1, r5
+ movs r0, #2
+ b _080067D2
+ .align 2, 0
+_080067AC: .4byte 0x0201A4D0
+_080067B0: .4byte 0x0202C5B4
+_080067B4: .4byte 0x0202A1C0
+_080067B8: .4byte 0x0202A390
+_080067BC:
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #1
+ bne _080067D4
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _080067D4
+ adds r1, r1, r5
+ movs r0, #3
+_080067D2:
+ strh r0, [r1]
+_080067D4:
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1b
+ ble _08006780
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #0xf
+ bne _080067EA
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _0800680C
+_080067EA:
+ movs r3, #0
+ ldr r5, _08006818 @ =0x0201A4D0
+ movs r4, #0
+_080067F0:
+ adds r2, r3, #1
+ lsls r0, r3, #2
+ movs r1, #1
+ adds r0, r0, r5
+ adds r0, #2
+_080067FA:
+ strh r4, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _080067FA
+ adds r3, r2, #0
+ cmp r3, #7
+ ble _080067F0
+_0800680A:
+ movs r0, #0
+_0800680C:
+ add sp, #0x38
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006818: .4byte 0x0201A4D0
+
+ thumb_func_start sub_681C
+sub_681C: @ 0x0800681C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #0xc
+ add r2, sp, #8
+ movs r1, #0
+ strh r1, [r2]
+ ldr r2, _08006884 @ =0x040000D4
+ add r1, sp, #8
+ str r1, [r2]
+ ldr r1, _08006888 @ =0x03000000
+ str r1, [r2, #4]
+ ldr r1, _0800688C @ =0x81000400
+ str r1, [r2, #8]
+ ldr r1, [r2, #8]
+ movs r2, #0
+ mov r8, r2
+ lsls r7, r0, #0x10
+ asrs r2, r7, #0x10
+ cmp r2, #0xc8
+ bne _080068CC
+ ldr r0, _08006890 @ =0x0202A1C0
+ movs r3, #0xc8
+ lsls r3, r3, #1
+ adds r0, r0, r3
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ beq _08006894
+ movs r5, #1
+ str r5, [sp]
+ movs r4, #2
+ str r4, [sp, #4]
+ movs r0, #0x22
+ movs r1, #1
+ movs r2, #5
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x20
+ movs r1, #1
+ movs r2, #6
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x21
+ b _080068BE
+ .align 2, 0
+_08006884: .4byte 0x040000D4
+_08006888: .4byte 0x03000000
+_0800688C: .4byte 0x81000400
+_08006890: .4byte 0x0202A1C0
+_08006894:
+ movs r5, #1
+ str r5, [sp]
+ movs r4, #2
+ str r4, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #1
+ movs r2, #5
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #1
+ movs r2, #6
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2a
+_080068BE:
+ movs r1, #1
+ movs r2, #7
+ movs r3, #2
+ bl sub_105A0
+ mov sb, r7
+ b _08006900
+_080068CC:
+ movs r6, #0
+ mov sb, r7
+ ldr r1, _08006998 @ =0x0805C8B4
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r4, r0, r1
+_080068DE:
+ ldrh r0, [r4]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #5
+ movs r1, #1
+ str r1, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #1
+ movs r3, #2
+ bl sub_105A0
+ adds r4, #2
+ adds r6, #1
+ cmp r6, #2
+ ble _080068DE
+_08006900:
+ ldr r0, _0800699C @ =0x0202A1C0
+ mov r3, sb
+ asrs r2, r3, #0x10
+ lsls r1, r2, #1
+ adds r1, r1, r0
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _080069C4
+ movs r6, #0
+ ldr r1, _080069A0 @ =0x0805C8CC
+ ldr r5, _080069A4 @ =0x040000D4
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r7, r0, r1
+_08006924:
+ ldrh r1, [r7]
+ movs r2, #0x10
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ adds r3, r0, #0
+ ands r3, r1
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _0800693A
+ movs r4, #4
+_0800693A:
+ ldr r1, _080069A8 @ =0x08090780
+ adds r0, r3, r1
+ str r0, [r5]
+ ldr r0, _080069AC @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r2, _080069B0 @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ movs r0, #0x80
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r1, r3, r1
+ str r1, [r5]
+ ldr r0, _080069B4 @ =0x0201B130
+ str r0, [r5, #4]
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ mov r1, r8
+ movs r2, #0
+ bl sub_71DC
+ add r8, r4
+ adds r7, #2
+ adds r6, #1
+ cmp r6, #9
+ ble _08006924
+ ldr r4, _080069B8 @ =0x03000000
+ ldr r1, _080069BC @ =0x06004C00
+ adds r0, r4, #0
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r0, _080069A4 @ =0x040000D4
+ str r1, [r0]
+ str r4, [r0, #4]
+ ldr r1, _080069C0 @ =0x81000400
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ movs r1, #0
+ mov r8, r1
+ b _080069DC
+ .align 2, 0
+_08006998: .4byte 0x0805C8B4
+_0800699C: .4byte 0x0202A1C0
+_080069A0: .4byte 0x0805C8CC
+_080069A4: .4byte 0x040000D4
+_080069A8: .4byte 0x08090780
+_080069AC: .4byte 0x0202BE30
+_080069B0: .4byte 0x80000010
+_080069B4: .4byte 0x0201B130
+_080069B8: .4byte 0x03000000
+_080069BC: .4byte 0x06004C00
+_080069C0: .4byte 0x81000400
+_080069C4:
+ ldr r4, _08006A74 @ =0x06004C00
+ movs r6, #9
+_080069C8:
+ ldr r0, _08006A78 @ =0x08092FA0
+ adds r1, r4, #0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #0x20
+ subs r6, #1
+ cmp r6, #0
+ bge _080069C8
+_080069DC:
+ ldr r1, _08006A7C @ =0x0202A1C0
+ mov r3, sb
+ asrs r2, r3, #0x10
+ lsls r0, r2, #1
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #1
+ beq _080069F2
+ cmp r0, #2
+ ble _08006AA4
+_080069F2:
+ movs r6, #0
+ ldr r1, _08006A80 @ =0x0805C8E0
+ ldr r5, _08006A84 @ =0x040000D4
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r7, r0, r1
+_08006A04:
+ ldrh r1, [r7]
+ movs r2, #0x10
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ adds r3, r0, #0
+ ands r3, r1
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _08006A1A
+ movs r4, #6
+_08006A1A:
+ ldr r1, _08006A88 @ =0x08090780
+ adds r0, r3, r1
+ str r0, [r5]
+ ldr r0, _08006A8C @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r2, _08006A90 @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ movs r0, #0x80
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r1, r3, r1
+ str r1, [r5]
+ ldr r0, _08006A94 @ =0x0201B130
+ str r0, [r5, #4]
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ mov r1, r8
+ movs r2, #0
+ bl sub_71DC
+ add r8, r4
+ adds r7, #2
+ adds r6, #1
+ cmp r6, #0xa
+ ble _08006A04
+ ldr r4, _08006A98 @ =0x03000000
+ ldr r1, _08006A9C @ =0x06004D00
+ adds r0, r4, #0
+ movs r2, #9
+ movs r3, #2
+ bl sub_10708
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r0, _08006A84 @ =0x040000D4
+ str r1, [r0]
+ str r4, [r0, #4]
+ ldr r1, _08006AA0 @ =0x81000400
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ b _08006ABC
+ .align 2, 0
+_08006A74: .4byte 0x06004C00
+_08006A78: .4byte 0x08092FA0
+_08006A7C: .4byte 0x0202A1C0
+_08006A80: .4byte 0x0805C8E0
+_08006A84: .4byte 0x040000D4
+_08006A88: .4byte 0x08090780
+_08006A8C: .4byte 0x0202BE30
+_08006A90: .4byte 0x80000010
+_08006A94: .4byte 0x0201B130
+_08006A98: .4byte 0x03000000
+_08006A9C: .4byte 0x06004D00
+_08006AA0: .4byte 0x81000400
+_08006AA4:
+ ldr r4, _08006B6C @ =0x06004D00
+ movs r6, #8
+_08006AA8:
+ ldr r0, _08006B70 @ =0x08092FA0
+ adds r1, r4, #0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #0x20
+ subs r6, #1
+ cmp r6, #0
+ bge _08006AA8
+_08006ABC:
+ ldr r0, _08006B74 @ =0x0202A1C0
+ mov r1, sb
+ asrs r2, r1, #0x10
+ lsls r1, r2, #1
+ adds r1, r1, r0
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08006B7C
+ ldr r0, _08006B78 @ =0x0805C8B4
+ mov sb, r0
+ lsls r4, r2, #3
+ adds r4, r4, r2
+ lsls r4, r4, #4
+ subs r4, r4, r2
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ add r1, sb
+ mov r8, r1
+ ldrh r0, [r1, #6]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r6, #1
+ str r6, [sp]
+ movs r5, #2
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x10
+ movs r3, #6
+ bl sub_105A0
+ mov r2, r8
+ ldrh r0, [r2, #8]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r6, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x11
+ movs r3, #6
+ bl sub_105A0
+ mov r3, r8
+ ldrh r0, [r3, #0xa]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r6, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x13
+ movs r3, #6
+ bl sub_105A0
+ mov r1, r8
+ ldrh r0, [r1, #0xc]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r6, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x14
+ movs r3, #6
+ bl sub_105A0
+ movs r6, #0
+ movs r2, #0xe
+ add sb, r2
+ add r4, sb
+ movs r5, #1
+_08006B4E:
+ ldrh r0, [r4]
+ adds r2, r6, #0
+ adds r2, #0x10
+ str r5, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r3, #8
+ bl sub_105A0
+ adds r4, #2
+ adds r6, #1
+ cmp r6, #4
+ ble _08006B4E
+ b _08006BDC
+ .align 2, 0
+_08006B6C: .4byte 0x06004D00
+_08006B70: .4byte 0x08092FA0
+_08006B74: .4byte 0x0202A1C0
+_08006B78: .4byte 0x0805C8B4
+_08006B7C:
+ movs r5, #1
+ str r5, [sp]
+ movs r4, #2
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x10
+ movs r3, #6
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x11
+ movs r3, #6
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x13
+ movs r3, #6
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x14
+ movs r3, #6
+ bl sub_105A0
+ movs r6, #0
+ movs r4, #1
+_08006BC4:
+ adds r2, r6, #0
+ adds r2, #0x10
+ str r4, [sp]
+ str r4, [sp, #4]
+ movs r0, #0xb
+ movs r1, #1
+ movs r3, #8
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #4
+ ble _08006BC4
+_08006BDC:
+ add sp, #0xc
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_6BEC
+sub_6BEC: @ 0x08006BEC
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #0x20
+ adds r4, r1, #0
+ lsls r4, r4, #0x10
+ lsrs r4, r4, #0x10
+ lsls r0, r0, #0x10
+ asrs r6, r0, #0x10
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __divsi3
+ str r0, [sp, #8]
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __modsi3
+ adds r5, r0, #0
+ movs r1, #0xa
+ bl __divsi3
+ str r0, [sp, #0xc]
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl __modsi3
+ str r0, [sp, #0x10]
+ lsls r4, r4, #0x10
+ asrs r6, r4, #0x10
+ add r5, sp, #0x14
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __divsi3
+ str r0, [sp, #0x14]
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __modsi3
+ adds r4, r0, #0
+ movs r1, #0xa
+ bl __divsi3
+ str r0, [r5, #4]
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl __modsi3
+ str r0, [r5, #8]
+ movs r6, #0
+ movs r7, #1
+ mov r8, r5
+ add r5, sp, #8
+_08006C58:
+ ldm r5!, {r0}
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r4, r6, #0
+ adds r4, #0x19
+ str r7, [sp]
+ str r7, [sp, #4]
+ movs r1, #2
+ adds r2, r4, #0
+ movs r3, #0xf
+ bl sub_105A0
+ mov r1, r8
+ adds r1, #4
+ mov r8, r1
+ subs r1, #4
+ ldm r1!, {r0}
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r7, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ adds r2, r4, #0
+ movs r3, #0x10
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #2
+ ble _08006C58
+ add sp, #0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_6CA0
+sub_6CA0: @ 0x08006CA0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08006D2C @ =0x040000D4
+ add r0, sp, #8
+ str r0, [r1]
+ ldr r0, _08006D30 @ =0x03000000
+ str r0, [r1, #4]
+ ldr r0, _08006D34 @ =0x81000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r1, #0
+ str r1, [sp, #0x10]
+ mov r8, r1
+ ldr r2, [sp, #0xc]
+ lsls r2, r2, #0x10
+ str r2, [sp, #0x14]
+ movs r3, #1
+ mov sb, r3
+ movs r5, #2
+ movs r4, #0
+ str r4, [sp, #0x18]
+ movs r4, #0xa
+_08006CE0:
+ ldr r1, [sp, #0xc]
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ add r0, r8
+ cmp r0, #0xc8
+ bne _08006D74
+ ldr r0, _08006D38 @ =0x0202A1C0
+ movs r2, #0xc8
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ cmp r0, #0
+ beq _08006D3C
+ mov r0, sb
+ str r0, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x22
+ movs r1, #2
+ movs r2, #8
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r1, sb
+ str r1, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x20
+ movs r1, #2
+ movs r2, #9
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r2, sb
+ str r2, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x21
+ b _08006D68
+ .align 2, 0
+_08006D2C: .4byte 0x040000D4
+_08006D30: .4byte 0x03000000
+_08006D34: .4byte 0x81000400
+_08006D38: .4byte 0x0202A1C0
+_08006D3C:
+ mov r3, sb
+ str r3, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #2
+ movs r2, #8
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r0, sb
+ str r0, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #2
+ movs r2, #9
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r1, sb
+ str r1, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x2a
+_08006D68:
+ movs r1, #2
+ movs r2, #0xa
+ adds r3, r4, #0
+ bl sub_105A0
+ b _08006DB6
+_08006D74:
+ movs r6, #0
+ ldr r7, [sp, #0x18]
+ ldr r2, _08006E94 @ =0x0805C8B4
+ mov sl, r2
+_08006D7C:
+ lsls r2, r6, #1
+ ldr r0, _08006E98 @ =0x0202C5B0
+ movs r3, #0
+ ldrsh r1, [r0, r3]
+ add r1, r8
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ add r2, sl
+ ldrh r0, [r2]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #0
+ adds r2, #8
+ mov r1, sb
+ str r1, [sp]
+ str r5, [sp, #4]
+ movs r1, #2
+ adds r3, r7, #0
+ adds r3, #0xa
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #2
+ ble _08006D7C
+_08006DB6:
+ ldr r2, [sp, #0x18]
+ adds r2, #2
+ str r2, [sp, #0x18]
+ adds r4, #2
+ movs r3, #1
+ add r8, r3
+ mov r0, r8
+ cmp r0, #4
+ ble _08006CE0
+ movs r1, #0
+ mov r8, r1
+_08006DCC:
+ ldr r0, _08006E9C @ =0x0202A1C0
+ ldr r2, [sp, #0x14]
+ asrs r1, r2, #0x10
+ add r1, r8
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _08006EC4
+ movs r6, #0
+ mov r4, r8
+ lsls r7, r4, #1
+ movs r0, #1
+ add r0, r8
+ mov sb, r0
+ ldr r5, _08006EA0 @ =0x040000D4
+ ldr r3, _08006EA4 @ =0x08090780
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r1, r1, r3
+ mov sl, r1
+_08006DF8:
+ lsls r2, r6, #1
+ ldr r0, _08006E98 @ =0x0202C5B0
+ movs r4, #0
+ ldrsh r1, [r0, r4]
+ add r1, r8
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ ldr r0, _08006EA8 @ =0x0805C8CC
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ movs r2, #0x10
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ adds r2, r1, #0
+ ands r2, r0
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _08006E28
+ movs r4, #4
+_08006E28:
+ adds r0, r2, r3
+ str r0, [r5]
+ ldr r0, _08006EAC @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r0, _08006EB0 @ =0x80000010
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ mov r1, sl
+ adds r0, r2, r1
+ str r0, [r5]
+ ldr r0, _08006EB4 @ =0x0201B130
+ str r0, [r5, #4]
+ ldr r2, _08006EB0 @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ ldr r1, [sp, #0x10]
+ movs r2, #0
+ str r3, [sp, #0x1c]
+ bl sub_71DC
+ ldr r0, [sp, #0x10]
+ adds r0, r0, r4
+ str r0, [sp, #0x10]
+ adds r6, #1
+ ldr r3, [sp, #0x1c]
+ cmp r6, #9
+ ble _08006DF8
+ ldr r1, _08006EB8 @ =0x086A64F0
+ adds r0, r7, r1
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r3, #0xc0
+ lsls r3, r3, #0x13
+ adds r1, r1, r3
+ ldr r0, _08006EBC @ =0x03000000
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08006EA0 @ =0x040000D4
+ add r4, sp, #8
+ str r4, [r1]
+ ldr r0, _08006EBC @ =0x03000000
+ str r0, [r1, #4]
+ ldr r0, _08006EC0 @ =0x81000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r1, #0
+ str r1, [sp, #0x10]
+ b _08006F06
+ .align 2, 0
+_08006E94: .4byte 0x0805C8B4
+_08006E98: .4byte 0x0202C5B0
+_08006E9C: .4byte 0x0202A1C0
+_08006EA0: .4byte 0x040000D4
+_08006EA4: .4byte 0x08090780
+_08006EA8: .4byte 0x0805C8CC
+_08006EAC: .4byte 0x0202BE30
+_08006EB0: .4byte 0x80000010
+_08006EB4: .4byte 0x0201B130
+_08006EB8: .4byte 0x086A64F0
+_08006EBC: .4byte 0x03000000
+_08006EC0: .4byte 0x81000400
+_08006EC4:
+ mov r2, r8
+ lsls r7, r2, #1
+ movs r3, #1
+ add r3, r8
+ mov sb, r3
+ ldr r4, _08006F20 @ =0x086A64F0
+ adds r5, r7, r4
+ movs r4, #0xc0
+ lsls r4, r4, #0x13
+ movs r6, #6
+_08006ED8:
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ adds r1, r1, r4
+ ldr r0, _08006F24 @ =0x08092FA0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #0x20
+ subs r6, #1
+ cmp r6, #0
+ bge _08006ED8
+ ldr r1, _08006F20 @ =0x086A64F0
+ adds r0, r7, r1
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r3, _08006F28 @ =0x060000E0
+ adds r1, r1, r3
+ ldr r0, _08006F2C @ =0x08090780
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+_08006F06:
+ mov r8, sb
+ mov r4, r8
+ cmp r4, #4
+ bgt _08006F10
+ b _08006DCC
+_08006F10:
+ add sp, #0x20
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006F20: .4byte 0x086A64F0
+_08006F24: .4byte 0x08092FA0
+_08006F28: .4byte 0x060000E0
+_08006F2C: .4byte 0x08090780
+
+ thumb_func_start sub_6F30
+sub_6F30: @ 0x08006F30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _08006F74 @ =0x0202A1C0
+ lsls r0, r0, #0x10
+ movs r6, #0xa
+ asrs r0, r0, #0xf
+ adds r4, r0, r1
+ movs r7, #2
+ movs r5, #4
+_08006F42:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ movs r1, #0xdc
+ lsls r1, r1, #1
+ cmp r0, #4
+ bne _08006F50
+ adds r1, #2
+_08006F50:
+ adds r0, r1, #0
+ str r7, [sp]
+ str r7, [sp, #4]
+ movs r1, #1
+ movs r2, #4
+ adds r3, r6, #0
+ bl sub_105A0
+ adds r6, #2
+ adds r4, #2
+ subs r5, #1
+ cmp r5, #0
+ bge _08006F42
+ add sp, #8
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006F74: .4byte 0x0202A1C0
+
+ thumb_func_start sub_6F78
+sub_6F78: @ 0x08006F78
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ ldr r1, _08006FBC @ =0x0202A1C0
+ ldr r0, _08006FC0 @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r5, [r0]
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0xf
+ bl __divsi3
+ lsls r0, r0, #0x10
+ lsrs r6, r0, #0x10
+ adds r0, r4, #0
+ movs r1, #0xf
+ bl __modsi3
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ lsls r5, r5, #0x10
+ asrs r0, r5, #0x10
+ cmp r0, #4
+ bls _08006FB0
+ b _080070C0
+_08006FB0:
+ lsls r0, r0, #2
+ ldr r1, _08006FC4 @ =_08006FC8
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08006FBC: .4byte 0x0202A1C0
+_08006FC0: .4byte 0x0202ADE0
+_08006FC4: .4byte _08006FC8
+_08006FC8: @ jump table
+ .4byte _08006FDC @ case 0
+ .4byte _08007000 @ case 1
+ .4byte _08007040 @ case 2
+ .4byte _08007040 @ case 3
+ .4byte _08007088 @ case 4
+_08006FDC:
+ ldr r0, _08006FF0 @ =0x0808F760
+ ldr r1, _08006FF4 @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _08006FF8 @ =0x040000D4
+ ldr r0, _08006FFC @ =0x08089960
+ b _080070B4
+ .align 2, 0
+_08006FF0: .4byte 0x0808F760
+_08006FF4: .4byte 0x06013400
+_08006FF8: .4byte 0x040000D4
+_08006FFC: .4byte 0x08089960
+_08007000:
+ ldr r0, _08007030 @ =gMonPortraitGroupGfx
+ lsls r2, r6, #0x10
+ asrs r2, r2, #0xe
+ adds r2, r2, r0
+ lsls r0, r4, #0x10
+ asrs r0, r0, #0x10
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #8
+ ldr r0, [r2]
+ adds r0, r0, r1
+ ldr r1, _08007034 @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _08007038 @ =0x040000D4
+ ldr r0, _0800703C @ =gMonPortraitGroupPals
+ ldr r0, [r0]
+ movs r2, #0xf0
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ b _080070B4
+ .align 2, 0
+_08007030: .4byte gMonPortraitGroupGfx
+_08007034: .4byte 0x06013400
+_08007038: .4byte 0x040000D4
+_0800703C: .4byte gMonPortraitGroupPals
+_08007040:
+ ldr r0, _08007078 @ =gMonPortraitGroupGfx
+ lsls r5, r6, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #1
+ adds r1, r1, r4
+ lsls r1, r1, #8
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _0800707C @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r0, _08007080 @ =gMonPortraitGroupPals
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+ ldr r1, _08007084 @ =0x05000220
+ movs r2, #0x20
+ movs r3, #0xe
+ bl sub_10170
+ b _080070C0
+ .align 2, 0
+_08007078: .4byte gMonPortraitGroupGfx
+_0800707C: .4byte 0x06013400
+_08007080: .4byte gMonPortraitGroupPals
+_08007084: .4byte 0x05000220
+_08007088:
+ ldr r0, _080070C8 @ =gMonPortraitGroupGfx
+ lsls r5, r6, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #1
+ adds r1, r1, r4
+ lsls r1, r1, #8
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _080070CC @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _080070D0 @ =0x040000D4
+ ldr r0, _080070D4 @ =gMonPortraitGroupPals
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+_080070B4:
+ str r0, [r1]
+ ldr r0, _080070D8 @ =0x05000220
+ str r0, [r1, #4]
+ ldr r0, _080070DC @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_080070C0:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080070C8: .4byte gMonPortraitGroupGfx
+_080070CC: .4byte 0x06013400
+_080070D0: .4byte 0x040000D4
+_080070D4: .4byte gMonPortraitGroupPals
+_080070D8: .4byte 0x05000220
+_080070DC: .4byte 0x80000010
+
+ thumb_func_start sub_70E0
+sub_70E0: @ 0x080070E0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0xc
+ movs r2, #0
+ mov r8, r2
+ mov r2, sp
+ mov r3, r8
+ strh r3, [r2]
+ ldr r3, _080071B4 @ =0x040000D4
+ str r2, [r3]
+ ldr r2, _080071B8 @ =0x03000000
+ str r2, [r3, #4]
+ ldr r2, _080071BC @ =0x81000C00
+ str r2, [r3, #8]
+ ldr r2, [r3, #8]
+ movs r7, #0
+ lsls r2, r1, #6
+ lsls r0, r0, #0x10
+ str r0, [sp, #8]
+ subs r2, r2, r1
+ lsls r2, r2, #1
+ str r2, [sp, #4]
+ adds r5, r3, #0
+_08007114:
+ movs r6, #0
+ adds r0, r7, #1
+ mov sl, r0
+ movs r1, #0x2a
+ adds r0, r7, #0
+ muls r0, r1, r0
+ ldr r2, [sp, #4]
+ adds r2, r2, r0
+ mov sb, r2
+_08007126:
+ mov r3, sb
+ adds r1, r3, r6
+ lsls r1, r1, #1
+ ldr r0, [sp, #8]
+ asrs r2, r0, #0x10
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r1, r1, r0
+ ldr r2, _080071C0 @ =0x0805C8F6
+ adds r1, r1, r2
+ ldrh r1, [r1]
+ movs r3, #0x10
+ rsbs r3, r3, #0
+ adds r0, r3, #0
+ adds r3, r1, #0
+ ands r3, r0
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _08007156
+ movs r4, #4
+_08007156:
+ ldr r1, _080071C4 @ =0x08090780
+ adds r0, r3, r1
+ str r0, [r5]
+ ldr r0, _080071C8 @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r2, _080071CC @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ movs r0, #0x80
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r1, r3, r1
+ str r1, [r5]
+ ldr r0, _080071D0 @ =0x0201B130
+ str r0, [r5, #4]
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ mov r1, r8
+ adds r2, r7, #0
+ bl sub_71DC
+ add r8, r4
+ adds r6, #1
+ cmp r6, #0x29
+ ble _08007126
+ movs r1, #0
+ mov r8, r1
+ mov r7, sl
+ cmp r7, #2
+ ble _08007114
+ ldr r1, _080071B4 @ =0x040000D4
+ ldr r0, _080071B8 @ =0x03000000
+ str r0, [r1]
+ ldr r0, _080071D4 @ =0x06005C00
+ str r0, [r1, #4]
+ ldr r0, _080071D8 @ =0x80000C00
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add sp, #0xc
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080071B4: .4byte 0x040000D4
+_080071B8: .4byte 0x03000000
+_080071BC: .4byte 0x81000C00
+_080071C0: .4byte 0x0805C8F6
+_080071C4: .4byte 0x08090780
+_080071C8: .4byte 0x0202BE30
+_080071CC: .4byte 0x80000010
+_080071D0: .4byte 0x0201B130
+_080071D4: .4byte 0x06005C00
+_080071D8: .4byte 0x80000C00
+
+ thumb_func_start sub_71DC
+sub_71DC: @ 0x080071DC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x14
+ adds r4, r0, #0
+ adds r3, r1, #0
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _080071F4
+ adds r0, r3, #7
+_080071F4:
+ asrs r0, r0, #3
+ lsls r0, r0, #4
+ lsls r1, r2, #0xa
+ adds r2, r0, r1
+ subs r0, r4, #2
+ cmp r0, #4
+ bls _08007206
+ bl _080088C8
+_08007206:
+ lsls r0, r0, #2
+ ldr r1, _08007210 @ =_08007214
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08007210: .4byte _08007214
+_08007214: @ jump table
+ .4byte _08008580 @ case 0
+ .4byte _0800819C @ case 1
+ .4byte _08007D50 @ case 2
+ .4byte _0800780C @ case 3
+ .4byte _08007228 @ case 4
+_08007228:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08007230
+ adds r0, r3, #7
+_08007230:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _0800723E
+ bl _080088C8
+_0800723E:
+ lsls r0, r0, #2
+ ldr r1, _08007248 @ =_0800724C
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08007248: .4byte _0800724C
+_0800724C: @ jump table
+ .4byte _0800726C @ case 0
+ .4byte _080072EC @ case 1
+ .4byte _08007398 @ case 2
+ .4byte _0800744C @ case 3
+ .4byte _08007548 @ case 4
+ .4byte _080075C0 @ case 5
+ .4byte _0800766C @ case 6
+ .4byte _08007714 @ case 7
+_0800726C:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _080072E0 @ =0x03000000
+ mov sb, r1
+ movs r0, #0xff
+ mov sl, r0
+ ldr r1, _080072E4 @ =0x0201B130
+ mov r8, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r5, r0, r2
+ ldr r6, _080072E8 @ =0x0202BE30
+ lsls r1, r1, #1
+ adds r4, r1, r2
+_08007290:
+ lsls r3, r7, #1
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r5]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ ldrh r1, [r6, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4]
+ mov r2, r8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r3, r3, r0
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r2, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r1, #4
+ add r8, r1
+ adds r4, #4
+ adds r5, #4
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007290
+ bl _080088C8
+ .align 2, 0
+_080072E0: .4byte 0x03000000
+_080072E4: .4byte 0x0201B130
+_080072E8: .4byte 0x0202BE30
+_080072EC:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _08007388 @ =0x03000000
+ mov sl, r1
+ ldr r0, _0800738C @ =0x0201B130
+ mov sb, r0
+ ldr r1, _08007390 @ =0x0202BE30
+ mov r8, r1
+ lsls r0, r2, #1
+ mov r2, sl
+ adds r6, r0, r2
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ adds r5, r0, r2
+_0800730C:
+ lsls r4, r7, #1
+ mov r2, r8
+ ldrh r1, [r2]
+ ldr r0, _08007394 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ add r3, sl
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ ldr r0, _08007394 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ add r4, sl
+ mov r2, sb
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r0, #4
+ add sb, r0
+ add r8, r0
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800730C
+ bl _080088C8
+ .align 2, 0
+_08007388: .4byte 0x03000000
+_0800738C: .4byte 0x0201B130
+_08007390: .4byte 0x0202BE30
+_08007394: .4byte 0x00000FFF
+_08007398:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ movs r0, #0xff
+ mov sl, r0
+ ldr r1, _08007440 @ =0x0201B130
+ mov sb, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, _08007444 @ =0x0202BE30
+ mov r8, r0
+ lsls r0, r2, #1
+ ldr r2, _08007448 @ =0x03000000
+ adds r6, r0, r2
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_080073BA:
+ lsls r4, r7, #1
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ ldr r1, _08007448 @ =0x03000000
+ adds r3, r3, r1
+ mov r2, r8
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ ldr r2, _08007448 @ =0x03000000
+ adds r4, r4, r2
+ mov r1, sb
+ ldrh r0, [r1]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ mov r0, sb
+ ldrh r2, [r0, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #4
+ add sb, r1
+ adds r5, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080073BA
+ bl _080088C8
+ .align 2, 0
+_08007440: .4byte 0x0201B130
+_08007444: .4byte 0x0202BE30
+_08007448: .4byte 0x03000000
+_0800744C:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ movs r1, #0x10
+ adds r1, r1, r2
+ mov sb, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ movs r0, #2
+ str r0, [sp, #8]
+ ldr r0, _08007538 @ =0x0202BE30
+ mov sl, r0
+ lsls r0, r2, #1
+ ldr r2, _0800753C @ =0x03000000
+ adds r0, r0, r2
+ mov r8, r0
+ ldr r0, _08007540 @ =0x0201B130
+ str r0, [sp, #0x10]
+ lsls r1, r1, #1
+ adds r6, r1, r2
+_08007476:
+ lsls r5, r7, #1
+ mov r2, sl
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ mov r2, r8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, ip
+ adds r4, r5, r0
+ lsls r3, r4, #1
+ ldr r1, _0800753C @ =0x03000000
+ adds r3, r3, r1
+ mov r2, sl
+ ldrh r0, [r2]
+ ldr r1, _08007544 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ add r5, sb
+ lsls r2, r5, #1
+ ldr r0, _0800753C @ =0x03000000
+ adds r2, r2, r0
+ mov r0, sl
+ ldrh r1, [r0, #2]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, [sp, #0x10]
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r4, r4, r0
+ lsls r4, r4, #1
+ ldr r1, _0800753C @ =0x03000000
+ adds r4, r4, r1
+ ldrh r0, [r2]
+ ldr r1, _08007544 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldr r2, [sp, #8]
+ ldr r0, _08007540 @ =0x0201B130
+ adds r3, r2, r0
+ ldrh r2, [r3]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r5, r5, r1
+ lsls r5, r5, #1
+ ldr r2, _0800753C @ =0x03000000
+ adds r5, r5, r2
+ ldrh r1, [r3]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ adds r6, #4
+ ldr r0, [sp, #8]
+ adds r0, #4
+ str r0, [sp, #8]
+ movs r1, #4
+ add sl, r1
+ add r8, r1
+ ldr r2, [sp, #0x10]
+ adds r2, #4
+ str r2, [sp, #0x10]
+ adds r7, #1
+ cmp r7, #7
+ ble _08007476
+ bl _080088C8
+ .align 2, 0
+_08007538: .4byte 0x0202BE30
+_0800753C: .4byte 0x03000000
+_08007540: .4byte 0x0201B130
+_08007544: .4byte 0x0000FFF0
+_08007548:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _080075B4 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _080075B8 @ =0x0201B130
+ ldr r5, _080075BC @ =0x0202BE30
+_08007560:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ ldrh r0, [r2]
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r5, #2]
+ movs r0, #0xff
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldrh r0, [r3]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r6, #2]
+ movs r0, #0xff
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007560
+ bl _080088C8
+ .align 2, 0
+_080075B4: .4byte 0x03000000
+_080075B8: .4byte 0x0201B130
+_080075BC: .4byte 0x0202BE30
+_080075C0:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ adds r2, #0x10
+ mov sb, r2
+ ldr r2, _0800765C @ =0x03000000
+ mov sl, r2
+ ldr r0, _08007660 @ =0x0201B130
+ mov r8, r0
+ ldr r6, _08007664 @ =0x0202BE30
+_080075D4:
+ lsls r5, r7, #1
+ mov r1, ip
+ adds r3, r5, r1
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ ldr r0, _08007668 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r6, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sl
+ mov r0, r8
+ ldrh r1, [r0]
+ ldr r0, _08007668 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, r5, r2
+ lsls r5, r5, #1
+ add r5, sl
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ mov r0, r8
+ ldrh r2, [r0, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080075D4
+ bl _080088C8
+ .align 2, 0
+_0800765C: .4byte 0x03000000
+_08007660: .4byte 0x0201B130
+_08007664: .4byte 0x0202BE30
+_08007668: .4byte 0x00000FFF
+_0800766C:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007708 @ =0x03000000
+ mov sl, r1
+ ldr r2, _0800770C @ =0x0201B130
+ mov r8, r2
+ ldr r6, _08007710 @ =0x0202BE30
+_08007680:
+ lsls r5, r7, #1
+ mov r0, ip
+ adds r3, r5, r0
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r6, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r3, r3, r1
+ lsls r3, r3, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007680
+ bl _080088C8
+ .align 2, 0
+_08007708: .4byte 0x03000000
+_0800770C: .4byte 0x0201B130
+_08007710: .4byte 0x0202BE30
+_08007714:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ movs r1, #0x10
+ adds r1, r1, r2
+ mov sb, r1
+ adds r2, #0x11
+ str r2, [sp]
+ ldr r2, _080077FC @ =0x03000000
+ mov sl, r2
+ movs r0, #2
+ str r0, [sp, #4]
+ ldr r1, _08007800 @ =0x0202BE30
+ mov r8, r1
+ ldr r2, _08007804 @ =0x0201B130
+ str r2, [sp, #0xc]
+_08007734:
+ lsls r6, r7, #1
+ mov r0, ip
+ adds r4, r6, r0
+ lsls r2, r4, #1
+ add r2, sl
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, sb
+ adds r5, r6, r1
+ lsls r3, r5, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r0, [r2]
+ ldr r1, _08007808 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ ldr r0, [sp]
+ adds r6, r6, r0
+ lsls r2, r6, #1
+ add r2, sl
+ mov r0, r8
+ ldrh r1, [r0, #2]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ add r4, sl
+ ldr r2, [sp, #0xc]
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ ldr r1, _08007808 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldr r2, [sp, #4]
+ ldr r0, _08007804 @ =0x0201B130
+ adds r3, r2, r0
+ ldrh r2, [r3]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r6, r6, r1
+ lsls r6, r6, #1
+ add r6, sl
+ ldrh r1, [r3]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ ldr r2, [sp, #4]
+ adds r2, #4
+ str r2, [sp, #4]
+ movs r0, #4
+ add r8, r0
+ ldr r1, [sp, #0xc]
+ adds r1, #4
+ str r1, [sp, #0xc]
+ adds r7, #1
+ cmp r7, #7
+ ble _08007734
+ bl _080088C8
+ .align 2, 0
+_080077FC: .4byte 0x03000000
+_08007800: .4byte 0x0202BE30
+_08007804: .4byte 0x0201B130
+_08007808: .4byte 0x0000FFF0
+_0800780C:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08007814
+ adds r0, r3, #7
+_08007814:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _08007822
+ bl _080088C8
+_08007822:
+ lsls r0, r0, #2
+ ldr r1, _0800782C @ =_08007830
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800782C: .4byte _08007830
+_08007830: @ jump table
+ .4byte _08007850 @ case 0
+ .4byte _080078D0 @ case 1
+ .4byte _0800797C @ case 2
+ .4byte _08007A28 @ case 3
+ .4byte _08007ADC @ case 4
+ .4byte _08007B54 @ case 5
+ .4byte _08007C00 @ case 6
+ .4byte _08007CA8 @ case 7
+_08007850:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _080078C4 @ =0x03000000
+ mov sb, r1
+ movs r0, #0xf
+ mov sl, r0
+ ldr r1, _080078C8 @ =0x0201B130
+ mov r8, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r5, r0, r2
+ ldr r6, _080078CC @ =0x0202BE30
+ lsls r1, r1, #1
+ adds r4, r1, r2
+_08007874:
+ lsls r3, r7, #1
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r5]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ ldrh r1, [r6, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4]
+ mov r2, r8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r3, r3, r0
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r2, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r1, #4
+ add r8, r1
+ adds r4, #4
+ adds r5, #4
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007874
+ bl _080088C8
+ .align 2, 0
+_080078C4: .4byte 0x03000000
+_080078C8: .4byte 0x0201B130
+_080078CC: .4byte 0x0202BE30
+_080078D0:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _0800796C @ =0x03000000
+ mov sl, r1
+ ldr r0, _08007970 @ =0x0201B130
+ mov sb, r0
+ ldr r1, _08007974 @ =0x0202BE30
+ mov r8, r1
+ lsls r0, r2, #1
+ mov r2, sl
+ adds r6, r0, r2
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ adds r5, r0, r2
+_080078F0:
+ lsls r4, r7, #1
+ mov r2, r8
+ ldrh r1, [r2]
+ ldr r0, _08007978 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ add r3, sl
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ ldr r0, _08007978 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ add r4, sl
+ mov r2, sb
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r0, #4
+ add sb, r0
+ add r8, r0
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080078F0
+ bl _080088C8
+ .align 2, 0
+_0800796C: .4byte 0x03000000
+_08007970: .4byte 0x0201B130
+_08007974: .4byte 0x0202BE30
+_08007978: .4byte 0x00000FFF
+_0800797C:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08007A1C @ =0x03000000
+ mov sl, r0
+ ldr r1, _08007A20 @ =0x0201B130
+ mov sb, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, _08007A24 @ =0x0202BE30
+ mov r8, r0
+ lsls r0, r2, #1
+ mov r2, sl
+ adds r6, r0, r2
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_0800799E:
+ lsls r4, r7, #1
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ add r3, sl
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ mov r0, r8
+ ldrh r2, [r0, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r2, sb
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r4, r4, r0
+ lsls r4, r4, #1
+ add r4, sl
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #4
+ add sb, r1
+ adds r5, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800799E
+ bl _080088C8
+ .align 2, 0
+_08007A1C: .4byte 0x03000000
+_08007A20: .4byte 0x0201B130
+_08007A24: .4byte 0x0202BE30
+_08007A28:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ movs r1, #0xf
+ mov sl, r1
+ ldr r0, _08007ACC @ =0x0201B130
+ mov sb, r0
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, _08007AD0 @ =0x0202BE30
+ mov r8, r0
+ lsls r0, r2, #1
+ ldr r2, _08007AD4 @ =0x03000000
+ adds r6, r0, r2
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007A4A:
+ lsls r4, r7, #1
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ ldr r1, _08007AD4 @ =0x03000000
+ adds r3, r3, r1
+ mov r2, r8
+ ldrh r0, [r2]
+ ldr r1, _08007AD8 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ ldr r2, _08007AD4 @ =0x03000000
+ adds r4, r4, r2
+ mov r1, sb
+ ldrh r0, [r1]
+ ldr r1, _08007AD8 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ mov r0, sb
+ ldrh r2, [r0, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #4
+ add sb, r1
+ adds r5, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007A4A
+ bl _080088C8
+ .align 2, 0
+_08007ACC: .4byte 0x0201B130
+_08007AD0: .4byte 0x0202BE30
+_08007AD4: .4byte 0x03000000
+_08007AD8: .4byte 0x0000FFF0
+_08007ADC:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007B48 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08007B4C @ =0x0201B130
+ ldr r5, _08007B50 @ =0x0202BE30
+_08007AF4:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ ldrh r0, [r2]
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r5, #2]
+ movs r0, #0xf
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldrh r0, [r3]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r6, #2]
+ movs r0, #0xf
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007AF4
+ bl _080088C8
+ .align 2, 0
+_08007B48: .4byte 0x03000000
+_08007B4C: .4byte 0x0201B130
+_08007B50: .4byte 0x0202BE30
+_08007B54:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ adds r2, #0x10
+ mov sb, r2
+ ldr r2, _08007BF0 @ =0x03000000
+ mov sl, r2
+ ldr r0, _08007BF4 @ =0x0201B130
+ mov r8, r0
+ ldr r6, _08007BF8 @ =0x0202BE30
+_08007B68:
+ lsls r5, r7, #1
+ mov r1, ip
+ adds r3, r5, r1
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ ldr r0, _08007BFC @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r6, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sl
+ mov r0, r8
+ ldrh r1, [r0]
+ ldr r0, _08007BFC @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, r5, r2
+ lsls r5, r5, #1
+ add r5, sl
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ mov r0, r8
+ ldrh r2, [r0, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007B68
+ bl _080088C8
+ .align 2, 0
+_08007BF0: .4byte 0x03000000
+_08007BF4: .4byte 0x0201B130
+_08007BF8: .4byte 0x0202BE30
+_08007BFC: .4byte 0x00000FFF
+_08007C00:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007C9C @ =0x03000000
+ mov sl, r1
+ ldr r2, _08007CA0 @ =0x0201B130
+ mov r8, r2
+ ldr r6, _08007CA4 @ =0x0202BE30
+_08007C14:
+ lsls r5, r7, #1
+ mov r0, ip
+ adds r3, r5, r0
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r6, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r3, r3, r1
+ lsls r3, r3, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007C14
+ bl _080088C8
+ .align 2, 0
+_08007C9C: .4byte 0x03000000
+_08007CA0: .4byte 0x0201B130
+_08007CA4: .4byte 0x0202BE30
+_08007CA8:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007D40 @ =0x03000000
+ mov sl, r1
+ ldr r2, _08007D44 @ =0x0201B130
+ mov r8, r2
+ ldr r6, _08007D48 @ =0x0202BE30
+_08007CBC:
+ lsls r5, r7, #1
+ mov r0, ip
+ adds r3, r5, r0
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ ldr r1, _08007D4C @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r6, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r3, r3, r1
+ lsls r3, r3, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ ldr r1, _08007D4C @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007CBC
+ bl _080088C8
+ .align 2, 0
+_08007D40: .4byte 0x03000000
+_08007D44: .4byte 0x0201B130
+_08007D48: .4byte 0x0202BE30
+_08007D4C: .4byte 0x0000FFF0
+_08007D50:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08007D58
+ adds r0, r3, #7
+_08007D58:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _08007D66
+ bl _080088C8
+_08007D66:
+ lsls r0, r0, #2
+ ldr r1, _08007D70 @ =_08007D74
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08007D70: .4byte _08007D74
+_08007D74: @ jump table
+ .4byte _08007D94 @ case 0
+ .4byte _08007DD8 @ case 1
+ .4byte _08007E74 @ case 2
+ .4byte _08007F0C @ case 3
+ .4byte _08007FA4 @ case 4
+ .4byte _08007FF4 @ case 5
+ .4byte _08008084 @ case 6
+ .4byte _08008110 @ case 7
+_08007D94:
+ movs r7, #0
+ ldr r1, _08007DCC @ =0x03000000
+ lsls r0, r2, #1
+ adds r3, r0, r1
+ ldr r5, _08007DD0 @ =0x0202BE30
+ ldr r4, _08007DD4 @ =0x0201B130
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r2, r0, r1
+_08007DA8:
+ ldrh r0, [r3]
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2]
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r3, #4
+ adds r5, #4
+ adds r2, #4
+ adds r4, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007DA8
+ bl _080088C8
+ .align 2, 0
+_08007DCC: .4byte 0x03000000
+_08007DD0: .4byte 0x0202BE30
+_08007DD4: .4byte 0x0201B130
+_08007DD8:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _08007E64 @ =0x03000000
+ mov sb, r1
+ movs r0, #0xf0
+ lsls r0, r0, #8
+ mov sl, r0
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08007E68 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007DFC:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ ldr r0, _08007E6C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08007E70 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ ldr r0, _08007E6C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _08007DFC
+ bl _080088C8
+ .align 2, 0
+_08007E64: .4byte 0x03000000
+_08007E68: .4byte 0x0202BE30
+_08007E6C: .4byte 0x00000FFF
+_08007E70: .4byte 0x0201B130
+_08007E74:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08007F00 @ =0x03000000
+ mov sb, r0
+ movs r1, #0xff
+ lsls r1, r1, #8
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08007F04 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007E98:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08007F08 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _08007E98
+ bl _080088C8
+ .align 2, 0
+_08007F00: .4byte 0x03000000
+_08007F04: .4byte 0x0202BE30
+_08007F08: .4byte 0x0201B130
+_08007F0C:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08007F94 @ =0x03000000
+ mov sb, r0
+ ldr r1, _08007F98 @ =0x0000FFF0
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08007F9C @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007F2E:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08007FA0 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _08007F2E
+ bl _080088C8
+ .align 2, 0
+_08007F94: .4byte 0x03000000
+_08007F98: .4byte 0x0000FFF0
+_08007F9C: .4byte 0x0202BE30
+_08007FA0: .4byte 0x0201B130
+_08007FA4:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r1, _08007FE8 @ =0x03000000
+ mov r8, r1
+ ldr r6, _08007FEC @ =0x0202BE30
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ mov r5, ip
+_08007FB6:
+ lsls r3, r7, #2
+ ldrh r0, [r4]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r5, r0
+ lsls r2, r2, #1
+ add r2, r8
+ ldr r1, _08007FF0 @ =0x0201B130
+ adds r3, r3, r1
+ ldrh r0, [r2]
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r6, #4
+ adds r4, #4
+ adds r5, #2
+ adds r7, #1
+ cmp r7, #7
+ ble _08007FB6
+ bl _080088C8
+ .align 2, 0
+_08007FE8: .4byte 0x03000000
+_08007FEC: .4byte 0x0202BE30
+_08007FF0: .4byte 0x0201B130
+_08007FF4:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08008074 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008078 @ =0x0202BE30
+_0800800A:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ ldr r0, _0800807C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xf0
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _08008080 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ ldr r0, _0800807C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xf0
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800800A
+ bl _080088C8
+ .align 2, 0
+_08008074: .4byte 0x03000000
+_08008078: .4byte 0x0202BE30
+_0800807C: .4byte 0x00000FFF
+_08008080: .4byte 0x0201B130
+_08008084:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08008104 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008108 @ =0x0202BE30
+_0800809A:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _0800810C @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800809A
+ bl _080088C8
+ .align 2, 0
+_08008104: .4byte 0x03000000
+_08008108: .4byte 0x0202BE30
+_0800810C: .4byte 0x0201B130
+_08008110:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _0800818C @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008190 @ =0x0202BE30
+_08008126:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ ldr r0, _08008194 @ =0x0000FFF0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _08008198 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ ldr r0, _08008194 @ =0x0000FFF0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008126
+ b _080088C8
+ .align 2, 0
+_0800818C: .4byte 0x03000000
+_08008190: .4byte 0x0202BE30
+_08008194: .4byte 0x0000FFF0
+_08008198: .4byte 0x0201B130
+_0800819C:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _080081A4
+ adds r0, r3, #7
+_080081A4:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _080081B0
+ b _080088C8
+_080081B0:
+ lsls r0, r0, #2
+ ldr r1, _080081BC @ =_080081C0
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080081BC: .4byte _080081C0
+_080081C0: @ jump table
+ .4byte _080081E0 @ case 0
+ .4byte _08008230 @ case 1
+ .4byte _08008284 @ case 2
+ .4byte _08008318 @ case 3
+ .4byte _080083AC @ case 4
+ .4byte _0800840C @ case 5
+ .4byte _08008468 @ case 6
+ .4byte _080084F4 @ case 7
+_080081E0:
+ movs r7, #0
+ ldr r1, _08008220 @ =0x03000000
+ ldr r6, _08008224 @ =0x00000FFF
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _08008228 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_080081F4:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800822C @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080081F4
+ b _080088C8
+ .align 2, 0
+_08008220: .4byte 0x03000000
+_08008224: .4byte 0x00000FFF
+_08008228: .4byte 0x0202BE30
+_0800822C: .4byte 0x0201B130
+_08008230:
+ movs r7, #0
+ ldr r1, _08008274 @ =0x03000000
+ ldr r6, _08008278 @ =0x00000FFF
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _0800827C @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_08008244:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _08008280 @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008244
+ b _080088C8
+ .align 2, 0
+_08008274: .4byte 0x03000000
+_08008278: .4byte 0x00000FFF
+_0800827C: .4byte 0x0202BE30
+_08008280: .4byte 0x0201B130
+_08008284:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _0800830C @ =0x03000000
+ mov sb, r0
+ movs r1, #0xf0
+ lsls r1, r1, #4
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08008310 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_080082A8:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08008314 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _080082A8
+ b _080088C8
+ .align 2, 0
+_0800830C: .4byte 0x03000000
+_08008310: .4byte 0x0202BE30
+_08008314: .4byte 0x0201B130
+_08008318:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _080083A0 @ =0x03000000
+ mov sb, r0
+ movs r1, #0xff
+ lsls r1, r1, #4
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _080083A4 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_0800833C:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080083A8 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _0800833C
+ b _080088C8
+ .align 2, 0
+_080083A0: .4byte 0x03000000
+_080083A4: .4byte 0x0202BE30
+_080083A8: .4byte 0x0201B130
+_080083AC:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r1, _080083FC @ =0x03000000
+ mov sb, r1
+ ldr r2, _08008400 @ =0x00000FFF
+ mov r8, r2
+ ldr r6, _08008404 @ =0x0202BE30
+ mov r1, ip
+ lsls r0, r1, #1
+ mov r2, sb
+ adds r4, r0, r2
+ mov r5, ip
+_080083C6:
+ lsls r3, r7, #2
+ ldrh r1, [r6]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r5, r0
+ lsls r2, r2, #1
+ add r2, sb
+ ldr r1, _08008408 @ =0x0201B130
+ adds r3, r3, r1
+ ldrh r1, [r3]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r6, #4
+ adds r4, #4
+ adds r5, #2
+ adds r7, #1
+ cmp r7, #7
+ ble _080083C6
+ b _080088C8
+ .align 2, 0
+_080083FC: .4byte 0x03000000
+_08008400: .4byte 0x00000FFF
+_08008404: .4byte 0x0202BE30
+_08008408: .4byte 0x0201B130
+_0800840C:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r6, _08008458 @ =0x03000000
+ ldr r2, _0800845C @ =0x00000FFF
+ mov r8, r2
+ ldr r5, _08008460 @ =0x0202BE30
+_0800841A:
+ lsls r2, r7, #1
+ add r2, ip
+ lsls r3, r2, #1
+ adds r3, r3, r6
+ lsls r4, r7, #2
+ ldrh r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #1
+ adds r2, r2, r6
+ ldr r1, _08008464 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800841A
+ b _080088C8
+ .align 2, 0
+_08008458: .4byte 0x03000000
+_0800845C: .4byte 0x00000FFF
+_08008460: .4byte 0x0202BE30
+_08008464: .4byte 0x0201B130
+_08008468:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _080084E8 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _080084EC @ =0x0202BE30
+_0800847E:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xf0
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _080084F0 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xf0
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800847E
+ b _080088C8
+ .align 2, 0
+_080084E8: .4byte 0x03000000
+_080084EC: .4byte 0x0202BE30
+_080084F0: .4byte 0x0201B130
+_080084F4:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08008574 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008578 @ =0x0202BE30
+_0800850A:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xff
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _0800857C @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xff
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800850A
+ b _080088C8
+ .align 2, 0
+_08008574: .4byte 0x03000000
+_08008578: .4byte 0x0202BE30
+_0800857C: .4byte 0x0201B130
+_08008580:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08008588
+ adds r0, r3, #7
+_08008588:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _08008594
+ b _080088C8
+_08008594:
+ lsls r0, r0, #2
+ ldr r1, _080085A0 @ =_080085A4
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080085A0: .4byte _080085A4
+_080085A4: @ jump table
+ .4byte _080085C4 @ case 0
+ .4byte _08008610 @ case 1
+ .4byte _08008660 @ case 2
+ .4byte _080086B0 @ case 3
+ .4byte _08008744 @ case 4
+ .4byte _080087A0 @ case 5
+ .4byte _080087F8 @ case 6
+ .4byte _08008850 @ case 7
+_080085C4:
+ movs r7, #0
+ ldr r1, _08008604 @ =0x03000000
+ movs r6, #0xff
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _08008608 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_080085D8:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800860C @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080085D8
+ b _080088C8
+ .align 2, 0
+_08008604: .4byte 0x03000000
+_08008608: .4byte 0x0202BE30
+_0800860C: .4byte 0x0201B130
+_08008610:
+ movs r7, #0
+ ldr r1, _08008654 @ =0x03000000
+ movs r6, #0xff
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _08008658 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_08008624:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800865C @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008624
+ b _080088C8
+ .align 2, 0
+_08008654: .4byte 0x03000000
+_08008658: .4byte 0x0202BE30
+_0800865C: .4byte 0x0201B130
+_08008660:
+ movs r7, #0
+ ldr r1, _080086A4 @ =0x03000000
+ movs r6, #0xff
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _080086A8 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_08008674:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _080086AC @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008674
+ b _080088C8
+ .align 2, 0
+_080086A4: .4byte 0x03000000
+_080086A8: .4byte 0x0202BE30
+_080086AC: .4byte 0x0201B130
+_080086B0:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08008738 @ =0x03000000
+ mov sb, r0
+ movs r1, #0xf0
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _0800873C @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_080086D2:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08008740 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _080086D2
+ b _080088C8
+ .align 2, 0
+_08008738: .4byte 0x03000000
+_0800873C: .4byte 0x0202BE30
+_08008740: .4byte 0x0201B130
+_08008744:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r1, _08008794 @ =0x03000000
+ mov sb, r1
+ movs r2, #0xff
+ mov r8, r2
+ ldr r6, _08008798 @ =0x0202BE30
+ mov r1, ip
+ lsls r0, r1, #1
+ mov r2, sb
+ adds r4, r0, r2
+ mov r5, ip
+_0800875E:
+ lsls r3, r7, #2
+ ldrh r1, [r6]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r5, r0
+ lsls r2, r2, #1
+ add r2, sb
+ ldr r1, _0800879C @ =0x0201B130
+ adds r3, r3, r1
+ ldrh r1, [r3]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r6, #4
+ adds r4, #4
+ adds r5, #2
+ adds r7, #1
+ cmp r7, #7
+ ble _0800875E
+ b _080088C8
+ .align 2, 0
+_08008794: .4byte 0x03000000
+_08008798: .4byte 0x0202BE30
+_0800879C: .4byte 0x0201B130
+_080087A0:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r6, _080087EC @ =0x03000000
+ movs r2, #0xff
+ mov r8, r2
+ ldr r5, _080087F0 @ =0x0202BE30
+_080087AE:
+ lsls r2, r7, #1
+ add r2, ip
+ lsls r3, r2, #1
+ adds r3, r3, r6
+ lsls r4, r7, #2
+ ldrh r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #1
+ adds r2, r2, r6
+ ldr r1, _080087F4 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080087AE
+ b _080088C8
+ .align 2, 0
+_080087EC: .4byte 0x03000000
+_080087F0: .4byte 0x0202BE30
+_080087F4: .4byte 0x0201B130
+_080087F8:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r6, _08008844 @ =0x03000000
+ movs r2, #0xff
+ mov r8, r2
+ ldr r5, _08008848 @ =0x0202BE30
+_08008806:
+ lsls r2, r7, #1
+ add r2, ip
+ lsls r3, r2, #1
+ adds r3, r3, r6
+ lsls r4, r7, #2
+ ldrh r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #1
+ adds r2, r2, r6
+ ldr r1, _0800884C @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008806
+ b _080088C8
+ .align 2, 0
+_08008844: .4byte 0x03000000
+_08008848: .4byte 0x0202BE30
+_0800884C: .4byte 0x0201B130
+_08008850:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _080088D8 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _080088DC @ =0x0202BE30
+_08008866:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _080088E0 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008866
+_080088C8:
+ add sp, #0x14
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080088D8: .4byte 0x03000000
+_080088DC: .4byte 0x0202BE30
+_080088E0: .4byte 0x0201B130
+
+ thumb_func_start sub_88E4
+sub_88E4: @ 0x080088E4
+ push {r4, r5, r6, lr}
+ movs r2, #0
+ ldr r6, _08008934 @ =0x0202A1C0
+ ldr r5, _08008938 @ =0x0201A514
+ ldr r4, _0800893C @ =0x0202BEB8
+ ldr r3, _08008940 @ =0x0200B134
+ adds r1, r6, #0
+_080088F2:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _080088F2
+ ldr r0, _08008934 @ =0x0202A1C0
+ movs r1, #0
+ movs r2, #0xcd
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ movs r2, #0x13
+_0800890C:
+ strh r1, [r0]
+ adds r0, #2
+ subs r2, #1
+ cmp r2, #0
+ bge _0800890C
+ movs r0, #0
+ strh r0, [r5]
+ strh r0, [r4]
+ movs r2, #0
+_0800891E:
+ lsls r0, r2, #1
+ adds r0, r0, r6
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #4
+ bhi _08008968
+ lsls r0, r0, #2
+ ldr r1, _08008944 @ =_08008948
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08008934: .4byte 0x0202A1C0
+_08008938: .4byte 0x0201A514
+_0800893C: .4byte 0x0202BEB8
+_08008940: .4byte 0x0200B134
+_08008944: .4byte _08008948
+_08008948: @ jump table
+ .4byte _08008968 @ case 0
+ .4byte _08008962 @ case 1
+ .4byte _08008968 @ case 2
+ .4byte _08008962 @ case 3
+ .4byte _0800895C @ case 4
+_0800895C:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_08008962:
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+_08008968:
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _0800891E
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_8974
+sub_8974: @ 0x08008974
+ push {r4, r5, lr}
+ ldr r1, _080089E0 @ =0x086A61BC
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0xf
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r4, [r0, r1]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r4, r0
+ beq _08008A56
+ cmp r4, #0x63
+ bgt _080089FC
+ ldr r1, _080089E4 @ =0x0202BF14
+ movs r0, #0
+ strh r0, [r1]
+ adds r0, r4, #0
+ movs r1, #5
+ bl __divsi3
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ adds r0, r4, #0
+ movs r1, #5
+ bl __modsi3
+ adds r4, r0, #0
+ ldr r0, _080089E8 @ =0x086BB6F4
+ lsls r5, r5, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #3
+ subs r1, r1, r4
+ lsls r1, r1, #2
+ subs r1, r1, r4
+ lsls r1, r1, #7
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _080089EC @ =0x06013800
+ movs r2, #0x6c
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _080089F0 @ =0x040000D4
+ ldr r0, _080089F4 @ =0x086B15B4
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+ str r0, [r1]
+ ldr r0, _080089F8 @ =0x05000240
+ b _08008A4E
+ .align 2, 0
+_080089E0: .4byte 0x086A61BC
+_080089E4: .4byte 0x0202BF14
+_080089E8: .4byte 0x086BB6F4
+_080089EC: .4byte 0x06013800
+_080089F0: .4byte 0x040000D4
+_080089F4: .4byte 0x086B15B4
+_080089F8: .4byte 0x05000240
+_080089FC:
+ ldr r1, _08008A5C @ =0x0202BF14
+ movs r0, #1
+ strh r0, [r1]
+ subs r4, #0x64
+ adds r0, r4, #0
+ movs r1, #6
+ bl __divsi3
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ adds r0, r4, #0
+ movs r1, #6
+ bl __modsi3
+ adds r4, r0, #0
+ ldr r0, _08008A60 @ =gMonHatchSpriteGroupGfx
+ lsls r5, r5, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #4
+ adds r1, r1, r4
+ lsls r1, r1, #3
+ subs r1, r1, r4
+ lsls r1, r1, #5
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _08008A64 @ =0x06014800
+ movs r2, #0x87
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _08008A68 @ =0x040000D4
+ ldr r0, _08008A6C @ =gMonHatchSpriteGroupPals
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+ str r0, [r1]
+ ldr r0, _08008A70 @ =0x05000260
+_08008A4E:
+ str r0, [r1, #4]
+ ldr r0, _08008A74 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08008A56:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008A5C: .4byte 0x0202BF14
+_08008A60: .4byte gMonHatchSpriteGroupGfx
+_08008A64: .4byte 0x06014800
+_08008A68: .4byte 0x040000D4
+_08008A6C: .4byte gMonHatchSpriteGroupPals
+_08008A70: .4byte 0x05000260
+_08008A74: .4byte 0x80000010
+
+ thumb_func_start sub_8A78
+sub_8A78: @ 0x08008A78
+ ldr r1, _08008AA0 @ =0x0202A1C0
+ lsls r0, r0, #0x10
+ asrs r2, r0, #0xf
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08008AAC
+ ldr r0, _08008AA4 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ beq _08008AAC
+ ldr r1, _08008AA8 @ =0x0202A588
+ movs r0, #1
+ b _08008AB0
+ .align 2, 0
+_08008AA0: .4byte 0x0202A1C0
+_08008AA4: .4byte 0x086A61BC
+_08008AA8: .4byte 0x0202A588
+_08008AAC:
+ ldr r1, _08008AB8 @ =0x0202A588
+ movs r0, #0
+_08008AB0:
+ strh r0, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ bx lr
+ .align 2, 0
+_08008AB8: .4byte 0x0202A588
+
+ thumb_func_start sub_8ABC
+sub_8ABC: @ 0x08008ABC
+ ldr r1, _08008AD0 @ =0x0200B134
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xcc
+_08008AC4:
+ strb r2, [r0]
+ subs r0, #1
+ cmp r0, r1
+ bge _08008AC4
+ bx lr
+ .align 2, 0
+_08008AD0: .4byte 0x0200B134
diff --git a/asm/rom_1068C.s b/asm/rom_1068C.s
new file mode 100755
index 0000000..238c7c5
--- /dev/null
+++ b/asm/rom_1068C.s
@@ -0,0 +1,348 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_1068C
+sub_1068C: @ 0x0801068C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ adds r4, r0, #0
+ adds r7, r2, #0
+ mov sb, r3
+ ldr r0, [sp, #0x24]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp]
+ movs r2, #0
+ cmp r2, sb
+ bge _080106F0
+ lsls r0, r1, #5
+ adds r0, r0, r4
+ mov sl, r0
+_080106B2:
+ movs r3, #0
+ adds r6, r2, #1
+ cmp r3, r7
+ bge _080106E8
+ lsls r0, r2, #5
+ mov r1, sl
+ adds r5, r1, r0
+ ldr r0, _08010700 @ =0x03005C00
+ mov ip, r0
+ ldr r1, _08010704 @ =0x00000FFF
+ mov r8, r1
+ ldr r0, [sp]
+ lsls r4, r0, #0xc
+_080106CC:
+ adds r1, r3, r5
+ lsls r1, r1, #0x10
+ lsrs r1, r1, #0xf
+ add r1, ip
+ ldrh r2, [r1]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, r7
+ blt _080106CC
+_080106E8:
+ lsls r0, r6, #0x10
+ lsrs r2, r0, #0x10
+ cmp r2, sb
+ blt _080106B2
+_080106F0:
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010700: .4byte 0x03005C00
+_08010704: .4byte 0x00000FFF
+
+ thumb_func_start sub_10708
+sub_10708: @ 0x08010708
+ push {r4, r5, lr}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ lsls r2, r2, #0x10
+ lsrs r0, r2, #0x10
+ movs r4, #0
+ lsls r3, r3, #0x10
+ asrs r1, r3, #0x10
+ cmp r4, r1
+ bge _08010744
+ ldr r2, _0801074C @ =0x040000D4
+ lsls r0, r0, #0x10
+ asrs r3, r0, #0xc
+ movs r0, #0x80
+ lsls r0, r0, #0x18
+ orrs r3, r0
+ adds r5, r1, #0
+_0801072C:
+ lsls r1, r4, #0xa
+ ldr r0, [sp]
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, [sp, #4]
+ adds r0, r0, r1
+ str r0, [r2, #4]
+ str r3, [r2, #8]
+ ldr r0, [r2, #8]
+ adds r4, #1
+ cmp r4, r5
+ blt _0801072C
+_08010744:
+ add sp, #8
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801074C: .4byte 0x040000D4
+
+ thumb_func_start sub_10750
+sub_10750: @ 0x08010750
+ push {r4, r5, lr}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ lsls r2, r2, #0x10
+ lsrs r0, r2, #0x10
+ movs r4, #0
+ lsls r3, r3, #0x10
+ asrs r1, r3, #0x10
+ cmp r4, r1
+ bge _0801078C
+ ldr r2, _08010794 @ =0x040000D4
+ lsls r0, r0, #0x10
+ asrs r3, r0, #0x10
+ movs r0, #0x80
+ lsls r0, r0, #0x18
+ orrs r3, r0
+ adds r5, r1, #0
+_08010774:
+ lsls r1, r4, #6
+ ldr r0, [sp]
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, [sp, #4]
+ adds r0, r0, r1
+ str r0, [r2, #4]
+ str r3, [r2, #8]
+ ldr r0, [r2, #8]
+ adds r4, #1
+ cmp r4, r5
+ blt _08010774
+_0801078C:
+ add sp, #8
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010794: .4byte 0x040000D4
+
+ thumb_func_start sub_10798
+sub_10798: @ 0x08010798
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #4
+ mov r8, r2
+ ldr r4, _08010818 @ =0x040000D4
+ str r0, [r4]
+ ldr r2, _0801081C @ =0x0201A920
+ str r2, [r4, #4]
+ ldr r0, _08010820 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r3, [r4, #8]
+ str r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r3, r2, r1
+ str r3, [r4, #4]
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r1, sp
+ ldr r5, _08010824 @ =0x00007FFF
+ adds r0, r5, #0
+ strh r0, [r1]
+ str r1, [r4]
+ ldr r0, _08010828 @ =0xFFFFFC00
+ adds r2, r2, r0
+ str r2, [r4, #4]
+ ldr r0, _0801082C @ =0x81000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ str r2, [r4]
+ str r3, [r4, #4]
+ ldr r5, _08010830 @ =0x80000200
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ str r3, [r4]
+ movs r6, #0xa0
+ lsls r6, r6, #0x13
+ str r6, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_1050C
+ ldr r1, _08010834 @ =0x0200B0C0
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ ldrh r0, [r0]
+ strh r0, [r1, #0x16]
+ movs r7, #0
+_080107FA:
+ mov r1, r8
+ cmp r1, #0
+ beq _08010804
+ bl _call_via_r8
+_08010804:
+ adds r0, r7, #0
+ bl sub_1001C
+ bl sub_D74
+ cmp r7, #0x20
+ bne _08010838
+ ldr r0, _0801081C @ =0x0201A920
+ b _0801083A
+ .align 2, 0
+_08010818: .4byte 0x040000D4
+_0801081C: .4byte 0x0201A920
+_08010820: .4byte 0x80000100
+_08010824: .4byte 0x00007FFF
+_08010828: .4byte 0xFFFFFC00
+_0801082C: .4byte 0x81000200
+_08010830: .4byte 0x80000200
+_08010834: .4byte 0x0200B0C0
+_08010838:
+ ldr r0, _0801085C @ =0x0201AD20
+_0801083A:
+ str r0, [r4]
+ str r6, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ adds r0, r7, #0
+ adds r0, #0x10
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #0x20
+ bls _080107FA
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801085C: .4byte 0x0201AD20
+
+ thumb_func_start sub_10860
+sub_10860: @ 0x08010860
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #4
+ adds r5, r0, #0
+ ldr r1, _080108C8 @ =0x040000D4
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ mov r8, r0
+ str r0, [r1]
+ ldr r3, _080108CC @ =0x0201A520
+ str r3, [r1, #4]
+ ldr r4, _080108D0 @ =0x80000200
+ str r4, [r1, #8]
+ ldr r0, [r1, #8]
+ mov r2, sp
+ ldr r6, _080108D4 @ =0x00007FFF
+ adds r0, r6, #0
+ strh r0, [r2]
+ str r2, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r3, r2
+ str r0, [r1, #4]
+ ldr r0, _080108D8 @ =0x81000200
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ str r3, [r1]
+ movs r6, #0x80
+ lsls r6, r6, #4
+ adds r3, r3, r6
+ str r3, [r1, #4]
+ str r4, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r7, #0
+ adds r6, r1, #0
+_080108A8:
+ cmp r5, #0
+ beq _080108B0
+ bl _call_via_r5
+_080108B0:
+ adds r0, r7, #0
+ bl sub_1001C
+ bl sub_D74
+ cmp r7, #0x20
+ bne _080108E0
+ ldr r0, _080108DC @ =0x0201A920
+ str r0, [r6]
+ mov r0, r8
+ str r0, [r6, #4]
+ b _080108E8
+ .align 2, 0
+_080108C8: .4byte 0x040000D4
+_080108CC: .4byte 0x0201A520
+_080108D0: .4byte 0x80000200
+_080108D4: .4byte 0x00007FFF
+_080108D8: .4byte 0x81000200
+_080108DC: .4byte 0x0201A920
+_080108E0:
+ ldr r0, _08010908 @ =0x0201AD20
+ str r0, [r6]
+ mov r2, r8
+ str r2, [r6, #4]
+_080108E8:
+ str r4, [r6, #8]
+ ldr r0, [r6, #8]
+ adds r0, r7, #0
+ adds r0, #0x10
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #0x20
+ bls _080108A8
+ bl sub_D74
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010908: .4byte 0x0201AD20
+
+ thumb_func_start sub_1090C
+sub_1090C: @ 0x0801090C
+ ldr r1, _08010920 @ =0x0201A500
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xc
+_08010914:
+ str r2, [r0]
+ subs r0, #4
+ cmp r0, r1
+ bge _08010914
+ bx lr
+ .align 2, 0
+_08010920: .4byte 0x0201A500
diff --git a/asm/main.s b/asm/rom_11B9C.s
index 60146e9..1766ca8 100755
--- a/asm/main.s
+++ b/asm/rom_11B9C.s
@@ -4,34764 +4,6 @@
.text
- thumb_func_start sub_24C
-sub_24C: @ 0x0800024C
- push {r4, r5, r6, lr}
- ldr r3, _080002A4 @ =0x04000050
- movs r0, #0
- strh r0, [r3]
- ldr r4, _080002A8 @ =0x04000054
- movs r0, #0x10
- strh r0, [r4]
- movs r2, #0x80
- lsls r2, r2, #0x13
- ldrh r1, [r2]
- movs r0, #0xf8
- lsls r0, r0, #5
- ands r0, r1
- lsrs r0, r0, #8
- movs r1, #0xa0
- orrs r0, r1
- strh r0, [r3]
- ldrh r1, [r2]
- ldr r0, _080002AC @ =0x0000FF7F
- ands r0, r1
- strh r0, [r2]
- ldr r1, _080002B0 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r1, #0x16]
- movs r5, #0
- adds r6, r4, #0
- movs r4, #0xf
-_08000282:
- lsrs r0, r5, #1
- subs r0, r4, r0
- strh r0, [r6]
- bl sub_D74
- adds r0, r5, #1
- lsls r0, r0, #0x10
- lsrs r5, r0, #0x10
- cmp r5, #0x1f
- bls _08000282
- ldr r1, _080002A4 @ =0x04000050
- movs r0, #0
- strh r0, [r1]
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080002A4: .4byte 0x04000050
-_080002A8: .4byte 0x04000054
-_080002AC: .4byte 0x0000FF7F
-_080002B0: .4byte 0x0200B0C0
-
- thumb_func_start sub_2B4
-sub_2B4: @ 0x080002B4
- push {r4, r5, lr}
- sub sp, #4
- ldr r3, _08000344 @ =0x04000050
- movs r0, #0
- strh r0, [r3]
- ldr r2, _08000348 @ =0x04000054
- strh r0, [r2]
- movs r0, #0x80
- lsls r0, r0, #0x13
- ldrh r1, [r0]
- movs r0, #0xf8
- lsls r0, r0, #5
- ands r0, r1
- lsrs r0, r0, #8
- movs r1, #0xa0
- orrs r0, r1
- strh r0, [r3]
- movs r4, #0
- adds r5, r2, #0
-_080002DA:
- adds r4, #1
- strh r4, [r5]
- bl sub_D74
- lsls r4, r4, #0x10
- lsrs r4, r4, #0x10
- cmp r4, #0xf
- bls _080002DA
- ldr r1, _0800034C @ =0x0200B0C0
- ldrh r0, [r1, #0x16]
- movs r3, #0x80
- movs r2, #0
- orrs r0, r3
- strh r0, [r1, #0x16]
- movs r1, #0x80
- lsls r1, r1, #0x13
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- mov r0, sp
- strh r2, [r0]
- adds r1, #0xd4
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _08000350 @ =0x8100C000
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldr r0, _08000354 @ =0x04000010
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #0x32
- strh r2, [r0]
- adds r0, #4
- strh r2, [r0]
- add sp, #4
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08000344: .4byte 0x04000050
-_08000348: .4byte 0x04000054
-_0800034C: .4byte 0x0200B0C0
-_08000350: .4byte 0x8100C000
-_08000354: .4byte 0x04000010
-
- thumb_func_start sub_358
-sub_358: @ 0x08000358
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x10
- str r0, [sp]
- str r2, [sp, #8]
- lsls r1, r1, #0x10
- lsrs r1, r1, #0x10
- str r1, [sp, #4]
- ldr r4, _08000424 @ =0x03005000
- movs r7, #0
- ldr r2, _08000428 @ =0x040000D4
- ldr r0, _0800042C @ =0x08057C46
- str r0, [r2]
- str r4, [r2, #4]
- ldr r0, _08000430 @ =0x80000200
- str r0, [r2, #8]
- ldr r0, [r2, #8]
- movs r1, #0
- ldr r0, [sp, #4]
- cmp r7, r0
- bhs _0800040E
- mov ip, r2
-_0800038A:
- movs r0, #0xb8
- muls r0, r1, r0
- ldr r2, [sp, #8]
- adds r6, r2, r0
- ldrh r0, [r6]
- adds r2, r1, #1
- str r2, [sp, #0xc]
- cmp r0, #0
- beq _08000402
- lsls r0, r1, #2
- ldr r1, [sp]
- adds r0, r0, r1
- ldr r0, [r0]
- ldrh r5, [r0]
- adds r0, #2
- mov r2, ip
- str r0, [r2]
- lsls r0, r7, #3
- ldr r1, _08000424 @ =0x03005000
- adds r0, r0, r1
- str r0, [r2, #4]
- lsls r0, r5, #2
- movs r1, #0x80
- lsls r1, r1, #0x18
- orrs r0, r1
- str r0, [r2, #8]
- ldr r0, [r2, #8]
- movs r3, #0
- cmp r3, r5
- bhs _08000402
- ldr r2, _08000424 @ =0x03005000
- mov sb, r2
- ldr r0, _08000434 @ =0x000001FF
- mov sl, r0
- movs r1, #0xff
- mov r8, r1
-_080003D2:
- adds r2, r7, #0
- lsls r0, r2, #3
- mov r1, sb
- adds r4, r0, r1
- lsls r1, r3, #3
- adds r1, #8
- adds r1, r6, r1
- adds r0, r2, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- strh r2, [r1]
- ldrh r2, [r4, #2]
- mov r0, sl
- ands r0, r2
- strh r0, [r1, #2]
- ldrh r2, [r4]
- mov r0, r8
- ands r0, r2
- strh r0, [r1, #4]
- adds r0, r3, #1
- lsls r0, r0, #0x10
- lsrs r3, r0, #0x10
- cmp r3, r5
- blo _080003D2
-_08000402:
- ldr r2, [sp, #0xc]
- lsls r0, r2, #0x10
- lsrs r1, r0, #0x10
- ldr r0, [sp, #4]
- cmp r1, r0
- blo _0800038A
-_0800040E:
- lsls r0, r7, #0x10
- asrs r0, r0, #0x10
- add sp, #0x10
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08000424: .4byte 0x03005000
-_08000428: .4byte 0x040000D4
-_0800042C: .4byte 0x08057C46
-_08000430: .4byte 0x80000200
-_08000434: .4byte 0x000001FF
-
- thumb_func_start sub_438
-sub_438: @ 0x08000438
- push {r4, r5, r6, lr}
- ldr r4, _0800048C @ =0x0200B0C0
- ldrh r0, [r4, #0x16]
- movs r2, #0x80
- movs r6, #0
- movs r5, #0
- orrs r0, r2
- strh r0, [r4, #0x16]
- movs r1, #0x80
- lsls r1, r1, #0x13
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- bl sub_490
- bl sub_518
- bl sub_578
- strb r6, [r4, #0xf]
- strb r6, [r4, #0x10]
- str r5, [r4, #0x50]
- strb r6, [r4, #0x11]
- strh r5, [r4, #0x12]
- strh r5, [r4, #0x14]
- movs r0, #0x90
- strh r0, [r4, #0x26]
- strh r5, [r4, #0x28]
- strh r5, [r4, #0x2a]
- adds r0, r4, #0
- adds r0, #0x36
- strb r6, [r0]
- ldrh r0, [r4, #0x38]
- strh r5, [r4, #0x38]
- ldrh r0, [r4, #0x3a]
- strh r5, [r4, #0x3a]
- ldrh r0, [r4, #0x3c]
- strh r5, [r4, #0x3c]
- strh r5, [r4, #0x2c]
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800048C: .4byte 0x0200B0C0
-
- thumb_func_start sub_490
-sub_490: @ 0x08000490
- sub sp, #8
- mov r1, sp
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08000504 @ =0x040000D4
- mov r0, sp
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _08000508 @ =0x8100C000
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r2, #0
- str r2, [sp, #4]
- add r0, sp, #4
- str r0, [r1]
- movs r0, #0xe0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800050C @ =0x85000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- mov r0, sp
- strh r2, [r0]
- str r0, [r1]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _08000510 @ =0x81000200
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldr r0, _08000514 @ =0x04000010
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #0x32
- strh r2, [r0]
- adds r0, #4
- strh r2, [r0]
- subs r0, #0x50
- strh r2, [r0]
- adds r0, #0x4e
- strh r2, [r0]
- add sp, #8
- bx lr
- .align 2, 0
-_08000504: .4byte 0x040000D4
-_08000508: .4byte 0x8100C000
-_0800050C: .4byte 0x85000100
-_08000510: .4byte 0x81000200
-_08000514: .4byte 0x04000010
-
- thumb_func_start sub_518
-sub_518: @ 0x08000518
- push {r4, r5, r6, lr}
- sub sp, #4
- mov r1, sp
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08000564 @ =0x040000D4
- mov r0, sp
- str r0, [r1]
- ldr r0, _08000568 @ =0x03005C00
- str r0, [r1, #4]
- ldr r0, _0800056C @ =0x81000600
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r1, #0
- ldr r6, _08000570 @ =0x0200B0C0
- movs r5, #0xba
- lsls r5, r5, #2
- movs r3, #0
- ldr r4, _08000574 @ =0x000002EA
-_0800053E:
- lsls r0, r1, #0x10
- asrs r0, r0, #0x10
- lsls r1, r0, #2
- adds r1, r1, r6
- adds r2, r1, r5
- strh r3, [r2]
- adds r1, r1, r4
- strh r3, [r1]
- adds r0, #1
- lsls r0, r0, #0x10
- lsrs r1, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #3
- ble _0800053E
- add sp, #4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08000564: .4byte 0x040000D4
-_08000568: .4byte 0x03005C00
-_0800056C: .4byte 0x81000600
-_08000570: .4byte 0x0200B0C0
-_08000574: .4byte 0x000002EA
-
- thumb_func_start sub_578
-sub_578: @ 0x08000578
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- movs r5, #0
- ldr r6, _08000660 @ =0x0200B0C0
- movs r0, #0xb8
- mov sb, r0
- movs r4, #0
- movs r1, #0xc0
- lsls r1, r1, #2
- mov r8, r1
- ldr r3, _08000664 @ =0x00000302
- mov ip, r3
- movs r7, #0xc1
- lsls r7, r7, #2
- mov sl, r7
-_0800059C:
- mov r2, sb
- muls r2, r5, r2
- adds r1, r2, r6
- movs r3, #0xbe
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r4, [r0]
- ldr r7, _08000668 @ =0x000002FA
- adds r0, r1, r7
- strh r4, [r0]
- movs r0, #0xbf
- lsls r0, r0, #2
- adds r1, r1, r0
- strh r4, [r1]
- movs r3, #0
-_080005BA:
- lsls r0, r3, #3
- adds r0, r0, r2
- adds r0, r0, r6
- mov r7, r8
- adds r1, r0, r7
- strh r4, [r1]
- mov r7, ip
- adds r1, r0, r7
- strh r4, [r1]
- add r0, sl
- strh r4, [r0]
- adds r0, r3, #1
- lsls r0, r0, #0x10
- lsrs r3, r0, #0x10
- cmp r3, #0x15
- bls _080005BA
- adds r0, r5, #1
- lsls r0, r0, #0x10
- lsrs r5, r0, #0x10
- cmp r5, #0x63
- bls _0800059C
- movs r5, #0
- mov sl, r5
- movs r0, #0xd
- rsbs r0, r0, #0
- mov ip, r0
- movs r1, #0x11
- rsbs r1, r1, #0
- mov sb, r1
- movs r3, #0x21
- rsbs r3, r3, #0
- mov r8, r3
- movs r4, #0x3f
- ldr r6, _0800066C @ =0xFFFFFE00
- adds r3, #0x12
-_08000600:
- lsls r2, r5, #3
- ldr r7, _08000670 @ =0x03005000
- adds r2, r2, r7
- movs r0, #0xf4
- strb r0, [r2]
- movs r0, #0
- strb r0, [r2, #1]
- ldrh r1, [r2, #2]
- adds r0, r6, #0
- ands r0, r1
- movs r7, #0xfa
- lsls r7, r7, #1
- adds r1, r7, #0
- orrs r0, r1
- strh r0, [r2, #2]
- ldrb r1, [r2, #3]
- adds r0, r3, #0
- ands r0, r1
- mov r1, sb
- ands r0, r1
- mov r7, r8
- ands r0, r7
- ands r0, r4
- strb r0, [r2, #3]
- ldrh r1, [r2, #4]
- ldr r0, _08000674 @ =0xFFFFFC00
- ands r0, r1
- strh r0, [r2, #4]
- ldrb r1, [r2, #5]
- mov r0, ip
- ands r0, r1
- movs r1, #0xf
- ands r0, r1
- strb r0, [r2, #5]
- mov r0, sl
- strh r0, [r2, #6]
- adds r0, r5, #1
- lsls r0, r0, #0x10
- lsrs r5, r0, #0x10
- cmp r5, #0x7f
- bls _08000600
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08000660: .4byte 0x0200B0C0
-_08000664: .4byte 0x00000302
-_08000668: .4byte 0x000002FA
-_0800066C: .4byte 0xFFFFFE00
-_08000670: .4byte 0x03005000
-_08000674: .4byte 0xFFFFFC00
-
- thumb_func_start sub_678
-sub_678: @ 0x08000678
- push {r4, r5, r6, lr}
- adds r6, r0, #0
- adds r4, r1, #0
- adds r5, r2, #0
- lsls r4, r4, #0x10
- lsrs r4, r4, #0x10
- lsls r5, r5, #0x10
- lsrs r5, r5, #0x10
- bl sub_55A24
- subs r0, #1
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
- lsls r4, r4, #0x10
- asrs r4, r4, #0xb
- lsls r5, r5, #0x10
- asrs r5, r5, #0x10
- adds r4, r4, r5
- lsls r4, r4, #1
- ldr r0, _080006C4 @ =0x03005C00
- adds r4, r4, r0
-_080006A2:
- ldrb r0, [r6]
- subs r0, #0x20
- strh r0, [r4]
- adds r6, #1
- adds r4, #2
- adds r1, r2, #0
- lsls r0, r1, #0x10
- ldr r2, _080006C8 @ =0xFFFF0000
- adds r0, r0, r2
- lsrs r2, r0, #0x10
- lsls r1, r1, #0x10
- cmp r1, #0
- bgt _080006A2
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080006C4: .4byte 0x03005C00
-_080006C8: .4byte 0xFFFF0000
-
- thumb_func_start sub_6CC
-sub_6CC: @ 0x080006CC
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- adds r6, r0, #0
- adds r5, r1, #0
- adds r4, r2, #0
- lsls r3, r3, #0x10
- lsrs r3, r3, #0x10
- cmp r6, #0
- bge _080006E8
- movs r0, #0x2d
- strb r0, [r5]
- adds r5, #1
- rsbs r6, r6, #0
-_080006E8:
- lsls r7, r3, #0x10
- movs r0, #0x30
- mov r8, r0
-_080006EE:
- cmp r4, #1
- ble _08000708
- subs r4, #1
- movs r0, #0xa
- adds r1, r4, #0
- bl sub_780
- cmp r6, r0
- bge _08000708
- mov r0, r8
- strb r0, [r5]
- adds r5, #1
- b _080006EE
-_08000708:
- asrs r4, r7, #0x10
- cmp r4, #0
- beq _0800071A
- adds r0, r6, #0
- adds r1, r5, #0
- movs r2, #0xa
- bl sub_734
- b _08000726
-_0800071A:
- adds r0, r6, #0
- adds r1, r5, #0
- movs r2, #0xa
- bl sub_734
- strb r4, [r0]
-_08000726:
- adds r0, r5, #0
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-
- thumb_func_start sub_734
-sub_734: @ 0x08000734
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- adds r4, r0, #0
- adds r7, r1, #0
- adds r6, r2, #0
- adds r1, r6, #0
- bl __umodsi3
- lsls r0, r0, #0x18
- lsrs r5, r0, #0x18
- mov r8, r5
- adds r0, r4, #0
- adds r1, r6, #0
- bl __udivsi3
- cmp r0, #0
- beq _08000762
- adds r1, r7, #0
- adds r2, r6, #0
- bl sub_734
- adds r7, r0, #0
-_08000762:
- cmp r5, #9
- bhi _0800076C
- adds r0, r5, #0
- adds r0, #0x30
- b _08000770
-_0800076C:
- mov r0, r8
- adds r0, #0x57
-_08000770:
- strb r0, [r7]
- adds r0, r7, #1
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-
- thumb_func_start sub_780
-sub_780: @ 0x08000780
- push {r4, r5, lr}
- adds r3, r0, #0
- adds r2, r1, #0
- cmp r1, #0
- bge _0800078C
- rsbs r2, r1, #0
-_0800078C:
- movs r4, #1
- cmp r2, #0
- beq _080007AA
- movs r5, #1
-_08000794:
- adds r0, r2, #0
- ands r0, r5
- cmp r0, #0
- beq _0800079E
- muls r4, r3, r4
-_0800079E:
- adds r0, r3, #0
- muls r0, r3, r0
- adds r3, r0, #0
- asrs r2, r2, #1
- cmp r2, #0
- bne _08000794
-_080007AA:
- cmp r1, #0
- bge _080007B8
- movs r0, #1
- adds r1, r4, #0
- bl __divsi3
- b _080007BA
-_080007B8:
- adds r0, r4, #0
-_080007BA:
- pop {r4, r5}
- pop {r1}
- bx r1
-
- thumb_func_start sub_7C0
-sub_7C0: @ 0x080007C0
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- sub sp, #8
- adds r3, r0, #0
- adds r4, r1, #0
- adds r5, r2, #0
- lsls r4, r4, #0x10
- lsrs r4, r4, #0x10
- lsls r5, r5, #0x10
- lsrs r5, r5, #0x10
- lsls r3, r3, #0x10
- asrs r3, r3, #0x10
- movs r0, #0x80
- lsls r0, r0, #9
- mov r8, r0
- adds r1, r3, #0
- bl __divsi3
- adds r6, r0, #0
- lsls r6, r6, #0x10
- lsrs r6, r6, #0x10
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- mov r0, r8
- adds r1, r4, #0
- bl __divsi3
- mov r1, sp
- strh r6, [r1]
- mov r4, sp
- adds r4, #2
- movs r1, #0
- strh r1, [r4]
- add r6, sp, #4
- strh r1, [r6]
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- mov r1, sp
- adds r1, #6
- strh r0, [r1]
- ldr r3, _0800084C @ =0x03005000
- lsls r5, r5, #0x10
- asrs r5, r5, #0x10
- lsls r1, r5, #5
- adds r1, r1, r3
- mov r2, sp
- ldrh r2, [r2]
- strh r2, [r1, #6]
- lsls r5, r5, #2
- adds r1, r5, #1
- lsls r1, r1, #3
- adds r1, r1, r3
- ldrh r2, [r4]
- strh r2, [r1, #6]
- adds r1, r5, #2
- lsls r1, r1, #3
- adds r1, r1, r3
- ldrh r2, [r6]
- strh r2, [r1, #6]
- adds r5, #3
- lsls r5, r5, #3
- adds r5, r5, r3
- strh r0, [r5, #6]
- add sp, #8
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800084C: .4byte 0x03005000
-
- thumb_func_start sub_850
-sub_850: @ 0x08000850
- ldr r0, _08000888 @ =0x04000208
- ldrh r1, [r0]
- movs r2, #1
- adds r0, r2, #0
- ands r0, r1
- cmp r0, #0
- beq _08000894
- ldr r0, _0800088C @ =0x04000004
- ldrh r1, [r0]
- movs r0, #8
- ands r0, r1
- cmp r0, #0
- beq _08000894
- ldr r0, _08000890 @ =0x04000200
- ldrh r1, [r0]
- adds r0, r2, #0
- ands r0, r1
- cmp r0, #0
- beq _08000894
- movs r0, #0x80
- lsls r0, r0, #0x13
- ldrh r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- bne _08000894
- movs r0, #1
- b _08000896
- .align 2, 0
-_08000888: .4byte 0x04000208
-_0800088C: .4byte 0x04000004
-_08000890: .4byte 0x04000200
-_08000894:
- movs r0, #0
-_08000896:
- bx lr
-
- thumb_func_start sub_898
-sub_898: @ 0x08000898
- push {r4, lr}
- adds r4, r0, #0
- ldr r0, _080008B4 @ =0x02017BD4
- str r4, [r0]
- bl sub_850
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080008AE
- ldr r0, _080008B8 @ =0x0200FB9C
- str r4, [r0]
-_080008AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080008B4: .4byte 0x02017BD4
-_080008B8: .4byte 0x0200FB9C
-
- thumb_func_start sub_8BC
-sub_8BC: @ 0x080008BC
- ldr r0, _080008C8 @ =0x0200FB9C
- ldr r1, _080008CC @ =sub_DC4 + 1
- str r1, [r0]
- ldr r0, _080008D0 @ =0x02017BD4
- str r1, [r0]
- bx lr
- .align 2, 0
-_080008C8: .4byte 0x0200FB9C
-_080008CC: .4byte sub_DC4 + 1
-_080008D0: .4byte 0x02017BD4
-
- thumb_func_start sub_8D4
-sub_8D4: @ 0x080008D4
- push {r4, lr}
- adds r4, r0, #0
- ldr r0, _080008F4 @ =0x02017BD0
- str r4, [r0]
- bl sub_850
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080008EC
- ldr r0, _080008F8 @ =0x0200FB98
- ldr r0, [r0]
- str r4, [r0]
-_080008EC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080008F4: .4byte 0x02017BD0
-_080008F8: .4byte 0x0200FB98
-
- thumb_func_start sub_8FC
-sub_8FC: @ 0x080008FC
- ldr r0, _0800090C @ =0x0200FB98
- ldr r0, [r0]
- ldr r1, _08000910 @ =sub_A08 + 1
- str r1, [r0]
- ldr r0, _08000914 @ =0x02017BD0
- str r1, [r0]
- bx lr
- .align 2, 0
-_0800090C: .4byte 0x0200FB98
-_08000910: .4byte sub_A08 + 1
-_08000914: .4byte 0x02017BD0
-
- thumb_func_start sub_918
-sub_918: @ 0x08000918
- push {r4, lr}
- adds r4, r0, #0
- ldr r0, _08000938 @ =0x0200FBA0
- str r4, [r0]
- bl sub_850
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08000930
- ldr r0, _0800093C @ =0x02019BE0
- ldr r0, [r0]
- str r4, [r0]
-_08000930:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000938: .4byte 0x0200FBA0
-_0800093C: .4byte 0x02019BE0
-
- thumb_func_start sub_940
-sub_940: @ 0x08000940
- ldr r0, _08000950 @ =0x02019BE0
- ldr r0, [r0]
- ldr r1, _08000954 @ =sub_A20 + 1
- str r1, [r0]
- ldr r0, _08000958 @ =0x0200FBA0
- str r1, [r0]
- bx lr
- .align 2, 0
-_08000950: .4byte 0x02019BE0
-_08000954: .4byte sub_A20 + 1
-_08000958: .4byte 0x0200FBA0
-
- thumb_func_start AgbMain
-AgbMain: @ 0x0800095C
- push {r4, r5, lr}
- movs r0, #0xff
- bl RegisterRamReset
- bl sub_BBC
- ldr r1, _080009A0 @ =0x040000D4
- ldr r0, _080009A4 @ =IntrMain
- str r0, [r1]
- ldr r2, _080009A8 @ =0x03005400
- str r2, [r1, #4]
- ldr r0, _080009AC @ =0x84000200
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldr r0, _080009B0 @ =0x03007FFC
- str r2, [r0]
- bl sub_B54
- bl sub_FE8
- ldr r5, _080009B4 @ =0x086A4AD8
- ldr r4, _080009B8 @ =0x0200B0C0
-_08000988:
- bl sub_C8C
- ldrb r0, [r4, #2]
- lsls r0, r0, #2
- adds r0, r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_D74
- b _08000988
- .align 2, 0
-_080009A0: .4byte 0x040000D4
-_080009A4: .4byte IntrMain
-_080009A8: .4byte 0x03005400
-_080009AC: .4byte 0x84000200
-_080009B0: .4byte 0x03007FFC
-_080009B4: .4byte 0x086A4AD8
-_080009B8: .4byte 0x0200B0C0
-
- thumb_func_start sub_9BC
-sub_9BC: @ 0x080009BC
- push {r4, lr}
- ldr r4, _080009DC @ =0x0200B0C0
- ldrb r0, [r4, #3]
- cmp r0, #0
- beq _080009E0
- cmp r0, #1
- beq _080009EE
- bl sub_2B4
- bl sub_D10
- movs r0, #1
- bl sub_23C
- b _080009FC
- .align 2, 0
-_080009DC: .4byte 0x0200B0C0
-_080009E0:
- bl sub_CBC
- bl sub_24C
- ldrb r0, [r4, #3]
- adds r0, #1
- b _080009FA
-_080009EE:
- ldrh r1, [r4, #0x18]
- ldr r0, _08000A04 @ =0x000003FF
- ands r0, r1
- cmp r0, #0
- beq _080009FC
- movs r0, #2
-_080009FA:
- strb r0, [r4, #3]
-_080009FC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000A04: .4byte 0x000003FF
-
- thumb_func_start sub_A08
-sub_A08: @ 0x08000A08
- push {lr}
- bl m4aSoundVSync
- ldr r0, _08000A1C @ =0x03007FF8
- ldrh r1, [r0]
- movs r2, #1
- orrs r1, r2
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08000A1C: .4byte 0x03007FF8
-
- thumb_func_start sub_A20
-sub_A20: @ 0x08000A20
- push {r4, r5, lr}
- ldr r2, _08000A78 @ =0x03007FF8
- ldrh r0, [r2]
- movs r1, #4
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _08000A7C @ =0x04000004
- ldrh r1, [r2]
- movs r0, #2
- ands r0, r1
- ldr r3, _08000A80 @ =0x0200B0C0
- cmp r0, #0
- bne _08000A46
- movs r4, #2
-_08000A3C:
- ldrh r1, [r2]
- adds r0, r4, #0
- ands r0, r1
- cmp r0, #0
- beq _08000A3C
-_08000A46:
- adds r2, r3, #0
- ldrb r0, [r2, #2]
- cmp r0, #2
- bne _08000B2E
- ldr r0, _08000A84 @ =0x04000010
- movs r4, #0
- strh r4, [r0]
- movs r0, #0x28
- ldrsh r1, [r2, r0]
- cmp r1, #0
- beq _08000AA0
- movs r1, #0x26
- ldrsh r0, [r2, r1]
- cmp r0, #0x48
- bne _08000A8C
- ldr r1, _08000A88 @ =0x04000012
- movs r3, #0x2a
- ldrsh r0, [r2, r3]
- lsls r0, r0, #2
- adds r0, #0x58
- strh r0, [r1]
- movs r1, #0x90
- strh r1, [r2, #0x26]
- b _08000B00
- .align 2, 0
-_08000A78: .4byte 0x03007FF8
-_08000A7C: .4byte 0x04000004
-_08000A80: .4byte 0x0200B0C0
-_08000A84: .4byte 0x04000010
-_08000A88: .4byte 0x04000012
-_08000A8C:
- ldr r1, _08000A9C @ =0x04000012
- movs r5, #0xb0
- lsls r5, r5, #1
- adds r0, r5, #0
- strh r0, [r1]
- movs r1, #0x48
- strh r1, [r2, #0x26]
- b _08000B00
- .align 2, 0
-_08000A9C: .4byte 0x04000012
-_08000AA0:
- movs r5, #0x2c
- ldrsh r0, [r2, r5]
- cmp r0, #0
- beq _08000B24
- movs r5, #0x26
- ldrsh r0, [r2, r5]
- cmp r0, #0x28
- bne _08000ADC
- ldrh r0, [r2, #0x38]
- ldr r0, _08000AD0 @ =0x00001E41
- strh r0, [r2, #0x38]
- ldrh r0, [r2, #0x3a]
- ldr r0, _08000AD4 @ =0x00000A06
- strh r0, [r2, #0x3a]
- ldr r1, _08000AD8 @ =0x04000050
- ldrh r0, [r2, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r2, #0x3a]
- strh r0, [r1]
- movs r1, #0x90
- strh r1, [r2, #0x26]
- b _08000B00
- .align 2, 0
-_08000AD0: .4byte 0x00001E41
-_08000AD4: .4byte 0x00000A06
-_08000AD8: .4byte 0x04000050
-_08000ADC:
- ldrh r0, [r3, #0x38]
- ldr r0, _08000B18 @ =0x00001E01
- strh r0, [r3, #0x38]
- ldrh r0, [r3, #0x3a]
- strh r1, [r3, #0x3a]
- ldr r1, _08000B1C @ =0x04000050
- ldrh r0, [r3, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r3, #0x3a]
- strh r0, [r1]
- subs r1, #0x40
- movs r2, #0xb0
- lsls r2, r2, #1
- adds r0, r2, #0
- strh r0, [r1]
- movs r1, #0x28
- strh r1, [r3, #0x26]
-_08000B00:
- ldr r2, _08000B20 @ =0x04000004
- ldrh r3, [r2]
- movs r0, #0xff
- ands r0, r3
- strh r0, [r2]
- lsls r1, r1, #8
- adds r1, #0x20
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- b _08000B2E
- .align 2, 0
-_08000B18: .4byte 0x00001E01
-_08000B1C: .4byte 0x04000050
-_08000B20: .4byte 0x04000004
-_08000B24:
- ldr r1, _08000B34 @ =0x04000012
- movs r3, #0xb0
- lsls r3, r3, #1
- adds r0, r3, #0
- strh r0, [r1]
-_08000B2E:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08000B34: .4byte 0x04000012
-
- thumb_func_start sub_B38
-sub_B38: @ 0x08000B38
- push {lr}
- bl sub_1F5C
- pop {r0}
- bx r0
-
- thumb_func_start sub_B44
-sub_B44: @ 0x08000B44
- push {lr}
- bl sub_1F4C
- pop {r0}
- bx r0
-
- thumb_func_start sub_B50
-sub_B50: @ 0x08000B50
- bx lr
-
- thumb_func_start sub_B54
-sub_B54: @ 0x08000B54
- push {lr}
- ldr r1, _08000B84 @ =0x04000204
- ldr r2, _08000B88 @ =0x000045B6
- adds r0, r2, #0
- strh r0, [r1]
- subs r1, #4
- movs r2, #0x80
- lsls r2, r2, #6
- adds r0, r2, #0
- strh r0, [r1]
- adds r1, #8
- movs r0, #1
- strh r0, [r1]
- bl sub_B8C
- bl m4aSoundInit
- bl m4aSoundVSyncOff
- bl sub_52A18
- pop {r0}
- bx r0
- .align 2, 0
-_08000B84: .4byte 0x04000204
-_08000B88: .4byte 0x000045B6
-
- thumb_func_start sub_B8C
-sub_B8C: @ 0x08000B8C
- push {lr}
- ldr r0, _08000BB8 @ =0x0200B0C0
- movs r1, #0
- strb r1, [r0, #2]
- strb r1, [r0, #3]
- strh r1, [r0, #0x16]
- strh r1, [r0, #0x1c]
- strh r1, [r0, #0x18]
- strh r1, [r0, #0x20]
- str r1, [r0, #0x48]
- str r1, [r0, #0x4c]
- strh r1, [r0, #0x30]
- movs r2, #0x90
- strh r2, [r0, #0x26]
- strh r1, [r0, #0x2c]
- bl sub_1090C
- bl sub_438
- pop {r0}
- bx r0
- .align 2, 0
-_08000BB8: .4byte 0x0200B0C0
-
- thumb_func_start sub_BBC
-sub_BBC: @ 0x08000BBC
- push {r4, r5, r6, lr}
- ldr r5, _08000BF0 @ =0x0200FB98
- ldr r2, _08000BF4 @ =0x02003068
- ldr r6, _08000BF8 @ =0x02019BE0
- ldr r4, _08000BFC @ =0x086A4AA0
- adds r3, r2, #0
- subs r3, #8
- movs r1, #0xd
-_08000BCC:
- ldm r4!, {r0}
- stm r3!, {r0}
- subs r1, #1
- cmp r1, #0
- bge _08000BCC
- str r2, [r5]
- adds r0, r2, #0
- adds r0, #8
- str r0, [r6]
- bl sub_8BC
- bl sub_8FC
- bl sub_940
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08000BF0: .4byte 0x0200FB98
-_08000BF4: .4byte 0x02003068
-_08000BF8: .4byte 0x02019BE0
-_08000BFC: .4byte 0x086A4AA0
-
- thumb_func_start sub_C00
-sub_C00: @ 0x08000C00
- ldr r2, _08000C14 @ =0x0200B0C0
- ldr r1, [r2, #0x48]
- ldr r0, _08000C18 @ =0x41C64E6D
- muls r0, r1, r0
- ldr r1, _08000C1C @ =0x00003039
- adds r0, r0, r1
- str r0, [r2, #0x48]
- ldr r1, _08000C20 @ =0x0000FFFF
- ands r0, r1
- bx lr
- .align 2, 0
-_08000C14: .4byte 0x0200B0C0
-_08000C18: .4byte 0x41C64E6D
-_08000C1C: .4byte 0x00003039
-_08000C20: .4byte 0x0000FFFF
-
- thumb_func_start sub_C24
-sub_C24: @ 0x08000C24
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x12
- movs r3, #1
- ldr r0, _08000C60 @ =0x00001FFF
- cmp r2, r0
- bls _08000C3A
- ldr r1, _08000C64 @ =0xFFFFE000
- adds r0, r2, r1
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
- ldr r3, _08000C68 @ =0x0000FFFF
-_08000C3A:
- ldr r0, _08000C6C @ =0x00000FFF
- cmp r2, r0
- bls _08000C4C
- movs r1, #0x80
- lsls r1, r1, #6
- adds r0, r1, #0
- subs r0, r0, r2
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
-_08000C4C:
- ldr r1, _08000C70 @ =0x08055C44
- lsls r0, r2, #1
- adds r0, r0, r1
- ldrh r1, [r0]
- lsls r0, r3, #0x10
- asrs r0, r0, #0x10
- muls r0, r1, r0
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- bx lr
- .align 2, 0
-_08000C60: .4byte 0x00001FFF
-_08000C64: .4byte 0xFFFFE000
-_08000C68: .4byte 0x0000FFFF
-_08000C6C: .4byte 0x00000FFF
-_08000C70: .4byte 0x08055C44
-
- thumb_func_start sub_C74
-sub_C74: @ 0x08000C74
- push {lr}
- lsls r0, r0, #0x10
- movs r1, #0x80
- lsls r1, r1, #0x17
- adds r0, r0, r1
- lsrs r0, r0, #0x10
- bl sub_C24
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- pop {r1}
- bx r1
-
- thumb_func_start sub_C8C
-sub_C8C: @ 0x08000C8C
- push {r4, lr}
- ldr r0, _08000CB4 @ =0x04000130
- ldrh r2, [r0]
- mvns r2, r2
- lsls r2, r2, #0x10
- lsrs r2, r2, #0x10
- ldr r3, _08000CB8 @ =0x0200B0C0
- ldrh r4, [r3, #0x1c]
- adds r1, r2, #0
- eors r1, r4
- adds r0, r2, #0
- ands r0, r1
- strh r0, [r3, #0x18]
- ands r1, r4
- strh r1, [r3, #0x1a]
- strh r2, [r3, #0x1c]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000CB4: .4byte 0x04000130
-_08000CB8: .4byte 0x0200B0C0
-
- thumb_func_start sub_CBC
-sub_CBC: @ 0x08000CBC
- push {r4, lr}
- ldr r3, _08000CFC @ =0x04000200
- ldrh r1, [r3]
- movs r4, #1
- adds r0, r4, #0
- ands r0, r1
- cmp r0, #0
- bne _08000CF6
- ldr r1, _08000D00 @ =0x04000202
- ldrh r0, [r1]
- movs r2, #5
- orrs r0, r2
- strh r0, [r1]
- ldrh r1, [r3]
- ldr r0, _08000D04 @ =0x00003FFF
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08000D08 @ =0x04000208
- strh r4, [r0]
- ldrh r0, [r3]
- orrs r0, r2
- strh r0, [r3]
- ldr r2, _08000D0C @ =0x04000004
- ldrh r0, [r2]
- movs r1, #8
- orrs r0, r1
- strh r0, [r2]
- bl m4aSoundVSyncOn
-_08000CF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000CFC: .4byte 0x04000200
-_08000D00: .4byte 0x04000202
-_08000D04: .4byte 0x00003FFF
-_08000D08: .4byte 0x04000208
-_08000D0C: .4byte 0x04000004
-
- thumb_func_start sub_D10
-sub_D10: @ 0x08000D10
- push {lr}
- ldr r1, _08000D54 @ =0x04000004
- ldrh r2, [r1]
- ldr r0, _08000D58 @ =0x0000FFF7
- ands r0, r2
- strh r0, [r1]
- ldrh r2, [r1]
- ldr r0, _08000D5C @ =0x0000FFDF
- ands r0, r2
- strh r0, [r1]
- ldr r1, _08000D60 @ =0x04000200
- ldrh r2, [r1]
- ldr r0, _08000D64 @ =0x00003FFF
- ands r0, r2
- strh r0, [r1]
- ldrh r2, [r1]
- ldr r0, _08000D68 @ =0x00003FFE
- ands r0, r2
- strh r0, [r1]
- ldrh r0, [r1]
- adds r1, r0, #0
- cmp r1, #0
- bne _08000D42
- ldr r0, _08000D6C @ =0x04000208
- strh r1, [r0]
-_08000D42:
- ldr r0, _08000D70 @ =0x04000202
- ldrh r1, [r0]
- movs r2, #1
- orrs r1, r2
- strh r1, [r0]
- bl m4aSoundVSyncOff
- pop {r0}
- bx r0
- .align 2, 0
-_08000D54: .4byte 0x04000004
-_08000D58: .4byte 0x0000FFF7
-_08000D5C: .4byte 0x0000FFDF
-_08000D60: .4byte 0x04000200
-_08000D64: .4byte 0x00003FFF
-_08000D68: .4byte 0x00003FFE
-_08000D6C: .4byte 0x04000208
-_08000D70: .4byte 0x04000202
-
- thumb_func_start sub_D74
-sub_D74: @ 0x08000D74
- push {lr}
- ldr r2, _08000DA8 @ =0x0200FB9C
- ldr r0, _08000DAC @ =0x02017BD4
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, _08000DB0 @ =0x0200FB98
- ldr r1, [r0]
- ldr r0, _08000DB4 @ =0x02017BD0
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, _08000DB8 @ =0x02019BE0
- ldr r1, [r0]
- ldr r0, _08000DBC @ =0x0200FBA0
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, [r2]
- cmp r2, #0
- beq _08000D9C
- bl _call_via_r2
-_08000D9C:
- ldr r1, _08000DC0 @ =0x0200B0C0
- ldr r0, [r1, #0x4c]
- adds r0, #1
- str r0, [r1, #0x4c]
- pop {r0}
- bx r0
- .align 2, 0
-_08000DA8: .4byte 0x0200FB9C
-_08000DAC: .4byte 0x02017BD4
-_08000DB0: .4byte 0x0200FB98
-_08000DB4: .4byte 0x02017BD0
-_08000DB8: .4byte 0x02019BE0
-_08000DBC: .4byte 0x0200FBA0
-_08000DC0: .4byte 0x0200B0C0
-
- thumb_func_start sub_DC4
-sub_DC4: @ 0x08000DC4
- push {r4, lr}
- ldr r4, _08000E7C @ =0x04000004
- ldrh r1, [r4]
- movs r0, #8
- ands r0, r1
- cmp r0, #0
- beq _08000E76
- bl VBlankIntrWait
- ldr r1, _08000E80 @ =0x040000D4
- ldr r0, _08000E84 @ =0x03005000
- str r0, [r1]
- movs r0, #0xe0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _08000E88 @ =0x84000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- subs r1, #0xd4
- ldr r2, _08000E8C @ =0x0200B0C0
- ldrh r0, [r2, #0x16]
- strh r0, [r1]
- adds r1, #0x10
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, #0
- adds r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _08000E5E
- adds r1, #0x32
- ldrh r0, [r2, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r2, #0x3a]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r2, #0x3c]
- strh r0, [r1]
-_08000E5E:
- ldrh r1, [r4]
- movs r0, #0xff
- ands r0, r1
- strh r0, [r4]
- ldrh r0, [r2, #0x26]
- lsls r0, r0, #8
- adds r0, #0x20
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- bl m4aSoundMain
-_08000E76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000E7C: .4byte 0x04000004
-_08000E80: .4byte 0x040000D4
-_08000E84: .4byte 0x03005000
-_08000E88: .4byte 0x84000100
-_08000E8C: .4byte 0x0200B0C0
-
- thumb_func_start sub_E90
-sub_E90: @ 0x08000E90
- ldr r0, _08000EA8 @ =0x04000130
- ldrh r0, [r0]
- ldr r2, _08000EAC @ =0x000003FF
- adds r1, r2, #0
- eors r1, r0
- ldr r3, _08000EB0 @ =0x02002002
- ldr r2, _08000EB4 @ =0x02002000
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- bx lr
- .align 2, 0
-_08000EA8: .4byte 0x04000130
-_08000EAC: .4byte 0x000003FF
-_08000EB0: .4byte 0x02002002
-_08000EB4: .4byte 0x02002000
-
- thumb_func_start sub_EB8
-sub_EB8: @ 0x08000EB8
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- movs r7, #0
- movs r0, #0
- mov sl, r0
- mov sb, r0
- mov r8, r0
- bl VBlankIntrWait
- ldr r0, _08000F30 @ =0x040000D4
- ldr r1, _08000F34 @ =0x08058248
- str r1, [r0]
- ldr r1, _08000F38 @ =0x06008000
- str r1, [r0, #4]
- ldr r1, _08000F3C @ =0x80002000
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08000F40 @ =0x08058048
- str r1, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _08000F44 @ =0x80000100
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08000F48 @ =0x0805C248
- str r1, [r0]
- ldr r2, _08000F4C @ =0x02002008
- str r2, [r0, #4]
- ldr r1, _08000F50 @ =0x80000280
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- str r2, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _08000F54 @ =0x80000400
- str r1, [r0, #8]
- ldr r0, [r0, #8]
- ldr r1, _08000F58 @ =0x04000008
- movs r0, #0x88
- strh r0, [r1]
- movs r4, #0
- ldr r6, _08000F5C @ =0x04000054
- movs r5, #0x10
-_08000F18:
- bl VBlankIntrWait
- subs r0, r5, r4
- strh r0, [r6]
- adds r4, #1
- cmp r4, #0x10
- bls _08000F18
- ldr r6, _08000F60 @ =0x02002002
- ldr r5, _08000F64 @ =0x02002000
- ldr r4, _08000F30 @ =0x040000D4
- b _08000FA4
- .align 2, 0
-_08000F30: .4byte 0x040000D4
-_08000F34: .4byte 0x08058248
-_08000F38: .4byte 0x06008000
-_08000F3C: .4byte 0x80002000
-_08000F40: .4byte 0x08058048
-_08000F44: .4byte 0x80000100
-_08000F48: .4byte 0x0805C248
-_08000F4C: .4byte 0x02002008
-_08000F50: .4byte 0x80000280
-_08000F54: .4byte 0x80000400
-_08000F58: .4byte 0x04000008
-_08000F5C: .4byte 0x04000054
-_08000F60: .4byte 0x02002002
-_08000F64: .4byte 0x02002000
-_08000F68:
- ldrh r0, [r6]
- ldrh r1, [r5]
- eors r0, r1
- ands r0, r1
- movs r1, #0xf0
- ands r0, r1
- cmp r0, #0xf0
- bne _08000F7C
- mov r8, sb
- mov sb, r7
-_08000F7C:
- mov r1, r8
- cmp r1, #0
- beq _08000F8E
- mov r2, sb
- subs r0, r2, r1
- cmp r0, #3
- bgt _08000F8E
- movs r0, #1
- mov sl, r0
-_08000F8E:
- adds r7, #1
- bl VBlankIntrWait
- ldr r0, _08000FB0 @ =0x02002008
- str r0, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r0, _08000FB4 @ =0x84000200
- str r0, [r4, #8]
- ldr r0, [r4, #8]
-_08000FA4:
- cmp r7, #0x1d
- bgt _08000FB8
- bl sub_E90
- b _08000F68
- .align 2, 0
-_08000FB0: .4byte 0x02002008
-_08000FB4: .4byte 0x84000200
-_08000FB8:
- movs r4, #0
- ldr r5, _08000FD4 @ =0x04000054
-_08000FBC:
- bl VBlankIntrWait
- strh r4, [r5]
- adds r4, #1
- cmp r4, #0x10
- bls _08000FBC
- mov r1, sl
- cmp r1, #0
- bne _08000FD8
- movs r0, #0
- b _08000FDA
- .align 2, 0
-_08000FD4: .4byte 0x04000054
-_08000FD8:
- movs r0, #1
-_08000FDA:
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-
- thumb_func_start sub_FE8
-sub_FE8: @ 0x08000FE8
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- sub sp, #4
- ldr r2, _08001080 @ =0x04000200
- ldrh r0, [r2]
- movs r1, #1
- orrs r0, r1
- strh r0, [r2]
- ldr r6, _08001084 @ =0x04000004
- ldrh r0, [r6]
- movs r1, #8
- orrs r0, r1
- strh r0, [r6]
- ldr r1, _08001088 @ =0x04000050
- ldr r3, _0800108C @ =0x00003FBF
- adds r0, r3, #0
- strh r0, [r1]
- adds r1, #4
- movs r0, #0x10
- strh r0, [r1]
- movs r0, #0x80
- lsls r0, r0, #0x13
- mov r8, r0
- movs r1, #0x88
- lsls r1, r1, #5
- adds r0, r1, #0
- mov r3, r8
- strh r0, [r3]
- ldr r0, _08001090 @ =0x02019C00
- movs r4, #0
- str r4, [r0]
- ldr r0, _08001094 @ =0x02019BEC
- str r4, [r0]
- ldr r0, _08001098 @ =0x02019BF4
- str r4, [r0]
- ldr r0, _0800109C @ =0x02019BF0
- str r4, [r0]
- ldr r5, _080010A0 @ =0x02019C0C
- str r2, [sp]
- bl sub_EB8
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- str r0, [r5]
- ldr r2, [sp]
- ldrh r1, [r2]
- ldr r0, _080010A4 @ =0x0000FFFE
- ands r0, r1
- strh r0, [r2]
- ldrh r1, [r6]
- ldr r0, _080010A8 @ =0x0000FFF7
- ands r0, r1
- strh r0, [r6]
- mov r0, r8
- strh r4, [r0]
- ldr r1, _080010AC @ =0x02019BFC
- movs r0, #1
- rsbs r0, r0, #0
- str r0, [r1]
- ldr r0, _080010B0 @ =0x02019BE4
- str r4, [r0]
- ldr r0, _080010B4 @ =0x02019BE8
- str r4, [r0]
- ldr r0, _080010B8 @ =0x02019BF8
- str r4, [r0]
- ldr r1, _080010BC @ =0x02019C08
- movs r0, #2
- str r0, [r1]
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08001080: .4byte 0x04000200
-_08001084: .4byte 0x04000004
-_08001088: .4byte 0x04000050
-_0800108C: .4byte 0x00003FBF
-_08001090: .4byte 0x02019C00
-_08001094: .4byte 0x02019BEC
-_08001098: .4byte 0x02019BF4
-_0800109C: .4byte 0x02019BF0
-_080010A0: .4byte 0x02019C0C
-_080010A4: .4byte 0x0000FFFE
-_080010A8: .4byte 0x0000FFF7
-_080010AC: .4byte 0x02019BFC
-_080010B0: .4byte 0x02019BE4
-_080010B4: .4byte 0x02019BE8
-_080010B8: .4byte 0x02019BF8
-_080010BC: .4byte 0x02019C08
-
- thumb_func_start sub_10C0
-sub_10C0: @ 0x080010C0
- push {lr}
- ldr r0, _080010F8 @ =0x02019C0C
- ldr r2, [r0]
- cmp r2, #1
- bne _080010DC
- ldr r1, _080010FC @ =0x02003060
- ldr r0, _08001100 @ =sub_13FC + 1
- str r0, [r1]
- ldr r0, _08001104 @ =sub_1828 + 1
- str r0, [r1, #4]
- ldr r0, _08001108 @ =0x02019BF4
- str r2, [r0]
- bl sub_1340
-_080010DC:
- ldr r1, _0800110C @ =0x02019BFC
- movs r0, #1
- rsbs r0, r0, #0
- str r0, [r1]
- ldr r0, _08001110 @ =0x02019BE4
- movs r2, #0
- str r2, [r0]
- ldr r1, _08001114 @ =0x02019C08
- movs r0, #2
- str r0, [r1]
- ldr r0, _08001118 @ =0x02019C04
- str r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080010F8: .4byte 0x02019C0C
-_080010FC: .4byte 0x02003060
-_08001100: .4byte sub_13FC + 1
-_08001104: .4byte sub_1828 + 1
-_08001108: .4byte 0x02019BF4
-_0800110C: .4byte 0x02019BFC
-_08001110: .4byte 0x02019BE4
-_08001114: .4byte 0x02019C08
-_08001118: .4byte 0x02019C04
-
- thumb_func_start sub_111C
-sub_111C: @ 0x0800111C
- ldr r2, _0800114C @ =0x02019BF4
- movs r1, #0
- ldr r0, _08001150 @ =0x02019C00
- str r1, [r0]
- ldr r0, _08001154 @ =0x02019BEC
- str r1, [r0]
- str r1, [r2]
- ldr r0, _08001158 @ =0x02019BF0
- str r1, [r0]
- ldr r2, _0800115C @ =0x02019BFC
- movs r0, #1
- rsbs r0, r0, #0
- str r0, [r2]
- ldr r0, _08001160 @ =0x02019BE4
- str r1, [r0]
- ldr r0, _08001164 @ =0x02019BE8
- str r1, [r0]
- ldr r0, _08001168 @ =0x02019BF8
- str r1, [r0]
- ldr r1, _0800116C @ =0x02019C08
- movs r0, #2
- str r0, [r1]
- bx lr
- .align 2, 0
-_0800114C: .4byte 0x02019BF4
-_08001150: .4byte 0x02019C00
-_08001154: .4byte 0x02019BEC
-_08001158: .4byte 0x02019BF0
-_0800115C: .4byte 0x02019BFC
-_08001160: .4byte 0x02019BE4
-_08001164: .4byte 0x02019BE8
-_08001168: .4byte 0x02019BF8
-_0800116C: .4byte 0x02019C08
-
- thumb_func_start sub_1170
-sub_1170: @ 0x08001170
- ldr r0, _0800118C @ =0x02019C0C
- ldr r0, [r0]
- cmp r0, #1
- bne _08001194
- ldr r0, _08001190 @ =0x02019C10
- ldrb r0, [r0]
- subs r0, #4
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #1
- bls _08001194
- movs r0, #0
- b _08001196
- .align 2, 0
-_0800118C: .4byte 0x02019C0C
-_08001190: .4byte 0x02019C10
-_08001194:
- movs r0, #1
-_08001196:
- bx lr
-
- thumb_func_start sub_1198
-sub_1198: @ 0x08001198
- ldr r0, _080011A4 @ =0x02003060
- ldr r1, _080011A8 @ =sub_B38 + 1
- str r1, [r0]
- ldr r1, _080011AC @ =sub_B44 + 1
- str r1, [r0, #4]
- bx lr
- .align 2, 0
-_080011A4: .4byte 0x02003060
-_080011A8: .4byte sub_B38 + 1
-_080011AC: .4byte sub_B44 + 1
-
- thumb_func_start sub_11B0
-sub_11B0: @ 0x080011B0
- adds r1, r0, #0
- ldr r0, _080011D0 @ =0x0200B134
- adds r0, #0xcd
- ldrb r0, [r0]
- cmp r0, #0
- beq _080011CE
- ldr r0, _080011D4 @ =0x02019BF8
- str r1, [r0]
- ldr r0, _080011D8 @ =0x02019BFC
- movs r1, #0
- str r1, [r0]
- ldr r0, _080011DC @ =0x02019BE4
- str r1, [r0]
- ldr r0, _080011E0 @ =0x02019BE8
- str r1, [r0]
-_080011CE:
- bx lr
- .align 2, 0
-_080011D0: .4byte 0x0200B134
-_080011D4: .4byte 0x02019BF8
-_080011D8: .4byte 0x02019BFC
-_080011DC: .4byte 0x02019BE4
-_080011E0: .4byte 0x02019BE8
-
- thumb_func_start sub_11E4
-sub_11E4: @ 0x080011E4
- ldr r1, _080011EC @ =0x02019C08
- str r0, [r1]
- bx lr
- .align 2, 0
-_080011EC: .4byte 0x02019C08
-
- thumb_func_start sub_11F0
-sub_11F0: @ 0x080011F0
- ldr r1, _080011F8 @ =0x02019C04
- str r0, [r1]
- bx lr
- .align 2, 0
-_080011F8: .4byte 0x02019C04
-
- thumb_func_start sub_11FC
-sub_11FC: @ 0x080011FC
- push {r4, r5, r6, r7, lr}
- ldr r0, _0800121C @ =0x02019C0C
- ldr r0, [r0]
- cmp r0, #1
- beq _08001208
- b _08001324
-_08001208:
- ldr r0, _08001220 @ =0x02019C10
- ldrb r0, [r0]
- cmp r0, #5
- bls _08001212
- b _08001324
-_08001212:
- lsls r0, r0, #2
- ldr r1, _08001224 @ =_08001228
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800121C: .4byte 0x02019C0C
-_08001220: .4byte 0x02019C10
-_08001224: .4byte _08001228
-_08001228: @ jump table
- .4byte _08001324 @ case 0
- .4byte _08001324 @ case 1
- .4byte _08001324 @ case 2
- .4byte _08001240 @ case 3
- .4byte _08001240 @ case 4
- .4byte _08001308 @ case 5
-_08001240:
- ldr r0, _080012A8 @ =0x02019BFC
- ldr r1, [r0]
- mov ip, r0
- cmp r1, #0
- blt _080012FC
- ldr r0, _080012AC @ =0x02019C08
- ldr r3, [r0]
- cmp r3, #0
- beq _080012FC
- ldr r0, _080012B0 @ =0x02019C04
- ldr r2, [r0]
- cmp r2, #0
- bne _080012FC
- ldr r0, _080012B4 @ =0x02019BE8
- ldr r1, [r0]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- bne _080012DC
- ldr r1, _080012B8 @ =0x086A4C44
- ldr r0, _080012BC @ =0x02019BF8
- ldr r0, [r0]
- lsls r0, r0, #2
- adds r7, r0, r1
- mov r5, ip
- movs r6, #1
- rsbs r6, r6, #0
-_08001276:
- ldr r2, [r5]
- ldr r0, [r7]
- lsls r1, r2, #2
- adds r1, r1, r0
- ldr r3, [r1]
- adds r2, #1
- str r2, [r5]
- lsls r1, r2, #2
- adds r1, r1, r0
- ldr r4, [r1]
- cmp r3, r6
- beq _080012F8
- cmp r3, r6
- bge _080012D0
- ldr r1, _080012C0 @ =0x02019BE4
- ldr r0, [r1]
- cmp r0, #0
- beq _080012C4
- subs r0, #1
- str r0, [r1]
- cmp r0, #0
- bne _080012C8
- adds r0, r2, #1
- str r0, [r5]
- b _08001276
- .align 2, 0
-_080012A8: .4byte 0x02019BFC
-_080012AC: .4byte 0x02019C08
-_080012B0: .4byte 0x02019C04
-_080012B4: .4byte 0x02019BE8
-_080012B8: .4byte 0x086A4C44
-_080012BC: .4byte 0x02019BF8
-_080012C0: .4byte 0x02019BE4
-_080012C4:
- mvns r0, r3
- str r0, [r1]
-_080012C8:
- subs r0, r2, #1
- subs r0, r0, r4
- str r0, [r5]
- b _08001276
-_080012D0:
- ldr r0, _080012D8 @ =0x02019C00
- str r3, [r0]
- b _08001324
- .align 2, 0
-_080012D8: .4byte 0x02019C00
-_080012DC:
- lsrs r0, r1, #0x1f
- adds r0, r1, r0
- asrs r0, r0, #1
- lsls r0, r0, #1
- subs r0, r1, r0
- cmp r0, #1
- bne _08001324
- cmp r3, #1
- bne _08001324
- ldr r0, _080012F4 @ =0x02019C00
- str r2, [r0]
- b _08001324
- .align 2, 0
-_080012F4: .4byte 0x02019C00
-_080012F8:
- mov r0, ip
- str r3, [r0]
-_080012FC:
- ldr r1, _08001304 @ =0x02019C00
- movs r0, #0
- str r0, [r1]
- b _08001324
- .align 2, 0
-_08001304: .4byte 0x02019C00
-_08001308:
- ldr r4, _08001334 @ =0x02019BF0
- ldr r0, [r4]
- adds r0, #1
- str r0, [r4]
- cmp r0, #0x3c
- bls _08001324
- ldr r0, _08001338 @ =0x02019BF4
- ldr r0, [r0]
- cmp r0, #0
- beq _08001320
- bl sub_1340
-_08001320:
- movs r0, #0
- str r0, [r4]
-_08001324:
- ldr r1, _0800133C @ =0x02019BE8
- ldr r0, [r1]
- adds r0, #1
- str r0, [r1]
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08001334: .4byte 0x02019BF0
-_08001338: .4byte 0x02019BF4
-_0800133C: .4byte 0x02019BE8
-
- thumb_func_start sub_1340
-sub_1340: @ 0x08001340
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- sub sp, #4
- ldr r6, _080013D0 @ =0x04000208
- movs r3, #0
- strh r3, [r6]
- ldr r2, _080013D4 @ =0x04000200
- ldrh r1, [r2]
- ldr r0, _080013D8 @ =0x0000FF3F
- ands r0, r1
- strh r0, [r2]
- movs r0, #1
- mov r8, r0
- strh r0, [r6]
- ldr r0, _080013DC @ =0x04000134
- strh r3, [r0]
- ldr r4, _080013E0 @ =0x04000128
- ldr r1, _080013E4 @ =0x00001008
- adds r0, r1, #0
- strh r0, [r4]
- ldrh r0, [r4]
- movs r5, #0x80
- lsls r5, r5, #7
- adds r1, r5, #0
- orrs r0, r1
- strh r0, [r4]
- ldr r0, _080013E8 @ =0x04000202
- movs r1, #0xc0
- strh r1, [r0]
- strh r3, [r6]
- ldrh r0, [r2]
- orrs r0, r1
- strh r0, [r2]
- mov r0, r8
- strh r0, [r6]
- ldrb r1, [r4]
- movs r0, #2
- rsbs r0, r0, #0
- ands r0, r1
- strb r0, [r4]
- ldr r0, _080013EC @ =0x02019C10
- strb r3, [r0]
- movs r5, #0
- str r5, [sp]
- ldr r1, _080013F0 @ =0x02002808
- ldr r2, _080013F4 @ =0x05000003
- mov r0, sp
- bl CpuSet
- strh r5, [r6]
- ldrh r0, [r4]
- movs r1, #0x80
- orrs r0, r1
- strh r0, [r4]
- mov r1, r8
- strh r1, [r6]
- ldr r1, _080013F8 @ =0x0400010C
- movs r2, #0x80
- lsls r2, r2, #8
- adds r0, r2, #0
- strh r0, [r1]
- adds r1, #2
- movs r0, #0xc1
- strh r0, [r1]
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080013D0: .4byte 0x04000208
-_080013D4: .4byte 0x04000200
-_080013D8: .4byte 0x0000FF3F
-_080013DC: .4byte 0x04000134
-_080013E0: .4byte 0x04000128
-_080013E4: .4byte 0x00001008
-_080013E8: .4byte 0x04000202
-_080013EC: .4byte 0x02019C10
-_080013F0: .4byte 0x02002808
-_080013F4: .4byte 0x05000003
-_080013F8: .4byte 0x0400010C
-
- thumb_func_start sub_13FC
-sub_13FC: @ 0x080013FC
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- sub sp, #0xc
- ldr r1, _08001434 @ =0x02002818
- ldr r0, _08001438 @ =0x04000120
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _0800143C @ =0x0400010E
- movs r0, #0
- strh r0, [r1]
- subs r1, #2
- movs r2, #0x80
- lsls r2, r2, #8
- adds r0, r2, #0
- strh r0, [r1]
- ldr r0, _08001440 @ =0x02019C10
- ldrb r1, [r0]
- mov sb, r0
- cmp r1, #5
- bls _0800142A
- b _0800161C
-_0800142A:
- lsls r0, r1, #2
- ldr r1, _08001444 @ =_08001448
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08001434: .4byte 0x02002818
-_08001438: .4byte 0x04000120
-_0800143C: .4byte 0x0400010E
-_08001440: .4byte 0x02019C10
-_08001444: .4byte _08001448
-_08001448: @ jump table
- .4byte _08001460 @ case 0
- .4byte _08001520 @ case 1
- .4byte _08001574 @ case 2
- .4byte _080015C8 @ case 3
- .4byte _0800161C @ case 4
- .4byte _0800161C @ case 5
-_08001460:
- ldr r0, _080014B0 @ =0x04000120
- mov r8, r0
- ldr r6, [r0]
- ldr r3, _080014B4 @ =0x02002808
- ldrb r1, [r3]
- lsls r2, r1, #4
- adds r0, r6, #0
- lsls r0, r2
- lsrs r0, r0, #0x10
- movs r7, #1
- subs r1, r7, r1
- lsls r1, r1, #4
- lsls r6, r1
- adds r1, r6, #0
- lsrs r6, r1, #0x10
- ldrh r5, [r3, #0xa]
- adds r4, r3, #0
- cmp r5, #0
- bne _080014E4
- ldrh r2, [r4, #6]
- adds r1, r0, #0
- cmp r1, r2
- bne _080014E2
- ldrh r3, [r4, #2]
- cmp r3, #3
- bhi _080014B8
- ldrh r0, [r4, #4]
- mvns r0, r0
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- cmp r1, r0
- bne _080014E4
- mvns r0, r2
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- cmp r6, r0
- bne _080014E4
- adds r0, r3, #1
- strh r0, [r4, #2]
- b _080014E4
- .align 2, 0
-_080014B0: .4byte 0x04000120
-_080014B4: .4byte 0x02002808
-_080014B8:
- strh r6, [r4, #0xa]
- ldr r0, _080014D8 @ =0x00008002
- cmp r6, r0
- bne _080014E0
- mov r1, sb
- strb r7, [r1]
- movs r0, #1
- bl sub_1748
- ldr r1, _080014DC @ =0x02002814
- str r0, [r1]
- mov r2, r8
- str r0, [r2]
- strh r5, [r4, #2]
- b _08001640
- .align 2, 0
-_080014D8: .4byte 0x00008002
-_080014DC: .4byte 0x02002814
-_080014E0:
- strh r5, [r4, #0xa]
-_080014E2:
- strh r5, [r4, #2]
-_080014E4:
- ldrh r0, [r4, #2]
- cmp r0, #3
- bhi _080014F8
- lsls r0, r0, #1
- ldr r1, _080014F4 @ =0x0805C748
- adds r0, r0, r1
- ldrh r0, [r0]
- b _080014FC
- .align 2, 0
-_080014F4: .4byte 0x0805C748
-_080014F8:
- movs r0, #0x80
- lsls r0, r0, #8
-_080014FC:
- strh r0, [r4, #4]
- mvns r0, r6
- strh r0, [r4, #6]
- ldr r3, _0800151C @ =0x04000120
- ldrh r2, [r4, #4]
- ldrb r1, [r4]
- movs r0, #1
- subs r0, r0, r1
- lsls r0, r0, #4
- lsls r2, r0
- ldrh r0, [r4, #6]
- lsls r1, r1, #4
- lsls r0, r1
- adds r2, r2, r0
- str r2, [r3]
- b _08001640
- .align 2, 0
-_0800151C: .4byte 0x04000120
-_08001520:
- ldr r5, _08001544 @ =0x02019C10
- ldrb r0, [r5]
- bl sub_16A0
- cmp r0, #0
- beq _08001550
- ldr r1, _08001548 @ =0x02002808
- movs r4, #0
- movs r0, #0
- strh r0, [r1, #2]
- str r0, [sp]
- ldr r2, _0800154C @ =0x05000003
- mov r0, sp
- bl CpuSet
- strb r4, [r5]
- b _08001554
- .align 2, 0
-_08001544: .4byte 0x02019C10
-_08001548: .4byte 0x02002808
-_0800154C: .4byte 0x05000003
-_08001550:
- movs r0, #2
- strb r0, [r5]
-_08001554:
- ldr r0, _0800156C @ =0x02019BF4
- ldr r0, [r0]
- ldr r1, _08001570 @ =0x02019C10
- mov sb, r1
- cmp r0, #0
- bne _08001564
- movs r0, #4
- strb r0, [r1]
-_08001564:
- mov r2, sb
- ldrb r0, [r2]
- b _080015F8
- .align 2, 0
-_0800156C: .4byte 0x02019BF4
-_08001570: .4byte 0x02019C10
-_08001574:
- ldr r5, _08001598 @ =0x02019C10
- ldrb r0, [r5]
- bl sub_16A0
- cmp r0, #0
- beq _080015A4
- ldr r1, _0800159C @ =0x02002808
- movs r4, #0
- movs r0, #0
- strh r0, [r1, #2]
- str r0, [sp, #4]
- add r0, sp, #4
- ldr r2, _080015A0 @ =0x05000003
- bl CpuSet
- strb r4, [r5]
- b _080015A8
- .align 2, 0
-_08001598: .4byte 0x02019C10
-_0800159C: .4byte 0x02002808
-_080015A0: .4byte 0x05000003
-_080015A4:
- movs r0, #3
- strb r0, [r5]
-_080015A8:
- ldr r0, _080015C0 @ =0x02019BF4
- ldr r0, [r0]
- ldr r1, _080015C4 @ =0x02019C10
- mov sb, r1
- cmp r0, #0
- bne _080015B8
- movs r0, #4
- strb r0, [r1]
-_080015B8:
- mov r2, sb
- ldrb r0, [r2]
- b _080015F8
- .align 2, 0
-_080015C0: .4byte 0x02019BF4
-_080015C4: .4byte 0x02019C10
-_080015C8:
- mov r5, sb
- ldrb r0, [r5]
- bl sub_16A0
- cmp r0, #0
- beq _080015E8
- ldr r1, _08001608 @ =0x02002808
- movs r4, #0
- movs r0, #0
- strh r0, [r1, #2]
- str r0, [sp, #8]
- add r0, sp, #8
- ldr r2, _0800160C @ =0x05000003
- bl CpuSet
- strb r4, [r5]
-_080015E8:
- ldr r0, _08001610 @ =0x02019BF4
- ldr r0, [r0]
- cmp r0, #0
- bne _080015F4
- movs r0, #4
- strb r0, [r5]
-_080015F4:
- mov r1, sb
- ldrb r0, [r1]
-_080015F8:
- bl sub_1748
- ldr r1, _08001614 @ =0x02002814
- str r0, [r1]
- ldr r1, _08001618 @ =0x04000120
- str r0, [r1]
- b _08001640
- .align 2, 0
-_08001608: .4byte 0x02002808
-_0800160C: .4byte 0x05000003
-_08001610: .4byte 0x02019BF4
-_08001614: .4byte 0x02002814
-_08001618: .4byte 0x04000120
-_0800161C:
- ldr r3, _08001634 @ =0x04000208
- movs r0, #0
- strh r0, [r3]
- ldr r2, _08001638 @ =0x04000200
- ldrh r1, [r2]
- ldr r0, _0800163C @ =0x0000FF7F
- ands r0, r1
- strh r0, [r2]
- movs r0, #1
- strh r0, [r3]
- b _08001650
- .align 2, 0
-_08001634: .4byte 0x04000208
-_08001638: .4byte 0x04000200
-_0800163C: .4byte 0x0000FF7F
-_08001640:
- ldr r2, _08001660 @ =0x04000128
- ldrh r0, [r2]
- movs r1, #0x80
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08001664 @ =0x0400010E
- movs r0, #0xc1
- strh r0, [r1]
-_08001650:
- add sp, #0xc
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08001660: .4byte 0x04000128
-_08001664: .4byte 0x0400010E
-
- thumb_func_start sub_1668
-sub_1668: @ 0x08001668
- push {r4, r5, lr}
- ldr r2, _0800169C @ =0x00FFFFFF
- ands r2, r0
- lsls r4, r2, #4
- lsls r1, r1, #0x1c
- orrs r4, r1
- lsrs r3, r4, #0x1c
- movs r2, #6
- movs r5, #0xf
-_0800167A:
- lsls r0, r2, #2
- adds r1, r4, #0
- lsrs r1, r0
- ands r1, r5
- eors r3, r1
- subs r0, r2, #1
- lsls r0, r0, #0x18
- lsrs r2, r0, #0x18
- cmp r2, #0
- bne _0800167A
- movs r0, #0xf
- ands r3, r0
- orrs r4, r3
- adds r0, r4, #0
- pop {r4, r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0800169C: .4byte 0x00FFFFFF
-
- thumb_func_start sub_16A0
-sub_16A0: @ 0x080016A0
- push {r4, r5, r6, lr}
- lsls r0, r0, #0x18
- lsrs r4, r0, #0x18
- ldr r6, _080016C4 @ =0x02002818
- ldr r0, [r6]
- lsrs r5, r0, #0x1c
- bl sub_170C
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080016DE
- cmp r4, #2
- beq _080016E8
- cmp r4, #2
- bgt _080016C8
- cmp r4, #1
- beq _080016CE
- b _080016DE
- .align 2, 0
-_080016C4: .4byte 0x02002818
-_080016C8:
- cmp r4, #3
- beq _08001700
- b _080016DE
-_080016CE:
- ldr r1, _080016E4 @ =0x0200281C
- ldr r0, [r6]
- lsls r0, r0, #4
- lsrs r0, r0, #8
- ands r0, r4
- str r0, [r1]
- cmp r5, #1
- beq _08001704
-_080016DE:
- movs r0, #1
- b _08001706
- .align 2, 0
-_080016E4: .4byte 0x0200281C
-_080016E8:
- cmp r5, #2
- bne _080016DE
- ldr r0, _080016FC @ =0x0200281C
- ldr r1, [r6]
- lsls r1, r1, #4
- lsrs r1, r1, #8
- ldr r0, [r0]
- cmp r0, r1
- beq _08001704
- b _080016DE
- .align 2, 0
-_080016FC: .4byte 0x0200281C
-_08001700:
- cmp r5, #3
- bne _080016DE
-_08001704:
- movs r0, #0
-_08001706:
- pop {r4, r5, r6}
- pop {r1}
- bx r1
-
- thumb_func_start sub_170C
-sub_170C: @ 0x0800170C
- push {r4, r5, r6, lr}
- ldr r0, _0800173C @ =0x02002818
- ldr r0, [r0]
- lsrs r4, r0, #4
- movs r5, #0xf
- ands r5, r0
- lsrs r3, r4, #0x18
- movs r0, #6
- movs r6, #0xf
-_0800171E:
- subs r0, #1
- lsls r2, r0, #2
- adds r1, r4, #0
- lsrs r1, r2
- ands r1, r6
- eors r3, r1
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0
- bne _0800171E
- cmp r3, r5
- beq _08001740
- movs r0, #1
- b _08001742
- .align 2, 0
-_0800173C: .4byte 0x02002818
-_08001740:
- movs r0, #0
-_08001742:
- pop {r4, r5, r6}
- pop {r1}
- bx r1
-
- thumb_func_start sub_1748
-sub_1748: @ 0x08001748
- push {r4, lr}
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- subs r0, #1
- cmp r0, #4
- bhi _080017CE
- lsls r0, r0, #2
- ldr r1, _08001760 @ =_08001764
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08001760: .4byte _08001764
-_08001764: @ jump table
- .4byte _080017C4 @ case 0
- .4byte _08001778 @ case 1
- .4byte _08001784 @ case 2
- .4byte _080017C4 @ case 3
- .4byte _080017C4 @ case 4
-_08001778:
- ldr r0, _08001780 @ =0x0200281C
- ldr r0, [r0]
- movs r1, #2
- b _080017C8
- .align 2, 0
-_08001780: .4byte 0x0200281C
-_08001784:
- ldr r4, _080017C0 @ =0x02019C00
- ldr r0, [r4]
- cmp r0, #0
- bne _0800179A
- movs r0, #0
- bl sub_17D8
- movs r1, #4
- bl sub_1668
- adds r2, r0, #0
-_0800179A:
- ldr r0, [r4]
- cmp r0, #1
- bne _080017AE
- movs r0, #1
- bl sub_17D8
- movs r1, #4
- bl sub_1668
- adds r2, r0, #0
-_080017AE:
- ldr r0, [r4]
- cmp r0, #2
- bne _080017CE
- movs r0, #2
- bl sub_17D8
- movs r1, #4
- b _080017C8
- .align 2, 0
-_080017C0: .4byte 0x02019C00
-_080017C4:
- movs r0, #1
- movs r1, #1
-_080017C8:
- bl sub_1668
- adds r2, r0, #0
-_080017CE:
- adds r0, r2, #0
- pop {r4}
- pop {r1}
- bx r1
-
- thumb_func_start sub_17D8
-sub_17D8: @ 0x080017D8
- adds r2, r0, #0
- ldr r0, _080017EC @ =0x02019BEC
- ldr r0, [r0]
- cmp r0, #4
- bhi _08001824
- lsls r0, r0, #2
- ldr r1, _080017F0 @ =_080017F4
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080017EC: .4byte 0x02019BEC
-_080017F0: .4byte _080017F4
-_080017F4: @ jump table
- .4byte _08001808 @ case 0
- .4byte _0800180C @ case 1
- .4byte _08001810 @ case 2
- .4byte _08001814 @ case 3
- .4byte _08001818 @ case 4
-_08001808:
- adds r1, r2, #0
- b _08001824
-_0800180C:
- lsls r1, r2, #2
- b _08001824
-_08001810:
- lsls r1, r2, #4
- b _08001824
-_08001814:
- lsls r1, r2, #6
- b _08001824
-_08001818:
- lsls r1, r2, #2
- orrs r1, r2
- lsls r0, r2, #4
- orrs r1, r0
- lsls r0, r2, #6
- orrs r1, r0
-_08001824:
- adds r0, r1, #0
- bx lr
-
- thumb_func_start sub_1828
-sub_1828: @ 0x08001828
- push {r4, r5, lr}
- ldr r3, _08001868 @ =0x04000208
- movs r4, #0
- strh r4, [r3]
- ldr r2, _0800186C @ =0x04000200
- ldrh r1, [r2]
- ldr r0, _08001870 @ =0x0000FFBF
- ands r0, r1
- strh r0, [r2]
- movs r5, #1
- strh r5, [r3]
- strh r4, [r3]
- subs r2, #0xd8
- ldrh r1, [r2]
- ldr r0, _08001874 @ =0x0000FF7F
- ands r0, r1
- strh r0, [r2]
- strh r5, [r3]
- ldr r0, _08001878 @ =0x0400010E
- strh r4, [r0]
- ldr r1, _0800187C @ =0x0400010C
- movs r2, #0x80
- lsls r2, r2, #8
- adds r0, r2, #0
- strh r0, [r1]
- ldr r1, _08001880 @ =0x02019C10
- movs r0, #5
- strb r0, [r1]
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08001868: .4byte 0x04000208
-_0800186C: .4byte 0x04000200
-_08001870: .4byte 0x0000FFBF
-_08001874: .4byte 0x0000FF7F
-_08001878: .4byte 0x0400010E
-_0800187C: .4byte 0x0400010C
-_08001880: .4byte 0x02019C10
-
- thumb_func_start sub_1884
-sub_1884: @ 0x08001884
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- sub sp, #4
- ldr r0, _08001944 @ =0x02002822
- mov r8, r0
- ldr r5, _08001948 @ =0x04000208
- ldrh r2, [r5]
- movs r4, #0
- strh r4, [r5]
- ldr r6, _0800194C @ =0x04000200
- ldrh r1, [r6]
- ldr r0, _08001950 @ =0x0000FF3F
- ands r0, r1
- strh r0, [r6]
- strh r2, [r5]
- ldr r0, _08001954 @ =0x04000134
- strh r4, [r0]
- ldr r2, _08001958 @ =0x04000128
- movs r1, #0x80
- lsls r1, r1, #6
- adds r0, r1, #0
- strh r0, [r2]
- ldrh r0, [r2]
- ldr r3, _0800195C @ =0x00004003
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5]
- mov r1, r8
- strh r0, [r1]
- ldr r0, _08001960 @ =sub_19CC + 1
- bl sub_898
- ldr r0, _08001964 @ =sub_1A78 + 1
- bl sub_8D4
- strh r4, [r5]
- ldrh r0, [r6]
- movs r1, #0x80
- orrs r0, r1
- strh r0, [r6]
- mov r3, r8
- ldrh r0, [r3]
- strh r0, [r5]
- ldr r0, _08001968 @ =0x0400012A
- strh r4, [r0]
- ldr r2, _0800196C @ =0x04000120
- movs r0, #0
- movs r1, #0
- str r0, [r2]
- str r1, [r2, #4]
- movs r5, #0
- str r5, [sp]
- ldr r1, _08001970 @ =0x0202BF20
- ldr r2, _08001974 @ =0x05000189
- mov r0, sp
- bl CpuSet
- ldr r0, _08001978 @ =0x02002824
- strb r4, [r0]
- ldr r0, _0800197C @ =0x02002825
- strb r4, [r0]
- ldr r0, _08001980 @ =0x02002827
- strb r4, [r0]
- ldr r0, _08001984 @ =0x02019C2C
- strb r4, [r0]
- ldr r0, _08001988 @ =0x0202A554
- strb r4, [r0]
- ldr r0, _0800198C @ =0x0202C5E0
- strb r4, [r0]
- ldr r0, _08001990 @ =0x0202ADD0
- str r5, [r0]
- ldr r0, _08001994 @ =0x0201A444
- strh r5, [r0]
- ldr r0, _08001998 @ =0x0202BDF0
- str r5, [r0]
- ldr r0, _0800199C @ =0x0201C1AC
- strb r4, [r0]
- ldr r0, _080019A0 @ =0x0202ADDC
- strb r4, [r0]
- ldr r0, _080019A4 @ =0x0202BEC8
- strb r4, [r0]
- ldr r0, _080019A8 @ =0x02002820
- strb r4, [r0]
- ldr r0, _080019AC @ =0x02002828
- strh r5, [r0]
- ldr r0, _080019B0 @ =0x0200282A
- strh r5, [r0]
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08001944: .4byte 0x02002822
-_08001948: .4byte 0x04000208
-_0800194C: .4byte 0x04000200
-_08001950: .4byte 0x0000FF3F
-_08001954: .4byte 0x04000134
-_08001958: .4byte 0x04000128
-_0800195C: .4byte 0x00004003
-_08001960: .4byte sub_19CC + 1
-_08001964: .4byte sub_1A78 + 1
-_08001968: .4byte 0x0400012A
-_0800196C: .4byte 0x04000120
-_08001970: .4byte 0x0202BF20
-_08001974: .4byte 0x05000189
-_08001978: .4byte 0x02002824
-_0800197C: .4byte 0x02002825
-_08001980: .4byte 0x02002827
-_08001984: .4byte 0x02019C2C
-_08001988: .4byte 0x0202A554
-_0800198C: .4byte 0x0202C5E0
-_08001990: .4byte 0x0202ADD0
-_08001994: .4byte 0x0201A444
-_08001998: .4byte 0x0202BDF0
-_0800199C: .4byte 0x0201C1AC
-_080019A0: .4byte 0x0202ADDC
-_080019A4: .4byte 0x0202BEC8
-_080019A8: .4byte 0x02002820
-_080019AC: .4byte 0x02002828
-_080019B0: .4byte 0x0200282A
-
- thumb_func_start sub_19B4
-sub_19B4: @ 0x080019B4
- push {lr}
- bl sub_24DC
- bl sub_250C
- bl sub_1884
- bl sub_1AA4
- pop {r0}
- bx r0
-
- thumb_func_start sub_19CC
-sub_19CC: @ 0x080019CC
- push {lr}
- ldr r0, _08001A6C @ =0x04000004
- ldrh r1, [r0]
- movs r0, #8
- ands r0, r1
- cmp r0, #0
- beq _08001A64
- ldr r0, _08001A70 @ =0x03005000
- movs r1, #0xe0
- lsls r1, r1, #0x13
- movs r2, #0x80
- lsls r2, r2, #2
- bl CpuSet
- movs r1, #0x80
- lsls r1, r1, #0x13
- ldr r2, _08001A74 @ =0x0200B0C0
- ldrh r0, [r2, #0x16]
- strh r0, [r1]
- adds r1, #0x10
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r3, #2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, #0
- adds r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _08001A60
- adds r1, #0x32
- ldrh r0, [r2, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r2, #0x3a]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r2, #0x3c]
- strh r0, [r1]
-_08001A60:
- bl VBlankIntrWait
-_08001A64:
- bl m4aSoundMain
- pop {r0}
- bx r0
- .align 2, 0
-_08001A6C: .4byte 0x04000004
-_08001A70: .4byte 0x03005000
-_08001A74: .4byte 0x0200B0C0
-
- thumb_func_start sub_1A78
-sub_1A78: @ 0x08001A78
- push {lr}
- bl sub_1EC0
- bl m4aSoundVSync
- ldr r3, _08001A98 @ =0x04000208
- movs r0, #0
- strh r0, [r3]
- ldr r2, _08001A9C @ =0x03007FF8
- ldrh r0, [r2]
- movs r1, #1
- orrs r0, r1
- strh r0, [r2]
- strh r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08001A98: .4byte 0x04000208
-_08001A9C: .4byte 0x03007FF8
-
- thumb_func_start nullsub_15
-nullsub_15: @ 0x08001AA0
- bx lr
-
- thumb_func_start sub_1AA4
-sub_1AA4: @ 0x08001AA4
- push {r4, r5, lr}
- sub sp, #4
- ldr r0, _08001AE4 @ =0x02002822
- ldr r2, _08001AE8 @ =0x04000208
- ldrh r5, [r2]
- strh r5, [r0]
- movs r4, #0
- strh r4, [r2]
- ldr r3, _08001AEC @ =0x04000200
- ldrh r1, [r3]
- ldr r0, _08001AF0 @ =0x0000FF3F
- ands r0, r1
- strh r0, [r3]
- strh r5, [r2]
- ldr r0, _08001AF4 @ =0x04000128
- strh r4, [r0]
- subs r0, #0x1a
- strh r4, [r0]
- ldr r1, _08001AF8 @ =0x04000202
- movs r0, #0xc0
- strh r0, [r1]
- movs r0, #0
- str r0, [sp]
- ldr r1, _08001AFC @ =0x0202BF20
- ldr r2, _08001B00 @ =0x05000189
- mov r0, sp
- bl CpuSet
- add sp, #4
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08001AE4: .4byte 0x02002822
-_08001AE8: .4byte 0x04000208
-_08001AEC: .4byte 0x04000200
-_08001AF0: .4byte 0x0000FF3F
-_08001AF4: .4byte 0x04000128
-_08001AF8: .4byte 0x04000202
-_08001AFC: .4byte 0x0202BF20
-_08001B00: .4byte 0x05000189
-
- thumb_func_start sub_1B04
-sub_1B04: @ 0x08001B04
- push {r4, r5, r6, r7, lr}
- adds r6, r0, #0
- adds r4, r1, #0
- adds r5, r2, #0
- ldr r0, _08001B20 @ =0x0202BF20
- ldrb r0, [r0, #1]
- cmp r0, #4
- bhi _08001BEE
- lsls r0, r0, #2
- ldr r1, _08001B24 @ =_08001B28
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08001B20: .4byte 0x0202BF20
-_08001B24: .4byte _08001B28
-_08001B28: @ jump table
- .4byte _08001B3C @ case 0
- .4byte _08001B4C @ case 1
- .4byte _08001B5C @ case 2
- .4byte _08001BD0 @ case 3
- .4byte _08001BDA @ case 4
-_08001B3C:
- bl sub_1AA4
- ldr r1, _08001B48 @ =0x0202BF20
- movs r0, #1
- strb r0, [r1, #1]
- b _08001BEE
- .align 2, 0
-_08001B48: .4byte 0x0202BF20
-_08001B4C:
- bl sub_1884
- ldr r1, _08001B58 @ =0x0202BF20
- movs r0, #2
- strb r0, [r1, #1]
- b _08001BEE
- .align 2, 0
-_08001B58: .4byte 0x0202BF20
-_08001B5C:
- ldrb r1, [r6]
- cmp r1, #1
- beq _08001B98
- cmp r1, #2
- beq _08001BBC
- bl sub_1C5C
- ldr r2, _08001B90 @ =0x0202C5E0
- movs r0, #0
- ldrsb r0, [r2, r0]
- cmp r0, #0
- bne _08001BEE
- ldr r1, _08001B94 @ =0x0202BF20
- ldrb r0, [r1]
- cmp r0, #0
- beq _08001BEE
- ldrb r0, [r1, #3]
- cmp r0, #2
- bne _08001BEE
- movs r0, #1
- strb r0, [r1, #0x10]
- movs r1, #1
- rsbs r1, r1, #0
- adds r0, r1, #0
- strb r0, [r2]
- b _08001BEE
- .align 2, 0
-_08001B90: .4byte 0x0202C5E0
-_08001B94: .4byte 0x0202BF20
-_08001B98:
- ldr r2, _08001BB4 @ =0x0202BF20
- ldrb r0, [r2]
- cmp r0, #0
- beq _08001BA8
- ldrb r0, [r2, #3]
- cmp r0, #2
- bne _08001BA8
- strb r1, [r2, #0x10]
-_08001BA8:
- ldr r1, _08001BB8 @ =0x0202C5E0
- movs r2, #1
- rsbs r2, r2, #0
- adds r0, r2, #0
- strb r0, [r1]
- b _08001BEE
- .align 2, 0
-_08001BB4: .4byte 0x0202BF20
-_08001BB8: .4byte 0x0202C5E0
-_08001BBC:
- ldr r0, _08001BC8 @ =0x0202BF20
- movs r1, #0
- strb r1, [r0, #1]
- ldr r0, _08001BCC @ =0x0400012A
- strh r1, [r0]
- b _08001BEE
- .align 2, 0
-_08001BC8: .4byte 0x0202BF20
-_08001BCC: .4byte 0x0400012A
-_08001BD0:
- bl sub_1C84
- ldr r1, _08001C30 @ =0x0202BF20
- movs r0, #4
- strb r0, [r1, #1]
-_08001BDA:
- ldr r0, _08001C30 @ =0x0202BF20
- ldrb r0, [r0, #0xe]
- cmp r0, #0
- bne _08001BE8
- adds r0, r4, #0
- bl sub_1CD4
-_08001BE8:
- adds r0, r5, #0
- bl sub_1DB8
-_08001BEE:
- movs r0, #0
- strb r0, [r6]
- ldr r1, _08001C30 @ =0x0202BF20
- ldrb r2, [r1, #2]
- ldrb r0, [r1, #3]
- lsls r0, r0, #2
- orrs r2, r0
- ldrb r0, [r1]
- cmp r0, #8
- bne _08001C06
- movs r0, #0x20
- orrs r2, r0
-_08001C06:
- ldrb r0, [r1, #0xc]
- lsls r3, r0, #8
- ldrb r0, [r1, #0x11]
- lsls r4, r0, #9
- ldrb r0, [r1, #0x12]
- lsls r5, r0, #0x10
- ldrb r0, [r1, #0x13]
- lsls r6, r0, #0x11
- ldrb r0, [r1, #0x14]
- lsls r7, r0, #0x12
- ldrb r0, [r1, #0x15]
- lsls r0, r0, #0x14
- mov ip, r0
- ldrb r0, [r1, #1]
- cmp r0, #4
- bne _08001C34
- movs r0, #0x40
- orrs r0, r3
- orrs r0, r2
- b _08001C38
- .align 2, 0
-_08001C30: .4byte 0x0202BF20
-_08001C34:
- adds r0, r2, #0
- orrs r0, r3
-_08001C38:
- orrs r0, r4
- orrs r0, r5
- orrs r0, r6
- orrs r0, r7
- mov r2, ip
- orrs r0, r2
- adds r2, r0, #0
- ldrb r0, [r1, #2]
- cmp r0, #1
- bls _08001C52
- movs r0, #0x80
- lsls r0, r0, #0xf
- orrs r2, r0
-_08001C52:
- adds r0, r2, #0
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-
- thumb_func_start sub_1C5C
-sub_1C5C: @ 0x08001C5C
- ldr r0, _08001C74 @ =0x04000128
- ldr r1, [r0]
- movs r0, #0xc
- ands r1, r0
- ldr r2, _08001C78 @ =0x0202BF20
- cmp r1, #8
- bne _08001C7C
- ldrb r0, [r2, #2]
- cmp r0, #0
- bne _08001C7C
- strb r1, [r2]
- b _08001C80
- .align 2, 0
-_08001C74: .4byte 0x04000128
-_08001C78: .4byte 0x0202BF20
-_08001C7C:
- movs r0, #0
- strb r0, [r2]
-_08001C80:
- bx lr
-
- thumb_func_start sub_1C84
-sub_1C84: @ 0x08001C84
- push {r4, lr}
- ldr r0, _08001CBC @ =0x0202BF20
- ldrb r0, [r0]
- cmp r0, #0
- beq _08001CB4
- ldr r1, _08001CC0 @ =0x0400010C
- ldr r2, _08001CC4 @ =0x0000FF3B
- adds r0, r2, #0
- strh r0, [r1]
- adds r1, #2
- movs r0, #0x41
- strh r0, [r1]
- ldr r0, _08001CC8 @ =0x02002822
- ldr r2, _08001CCC @ =0x04000208
- ldrh r4, [r2]
- strh r4, [r0]
- movs r0, #0
- strh r0, [r2]
- ldr r3, _08001CD0 @ =0x04000200
- ldrh r0, [r3]
- movs r1, #0x40
- orrs r0, r1
- strh r0, [r3]
- strh r4, [r2]
-_08001CB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08001CBC: .4byte 0x0202BF20
-_08001CC0: .4byte 0x0400010C
-_08001CC4: .4byte 0x0000FF3B
-_08001CC8: .4byte 0x02002822
-_08001CCC: .4byte 0x04000208
-_08001CD0: .4byte 0x04000200
-
- thumb_func_start sub_1CD4
-sub_1CD4: @ 0x08001CD4
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- adds r3, r0, #0
- ldr r2, _08001D48 @ =0x02002822
- ldr r1, _08001D4C @ =0x04000208
- ldrh r0, [r1]
- strh r0, [r2]
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08001D50 @ =0x0202BF20
- ldr r4, _08001D54 @ =0x0000021D
- adds r0, r1, r4
- ldrb r4, [r0]
- mov sl, r2
- adds r6, r1, #0
- cmp r4, #0x1f
- bhi _08001D60
- movs r1, #0x87
- lsls r1, r1, #2
- adds r0, r6, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0x1f
- bls _08001D14
- subs r0, #0x20
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
-_08001D14:
- movs r2, #0
- ldr r4, _08001D58 @ =0x02002828
- mov r8, r4
- ldr r1, _08001D5C @ =0x02019C2C
- mov sb, r1
- lsls r5, r0, #1
- movs r0, #0x1c
- adds r0, r0, r6
- mov ip, r0
- movs r7, #0
-_08001D28:
- ldrh r0, [r4]
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r4]
- lsls r0, r2, #6
- adds r0, r5, r0
- add r0, ip
- strh r1, [r0]
- strh r7, [r3]
- adds r3, #2
- adds r0, r2, #1
- lsls r0, r0, #0x18
- lsrs r2, r0, #0x18
- cmp r2, #7
- bls _08001D28
- b _08001D70
- .align 2, 0
-_08001D48: .4byte 0x02002822
-_08001D4C: .4byte 0x04000208
-_08001D50: .4byte 0x0202BF20
-_08001D54: .4byte 0x0000021D
-_08001D58: .4byte 0x02002828
-_08001D5C: .4byte 0x02019C2C
-_08001D60:
- ldrb r1, [r6, #0x14]
- movs r0, #1
- orrs r0, r1
- strb r0, [r6, #0x14]
- ldr r1, _08001DA8 @ =0x02002828
- mov r8, r1
- ldr r2, _08001DAC @ =0x02019C2C
- mov sb, r2
-_08001D70:
- mov r4, r8
- ldrh r0, [r4]
- cmp r0, #0
- beq _08001D86
- ldr r1, _08001DB0 @ =0x0000021D
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r1, #1
- movs r2, #0
- strb r1, [r0]
- strh r2, [r4]
-_08001D86:
- ldr r1, _08001DB4 @ =0x04000208
- mov r2, sl
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r4, _08001DB0 @ =0x0000021D
- adds r0, r6, r4
- ldrb r0, [r0]
- mov r1, sb
- strb r0, [r1]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08001DA8: .4byte 0x02002828
-_08001DAC: .4byte 0x02019C2C
-_08001DB0: .4byte 0x0000021D
-_08001DB4: .4byte 0x04000208
-
- thumb_func_start sub_1DB8
-sub_1DB8: @ 0x08001DB8
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- mov ip, r0
- ldr r2, _08001E18 @ =0x02002822
- ldr r1, _08001E1C @ =0x04000208
- ldrh r0, [r1]
- strh r0, [r2]
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08001E20 @ =0x0202BF20
- ldr r3, _08001E24 @ =0x00000621
- adds r0, r1, r3
- ldrb r0, [r0]
- adds r7, r1, #0
- cmp r0, #0
- bne _08001E28
- movs r1, #0
- mov r8, r7
- ldrb r6, [r7, #3]
-_08001DE4:
- movs r2, #0
- adds r5, r1, #1
- cmp r2, r6
- bhs _08001E08
- lsls r0, r1, #2
- mov r3, ip
- adds r1, r0, r3
- movs r4, #0
- mov r0, r8
- ldrb r3, [r0, #3]
-_08001DF8:
- lsls r0, r2, #1
- adds r0, r0, r1
- strh r4, [r0]
- adds r0, r2, #1
- lsls r0, r0, #0x18
- lsrs r2, r0, #0x18
- cmp r2, r3
- blo _08001DF8
-_08001E08:
- lsls r0, r5, #0x18
- lsrs r1, r0, #0x18
- cmp r1, #7
- bls _08001DE4
- movs r0, #1
- strb r0, [r7, #0xc]
- b _08001E9A
- .align 2, 0
-_08001E18: .4byte 0x02002822
-_08001E1C: .4byte 0x04000208
-_08001E20: .4byte 0x0202BF20
-_08001E24: .4byte 0x00000621
-_08001E28:
- movs r1, #0
- ldrb r2, [r7, #3]
- mov sb, r2
- movs r3, #0x88
- lsls r3, r3, #2
- adds r3, r3, r7
- mov r8, r3
- mov sl, r7
-_08001E38:
- movs r2, #0
- adds r5, r1, #1
- cmp r2, sb
- bhs _08001E6C
- lsls r0, r1, #2
- mov r3, ip
- adds r6, r0, r3
- ldr r0, _08001EB0 @ =0x0202C540
- ldrb r0, [r0]
- lsls r0, r0, #1
- lsls r1, r1, #6
- adds r4, r0, r1
- mov r0, sl
- ldrb r3, [r0, #3]
-_08001E54:
- lsls r1, r2, #1
- adds r1, r1, r6
- lsls r0, r2, #9
- adds r0, r4, r0
- add r0, r8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, #1
- lsls r0, r0, #0x18
- lsrs r2, r0, #0x18
- cmp r2, r3
- blo _08001E54
-_08001E6C:
- lsls r0, r5, #0x18
- lsrs r1, r0, #0x18
- cmp r1, #7
- bls _08001E38
- adds r2, r7, #0
- ldr r3, _08001EB4 @ =0x00000621
- adds r1, r2, r3
- ldrb r0, [r1]
- subs r0, #1
- movs r3, #0
- strb r0, [r1]
- movs r0, #0xc4
- lsls r0, r0, #3
- adds r2, r2, r0
- ldrb r0, [r2]
- adds r0, #1
- strb r0, [r2]
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0x1f
- bls _08001E98
- strb r3, [r2]
-_08001E98:
- strb r3, [r7, #0xc]
-_08001E9A:
- ldr r1, _08001EB8 @ =0x04000208
- ldr r2, _08001EBC @ =0x02002822
- ldrh r0, [r2]
- strh r0, [r1]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08001EB0: .4byte 0x0202C540
-_08001EB4: .4byte 0x00000621
-_08001EB8: .4byte 0x04000208
-_08001EBC: .4byte 0x02002822
-
- thumb_func_start sub_1EC0
-sub_1EC0: @ 0x08001EC0
- push {r4, lr}
- ldr r4, _08001F00 @ =0x0202BF20
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- beq _08001EDC
- ldr r1, _08001F04 @ =0x02002826
- ldrb r0, [r1]
- subs r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0
- bne _08001F42
- strb r0, [r4, #0xe]
-_08001EDC:
- ldrb r3, [r4]
- cmp r3, #0
- beq _08001F16
- ldrb r0, [r4, #1]
- cmp r0, #2
- beq _08001F10
- cmp r0, #4
- bne _08001F42
- ldrb r0, [r4, #0xd]
- cmp r0, #8
- bhi _08001F08
- ldrb r0, [r4, #0x12]
- cmp r0, #0
- bne _08001F10
- movs r0, #1
- strb r0, [r4, #0x15]
- b _08001F42
- .align 2, 0
-_08001F00: .4byte 0x0202BF20
-_08001F04: .4byte 0x02002826
-_08001F08:
- ldrb r0, [r4, #0x15]
- cmp r0, #0
- bne _08001F42
- strb r0, [r4, #0xd]
-_08001F10:
- bl sub_1FEC
- b _08001F42
-_08001F16:
- ldrb r2, [r4, #1]
- cmp r2, #4
- beq _08001F20
- cmp r2, #2
- bne _08001F42
-_08001F20:
- ldr r1, _08001F48 @ =0x02002824
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #6
- bls _08001F42
- cmp r2, #4
- bne _08001F38
- movs r0, #2
- strb r0, [r4, #0x15]
-_08001F38:
- cmp r2, #2
- bne _08001F42
- strb r3, [r4, #2]
- strb r3, [r4, #3]
- strb r3, [r4, #0x11]
-_08001F42:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08001F48: .4byte 0x02002824
-
- thumb_func_start sub_1F4C
-sub_1F4C: @ 0x08001F4C
- push {lr}
- bl sub_2308
- bl sub_1FEC
- pop {r0}
- bx r0
-
- thumb_func_start sub_1F5C
-sub_1F5C: @ 0x08001F5C
- push {r4, lr}
- ldr r0, _08001F90 @ =0x04000128
- ldr r1, [r0]
- ldr r4, _08001F94 @ =0x0202BF20
- lsls r0, r1, #0x1a
- lsrs r0, r0, #0x1e
- strb r0, [r4, #2]
- ldrb r0, [r4, #1]
- cmp r0, #2
- beq _08001F98
- cmp r0, #4
- bne _08001FB6
- movs r0, #0x40
- ands r1, r0
- cmp r1, #0
- beq _08001F80
- movs r0, #1
- strb r0, [r4, #0x12]
-_08001F80:
- bl sub_20FC
- bl sub_223C
- bl sub_2338
- b _08001FB6
- .align 2, 0
-_08001F90: .4byte 0x04000128
-_08001F94: .4byte 0x0202BF20
-_08001F98:
- bl sub_1FFC
- lsls r0, r0, #0x18
- cmp r0, #0
- beq _08001FB6
- ldrb r0, [r4]
- cmp r0, #0
- beq _08001FB2
- movs r0, #3
- strb r0, [r4, #1]
- movs r0, #8
- strb r0, [r4, #0xd]
- b _08001FB6
-_08001FB2:
- movs r0, #4
- strb r0, [r4, #1]
-_08001FB6:
- ldr r3, _08001FDC @ =0x0202BF20
- ldrb r0, [r3, #0xd]
- adds r0, #1
- movs r2, #0
- strb r0, [r3, #0xd]
- ldr r1, _08001FE0 @ =0x02002824
- strb r2, [r1]
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #8
- bne _08001FD6
- ldr r0, _08001FE4 @ =0x0202A554
- ldr r2, _08001FE8 @ =0x00000621
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
-_08001FD6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08001FDC: .4byte 0x0202BF20
-_08001FE0: .4byte 0x02002824
-_08001FE4: .4byte 0x0202A554
-_08001FE8: .4byte 0x00000621
-
- thumb_func_start sub_1FEC
-sub_1FEC: @ 0x08001FEC
- ldr r0, _08001FF8 @ =0x04000128
- ldrh r1, [r0]
- movs r2, #0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08001FF8: .4byte 0x04000128
-
- thumb_func_start sub_1FFC
-sub_1FFC: @ 0x08001FFC
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- movs r7, #0
- ldr r5, _08002018 @ =0x0000FFFF
- ldr r0, _0800201C @ =0x0202BF20
- ldrb r1, [r0, #0x10]
- adds r4, r0, #0
- cmp r1, #1
- bne _0800202C
- ldr r1, _08002020 @ =0x0400012A
- ldr r2, _08002024 @ =0x00008FFF
- b _08002030
- .align 2, 0
-_08002018: .4byte 0x0000FFFF
-_0800201C: .4byte 0x0202BF20
-_08002020: .4byte 0x0400012A
-_08002024: .4byte 0x00008FFF
-_08002028:
- movs r7, #0
- b _080020B2
-_0800202C:
- ldr r1, _08002080 @ =0x0400012A
- ldr r2, _08002084 @ =0x0000D13B
-_08002030:
- adds r0, r2, #0
- strh r0, [r1]
- movs r0, #0
- strb r0, [r4, #0x10]
- ldr r0, _08002088 @ =0x04000120
- ldr r1, [r0, #4]
- ldr r0, [r0]
- str r0, [r4, #4]
- str r1, [r4, #8]
- movs r3, #0
- ldr r0, _0800208C @ =0x02002827
- mov sb, r0
- adds r6, r4, #0
- ldr r1, _08002090 @ =0x00008FFF
- mov r8, r1
- ldr r2, _08002094 @ =0x0000FFFF
- mov ip, r2
-_08002052:
- lsls r0, r3, #1
- adds r1, r6, #4
- adds r0, r0, r1
- ldrh r2, [r0]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r2
- ldr r1, _08002098 @ =0x0000D138
- cmp r0, r1
- beq _0800206C
- adds r0, r2, #0
- cmp r0, r8
- bne _0800209C
-_0800206C:
- adds r0, r7, #1
- lsls r0, r0, #0x18
- lsrs r7, r0, #0x18
- adds r0, r2, #0
- cmp r5, r0
- bls _080020A8
- cmp r0, #0
- beq _080020A8
- adds r5, r2, #0
- b _080020A8
- .align 2, 0
-_08002080: .4byte 0x0400012A
-_08002084: .4byte 0x0000D13B
-_08002088: .4byte 0x04000120
-_0800208C: .4byte 0x02002827
-_08002090: .4byte 0x00008FFF
-_08002094: .4byte 0x0000FFFF
-_08002098: .4byte 0x0000D138
-_0800209C:
- cmp r0, ip
- bne _08002028
- ldrb r0, [r6, #2]
- cmp r3, r0
- bne _080020A8
- movs r7, #0
-_080020A8:
- adds r0, r3, #1
- lsls r0, r0, #0x18
- lsrs r3, r0, #0x18
- cmp r3, #1
- bls _08002052
-_080020B2:
- strb r7, [r4, #3]
- adds r0, r7, #0
- cmp r0, #2
- bne _080020E2
- mov r1, sb
- ldrb r1, [r1]
- cmp r0, r1
- bne _080020D4
- ldrh r1, [r4, #4]
- ldr r0, _080020D0 @ =0x00008FFF
- cmp r1, r0
- bne _080020D4
- movs r0, #1
- b _080020EE
- .align 2, 0
-_080020D0: .4byte 0x00008FFF
-_080020D4:
- ldrb r0, [r4, #3]
- cmp r0, #2
- bne _080020E2
- movs r0, #3
- ands r5, r0
- adds r0, r5, #1
- b _080020E4
-_080020E2:
- movs r0, #0
-_080020E4:
- strb r0, [r4, #0x11]
- ldrb r0, [r4, #3]
- mov r2, sb
- strb r0, [r2]
- movs r0, #0
-_080020EE:
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-
- thumb_func_start sub_20FC
-sub_20FC: @ 0x080020FC
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- sub sp, #8
- ldr r0, _08002158 @ =0x04000120
- ldr r1, [r0, #4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, #4]
- ldr r0, _0800215C @ =0x0202BF20
- ldrb r1, [r0, #0x18]
- adds r6, r0, #0
- cmp r1, #0
- bne _08002164
- movs r3, #0
- ldr r7, _08002160 @ =0x02002820
- ldrb r0, [r6, #3]
- cmp r3, r0
- bhs _0800214C
- adds r5, r6, #0
- ldrh r1, [r6, #0x16]
- adds r4, r7, #0
- adds r2, r6, #0
-_0800212C:
- lsls r0, r3, #1
- add r0, sp
- ldrh r0, [r0]
- cmp r1, r0
- beq _08002140
- ldrb r0, [r4]
- cmp r0, #0
- beq _08002140
- movs r0, #1
- strb r0, [r5, #0x13]
-_08002140:
- adds r0, r3, #1
- lsls r0, r0, #0x18
- lsrs r3, r0, #0x18
- ldrb r0, [r2, #3]
- cmp r3, r0
- blo _0800212C
-_0800214C:
- movs r0, #0
- strh r0, [r6, #0x16]
- movs r0, #1
- strb r0, [r7]
- b _08002224
- .align 2, 0
-_08002158: .4byte 0x04000120
-_0800215C: .4byte 0x0202BF20
-_08002160: .4byte 0x02002820
-_08002164:
- movs r2, #0xc4
- lsls r2, r2, #3
- adds r1, r6, r2
- adds r2, #1
- adds r0, r6, r2
- ldrb r2, [r0]
- ldrb r1, [r1]
- adds r0, r2, r1
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0x1f
- bls _08002182
- subs r0, #0x20
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
-_08002182:
- cmp r2, #0x1f
- bhi _080021F8
- movs r3, #0
- ldrb r1, [r6, #3]
- cmp r3, r1
- bhs _08002200
- adds r5, r6, #0
- ldr r7, _080021F0 @ =0x0200282A
- lsls r0, r0, #1
- mov ip, r0
- movs r2, #0x88
- lsls r2, r2, #2
- adds r2, r2, r6
- mov sb, r2
- ldr r0, _080021F4 @ =0x02002826
- mov r8, r0
-_080021A2:
- lsls r0, r3, #1
- mov r1, sp
- adds r4, r1, r0
- ldrh r2, [r4]
- ldrh r1, [r5, #0x16]
- adds r0, r2, r1
- strh r0, [r5, #0x16]
- ldrh r0, [r7]
- orrs r0, r2
- strh r0, [r7]
- ldrb r0, [r5, #0x19]
- lsls r0, r0, #6
- add r0, ip
- lsls r1, r3, #9
- adds r0, r0, r1
- add r0, sb
- strh r2, [r0]
- ldrb r0, [r5, #0x18]
- cmp r0, #1
- bne _080021E2
- ldrb r0, [r6, #0xe]
- cmp r0, #0
- bne _080021E2
- ldrh r0, [r4]
- movs r1, #0xf
- ands r1, r0
- cmp r1, #1
- bne _080021E2
- strb r1, [r5, #0xe]
- movs r0, #5
- mov r2, r8
- strb r0, [r2]
-_080021E2:
- adds r0, r3, #1
- lsls r0, r0, #0x18
- lsrs r3, r0, #0x18
- ldrb r0, [r5, #3]
- cmp r3, r0
- blo _080021A2
- b _08002200
- .align 2, 0
-_080021F0: .4byte 0x0200282A
-_080021F4: .4byte 0x02002826
-_080021F8:
- ldrb r1, [r6, #0x14]
- movs r0, #2
- orrs r0, r1
- strb r0, [r6, #0x14]
-_08002200:
- ldrb r0, [r6, #0x19]
- adds r0, #1
- strb r0, [r6, #0x19]
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #8
- bne _08002224
- ldr r2, _08002234 @ =0x0200282A
- ldrh r0, [r2]
- cmp r0, #0
- beq _08002224
- ldr r1, _08002238 @ =0x00000621
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r1, #1
- strb r1, [r0]
- movs r0, #0
- strh r0, [r2]
-_08002224:
- add sp, #8
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002234: .4byte 0x0200282A
-_08002238: .4byte 0x00000621
-
- thumb_func_start sub_223C
-sub_223C: @ 0x0800223C
- ldr r0, _08002278 @ =0x0202BF20
- ldrb r2, [r0, #0x18]
- adds r3, r0, #0
- cmp r2, #8
- bne _0800228E
- ldr r1, _0800227C @ =0x0400012A
- ldrh r0, [r3, #0x16]
- strh r0, [r1]
- ldr r1, _08002280 @ =0x02002825
- ldrb r2, [r1]
- cmp r2, #0
- bne _08002288
- ldr r0, _08002284 @ =0x0000021D
- adds r1, r3, r0
- ldrb r0, [r1]
- subs r0, #1
- strb r0, [r1]
- movs r0, #0x87
- lsls r0, r0, #2
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0x1f
- bls _080022FE
- strb r2, [r1]
- b _080022FE
- .align 2, 0
-_08002278: .4byte 0x0202BF20
-_0800227C: .4byte 0x0400012A
-_08002280: .4byte 0x02002825
-_08002284: .4byte 0x0000021D
-_08002288:
- movs r0, #0
- strb r0, [r1]
- b _080022FE
-_0800228E:
- ldr r1, _080022B0 @ =0x02002825
- cmp r2, #0
- bne _080022A2
- ldr r2, _080022B4 @ =0x0000021D
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, #0
- bne _080022A2
- movs r0, #1
- strb r0, [r1]
-_080022A2:
- ldrb r0, [r1]
- cmp r0, #0
- beq _080022BC
- ldr r1, _080022B8 @ =0x0400012A
- movs r0, #0
- strh r0, [r1]
- b _080022D8
- .align 2, 0
-_080022B0: .4byte 0x02002825
-_080022B4: .4byte 0x0000021D
-_080022B8: .4byte 0x0400012A
-_080022BC:
- ldr r2, _08002300 @ =0x0400012A
- movs r1, #0x87
- lsls r1, r1, #2
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r1, r1, #1
- ldrb r0, [r3, #0x18]
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r0, r3, #0
- adds r0, #0x1c
- adds r1, r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
-_080022D8:
- ldrb r0, [r3, #0xe]
- cmp r0, #0
- bne _080022F8
- ldrb r0, [r3, #0x18]
- cmp r0, #0
- bne _080022F8
- ldr r2, _08002304 @ =0x00000621
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, #3
- bls _080022F8
- ldr r0, _08002300 @ =0x0400012A
- ldrh r1, [r0]
- movs r2, #1
- orrs r1, r2
- strh r1, [r0]
-_080022F8:
- ldrb r0, [r3, #0x18]
- adds r0, #1
- strb r0, [r3, #0x18]
-_080022FE:
- bx lr
- .align 2, 0
-_08002300: .4byte 0x0400012A
-_08002304: .4byte 0x00000621
-
- thumb_func_start sub_2308
-sub_2308: @ 0x08002308
- ldr r0, _08002324 @ =0x0202BF20
- ldrb r0, [r0]
- cmp r0, #0
- beq _08002322
- ldr r2, _08002328 @ =0x0400010E
- ldrh r1, [r2]
- ldr r0, _0800232C @ =0x0000FF7F
- ands r0, r1
- strh r0, [r2]
- ldr r1, _08002330 @ =0x0400010C
- ldr r2, _08002334 @ =0x0000FF3B
- adds r0, r2, #0
- strh r0, [r1]
-_08002322:
- bx lr
- .align 2, 0
-_08002324: .4byte 0x0202BF20
-_08002328: .4byte 0x0400010E
-_0800232C: .4byte 0x0000FF7F
-_08002330: .4byte 0x0400010C
-_08002334: .4byte 0x0000FF3B
-
- thumb_func_start sub_2338
-sub_2338: @ 0x08002338
- ldr r1, _08002348 @ =0x0202BF20
- ldrb r0, [r1, #0x19]
- cmp r0, #8
- bne _0800234C
- movs r0, #0
- strb r0, [r1, #0x18]
- strb r0, [r1, #0x19]
- b _0800235C
- .align 2, 0
-_08002348: .4byte 0x0202BF20
-_0800234C:
- ldrb r0, [r1]
- cmp r0, #0
- beq _0800235C
- ldr r0, _08002360 @ =0x0400010E
- ldrh r1, [r0]
- movs r2, #0x80
- orrs r1, r2
- strh r1, [r0]
-_0800235C:
- bx lr
- .align 2, 0
-_08002360: .4byte 0x0400010E
-
- thumb_func_start sub_2364
-sub_2364: @ 0x08002364
- push {r4, r5, lr}
- ldr r1, _080023A8 @ =0x0202BF20
- ldr r2, _080023AC @ =0x0000021D
- adds r0, r1, r2
- movs r2, #0
- strb r2, [r0]
- movs r3, #0x87
- lsls r3, r3, #2
- adds r0, r1, r3
- strb r2, [r0]
- movs r0, #0
- adds r5, r1, #0
- adds r5, #0x1c
- ldr r4, _080023B0 @ =0x0000EFFF
-_08002380:
- movs r2, #0
- adds r1, r0, #1
- lsls r3, r0, #6
-_08002386:
- lsls r0, r2, #1
- adds r0, r0, r3
- adds r0, r0, r5
- strh r4, [r0]
- adds r0, r2, #1
- lsls r0, r0, #0x18
- lsrs r2, r0, #0x18
- cmp r2, #0x1f
- bls _08002386
- lsls r0, r1, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #7
- bls _08002380
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080023A8: .4byte 0x0202BF20
-_080023AC: .4byte 0x0000021D
-_080023B0: .4byte 0x0000EFFF
-
- thumb_func_start sub_23B4
-sub_23B4: @ 0x080023B4
- push {r4, r5, r6, r7, lr}
- ldr r1, _08002408 @ =0x0202BF20
- ldr r2, _0800240C @ =0x00000621
- adds r0, r1, r2
- movs r2, #0
- strb r2, [r0]
- movs r3, #0xc4
- lsls r3, r3, #3
- adds r0, r1, r3
- strb r2, [r0]
- movs r0, #0x88
- lsls r0, r0, #2
- adds r7, r1, r0
- ldr r6, _08002410 @ =0x0000EFFF
-_080023D0:
- movs r0, #0
- adds r5, r2, #1
- lsls r4, r2, #9
-_080023D6:
- movs r2, #0
- adds r1, r0, #1
- lsls r3, r0, #6
-_080023DC:
- lsls r0, r2, #1
- adds r0, r0, r3
- adds r0, r0, r4
- adds r0, r0, r7
- strh r6, [r0]
- adds r0, r2, #1
- lsls r0, r0, #0x18
- lsrs r2, r0, #0x18
- cmp r2, #0x1f
- bls _080023DC
- lsls r0, r1, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #7
- bls _080023D6
- lsls r0, r5, #0x18
- lsrs r2, r0, #0x18
- cmp r2, #1
- bls _080023D0
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002408: .4byte 0x0202BF20
-_0800240C: .4byte 0x00000621
-_08002410: .4byte 0x0000EFFF
-
- thumb_func_start sub_2414
-sub_2414: @ 0x08002414
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0xc
- str r0, [sp]
- str r2, [sp, #8]
- lsls r1, r1, #0x10
- lsrs r1, r1, #0x10
- str r1, [sp, #4]
- ldr r4, _080024CC @ =0x03005000
- movs r7, #0
- ldr r0, _080024D0 @ =0x08057C46
- movs r2, #0x80
- lsls r2, r2, #2
- adds r1, r4, #0
- bl CpuSet
- movs r1, #0
- ldr r0, [sp, #4]
- cmp r7, r0
- bhs _080024B8
-_08002442:
- movs r0, #0xb8
- muls r0, r1, r0
- ldr r2, [sp, #8]
- adds r6, r2, r0
- ldrh r0, [r6]
- adds r2, r1, #1
- mov sl, r2
- cmp r0, #0
- beq _080024AC
- lsls r0, r1, #2
- ldr r1, [sp]
- adds r0, r0, r1
- ldr r0, [r0]
- ldrh r5, [r0]
- adds r0, #2
- lsls r1, r7, #3
- ldr r4, _080024CC @ =0x03005000
- adds r1, r1, r4
- lsls r2, r5, #2
- bl CpuSet
- movs r3, #0
- cmp r3, r5
- bhs _080024AC
- mov r8, r4
- ldr r2, _080024D4 @ =0x000001FF
- mov sb, r2
- movs r0, #0xff
- mov ip, r0
-_0800247C:
- adds r2, r7, #0
- lsls r0, r2, #3
- mov r1, r8
- adds r4, r0, r1
- lsls r1, r3, #3
- adds r1, #8
- adds r1, r6, r1
- adds r0, r2, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- strh r2, [r1]
- ldrh r2, [r4, #2]
- mov r0, sb
- ands r0, r2
- strh r0, [r1, #2]
- ldrh r2, [r4]
- mov r0, ip
- ands r0, r2
- strh r0, [r1, #4]
- adds r0, r3, #1
- lsls r0, r0, #0x10
- lsrs r3, r0, #0x10
- cmp r3, r5
- blo _0800247C
-_080024AC:
- mov r2, sl
- lsls r0, r2, #0x10
- lsrs r1, r0, #0x10
- ldr r0, [sp, #4]
- cmp r1, r0
- blo _08002442
-_080024B8:
- lsls r0, r7, #0x10
- asrs r0, r0, #0x10
- add sp, #0xc
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080024CC: .4byte 0x03005000
-_080024D0: .4byte 0x08057C46
-_080024D4: .4byte 0x000001FF
-
- thumb_func_start nullsub_16
-nullsub_16: @ 0x080024D8
- bx lr
-
- thumb_func_start sub_24DC
-sub_24DC: @ 0x080024DC
- ldr r1, _08002504 @ =0x04000134
- movs r0, #0
- strh r0, [r1]
- subs r1, #0xc
- strh r0, [r1]
- ldr r2, _08002508 @ =0x0400012A
- strh r0, [r2]
- subs r1, #8
- strh r0, [r1]
- strh r0, [r2]
- strh r0, [r1]
- strh r0, [r1]
- adds r1, #2
- strh r0, [r1]
- adds r1, #2
- strh r0, [r1]
- adds r1, #2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08002504: .4byte 0x04000134
-_08002508: .4byte 0x0400012A
-
- thumb_func_start sub_250C
-sub_250C: @ 0x0800250C
- ldr r2, _08002528 @ =0x04000208
- movs r0, #0
- strh r0, [r2]
- ldr r1, _0800252C @ =0x04000200
- ldr r3, _08002530 @ =0x00002001
- adds r0, r3, #0
- strh r0, [r1]
- ldr r1, _08002534 @ =0x04000004
- movs r0, #8
- strh r0, [r1]
- movs r0, #1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_08002528: .4byte 0x04000208
-_0800252C: .4byte 0x04000200
-_08002530: .4byte 0x00002001
-_08002534: .4byte 0x04000004
-
- thumb_func_start sub_2538
-sub_2538: @ 0x08002538
- ldr r0, _08002554 @ =0x0202ADD0
- movs r1, #0
- str r1, [r0]
- ldr r0, _08002558 @ =0x0201A444
- movs r2, #0
- strh r1, [r0]
- ldr r0, _0800255C @ =0x0202BDF0
- str r1, [r0]
- ldr r0, _08002560 @ =0x0201C1AC
- strb r2, [r0]
- ldr r0, _08002564 @ =0x0202ADDC
- strb r2, [r0]
- bx lr
- .align 2, 0
-_08002554: .4byte 0x0202ADD0
-_08002558: .4byte 0x0201A444
-_0800255C: .4byte 0x0202BDF0
-_08002560: .4byte 0x0201C1AC
-_08002564: .4byte 0x0202ADDC
-
- thumb_func_start sub_2568
-sub_2568: @ 0x08002568
- push {r4, lr}
- bl sub_24DC
- ldr r4, _08002594 @ =0x04000208
- movs r0, #0
- strh r0, [r4]
- bl sub_8BC
- bl sub_8FC
- ldr r1, _08002598 @ =0x04000200
- ldr r2, _0800259C @ =0x00002005
- adds r0, r2, #0
- strh r0, [r1]
- ldr r1, _080025A0 @ =0x04000004
- movs r0, #0x28
- strh r0, [r1]
- movs r0, #1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08002594: .4byte 0x04000208
-_08002598: .4byte 0x04000200
-_0800259C: .4byte 0x00002005
-_080025A0: .4byte 0x04000004
-
- thumb_func_start sub_25A4
-sub_25A4: @ 0x080025A4
- push {lr}
- ldr r1, _080025BC @ =0x0805C750
- ldr r0, _080025C0 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_080025BC: .4byte 0x0805C750
-_080025C0: .4byte 0x0200B0C0
-
- thumb_func_start sub_25C4
-sub_25C4: @ 0x080025C4
- push {r4, lr}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x84
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _080026A8 @ =0x04000008
- movs r0, #5
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #1
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080026AC @ =0x0400000A
- adds r3, #6
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r3, #0xfa
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080026B0 @ =0x0400000C
- adds r3, #0xb
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080026B4 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r4, #0x16]
- ldr r0, _080026B8 @ =0x040000D4
- ldr r1, _080026BC @ =0x0807C2E0
- str r1, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _080026C0 @ =0x80000100
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _080026C4 @ =gFieldSelectWindow_Gfx
- str r1, [r0]
- ldr r1, _080026C8 @ =0x06004000
- str r1, [r0, #4]
- ldr r1, _080026CC @ =0x80002000
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _080026D0 @ =0x0807C4E0
- str r1, [r0]
- ldr r1, _080026D4 @ =0x06008000
- str r1, [r0, #4]
- ldr r1, _080026D8 @ =0x80000C00
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _080026DC @ =0x0807AAE0
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r2, _080026E0 @ =0x80000400
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _080026E4 @ =0x0807B2E0
- str r1, [r0]
- ldr r1, _080026E8 @ =0x06000800
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _080026EC @ =0x0807BAE0
- str r1, [r0]
- ldr r1, _080026F0 @ =0x06001000
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _080026F4 @ =gFieldSelectSpritePals
- str r1, [r0]
- ldr r1, _080026F8 @ =0x05000200
- str r1, [r0, #4]
- ldr r1, _080026FC @ =0x80000030
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08002700 @ =gFieldSelectSpriteGfx
- str r1, [r0]
- ldr r1, _08002704 @ =0x06010000
- str r1, [r0, #4]
- ldr r1, _08002708 @ =0x80002010
- str r1, [r0, #8]
- ldr r0, [r0, #8]
- bl sub_CBC
- bl sub_2710
- ldr r0, _0800270C @ =sub_29C8 + 1
- bl sub_FD5C
- movs r0, #3
- bl m4aSongNumStart
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080026A8: .4byte 0x04000008
-_080026AC: .4byte 0x0400000A
-_080026B0: .4byte 0x0400000C
-_080026B4: .4byte 0x0200B0C0
-_080026B8: .4byte 0x040000D4
-_080026BC: .4byte 0x0807C2E0
-_080026C0: .4byte 0x80000100
-_080026C4: .4byte gFieldSelectWindow_Gfx
-_080026C8: .4byte 0x06004000
-_080026CC: .4byte 0x80002000
-_080026D0: .4byte 0x0807C4E0
-_080026D4: .4byte 0x06008000
-_080026D8: .4byte 0x80000C00
-_080026DC: .4byte 0x0807AAE0
-_080026E0: .4byte 0x80000400
-_080026E4: .4byte 0x0807B2E0
-_080026E8: .4byte 0x06000800
-_080026EC: .4byte 0x0807BAE0
-_080026F0: .4byte 0x06001000
-_080026F4: .4byte gFieldSelectSpritePals
-_080026F8: .4byte 0x05000200
-_080026FC: .4byte 0x80000030
-_08002700: .4byte gFieldSelectSpriteGfx
-_08002704: .4byte 0x06010000
-_08002708: .4byte 0x80002010
-_0800270C: .4byte sub_29C8 + 1
-
- thumb_func_start sub_2710
-sub_2710: @ 0x08002710
- ldr r0, _08002740 @ =0x0201A4F8
- movs r1, #0
- strb r1, [r0]
- ldr r0, _08002744 @ =0x0202BED0
- strb r1, [r0]
- ldr r0, _08002748 @ =0x0202A560
- movs r1, #0
- strh r1, [r0]
- ldr r0, _0800274C @ =0x0202BE1C
- strh r1, [r0]
- ldr r0, _08002750 @ =0x0202BEE8
- strb r1, [r0]
- ldr r0, _08002754 @ =0x0201A4F4
- strh r1, [r0]
- ldr r0, _08002758 @ =0x0201A4B0
- strb r1, [r0]
- ldr r0, _0800275C @ =0x0202BEE4
- strb r1, [r0]
- ldr r1, _08002760 @ =0x0201A4C0
- ldr r0, _08002764 @ =0x0200B134
- adds r0, #0xce
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08002740: .4byte 0x0201A4F8
-_08002744: .4byte 0x0202BED0
-_08002748: .4byte 0x0202A560
-_0800274C: .4byte 0x0202BE1C
-_08002750: .4byte 0x0202BEE8
-_08002754: .4byte 0x0201A4F4
-_08002758: .4byte 0x0201A4B0
-_0800275C: .4byte 0x0202BEE4
-_08002760: .4byte 0x0201A4C0
-_08002764: .4byte 0x0200B134
-
- thumb_func_start sub_2768
-sub_2768: @ 0x08002768
- push {r4, r5, r6, lr}
- bl sub_29C8
- ldr r6, _08002784 @ =0x0202BED0
- movs r4, #0
- ldrsb r4, [r6, r4]
- cmp r4, #1
- bne _0800277A
- b _08002884
-_0800277A:
- cmp r4, #1
- bgt _08002788
- cmp r4, #0
- beq _08002790
- b _0800296E
- .align 2, 0
-_08002784: .4byte 0x0202BED0
-_08002788:
- cmp r4, #2
- bne _0800278E
- b _0800291C
-_0800278E:
- b _0800296E
-_08002790:
- ldr r0, _080027B8 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _080027C0
- ldr r4, _080027BC @ =0x0201A4F8
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- beq _080027E2
- cmp r0, #3
- beq _080027E2
- movs r0, #0x6d
- bl m4aSongNumStart
- ldrb r0, [r4]
- subs r0, #1
- b _080027E0
- .align 2, 0
-_080027B8: .4byte 0x0200B0C0
-_080027BC: .4byte 0x0201A4F8
-_080027C0:
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _080027E2
- ldr r4, _08002804 @ =0x0201A4F8
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #2
- beq _080027E2
- cmp r0, #5
- beq _080027E2
- movs r0, #0x6d
- bl m4aSongNumStart
- ldrb r0, [r4]
- adds r0, #1
-_080027E0:
- strb r0, [r4]
-_080027E2:
- ldr r0, _08002808 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x40
- ands r0, r1
- cmp r0, #0
- beq _0800280C
- ldr r4, _08002804 @ =0x0201A4F8
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #2
- ble _0800282A
- movs r0, #0x6d
- bl m4aSongNumStart
- ldrb r0, [r4]
- subs r0, #3
- b _08002828
- .align 2, 0
-_08002804: .4byte 0x0201A4F8
-_08002808: .4byte 0x0200B0C0
-_0800280C:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0800282A
- ldr r4, _0800286C @ =0x0201A4F8
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #2
- bgt _0800282A
- movs r0, #0x6d
- bl m4aSongNumStart
- ldrb r0, [r4]
- adds r0, #3
-_08002828:
- strb r0, [r4]
-_0800282A:
- ldr r4, _08002870 @ =0x0200B0C0
- ldrh r1, [r4, #0x18]
- movs r5, #1
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800284C
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r0, _08002874 @ =0x0202BED0
- strb r5, [r0]
- ldr r0, _08002878 @ =0x0201A4B0
- strb r5, [r0]
- ldr r1, _0800287C @ =0x0202A560
- movs r0, #0
- strh r0, [r1]
-_0800284C:
- ldrh r1, [r4, #0x18]
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- bne _08002858
- b _0800296E
-_08002858:
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r0, _08002880 @ =0x0202BEE4
- strb r5, [r0]
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
- b _0800296E
- .align 2, 0
-_0800286C: .4byte 0x0201A4F8
-_08002870: .4byte 0x0200B0C0
-_08002874: .4byte 0x0202BED0
-_08002878: .4byte 0x0201A4B0
-_0800287C: .4byte 0x0202A560
-_08002880: .4byte 0x0202BEE4
-_08002884:
- ldr r5, _08002904 @ =0x0200B0C0
- ldrh r1, [r5, #0x18]
- movs r0, #0x30
- ands r0, r1
- cmp r0, #0
- beq _080028A0
- movs r0, #0x67
- bl m4aSongNumStart
- ldr r2, _08002908 @ =0x0201A4C0
- ldrb r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r2]
-_080028A0:
- ldrh r0, [r5, #0x18]
- ands r4, r0
- cmp r4, #0
- beq _080028CC
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r0, _0800290C @ =0x0202A560
- movs r1, #0
- strh r1, [r0]
- ldr r0, _08002910 @ =0x0202BE1C
- strh r1, [r0]
- ldr r0, _08002908 @ =0x0201A4C0
- ldrb r0, [r0]
- movs r2, #0xa1
- lsls r2, r2, #1
- adds r1, r5, r2
- strb r0, [r1]
- bl sub_52B30
- movs r0, #2
- strb r0, [r6]
-_080028CC:
- ldrh r1, [r5, #0x18]
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _080028E4
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r1, _08002914 @ =0x0201A4B0
- movs r0, #0
- strb r0, [r1]
- strb r0, [r6]
-_080028E4:
- ldr r1, _0800290C @ =0x0202A560
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800296E
- movs r0, #0
- strh r0, [r1]
- ldr r2, _08002918 @ =0x0201A4F4
- ldrh r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r2]
- b _0800296E
- .align 2, 0
-_08002904: .4byte 0x0200B0C0
-_08002908: .4byte 0x0201A4C0
-_0800290C: .4byte 0x0202A560
-_08002910: .4byte 0x0202BE1C
-_08002914: .4byte 0x0201A4B0
-_08002918: .4byte 0x0201A4F4
-_0800291C:
- ldr r1, _08002974 @ =0x0202A560
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #5
- ble _0800296E
- movs r3, #0
- strh r3, [r1]
- ldr r2, _08002978 @ =0x0202BEE8
- ldrb r1, [r2]
- movs r0, #2
- subs r0, r0, r1
- strb r0, [r2]
- ldr r1, _0800297C @ =0x0202BE1C
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #5
- ble _0800296E
- ldr r1, _08002980 @ =0x0200B0C0
- strb r3, [r1, #0xd]
- ldr r2, _08002984 @ =0x086A4CF0
- ldr r0, _08002988 @ =0x0201A4F8
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r0, r0, r2
- ldrb r0, [r0]
- strb r0, [r1, #4]
- strb r0, [r1, #5]
- movs r0, #1
- strb r0, [r1, #6]
- ldr r0, _0800298C @ =0x0202BEE4
- strb r4, [r0]
- ldrb r0, [r1, #3]
- adds r0, #1
- strb r0, [r1, #3]
-_0800296E:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08002974: .4byte 0x0202A560
-_08002978: .4byte 0x0202BEE8
-_0800297C: .4byte 0x0202BE1C
-_08002980: .4byte 0x0200B0C0
-_08002984: .4byte 0x086A4CF0
-_08002988: .4byte 0x0201A4F8
-_0800298C: .4byte 0x0202BEE4
-
- thumb_func_start sub_2990
-sub_2990: @ 0x08002990
- push {lr}
- ldr r0, _080029BC @ =sub_29C8 + 1
- bl sub_FE04
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _080029C0 @ =0x0201A4B4
- movs r0, #1
- strb r0, [r1]
- ldr r0, _080029C4 @ =0x0202BEE4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_080029BC: .4byte sub_29C8 + 1
-_080029C0: .4byte 0x0201A4B4
-_080029C4: .4byte 0x0202BEE4
-
- thumb_func_start sub_29C8
-sub_29C8: @ 0x080029C8
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x18
- ldr r1, _08002C14 @ =0x0200B0C0
- ldrh r0, [r1, #0x38]
- ldr r0, _08002C18 @ =0x00000C14
- strh r0, [r1, #0x38]
- ldrh r0, [r1, #0x3a]
- ldr r0, _08002C1C @ =0x00000808
- strh r0, [r1, #0x3a]
- ldr r2, _08002C20 @ =0x04000050
- ldrh r0, [r1, #0x38]
- strh r0, [r2]
- adds r2, #2
- ldrh r0, [r1, #0x3a]
- strh r0, [r2]
- ldr r7, _08002C24 @ =0x0201A4F8
- movs r0, #0xe9
- lsls r0, r0, #3
- adds r3, r1, r0
- ldr r4, _08002C28 @ =0x0201A4C0
- ldr r5, _08002C2C @ =0x0201A4F4
- ldr r2, _08002C30 @ =0x0201A4B0
- mov sb, r2
- ldr r0, _08002C34 @ =0x086A4C80
- mov ip, r0
- movs r2, #0xd2
- lsls r2, r2, #3
- adds r1, r1, r2
- add r0, sp, #0x14
-_08002A0A:
- str r1, [r0]
- subs r1, #0xb8
- subs r0, #4
- cmp r0, sp @ warning: use of r13 is deprecated
- bge _08002A0A
- movs r0, #0
- ldrsb r0, [r7, r0]
- movs r2, #0xb8
- muls r0, r2, r0
- adds r0, r0, r3
- mov sl, r0
- ldrb r1, [r4]
- lsls r1, r1, #1
- movs r4, #0
- ldrsh r0, [r5, r4]
- adds r0, #0xc
- adds r1, r1, r0
- muls r1, r2, r1
- ldr r2, _08002C38 @ =0xFFFFFBB0
- adds r0, r3, r2
- adds r1, r1, r0
- mov r8, r1
- movs r2, #1
- mov r1, sp
- movs r6, #5
-_08002A3C:
- ldm r1!, {r0}
- strh r2, [r0]
- subs r6, #1
- cmp r6, #0
- bge _08002A3C
- movs r0, #0
- ldrsb r0, [r7, r0]
- lsls r0, r0, #2
- add r0, sp
- ldr r1, [r0]
- movs r0, #0
- strh r0, [r1]
- movs r0, #1
- mov r3, sl
- strh r0, [r3]
- mov r4, sb
- movs r0, #0
- ldrsb r0, [r4, r0]
- mov r7, r8
- strh r0, [r7]
- mov r0, ip
- movs r1, #0x10
- ldr r2, _08002C3C @ =0x0200B3B8
- bl sub_358
- movs r1, #0
-_08002A70:
- lsls r2, r1, #2
- mov r0, sp
- adds r4, r0, r2
- ldr r3, [r4]
- ldrh r0, [r3]
- adds r1, #1
- mov sb, r1
- cmp r0, #1
- bne _08002AEC
- ldr r1, _08002C40 @ =0x086A4CC0
- adds r1, r2, r1
- ldrh r0, [r1]
- strh r0, [r3, #2]
- ldr r2, [r4]
- ldrh r0, [r1, #2]
- strh r0, [r2, #4]
- adds r5, r4, #0
- ldr r1, _08002C44 @ =0x03005000
- mov ip, r1
- movs r7, #8
- movs r6, #3
-_08002A9A:
- ldr r4, [r5]
- adds r4, r4, r7
- ldrh r2, [r4]
- lsls r2, r2, #3
- add r2, ip
- ldrb r1, [r2, #1]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r2, [r4]
- lsls r2, r2, #3
- add r2, ip
- movs r3, #2
- ldrsh r1, [r4, r3]
- ldr r0, [r5]
- movs r3, #2
- ldrsh r0, [r0, r3]
- adds r1, r1, r0
- ldr r3, _08002C48 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08002C4C @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- ldr r0, [r5]
- ldrb r0, [r0, #4]
- ldrb r4, [r4, #4]
- adds r0, r0, r4
- strb r0, [r1]
- adds r7, #8
- subs r6, #1
- cmp r6, #0
- bge _08002A9A
-_08002AEC:
- mov r1, sb
- cmp r1, #5
- ble _08002A70
- movs r0, #0x58
- mov r4, sl
- strh r0, [r4, #2]
- movs r0, #0x85
- strh r0, [r4, #4]
- ldr r5, _08002C44 @ =0x03005000
- movs r7, #0xd
- rsbs r7, r7, #0
- mov sb, r7
- ldr r0, _08002C4C @ =0xFFFFFE00
- mov ip, r0
- adds r4, #8
- movs r6, #1
-_08002B0C:
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldrb r2, [r1, #1]
- mov r0, sb
- ands r0, r2
- strb r0, [r1, #1]
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r5
- ldr r3, _08002C50 @ =0x0202BEE8
- ldrb r1, [r3]
- lsls r1, r1, #4
- ldrb r3, [r2, #5]
- movs r0, #0xf
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r7, #2
- ldrsh r1, [r4, r7]
- mov r2, sl
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08002C48 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- mov r3, sl
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _08002B0C
- mov r1, r8
- ldrh r0, [r1]
- cmp r0, #1
- bne _08002BEA
- ldr r2, _08002C54 @ =0x086A4CD8
- ldr r1, _08002C24 @ =0x0201A4F8
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0]
- mov r3, r8
- strh r0, [r3, #2]
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0, #2]
- strh r0, [r3, #4]
- ldr r5, _08002C44 @ =0x03005000
- movs r4, #0xd
- rsbs r4, r4, #0
- mov sb, r4
- ldr r7, _08002C4C @ =0xFFFFFE00
- mov ip, r7
- mov r4, r8
- adds r4, #8
- movs r6, #4
-_08002BA2:
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldrb r2, [r1, #1]
- mov r0, sb
- ands r0, r2
- strb r0, [r1, #1]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, r8
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08002C48 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- mov r3, r8
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _08002BA2
-_08002BEA:
- movs r2, #0
- mov r1, sp
- movs r6, #5
-_08002BF0:
- ldm r1!, {r0}
- strh r2, [r0]
- subs r6, #1
- cmp r6, #0
- bge _08002BF0
- movs r0, #0
- mov r1, sl
- strh r0, [r1]
- mov r2, r8
- strh r0, [r2]
- add sp, #0x18
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002C14: .4byte 0x0200B0C0
-_08002C18: .4byte 0x00000C14
-_08002C1C: .4byte 0x00000808
-_08002C20: .4byte 0x04000050
-_08002C24: .4byte 0x0201A4F8
-_08002C28: .4byte 0x0201A4C0
-_08002C2C: .4byte 0x0201A4F4
-_08002C30: .4byte 0x0201A4B0
-_08002C34: .4byte 0x086A4C80
-_08002C38: .4byte 0xFFFFFBB0
-_08002C3C: .4byte 0x0200B3B8
-_08002C40: .4byte 0x086A4CC0
-_08002C44: .4byte 0x03005000
-_08002C48: .4byte 0x000001FF
-_08002C4C: .4byte 0xFFFFFE00
-_08002C50: .4byte 0x0202BEE8
-_08002C54: .4byte 0x086A4CD8
-
- thumb_func_start sub_2C58
-sub_2C58: @ 0x08002C58
- push {lr}
- ldr r1, _08002C70 @ =0x0805C75C
- ldr r0, _08002C74 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08002C70: .4byte 0x0805C75C
-_08002C74: .4byte 0x0200B0C0
-
- thumb_func_start sub_2C78
-sub_2C78: @ 0x08002C78
- push {r4, r5, r6, lr}
- mov r6, sb
- mov r5, r8
- push {r5, r6}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x86
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _08002D80 @ =0x04000008
- movs r0, #4
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #1
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08002D84 @ =0x0400000A
- adds r3, #5
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r3, #0xfb
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r6, _08002D88 @ =0x0200B0C0
- movs r0, #0xba
- lsls r0, r0, #2
- adds r1, r6, r0
- movs r5, #0
- ldr r0, _08002D8C @ =0x0000FFE8
- strh r0, [r1]
- adds r3, #0xea
- adds r1, r6, r3
- subs r0, #0x48
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r6, #0x16]
- ldr r4, _08002D90 @ =0x040000D4
- ldr r0, _08002D94 @ =0x08081D20
- str r0, [r4]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r0, _08002D98 @ =0x80000020
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08002D9C @ =0x080897E0
- str r0, [r4]
- ldr r0, _08002DA0 @ =0x05000040
- str r0, [r4, #4]
- ldr r0, _08002DA4 @ =0x80000010
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08002DA8 @ =0x08080500
- str r0, [r4]
- ldr r0, _08002DAC @ =0x03000000
- mov r8, r0
- str r0, [r4, #4]
- ldr r1, _08002DB0 @ =0x80001800
- mov sb, r1
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08002DB4 @ =0x0807DD00
- str r0, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r1, _08002DB8 @ =0x80000400
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08002DBC @ =0x0807FD00
- str r0, [r4]
- ldr r0, _08002DC0 @ =0x06000800
- str r0, [r4, #4]
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08002DC4 @ =0x08089960
- str r0, [r4]
- ldr r0, _08002DC8 @ =0x05000200
- str r0, [r4, #4]
- ldr r0, _08002DCC @ =0x80000060
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08002DD0 @ =0x08089B60
- str r0, [r4]
- ldr r0, _08002DD4 @ =0x06010000
- str r0, [r4, #4]
- ldr r0, _08002DD8 @ =0x80003610
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_2DF0
- ldr r0, _08002DDC @ =0x0202C604
- strb r5, [r0]
- ldr r0, _08002DE0 @ =0x0202A580
- strb r5, [r0]
- ldr r0, _08002DE4 @ =0x0202C5A4
- strb r5, [r0]
- ldr r0, _08002DE8 @ =0x0202AD90
- strb r5, [r0]
- bl sub_377C
- mov r3, r8
- str r3, [r4]
- ldr r0, _08002DEC @ =0x06004000
- str r0, [r4, #4]
- mov r0, sb
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_394C
- movs r0, #5
- bl m4aSongNumStart
- bl sub_CBC
- bl sub_24C
- movs r0, #1
- strb r0, [r6, #3]
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08002D80: .4byte 0x04000008
-_08002D84: .4byte 0x0400000A
-_08002D88: .4byte 0x0200B0C0
-_08002D8C: .4byte 0x0000FFE8
-_08002D90: .4byte 0x040000D4
-_08002D94: .4byte 0x08081D20
-_08002D98: .4byte 0x80000020
-_08002D9C: .4byte 0x080897E0
-_08002DA0: .4byte 0x05000040
-_08002DA4: .4byte 0x80000010
-_08002DA8: .4byte 0x08080500
-_08002DAC: .4byte 0x03000000
-_08002DB0: .4byte 0x80001800
-_08002DB4: .4byte 0x0807DD00
-_08002DB8: .4byte 0x80000400
-_08002DBC: .4byte 0x0807FD00
-_08002DC0: .4byte 0x06000800
-_08002DC4: .4byte 0x08089960
-_08002DC8: .4byte 0x05000200
-_08002DCC: .4byte 0x80000060
-_08002DD0: .4byte 0x08089B60
-_08002DD4: .4byte 0x06010000
-_08002DD8: .4byte 0x80003610
-_08002DDC: .4byte 0x0202C604
-_08002DE0: .4byte 0x0202A580
-_08002DE4: .4byte 0x0202C5A4
-_08002DE8: .4byte 0x0202AD90
-_08002DEC: .4byte 0x06004000
-
- thumb_func_start sub_2DF0
-sub_2DF0: @ 0x08002DF0
- ldr r0, _08002E1C @ =0x0202A58C
- movs r1, #0
- strb r1, [r0]
- ldr r0, _08002E20 @ =0x0202C584
- strb r1, [r0]
- ldr r2, _08002E24 @ =0x0202BEC0
- movs r0, #4
- strb r0, [r2]
- ldr r0, _08002E28 @ =0x0201B174
- strb r1, [r0]
- ldr r0, _08002E2C @ =0x0202C5A0
- movs r1, #0
- strh r1, [r0]
- ldr r0, _08002E30 @ =0x0201A44C
- strh r1, [r0]
- ldr r0, _08002E34 @ =0x0202BEF8
- strb r1, [r0]
- ldr r0, _08002E38 @ =0x0200282C
- strb r1, [r0]
- ldr r0, _08002E3C @ =0x0200282D
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08002E1C: .4byte 0x0202A58C
-_08002E20: .4byte 0x0202C584
-_08002E24: .4byte 0x0202BEC0
-_08002E28: .4byte 0x0201B174
-_08002E2C: .4byte 0x0202C5A0
-_08002E30: .4byte 0x0201A44C
-_08002E34: .4byte 0x0202BEF8
-_08002E38: .4byte 0x0200282C
-_08002E3C: .4byte 0x0200282D
-
- thumb_func_start sub_2E40
-sub_2E40: @ 0x08002E40
- push {r4, r5, r6, r7, lr}
- ldr r4, _08002E84 @ =0x0202C604
- ldr r2, _08002E88 @ =0x086A551A
- ldr r3, _08002E8C @ =0x0202AD90
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- movs r1, #0
- ldrsb r1, [r4, r1]
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bgt _08002E94
- ldr r1, _08002E90 @ =0x0202A580
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #2
- ble _08002EF0
- movs r0, #0
- strb r0, [r1]
- movs r0, #0
- ldrsb r0, [r3, r0]
- movs r1, #0
- ldrsb r1, [r4, r1]
- bl sub_3828
- ldrb r0, [r4]
- adds r0, #1
- strb r0, [r4]
- b _08002EF0
- .align 2, 0
-_08002E84: .4byte 0x0202C604
-_08002E88: .4byte 0x086A551A
-_08002E8C: .4byte 0x0202AD90
-_08002E90: .4byte 0x0202A580
-_08002E94:
- ldr r1, _08002ECC @ =0x0202A580
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #6
- ble _08002EF0
- movs r0, #0
- strb r0, [r1]
- ldr r0, _08002ED0 @ =0x0202C5A4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _08002ED4
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- movs r1, #0xea
- lsls r1, r1, #6
- bl sub_38A0
- b _08002EE6
- .align 2, 0
-_08002ECC: .4byte 0x0202A580
-_08002ED0: .4byte 0x0202C5A4
-_08002ED4:
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- movs r1, #0
- bl sub_38A0
-_08002EE6:
- ldr r2, _08002F2C @ =0x0202C5A4
- ldrb r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r2]
-_08002EF0:
- ldr r7, _08002F30 @ =0x0200B0C0
- ldrh r1, [r7, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08002F78
- ldr r5, _08002F34 @ =0x0202C604
- ldr r6, _08002F38 @ =0x086A551A
- ldr r4, _08002F3C @ =0x0202AD90
- movs r2, #0
- ldrsb r2, [r4, r2]
- adds r0, r2, r6
- movs r1, #0
- ldrsb r1, [r5, r1]
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bgt _08002F40
- adds r0, r2, #0
- bl sub_37B4
- movs r0, #0
- ldrsb r0, [r4, r0]
- adds r0, r0, r6
- ldrb r0, [r0]
- adds r0, #1
- strb r0, [r5]
- b _08002F90
- .align 2, 0
-_08002F2C: .4byte 0x0202C5A4
-_08002F30: .4byte 0x0200B0C0
-_08002F34: .4byte 0x0202C604
-_08002F38: .4byte 0x086A551A
-_08002F3C: .4byte 0x0202AD90
-_08002F40:
- ldr r0, _08002F54 @ =0x086A5528
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _08002F58
- movs r0, #2
- b _08002F8E
- .align 2, 0
-_08002F54: .4byte 0x086A5528
-_08002F58:
- bl sub_377C
- movs r1, #0
- strb r1, [r5]
- ldr r0, _08002F70 @ =0x0202A580
- strb r1, [r0]
- ldr r0, _08002F74 @ =0x0202C5A4
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, #1
- strb r0, [r4]
- b _08002F90
- .align 2, 0
-_08002F70: .4byte 0x0202A580
-_08002F74: .4byte 0x0202C5A4
-_08002F78:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08002F90
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r0, _08002FAC @ =0x0202BEF8
- movs r1, #1
- strb r1, [r0]
- movs r0, #8
-_08002F8E:
- strb r0, [r7, #3]
-_08002F90:
- bl sub_394C
- ldr r1, _08002FB0 @ =0x040000D4
- ldr r0, _08002FB4 @ =0x03000000
- str r0, [r1]
- ldr r0, _08002FB8 @ =0x06004000
- str r0, [r1, #4]
- ldr r0, _08002FBC @ =0x80001800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002FAC: .4byte 0x0202BEF8
-_08002FB0: .4byte 0x040000D4
-_08002FB4: .4byte 0x03000000
-_08002FB8: .4byte 0x06004000
-_08002FBC: .4byte 0x80001800
-
- thumb_func_start sub_2FC0
-sub_2FC0: @ 0x08002FC0
- push {r4, r5, lr}
- ldr r4, _0800302C @ =0x0202C5A0
- ldrh r0, [r4]
- adds r0, #1
- strh r0, [r4]
- ldr r2, _08003030 @ =0x086A550C
- ldr r3, _08003034 @ =0x0201B174
- movs r1, #0
- ldrsb r1, [r3, r1]
- lsls r1, r1, #1
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r2, #0
- ldrsh r1, [r1, r2]
- cmp r0, r1
- ble _08003012
- movs r5, #0
- strh r5, [r4]
- ldrb r0, [r3]
- adds r0, #1
- strb r0, [r3]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #6
- bne _08003012
- bl sub_19B4
- bl sub_3C1C
- ldr r0, _08003038 @ =0x0201B124
- strb r5, [r0]
- ldr r1, _0800303C @ =0x0202C584
- movs r0, #1
- strb r0, [r1]
- movs r0, #0x76
- bl m4aSongNumStart
- ldr r1, _08003040 @ =0x0200B0C0
- movs r0, #3
- strb r0, [r1, #3]
-_08003012:
- ldr r1, _08003044 @ =0x0202A58C
- movs r0, #0
- strb r0, [r1]
- ldr r1, _08003048 @ =0x0202BEC0
- ldr r0, _08003034 @ =0x0201B174
- ldrb r0, [r0]
- adds r0, #4
- strb r0, [r1]
- bl sub_3AB4
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800302C: .4byte 0x0202C5A0
-_08003030: .4byte 0x086A550C
-_08003034: .4byte 0x0201B174
-_08003038: .4byte 0x0201B124
-_0800303C: .4byte 0x0202C584
-_08003040: .4byte 0x0200B0C0
-_08003044: .4byte 0x0202A58C
-_08003048: .4byte 0x0202BEC0
-
- thumb_func_start sub_304C
-sub_304C: @ 0x0800304C
- push {r4, r5, lr}
- bl sub_3AB4
- ldr r5, _08003114 @ =0x0200B0C0
- ldrh r1, [r5, #0x18]
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08003076
- bl sub_2568
- bl sub_1AA4
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- movs r0, #0
- strb r0, [r5, #3]
-_08003076:
- ldr r4, _08003118 @ =0x0202ADD0
- ldr r0, _0800311C @ =0x0202BEC8
- ldr r1, _08003120 @ =0x0202C5F0
- ldr r2, _08003124 @ =0x0201A4D0
- bl sub_1B04
- str r0, [r4]
- ldr r1, _08003128 @ =0x0202BDF0
- movs r3, #3
- ands r3, r0
- str r3, [r1]
- ldr r2, _0800312C @ =0x0201C1AC
- movs r1, #0x1c
- ands r1, r0
- lsrs r1, r1, #2
- strb r1, [r2]
- ldr r2, _08003130 @ =0x0202ADDC
- movs r1, #0xe0
- lsls r1, r1, #4
- ands r1, r0
- lsrs r1, r1, #9
- strb r1, [r2]
- movs r1, #0x40
- ands r1, r0
- cmp r1, #0
- bne _080030AC
- b _080031DC
-_080030AC:
- cmp r3, #1
- bls _080030B2
- b _080031DC
-_080030B2:
- bl sub_3C78
- ldr r0, [r4]
- movs r1, #0x80
- lsls r1, r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800316C
- bl sub_3CD8
- lsls r0, r0, #0x10
- asrs r4, r0, #0x10
- movs r0, #1
- rsbs r0, r0, #0
- cmp r4, r0
- bne _0800316C
- bl sub_38F0
- ldr r1, _08003134 @ =0x0201C184
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, r4
- beq _0800313C
- cmp r0, #4
- bgt _0800313C
- adds r3, r5, #0
- adds r4, r1, #0
- ldr r5, _08003138 @ =0x0201A44C
- movs r2, #0
- movs r1, #4
- adds r0, r3, #0
- adds r0, #0xb
-_080030F4:
- strb r2, [r0]
- subs r0, #1
- subs r1, #1
- cmp r1, #0
- bge _080030F4
- movs r0, #0
- ldrsh r1, [r4, r0]
- adds r0, r3, #7
- adds r1, r1, r0
- movs r2, #0
- movs r0, #1
- strb r0, [r1]
- strh r2, [r5]
- movs r0, #5
- strb r0, [r3, #3]
- b _0800316C
- .align 2, 0
-_08003114: .4byte 0x0200B0C0
-_08003118: .4byte 0x0202ADD0
-_0800311C: .4byte 0x0202BEC8
-_08003120: .4byte 0x0202C5F0
-_08003124: .4byte 0x0201A4D0
-_08003128: .4byte 0x0202BDF0
-_0800312C: .4byte 0x0201C1AC
-_08003130: .4byte 0x0202ADDC
-_08003134: .4byte 0x0201C184
-_08003138: .4byte 0x0201A44C
-_0800313C:
- ldr r0, _080031E4 @ =0x0201A44C
- movs r2, #0
- strh r2, [r0]
- ldr r1, _080031E8 @ =0x0202A58C
- movs r0, #2
- strb r0, [r1]
- ldr r1, _080031EC @ =0x0202BEC0
- movs r0, #0xa
- strb r0, [r1]
- ldr r0, _080031F0 @ =0x0202C604
- strb r2, [r0]
- ldr r0, _080031F4 @ =0x0202C5A4
- strb r2, [r0]
- ldr r1, _080031F8 @ =0x0202AD90
- movs r0, #0xd
- strb r0, [r1]
- bl sub_377C
- ldr r1, _080031FC @ =0x0200B0C0
- movs r0, #4
- strb r0, [r1, #3]
- movs r0, #0x8a
- bl m4aSongNumStart
-_0800316C:
- ldr r4, _080031E8 @ =0x0202A58C
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #1
- bne _080031DC
- ldr r3, _080031E4 @ =0x0201A44C
- ldrh r0, [r3]
- adds r0, #1
- strh r0, [r3]
- ldrh r0, [r3]
- movs r1, #7
- ands r0, r1
- cmp r0, #0
- bne _08003192
- ldr r2, _080031EC @ =0x0202BEC0
- ldrb r1, [r2]
- movs r0, #0x15
- subs r0, r0, r1
- strb r0, [r2]
-_08003192:
- ldr r0, _08003200 @ =0x0202ADD0
- ldr r0, [r0]
- movs r1, #0xfe
- lsls r1, r1, #0xf
- ands r0, r1
- cmp r0, #0
- beq _080031DC
- ldr r1, _08003204 @ =0x0201A444
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xb4
- ble _080031DC
- movs r2, #0
- strh r2, [r3]
- movs r0, #2
- strb r0, [r4]
- ldr r1, _080031EC @ =0x0202BEC0
- movs r0, #0xa
- strb r0, [r1]
- ldr r0, _080031F0 @ =0x0202C604
- strb r2, [r0]
- ldr r0, _080031F4 @ =0x0202C5A4
- strb r2, [r0]
- ldr r1, _080031F8 @ =0x0202AD90
- movs r0, #0xd
- strb r0, [r1]
- bl sub_377C
- ldr r1, _080031FC @ =0x0200B0C0
- movs r0, #4
- strb r0, [r1, #3]
- movs r0, #0x8a
- bl m4aSongNumStart
-_080031DC:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080031E4: .4byte 0x0201A44C
-_080031E8: .4byte 0x0202A58C
-_080031EC: .4byte 0x0202BEC0
-_080031F0: .4byte 0x0202C604
-_080031F4: .4byte 0x0202C5A4
-_080031F8: .4byte 0x0202AD90
-_080031FC: .4byte 0x0200B0C0
-_08003200: .4byte 0x0202ADD0
-_08003204: .4byte 0x0201A444
-
- thumb_func_start sub_3208
-sub_3208: @ 0x08003208
- push {r4, r5, r6, r7, lr}
- ldr r1, _0800326C @ =0x0201A44C
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _08003228
- movs r0, #0
- strh r0, [r1]
- ldr r2, _08003270 @ =0x0202BEC0
- ldrb r1, [r2]
- movs r0, #0x16
- subs r0, r0, r1
- strb r0, [r2]
-_08003228:
- ldr r4, _08003274 @ =0x0202C604
- ldr r2, _08003278 @ =0x086A551A
- ldr r3, _0800327C @ =0x0202AD90
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- movs r1, #0
- ldrsb r1, [r4, r1]
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bgt _08003284
- ldr r1, _08003280 @ =0x0202A580
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #2
- ble _080032E0
- movs r0, #0
- strb r0, [r1]
- movs r0, #0
- ldrsb r0, [r3, r0]
- movs r1, #0
- ldrsb r1, [r4, r1]
- bl sub_3828
- ldrb r0, [r4]
- adds r0, #1
- strb r0, [r4]
- b _080032E0
- .align 2, 0
-_0800326C: .4byte 0x0201A44C
-_08003270: .4byte 0x0202BEC0
-_08003274: .4byte 0x0202C604
-_08003278: .4byte 0x086A551A
-_0800327C: .4byte 0x0202AD90
-_08003280: .4byte 0x0202A580
-_08003284:
- ldr r1, _080032BC @ =0x0202A580
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #6
- ble _080032E0
- movs r0, #0
- strb r0, [r1]
- ldr r0, _080032C0 @ =0x0202C5A4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _080032C4
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- movs r1, #0xea
- lsls r1, r1, #6
- bl sub_38A0
- b _080032D6
- .align 2, 0
-_080032BC: .4byte 0x0202A580
-_080032C0: .4byte 0x0202C5A4
-_080032C4:
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- movs r1, #0
- bl sub_38A0
-_080032D6:
- ldr r2, _0800331C @ =0x0202C5A4
- ldrb r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r2]
-_080032E0:
- ldr r7, _08003320 @ =0x0200B0C0
- ldrh r1, [r7, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800336E
- ldr r6, _08003324 @ =0x0202C604
- ldr r4, _08003328 @ =0x086A551A
- ldr r5, _0800332C @ =0x0202AD90
- movs r2, #0
- ldrsb r2, [r5, r2]
- adds r0, r2, r4
- movs r1, #0
- ldrsb r1, [r6, r1]
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bgt _08003330
- adds r0, r2, #0
- bl sub_37B4
- movs r0, #0
- ldrsb r0, [r5, r0]
- adds r0, r0, r4
- ldrb r0, [r0]
- adds r0, #1
- strb r0, [r6]
- b _0800336E
- .align 2, 0
-_0800331C: .4byte 0x0202C5A4
-_08003320: .4byte 0x0200B0C0
-_08003324: .4byte 0x0202C604
-_08003328: .4byte 0x086A551A
-_0800332C: .4byte 0x0202AD90
-_08003330:
- ldr r0, _08003354 @ =0x086A5528
- adds r0, r2, r0
- movs r4, #0
- ldrsb r4, [r0, r4]
- cmp r4, #0
- bne _08003358
- bl sub_2568
- bl sub_1AA4
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- strb r4, [r7, #3]
- b _0800336E
- .align 2, 0
-_08003354: .4byte 0x086A5528
-_08003358:
- bl sub_377C
- movs r1, #0
- strb r1, [r6]
- ldr r0, _08003388 @ =0x0202A580
- strb r1, [r0]
- ldr r0, _0800338C @ =0x0202C5A4
- strb r1, [r0]
- ldrb r0, [r5]
- adds r0, #1
- strb r0, [r5]
-_0800336E:
- bl sub_394C
- ldr r1, _08003390 @ =0x040000D4
- ldr r0, _08003394 @ =0x03000000
- str r0, [r1]
- ldr r0, _08003398 @ =0x06004000
- str r0, [r1, #4]
- ldr r0, _0800339C @ =0x80001800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08003388: .4byte 0x0202A580
-_0800338C: .4byte 0x0202C5A4
-_08003390: .4byte 0x040000D4
-_08003394: .4byte 0x03000000
-_08003398: .4byte 0x06004000
-_0800339C: .4byte 0x80001800
-
- thumb_func_start sub_33A0
-sub_33A0: @ 0x080033A0
- push {lr}
- bl sub_3AB4
- ldr r2, _080033BC @ =0x0201A44C
- movs r0, #0
- ldrsh r1, [r2, r0]
- cmp r1, #0x96
- beq _080033D4
- cmp r1, #0x96
- bgt _080033C0
- cmp r1, #4
- beq _080033CA
- b _080033FE
- .align 2, 0
-_080033BC: .4byte 0x0201A44C
-_080033C0:
- movs r0, #0x87
- lsls r0, r0, #1
- cmp r1, r0
- beq _080033E8
- b _080033FE
-_080033CA:
- bl sub_2568
- bl sub_1AA4
- b _080033FE
-_080033D4:
- ldr r1, _080033E4 @ =0x0202A58C
- movs r0, #3
- strb r0, [r1]
- movs r0, #0x65
- bl m4aSongNumStart
- b _080033FE
- .align 2, 0
-_080033E4: .4byte 0x0202A58C
-_080033E8:
- movs r0, #0
- strh r0, [r2]
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _0800342C @ =0x0200B0C0
- movs r0, #6
- strb r0, [r1, #3]
-_080033FE:
- ldr r0, _08003430 @ =0x0202A58C
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r3, _08003434 @ =0x0201A44C
- cmp r0, #1
- bne _08003420
- ldrh r0, [r3]
- movs r1, #7
- ands r0, r1
- cmp r0, #0
- bne _08003420
- ldr r2, _08003438 @ =0x0202BEC0
- ldrb r1, [r2]
- movs r0, #0x15
- subs r0, r0, r1
- strb r0, [r2]
-_08003420:
- ldrh r0, [r3]
- adds r0, #1
- strh r0, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_0800342C: .4byte 0x0200B0C0
-_08003430: .4byte 0x0202A58C
-_08003434: .4byte 0x0201A44C
-_08003438: .4byte 0x0202BEC0
-
- thumb_func_start sub_343C
-sub_343C: @ 0x0800343C
- push {r4, r5, r6, lr}
- mov r6, sb
- mov r5, r8
- push {r5, r6}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x86
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _08003550 @ =0x04000008
- movs r0, #4
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #1
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08003554 @ =0x0400000A
- adds r3, #5
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r3, #0xfb
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r6, _08003558 @ =0x0200B0C0
- movs r0, #0xba
- lsls r0, r0, #2
- adds r1, r6, r0
- movs r5, #0
- ldr r0, _0800355C @ =0x0000FFE8
- strh r0, [r1]
- adds r3, #0xea
- adds r1, r6, r3
- subs r0, #0x48
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r6, #0x16]
- ldr r4, _08003560 @ =0x040000D4
- ldr r0, _08003564 @ =0x08081D20
- str r0, [r4]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r0, _08003568 @ =0x80000020
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800356C @ =0x080897E0
- str r0, [r4]
- ldr r0, _08003570 @ =0x05000040
- str r0, [r4, #4]
- ldr r0, _08003574 @ =0x80000010
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003578 @ =0x08080500
- str r0, [r4]
- ldr r0, _0800357C @ =0x03000000
- mov r8, r0
- str r0, [r4, #4]
- ldr r1, _08003580 @ =0x80001800
- mov sb, r1
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003584 @ =0x0807DD00
- str r0, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r1, _08003588 @ =0x80000400
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800358C @ =0x0807FD00
- str r0, [r4]
- ldr r0, _08003590 @ =0x06000800
- str r0, [r4, #4]
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003594 @ =0x08089960
- str r0, [r4]
- ldr r0, _08003598 @ =0x05000200
- str r0, [r4, #4]
- ldr r0, _0800359C @ =0x80000060
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _080035A0 @ =0x08089B60
- str r0, [r4]
- ldr r0, _080035A4 @ =0x06010000
- str r0, [r4, #4]
- ldr r0, _080035A8 @ =0x80003610
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_2DF0
- ldr r0, _080035AC @ =0x0202C604
- strb r5, [r0]
- ldr r0, _080035B0 @ =0x0202A580
- strb r5, [r0]
- ldr r0, _080035B4 @ =0x0202C5A4
- strb r5, [r0]
- ldr r2, _080035B8 @ =0x0202AD90
- ldr r1, _080035BC @ =0x086A5536
- ldr r0, _080035C0 @ =0x0201C184
- movs r3, #0
- ldrsh r0, [r0, r3]
- adds r0, r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- bl sub_377C
- mov r0, r8
- str r0, [r4]
- ldr r0, _080035C4 @ =0x06004000
- str r0, [r4, #4]
- mov r1, sb
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_394C
- movs r0, #5
- bl m4aSongNumStart
- bl sub_CBC
- bl sub_24C
- movs r0, #7
- strb r0, [r6, #3]
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08003550: .4byte 0x04000008
-_08003554: .4byte 0x0400000A
-_08003558: .4byte 0x0200B0C0
-_0800355C: .4byte 0x0000FFE8
-_08003560: .4byte 0x040000D4
-_08003564: .4byte 0x08081D20
-_08003568: .4byte 0x80000020
-_0800356C: .4byte 0x080897E0
-_08003570: .4byte 0x05000040
-_08003574: .4byte 0x80000010
-_08003578: .4byte 0x08080500
-_0800357C: .4byte 0x03000000
-_08003580: .4byte 0x80001800
-_08003584: .4byte 0x0807DD00
-_08003588: .4byte 0x80000400
-_0800358C: .4byte 0x0807FD00
-_08003590: .4byte 0x06000800
-_08003594: .4byte 0x08089960
-_08003598: .4byte 0x05000200
-_0800359C: .4byte 0x80000060
-_080035A0: .4byte 0x08089B60
-_080035A4: .4byte 0x06010000
-_080035A8: .4byte 0x80003610
-_080035AC: .4byte 0x0202C604
-_080035B0: .4byte 0x0202A580
-_080035B4: .4byte 0x0202C5A4
-_080035B8: .4byte 0x0202AD90
-_080035BC: .4byte 0x086A5536
-_080035C0: .4byte 0x0201C184
-_080035C4: .4byte 0x06004000
-
- thumb_func_start sub_35C8
-sub_35C8: @ 0x080035C8
- push {r4, r5, r6, lr}
- ldr r4, _0800360C @ =0x0202C604
- ldr r2, _08003610 @ =0x086A551A
- ldr r3, _08003614 @ =0x0202AD90
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- movs r1, #0
- ldrsb r1, [r4, r1]
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bgt _0800361C
- ldr r1, _08003618 @ =0x0202A580
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #2
- ble _08003678
- movs r0, #0
- strb r0, [r1]
- movs r0, #0
- ldrsb r0, [r3, r0]
- movs r1, #0
- ldrsb r1, [r4, r1]
- bl sub_3828
- ldrb r0, [r4]
- adds r0, #1
- strb r0, [r4]
- b _08003678
- .align 2, 0
-_0800360C: .4byte 0x0202C604
-_08003610: .4byte 0x086A551A
-_08003614: .4byte 0x0202AD90
-_08003618: .4byte 0x0202A580
-_0800361C:
- ldr r1, _08003654 @ =0x0202A580
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #6
- ble _08003678
- movs r0, #0
- strb r0, [r1]
- ldr r0, _08003658 @ =0x0202C5A4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _0800365C
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- movs r1, #0xea
- lsls r1, r1, #6
- bl sub_38A0
- b _0800366E
- .align 2, 0
-_08003654: .4byte 0x0202A580
-_08003658: .4byte 0x0202C5A4
-_0800365C:
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- movs r1, #0
- bl sub_38A0
-_0800366E:
- ldr r2, _080036B4 @ =0x0202C5A4
- ldrb r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r2]
-_08003678:
- ldr r2, _080036B8 @ =0x0200B0C0
- ldrh r1, [r2, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800371A
- ldr r5, _080036BC @ =0x0202C604
- ldr r6, _080036C0 @ =0x086A551A
- ldr r4, _080036C4 @ =0x0202AD90
- movs r3, #0
- ldrsb r3, [r4, r3]
- adds r0, r3, r6
- movs r1, #0
- ldrsb r1, [r5, r1]
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bgt _080036C8
- adds r0, r3, #0
- bl sub_37B4
- movs r0, #0
- ldrsb r0, [r4, r0]
- adds r0, r0, r6
- ldrb r0, [r0]
- adds r0, #1
- strb r0, [r5]
- b _0800371A
- .align 2, 0
-_080036B4: .4byte 0x0202C5A4
-_080036B8: .4byte 0x0200B0C0
-_080036BC: .4byte 0x0202C604
-_080036C0: .4byte 0x086A551A
-_080036C4: .4byte 0x0202AD90
-_080036C8:
- ldr r0, _080036E8 @ =0x086A5528
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _08003704
- ldr r0, _080036EC @ =0x0201C184
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #4
- bne _080036F4
- ldr r1, _080036F0 @ =0x0202BEF8
- movs r0, #0xb
- b _080036F8
- .align 2, 0
-_080036E8: .4byte 0x086A5528
-_080036EC: .4byte 0x0201C184
-_080036F0: .4byte 0x0202BEF8
-_080036F4:
- ldr r1, _08003700 @ =0x0202BEF8
- movs r0, #1
-_080036F8:
- strb r0, [r1]
- movs r0, #8
- strb r0, [r2, #3]
- b _0800371A
- .align 2, 0
-_08003700: .4byte 0x0202BEF8
-_08003704:
- bl sub_377C
- movs r1, #0
- strb r1, [r5]
- ldr r0, _08003734 @ =0x0202A580
- strb r1, [r0]
- ldr r0, _08003738 @ =0x0202C5A4
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, #1
- strb r0, [r4]
-_0800371A:
- bl sub_394C
- ldr r1, _0800373C @ =0x040000D4
- ldr r0, _08003740 @ =0x03000000
- str r0, [r1]
- ldr r0, _08003744 @ =0x06004000
- str r0, [r1, #4]
- ldr r0, _08003748 @ =0x80001800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08003734: .4byte 0x0202A580
-_08003738: .4byte 0x0202C5A4
-_0800373C: .4byte 0x040000D4
-_08003740: .4byte 0x03000000
-_08003744: .4byte 0x06004000
-_08003748: .4byte 0x80001800
-
- thumb_func_start sub_374C
-sub_374C: @ 0x0800374C
- push {lr}
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08003774 @ =0x0201A4B4
- movs r0, #1
- strb r0, [r1]
- ldr r0, _08003778 @ =0x0202BEF8
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_08003774: .4byte 0x0201A4B4
-_08003778: .4byte 0x0202BEF8
-
- thumb_func_start sub_377C
-sub_377C: @ 0x0800377C
- push {r4, r5, r6, r7, lr}
- movs r1, #0
- ldr r7, _080037AC @ =0x03001800
-_08003782:
- movs r5, #0
- lsls r0, r1, #0xb
- adds r6, r1, #1
- adds r4, r7, r0
-_0800378A:
- ldr r0, _080037B0 @ =0x080ACC60
- adds r1, r4, #0
- movs r2, #1
- movs r3, #2
- bl sub_10708
- adds r4, #0x20
- adds r5, #1
- cmp r5, #0x17
- ble _0800378A
- adds r1, r6, #0
- cmp r1, #2
- ble _08003782
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080037AC: .4byte 0x03001800
-_080037B0: .4byte 0x080ACC60
-
- thumb_func_start sub_37B4
-sub_37B4: @ 0x080037B4
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- movs r2, #0
- lsls r0, r0, #0x18
- ldr r1, _08003818 @ =0x086A4CF8
- mov sb, r1
- asrs r0, r0, #0x18
- lsls r1, r0, #3
- adds r1, r1, r0
- lsls r1, r1, #4
- mov r8, r1
-_080037CE:
- movs r5, #0
- lsls r1, r2, #1
- lsls r6, r2, #0xb
- adds r7, r2, #1
- adds r1, r1, r2
- lsls r1, r1, #4
- mov r0, r8
- add r0, sb
- adds r4, r1, r0
-_080037E0:
- ldrh r1, [r4]
- ldr r2, _0800381C @ =0x0000FFF0
- adds r0, r2, #0
- ands r0, r1
- ldr r1, _08003820 @ =0x080ACC60
- adds r0, r0, r1
- lsls r1, r5, #5
- ldr r2, _08003824 @ =0x03001800
- adds r1, r1, r2
- adds r1, r6, r1
- movs r2, #1
- movs r3, #2
- bl sub_10708
- adds r4, #2
- adds r5, #1
- cmp r5, #0x17
- ble _080037E0
- adds r2, r7, #0
- cmp r2, #2
- ble _080037CE
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08003818: .4byte 0x086A4CF8
-_0800381C: .4byte 0x0000FFF0
-_08003820: .4byte 0x080ACC60
-_08003824: .4byte 0x03001800
-
- thumb_func_start sub_3828
-sub_3828: @ 0x08003828
- push {r4, r5, r6, lr}
- adds r5, r0, #0
- adds r4, r1, #0
- lsls r5, r5, #0x18
- lsrs r5, r5, #0x18
- lsls r4, r4, #0x18
- asrs r4, r4, #0x18
- adds r0, r4, #0
- movs r1, #0x18
- bl __divsi3
- adds r6, r0, #0
- lsls r6, r6, #0x18
- asrs r6, r6, #0x18
- adds r0, r4, #0
- movs r1, #0x18
- bl __modsi3
- adds r2, r0, #0
- lsls r2, r2, #0x18
- asrs r2, r2, #0x18
- ldr r3, _08003890 @ =0x086A4CF8
- lsls r1, r6, #1
- adds r1, r1, r6
- lsls r1, r1, #3
- adds r1, r1, r2
- lsls r1, r1, #1
- lsls r5, r5, #0x18
- asrs r5, r5, #0x18
- lsls r0, r5, #3
- adds r0, r0, r5
- lsls r0, r0, #4
- adds r1, r1, r0
- adds r1, r1, r3
- ldrh r1, [r1]
- ldr r0, _08003894 @ =0x0000FFF0
- ands r0, r1
- ldr r1, _08003898 @ =0x080ACC60
- adds r0, r0, r1
- lsls r6, r6, #0xb
- lsls r2, r2, #5
- ldr r1, _0800389C @ =0x03001800
- adds r2, r2, r1
- adds r6, r6, r2
- adds r1, r6, #0
- movs r2, #1
- movs r3, #2
- bl sub_10708
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08003890: .4byte 0x086A4CF8
-_08003894: .4byte 0x0000FFF0
-_08003898: .4byte 0x080ACC60
-_0800389C: .4byte 0x03001800
-
- thumb_func_start sub_38A0
-sub_38A0: @ 0x080038A0
- push {r4, r5, r6, lr}
- adds r5, r0, #0
- adds r6, r1, #0
- lsls r6, r6, #0x10
- lsrs r6, r6, #0x10
- lsls r5, r5, #0x18
- asrs r5, r5, #0x18
- adds r0, r5, #0
- movs r1, #0x18
- bl __divsi3
- adds r4, r0, #0
- lsls r4, r4, #0x18
- asrs r4, r4, #0x18
- adds r0, r5, #0
- movs r1, #0x18
- bl __modsi3
- lsls r0, r0, #0x18
- ldr r1, _080038E8 @ =0x080ACC60
- adds r6, r6, r1
- lsls r4, r4, #0xb
- asrs r0, r0, #0x13
- ldr r1, _080038EC @ =0x03001800
- adds r0, r0, r1
- adds r4, r4, r0
- adds r0, r6, #0
- adds r1, r4, #0
- movs r2, #1
- movs r3, #2
- bl sub_10708
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080038E8: .4byte 0x080ACC60
-_080038EC: .4byte 0x03001800
-
- thumb_func_start sub_38F0
-sub_38F0: @ 0x080038F0
- ldr r0, _08003900 @ =0x0202BEEC
- movs r2, #0
- ldrsh r1, [r0, r2]
- ldr r0, _08003904 @ =0x00001F52
- cmp r1, r0
- bne _08003908
- movs r0, #0
- b _0800394A
- .align 2, 0
-_08003900: .4byte 0x0202BEEC
-_08003904: .4byte 0x00001F52
-_08003908:
- ldr r0, _08003914 @ =0x00003E1A
- cmp r1, r0
- bne _08003918
- movs r0, #1
- b _0800394A
- .align 2, 0
-_08003914: .4byte 0x00003E1A
-_08003918:
- ldr r0, _08003924 @ =0x000025AF
- cmp r1, r0
- bne _08003928
- movs r0, #2
- b _0800394A
- .align 2, 0
-_08003924: .4byte 0x000025AF
-_08003928:
- ldr r0, _08003934 @ =0x00004A09
- cmp r1, r0
- bne _08003938
- movs r0, #3
- b _0800394A
- .align 2, 0
-_08003934: .4byte 0x00004A09
-_08003938:
- ldr r0, _08003944 @ =0x00006B12
- cmp r1, r0
- beq _08003948
- movs r0, #1
- rsbs r0, r0, #0
- b _0800394A
- .align 2, 0
-_08003944: .4byte 0x00006B12
-_08003948:
- movs r0, #4
-_0800394A:
- bx lr
-
- thumb_func_start sub_394C
-sub_394C: @ 0x0800394C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- ldr r4, _080039A0 @ =0x0202A58C
- movs r0, #0
- ldrsb r0, [r4, r0]
- movs r1, #0xb8
- muls r0, r1, r0
- ldr r2, _080039A4 @ =0x0200B3B8
- adds r7, r0, r2
- ldr r0, _080039A8 @ =0x0202BEC0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- muls r0, r1, r0
- adds r0, r0, r2
- mov r8, r0
- ldr r0, _080039AC @ =0x0202C584
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r7]
- movs r0, #1
- mov r1, r8
- strh r0, [r1]
- ldr r0, _080039B0 @ =0x086A54D8
- movs r1, #0xd
- bl sub_358
- ldrh r0, [r7]
- cmp r0, #1
- bne _08003A18
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _080039B4
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x64
- b _080039BA
- .align 2, 0
-_080039A0: .4byte 0x0202A58C
-_080039A4: .4byte 0x0200B3B8
-_080039A8: .4byte 0x0202BEC0
-_080039AC: .4byte 0x0202C584
-_080039B0: .4byte 0x086A54D8
-_080039B4:
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x50
-_080039BA:
- strh r0, [r7, #4]
- ldr r1, _08003A9C @ =0x086A54D8
- ldr r0, _08003AA0 @ =0x0202A58C
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r6, [r0]
- movs r5, #0
- ldrh r2, [r6]
- cmp r5, r2
- bge _08003A18
- ldr r0, _08003AA4 @ =0x03005000
- mov ip, r0
- ldr r1, _08003AA8 @ =0xFFFFFE00
- mov sb, r1
- adds r4, r7, #0
- adds r4, #8
-_080039E0:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, ip
- movs r2, #2
- ldrsh r1, [r4, r2]
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r2, _08003AAC @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r0, [r6]
- cmp r5, r0
- blt _080039E0
-_08003A18:
- movs r0, #0x78
- mov r1, r8
- strh r0, [r1, #2]
- movs r0, #0x18
- strh r0, [r1, #4]
- ldr r1, _08003A9C @ =0x086A54D8
- ldr r0, _08003AB0 @ =0x0202BEC0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r6, [r0]
- movs r5, #0
- ldrh r2, [r6]
- cmp r5, r2
- bge _08003A86
- ldr r0, _08003AA4 @ =0x03005000
- mov ip, r0
- ldr r1, _08003AA8 @ =0xFFFFFE00
- mov sb, r1
- mov r4, r8
- adds r4, #8
-_08003A46:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, ip
- movs r0, #2
- ldrsh r2, [r4, r0]
- mov sl, r2
- mov r1, r8
- movs r2, #2
- ldrsh r0, [r1, r2]
- mov r2, sl
- adds r1, r2, r0
- ldr r2, _08003AAC @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- mov r2, r8
- ldrb r0, [r2, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r0, [r6]
- cmp r5, r0
- blt _08003A46
-_08003A86:
- movs r0, #0
- strh r0, [r7]
- mov r1, r8
- strh r0, [r1]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08003A9C: .4byte 0x086A54D8
-_08003AA0: .4byte 0x0202A58C
-_08003AA4: .4byte 0x03005000
-_08003AA8: .4byte 0xFFFFFE00
-_08003AAC: .4byte 0x000001FF
-_08003AB0: .4byte 0x0202BEC0
-
- thumb_func_start sub_3AB4
-sub_3AB4: @ 0x08003AB4
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- ldr r4, _08003B08 @ =0x0202A58C
- movs r0, #0
- ldrsb r0, [r4, r0]
- movs r1, #0xb8
- muls r0, r1, r0
- ldr r2, _08003B0C @ =0x0200B3B8
- adds r7, r0, r2
- ldr r0, _08003B10 @ =0x0202BEC0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- muls r0, r1, r0
- adds r0, r0, r2
- mov r8, r0
- ldr r0, _08003B14 @ =0x0202C584
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r7]
- movs r0, #1
- mov r1, r8
- strh r0, [r1]
- ldr r0, _08003B18 @ =0x086A54D8
- movs r1, #0xd
- bl sub_2414
- ldrh r0, [r7]
- cmp r0, #1
- bne _08003B80
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _08003B1C
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x64
- b _08003B22
- .align 2, 0
-_08003B08: .4byte 0x0202A58C
-_08003B0C: .4byte 0x0200B3B8
-_08003B10: .4byte 0x0202BEC0
-_08003B14: .4byte 0x0202C584
-_08003B18: .4byte 0x086A54D8
-_08003B1C:
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x50
-_08003B22:
- strh r0, [r7, #4]
- ldr r1, _08003C04 @ =0x086A54D8
- ldr r0, _08003C08 @ =0x0202A58C
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r6, [r0]
- movs r5, #0
- ldrh r2, [r6]
- cmp r5, r2
- bge _08003B80
- ldr r0, _08003C0C @ =0x03005000
- mov ip, r0
- ldr r1, _08003C10 @ =0xFFFFFE00
- mov sb, r1
- adds r4, r7, #0
- adds r4, #8
-_08003B48:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, ip
- movs r2, #2
- ldrsh r1, [r4, r2]
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r2, _08003C14 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r0, [r6]
- cmp r5, r0
- blt _08003B48
-_08003B80:
- movs r0, #0x78
- mov r1, r8
- strh r0, [r1, #2]
- movs r0, #0x18
- strh r0, [r1, #4]
- ldr r1, _08003C04 @ =0x086A54D8
- ldr r0, _08003C18 @ =0x0202BEC0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r6, [r0]
- movs r5, #0
- ldrh r2, [r6]
- cmp r5, r2
- bge _08003BEE
- ldr r0, _08003C0C @ =0x03005000
- mov ip, r0
- ldr r1, _08003C10 @ =0xFFFFFE00
- mov sb, r1
- mov r4, r8
- adds r4, #8
-_08003BAE:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, ip
- movs r0, #2
- ldrsh r2, [r4, r0]
- mov sl, r2
- mov r1, r8
- movs r2, #2
- ldrsh r0, [r1, r2]
- mov r2, sl
- adds r1, r2, r0
- ldr r2, _08003C14 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- mov r2, r8
- ldrb r0, [r2, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r0, [r6]
- cmp r5, r0
- blt _08003BAE
-_08003BEE:
- movs r0, #0
- strh r0, [r7]
- mov r1, r8
- strh r0, [r1]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08003C04: .4byte 0x086A54D8
-_08003C08: .4byte 0x0202A58C
-_08003C0C: .4byte 0x03005000
-_08003C10: .4byte 0xFFFFFE00
-_08003C14: .4byte 0x000001FF
-_08003C18: .4byte 0x0202BEC0
-
- thumb_func_start sub_3C1C
-sub_3C1C: @ 0x08003C1C
- push {r4, lr}
- ldr r0, _08003C64 @ =0x0202A564
- movs r1, #0
- strb r1, [r0]
- ldr r0, _08003C68 @ =0x02019C20
- strb r1, [r0]
- ldr r0, _08003C6C @ =0x0202ADE8
- strb r1, [r0]
- ldr r1, _08003C70 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_08003C34:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _08003C34
- movs r1, #0
- ldr r4, _08003C74 @ =0x0201A4D0
- movs r3, #0
-_08003C42:
- lsls r0, r1, #1
- adds r2, r1, #1
- movs r1, #7
- adds r0, r0, r4
- adds r0, #0x1c
-_08003C4C:
- strh r3, [r0]
- subs r0, #4
- subs r1, #1
- cmp r1, #0
- bge _08003C4C
- adds r1, r2, #0
- cmp r1, #1
- ble _08003C42
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08003C64: .4byte 0x0202A564
-_08003C68: .4byte 0x02019C20
-_08003C6C: .4byte 0x0202ADE8
-_08003C70: .4byte 0x0202C5F0
-_08003C74: .4byte 0x0201A4D0
-
- thumb_func_start sub_3C78
-sub_3C78: @ 0x08003C78
- ldr r0, _08003C8C @ =0x02019C20
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- beq _08003C98
- ldr r1, _08003C90 @ =0x0202C5F0
- ldr r0, _08003C94 @ =0x0000DFDF
- strh r0, [r1]
- b _08003CD0
- .align 2, 0
-_08003C8C: .4byte 0x02019C20
-_08003C90: .4byte 0x0202C5F0
-_08003C94: .4byte 0x0000DFDF
-_08003C98:
- ldr r3, _08003CB4 @ =0x0202ADE8
- movs r1, #0
- ldrsb r1, [r3, r1]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _08003CC0
- ldr r0, _08003CB8 @ =0x0202C5F0
- movs r2, #0
- ldr r1, _08003CBC @ =0x0000CDFE
- strh r1, [r0]
- strb r2, [r3]
- b _08003CD0
- .align 2, 0
-_08003CB4: .4byte 0x0202ADE8
-_08003CB8: .4byte 0x0202C5F0
-_08003CBC: .4byte 0x0000CDFE
-_08003CC0:
- ldr r1, _08003CD4 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_08003CC8:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _08003CC8
-_08003CD0:
- movs r0, #0
- bx lr
- .align 2, 0
-_08003CD4: .4byte 0x0202C5F0
-
- thumb_func_start sub_3CD8
-sub_3CD8: @ 0x08003CD8
- push {r4, lr}
- ldr r0, _08003D24 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #1
- ands r0, r1
- ldr r2, _08003D28 @ =0x0202A564
- cmp r0, #0
- beq _08003D02
- movs r0, #0
- ldrsb r0, [r2, r0]
- cmp r0, #0
- bne _08003D0A
- movs r0, #1
- rsbs r0, r0, #0
- adds r1, r0, #0
- strb r1, [r2]
- ldr r0, _08003D2C @ =0x0202ADE8
- strb r1, [r0]
- ldr r1, _08003D30 @ =0x0202A58C
- movs r0, #1
- strb r0, [r1]
-_08003D02:
- movs r0, #0
- ldrsb r0, [r2, r0]
- cmp r0, #0
- beq _08003D7A
-_08003D0A:
- ldr r3, _08003D34 @ =0x02019C20
- movs r0, #0
- ldrsb r0, [r3, r0]
- cmp r0, #0
- bne _08003D66
- ldr r1, _08003D38 @ =0x0201A4D0
- ldrh r0, [r1]
- ldr r2, _08003D3C @ =0x0000FEDC
- cmp r0, r2
- bne _08003D44
- ldr r0, _08003D40 @ =0x0202BEEC
- ldrh r1, [r1, #4]
- b _08003D4E
- .align 2, 0
-_08003D24: .4byte 0x0200B0C0
-_08003D28: .4byte 0x0202A564
-_08003D2C: .4byte 0x0202ADE8
-_08003D30: .4byte 0x0202A58C
-_08003D34: .4byte 0x02019C20
-_08003D38: .4byte 0x0201A4D0
-_08003D3C: .4byte 0x0000FEDC
-_08003D40: .4byte 0x0202BEEC
-_08003D44:
- ldrh r0, [r1, #2]
- cmp r0, r2
- bne _08003D7A
- ldr r0, _08003D5C @ =0x0202BEEC
- ldrh r1, [r1, #6]
-_08003D4E:
- strh r1, [r0]
- movs r1, #1
- rsbs r1, r1, #0
- adds r0, r1, #0
- strb r0, [r3]
- b _08003D7A
- .align 2, 0
-_08003D5C: .4byte 0x0202BEEC
-_08003D60:
- movs r0, #1
- rsbs r0, r0, #0
- b _08003D9C
-_08003D66:
- movs r1, #0
- ldr r3, _08003DA4 @ =0x0000DFDF
- ldr r2, _08003DA8 @ =0x0201A4D0
-_08003D6C:
- ldrh r0, [r2]
- cmp r0, r3
- beq _08003D60
- adds r2, #2
- adds r1, #1
- cmp r1, #1
- ble _08003D6C
-_08003D7A:
- movs r1, #0
- ldr r4, _08003DA8 @ =0x0201A4D0
- movs r3, #0
-_08003D80:
- lsls r0, r1, #1
- adds r2, r1, #1
- movs r1, #7
- adds r0, r0, r4
- adds r0, #0x1c
-_08003D8A:
- strh r3, [r0]
- subs r0, #4
- subs r1, #1
- cmp r1, #0
- bge _08003D8A
- adds r1, r2, #0
- cmp r1, #1
- ble _08003D80
- movs r0, #0
-_08003D9C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08003DA4: .4byte 0x0000DFDF
-_08003DA8: .4byte 0x0201A4D0
-
- thumb_func_start sub_3DAC
-sub_3DAC: @ 0x08003DAC
- push {lr}
- ldr r1, _08003DC4 @ =0x0805C880
- ldr r0, _08003DC8 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08003DC4: .4byte 0x0805C880
-_08003DC8: .4byte 0x0200B0C0
-
- thumb_func_start sub_3DCC
-sub_3DCC: @ 0x08003DCC
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x86
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _08003F30 @ =0x0400000A
- movs r0, #5
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #2
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08003F34 @ =0x0400000C
- subs r3, #0xf2
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08003F38 @ =0x0400000E
- ldr r3, _08003F3C @ =0x0000020F
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #4
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r7, _08003F40 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r7, #0x16]
- ldr r4, _08003F44 @ =0x040000D4
- ldr r0, _08003F48 @ =0x08082720
- str r0, [r4]
- ldr r0, _08003F4C @ =0x06004000
- str r0, [r4, #4]
- ldr r0, _08003F50 @ =0x80002200
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003F54 @ =0x08087B40
- str r0, [r4]
- ldr r0, _08003F58 @ =0x0600C000
- str r0, [r4, #4]
- ldr r0, _08003F5C @ =0x80000A00
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003F60 @ =0x08089760
- str r0, [r4]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r1, _08003F64 @ =0x80000100
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003F68 @ =0x08081F20
- str r0, [r4]
- ldr r0, _08003F6C @ =0x03005C00
- mov sl, r0
- str r0, [r4, #4]
- ldr r2, _08003F70 @ =0x80000400
- mov r8, r2
- str r2, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003F74 @ =0x08087340
- str r0, [r4]
- ldr r3, _08003F78 @ =0x02019C40
- mov sb, r3
- str r3, [r4, #4]
- str r2, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003F7C @ =0x08088F60
- str r0, [r4]
- ldr r0, _08003F80 @ =0x06001000
- str r0, [r4, #4]
- str r2, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003F84 @ =0x08089960
- str r0, [r4]
- ldr r0, _08003F88 @ =0x05000200
- str r0, [r4, #4]
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08003F8C @ =0x08089B60
- str r0, [r4]
- ldr r0, _08003F90 @ =0x06010000
- str r0, [r4, #4]
- ldr r0, _08003F94 @ =0x80003610
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_3FAC
- ldr r0, _08003F98 @ =0x0202BEB8
- movs r1, #0
- ldrsh r0, [r0, r1]
- ldr r1, _08003F9C @ =0x0201A514
- movs r2, #0
- ldrsh r1, [r1, r2]
- bl sub_6BEC
- ldr r6, _08003FA0 @ =0x0202ADE0
- movs r3, #0
- ldrsh r0, [r6, r3]
- bl sub_681C
- ldr r5, _08003FA4 @ =0x0202C5B0
- movs r1, #0
- ldrsh r0, [r5, r1]
- bl sub_6CA0
- movs r2, #0
- ldrsh r0, [r5, r2]
- bl sub_6F30
- movs r3, #0
- ldrsh r0, [r6, r3]
- bl sub_6F78
- movs r1, #0
- ldrsh r0, [r6, r1]
- bl sub_8974
- movs r2, #0
- ldrsh r0, [r6, r2]
- bl sub_8A78
- movs r1, #0x9a
- lsls r1, r1, #2
- add r1, sb
- movs r0, #0x59
- strh r0, [r1]
- mov r3, sl
- str r3, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- mov r0, r8
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- mov r1, sb
- str r1, [r4]
- ldr r0, _08003FA8 @ =0x06000800
- str r0, [r4, #4]
- mov r2, r8
- str r2, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_51FC
- bl sub_CBC
- bl sub_24C
- movs r0, #1
- strb r0, [r7, #3]
- movs r0, #0x2e
- bl m4aSongNumStart
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08003F30: .4byte 0x0400000A
-_08003F34: .4byte 0x0400000C
-_08003F38: .4byte 0x0400000E
-_08003F3C: .4byte 0x0000020F
-_08003F40: .4byte 0x0200B0C0
-_08003F44: .4byte 0x040000D4
-_08003F48: .4byte 0x08082720
-_08003F4C: .4byte 0x06004000
-_08003F50: .4byte 0x80002200
-_08003F54: .4byte 0x08087B40
-_08003F58: .4byte 0x0600C000
-_08003F5C: .4byte 0x80000A00
-_08003F60: .4byte 0x08089760
-_08003F64: .4byte 0x80000100
-_08003F68: .4byte 0x08081F20
-_08003F6C: .4byte 0x03005C00
-_08003F70: .4byte 0x80000400
-_08003F74: .4byte 0x08087340
-_08003F78: .4byte 0x02019C40
-_08003F7C: .4byte 0x08088F60
-_08003F80: .4byte 0x06001000
-_08003F84: .4byte 0x08089960
-_08003F88: .4byte 0x05000200
-_08003F8C: .4byte 0x08089B60
-_08003F90: .4byte 0x06010000
-_08003F94: .4byte 0x80003610
-_08003F98: .4byte 0x0202BEB8
-_08003F9C: .4byte 0x0201A514
-_08003FA0: .4byte 0x0202ADE0
-_08003FA4: .4byte 0x0202C5B0
-_08003FA8: .4byte 0x06000800
-
- thumb_func_start sub_3FAC
-sub_3FAC: @ 0x08003FAC
- push {r4, r5, lr}
- ldr r0, _0800401C @ =0x0202ADE0
- movs r4, #0
- strh r4, [r0]
- ldr r0, _08004020 @ =0x0202C5B0
- strh r4, [r0]
- ldr r0, _08004024 @ =0x0201A448
- strh r4, [r0]
- ldr r0, _08004028 @ =0x0202BF00
- strh r4, [r0]
- ldr r0, _0800402C @ =0x0202A57C
- strh r4, [r0]
- ldr r0, _08004030 @ =0x0201A4F0
- strh r4, [r0]
- ldr r0, _08004034 @ =0x0202BE20
- strh r4, [r0]
- ldr r0, _08004038 @ =0x0202C58C
- strh r4, [r0]
- ldr r0, _0800403C @ =0x02019C24
- strb r4, [r0]
- ldr r0, _08004040 @ =0x0202BF0C
- strh r4, [r0]
- ldr r0, _08004044 @ =0x0201A440
- strh r4, [r0]
- ldr r0, _08004048 @ =0x0202C5E8
- strh r4, [r0]
- ldr r0, _0800404C @ =0x0202BEF4
- strh r4, [r0]
- ldr r0, _08004050 @ =0x0202A588
- movs r5, #1
- strh r5, [r0]
- ldr r0, _08004054 @ =0x0202A55C
- strh r5, [r0]
- ldr r0, _08004058 @ =0x0202A568
- movs r1, #0
- strh r1, [r0]
- strh r1, [r0, #2]
- ldr r0, _0800405C @ =0x0202BF14
- strh r1, [r0]
- ldr r0, _08004060 @ =0x0202A558
- strh r1, [r0]
- ldr r0, _08004064 @ =0x0202BEE0
- strb r4, [r0]
- ldr r0, _08004068 @ =0x0202BF04
- strb r5, [r0]
- bl sub_88E4
- bl sub_FD20
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #1
- bne _08004070
- ldr r0, _0800406C @ =0x0202C590
- strb r5, [r0]
- b _08004074
- .align 2, 0
-_0800401C: .4byte 0x0202ADE0
-_08004020: .4byte 0x0202C5B0
-_08004024: .4byte 0x0201A448
-_08004028: .4byte 0x0202BF00
-_0800402C: .4byte 0x0202A57C
-_08004030: .4byte 0x0201A4F0
-_08004034: .4byte 0x0202BE20
-_08004038: .4byte 0x0202C58C
-_0800403C: .4byte 0x02019C24
-_08004040: .4byte 0x0202BF0C
-_08004044: .4byte 0x0201A440
-_08004048: .4byte 0x0202C5E8
-_0800404C: .4byte 0x0202BEF4
-_08004050: .4byte 0x0202A588
-_08004054: .4byte 0x0202A55C
-_08004058: .4byte 0x0202A568
-_0800405C: .4byte 0x0202BF14
-_08004060: .4byte 0x0202A558
-_08004064: .4byte 0x0202BEE0
-_08004068: .4byte 0x0202BF04
-_0800406C: .4byte 0x0202C590
-_08004070:
- ldr r0, _080040C8 @ =0x0202C590
- strb r4, [r0]
-_08004074:
- ldr r0, _080040CC @ =0x0202BEC4
- movs r1, #0
- strb r1, [r0]
- ldr r0, _080040D0 @ =0x0202BEFC
- strb r1, [r0]
- ldr r0, _080040D4 @ =0x0201B120
- movs r1, #0
- strh r1, [r0]
- ldr r0, _080040D8 @ =0x02002830
- strb r1, [r0]
- ldr r0, _080040DC @ =0x02002831
- strb r1, [r0]
- ldr r0, _080040E0 @ =0x0202C794
- strb r1, [r0]
- ldr r0, _080040E4 @ =0x0201C1B4
- strb r1, [r0]
- ldr r0, _080040E8 @ =0x0202C5AC
- strb r1, [r0]
- ldr r0, _080040EC @ =0x02019C28
- strb r1, [r0]
- ldr r5, _080040F0 @ =0x0202A1C0
- ldr r4, _080040F4 @ =0x0202A574
- adds r3, r5, #0
- ldr r2, _080040F8 @ =0x0202A390
- movs r1, #0xe0
-_080040A6:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, #2
- adds r2, #2
- subs r1, #1
- cmp r1, #0
- bge _080040A6
- adds r1, r5, #0
- movs r2, #0xcc
- lsls r2, r2, #1
- adds r0, r1, r2
- movs r2, #0
- ldrsh r0, [r0, r2]
- cmp r0, #0
- beq _080040FC
- movs r0, #0xcd
- b _08004146
- .align 2, 0
-_080040C8: .4byte 0x0202C590
-_080040CC: .4byte 0x0202BEC4
-_080040D0: .4byte 0x0202BEFC
-_080040D4: .4byte 0x0201B120
-_080040D8: .4byte 0x02002830
-_080040DC: .4byte 0x02002831
-_080040E0: .4byte 0x0202C794
-_080040E4: .4byte 0x0201C1B4
-_080040E8: .4byte 0x0202C5AC
-_080040EC: .4byte 0x02019C28
-_080040F0: .4byte 0x0202A1C0
-_080040F4: .4byte 0x0202A574
-_080040F8: .4byte 0x0202A390
-_080040FC:
- movs r2, #0xcb
- lsls r2, r2, #1
- adds r0, r1, r2
- movs r2, #0
- ldrsh r0, [r0, r2]
- cmp r0, #0
- beq _0800410E
- movs r0, #0xcc
- b _08004146
-_0800410E:
- movs r2, #0xca
- lsls r2, r2, #1
- adds r0, r1, r2
- movs r2, #0
- ldrsh r0, [r0, r2]
- cmp r0, #0
- beq _08004120
- movs r0, #0xcb
- b _08004146
-_08004120:
- movs r2, #0xc9
- lsls r2, r2, #1
- adds r0, r1, r2
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0
- beq _08004132
- movs r0, #0xca
- b _08004146
-_08004132:
- movs r2, #0xc8
- lsls r2, r2, #1
- adds r0, r5, r2
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0
- beq _08004144
- movs r0, #0xc9
- b _08004146
-_08004144:
- movs r0, #0xc8
-_08004146:
- strh r0, [r4]
- pop {r4, r5}
- pop {r0}
- bx r0
-
- thumb_func_start sub_4150
-sub_4150: @ 0x08004150
- push {r4, r5, r6, r7, lr}
- ldr r4, _08004174 @ =0x0200B0C0
- ldrh r2, [r4, #0x1c]
- movs r0, #4
- ands r0, r2
- cmp r0, #0
- beq _08004230
- ldr r1, _08004178 @ =0x0202BF04
- movs r0, #0
- strb r0, [r1]
- movs r0, #0x40
- ands r0, r2
- cmp r0, #0
- beq _0800417C
- bl sub_4D74
- b _080041A8
- .align 2, 0
-_08004174: .4byte 0x0200B0C0
-_08004178: .4byte 0x0202BF04
-_0800417C:
- movs r0, #0x80
- ands r0, r2
- cmp r0, #0
- beq _0800418A
- bl sub_4E34
- b _080041A8
-_0800418A:
- movs r0, #0x20
- ands r0, r2
- cmp r0, #0
- beq _08004198
- bl sub_4EF0
- b _080041A8
-_08004198:
- movs r0, #0x10
- ands r0, r2
- lsls r0, r0, #0x10
- lsrs r1, r0, #0x10
- cmp r1, #0
- beq _080041B6
- bl sub_4F50
-_080041A8:
- bl sub_5064
- bl sub_51CC
- movs r0, #2
- strb r0, [r4, #3]
- b _080041BE
-_080041B6:
- ldr r0, _08004200 @ =0x02019C24
- strb r1, [r0]
- bl sub_5064
-_080041BE:
- ldr r3, _08004204 @ =0x0200B0C0
- ldrh r1, [r3, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- bne _080041CC
- b _08004388
-_080041CC:
- ldr r0, _08004208 @ =0x0202C5E8
- movs r2, #0
- strh r2, [r0]
- ldr r1, _0800420C @ =0x0202A1C0
- ldr r0, _08004210 @ =0x0202ADE0
- movs r4, #0
- ldrsh r0, [r0, r4]
- lsls r0, r0, #1
- adds r0, r0, r1
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #1
- ble _08004228
- ldr r0, _08004214 @ =0x0202BF04
- strb r2, [r0]
- ldr r1, _08004218 @ =0x040000D4
- ldr r0, _0800421C @ =0x06000280
- str r0, [r1]
- ldr r0, _08004220 @ =0x0202A590
- str r0, [r1, #4]
- ldr r0, _08004224 @ =0x80000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r0, #3
- strb r0, [r3, #3]
- b _08004388
- .align 2, 0
-_08004200: .4byte 0x02019C24
-_08004204: .4byte 0x0200B0C0
-_08004208: .4byte 0x0202C5E8
-_0800420C: .4byte 0x0202A1C0
-_08004210: .4byte 0x0202ADE0
-_08004214: .4byte 0x0202BF04
-_08004218: .4byte 0x040000D4
-_0800421C: .4byte 0x06000280
-_08004220: .4byte 0x0202A590
-_08004224: .4byte 0x80000100
-_08004228:
- movs r0, #0x8a
- bl m4aSongNumStart
- b _08004388
-_08004230:
- ldr r1, _08004248 @ =0x0202BF04
- movs r0, #1
- strb r0, [r1]
- movs r0, #0x40
- ands r0, r2
- cmp r0, #0
- beq _0800424C
- bl sub_4D74
- bl sub_5174
- b _0800428A
- .align 2, 0
-_08004248: .4byte 0x0202BF04
-_0800424C:
- movs r0, #0x80
- ands r0, r2
- cmp r0, #0
- beq _0800425E
- bl sub_4E34
- bl sub_5174
- b _0800428A
-_0800425E:
- movs r0, #0x20
- ands r0, r2
- cmp r0, #0
- beq _08004270
- bl sub_4EF0
- bl sub_5174
- b _0800428A
-_08004270:
- movs r0, #0x10
- ands r0, r2
- lsls r0, r0, #0x10
- lsrs r1, r0, #0x10
- cmp r1, #0
- beq _08004286
- bl sub_4F50
- bl sub_5174
- b _0800428A
-_08004286:
- ldr r0, _080042A4 @ =0x02019C24
- strb r1, [r0]
-_0800428A:
- ldr r0, _080042A8 @ =0x0202ADE0
- movs r2, #0
- ldrsh r0, [r0, r2]
- bl sub_8A78
- lsls r0, r0, #0x10
- asrs r1, r0, #0x10
- cmp r1, #1
- bne _080042B0
- ldr r0, _080042AC @ =0x0202A588
- strh r1, [r0]
- b _080042B6
- .align 2, 0
-_080042A4: .4byte 0x02019C24
-_080042A8: .4byte 0x0202ADE0
-_080042AC: .4byte 0x0202A588
-_080042B0:
- ldr r1, _0800430C @ =0x0202A588
- movs r0, #0
- strh r0, [r1]
-_080042B6:
- ldr r0, _08004310 @ =0x0202A55C
- movs r7, #1
- strh r7, [r0]
- ldr r0, _08004314 @ =0x0202A568
- movs r6, #0
- movs r2, #0
- strh r2, [r0]
- strh r2, [r0, #2]
- ldr r0, _08004318 @ =0x0201A440
- strh r2, [r0]
- ldr r0, _0800431C @ =0x0202BF0C
- strh r2, [r0]
- ldr r5, _08004320 @ =0x0200B0C0
- ldrh r1, [r5, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800434C
- ldr r0, _08004324 @ =0x0202C5E8
- strh r2, [r0]
- ldr r1, _08004328 @ =0x0202A1C0
- ldr r0, _0800432C @ =0x0202ADE0
- movs r3, #0
- ldrsh r0, [r0, r3]
- lsls r0, r0, #1
- adds r0, r0, r1
- movs r4, #0
- ldrsh r0, [r0, r4]
- cmp r0, #1
- ble _08004344
- ldr r0, _08004330 @ =0x0202BF04
- strb r6, [r0]
- ldr r1, _08004334 @ =0x040000D4
- ldr r0, _08004338 @ =0x06000280
- str r0, [r1]
- ldr r0, _0800433C @ =0x0202A590
- str r0, [r1, #4]
- ldr r0, _08004340 @ =0x80000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r0, #3
- b _08004382
- .align 2, 0
-_0800430C: .4byte 0x0202A588
-_08004310: .4byte 0x0202A55C
-_08004314: .4byte 0x0202A568
-_08004318: .4byte 0x0201A440
-_0800431C: .4byte 0x0202BF0C
-_08004320: .4byte 0x0200B0C0
-_08004324: .4byte 0x0202C5E8
-_08004328: .4byte 0x0202A1C0
-_0800432C: .4byte 0x0202ADE0
-_08004330: .4byte 0x0202BF04
-_08004334: .4byte 0x040000D4
-_08004338: .4byte 0x06000280
-_0800433C: .4byte 0x0202A590
-_08004340: .4byte 0x80000100
-_08004344:
- movs r0, #0x8a
- bl m4aSongNumStart
- b _08004384
-_0800434C:
- movs r0, #2
- ands r0, r1
- lsls r0, r0, #0x10
- lsrs r4, r0, #0x10
- cmp r4, #0
- beq _08004362
- movs r0, #0x66
- bl m4aSongNumStart
- movs r0, #0xc
- b _08004382
-_08004362:
- movs r0, #8
- ands r0, r1
- cmp r0, #0
- beq _08004384
- movs r0, #0x68
- bl m4aSongNumStart
- ldr r0, _080043B4 @ =0x0202BEC4
- strb r7, [r0]
- ldr r0, _080043B8 @ =0x0202BEFC
- strb r6, [r0]
- ldr r0, _080043BC @ =0x0202BF04
- strb r6, [r0]
- ldr r0, _080043C0 @ =0x0202A588
- strh r4, [r0]
- movs r0, #6
-_08004382:
- strb r0, [r5, #3]
-_08004384:
- bl sub_4FC8
-_08004388:
- ldr r1, _080043C4 @ =0x0202C58C
- ldrh r2, [r1]
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #0
- ble _08004398
- subs r0, r2, #1
- strh r0, [r1]
-_08004398:
- bl sub_51FC
- ldr r1, _080043C8 @ =0x040000D4
- ldr r0, _080043CC @ =0x03005C00
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _080043D0 @ =0x80000400
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080043B4: .4byte 0x0202BEC4
-_080043B8: .4byte 0x0202BEFC
-_080043BC: .4byte 0x0202BF04
-_080043C0: .4byte 0x0202A588
-_080043C4: .4byte 0x0202C58C
-_080043C8: .4byte 0x040000D4
-_080043CC: .4byte 0x03005C00
-_080043D0: .4byte 0x80000400
-
- thumb_func_start sub_43D4
-sub_43D4: @ 0x080043D4
- push {lr}
- bl sub_5174
- ldr r0, _08004410 @ =0x0202A588
- movs r1, #0
- strh r1, [r0]
- ldr r1, _08004414 @ =0x0202C58C
- ldrh r2, [r1]
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #0
- ble _080043F0
- subs r0, r2, #1
- strh r0, [r1]
-_080043F0:
- bl sub_51FC
- ldr r1, _08004418 @ =0x040000D4
- ldr r0, _0800441C @ =0x03005C00
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _08004420 @ =0x80000400
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldr r1, _08004424 @ =0x0200B0C0
- movs r0, #1
- strb r0, [r1, #3]
- pop {r0}
- bx r0
- .align 2, 0
-_08004410: .4byte 0x0202A588
-_08004414: .4byte 0x0202C58C
-_08004418: .4byte 0x040000D4
-_0800441C: .4byte 0x03005C00
-_08004420: .4byte 0x80000400
-_08004424: .4byte 0x0200B0C0
-
- thumb_func_start sub_4428
-sub_4428: @ 0x08004428
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- movs r3, #0
- ldr r7, _08004548 @ =0x0202A558
- ldr r0, _0800454C @ =0x02019C40
- mov ip, r0
- ldr r1, _08004550 @ =0x0805C780
- mov sl, r1
- ldr r6, _08004554 @ =0x0805C7C0
- mov sb, r6
- ldr r0, _08004558 @ =0x03005C00
- mov r8, r0
- adds r5, r7, #0
- ldr r4, _0800455C @ =0x0805C840
-_0800444A:
- movs r1, #0
- ldrsh r0, [r5, r1]
- adds r0, #0xa
- lsls r0, r0, #5
- adds r0, r0, r3
- lsls r0, r0, #1
- add r0, r8
- lsls r2, r3, #1
- ldrh r1, [r4]
- strh r1, [r0]
- movs r6, #0
- ldrsh r0, [r5, r6]
- adds r0, #9
- lsls r0, r0, #5
- adds r0, r0, r3
- lsls r0, r0, #1
- ldr r1, _0800454C @ =0x02019C40
- adds r0, r0, r1
- mov r6, sl
- adds r1, r2, r6
- ldrh r1, [r1]
- strh r1, [r0]
- movs r1, #0
- ldrsh r0, [r5, r1]
- adds r0, #0xa
- lsls r0, r0, #5
- adds r0, r0, r3
- lsls r0, r0, #1
- ldr r6, _0800454C @ =0x02019C40
- adds r0, r0, r6
- add r2, sb
- ldrh r1, [r2]
- strh r1, [r0]
- adds r4, #2
- adds r3, #1
- cmp r3, #0x1f
- ble _0800444A
- ldrh r0, [r7]
- adds r0, #1
- strh r0, [r7]
- movs r1, #0x9a
- lsls r1, r1, #2
- add r1, ip
- movs r4, #0
- movs r3, #0
- movs r0, #0x59
- strh r0, [r1]
- ldr r2, _08004560 @ =0x040000D4
- ldr r0, _08004558 @ =0x03005C00
- str r0, [r2]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r2, #4]
- ldr r1, _08004564 @ =0x80000400
- str r1, [r2, #8]
- ldr r0, [r2, #8]
- mov r6, ip
- str r6, [r2]
- ldr r0, _08004568 @ =0x06000800
- str r0, [r2, #4]
- str r1, [r2, #8]
- ldr r0, [r2, #8]
- movs r1, #0
- ldrsh r0, [r7, r1]
- cmp r0, #7
- ble _08004538
- strh r3, [r7]
- ldr r0, _0800456C @ =0x0202C5E8
- strh r3, [r0]
- ldr r0, _08004570 @ =0x0202BEF4
- strh r3, [r0]
- ldr r0, _08004574 @ =0x02019C28
- strb r4, [r0]
- ldr r0, _08004578 @ =0x0202C5AC
- strb r4, [r0]
- ldr r4, _0800457C @ =0x0202ADE0
- movs r6, #0
- ldrsh r0, [r4, r6]
- cmp r0, #0xc8
- bgt _080044F0
- ldr r1, _08004580 @ =0x0201C1B4
- movs r0, #1
- strb r0, [r1]
-_080044F0:
- ldr r0, _08004584 @ =0x08086B40
- str r0, [r2]
- ldr r0, _08004588 @ =0x06000280
- str r0, [r2, #4]
- ldr r0, _0800458C @ =0x800000E0
- str r0, [r2, #8]
- ldr r0, [r2, #8]
- movs r1, #0
- ldrsh r0, [r4, r1]
- ldr r1, _08004590 @ =0x0202C794
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- bl sub_70E0
- ldr r0, _08004594 @ =0x02032EE0
- ldr r1, _08004598 @ =0x0000FFFF
- movs r2, #0x40
- bl m4aMPlayVolumeControl
- ldr r2, _0800459C @ =0x086A3700
- movs r6, #0
- ldrsh r1, [r4, r6]
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r0, r0, r2
- ldrh r0, [r0]
- movs r1, #0
- movs r2, #0x7f
- movs r3, #0xa
- bl sub_5291C
- ldr r1, _080045A0 @ =0x0200B0C0
- movs r0, #5
- strb r0, [r1, #3]
-_08004538:
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08004548: .4byte 0x0202A558
-_0800454C: .4byte 0x02019C40
-_08004550: .4byte 0x0805C780
-_08004554: .4byte 0x0805C7C0
-_08004558: .4byte 0x03005C00
-_0800455C: .4byte 0x0805C840
-_08004560: .4byte 0x040000D4
-_08004564: .4byte 0x80000400
-_08004568: .4byte 0x06000800
-_0800456C: .4byte 0x0202C5E8
-_08004570: .4byte 0x0202BEF4
-_08004574: .4byte 0x02019C28
-_08004578: .4byte 0x0202C5AC
-_0800457C: .4byte 0x0202ADE0
-_08004580: .4byte 0x0201C1B4
-_08004584: .4byte 0x08086B40
-_08004588: .4byte 0x06000280
-_0800458C: .4byte 0x800000E0
-_08004590: .4byte 0x0202C794
-_08004594: .4byte 0x02032EE0
-_08004598: .4byte 0x0000FFFF
-_0800459C: .4byte 0x086A3700
-_080045A0: .4byte 0x0200B0C0
-
- thumb_func_start sub_45A4
-sub_45A4: @ 0x080045A4
- push {r4, r5, r6, lr}
- ldr r1, _08004620 @ =0x0202C5E8
- ldrh r2, [r1]
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #0x50
- bgt _080045CA
- adds r0, r2, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x50
- bne _080045CA
- ldr r0, _08004624 @ =0x02032EE0
- ldr r1, _08004628 @ =0x0000FFFF
- movs r2, #0x80
- lsls r2, r2, #1
- bl m4aMPlayVolumeControl
-_080045CA:
- ldr r1, _0800462C @ =0x0202BEF4
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x1e
- ble _080045E8
- movs r0, #0
- strh r0, [r1]
- ldr r2, _08004630 @ =0x0202C5AC
- ldrb r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r2]
-_080045E8:
- ldr r0, _08004634 @ =0x0202BE20
- movs r6, #0
- strh r6, [r0]
- ldr r0, _08004638 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x40
- ands r0, r1
- cmp r0, #0
- beq _08004644
- ldr r5, _0800463C @ =0x0202ADE0
- movs r1, #0
- ldrsh r0, [r5, r1]
- cmp r0, #0xc8
- bgt _0800467A
- ldr r4, _08004640 @ =0x0202C794
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #1
- bne _0800467A
- movs r0, #0x6d
- bl m4aSongNumStart
- strb r6, [r4]
- movs r2, #0
- ldrsh r0, [r5, r2]
- movs r1, #0
- b _08004670
- .align 2, 0
-_08004620: .4byte 0x0202C5E8
-_08004624: .4byte 0x02032EE0
-_08004628: .4byte 0x0000FFFF
-_0800462C: .4byte 0x0202BEF4
-_08004630: .4byte 0x0202C5AC
-_08004634: .4byte 0x0202BE20
-_08004638: .4byte 0x0200B0C0
-_0800463C: .4byte 0x0202ADE0
-_08004640: .4byte 0x0202C794
-_08004644:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0800467A
- ldr r5, _080046BC @ =0x0202ADE0
- movs r3, #0
- ldrsh r0, [r5, r3]
- cmp r0, #0xc8
- bgt _0800467A
- ldr r4, _080046C0 @ =0x0202C794
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _0800467A
- movs r0, #0x6d
- bl m4aSongNumStart
- movs r0, #1
- strb r0, [r4]
- movs r1, #0
- ldrsh r0, [r5, r1]
- movs r1, #1
-_08004670:
- bl sub_70E0
- ldr r1, _080046C4 @ =0x02019C28
- ldrb r0, [r4]
- strb r0, [r1]
-_0800467A:
- ldr r6, _080046C8 @ =0x0200B0C0
- ldrh r1, [r6, #0x18]
- movs r4, #1
- ands r4, r1
- cmp r4, #0
- beq _08004700
- ldr r5, _080046BC @ =0x0202ADE0
- movs r2, #0
- ldrsh r0, [r5, r2]
- cmp r0, #0xc8
- bgt _08004730
- ldr r4, _080046C0 @ =0x0202C794
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _080046CC
- movs r0, #0x6d
- bl m4aSongNumStart
- ldrb r1, [r4]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r4]
- movs r3, #0
- ldrsh r0, [r5, r3]
- movs r1, #0
- ldrsb r1, [r4, r1]
- bl sub_70E0
- ldr r1, _080046C4 @ =0x02019C28
- ldrb r0, [r4]
- strb r0, [r1]
- b _08004730
- .align 2, 0
-_080046BC: .4byte 0x0202ADE0
-_080046C0: .4byte 0x0202C794
-_080046C4: .4byte 0x02019C28
-_080046C8: .4byte 0x0200B0C0
-_080046CC:
- movs r0, #0x69
- bl m4aSongNumStart
- ldr r0, _080046F0 @ =0x02032EE0
- ldr r1, _080046F4 @ =0x0000FFFF
- movs r2, #0x80
- lsls r2, r2, #1
- bl m4aMPlayVolumeControl
- movs r0, #0
- strb r0, [r4]
- ldr r0, _080046F8 @ =0x0202C5E8
- movs r1, #0
- strh r1, [r0]
- ldr r0, _080046FC @ =0x0202BEF4
- strh r1, [r0]
- b _08004728
- .align 2, 0
-_080046F0: .4byte 0x02032EE0
-_080046F4: .4byte 0x0000FFFF
-_080046F8: .4byte 0x0202C5E8
-_080046FC: .4byte 0x0202BEF4
-_08004700:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08004730
- movs r0, #0x69
- bl m4aSongNumStart
- ldr r0, _0800476C @ =0x02032EE0
- ldr r1, _08004770 @ =0x0000FFFF
- movs r2, #0x80
- lsls r2, r2, #1
- bl m4aMPlayVolumeControl
- ldr r0, _08004774 @ =0x0202C794
- strb r4, [r0]
- ldr r0, _08004778 @ =0x0202C5E8
- movs r1, #0
- strh r4, [r0]
- ldr r0, _0800477C @ =0x0202BEF4
- strh r4, [r0]
-_08004728:
- ldr r0, _08004780 @ =0x0201C1B4
- strb r1, [r0]
- movs r0, #4
- strb r0, [r6, #3]
-_08004730:
- ldr r0, _08004784 @ =0x0200B0C0
- ldrh r1, [r0, #0x1c]
- movs r0, #4
- ands r0, r1
- lsls r0, r0, #0x10
- lsrs r4, r0, #0x10
- cmp r4, #0
- beq _08004808
- ldr r1, _08004788 @ =0x0202A1C0
- ldr r0, _0800478C @ =0x0202ADE0
- movs r2, #0
- ldrsh r0, [r0, r2]
- lsls r2, r0, #1
- adds r1, r2, r1
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #4
- bne _080047E4
- ldr r0, _08004790 @ =0x086A61BC
- adds r0, r2, r0
- movs r2, #0
- ldrsh r1, [r0, r2]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _08004798
- ldr r1, _08004794 @ =0x0202A588
- movs r0, #0
- strh r0, [r1]
- b _0800482C
- .align 2, 0
-_0800476C: .4byte 0x02032EE0
-_08004770: .4byte 0x0000FFFF
-_08004774: .4byte 0x0202C794
-_08004778: .4byte 0x0202C5E8
-_0800477C: .4byte 0x0202BEF4
-_08004780: .4byte 0x0201C1B4
-_08004784: .4byte 0x0200B0C0
-_08004788: .4byte 0x0202A1C0
-_0800478C: .4byte 0x0202ADE0
-_08004790: .4byte 0x086A61BC
-_08004794: .4byte 0x0202A588
-_08004798:
- cmp r1, #0x63
- bgt _080047C0
- ldr r0, _080047B4 @ =0x0202A588
- movs r1, #0
- strh r1, [r0]
- ldr r0, _080047B8 @ =0x0202A55C
- strh r1, [r0]
- ldr r1, _080047BC @ =0x0202A568
- movs r2, #0
- movs r0, #1
- strh r0, [r1]
- strh r2, [r1, #2]
- b _08004842
- .align 2, 0
-_080047B4: .4byte 0x0202A588
-_080047B8: .4byte 0x0202A55C
-_080047BC: .4byte 0x0202A568
-_080047C0:
- ldr r0, _080047D8 @ =0x0202A588
- movs r1, #0
- strh r1, [r0]
- ldr r0, _080047DC @ =0x0202A55C
- strh r1, [r0]
- ldr r1, _080047E0 @ =0x0202A568
- movs r0, #0
- strh r0, [r1]
- movs r0, #1
- strh r0, [r1, #2]
- b _08004842
- .align 2, 0
-_080047D8: .4byte 0x0202A588
-_080047DC: .4byte 0x0202A55C
-_080047E0: .4byte 0x0202A568
-_080047E4:
- ldr r1, _080047FC @ =0x0202A588
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08004800 @ =0x0202A55C
- movs r0, #1
- strh r0, [r1]
- ldr r1, _08004804 @ =0x0202A568
- movs r0, #0
- strh r0, [r1]
- strh r0, [r1, #2]
- b _08004842
- .align 2, 0
-_080047FC: .4byte 0x0202A588
-_08004800: .4byte 0x0202A55C
-_08004804: .4byte 0x0202A568
-_08004808:
- ldr r0, _08004820 @ =0x0202ADE0
- movs r3, #0
- ldrsh r0, [r0, r3]
- bl sub_8A78
- lsls r0, r0, #0x10
- asrs r1, r0, #0x10
- cmp r1, #1
- bne _08004828
- ldr r0, _08004824 @ =0x0202A588
- strh r1, [r0]
- b _0800482C
- .align 2, 0
-_08004820: .4byte 0x0202ADE0
-_08004824: .4byte 0x0202A588
-_08004828:
- ldr r0, _0800484C @ =0x0202A588
- strh r4, [r0]
-_0800482C:
- ldr r1, _08004850 @ =0x0202A55C
- movs r0, #1
- strh r0, [r1]
- ldr r0, _08004854 @ =0x0202A568
- movs r1, #0
- strh r1, [r0]
- strh r1, [r0, #2]
- ldr r0, _08004858 @ =0x0201A440
- strh r1, [r0]
- ldr r0, _0800485C @ =0x0202BF0C
- strh r1, [r0]
-_08004842:
- bl sub_51FC
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800484C: .4byte 0x0202A588
-_08004850: .4byte 0x0202A55C
-_08004854: .4byte 0x0202A568
-_08004858: .4byte 0x0201A440
-_0800485C: .4byte 0x0202BF0C
-
- thumb_func_start sub_4860
-sub_4860: @ 0x08004860
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- movs r3, #0
- ldr r0, _0800496C @ =0x02019C40
- mov r8, r0
- ldr r7, _08004970 @ =0x0202A558
- ldr r1, _08004974 @ =0x0805C800
- mov sb, r1
- ldr r0, _08004978 @ =0x03005C00
- mov sl, r0
- mov r6, r8
- adds r5, r7, #0
- ldr r4, _0800497C @ =0x0805C7C0
- movs r1, #0x11
- mov ip, r1
-_08004886:
- movs r1, #0
- ldrsh r0, [r5, r1]
- mov r1, ip
- subs r0, r1, r0
- lsls r0, r0, #5
- adds r0, r0, r3
- lsls r0, r0, #1
- adds r0, r0, r6
- lsls r2, r3, #1
- ldrh r1, [r4]
- strh r1, [r0]
- movs r0, #0
- ldrsh r1, [r5, r0]
- movs r0, #0x12
- subs r0, r0, r1
- lsls r0, r0, #5
- adds r0, r0, r3
- lsls r0, r0, #1
- adds r0, r0, r6
- add r2, sb
- ldrh r1, [r2]
- strh r1, [r0]
- adds r4, #2
- adds r3, #1
- cmp r3, #0x1f
- ble _08004886
- movs r1, #0
- ldrsh r0, [r7, r1]
- cmp r0, #7
- bgt _080048F2
- movs r3, #0
- ldr r0, _08004978 @ =0x03005C00
- mov ip, r0
- adds r6, r7, #0
- ldr r5, _08004980 @ =0x0202A590
- movs r4, #0x11
- movs r2, #7
-_080048D0:
- movs r1, #0
- ldrsh r0, [r6, r1]
- subs r1, r4, r0
- lsls r1, r1, #5
- adds r1, r1, r3
- lsls r1, r1, #1
- add r1, ip
- subs r0, r2, r0
- lsls r0, r0, #5
- adds r0, r0, r3
- lsls r0, r0, #1
- adds r0, r0, r5
- ldrh r0, [r0]
- strh r0, [r1]
- adds r3, #1
- cmp r3, #0x1f
- ble _080048D0
-_080048F2:
- ldrh r0, [r7]
- adds r0, #1
- strh r0, [r7]
- movs r1, #0x9a
- lsls r1, r1, #2
- add r1, r8
- movs r3, #0
- movs r0, #0x59
- strh r0, [r1]
- ldr r2, _08004984 @ =0x040000D4
- mov r0, r8
- str r0, [r2]
- ldr r0, _08004988 @ =0x06000800
- str r0, [r2, #4]
- ldr r1, _0800498C @ =0x80000400
- str r1, [r2, #8]
- ldr r0, [r2, #8]
- mov r0, sl
- str r0, [r2]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r2, #4]
- str r1, [r2, #8]
- ldr r0, [r2, #8]
- movs r1, #0
- ldrsh r0, [r7, r1]
- cmp r0, #8
- ble _0800495A
- strh r3, [r7]
- ldr r0, _08004990 @ =0x0202A588
- strh r3, [r0]
- ldr r1, _08004994 @ =0x0202BF04
- movs r0, #1
- strb r0, [r1]
- mov r0, sp
- strh r3, [r0]
- str r0, [r2]
- ldr r0, _08004998 @ =0x03000000
- str r0, [r2, #4]
- ldr r1, _0800499C @ =0x81000C00
- str r1, [r2, #8]
- ldr r0, [r2, #8]
- mov r0, sp
- strh r3, [r0]
- str r0, [r2]
- ldr r0, _080049A0 @ =0x06005C00
- str r0, [r2, #4]
- str r1, [r2, #8]
- ldr r0, [r2, #8]
- ldr r1, _080049A4 @ =0x0200B0C0
- movs r0, #1
- strb r0, [r1, #3]
-_0800495A:
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800496C: .4byte 0x02019C40
-_08004970: .4byte 0x0202A558
-_08004974: .4byte 0x0805C800
-_08004978: .4byte 0x03005C00
-_0800497C: .4byte 0x0805C7C0
-_08004980: .4byte 0x0202A590
-_08004984: .4byte 0x040000D4
-_08004988: .4byte 0x06000800
-_0800498C: .4byte 0x80000400
-_08004990: .4byte 0x0202A588
-_08004994: .4byte 0x0202BF04
-_08004998: .4byte 0x03000000
-_0800499C: .4byte 0x81000C00
-_080049A0: .4byte 0x06005C00
-_080049A4: .4byte 0x0200B0C0
-
- thumb_func_start sub_49A8
-sub_49A8: @ 0x080049A8
- push {lr}
- bl sub_19B4
- bl sub_5E60
- ldr r1, _080049C8 @ =0x0201B124
- movs r0, #0
- strb r0, [r1]
- bl sub_599C
- ldr r1, _080049CC @ =0x0200B0C0
- movs r0, #7
- strb r0, [r1, #3]
- pop {r0}
- bx r0
- .align 2, 0
-_080049C8: .4byte 0x0201B124
-_080049CC: .4byte 0x0200B0C0
-
- thumb_func_start sub_49D0
-sub_49D0: @ 0x080049D0
- push {r4, r5, lr}
- bl sub_599C
- ldr r5, _08004A08 @ =0x0200B0C0
- ldrh r1, [r5, #0x18]
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08004A1C
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r0, _08004A0C @ =0x0202BEC4
- movs r1, #0
- strb r1, [r0]
- ldr r0, _08004A10 @ =0x0202BEFC
- strb r1, [r0]
- ldr r1, _08004A14 @ =0x0202BF04
- movs r0, #1
- strb r0, [r1]
- ldr r0, _08004A18 @ =0x0202A588
- movs r4, #1
- strh r4, [r0]
- bl sub_2568
- strb r4, [r5, #3]
- b _08004AF2
- .align 2, 0
-_08004A08: .4byte 0x0200B0C0
-_08004A0C: .4byte 0x0202BEC4
-_08004A10: .4byte 0x0202BEFC
-_08004A14: .4byte 0x0202BF04
-_08004A18: .4byte 0x0202A588
-_08004A1C:
- ldr r4, _08004A7C @ =0x0202ADD0
- ldr r0, _08004A80 @ =0x0202BEC8
- ldr r1, _08004A84 @ =0x0202C5F0
- ldr r2, _08004A88 @ =0x0201A4D0
- bl sub_1B04
- str r0, [r4]
- ldr r1, _08004A8C @ =0x0202BDF0
- movs r3, #3
- ands r3, r0
- str r3, [r1]
- ldr r2, _08004A90 @ =0x0201C1AC
- movs r1, #0x1c
- ands r1, r0
- lsrs r1, r1, #2
- strb r1, [r2]
- ldr r2, _08004A94 @ =0x0202ADDC
- movs r1, #0xe0
- lsls r1, r1, #4
- ands r1, r0
- lsrs r1, r1, #9
- strb r1, [r2]
- movs r1, #0x40
- ands r1, r0
- cmp r1, #0
- beq _08004AF2
- cmp r3, #1
- bhi _08004AF2
- bl sub_5EC8
- ldr r0, [r4]
- movs r1, #0x80
- lsls r1, r1, #1
- ands r0, r1
- cmp r0, #0
- bne _08004AAC
- bl sub_5EA4
- lsls r0, r0, #0x10
- asrs r1, r0, #0x10
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _08004A98
- movs r0, #9
- strb r0, [r5, #3]
- b _08004AAC
- .align 2, 0
-_08004A7C: .4byte 0x0202ADD0
-_08004A80: .4byte 0x0202BEC8
-_08004A84: .4byte 0x0202C5F0
-_08004A88: .4byte 0x0201A4D0
-_08004A8C: .4byte 0x0202BDF0
-_08004A90: .4byte 0x0201C1AC
-_08004A94: .4byte 0x0202ADDC
-_08004A98:
- cmp r1, #1
- bne _08004AAC
- ldr r0, _08004AF8 @ =0x0202BEFC
- movs r1, #2
- strb r1, [r0]
- movs r0, #8
- strb r0, [r5, #3]
- movs r0, #0x8a
- bl m4aSongNumStart
-_08004AAC:
- ldr r1, _08004AFC @ =0x0201A510
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- ldr r0, _08004B00 @ =0x0202ADD0
- ldr r0, [r0]
- movs r1, #0xfe
- lsls r1, r1, #0xf
- ands r0, r1
- cmp r0, #0
- beq _08004AF2
- ldr r0, _08004B04 @ =0x0201B128
- movs r1, #0
- ldrsb r1, [r0, r1]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _08004AF2
- ldr r1, _08004B08 @ =0x0201A444
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xb4
- ble _08004AF2
- ldr r1, _08004AF8 @ =0x0202BEFC
- movs r0, #2
- strb r0, [r1]
- ldr r1, _08004B0C @ =0x0200B0C0
- movs r0, #8
- strb r0, [r1, #3]
- movs r0, #0x8a
- bl m4aSongNumStart
-_08004AF2:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08004AF8: .4byte 0x0202BEFC
-_08004AFC: .4byte 0x0201A510
-_08004B00: .4byte 0x0202ADD0
-_08004B04: .4byte 0x0201B128
-_08004B08: .4byte 0x0201A444
-_08004B0C: .4byte 0x0200B0C0
-
- thumb_func_start sub_4B10
-sub_4B10: @ 0x08004B10
- ldr r1, _08004B2C @ =0x0201A444
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _08004B2A
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08004B30 @ =0x0200B0C0
- movs r0, #6
- strb r0, [r1, #3]
-_08004B2A:
- bx lr
- .align 2, 0
-_08004B2C: .4byte 0x0201A444
-_08004B30: .4byte 0x0200B0C0
-
- thumb_func_start sub_4B34
-sub_4B34: @ 0x08004B34
- push {lr}
- bl sub_599C
- ldr r2, _08004B94 @ =0x0201B120
- ldrh r0, [r2]
- adds r0, #1
- strh r0, [r2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x5a
- ble _08004B90
- movs r1, #0
- strh r1, [r2]
- ldr r0, _08004B98 @ =0x0202BEC4
- strb r1, [r0]
- ldr r0, _08004B9C @ =0x0202BEFC
- strb r1, [r0]
- ldr r1, _08004BA0 @ =0x0202BF04
- movs r0, #1
- strb r0, [r1]
- ldr r1, _08004BA4 @ =0x0202A588
- movs r0, #1
- strh r0, [r1]
- bl sub_2568
- bl sub_1AA4
- ldr r3, _08004BA8 @ =0x0202A1C0
- ldr r2, _08004BAC @ =0x0202A390
- movs r1, #0xe0
-_08004B70:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, #2
- adds r2, #2
- subs r1, #1
- cmp r1, #0
- bge _08004B70
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08004BB0 @ =0x0200B0C0
- movs r0, #0
- strb r0, [r1, #3]
-_08004B90:
- pop {r0}
- bx r0
- .align 2, 0
-_08004B94: .4byte 0x0201B120
-_08004B98: .4byte 0x0202BEC4
-_08004B9C: .4byte 0x0202BEFC
-_08004BA0: .4byte 0x0202BF04
-_08004BA4: .4byte 0x0202A588
-_08004BA8: .4byte 0x0202A1C0
-_08004BAC: .4byte 0x0202A390
-_08004BB0: .4byte 0x0200B0C0
-
- thumb_func_start sub_4BB4
-sub_4BB4: @ 0x08004BB4
- push {r4, lr}
- bl sub_599C
- ldr r2, _08004BD0 @ =0x0201B120
- movs r1, #0
- ldrsh r0, [r2, r1]
- cmp r0, #0x82
- beq _08004BE4
- cmp r0, #0x82
- bgt _08004BD4
- cmp r0, #4
- beq _08004BDA
- b _08004C4E
- .align 2, 0
-_08004BD0: .4byte 0x0201B120
-_08004BD4:
- cmp r0, #0xfa
- beq _08004BF8
- b _08004C4E
-_08004BDA:
- bl sub_2568
- bl sub_1AA4
- b _08004C4E
-_08004BE4:
- ldr r1, _08004BF4 @ =0x0202BEFC
- movs r0, #3
- strb r0, [r1]
- movs r0, #0x65
- bl m4aSongNumStart
- b _08004C4E
- .align 2, 0
-_08004BF4: .4byte 0x0202BEFC
-_08004BF8:
- movs r1, #0
- strh r1, [r2]
- ldr r0, _08004C5C @ =0x0202BEC4
- strb r1, [r0]
- ldr r0, _08004C60 @ =0x0202BEFC
- strb r1, [r0]
- ldr r1, _08004C64 @ =0x0202BF04
- movs r0, #1
- strb r0, [r1]
- ldr r1, _08004C68 @ =0x0202A588
- movs r0, #1
- strh r0, [r1]
- ldr r3, _08004C6C @ =0x0202A390
- ldr r1, _08004C70 @ =0x0202A1C0
- movs r2, #0xe0
-_08004C16:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, #2
- adds r1, #2
- subs r2, #1
- cmp r2, #0
- bge _08004C16
- movs r2, #0
- ldr r4, _08004C74 @ =0x0200B134
- ldr r3, _08004C70 @ =0x0202A1C0
-_08004C2A:
- adds r1, r2, r4
- ldrh r0, [r3]
- strb r0, [r1]
- adds r3, #2
- adds r2, #1
- cmp r2, #0xcc
- ble _08004C2A
- bl sub_52B30
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08004C78 @ =0x0200B0C0
- movs r0, #0
- strb r0, [r1, #3]
-_08004C4E:
- ldr r1, _08004C7C @ =0x0201B120
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08004C5C: .4byte 0x0202BEC4
-_08004C60: .4byte 0x0202BEFC
-_08004C64: .4byte 0x0202BF04
-_08004C68: .4byte 0x0202A588
-_08004C6C: .4byte 0x0202A390
-_08004C70: .4byte 0x0202A1C0
-_08004C74: .4byte 0x0200B134
-_08004C78: .4byte 0x0200B0C0
-_08004C7C: .4byte 0x0201B120
-
- thumb_func_start sub_4C80
-sub_4C80: @ 0x08004C80
- push {r4, r5, r6, r7, lr}
- bl sub_51FC
- ldr r7, _08004CF8 @ =0x0200B0C0
- ldrh r1, [r7, #0x18]
- movs r6, #1
- movs r5, #1
- adds r4, r5, #0
- ands r4, r1
- cmp r4, #0
- beq _08004D18
- movs r0, #0x65
- bl m4aSongNumStart
- movs r3, #0
- ldr r1, _08004CFC @ =0x0202A1C0
- ldr r0, _08004D00 @ =0x0202A390
- movs r2, #0xe0
-_08004CA4:
- strh r3, [r0]
- strh r3, [r1]
- adds r1, #2
- adds r0, #2
- subs r2, #1
- cmp r2, #0
- bge _08004CA4
- movs r2, #0
- ldr r5, _08004D04 @ =0x0202BEC4
- ldr r6, _08004D08 @ =0x0202BEFC
- ldr r7, _08004D0C @ =0x0202BF04
- ldr r0, _08004D10 @ =0x0202A588
- mov ip, r0
- ldr r4, _08004D14 @ =0x0200B134
- ldr r3, _08004CFC @ =0x0202A1C0
-_08004CC2:
- adds r1, r2, r4
- ldrh r0, [r3]
- strb r0, [r1]
- adds r3, #2
- adds r2, #1
- cmp r2, #0xcc
- ble _08004CC2
- movs r0, #0
- strb r0, [r5]
- strb r0, [r6]
- movs r0, #1
- strb r0, [r7]
- movs r0, #1
- mov r1, ip
- strh r0, [r1]
- bl sub_52B30
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08004CF8 @ =0x0200B0C0
- movs r0, #0
- strb r0, [r1, #3]
- b _08004D38
- .align 2, 0
-_08004CF8: .4byte 0x0200B0C0
-_08004CFC: .4byte 0x0202A1C0
-_08004D00: .4byte 0x0202A390
-_08004D04: .4byte 0x0202BEC4
-_08004D08: .4byte 0x0202BEFC
-_08004D0C: .4byte 0x0202BF04
-_08004D10: .4byte 0x0202A588
-_08004D14: .4byte 0x0200B134
-_08004D18:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08004D38
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r0, _08004D40 @ =0x0202BEC4
- strb r4, [r0]
- ldr r0, _08004D44 @ =0x0202BEFC
- strb r4, [r0]
- ldr r0, _08004D48 @ =0x0202BF04
- strb r6, [r0]
- ldr r0, _08004D4C @ =0x0202A588
- strh r5, [r0]
- strb r6, [r7, #3]
-_08004D38:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08004D40: .4byte 0x0202BEC4
-_08004D44: .4byte 0x0202BEFC
-_08004D48: .4byte 0x0202BF04
-_08004D4C: .4byte 0x0202A588
-
- thumb_func_start sub_4D50
-sub_4D50: @ 0x08004D50
- push {lr}
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08004D70 @ =0x0201A4B4
- movs r0, #1
- strb r0, [r1]
- movs r0, #1
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_08004D70: .4byte 0x0201A4B4
-
- thumb_func_start sub_4D74
-sub_4D74: @ 0x08004D74
- push {r4, r5, lr}
- ldr r5, _08004DC4 @ =0x0202C58C
- movs r0, #0
- ldrsh r1, [r5, r0]
- cmp r1, #0
- bne _08004E26
- ldr r0, _08004DC8 @ =0x0201A440
- strh r1, [r0]
- ldr r0, _08004DCC @ =0x0202BF0C
- strh r1, [r0]
- ldr r4, _08004DD0 @ =0x0202A57C
- movs r1, #0
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bne _08004E08
- ldr r2, _08004DD4 @ =0x0202C5B0
- ldrh r1, [r2]
- movs r3, #0
- ldrsh r0, [r2, r3]
- cmp r0, #0
- bne _08004DE4
- ldr r0, _08004DD8 @ =0x02019C24
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _08004DF6
- ldr r0, _08004DDC @ =0x0202A574
- ldrh r0, [r0]
- subs r1, r0, #5
- strh r1, [r2]
- ldr r1, _08004DE0 @ =0x0202ADE0
- subs r0, #1
- strh r0, [r1]
- movs r0, #4
- strh r0, [r4]
- movs r0, #0x67
- bl m4aSongNumStart
- b _08004DF6
- .align 2, 0
-_08004DC4: .4byte 0x0202C58C
-_08004DC8: .4byte 0x0201A440
-_08004DCC: .4byte 0x0202BF0C
-_08004DD0: .4byte 0x0202A57C
-_08004DD4: .4byte 0x0202C5B0
-_08004DD8: .4byte 0x02019C24
-_08004DDC: .4byte 0x0202A574
-_08004DE0: .4byte 0x0202ADE0
-_08004DE4:
- subs r0, r1, #1
- strh r0, [r2]
- ldr r1, _08004E00 @ =0x0202ADE0
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- movs r0, #0x67
- bl m4aSongNumStart
-_08004DF6:
- ldr r1, _08004E04 @ =0x0202C58C
- movs r0, #9
- strh r0, [r1]
- b _08004E20
- .align 2, 0
-_08004E00: .4byte 0x0202ADE0
-_08004E04: .4byte 0x0202C58C
-_08004E08:
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4]
- subs r0, #1
- strh r0, [r4]
- ldr r1, _08004E2C @ =0x0202ADE0
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- movs r0, #9
- strh r0, [r5]
-_08004E20:
- ldr r1, _08004E30 @ =0x02019C24
- movs r0, #1
- strb r0, [r1]
-_08004E26:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08004E2C: .4byte 0x0202ADE0
-_08004E30: .4byte 0x02019C24
-
- thumb_func_start sub_4E34
-sub_4E34: @ 0x08004E34
- push {r4, r5, lr}
- ldr r5, _08004E80 @ =0x0202C58C
- movs r0, #0
- ldrsh r1, [r5, r0]
- cmp r1, #0
- bne _08004EE2
- ldr r0, _08004E84 @ =0x0201A440
- strh r1, [r0]
- ldr r0, _08004E88 @ =0x0202BF0C
- strh r1, [r0]
- ldr r4, _08004E8C @ =0x0202A57C
- movs r1, #0
- ldrsh r0, [r4, r1]
- cmp r0, #4
- bne _08004EC4
- ldr r2, _08004E90 @ =0x0202C5B0
- movs r3, #0
- ldrsh r1, [r2, r3]
- ldr r0, _08004E94 @ =0x0202A574
- movs r3, #0
- ldrsh r0, [r0, r3]
- subs r0, #5
- cmp r1, r0
- bne _08004EA0
- ldr r0, _08004E98 @ =0x02019C24
- movs r1, #0
- ldrsb r1, [r0, r1]
- cmp r1, #0
- bne _08004EB4
- strh r1, [r2]
- ldr r0, _08004E9C @ =0x0202ADE0
- strh r1, [r0]
- strh r1, [r4]
- movs r0, #0x67
- bl m4aSongNumStart
- b _08004EB4
- .align 2, 0
-_08004E80: .4byte 0x0202C58C
-_08004E84: .4byte 0x0201A440
-_08004E88: .4byte 0x0202BF0C
-_08004E8C: .4byte 0x0202A57C
-_08004E90: .4byte 0x0202C5B0
-_08004E94: .4byte 0x0202A574
-_08004E98: .4byte 0x02019C24
-_08004E9C: .4byte 0x0202ADE0
-_08004EA0:
- ldrh r0, [r2]
- adds r0, #1
- strh r0, [r2]
- ldr r1, _08004EBC @ =0x0202ADE0
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- movs r0, #0x67
- bl m4aSongNumStart
-_08004EB4:
- ldr r1, _08004EC0 @ =0x0202C58C
- movs r0, #9
- strh r0, [r1]
- b _08004EDC
- .align 2, 0
-_08004EBC: .4byte 0x0202ADE0
-_08004EC0: .4byte 0x0202C58C
-_08004EC4:
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4]
- adds r0, #1
- strh r0, [r4]
- ldr r1, _08004EE8 @ =0x0202ADE0
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- movs r0, #9
- strh r0, [r5]
-_08004EDC:
- ldr r1, _08004EEC @ =0x02019C24
- movs r0, #1
- strb r0, [r1]
-_08004EE2:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08004EE8: .4byte 0x0202ADE0
-_08004EEC: .4byte 0x02019C24
-
- thumb_func_start sub_4EF0
-sub_4EF0: @ 0x08004EF0
- push {r4, r5, r6, lr}
- ldr r6, _08004F38 @ =0x0202C58C
- movs r0, #0
- ldrsh r4, [r6, r0]
- cmp r4, #0
- bne _08004F32
- ldr r0, _08004F3C @ =0x0201A440
- strh r4, [r0]
- ldr r0, _08004F40 @ =0x0202BF0C
- strh r4, [r0]
- ldr r5, _08004F44 @ =0x0202C5B0
- movs r1, #0
- ldrsh r0, [r5, r1]
- cmp r0, #0
- beq _08004F32
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r5]
- subs r0, #5
- strh r0, [r5]
- lsls r0, r0, #0x10
- cmp r0, #0
- bge _08004F22
- strh r4, [r5]
-_08004F22:
- ldr r1, _08004F48 @ =0x0202ADE0
- ldr r0, _08004F4C @ =0x0202A57C
- ldrh r0, [r0]
- ldrh r5, [r5]
- adds r0, r0, r5
- strh r0, [r1]
- movs r0, #9
- strh r0, [r6]
-_08004F32:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08004F38: .4byte 0x0202C58C
-_08004F3C: .4byte 0x0201A440
-_08004F40: .4byte 0x0202BF0C
-_08004F44: .4byte 0x0202C5B0
-_08004F48: .4byte 0x0202ADE0
-_08004F4C: .4byte 0x0202A57C
-
- thumb_func_start sub_4F50
-sub_4F50: @ 0x08004F50
- push {r4, r5, r6, lr}
- ldr r6, _08004FAC @ =0x0202C58C
- movs r0, #0
- ldrsh r1, [r6, r0]
- cmp r1, #0
- bne _08004FA6
- ldr r0, _08004FB0 @ =0x0201A440
- strh r1, [r0]
- ldr r0, _08004FB4 @ =0x0202BF0C
- strh r1, [r0]
- ldr r4, _08004FB8 @ =0x0202C5B0
- movs r2, #0
- ldrsh r1, [r4, r2]
- ldr r5, _08004FBC @ =0x0202A574
- movs r2, #0
- ldrsh r0, [r5, r2]
- subs r0, #5
- cmp r1, r0
- beq _08004FA6
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4]
- adds r0, #5
- strh r0, [r4]
- movs r0, #0
- ldrsh r1, [r4, r0]
- movs r2, #0
- ldrsh r0, [r5, r2]
- subs r0, #5
- cmp r1, r0
- ble _08004F96
- ldrh r0, [r5]
- subs r0, #5
- strh r0, [r4]
-_08004F96:
- ldr r1, _08004FC0 @ =0x0202ADE0
- ldr r0, _08004FC4 @ =0x0202A57C
- ldrh r0, [r0]
- ldrh r4, [r4]
- adds r0, r0, r4
- strh r0, [r1]
- movs r0, #9
- strh r0, [r6]
-_08004FA6:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08004FAC: .4byte 0x0202C58C
-_08004FB0: .4byte 0x0201A440
-_08004FB4: .4byte 0x0202BF0C
-_08004FB8: .4byte 0x0202C5B0
-_08004FBC: .4byte 0x0202A574
-_08004FC0: .4byte 0x0202ADE0
-_08004FC4: .4byte 0x0202A57C
-
- thumb_func_start sub_4FC8
-sub_4FC8: @ 0x08004FC8
- push {r4, r5, lr}
- ldr r5, _08005048 @ =0x0200B0C0
- ldrh r2, [r5, #0x1c]
- movs r1, #0x88
- lsls r1, r1, #2
- adds r0, r1, #0
- ands r0, r2
- cmp r0, r1
- bne _08005022
- ldrh r1, [r5, #0x18]
- movs r0, #0x80
- lsls r0, r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08005022
- ldr r2, _0800504C @ =0x02002830
- movs r0, #0x28
- strb r0, [r2]
- ldr r1, _08005050 @ =0x02002831
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #3
- bne _08005022
- movs r4, #0
- strb r4, [r1]
- strb r4, [r2]
- movs r0, #0x68
- bl m4aSongNumStart
- ldr r1, _08005054 @ =0x0202BEC4
- movs r0, #1
- strb r0, [r1]
- ldr r1, _08005058 @ =0x0202BEFC
- movs r0, #4
- strb r0, [r1]
- ldr r0, _0800505C @ =0x0202BF04
- strb r4, [r0]
- ldr r1, _08005060 @ =0x0202A588
- movs r0, #0
- strh r0, [r1]
- movs r0, #0xb
- strb r0, [r5, #3]
-_08005022:
- ldr r2, _0800504C @ =0x02002830
- ldrb r1, [r2]
- movs r0, #0
- ldrsb r0, [r2, r0]
- cmp r0, #0
- ble _08005040
- subs r0, r1, #1
- strb r0, [r2]
- lsls r0, r0, #0x18
- cmp r0, #0
- bgt _08005040
- movs r1, #0
- strb r1, [r2]
- ldr r0, _08005050 @ =0x02002831
- strb r1, [r0]
-_08005040:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08005048: .4byte 0x0200B0C0
-_0800504C: .4byte 0x02002830
-_08005050: .4byte 0x02002831
-_08005054: .4byte 0x0202BEC4
-_08005058: .4byte 0x0202BEFC
-_0800505C: .4byte 0x0202BF04
-_08005060: .4byte 0x0202A588
-
- thumb_func_start sub_5064
-sub_5064: @ 0x08005064
- ldr r1, _080050A8 @ =0x0202A1C0
- ldr r0, _080050AC @ =0x0202ADE0
- movs r2, #0
- ldrsh r0, [r0, r2]
- lsls r2, r0, #1
- adds r1, r2, r1
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #4
- bne _08005110
- ldr r0, _080050B0 @ =0x086A61BC
- adds r0, r2, r0
- movs r2, #0
- ldrsh r1, [r0, r2]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _080050C8
- ldr r1, _080050B4 @ =0x0202A588
- movs r0, #0
- strh r0, [r1]
- ldr r1, _080050B8 @ =0x0202A55C
- movs r0, #1
- strh r0, [r1]
- ldr r0, _080050BC @ =0x0202A568
- movs r1, #0
- strh r1, [r0]
- strh r1, [r0, #2]
- ldr r0, _080050C0 @ =0x0201A440
- strh r1, [r0]
- ldr r0, _080050C4 @ =0x0202BF0C
- strh r1, [r0]
- b _08005124
- .align 2, 0
-_080050A8: .4byte 0x0202A1C0
-_080050AC: .4byte 0x0202ADE0
-_080050B0: .4byte 0x086A61BC
-_080050B4: .4byte 0x0202A588
-_080050B8: .4byte 0x0202A55C
-_080050BC: .4byte 0x0202A568
-_080050C0: .4byte 0x0201A440
-_080050C4: .4byte 0x0202BF0C
-_080050C8:
- cmp r1, #0x63
- bgt _080050F0
- ldr r0, _080050E4 @ =0x0202A588
- movs r1, #0
- strh r1, [r0]
- ldr r0, _080050E8 @ =0x0202A55C
- strh r1, [r0]
- ldr r1, _080050EC @ =0x0202A568
- movs r2, #0
- movs r0, #1
- strh r0, [r1]
- strh r2, [r1, #2]
- b _08005124
- .align 2, 0
-_080050E4: .4byte 0x0202A588
-_080050E8: .4byte 0x0202A55C
-_080050EC: .4byte 0x0202A568
-_080050F0:
- ldr r0, _08005104 @ =0x0202A588
- movs r1, #0
- strh r1, [r0]
- ldr r0, _08005108 @ =0x0202A55C
- strh r1, [r0]
- ldr r1, _0800510C @ =0x0202A568
- movs r0, #0
- strh r0, [r1]
- movs r0, #1
- b _08005122
- .align 2, 0
-_08005104: .4byte 0x0202A588
-_08005108: .4byte 0x0202A55C
-_0800510C: .4byte 0x0202A568
-_08005110:
- ldr r1, _08005128 @ =0x0202A588
- movs r0, #0
- strh r0, [r1]
- ldr r1, _0800512C @ =0x0202A55C
- movs r0, #1
- strh r0, [r1]
- ldr r1, _08005130 @ =0x0202A568
- movs r0, #0
- strh r0, [r1]
-_08005122:
- strh r0, [r1, #2]
-_08005124:
- bx lr
- .align 2, 0
-_08005128: .4byte 0x0202A588
-_0800512C: .4byte 0x0202A55C
-_08005130: .4byte 0x0202A568
-
- thumb_func_start sub_5134
-sub_5134: @ 0x08005134
- ldr r1, _08005160 @ =0x0202A1C0
- ldr r0, _08005164 @ =0x0202ADE0
- movs r2, #0
- ldrsh r0, [r0, r2]
- lsls r2, r0, #1
- adds r1, r2, r1
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #4
- bne _08005170
- ldr r0, _08005168 @ =0x086A61BC
- adds r0, r2, r0
- movs r2, #0
- ldrsh r1, [r0, r2]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- beq _08005170
- cmp r1, #0x63
- bgt _0800516C
- movs r0, #1
- b _08005172
- .align 2, 0
-_08005160: .4byte 0x0202A1C0
-_08005164: .4byte 0x0202ADE0
-_08005168: .4byte 0x086A61BC
-_0800516C:
- movs r0, #2
- b _08005172
-_08005170:
- movs r0, #0
-_08005172:
- bx lr
-
- thumb_func_start sub_5174
-sub_5174: @ 0x08005174
- push {r4, lr}
- ldr r4, _080051BC @ =0x0202C5B0
- movs r1, #0
- ldrsh r0, [r4, r1]
- bl sub_6CA0
- movs r1, #0
- ldrsh r0, [r4, r1]
- bl sub_6F30
- ldr r4, _080051C0 @ =0x0202ADE0
- movs r1, #0
- ldrsh r0, [r4, r1]
- bl sub_681C
- movs r1, #0
- ldrsh r0, [r4, r1]
- bl sub_6F78
- movs r1, #0
- ldrsh r0, [r4, r1]
- bl sub_8974
- movs r1, #0
- ldrsh r0, [r4, r1]
- bl sub_8A78
- ldr r0, _080051C4 @ =0x0202BF00
- movs r1, #0
- strh r1, [r0]
- ldr r0, _080051C8 @ =0x0201A448
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080051BC: .4byte 0x0202C5B0
-_080051C0: .4byte 0x0202ADE0
-_080051C4: .4byte 0x0202BF00
-_080051C8: .4byte 0x0201A448
-
- thumb_func_start sub_51CC
-sub_51CC: @ 0x080051CC
- push {lr}
- bl sub_5134
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080051E8
- ldr r0, _080051E4 @ =0x0202ADE0
- movs r1, #0
- ldrsh r0, [r0, r1]
- bl sub_6F78
- b _080051F2
- .align 2, 0
-_080051E4: .4byte 0x0202ADE0
-_080051E8:
- ldr r0, _080051F8 @ =0x0202ADE0
- movs r1, #0
- ldrsh r0, [r0, r1]
- bl sub_8974
-_080051F2:
- pop {r0}
- bx r0
- .align 2, 0
-_080051F8: .4byte 0x0202ADE0
-
- thumb_func_start sub_51FC
-sub_51FC: @ 0x080051FC
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x18
- ldr r4, _08005348 @ =0x0200B3B8
- adds r7, r4, #0
- adds r7, #0xb8
- movs r0, #0xb8
- lsls r0, r0, #1
- adds r0, r0, r4
- mov r8, r0
- movs r1, #0x8a
- lsls r1, r1, #2
- adds r1, r1, r4
- mov sl, r1
- ldr r0, _0800534C @ =0x0201A448
- movs r2, #0
- ldrsh r0, [r0, r2]
- movs r2, #0xb8
- adds r1, r0, #0
- muls r1, r2, r1
- movs r3, #0xe6
- lsls r3, r3, #2
- adds r0, r4, r3
- adds r1, r1, r0
- str r1, [sp]
- ldr r0, _08005350 @ =0x0202BEFC
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r1, r0, #0
- muls r1, r2, r1
- ldr r3, _08005354 @ =0x00000C38
- adds r0, r4, r3
- adds r1, r1, r0
- mov sb, r1
- ldr r0, _08005358 @ =0x0202BEE0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r1, r0, #0
- muls r1, r2, r1
- movs r3, #0xfd
- lsls r3, r3, #4
- adds r0, r4, r3
- adds r1, r1, r0
- str r1, [sp, #4]
- ldr r0, _0800535C @ =0x02019C28
- movs r1, #0
- ldrsb r1, [r0, r1]
- lsls r1, r1, #1
- ldr r0, _08005360 @ =0x0202C5AC
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r0, #0x19
- adds r1, r1, r0
- adds r0, r1, #0
- muls r0, r2, r0
- adds r0, r0, r4
- str r0, [sp, #8]
- movs r0, #1
- strh r0, [r4]
- strh r0, [r7]
- ldr r0, _08005364 @ =0x0202A55C
- ldrh r0, [r0]
- mov r1, r8
- strh r0, [r1]
- ldr r1, _08005368 @ =0x0202A568
- ldrh r0, [r1]
- mov r2, sl
- strh r0, [r2]
- ldrh r0, [r1, #2]
- ldr r3, _0800536C @ =0x0200B698
- strh r0, [r3]
- ldr r0, _08005370 @ =0x0202A588
- ldrh r0, [r0]
- ldr r1, [sp]
- strh r0, [r1]
- ldr r0, _08005374 @ =0x0202BEC4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- mov r2, sb
- strh r0, [r2]
- ldr r0, _08005378 @ =0x0202BF04
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r3, [sp, #4]
- strh r0, [r3]
- ldr r0, _0800537C @ =0x0202C590
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r1, _08005380 @ =0x0200C4F8
- strh r0, [r1]
- ldr r0, _08005384 @ =0x0201C1B4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r2, [sp, #8]
- strh r0, [r2]
- ldr r0, _08005388 @ =0x086A6148
- movs r1, #0x1d
- adds r2, r4, #0
- bl sub_358
- ldr r0, _0800538C @ =0x0201A4F0
- ldrh r0, [r0]
- adds r0, #0x14
- strh r0, [r4, #2]
- ldr r0, _08005390 @ =0x0202A57C
- movs r3, #0
- ldrsh r0, [r0, r3]
- lsls r0, r0, #4
- adds r0, #0x54
- strh r0, [r4, #4]
- adds r6, r4, #0
- adds r6, #8
- ldr r5, _08005394 @ =0x03005000
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldrb r0, [r1, #5]
- movs r2, #0xc
- orrs r0, r2
- strb r0, [r1, #5]
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- adds r2, r2, r5
- movs r0, #2
- ldrsh r1, [r6, r0]
- movs r3, #2
- ldrsh r0, [r4, r3]
- adds r1, r1, r0
- ldr r3, _08005398 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _0800539C @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldrb r0, [r4, #4]
- ldrb r6, [r6, #4]
- adds r0, r0, r6
- strb r0, [r1]
- ldr r1, _080053A0 @ =0x0202ADE0
- movs r4, #0
- ldrsh r0, [r1, r4]
- cmp r0, #0xc7
- bgt _080053A8
- ldr r4, _080053A4 @ =0x0202BF08
- movs r1, #3
- bl __divsi3
- adds r0, #0x56
- strh r0, [r4]
- adds r1, r4, #0
- b _080053AE
- .align 2, 0
-_08005348: .4byte 0x0200B3B8
-_0800534C: .4byte 0x0201A448
-_08005350: .4byte 0x0202BEFC
-_08005354: .4byte 0x00000C38
-_08005358: .4byte 0x0202BEE0
-_0800535C: .4byte 0x02019C28
-_08005360: .4byte 0x0202C5AC
-_08005364: .4byte 0x0202A55C
-_08005368: .4byte 0x0202A568
-_0800536C: .4byte 0x0200B698
-_08005370: .4byte 0x0202A588
-_08005374: .4byte 0x0202BEC4
-_08005378: .4byte 0x0202BF04
-_0800537C: .4byte 0x0202C590
-_08005380: .4byte 0x0200C4F8
-_08005384: .4byte 0x0201C1B4
-_08005388: .4byte 0x086A6148
-_0800538C: .4byte 0x0201A4F0
-_08005390: .4byte 0x0202A57C
-_08005394: .4byte 0x03005000
-_08005398: .4byte 0x000001FF
-_0800539C: .4byte 0xFFFFFE00
-_080053A0: .4byte 0x0202ADE0
-_080053A4: .4byte 0x0202BF08
-_080053A8:
- ldr r1, _08005564 @ =0x0202BF08
- movs r0, #0x98
- strh r0, [r1]
-_080053AE:
- movs r0, #0xd
- strh r0, [r7, #2]
- ldrh r0, [r1]
- strh r0, [r7, #4]
- adds r6, r7, #0
- adds r6, #8
- ldr r4, _08005568 @ =0x03005000
- ldrh r1, [r7, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r1, #5]
- movs r2, #0xc
- orrs r0, r2
- strb r0, [r1, #5]
- ldrh r2, [r7, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r3, #2
- ldrsh r1, [r6, r3]
- movs r3, #2
- ldrsh r0, [r7, r3]
- adds r1, r1, r0
- ldr r3, _0800556C @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08005570 @ =0xFFFFFE00
- mov ip, r0
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r7, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r7, #4]
- ldrb r6, [r6, #4]
- adds r0, r0, r6
- strb r0, [r1]
- mov r1, r8
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800545E
- movs r0, #0x24
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- adds r5, r4, #0
- mov r4, r8
- adds r4, #8
- movs r6, #5
-_08005410:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r5
- ldrb r1, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r2, #2
- ldrsh r1, [r4, r2]
- mov r7, r8
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r7, _0800556C @ =0x000001FF
- adds r0, r7, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- mov r2, r8
- ldrb r0, [r2, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _08005410
-_0800545E:
- mov r4, sl
- ldrh r0, [r4]
- cmp r0, #1
- bne _08005536
- movs r0, #0x24
- strh r0, [r4, #2]
- movs r0, #0x1c
- strh r0, [r4, #4]
- movs r6, #0
- ldr r7, _08005574 @ =0x0202BF0C
- mov r8, r7
- ldr r7, _08005568 @ =0x03005000
- mov r5, sl
- adds r5, #8
- ldr r0, _08005570 @ =0xFFFFFE00
- mov ip, r0
-_0800547E:
- ldrh r2, [r5]
- lsls r2, r2, #3
- adds r2, r2, r7
- ldrb r1, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r4, [r5]
- lsls r4, r4, #3
- adds r4, r4, r7
- lsls r3, r6, #1
- ldr r1, _08005578 @ =0x0202BF14
- movs r0, #0
- ldrsh r2, [r1, r0]
- lsls r0, r2, #3
- adds r3, r3, r0
- ldr r1, _0800557C @ =0x086A5DDA
- adds r3, r3, r1
- str r3, [sp, #0x14]
- mov r3, r8
- movs r0, #0
- ldrsh r1, [r3, r0]
- lsls r1, r1, #1
- lsls r0, r2, #2
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldr r2, _08005580 @ =0x086A5DF2
- adds r1, r1, r2
- ldrh r1, [r1]
- ldr r3, [sp, #0x14]
- ldrh r3, [r3]
- adds r1, r1, r3
- ldr r2, _08005584 @ =0x000003FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r4, #4]
- ldr r0, _08005588 @ =0xFFFFFC00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, #4]
- ldrh r3, [r5]
- lsls r3, r3, #3
- adds r3, r3, r7
- movs r4, #2
- ldrsh r1, [r5, r4]
- mov r2, sl
- movs r4, #2
- ldrsh r0, [r2, r4]
- adds r1, r1, r0
- ldr r2, _0800556C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r5]
- lsls r1, r1, #3
- adds r1, r1, r7
- mov r3, sl
- ldrb r0, [r3, #4]
- ldrb r4, [r5, #4]
- adds r0, r0, r4
- strb r0, [r1]
- adds r5, #8
- adds r6, #1
- cmp r6, #3
- ble _0800547E
- ldr r7, _0800558C @ =0x0201A440
- ldrh r0, [r7]
- adds r0, #1
- strh r0, [r7]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xe
- ble _08005536
- movs r1, #0
- strh r1, [r7]
- mov r2, r8
- ldrh r0, [r2]
- adds r0, #1
- strh r0, [r2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _08005536
- strh r1, [r2]
-_08005536:
- ldr r3, _08005590 @ =0x0200B698
- ldrh r0, [r3]
- cmp r0, #1
- beq _08005540
- b _0800568A
-_08005540:
- ldr r1, _08005594 @ =0x086A6356
- ldr r0, _08005598 @ =0x0202ADE0
- movs r4, #0
- ldrsh r0, [r0, r4]
- lsls r0, r0, #1
- adds r0, r0, r1
- movs r7, #0
- ldrsh r1, [r0, r7]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _0800559C
- movs r0, #1
- str r0, [sp, #0x10]
- movs r1, #0x24
- str r1, [sp, #0xc]
- b _080055A4
- .align 2, 0
-_08005564: .4byte 0x0202BF08
-_08005568: .4byte 0x03005000
-_0800556C: .4byte 0x000001FF
-_08005570: .4byte 0xFFFFFE00
-_08005574: .4byte 0x0202BF0C
-_08005578: .4byte 0x0202BF14
-_0800557C: .4byte 0x086A5DDA
-_08005580: .4byte 0x086A5DF2
-_08005584: .4byte 0x000003FF
-_08005588: .4byte 0xFFFFFC00
-_0800558C: .4byte 0x0201A440
-_08005590: .4byte 0x0200B698
-_08005594: .4byte 0x086A6356
-_08005598: .4byte 0x0202ADE0
-_0800559C:
- movs r2, #2
- str r2, [sp, #0x10]
- movs r3, #0x30
- str r3, [sp, #0xc]
-_080055A4:
- movs r0, #0x30
- ldr r4, _08005760 @ =0x0200B698
- strh r0, [r4, #2]
- movs r0, #0x28
- strh r0, [r4, #4]
- movs r6, #0
- ldr r7, _08005764 @ =0x0202BF0C
- mov r8, r7
- ldr r0, [sp, #0x10]
- lsls r0, r0, #3
- mov sl, r0
- ldr r5, _08005768 @ =0x03005000
- adds r4, #8
- movs r0, #0x66
- ldr r2, [sp, #0x10]
- adds r1, r2, #0
- muls r1, r0, r1
- mov ip, r1
-_080055C8:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r5
- ldrb r1, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- lsls r2, r6, #1
- add r2, sl
- ldr r7, _0800576C @ =0x086A5DDA
- adds r2, r2, r7
- mov r1, r8
- movs r7, #0
- ldrsh r0, [r1, r7]
- lsls r0, r0, #1
- add r0, ip
- ldr r1, _08005770 @ =0x086A5EE2
- adds r0, r0, r1
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r1, r2
- ldr r2, _08005774 @ =0x000003FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #4]
- ldr r0, _08005778 @ =0xFFFFFC00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #4]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r7, #2
- ldrsh r1, [r4, r7]
- ldr r2, _08005760 @ =0x0200B698
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800577C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _08005780 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldr r3, _08005760 @ =0x0200B698
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- adds r6, #1
- cmp r6, #3
- ble _080055C8
- ldr r0, _08005784 @ =0x0201A440
- ldrh r1, [r0]
- adds r1, #1
- strh r1, [r0]
- mov r2, r8
- movs r3, #0
- ldrsh r0, [r2, r3]
- lsls r0, r0, #1
- movs r2, #0x66
- ldr r4, [sp, #0x10]
- muls r2, r4, r2
- adds r0, r0, r2
- ldr r7, _08005788 @ =0x086A6014
- adds r0, r0, r7
- lsls r1, r1, #0x10
- asrs r1, r1, #0x10
- movs r2, #0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- ble _0800568A
- movs r1, #0
- ldr r3, _08005784 @ =0x0201A440
- strh r1, [r3]
- mov r4, r8
- ldrh r0, [r4]
- adds r0, #1
- strh r0, [r4]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldr r7, [sp, #0xc]
- cmp r0, r7
- ble _0800568A
- strh r1, [r4]
-_0800568A:
- ldr r1, [sp]
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800573C
- movs r0, #0x24
- strh r0, [r1, #2]
- movs r0, #0x40
- strh r0, [r1, #4]
- ldr r2, _0800578C @ =0x086A6148
- ldr r1, _08005790 @ =0x0201A448
- movs r3, #0
- ldrsh r0, [r1, r3]
- adds r0, #5
- lsls r0, r0, #2
- adds r0, r0, r2
- ldr r5, [r0]
- movs r6, #0
- mov r8, r1
- ldr r4, _08005794 @ =0x0202BF00
- mov ip, r4
- ldrh r7, [r5]
- cmp r6, r7
- bge _08005716
- ldr r0, _08005780 @ =0xFFFFFE00
- mov sl, r0
- ldr r4, [sp]
- adds r4, #8
-_080056C0:
- ldrh r2, [r4]
- lsls r2, r2, #3
- ldr r1, _08005768 @ =0x03005000
- adds r2, r2, r1
- ldrb r1, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- ldr r2, _08005768 @ =0x03005000
- adds r3, r3, r2
- movs r7, #2
- ldrsh r1, [r4, r7]
- ldr r2, [sp]
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800577C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sl
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- ldr r3, _08005768 @ =0x03005000
- adds r1, r1, r3
- ldr r7, [sp]
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r6, #1
- ldrh r3, [r5]
- cmp r6, r3
- blt _080056C0
-_08005716:
- mov r4, ip
- ldrh r0, [r4]
- adds r0, #1
- strh r0, [r4]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800573C
- movs r1, #0
- strh r1, [r4]
- mov r7, r8
- ldrh r0, [r7]
- adds r0, #1
- strh r0, [r7]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xb
- ble _0800573C
- strh r1, [r7]
-_0800573C:
- mov r1, sb
- ldrh r0, [r1]
- cmp r0, #1
- bne _08005818
- ldr r0, _08005798 @ =0x0202BEFC
- movs r1, #0
- ldrsb r1, [r0, r1]
- adds r2, r0, #0
- cmp r1, #0
- beq _08005754
- cmp r1, #4
- bne _0800579C
-_08005754:
- movs r0, #0x78
- mov r3, sb
- strh r0, [r3, #2]
- movs r0, #0x64
- strh r0, [r3, #4]
- b _080057A6
- .align 2, 0
-_08005760: .4byte 0x0200B698
-_08005764: .4byte 0x0202BF0C
-_08005768: .4byte 0x03005000
-_0800576C: .4byte 0x086A5DDA
-_08005770: .4byte 0x086A5EE2
-_08005774: .4byte 0x000003FF
-_08005778: .4byte 0xFFFFFC00
-_0800577C: .4byte 0x000001FF
-_08005780: .4byte 0xFFFFFE00
-_08005784: .4byte 0x0201A440
-_08005788: .4byte 0x086A6014
-_0800578C: .4byte 0x086A6148
-_08005790: .4byte 0x0201A448
-_08005794: .4byte 0x0202BF00
-_08005798: .4byte 0x0202BEFC
-_0800579C:
- movs r0, #0x78
- mov r4, sb
- strh r0, [r4, #2]
- movs r0, #0x50
- strh r0, [r4, #4]
-_080057A6:
- ldr r1, _0800597C @ =0x086A6148
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, #0x11
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r5, [r0]
- movs r6, #0
- ldrh r7, [r5]
- cmp r6, r7
- bge _08005818
- ldr r0, _08005980 @ =0x03005000
- mov ip, r0
- movs r1, #0xd
- rsbs r1, r1, #0
- mov sl, r1
- ldr r2, _08005984 @ =0xFFFFFE00
- mov r8, r2
- mov r4, sb
- adds r4, #8
-_080057CE:
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- ldrb r2, [r1, #5]
- mov r0, sl
- ands r0, r2
- strb r0, [r1, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, ip
- movs r7, #2
- ldrsh r1, [r4, r7]
- mov r2, sb
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08005988 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- mov r3, sb
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- adds r6, #1
- ldrh r0, [r5]
- cmp r6, r0
- blt _080057CE
-_08005818:
- ldr r1, [sp, #4]
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800588A
- movs r0, #0x9e
- strh r0, [r1, #2]
- movs r0, #0x94
- strh r0, [r1, #4]
- ldr r1, _0800597C @ =0x086A6148
- ldr r0, _0800598C @ =0x0202BEE0
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r0, #0x16
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r5, [r0]
- movs r6, #0
- ldrh r2, [r5]
- cmp r6, r2
- bge _0800588A
- ldr r3, _08005980 @ =0x03005000
- mov sl, r3
- ldr r4, _08005984 @ =0xFFFFFE00
- mov r8, r4
- ldr r4, [sp, #4]
- adds r4, #8
-_0800584E:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sl
- movs r7, #2
- ldrsh r1, [r4, r7]
- ldr r2, [sp, #4]
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08005988 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sl
- ldr r3, [sp, #4]
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- adds r6, #1
- ldrh r0, [r5]
- cmp r6, r0
- blt _0800584E
-_0800588A:
- ldr r1, _08005990 @ =0x0200C4F8
- ldrh r0, [r1]
- cmp r0, #1
- bne _080058EE
- movs r0, #0xa8
- strh r0, [r1, #2]
- movs r0, #0x54
- strh r0, [r1, #4]
- ldr r5, _08005980 @ =0x03005000
- ldr r2, _08005984 @ =0xFFFFFE00
- mov r8, r2
- adds r4, r1, #0
- adds r4, #8
- movs r6, #2
-_080058A6:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r5
- ldrb r0, [r2, #5]
- movs r1, #0xc
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r7, #2
- ldrsh r1, [r4, r7]
- ldr r2, _08005990 @ =0x0200C4F8
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08005988 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldr r3, _08005990 @ =0x0200C4F8
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _080058A6
-_080058EE:
- ldr r1, [sp, #8]
- ldrh r0, [r1]
- cmp r0, #1
- bne _08005932
- movs r0, #0x78
- strh r0, [r1, #2]
- movs r0, #0x84
- strh r0, [r1, #4]
- adds r6, r1, #0
- adds r6, #8
- ldrh r2, [r1, #8]
- lsls r2, r2, #3
- ldr r3, _08005980 @ =0x03005000
- adds r2, r2, r3
- movs r4, #2
- ldrsh r1, [r6, r4]
- adds r1, #0x78
- ldr r7, _08005988 @ =0x000001FF
- adds r0, r7, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08005984 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldr r0, [sp, #8]
- ldrh r1, [r0, #8]
- lsls r1, r1, #3
- ldr r2, _08005980 @ =0x03005000
- adds r1, r1, r2
- ldrb r0, [r0, #4]
- ldrb r6, [r6, #4]
- adds r0, r0, r6
- strb r0, [r1]
-_08005932:
- ldr r3, _08005994 @ =0x0202BE20
- ldrh r0, [r3]
- adds r0, #1
- strh r0, [r3]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xc
- ble _0800595A
- movs r0, #0
- strh r0, [r3]
- ldr r2, _08005998 @ =0x0201A4F0
- ldrh r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r2]
- ldr r2, _0800598C @ =0x0202BEE0
- ldrb r1, [r2]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r2]
-_0800595A:
- movs r0, #0
- ldr r4, [sp]
- strh r0, [r4]
- mov r7, sb
- strh r0, [r7]
- ldr r1, [sp, #4]
- strh r0, [r1]
- ldr r2, [sp, #8]
- strh r0, [r2]
- add sp, #0x18
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800597C: .4byte 0x086A6148
-_08005980: .4byte 0x03005000
-_08005984: .4byte 0xFFFFFE00
-_08005988: .4byte 0x000001FF
-_0800598C: .4byte 0x0202BEE0
-_08005990: .4byte 0x0200C4F8
-_08005994: .4byte 0x0202BE20
-_08005998: .4byte 0x0201A4F0
-
- thumb_func_start sub_599C
-sub_599C: @ 0x0800599C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0xc
- ldr r7, _08005CFC @ =0x0200B3B8
- adds r6, r7, #0
- adds r6, #0xb8
- ldr r0, _08005D00 @ =0x0201A448
- movs r1, #0
- ldrsh r0, [r0, r1]
- movs r2, #0xb8
- adds r1, r0, #0
- muls r1, r2, r1
- movs r3, #0xe6
- lsls r3, r3, #2
- adds r0, r7, r3
- adds r1, r1, r0
- str r1, [sp]
- ldr r0, _08005D04 @ =0x0202BEFC
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r1, r0, #0
- muls r1, r2, r1
- ldr r4, _08005D08 @ =0x00000C38
- adds r0, r7, r4
- adds r1, r1, r0
- str r1, [sp, #4]
- movs r2, #0
- movs r0, #1
- strh r0, [r7]
- strh r0, [r6]
- ldr r0, _08005D0C @ =0x0202A55C
- ldrh r0, [r0]
- ldr r5, _08005D10 @ =0x0200B528
- strh r0, [r5]
- ldr r1, _08005D14 @ =0x0202A568
- ldrh r0, [r1]
- ldr r3, _08005D18 @ =0x0200B5E0
- strh r0, [r3]
- ldrh r0, [r1, #2]
- ldr r4, _08005D1C @ =0x0200B698
- strh r0, [r4]
- ldr r5, [sp]
- strh r2, [r5]
- ldr r0, _08005D20 @ =0x0202BEC4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r1, [sp, #4]
- strh r0, [r1]
- ldr r0, _08005D24 @ =0x0202C590
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r2, _08005D28 @ =0x0200C4F8
- strh r0, [r2]
- ldr r0, _08005D2C @ =0x086A6148
- movs r1, #0x1d
- adds r2, r7, #0
- bl sub_2414
- ldr r0, _08005D30 @ =0x0201A4F0
- ldrh r0, [r0]
- adds r0, #0x14
- strh r0, [r7, #2]
- ldr r0, _08005D34 @ =0x0202A57C
- movs r3, #0
- ldrsh r0, [r0, r3]
- lsls r0, r0, #4
- adds r0, #0x54
- strh r0, [r7, #4]
- adds r5, r7, #0
- adds r5, #8
- ldr r4, _08005D38 @ =0x03005000
- mov sl, r4
- ldrh r1, [r7, #8]
- lsls r1, r1, #3
- add r1, sl
- ldrb r2, [r1, #5]
- movs r4, #0xd
- rsbs r4, r4, #0
- adds r0, r4, #0
- ands r0, r2
- movs r2, #8
- mov sb, r2
- mov r3, sb
- orrs r0, r3
- strb r0, [r1, #5]
- ldrh r2, [r7, #8]
- lsls r2, r2, #3
- add r2, sl
- movs r0, #2
- ldrsh r1, [r5, r0]
- movs r3, #2
- ldrsh r0, [r7, r3]
- adds r1, r1, r0
- ldr r0, _08005D3C @ =0x000001FF
- mov r8, r0
- mov r3, r8
- ands r1, r3
- ldrh r3, [r2, #2]
- ldr r0, _08005D40 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r7, #8]
- lsls r1, r1, #3
- add r1, sl
- ldrb r0, [r7, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
- ldr r5, _08005D44 @ =0x0202BF08
- ldr r0, _08005D48 @ =0x0202ADE0
- movs r1, #0
- ldrsh r0, [r0, r1]
- movs r1, #3
- bl __divsi3
- adds r0, #0x56
- strh r0, [r5]
- movs r1, #0xd
- strh r1, [r6, #2]
- strh r0, [r6, #4]
- adds r5, r7, #0
- adds r5, #0xc0
- ldrh r0, [r5]
- lsls r0, r0, #3
- add r0, sl
- ldrb r1, [r0, #5]
- ands r4, r1
- mov r2, sb
- orrs r4, r2
- strb r4, [r0, #5]
- ldrh r2, [r5]
- lsls r2, r2, #3
- add r2, sl
- movs r3, #2
- ldrsh r1, [r5, r3]
- movs r4, #2
- ldrsh r0, [r6, r4]
- adds r1, r1, r0
- mov r0, r8
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08005D40 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r5]
- lsls r1, r1, #3
- add r1, sl
- ldrb r0, [r6, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
- ldr r1, _08005D10 @ =0x0200B528
- ldrh r0, [r1]
- cmp r0, #1
- bne _08005B30
- movs r0, #0x24
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- mov r4, sl
- ldr r2, _08005D40 @ =0xFFFFFE00
- mov r8, r2
- movs r3, #0xbc
- lsls r3, r3, #1
- adds r6, r7, r3
- movs r7, #5
-_08005AF6:
- ldrh r3, [r6]
- lsls r3, r3, #3
- adds r3, r3, r4
- movs r5, #2
- ldrsh r1, [r6, r5]
- ldr r2, _08005D10 @ =0x0200B528
- movs r5, #2
- ldrsh r0, [r2, r5]
- adds r1, r1, r0
- ldr r2, _08005D3C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r6]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldr r3, _08005D10 @ =0x0200B528
- ldrb r0, [r3, #4]
- ldrb r5, [r6, #4]
- adds r0, r0, r5
- strb r0, [r1]
- adds r6, #8
- subs r7, #1
- cmp r7, #0
- bge _08005AF6
-_08005B30:
- ldr r6, _08005D18 @ =0x0200B5E0
- ldrh r0, [r6]
- cmp r0, #1
- bne _08005BD4
- movs r0, #0x24
- strh r0, [r6, #2]
- movs r0, #0x1c
- strh r0, [r6, #4]
- movs r7, #0
- ldr r0, _08005D4C @ =0x0202BF0C
- mov ip, r0
- ldr r6, _08005D38 @ =0x03005000
- ldr r1, _08005D50 @ =0x086A5DF2
- mov sb, r1
- ldr r2, _08005D54 @ =0xFFFFFC00
- mov sl, r2
- ldr r5, _08005D18 @ =0x0200B5E0
- adds r5, #8
- ldr r3, _08005D40 @ =0xFFFFFE00
- mov r8, r3
-_08005B58:
- ldrh r4, [r5]
- lsls r4, r4, #3
- adds r4, r4, r6
- lsls r3, r7, #1
- ldr r0, _08005D58 @ =0x0202BF14
- movs r1, #0
- ldrsh r2, [r0, r1]
- lsls r0, r2, #3
- adds r3, r3, r0
- ldr r0, _08005D5C @ =0x086A5DDA
- adds r3, r3, r0
- str r3, [sp, #8]
- mov r3, ip
- movs r0, #0
- ldrsh r1, [r3, r0]
- lsls r1, r1, #1
- lsls r0, r2, #2
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- add r1, sb
- ldrh r1, [r1]
- ldr r2, [sp, #8]
- ldrh r2, [r2]
- adds r1, r1, r2
- ldr r3, _08005D60 @ =0x000003FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r2, [r4, #4]
- mov r0, sl
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, #4]
- ldrh r3, [r5]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r4, #2
- ldrsh r1, [r5, r4]
- ldr r2, _08005D18 @ =0x0200B5E0
- movs r4, #2
- ldrsh r0, [r2, r4]
- adds r1, r1, r0
- ldr r2, _08005D3C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r5]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldr r3, _08005D18 @ =0x0200B5E0
- ldrb r0, [r3, #4]
- ldrb r4, [r5, #4]
- adds r0, r0, r4
- strb r0, [r1]
- adds r5, #8
- adds r7, #1
- cmp r7, #3
- ble _08005B58
-_08005BD4:
- ldr r5, _08005D1C @ =0x0200B698
- ldrh r0, [r5]
- cmp r0, #1
- bne _08005C68
- movs r0, #0x30
- strh r0, [r5, #2]
- movs r0, #0x28
- strh r0, [r5, #4]
- ldr r6, _08005D4C @ =0x0202BF0C
- mov ip, r6
- ldr r0, _08005D5C @ =0x086A5DDA
- ldr r1, _08005D64 @ =0x086A5E1A
- mov sl, r1
- adds r4, r5, #0
- adds r4, #8
- adds r5, r0, #0
- adds r5, #8
- ldr r2, _08005D54 @ =0xFFFFFC00
- mov sb, r2
- ldr r3, _08005D40 @ =0xFFFFFE00
- mov r8, r3
- movs r7, #3
-_08005C00:
- ldrh r3, [r4]
- lsls r3, r3, #3
- ldr r6, _08005D38 @ =0x03005000
- adds r3, r3, r6
- mov r1, ip
- movs r2, #0
- ldrsh r0, [r1, r2]
- lsls r0, r0, #1
- add r0, sl
- ldrh r1, [r0]
- ldrh r6, [r5]
- adds r1, r1, r6
- ldr r2, _08005D60 @ =0x000003FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #4]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #4]
- ldrh r3, [r4]
- lsls r3, r3, #3
- ldr r6, _08005D38 @ =0x03005000
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- ldr r2, _08005D1C @ =0x0200B698
- movs r6, #2
- ldrsh r0, [r2, r6]
- adds r1, r1, r0
- ldr r2, _08005D3C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- ldr r3, _08005D38 @ =0x03005000
- adds r1, r1, r3
- ldr r6, _08005D1C @ =0x0200B698
- ldrb r0, [r6, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #2
- subs r7, #1
- cmp r7, #0
- bge _08005C00
-_08005C68:
- ldr r3, [sp]
- ldrh r0, [r3]
- cmp r0, #1
- bne _08005CD8
- movs r0, #0x24
- strh r0, [r3, #2]
- movs r0, #0x40
- strh r0, [r3, #4]
- ldr r1, _08005D2C @ =0x086A6148
- ldr r0, _08005D00 @ =0x0201A448
- movs r4, #0
- ldrsh r0, [r0, r4]
- adds r0, #5
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r5, [r0]
- movs r7, #0
- ldrh r6, [r5]
- cmp r7, r6
- bge _08005CD8
- ldr r0, _08005D38 @ =0x03005000
- mov sb, r0
- ldr r1, _08005D40 @ =0xFFFFFE00
- mov r8, r1
- adds r4, r3, #0
- adds r4, #8
-_08005C9C:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sb
- movs r2, #2
- ldrsh r1, [r4, r2]
- ldr r6, [sp]
- movs r2, #2
- ldrsh r0, [r6, r2]
- adds r1, r1, r0
- ldr r6, _08005D3C @ =0x000001FF
- adds r0, r6, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sb
- ldr r2, [sp]
- ldrb r0, [r2, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- adds r7, #1
- ldrh r6, [r5]
- cmp r7, r6
- blt _08005C9C
-_08005CD8:
- ldr r1, [sp, #4]
- ldrh r0, [r1]
- cmp r0, #1
- bne _08005DD0
- ldr r0, _08005D04 @ =0x0202BEFC
- movs r1, #0
- ldrsb r1, [r0, r1]
- adds r2, r0, #0
- cmp r1, #0
- beq _08005CF0
- cmp r1, #4
- bne _08005D68
-_08005CF0:
- movs r0, #0x78
- ldr r3, [sp, #4]
- strh r0, [r3, #2]
- movs r0, #0x64
- strh r0, [r3, #4]
- b _08005D72
- .align 2, 0
-_08005CFC: .4byte 0x0200B3B8
-_08005D00: .4byte 0x0201A448
-_08005D04: .4byte 0x0202BEFC
-_08005D08: .4byte 0x00000C38
-_08005D0C: .4byte 0x0202A55C
-_08005D10: .4byte 0x0200B528
-_08005D14: .4byte 0x0202A568
-_08005D18: .4byte 0x0200B5E0
-_08005D1C: .4byte 0x0200B698
-_08005D20: .4byte 0x0202BEC4
-_08005D24: .4byte 0x0202C590
-_08005D28: .4byte 0x0200C4F8
-_08005D2C: .4byte 0x086A6148
-_08005D30: .4byte 0x0201A4F0
-_08005D34: .4byte 0x0202A57C
-_08005D38: .4byte 0x03005000
-_08005D3C: .4byte 0x000001FF
-_08005D40: .4byte 0xFFFFFE00
-_08005D44: .4byte 0x0202BF08
-_08005D48: .4byte 0x0202ADE0
-_08005D4C: .4byte 0x0202BF0C
-_08005D50: .4byte 0x086A5DF2
-_08005D54: .4byte 0xFFFFFC00
-_08005D58: .4byte 0x0202BF14
-_08005D5C: .4byte 0x086A5DDA
-_08005D60: .4byte 0x000003FF
-_08005D64: .4byte 0x086A5E1A
-_08005D68:
- movs r0, #0x78
- ldr r4, [sp, #4]
- strh r0, [r4, #2]
- movs r0, #0x50
- strh r0, [r4, #4]
-_08005D72:
- ldr r1, _08005E4C @ =0x086A6148
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, #0x11
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r5, [r0]
- movs r7, #0
- ldrh r6, [r5]
- cmp r7, r6
- bge _08005DD0
- ldr r0, _08005E50 @ =0x03005000
- mov sb, r0
- ldr r1, _08005E54 @ =0xFFFFFE00
- mov r8, r1
- ldr r4, [sp, #4]
- adds r4, #8
-_08005D94:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sb
- movs r2, #2
- ldrsh r1, [r4, r2]
- ldr r6, [sp, #4]
- movs r2, #2
- ldrsh r0, [r6, r2]
- adds r1, r1, r0
- ldr r6, _08005E58 @ =0x000001FF
- adds r0, r6, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sb
- ldr r2, [sp, #4]
- ldrb r0, [r2, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- adds r7, #1
- ldrh r6, [r5]
- cmp r7, r6
- blt _08005D94
-_08005DD0:
- ldr r1, _08005E5C @ =0x0200C4F8
- ldrh r0, [r1]
- cmp r0, #1
- bne _08005E34
- movs r0, #0xa8
- strh r0, [r1, #2]
- movs r0, #0x54
- strh r0, [r1, #4]
- ldr r5, _08005E50 @ =0x03005000
- ldr r2, _08005E54 @ =0xFFFFFE00
- mov r8, r2
- adds r4, r1, #0
- adds r4, #8
- movs r7, #2
-_08005DEC:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r5
- ldrb r0, [r2, #5]
- movs r1, #0xc
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r6, #2
- ldrsh r1, [r4, r6]
- ldr r2, _08005E5C @ =0x0200C4F8
- movs r6, #2
- ldrsh r0, [r2, r6]
- adds r1, r1, r0
- ldr r2, _08005E58 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldr r3, _08005E5C @ =0x0200C4F8
- ldrb r0, [r3, #4]
- ldrb r6, [r4, #4]
- adds r0, r0, r6
- strb r0, [r1]
- adds r4, #8
- subs r7, #1
- cmp r7, #0
- bge _08005DEC
-_08005E34:
- movs r0, #0
- ldr r1, [sp, #4]
- strh r0, [r1]
- add sp, #0xc
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08005E4C: .4byte 0x086A6148
-_08005E50: .4byte 0x03005000
-_08005E54: .4byte 0xFFFFFE00
-_08005E58: .4byte 0x000001FF
-_08005E5C: .4byte 0x0200C4F8
-
- thumb_func_start sub_5E60
-sub_5E60: @ 0x08005E60
- ldr r1, _08005E84 @ =0x0202C5F0
- movs r2, #0
- ldr r0, _08005E88 @ =0x0000DDDD
- strh r0, [r1]
- ldr r0, _08005E8C @ =0x0202C5B4
- movs r1, #1
- strh r1, [r0]
- ldr r0, _08005E90 @ =0x0201C180
- strh r1, [r0]
- ldr r0, _08005E94 @ =0x0201B128
- strb r2, [r0]
- ldr r0, _08005E98 @ =0x0201C1BC
- strb r2, [r0]
- ldr r0, _08005E9C @ =0x0202C544
- strb r2, [r0]
- ldr r0, _08005EA0 @ =0x0202BECC
- strb r2, [r0]
- bx lr
- .align 2, 0
-_08005E84: .4byte 0x0202C5F0
-_08005E88: .4byte 0x0000DDDD
-_08005E8C: .4byte 0x0202C5B4
-_08005E90: .4byte 0x0201C180
-_08005E94: .4byte 0x0201B128
-_08005E98: .4byte 0x0201C1BC
-_08005E9C: .4byte 0x0202C544
-_08005EA0: .4byte 0x0202BECC
-
- thumb_func_start sub_5EA4
-sub_5EA4: @ 0x08005EA4
- push {lr}
- ldr r0, _08005EB4 @ =0x0202BF20
- ldrb r0, [r0]
- cmp r0, #0
- beq _08005EB8
- bl sub_639C
- b _08005EBC
- .align 2, 0
-_08005EB4: .4byte 0x0202BF20
-_08005EB8:
- bl sub_65DC
-_08005EBC:
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- pop {r1}
- bx r1
-
- thumb_func_start sub_5EC8
-sub_5EC8: @ 0x08005EC8
- push {lr}
- ldr r0, _08005ED8 @ =0x0202BF20
- ldrb r0, [r0]
- cmp r0, #0
- beq _08005EDC
- bl sub_5EEC
- b _08005EE0
- .align 2, 0
-_08005ED8: .4byte 0x0202BF20
-_08005EDC:
- bl sub_6144
-_08005EE0:
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- pop {r1}
- bx r1
-
- thumb_func_start sub_5EEC
-sub_5EEC: @ 0x08005EEC
- push {r4, r5, lr}
- ldr r0, _08005F0C @ =0x0201B128
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _08005F5C
- ldr r0, _08005F10 @ =0x0201C1BC
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- beq _08005F14
- cmp r0, #1
- beq _08005F4C
- b _08006136
- .align 2, 0
-_08005F0C: .4byte 0x0201B128
-_08005F10: .4byte 0x0201C1BC
-_08005F14:
- ldr r0, _08005F28 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08005F34
- ldr r1, _08005F2C @ =0x0202C5F0
- ldr r0, _08005F30 @ =0x0000FEFE
- strh r0, [r1]
- b _08006136
- .align 2, 0
-_08005F28: .4byte 0x0200B0C0
-_08005F2C: .4byte 0x0202C5F0
-_08005F30: .4byte 0x0000FEFE
-_08005F34:
- ldr r1, _08005F48 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_08005F3C:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _08005F3C
- b _08006136
- .align 2, 0
-_08005F48: .4byte 0x0202C5F0
-_08005F4C:
- ldr r1, _08005F54 @ =0x0202C5F0
- ldr r0, _08005F58 @ =0x0000ECEC
- strh r0, [r1]
- b _08006136
- .align 2, 0
-_08005F54: .4byte 0x0202C5F0
-_08005F58: .4byte 0x0000ECEC
-_08005F5C:
- ldr r0, _08005F78 @ =0x0201C180
- ldrh r1, [r0]
- adds r5, r0, #0
- cmp r1, #7
- bhi _08005F84
- ldr r1, _08005F7C @ =0x0202C5F0
- ldr r2, _08005F80 @ =0x0000DDDD
- adds r0, r1, #0
- adds r0, #0xe
-_08005F6E:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _08005F6E
- b _08006130
- .align 2, 0
-_08005F78: .4byte 0x0201C180
-_08005F7C: .4byte 0x0202C5F0
-_08005F80: .4byte 0x0000DDDD
-_08005F84:
- cmp r1, #0xf
- bls _08005F8A
- b _08006120
-_08005F8A:
- ldrh r2, [r5]
- adds r1, r2, #0
- subs r1, #8
- lsls r0, r1, #3
- subs r0, r0, r1
- lsls r0, r0, #0x12
- lsrs r0, r0, #0x10
- mov ip, r0
- ldr r4, _08006118 @ =0x0202C5F0
- strh r2, [r4]
- ldr r3, _0800611C @ =0x0202A1C0
- lsls r2, r0, #1
- adds r2, r2, r3
- adds r0, #1
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #2
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #3
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #2]
- mov r2, ip
- adds r2, #4
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #5
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #6
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #7
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #4]
- mov r2, ip
- adds r2, #8
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #9
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0xa
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0xb
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #6]
- mov r2, ip
- adds r2, #0xc
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0xd
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0xe
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0xf
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #8]
- mov r2, ip
- adds r2, #0x10
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0x11
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0x12
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0x13
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #0xa]
- mov r2, ip
- adds r2, #0x14
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0x15
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0x16
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0x17
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #0xc]
- mov r2, ip
- adds r2, #0x18
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0x19
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0x1a
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0x1b
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #0xe]
- b _08006130
- .align 2, 0
-_08006118: .4byte 0x0202C5F0
-_0800611C: .4byte 0x0202A1C0
-_08006120:
- ldr r1, _08006140 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_08006128:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _08006128
-_08006130:
- ldrh r0, [r5]
- adds r0, #1
- strh r0, [r5]
-_08006136:
- movs r0, #0
- pop {r4, r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08006140: .4byte 0x0202C5F0
-
- thumb_func_start sub_6144
-sub_6144: @ 0x08006144
- push {r4, r5, lr}
- ldr r0, _08006164 @ =0x0201B128
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _080061B4
- ldr r0, _08006168 @ =0x0202C544
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- beq _0800616C
- cmp r0, #1
- beq _080061A4
- b _0800638E
- .align 2, 0
-_08006164: .4byte 0x0201B128
-_08006168: .4byte 0x0202C544
-_0800616C:
- ldr r0, _08006180 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800618C
- ldr r1, _08006184 @ =0x0202C5F0
- ldr r0, _08006188 @ =0x0000FEFE
- strh r0, [r1]
- b _0800638E
- .align 2, 0
-_08006180: .4byte 0x0200B0C0
-_08006184: .4byte 0x0202C5F0
-_08006188: .4byte 0x0000FEFE
-_0800618C:
- ldr r1, _080061A0 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_08006194:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _08006194
- b _0800638E
- .align 2, 0
-_080061A0: .4byte 0x0202C5F0
-_080061A4:
- ldr r1, _080061AC @ =0x0202C5F0
- ldr r0, _080061B0 @ =0x0000ECEC
- strh r0, [r1]
- b _0800638E
- .align 2, 0
-_080061AC: .4byte 0x0202C5F0
-_080061B0: .4byte 0x0000ECEC
-_080061B4:
- ldr r0, _080061D0 @ =0x0201C180
- ldrh r1, [r0]
- adds r5, r0, #0
- cmp r1, #7
- bhi _080061DC
- ldr r1, _080061D4 @ =0x0202C5F0
- ldr r2, _080061D8 @ =0x0000DDDD
- adds r0, r1, #0
- adds r0, #0xe
-_080061C6:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _080061C6
- b _08006388
- .align 2, 0
-_080061D0: .4byte 0x0201C180
-_080061D4: .4byte 0x0202C5F0
-_080061D8: .4byte 0x0000DDDD
-_080061DC:
- cmp r1, #0xf
- bls _080061E2
- b _08006378
-_080061E2:
- ldrh r2, [r5]
- adds r1, r2, #0
- subs r1, #8
- lsls r0, r1, #3
- subs r0, r0, r1
- lsls r0, r0, #0x12
- lsrs r0, r0, #0x10
- mov ip, r0
- ldr r4, _08006370 @ =0x0202C5F0
- strh r2, [r4]
- ldr r3, _08006374 @ =0x0202A1C0
- lsls r2, r0, #1
- adds r2, r2, r3
- adds r0, #1
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #2
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #3
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #2]
- mov r2, ip
- adds r2, #4
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #5
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #6
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #7
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #4]
- mov r2, ip
- adds r2, #8
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #9
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0xa
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0xb
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #6]
- mov r2, ip
- adds r2, #0xc
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0xd
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0xe
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0xf
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #8]
- mov r2, ip
- adds r2, #0x10
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0x11
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0x12
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0x13
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #0xa]
- mov r2, ip
- adds r2, #0x14
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0x15
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0x16
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0x17
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #0xc]
- mov r2, ip
- adds r2, #0x18
- lsls r2, r2, #1
- adds r2, r2, r3
- mov r0, ip
- adds r0, #0x19
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r1, [r0]
- lsls r1, r1, #4
- ldrh r0, [r2]
- orrs r1, r0
- mov r0, ip
- adds r0, #0x1a
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- mov r0, ip
- adds r0, #0x1b
- lsls r0, r0, #1
- adds r0, r0, r3
- ldrh r0, [r0]
- lsls r0, r0, #0xc
- orrs r1, r0
- strh r1, [r4, #0xe]
- b _08006388
- .align 2, 0
-_08006370: .4byte 0x0202C5F0
-_08006374: .4byte 0x0202A1C0
-_08006378:
- ldr r1, _08006398 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_08006380:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _08006380
-_08006388:
- ldrh r0, [r5]
- adds r0, #1
- strh r0, [r5]
-_0800638E:
- movs r0, #0
- pop {r4, r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08006398: .4byte 0x0202C5F0
-
- thumb_func_start sub_639C
-sub_639C: @ 0x0800639C
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #0x38
- ldr r4, _080063C0 @ =0x0201B128
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _08006438
- ldr r3, _080063C4 @ =0x0201C1BC
- movs r1, #0
- ldrsb r1, [r3, r1]
- cmp r1, #0
- beq _080063C8
- cmp r1, #1
- beq _080063E8
- b _080065AA
- .align 2, 0
-_080063C0: .4byte 0x0201B128
-_080063C4: .4byte 0x0201C1BC
-_080063C8:
- ldr r2, _080063E0 @ =0x0201A4D0
- ldrh r0, [r2]
- ldr r1, _080063E4 @ =0x0000FEFE
- cmp r0, r1
- beq _080063DA
- ldrh r0, [r2, #2]
- cmp r0, r1
- beq _080063DA
- b _080065AA
-_080063DA:
- movs r0, #1
- strb r0, [r3]
- b _080065AA
- .align 2, 0
-_080063E0: .4byte 0x0201A4D0
-_080063E4: .4byte 0x0000FEFE
-_080063E8:
- ldr r3, _0800640C @ =0x0201A4D0
- ldrh r2, [r3]
- ldr r0, _08006410 @ =0x0000ECEC
- cmp r2, r0
- bne _0800641C
- ldrh r0, [r3, #2]
- cmp r0, r2
- bne _0800641C
- movs r2, #1
- rsbs r2, r2, #0
- adds r0, r2, #0
- strb r0, [r4]
- ldr r0, _08006414 @ =0x0202BEFC
- strb r1, [r0]
- ldr r0, _08006418 @ =0x0201C180
- strh r1, [r0]
- b _080065AA
- .align 2, 0
-_0800640C: .4byte 0x0201A4D0
-_08006410: .4byte 0x0000ECEC
-_08006414: .4byte 0x0202BEFC
-_08006418: .4byte 0x0201C180
-_0800641C:
- ldr r1, _08006434 @ =0x0202BECC
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0xa
- bgt _0800642E
- b _080065AA
-_0800642E:
- movs r0, #1
- b _080065CC
- .align 2, 0
-_08006434: .4byte 0x0202BECC
-_08006438:
- ldr r7, _0800656C @ =0x0201A4D0
- ldrh r1, [r7, #2]
- adds r0, r1, #0
- subs r0, #8
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- cmp r0, #7
- bls _0800644A
- b _080065CA
-_0800644A:
- ldr r0, _08006570 @ =0x0202C5B4
- mov r8, r0
- strh r1, [r0]
- mov r2, sp
- ldrh r1, [r7, #6]
- movs r6, #0xf
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2]
- movs r5, #0xf0
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #2]
- movs r4, #0xf0
- lsls r4, r4, #4
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #4]
- movs r3, #0xf0
- lsls r3, r3, #8
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #6]
- ldrh r1, [r7, #0xa]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #8]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0xa]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0xc]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0xe]
- ldrh r1, [r7, #0xe]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x10]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x12]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x14]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x16]
- ldrh r1, [r7, #0x12]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x18]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x1a]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x1c]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x1e]
- ldrh r1, [r7, #0x16]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x20]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x22]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x24]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x26]
- ldrh r1, [r7, #0x1a]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x28]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x2a]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x2c]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x2e]
- mov r1, sp
- ldrh r0, [r7, #0x1e]
- ands r6, r0
- strh r6, [r1, #0x30]
- ands r5, r0
- lsrs r5, r5, #4
- strh r5, [r1, #0x32]
- ands r4, r0
- lsrs r4, r4, #8
- strh r4, [r1, #0x34]
- ands r3, r0
- lsrs r3, r3, #0xc
- strh r3, [r1, #0x36]
- movs r3, #0
- ldr r6, _08006574 @ =0x0202A1C0
- ldr r5, _08006578 @ =0x0202A390
- mov r4, sp
-_08006540:
- mov r2, r8
- ldrh r1, [r2]
- subs r1, #8
- lsls r0, r1, #3
- subs r0, r0, r1
- lsls r0, r0, #2
- adds r0, r0, r3
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
- lsls r1, r2, #1
- adds r0, r1, r6
- movs r7, #0
- ldrsh r0, [r0, r7]
- cmp r0, #0
- bne _0800657C
- ldrh r0, [r4]
- cmp r0, #4
- bne _0800657C
- adds r1, r1, r5
- movs r0, #2
- b _08006592
- .align 2, 0
-_0800656C: .4byte 0x0201A4D0
-_08006570: .4byte 0x0202C5B4
-_08006574: .4byte 0x0202A1C0
-_08006578: .4byte 0x0202A390
-_0800657C:
- lsls r1, r2, #1
- adds r0, r1, r6
- movs r2, #0
- ldrsh r0, [r0, r2]
- cmp r0, #1
- bne _08006594
- ldrh r0, [r4]
- cmp r0, #4
- bne _08006594
- adds r1, r1, r5
- movs r0, #3
-_08006592:
- strh r0, [r1]
-_08006594:
- adds r4, #2
- adds r3, #1
- cmp r3, #0x1b
- ble _08006540
- mov r7, r8
- ldrh r0, [r7]
- cmp r0, #0xf
- bne _080065AA
- movs r0, #1
- rsbs r0, r0, #0
- b _080065CC
-_080065AA:
- movs r3, #0
- ldr r5, _080065D8 @ =0x0201A4D0
- movs r4, #0
-_080065B0:
- adds r2, r3, #1
- lsls r0, r3, #2
- movs r1, #1
- adds r0, r0, r5
- adds r0, #2
-_080065BA:
- strh r4, [r0]
- subs r0, #2
- subs r1, #1
- cmp r1, #0
- bge _080065BA
- adds r3, r2, #0
- cmp r3, #7
- ble _080065B0
-_080065CA:
- movs r0, #0
-_080065CC:
- add sp, #0x38
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080065D8: .4byte 0x0201A4D0
-
- thumb_func_start sub_65DC
-sub_65DC: @ 0x080065DC
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #0x38
- ldr r4, _08006600 @ =0x0201B128
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _08006678
- ldr r3, _08006604 @ =0x0202C544
- movs r1, #0
- ldrsb r1, [r3, r1]
- cmp r1, #0
- beq _08006608
- cmp r1, #1
- beq _08006628
- b _080067EA
- .align 2, 0
-_08006600: .4byte 0x0201B128
-_08006604: .4byte 0x0202C544
-_08006608:
- ldr r2, _08006620 @ =0x0201A4D0
- ldrh r0, [r2]
- ldr r1, _08006624 @ =0x0000FEFE
- cmp r0, r1
- beq _0800661A
- ldrh r0, [r2, #2]
- cmp r0, r1
- beq _0800661A
- b _080067EA
-_0800661A:
- movs r0, #1
- strb r0, [r3]
- b _080067EA
- .align 2, 0
-_08006620: .4byte 0x0201A4D0
-_08006624: .4byte 0x0000FEFE
-_08006628:
- ldr r3, _0800664C @ =0x0201A4D0
- ldrh r2, [r3]
- ldr r0, _08006650 @ =0x0000ECEC
- cmp r2, r0
- bne _0800665C
- ldrh r0, [r3, #2]
- cmp r0, r2
- bne _0800665C
- movs r2, #1
- rsbs r2, r2, #0
- adds r0, r2, #0
- strb r0, [r4]
- ldr r0, _08006654 @ =0x0202BEFC
- strb r1, [r0]
- ldr r0, _08006658 @ =0x0201C180
- strh r1, [r0]
- b _080067EA
- .align 2, 0
-_0800664C: .4byte 0x0201A4D0
-_08006650: .4byte 0x0000ECEC
-_08006654: .4byte 0x0202BEFC
-_08006658: .4byte 0x0201C180
-_0800665C:
- ldr r1, _08006674 @ =0x0202BECC
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0xa
- bgt _0800666E
- b _080067EA
-_0800666E:
- movs r0, #1
- b _0800680C
- .align 2, 0
-_08006674: .4byte 0x0202BECC
-_08006678:
- ldr r7, _080067AC @ =0x0201A4D0
- ldrh r1, [r7]
- adds r0, r1, #0
- subs r0, #8
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- cmp r0, #7
- bls _0800668A
- b _0800680A
-_0800668A:
- ldr r0, _080067B0 @ =0x0202C5B4
- mov r8, r0
- strh r1, [r0]
- mov r2, sp
- ldrh r1, [r7, #4]
- movs r6, #0xf
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2]
- movs r5, #0xf0
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #2]
- movs r4, #0xf0
- lsls r4, r4, #4
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #4]
- movs r3, #0xf0
- lsls r3, r3, #8
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #6]
- ldrh r1, [r7, #8]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #8]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0xa]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0xc]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0xe]
- ldrh r1, [r7, #0xc]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x10]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x12]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x14]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x16]
- ldrh r1, [r7, #0x10]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x18]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x1a]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x1c]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x1e]
- ldrh r1, [r7, #0x14]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x20]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x22]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x24]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x26]
- ldrh r1, [r7, #0x18]
- adds r0, r6, #0
- ands r0, r1
- strh r0, [r2, #0x28]
- adds r0, r5, #0
- ands r0, r1
- lsrs r0, r0, #4
- strh r0, [r2, #0x2a]
- adds r0, r4, #0
- ands r0, r1
- lsrs r0, r0, #8
- strh r0, [r2, #0x2c]
- adds r0, r3, #0
- ands r0, r1
- lsrs r0, r0, #0xc
- strh r0, [r2, #0x2e]
- mov r1, sp
- ldrh r0, [r7, #0x1c]
- ands r6, r0
- strh r6, [r1, #0x30]
- ands r5, r0
- lsrs r5, r5, #4
- strh r5, [r1, #0x32]
- ands r4, r0
- lsrs r4, r4, #8
- strh r4, [r1, #0x34]
- ands r3, r0
- lsrs r3, r3, #0xc
- strh r3, [r1, #0x36]
- movs r3, #0
- ldr r6, _080067B4 @ =0x0202A1C0
- ldr r5, _080067B8 @ =0x0202A390
- mov r4, sp
-_08006780:
- mov r2, r8
- ldrh r1, [r2]
- subs r1, #8
- lsls r0, r1, #3
- subs r0, r0, r1
- lsls r0, r0, #2
- adds r0, r0, r3
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
- lsls r1, r2, #1
- adds r0, r1, r6
- movs r7, #0
- ldrsh r0, [r0, r7]
- cmp r0, #0
- bne _080067BC
- ldrh r0, [r4]
- cmp r0, #4
- bne _080067BC
- adds r1, r1, r5
- movs r0, #2
- b _080067D2
- .align 2, 0
-_080067AC: .4byte 0x0201A4D0
-_080067B0: .4byte 0x0202C5B4
-_080067B4: .4byte 0x0202A1C0
-_080067B8: .4byte 0x0202A390
-_080067BC:
- lsls r1, r2, #1
- adds r0, r1, r6
- movs r2, #0
- ldrsh r0, [r0, r2]
- cmp r0, #1
- bne _080067D4
- ldrh r0, [r4]
- cmp r0, #4
- bne _080067D4
- adds r1, r1, r5
- movs r0, #3
-_080067D2:
- strh r0, [r1]
-_080067D4:
- adds r4, #2
- adds r3, #1
- cmp r3, #0x1b
- ble _08006780
- mov r7, r8
- ldrh r0, [r7]
- cmp r0, #0xf
- bne _080067EA
- movs r0, #1
- rsbs r0, r0, #0
- b _0800680C
-_080067EA:
- movs r3, #0
- ldr r5, _08006818 @ =0x0201A4D0
- movs r4, #0
-_080067F0:
- adds r2, r3, #1
- lsls r0, r3, #2
- movs r1, #1
- adds r0, r0, r5
- adds r0, #2
-_080067FA:
- strh r4, [r0]
- subs r0, #2
- subs r1, #1
- cmp r1, #0
- bge _080067FA
- adds r3, r2, #0
- cmp r3, #7
- ble _080067F0
-_0800680A:
- movs r0, #0
-_0800680C:
- add sp, #0x38
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08006818: .4byte 0x0201A4D0
-
- thumb_func_start sub_681C
-sub_681C: @ 0x0800681C
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- sub sp, #0xc
- add r2, sp, #8
- movs r1, #0
- strh r1, [r2]
- ldr r2, _08006884 @ =0x040000D4
- add r1, sp, #8
- str r1, [r2]
- ldr r1, _08006888 @ =0x03000000
- str r1, [r2, #4]
- ldr r1, _0800688C @ =0x81000400
- str r1, [r2, #8]
- ldr r1, [r2, #8]
- movs r2, #0
- mov r8, r2
- lsls r7, r0, #0x10
- asrs r2, r7, #0x10
- cmp r2, #0xc8
- bne _080068CC
- ldr r0, _08006890 @ =0x0202A1C0
- movs r3, #0xc8
- lsls r3, r3, #1
- adds r0, r0, r3
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0
- beq _08006894
- movs r5, #1
- str r5, [sp]
- movs r4, #2
- str r4, [sp, #4]
- movs r0, #0x22
- movs r1, #1
- movs r2, #5
- movs r3, #2
- bl sub_105A0
- str r5, [sp]
- str r4, [sp, #4]
- movs r0, #0x20
- movs r1, #1
- movs r2, #6
- movs r3, #2
- bl sub_105A0
- str r5, [sp]
- str r4, [sp, #4]
- movs r0, #0x21
- b _080068BE
- .align 2, 0
-_08006884: .4byte 0x040000D4
-_08006888: .4byte 0x03000000
-_0800688C: .4byte 0x81000400
-_08006890: .4byte 0x0202A1C0
-_08006894:
- movs r5, #1
- str r5, [sp]
- movs r4, #2
- str r4, [sp, #4]
- movs r0, #0x2a
- movs r1, #1
- movs r2, #5
- movs r3, #2
- bl sub_105A0
- str r5, [sp]
- str r4, [sp, #4]
- movs r0, #0x2a
- movs r1, #1
- movs r2, #6
- movs r3, #2
- bl sub_105A0
- str r5, [sp]
- str r4, [sp, #4]
- movs r0, #0x2a
-_080068BE:
- movs r1, #1
- movs r2, #7
- movs r3, #2
- bl sub_105A0
- mov sb, r7
- b _08006900
-_080068CC:
- movs r6, #0
- mov sb, r7
- ldr r1, _08006998 @ =0x0805C8B4
- lsls r0, r2, #3
- adds r0, r0, r2
- lsls r0, r0, #4
- subs r0, r0, r2
- lsls r0, r0, #2
- adds r4, r0, r1
-_080068DE:
- ldrh r0, [r4]
- adds r0, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #5
- movs r1, #1
- str r1, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #1
- movs r3, #2
- bl sub_105A0
- adds r4, #2
- adds r6, #1
- cmp r6, #2
- ble _080068DE
-_08006900:
- ldr r0, _0800699C @ =0x0202A1C0
- mov r3, sb
- asrs r2, r3, #0x10
- lsls r1, r2, #1
- adds r1, r1, r0
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #0
- ble _080069C4
- movs r6, #0
- ldr r1, _080069A0 @ =0x0805C8CC
- ldr r5, _080069A4 @ =0x040000D4
- lsls r0, r2, #3
- adds r0, r0, r2
- lsls r0, r0, #4
- subs r0, r0, r2
- lsls r0, r0, #2
- adds r7, r0, r1
-_08006924:
- ldrh r1, [r7]
- movs r2, #0x10
- rsbs r2, r2, #0
- adds r0, r2, #0
- adds r3, r0, #0
- ands r3, r1
- movs r4, #0xf
- ands r4, r1
- cmp r4, #0
- bne _0800693A
- movs r4, #4
-_0800693A:
- ldr r1, _080069A8 @ =0x08090780
- adds r0, r3, r1
- str r0, [r5]
- ldr r0, _080069AC @ =0x0202BE30
- str r0, [r5, #4]
- ldr r2, _080069B0 @ =0x80000010
- str r2, [r5, #8]
- ldr r0, [r5, #8]
- movs r0, #0x80
- lsls r0, r0, #3
- adds r1, r1, r0
- adds r1, r3, r1
- str r1, [r5]
- ldr r0, _080069B4 @ =0x0201B130
- str r0, [r5, #4]
- str r2, [r5, #8]
- ldr r0, [r5, #8]
- adds r0, r4, #0
- mov r1, r8
- movs r2, #0
- bl sub_71DC
- add r8, r4
- adds r7, #2
- adds r6, #1
- cmp r6, #9
- ble _08006924
- ldr r4, _080069B8 @ =0x03000000
- ldr r1, _080069BC @ =0x06004C00
- adds r0, r4, #0
- movs r2, #8
- movs r3, #2
- bl sub_10708
- add r1, sp, #8
- movs r0, #0
- strh r0, [r1]
- ldr r0, _080069A4 @ =0x040000D4
- str r1, [r0]
- str r4, [r0, #4]
- ldr r1, _080069C0 @ =0x81000400
- str r1, [r0, #8]
- ldr r0, [r0, #8]
- movs r1, #0
- mov r8, r1
- b _080069DC
- .align 2, 0
-_08006998: .4byte 0x0805C8B4
-_0800699C: .4byte 0x0202A1C0
-_080069A0: .4byte 0x0805C8CC
-_080069A4: .4byte 0x040000D4
-_080069A8: .4byte 0x08090780
-_080069AC: .4byte 0x0202BE30
-_080069B0: .4byte 0x80000010
-_080069B4: .4byte 0x0201B130
-_080069B8: .4byte 0x03000000
-_080069BC: .4byte 0x06004C00
-_080069C0: .4byte 0x81000400
-_080069C4:
- ldr r4, _08006A74 @ =0x06004C00
- movs r6, #9
-_080069C8:
- ldr r0, _08006A78 @ =0x08092FA0
- adds r1, r4, #0
- movs r2, #1
- movs r3, #2
- bl sub_10708
- adds r4, #0x20
- subs r6, #1
- cmp r6, #0
- bge _080069C8
-_080069DC:
- ldr r1, _08006A7C @ =0x0202A1C0
- mov r3, sb
- asrs r2, r3, #0x10
- lsls r0, r2, #1
- adds r0, r0, r1
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #1
- beq _080069F2
- cmp r0, #2
- ble _08006AA4
-_080069F2:
- movs r6, #0
- ldr r1, _08006A80 @ =0x0805C8E0
- ldr r5, _08006A84 @ =0x040000D4
- lsls r0, r2, #3
- adds r0, r0, r2
- lsls r0, r0, #4
- subs r0, r0, r2
- lsls r0, r0, #2
- adds r7, r0, r1
-_08006A04:
- ldrh r1, [r7]
- movs r2, #0x10
- rsbs r2, r2, #0
- adds r0, r2, #0
- adds r3, r0, #0
- ands r3, r1
- movs r4, #0xf
- ands r4, r1
- cmp r4, #0
- bne _08006A1A
- movs r4, #6
-_08006A1A:
- ldr r1, _08006A88 @ =0x08090780
- adds r0, r3, r1
- str r0, [r5]
- ldr r0, _08006A8C @ =0x0202BE30
- str r0, [r5, #4]
- ldr r2, _08006A90 @ =0x80000010
- str r2, [r5, #8]
- ldr r0, [r5, #8]
- movs r0, #0x80
- lsls r0, r0, #3
- adds r1, r1, r0
- adds r1, r3, r1
- str r1, [r5]
- ldr r0, _08006A94 @ =0x0201B130
- str r0, [r5, #4]
- str r2, [r5, #8]
- ldr r0, [r5, #8]
- adds r0, r4, #0
- mov r1, r8
- movs r2, #0
- bl sub_71DC
- add r8, r4
- adds r7, #2
- adds r6, #1
- cmp r6, #0xa
- ble _08006A04
- ldr r4, _08006A98 @ =0x03000000
- ldr r1, _08006A9C @ =0x06004D00
- adds r0, r4, #0
- movs r2, #9
- movs r3, #2
- bl sub_10708
- add r1, sp, #8
- movs r0, #0
- strh r0, [r1]
- ldr r0, _08006A84 @ =0x040000D4
- str r1, [r0]
- str r4, [r0, #4]
- ldr r1, _08006AA0 @ =0x81000400
- str r1, [r0, #8]
- ldr r0, [r0, #8]
- b _08006ABC
- .align 2, 0
-_08006A74: .4byte 0x06004C00
-_08006A78: .4byte 0x08092FA0
-_08006A7C: .4byte 0x0202A1C0
-_08006A80: .4byte 0x0805C8E0
-_08006A84: .4byte 0x040000D4
-_08006A88: .4byte 0x08090780
-_08006A8C: .4byte 0x0202BE30
-_08006A90: .4byte 0x80000010
-_08006A94: .4byte 0x0201B130
-_08006A98: .4byte 0x03000000
-_08006A9C: .4byte 0x06004D00
-_08006AA0: .4byte 0x81000400
-_08006AA4:
- ldr r4, _08006B6C @ =0x06004D00
- movs r6, #8
-_08006AA8:
- ldr r0, _08006B70 @ =0x08092FA0
- adds r1, r4, #0
- movs r2, #1
- movs r3, #2
- bl sub_10708
- adds r4, #0x20
- subs r6, #1
- cmp r6, #0
- bge _08006AA8
-_08006ABC:
- ldr r0, _08006B74 @ =0x0202A1C0
- mov r1, sb
- asrs r2, r1, #0x10
- lsls r1, r2, #1
- adds r1, r1, r0
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #4
- bne _08006B7C
- ldr r0, _08006B78 @ =0x0805C8B4
- mov sb, r0
- lsls r4, r2, #3
- adds r4, r4, r2
- lsls r4, r4, #4
- subs r4, r4, r2
- lsls r4, r4, #2
- adds r1, r4, #0
- add r1, sb
- mov r8, r1
- ldrh r0, [r1, #6]
- adds r0, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- movs r6, #1
- str r6, [sp]
- movs r5, #2
- str r5, [sp, #4]
- movs r1, #1
- movs r2, #0x10
- movs r3, #6
- bl sub_105A0
- mov r2, r8
- ldrh r0, [r2, #8]
- adds r0, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r6, [sp]
- str r5, [sp, #4]
- movs r1, #1
- movs r2, #0x11
- movs r3, #6
- bl sub_105A0
- mov r3, r8
- ldrh r0, [r3, #0xa]
- adds r0, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r6, [sp]
- str r5, [sp, #4]
- movs r1, #1
- movs r2, #0x13
- movs r3, #6
- bl sub_105A0
- mov r1, r8
- ldrh r0, [r1, #0xc]
- adds r0, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r6, [sp]
- str r5, [sp, #4]
- movs r1, #1
- movs r2, #0x14
- movs r3, #6
- bl sub_105A0
- movs r6, #0
- movs r2, #0xe
- add sb, r2
- add r4, sb
- movs r5, #1
-_08006B4E:
- ldrh r0, [r4]
- adds r2, r6, #0
- adds r2, #0x10
- str r5, [sp]
- str r5, [sp, #4]
- movs r1, #1
- movs r3, #8
- bl sub_105A0
- adds r4, #2
- adds r6, #1
- cmp r6, #4
- ble _08006B4E
- b _08006BDC
- .align 2, 0
-_08006B6C: .4byte 0x06004D00
-_08006B70: .4byte 0x08092FA0
-_08006B74: .4byte 0x0202A1C0
-_08006B78: .4byte 0x0805C8B4
-_08006B7C:
- movs r5, #1
- str r5, [sp]
- movs r4, #2
- str r4, [sp, #4]
- movs r0, #0x2b
- movs r1, #1
- movs r2, #0x10
- movs r3, #6
- bl sub_105A0
- str r5, [sp]
- str r4, [sp, #4]
- movs r0, #0x2b
- movs r1, #1
- movs r2, #0x11
- movs r3, #6
- bl sub_105A0
- str r5, [sp]
- str r4, [sp, #4]
- movs r0, #0x2b
- movs r1, #1
- movs r2, #0x13
- movs r3, #6
- bl sub_105A0
- str r5, [sp]
- str r4, [sp, #4]
- movs r0, #0x2b
- movs r1, #1
- movs r2, #0x14
- movs r3, #6
- bl sub_105A0
- movs r6, #0
- movs r4, #1
-_08006BC4:
- adds r2, r6, #0
- adds r2, #0x10
- str r4, [sp]
- str r4, [sp, #4]
- movs r0, #0xb
- movs r1, #1
- movs r3, #8
- bl sub_105A0
- adds r6, #1
- cmp r6, #4
- ble _08006BC4
-_08006BDC:
- add sp, #0xc
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_start sub_6BEC
-sub_6BEC: @ 0x08006BEC
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #0x20
- adds r4, r1, #0
- lsls r4, r4, #0x10
- lsrs r4, r4, #0x10
- lsls r0, r0, #0x10
- asrs r6, r0, #0x10
- adds r0, r6, #0
- movs r1, #0x64
- bl __divsi3
- str r0, [sp, #8]
- adds r0, r6, #0
- movs r1, #0x64
- bl __modsi3
- adds r5, r0, #0
- movs r1, #0xa
- bl __divsi3
- str r0, [sp, #0xc]
- adds r0, r5, #0
- movs r1, #0xa
- bl __modsi3
- str r0, [sp, #0x10]
- lsls r4, r4, #0x10
- asrs r6, r4, #0x10
- add r5, sp, #0x14
- adds r0, r6, #0
- movs r1, #0x64
- bl __divsi3
- str r0, [sp, #0x14]
- adds r0, r6, #0
- movs r1, #0x64
- bl __modsi3
- adds r4, r0, #0
- movs r1, #0xa
- bl __divsi3
- str r0, [r5, #4]
- adds r0, r4, #0
- movs r1, #0xa
- bl __modsi3
- str r0, [r5, #8]
- movs r6, #0
- movs r7, #1
- mov r8, r5
- add r5, sp, #8
-_08006C58:
- ldm r5!, {r0}
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r4, r6, #0
- adds r4, #0x19
- str r7, [sp]
- str r7, [sp, #4]
- movs r1, #2
- adds r2, r4, #0
- movs r3, #0xf
- bl sub_105A0
- mov r1, r8
- adds r1, #4
- mov r8, r1
- subs r1, #4
- ldm r1!, {r0}
- adds r0, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r7, [sp]
- movs r1, #2
- str r1, [sp, #4]
- adds r2, r4, #0
- movs r3, #0x10
- bl sub_105A0
- adds r6, #1
- cmp r6, #2
- ble _08006C58
- add sp, #0x20
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_start sub_6CA0
-sub_6CA0: @ 0x08006CA0
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r0, [sp, #0xc]
- add r1, sp, #8
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08006D2C @ =0x040000D4
- add r0, sp, #8
- str r0, [r1]
- ldr r0, _08006D30 @ =0x03000000
- str r0, [r1, #4]
- ldr r0, _08006D34 @ =0x81000400
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r1, #0
- str r1, [sp, #0x10]
- mov r8, r1
- ldr r2, [sp, #0xc]
- lsls r2, r2, #0x10
- str r2, [sp, #0x14]
- movs r3, #1
- mov sb, r3
- movs r5, #2
- movs r4, #0
- str r4, [sp, #0x18]
- movs r4, #0xa
-_08006CE0:
- ldr r1, [sp, #0xc]
- lsls r0, r1, #0x10
- asrs r0, r0, #0x10
- add r0, r8
- cmp r0, #0xc8
- bne _08006D74
- ldr r0, _08006D38 @ =0x0202A1C0
- movs r2, #0xc8
- lsls r2, r2, #1
- adds r0, r0, r2
- movs r3, #0
- ldrsh r0, [r0, r3]
- cmp r0, #0
- beq _08006D3C
- mov r0, sb
- str r0, [sp]
- str r5, [sp, #4]
- movs r0, #0x22
- movs r1, #2
- movs r2, #8
- adds r3, r4, #0
- bl sub_105A0
- mov r1, sb
- str r1, [sp]
- str r5, [sp, #4]
- movs r0, #0x20
- movs r1, #2
- movs r2, #9
- adds r3, r4, #0
- bl sub_105A0
- mov r2, sb
- str r2, [sp]
- str r5, [sp, #4]
- movs r0, #0x21
- b _08006D68
- .align 2, 0
-_08006D2C: .4byte 0x040000D4
-_08006D30: .4byte 0x03000000
-_08006D34: .4byte 0x81000400
-_08006D38: .4byte 0x0202A1C0
-_08006D3C:
- mov r3, sb
- str r3, [sp]
- str r5, [sp, #4]
- movs r0, #0x2a
- movs r1, #2
- movs r2, #8
- adds r3, r4, #0
- bl sub_105A0
- mov r0, sb
- str r0, [sp]
- str r5, [sp, #4]
- movs r0, #0x2a
- movs r1, #2
- movs r2, #9
- adds r3, r4, #0
- bl sub_105A0
- mov r1, sb
- str r1, [sp]
- str r5, [sp, #4]
- movs r0, #0x2a
-_08006D68:
- movs r1, #2
- movs r2, #0xa
- adds r3, r4, #0
- bl sub_105A0
- b _08006DB6
-_08006D74:
- movs r6, #0
- ldr r7, [sp, #0x18]
- ldr r2, _08006E94 @ =0x0805C8B4
- mov sl, r2
-_08006D7C:
- lsls r2, r6, #1
- ldr r0, _08006E98 @ =0x0202C5B0
- movs r3, #0
- ldrsh r1, [r0, r3]
- add r1, r8
- lsls r0, r1, #3
- adds r0, r0, r1
- lsls r0, r0, #4
- subs r0, r0, r1
- lsls r0, r0, #2
- adds r2, r2, r0
- add r2, sl
- ldrh r0, [r2]
- adds r0, #0x20
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #0
- adds r2, #8
- mov r1, sb
- str r1, [sp]
- str r5, [sp, #4]
- movs r1, #2
- adds r3, r7, #0
- adds r3, #0xa
- bl sub_105A0
- adds r6, #1
- cmp r6, #2
- ble _08006D7C
-_08006DB6:
- ldr r2, [sp, #0x18]
- adds r2, #2
- str r2, [sp, #0x18]
- adds r4, #2
- movs r3, #1
- add r8, r3
- mov r0, r8
- cmp r0, #4
- ble _08006CE0
- movs r1, #0
- mov r8, r1
-_08006DCC:
- ldr r0, _08006E9C @ =0x0202A1C0
- ldr r2, [sp, #0x14]
- asrs r1, r2, #0x10
- add r1, r8
- lsls r1, r1, #1
- adds r1, r1, r0
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #0
- ble _08006EC4
- movs r6, #0
- mov r4, r8
- lsls r7, r4, #1
- movs r0, #1
- add r0, r8
- mov sb, r0
- ldr r5, _08006EA0 @ =0x040000D4
- ldr r3, _08006EA4 @ =0x08090780
- movs r1, #0x80
- lsls r1, r1, #3
- adds r1, r1, r3
- mov sl, r1
-_08006DF8:
- lsls r2, r6, #1
- ldr r0, _08006E98 @ =0x0202C5B0
- movs r4, #0
- ldrsh r1, [r0, r4]
- add r1, r8
- lsls r0, r1, #3
- adds r0, r0, r1
- lsls r0, r0, #4
- subs r0, r0, r1
- lsls r0, r0, #2
- adds r2, r2, r0
- ldr r0, _08006EA8 @ =0x0805C8CC
- adds r2, r2, r0
- ldrh r1, [r2]
- movs r2, #0x10
- rsbs r2, r2, #0
- adds r0, r2, #0
- adds r2, r1, #0
- ands r2, r0
- movs r4, #0xf
- ands r4, r1
- cmp r4, #0
- bne _08006E28
- movs r4, #4
-_08006E28:
- adds r0, r2, r3
- str r0, [r5]
- ldr r0, _08006EAC @ =0x0202BE30
- str r0, [r5, #4]
- ldr r0, _08006EB0 @ =0x80000010
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- mov r1, sl
- adds r0, r2, r1
- str r0, [r5]
- ldr r0, _08006EB4 @ =0x0201B130
- str r0, [r5, #4]
- ldr r2, _08006EB0 @ =0x80000010
- str r2, [r5, #8]
- ldr r0, [r5, #8]
- adds r0, r4, #0
- ldr r1, [sp, #0x10]
- movs r2, #0
- str r3, [sp, #0x1c]
- bl sub_71DC
- ldr r0, [sp, #0x10]
- adds r0, r0, r4
- str r0, [sp, #0x10]
- adds r6, #1
- ldr r3, [sp, #0x1c]
- cmp r6, #9
- ble _08006DF8
- ldr r1, _08006EB8 @ =0x086A64F0
- adds r0, r7, r1
- movs r2, #0
- ldrsh r1, [r0, r2]
- movs r3, #0xc0
- lsls r3, r3, #0x13
- adds r1, r1, r3
- ldr r0, _08006EBC @ =0x03000000
- movs r2, #8
- movs r3, #2
- bl sub_10708
- add r1, sp, #8
- movs r0, #0
- strh r0, [r1]
- ldr r1, _08006EA0 @ =0x040000D4
- add r4, sp, #8
- str r4, [r1]
- ldr r0, _08006EBC @ =0x03000000
- str r0, [r1, #4]
- ldr r0, _08006EC0 @ =0x81000400
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r1, #0
- str r1, [sp, #0x10]
- b _08006F06
- .align 2, 0
-_08006E94: .4byte 0x0805C8B4
-_08006E98: .4byte 0x0202C5B0
-_08006E9C: .4byte 0x0202A1C0
-_08006EA0: .4byte 0x040000D4
-_08006EA4: .4byte 0x08090780
-_08006EA8: .4byte 0x0805C8CC
-_08006EAC: .4byte 0x0202BE30
-_08006EB0: .4byte 0x80000010
-_08006EB4: .4byte 0x0201B130
-_08006EB8: .4byte 0x086A64F0
-_08006EBC: .4byte 0x03000000
-_08006EC0: .4byte 0x81000400
-_08006EC4:
- mov r2, r8
- lsls r7, r2, #1
- movs r3, #1
- add r3, r8
- mov sb, r3
- ldr r4, _08006F20 @ =0x086A64F0
- adds r5, r7, r4
- movs r4, #0xc0
- lsls r4, r4, #0x13
- movs r6, #6
-_08006ED8:
- movs r0, #0
- ldrsh r1, [r5, r0]
- adds r1, r1, r4
- ldr r0, _08006F24 @ =0x08092FA0
- movs r2, #1
- movs r3, #2
- bl sub_10708
- adds r4, #0x20
- subs r6, #1
- cmp r6, #0
- bge _08006ED8
- ldr r1, _08006F20 @ =0x086A64F0
- adds r0, r7, r1
- movs r2, #0
- ldrsh r1, [r0, r2]
- ldr r3, _08006F28 @ =0x060000E0
- adds r1, r1, r3
- ldr r0, _08006F2C @ =0x08090780
- movs r2, #1
- movs r3, #2
- bl sub_10708
-_08006F06:
- mov r8, sb
- mov r4, r8
- cmp r4, #4
- bgt _08006F10
- b _08006DCC
-_08006F10:
- add sp, #0x20
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08006F20: .4byte 0x086A64F0
-_08006F24: .4byte 0x08092FA0
-_08006F28: .4byte 0x060000E0
-_08006F2C: .4byte 0x08090780
-
- thumb_func_start sub_6F30
-sub_6F30: @ 0x08006F30
- push {r4, r5, r6, r7, lr}
- sub sp, #8
- ldr r1, _08006F74 @ =0x0202A1C0
- lsls r0, r0, #0x10
- movs r6, #0xa
- asrs r0, r0, #0xf
- adds r4, r0, r1
- movs r7, #2
- movs r5, #4
-_08006F42:
- movs r1, #0
- ldrsh r0, [r4, r1]
- movs r1, #0xdc
- lsls r1, r1, #1
- cmp r0, #4
- bne _08006F50
- adds r1, #2
-_08006F50:
- adds r0, r1, #0
- str r7, [sp]
- str r7, [sp, #4]
- movs r1, #1
- movs r2, #4
- adds r3, r6, #0
- bl sub_105A0
- adds r6, #2
- adds r4, #2
- subs r5, #1
- cmp r5, #0
- bge _08006F42
- add sp, #8
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08006F74: .4byte 0x0202A1C0
-
- thumb_func_start sub_6F78
-sub_6F78: @ 0x08006F78
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- ldr r1, _08006FBC @ =0x0202A1C0
- ldr r0, _08006FC0 @ =0x0202ADE0
- movs r2, #0
- ldrsh r0, [r0, r2]
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r5, [r0]
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- adds r0, r4, #0
- movs r1, #0xf
- bl __divsi3
- lsls r0, r0, #0x10
- lsrs r6, r0, #0x10
- adds r0, r4, #0
- movs r1, #0xf
- bl __modsi3
- lsls r0, r0, #0x10
- lsrs r4, r0, #0x10
- lsls r5, r5, #0x10
- asrs r0, r5, #0x10
- cmp r0, #4
- bls _08006FB0
- b _080070C0
-_08006FB0:
- lsls r0, r0, #2
- ldr r1, _08006FC4 @ =_08006FC8
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08006FBC: .4byte 0x0202A1C0
-_08006FC0: .4byte 0x0202ADE0
-_08006FC4: .4byte _08006FC8
-_08006FC8: @ jump table
- .4byte _08006FDC @ case 0
- .4byte _08007000 @ case 1
- .4byte _08007040 @ case 2
- .4byte _08007040 @ case 3
- .4byte _08007088 @ case 4
-_08006FDC:
- ldr r0, _08006FF0 @ =0x0808F760
- ldr r1, _08006FF4 @ =0x06013400
- movs r2, #0x18
- movs r3, #1
- bl sub_10708
- ldr r1, _08006FF8 @ =0x040000D4
- ldr r0, _08006FFC @ =0x08089960
- b _080070B4
- .align 2, 0
-_08006FF0: .4byte 0x0808F760
-_08006FF4: .4byte 0x06013400
-_08006FF8: .4byte 0x040000D4
-_08006FFC: .4byte 0x08089960
-_08007000:
- ldr r0, _08007030 @ =gMonPortraitGroupGfx
- lsls r2, r6, #0x10
- asrs r2, r2, #0xe
- adds r2, r2, r0
- lsls r0, r4, #0x10
- asrs r0, r0, #0x10
- lsls r1, r0, #1
- adds r1, r1, r0
- lsls r1, r1, #8
- ldr r0, [r2]
- adds r0, r0, r1
- ldr r1, _08007034 @ =0x06013400
- movs r2, #0x18
- movs r3, #1
- bl sub_10708
- ldr r1, _08007038 @ =0x040000D4
- ldr r0, _0800703C @ =gMonPortraitGroupPals
- ldr r0, [r0]
- movs r2, #0xf0
- lsls r2, r2, #1
- adds r0, r0, r2
- b _080070B4
- .align 2, 0
-_08007030: .4byte gMonPortraitGroupGfx
-_08007034: .4byte 0x06013400
-_08007038: .4byte 0x040000D4
-_0800703C: .4byte gMonPortraitGroupPals
-_08007040:
- ldr r0, _08007078 @ =gMonPortraitGroupGfx
- lsls r5, r6, #0x10
- asrs r5, r5, #0xe
- adds r0, r5, r0
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- lsls r1, r4, #1
- adds r1, r1, r4
- lsls r1, r1, #8
- ldr r0, [r0]
- adds r0, r0, r1
- ldr r1, _0800707C @ =0x06013400
- movs r2, #0x18
- movs r3, #1
- bl sub_10708
- ldr r0, _08007080 @ =gMonPortraitGroupPals
- adds r5, r5, r0
- lsls r4, r4, #5
- ldr r0, [r5]
- adds r0, r0, r4
- ldr r1, _08007084 @ =0x05000220
- movs r2, #0x20
- movs r3, #0xe
- bl sub_10170
- b _080070C0
- .align 2, 0
-_08007078: .4byte gMonPortraitGroupGfx
-_0800707C: .4byte 0x06013400
-_08007080: .4byte gMonPortraitGroupPals
-_08007084: .4byte 0x05000220
-_08007088:
- ldr r0, _080070C8 @ =gMonPortraitGroupGfx
- lsls r5, r6, #0x10
- asrs r5, r5, #0xe
- adds r0, r5, r0
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- lsls r1, r4, #1
- adds r1, r1, r4
- lsls r1, r1, #8
- ldr r0, [r0]
- adds r0, r0, r1
- ldr r1, _080070CC @ =0x06013400
- movs r2, #0x18
- movs r3, #1
- bl sub_10708
- ldr r1, _080070D0 @ =0x040000D4
- ldr r0, _080070D4 @ =gMonPortraitGroupPals
- adds r5, r5, r0
- lsls r4, r4, #5
- ldr r0, [r5]
- adds r0, r0, r4
-_080070B4:
- str r0, [r1]
- ldr r0, _080070D8 @ =0x05000220
- str r0, [r1, #4]
- ldr r0, _080070DC @ =0x80000010
- str r0, [r1, #8]
- ldr r0, [r1, #8]
-_080070C0:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080070C8: .4byte gMonPortraitGroupGfx
-_080070CC: .4byte 0x06013400
-_080070D0: .4byte 0x040000D4
-_080070D4: .4byte gMonPortraitGroupPals
-_080070D8: .4byte 0x05000220
-_080070DC: .4byte 0x80000010
-
- thumb_func_start sub_70E0
-sub_70E0: @ 0x080070E0
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0xc
- movs r2, #0
- mov r8, r2
- mov r2, sp
- mov r3, r8
- strh r3, [r2]
- ldr r3, _080071B4 @ =0x040000D4
- str r2, [r3]
- ldr r2, _080071B8 @ =0x03000000
- str r2, [r3, #4]
- ldr r2, _080071BC @ =0x81000C00
- str r2, [r3, #8]
- ldr r2, [r3, #8]
- movs r7, #0
- lsls r2, r1, #6
- lsls r0, r0, #0x10
- str r0, [sp, #8]
- subs r2, r2, r1
- lsls r2, r2, #1
- str r2, [sp, #4]
- adds r5, r3, #0
-_08007114:
- movs r6, #0
- adds r0, r7, #1
- mov sl, r0
- movs r1, #0x2a
- adds r0, r7, #0
- muls r0, r1, r0
- ldr r2, [sp, #4]
- adds r2, r2, r0
- mov sb, r2
-_08007126:
- mov r3, sb
- adds r1, r3, r6
- lsls r1, r1, #1
- ldr r0, [sp, #8]
- asrs r2, r0, #0x10
- lsls r0, r2, #3
- adds r0, r0, r2
- lsls r0, r0, #4
- subs r0, r0, r2
- lsls r0, r0, #2
- adds r1, r1, r0
- ldr r2, _080071C0 @ =0x0805C8F6
- adds r1, r1, r2
- ldrh r1, [r1]
- movs r3, #0x10
- rsbs r3, r3, #0
- adds r0, r3, #0
- adds r3, r1, #0
- ands r3, r0
- movs r4, #0xf
- ands r4, r1
- cmp r4, #0
- bne _08007156
- movs r4, #4
-_08007156:
- ldr r1, _080071C4 @ =0x08090780
- adds r0, r3, r1
- str r0, [r5]
- ldr r0, _080071C8 @ =0x0202BE30
- str r0, [r5, #4]
- ldr r2, _080071CC @ =0x80000010
- str r2, [r5, #8]
- ldr r0, [r5, #8]
- movs r0, #0x80
- lsls r0, r0, #3
- adds r1, r1, r0
- adds r1, r3, r1
- str r1, [r5]
- ldr r0, _080071D0 @ =0x0201B130
- str r0, [r5, #4]
- str r2, [r5, #8]
- ldr r0, [r5, #8]
- adds r0, r4, #0
- mov r1, r8
- adds r2, r7, #0
- bl sub_71DC
- add r8, r4
- adds r6, #1
- cmp r6, #0x29
- ble _08007126
- movs r1, #0
- mov r8, r1
- mov r7, sl
- cmp r7, #2
- ble _08007114
- ldr r1, _080071B4 @ =0x040000D4
- ldr r0, _080071B8 @ =0x03000000
- str r0, [r1]
- ldr r0, _080071D4 @ =0x06005C00
- str r0, [r1, #4]
- ldr r0, _080071D8 @ =0x80000C00
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- add sp, #0xc
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080071B4: .4byte 0x040000D4
-_080071B8: .4byte 0x03000000
-_080071BC: .4byte 0x81000C00
-_080071C0: .4byte 0x0805C8F6
-_080071C4: .4byte 0x08090780
-_080071C8: .4byte 0x0202BE30
-_080071CC: .4byte 0x80000010
-_080071D0: .4byte 0x0201B130
-_080071D4: .4byte 0x06005C00
-_080071D8: .4byte 0x80000C00
-
- thumb_func_start sub_71DC
-sub_71DC: @ 0x080071DC
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x14
- adds r4, r0, #0
- adds r3, r1, #0
- adds r0, r3, #0
- cmp r3, #0
- bge _080071F4
- adds r0, r3, #7
-_080071F4:
- asrs r0, r0, #3
- lsls r0, r0, #4
- lsls r1, r2, #0xa
- adds r2, r0, r1
- subs r0, r4, #2
- cmp r0, #4
- bls _08007206
- bl _080088C8
-_08007206:
- lsls r0, r0, #2
- ldr r1, _08007210 @ =_08007214
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08007210: .4byte _08007214
-_08007214: @ jump table
- .4byte _08008580 @ case 0
- .4byte _0800819C @ case 1
- .4byte _08007D50 @ case 2
- .4byte _0800780C @ case 3
- .4byte _08007228 @ case 4
-_08007228:
- adds r0, r3, #0
- cmp r3, #0
- bge _08007230
- adds r0, r3, #7
-_08007230:
- asrs r0, r0, #3
- lsls r0, r0, #3
- subs r0, r3, r0
- cmp r0, #7
- bls _0800723E
- bl _080088C8
-_0800723E:
- lsls r0, r0, #2
- ldr r1, _08007248 @ =_0800724C
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08007248: .4byte _0800724C
-_0800724C: @ jump table
- .4byte _0800726C @ case 0
- .4byte _080072EC @ case 1
- .4byte _08007398 @ case 2
- .4byte _0800744C @ case 3
- .4byte _08007548 @ case 4
- .4byte _080075C0 @ case 5
- .4byte _0800766C @ case 6
- .4byte _08007714 @ case 7
-_0800726C:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- ldr r1, _080072E0 @ =0x03000000
- mov sb, r1
- movs r0, #0xff
- mov sl, r0
- ldr r1, _080072E4 @ =0x0201B130
- mov r8, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r5, r0, r2
- ldr r6, _080072E8 @ =0x0202BE30
- lsls r1, r1, #1
- adds r4, r1, r2
-_08007290:
- lsls r3, r7, #1
- ldrh r0, [r5]
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r5]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- ldrh r1, [r6, #2]
- mov r0, sl
- ands r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4]
- mov r2, r8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r4]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r3, r3, r0
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r2, #2]
- mov r0, sl
- ands r0, r1
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r1, #4
- add r8, r1
- adds r4, #4
- adds r5, #4
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08007290
- bl _080088C8
- .align 2, 0
-_080072E0: .4byte 0x03000000
-_080072E4: .4byte 0x0201B130
-_080072E8: .4byte 0x0202BE30
-_080072EC:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- ldr r1, _08007388 @ =0x03000000
- mov sl, r1
- ldr r0, _0800738C @ =0x0201B130
- mov sb, r0
- ldr r1, _08007390 @ =0x0202BE30
- mov r8, r1
- lsls r0, r2, #1
- mov r2, sl
- adds r6, r0, r2
- movs r1, #0x80
- lsls r1, r1, #3
- adds r0, r0, r1
- adds r5, r0, r2
-_0800730C:
- lsls r4, r7, #1
- mov r2, r8
- ldrh r1, [r2]
- ldr r0, _08007394 @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r4, ip
- lsls r3, r4, #1
- add r3, sl
- ldrh r0, [r2]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- ldrh r2, [r2, #2]
- movs r0, #0xff
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r3]
- orrs r1, r0
- strh r1, [r3]
- mov r0, sb
- ldrh r1, [r0]
- ldr r0, _08007394 @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r4, r4, r1
- lsls r4, r4, #1
- add r4, sl
- mov r2, sb
- ldrh r0, [r2]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- ldrh r2, [r2, #2]
- movs r0, #0xff
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r0, #4
- add sb, r0
- add r8, r0
- adds r6, #4
- adds r5, #4
- adds r7, #1
- cmp r7, #7
- ble _0800730C
- bl _080088C8
- .align 2, 0
-_08007388: .4byte 0x03000000
-_0800738C: .4byte 0x0201B130
-_08007390: .4byte 0x0202BE30
-_08007394: .4byte 0x00000FFF
-_08007398:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- movs r0, #0xff
- mov sl, r0
- ldr r1, _08007440 @ =0x0201B130
- mov sb, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- ldr r0, _08007444 @ =0x0202BE30
- mov r8, r0
- lsls r0, r2, #1
- ldr r2, _08007448 @ =0x03000000
- adds r6, r0, r2
- lsls r1, r1, #1
- adds r5, r1, r2
-_080073BA:
- lsls r4, r7, #1
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r4, ip
- lsls r3, r4, #1
- ldr r1, _08007448 @ =0x03000000
- adds r3, r3, r1
- mov r2, r8
- ldrh r0, [r2]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- ldrh r2, [r2, #2]
- mov r0, sl
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r3]
- orrs r1, r0
- strh r1, [r3]
- mov r0, sb
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r4, r4, r1
- lsls r4, r4, #1
- ldr r2, _08007448 @ =0x03000000
- adds r4, r4, r2
- mov r1, sb
- ldrh r0, [r1]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- mov r0, sb
- ldrh r2, [r0, #2]
- mov r0, sl
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r1, #4
- add sb, r1
- adds r5, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _080073BA
- bl _080088C8
- .align 2, 0
-_08007440: .4byte 0x0201B130
-_08007444: .4byte 0x0202BE30
-_08007448: .4byte 0x03000000
-_0800744C:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- movs r1, #0x10
- adds r1, r1, r2
- mov sb, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- movs r0, #2
- str r0, [sp, #8]
- ldr r0, _08007538 @ =0x0202BE30
- mov sl, r0
- lsls r0, r2, #1
- ldr r2, _0800753C @ =0x03000000
- adds r0, r0, r2
- mov r8, r0
- ldr r0, _08007540 @ =0x0201B130
- str r0, [sp, #0x10]
- lsls r1, r1, #1
- adds r6, r1, r2
-_08007476:
- lsls r5, r7, #1
- mov r2, sl
- ldrh r1, [r2]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- mov r2, r8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- mov r0, ip
- adds r4, r5, r0
- lsls r3, r4, #1
- ldr r1, _0800753C @ =0x03000000
- adds r3, r3, r1
- mov r2, sl
- ldrh r0, [r2]
- ldr r1, _08007544 @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- ldrh r2, [r2, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r3]
- orrs r1, r0
- strh r1, [r3]
- add r5, sb
- lsls r2, r5, #1
- ldr r0, _0800753C @ =0x03000000
- adds r2, r2, r0
- mov r0, sl
- ldrh r1, [r0, #2]
- movs r0, #0xf0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldr r2, [sp, #0x10]
- ldrh r1, [r2]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r4, r4, r0
- lsls r4, r4, #1
- ldr r1, _0800753C @ =0x03000000
- adds r4, r4, r1
- ldrh r0, [r2]
- ldr r1, _08007544 @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- ldr r2, [sp, #8]
- ldr r0, _08007540 @ =0x0201B130
- adds r3, r2, r0
- ldrh r2, [r3]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r5, r5, r1
- lsls r5, r5, #1
- ldr r2, _0800753C @ =0x03000000
- adds r5, r5, r2
- ldrh r1, [r3]
- movs r0, #0xf0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- adds r6, #4
- ldr r0, [sp, #8]
- adds r0, #4
- str r0, [sp, #8]
- movs r1, #4
- add sl, r1
- add r8, r1
- ldr r2, [sp, #0x10]
- adds r2, #4
- str r2, [sp, #0x10]
- adds r7, #1
- cmp r7, #7
- ble _08007476
- bl _080088C8
- .align 2, 0
-_08007538: .4byte 0x0202BE30
-_0800753C: .4byte 0x03000000
-_08007540: .4byte 0x0201B130
-_08007544: .4byte 0x0000FFF0
-_08007548:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _080075B4 @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _080075B8 @ =0x0201B130
- ldr r5, _080075BC @ =0x0202BE30
-_08007560:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- ldrh r0, [r2]
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r5, #2]
- movs r0, #0xff
- ands r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldrh r0, [r3]
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r6, #2]
- movs r0, #0xff
- ands r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r5, #4
- adds r7, #1
- cmp r7, #7
- ble _08007560
- bl _080088C8
- .align 2, 0
-_080075B4: .4byte 0x03000000
-_080075B8: .4byte 0x0201B130
-_080075BC: .4byte 0x0202BE30
-_080075C0:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- adds r2, #0x10
- mov sb, r2
- ldr r2, _0800765C @ =0x03000000
- mov sl, r2
- ldr r0, _08007660 @ =0x0201B130
- mov r8, r0
- ldr r6, _08007664 @ =0x0202BE30
-_080075D4:
- lsls r5, r7, #1
- mov r1, ip
- adds r3, r5, r1
- lsls r2, r3, #1
- add r2, sl
- ldrh r1, [r6]
- ldr r0, _08007668 @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r5, sb
- lsls r4, r5, #1
- add r4, sl
- ldrh r0, [r6]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- ldrh r2, [r6, #2]
- movs r0, #0xff
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sl
- mov r0, r8
- ldrh r1, [r0]
- ldr r0, _08007668 @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, r5, r2
- lsls r5, r5, #1
- add r5, sl
- mov r1, r8
- ldrh r0, [r1]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- mov r0, r8
- ldrh r2, [r0, #2]
- movs r0, #0xff
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r5]
- movs r1, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _080075D4
- bl _080088C8
- .align 2, 0
-_0800765C: .4byte 0x03000000
-_08007660: .4byte 0x0201B130
-_08007664: .4byte 0x0202BE30
-_08007668: .4byte 0x00000FFF
-_0800766C:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _08007708 @ =0x03000000
- mov sl, r1
- ldr r2, _0800770C @ =0x0201B130
- mov r8, r2
- ldr r6, _08007710 @ =0x0202BE30
-_08007680:
- lsls r5, r7, #1
- mov r0, ip
- adds r3, r5, r0
- lsls r2, r3, #1
- add r2, sl
- ldrh r1, [r6]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r5, sb
- lsls r4, r5, #1
- add r4, sl
- ldrh r0, [r6]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- ldrh r2, [r6, #2]
- movs r0, #0xff
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r3, r3, r1
- lsls r3, r3, #1
- add r3, sl
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r5, r5, r0
- lsls r5, r5, #1
- add r5, sl
- ldrh r0, [r2]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- ldrh r2, [r2, #2]
- movs r0, #0xff
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r5]
- movs r1, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08007680
- bl _080088C8
- .align 2, 0
-_08007708: .4byte 0x03000000
-_0800770C: .4byte 0x0201B130
-_08007710: .4byte 0x0202BE30
-_08007714:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- movs r1, #0x10
- adds r1, r1, r2
- mov sb, r1
- adds r2, #0x11
- str r2, [sp]
- ldr r2, _080077FC @ =0x03000000
- mov sl, r2
- movs r0, #2
- str r0, [sp, #4]
- ldr r1, _08007800 @ =0x0202BE30
- mov r8, r1
- ldr r2, _08007804 @ =0x0201B130
- str r2, [sp, #0xc]
-_08007734:
- lsls r6, r7, #1
- mov r0, ip
- adds r4, r6, r0
- lsls r2, r4, #1
- add r2, sl
- mov r0, r8
- ldrh r1, [r0]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- mov r1, sb
- adds r5, r6, r1
- lsls r3, r5, #1
- add r3, sl
- mov r2, r8
- ldrh r0, [r2]
- ldr r1, _08007808 @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- ldrh r2, [r2, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r3]
- orrs r1, r0
- strh r1, [r3]
- ldr r0, [sp]
- adds r6, r6, r0
- lsls r2, r6, #1
- add r2, sl
- mov r0, r8
- ldrh r1, [r0, #2]
- movs r0, #0xf0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r4, r4, r1
- lsls r4, r4, #1
- add r4, sl
- ldr r2, [sp, #0xc]
- ldrh r1, [r2]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r5, r5, r0
- lsls r5, r5, #1
- add r5, sl
- ldrh r0, [r2]
- ldr r1, _08007808 @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- ldr r2, [sp, #4]
- ldr r0, _08007804 @ =0x0201B130
- adds r3, r2, r0
- ldrh r2, [r3]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r5]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r6, r6, r1
- lsls r6, r6, #1
- add r6, sl
- ldrh r1, [r3]
- movs r0, #0xf0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- ldr r2, [sp, #4]
- adds r2, #4
- str r2, [sp, #4]
- movs r0, #4
- add r8, r0
- ldr r1, [sp, #0xc]
- adds r1, #4
- str r1, [sp, #0xc]
- adds r7, #1
- cmp r7, #7
- ble _08007734
- bl _080088C8
- .align 2, 0
-_080077FC: .4byte 0x03000000
-_08007800: .4byte 0x0202BE30
-_08007804: .4byte 0x0201B130
-_08007808: .4byte 0x0000FFF0
-_0800780C:
- adds r0, r3, #0
- cmp r3, #0
- bge _08007814
- adds r0, r3, #7
-_08007814:
- asrs r0, r0, #3
- lsls r0, r0, #3
- subs r0, r3, r0
- cmp r0, #7
- bls _08007822
- bl _080088C8
-_08007822:
- lsls r0, r0, #2
- ldr r1, _0800782C @ =_08007830
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800782C: .4byte _08007830
-_08007830: @ jump table
- .4byte _08007850 @ case 0
- .4byte _080078D0 @ case 1
- .4byte _0800797C @ case 2
- .4byte _08007A28 @ case 3
- .4byte _08007ADC @ case 4
- .4byte _08007B54 @ case 5
- .4byte _08007C00 @ case 6
- .4byte _08007CA8 @ case 7
-_08007850:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- ldr r1, _080078C4 @ =0x03000000
- mov sb, r1
- movs r0, #0xf
- mov sl, r0
- ldr r1, _080078C8 @ =0x0201B130
- mov r8, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r5, r0, r2
- ldr r6, _080078CC @ =0x0202BE30
- lsls r1, r1, #1
- adds r4, r1, r2
-_08007874:
- lsls r3, r7, #1
- ldrh r0, [r5]
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r5]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- ldrh r1, [r6, #2]
- mov r0, sl
- ands r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4]
- mov r2, r8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r4]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r3, r3, r0
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r2, #2]
- mov r0, sl
- ands r0, r1
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r1, #4
- add r8, r1
- adds r4, #4
- adds r5, #4
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08007874
- bl _080088C8
- .align 2, 0
-_080078C4: .4byte 0x03000000
-_080078C8: .4byte 0x0201B130
-_080078CC: .4byte 0x0202BE30
-_080078D0:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- ldr r1, _0800796C @ =0x03000000
- mov sl, r1
- ldr r0, _08007970 @ =0x0201B130
- mov sb, r0
- ldr r1, _08007974 @ =0x0202BE30
- mov r8, r1
- lsls r0, r2, #1
- mov r2, sl
- adds r6, r0, r2
- movs r1, #0x80
- lsls r1, r1, #3
- adds r0, r0, r1
- adds r5, r0, r2
-_080078F0:
- lsls r4, r7, #1
- mov r2, r8
- ldrh r1, [r2]
- ldr r0, _08007978 @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r4, ip
- lsls r3, r4, #1
- add r3, sl
- ldrh r0, [r2]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- ldrh r2, [r2, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r3]
- orrs r1, r0
- strh r1, [r3]
- mov r0, sb
- ldrh r1, [r0]
- ldr r0, _08007978 @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r4, r4, r1
- lsls r4, r4, #1
- add r4, sl
- mov r2, sb
- ldrh r0, [r2]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- ldrh r2, [r2, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r0, #4
- add sb, r0
- add r8, r0
- adds r6, #4
- adds r5, #4
- adds r7, #1
- cmp r7, #7
- ble _080078F0
- bl _080088C8
- .align 2, 0
-_0800796C: .4byte 0x03000000
-_08007970: .4byte 0x0201B130
-_08007974: .4byte 0x0202BE30
-_08007978: .4byte 0x00000FFF
-_0800797C:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- ldr r0, _08007A1C @ =0x03000000
- mov sl, r0
- ldr r1, _08007A20 @ =0x0201B130
- mov sb, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- ldr r0, _08007A24 @ =0x0202BE30
- mov r8, r0
- lsls r0, r2, #1
- mov r2, sl
- adds r6, r0, r2
- lsls r1, r1, #1
- adds r5, r1, r2
-_0800799E:
- lsls r4, r7, #1
- mov r0, r8
- ldrh r1, [r0]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r4, ip
- lsls r3, r4, #1
- add r3, sl
- mov r1, r8
- ldrh r0, [r1]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- mov r0, r8
- ldrh r2, [r0, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r3]
- orrs r1, r0
- strh r1, [r3]
- mov r2, sb
- ldrh r1, [r2]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r4, r4, r0
- lsls r4, r4, #1
- add r4, sl
- ldrh r0, [r2]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- ldrh r2, [r2, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r1, #4
- add sb, r1
- adds r5, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _0800799E
- bl _080088C8
- .align 2, 0
-_08007A1C: .4byte 0x03000000
-_08007A20: .4byte 0x0201B130
-_08007A24: .4byte 0x0202BE30
-_08007A28:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- movs r1, #0xf
- mov sl, r1
- ldr r0, _08007ACC @ =0x0201B130
- mov sb, r0
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- ldr r0, _08007AD0 @ =0x0202BE30
- mov r8, r0
- lsls r0, r2, #1
- ldr r2, _08007AD4 @ =0x03000000
- adds r6, r0, r2
- lsls r1, r1, #1
- adds r5, r1, r2
-_08007A4A:
- lsls r4, r7, #1
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r4, ip
- lsls r3, r4, #1
- ldr r1, _08007AD4 @ =0x03000000
- adds r3, r3, r1
- mov r2, r8
- ldrh r0, [r2]
- ldr r1, _08007AD8 @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- ldrh r2, [r2, #2]
- mov r0, sl
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r3]
- orrs r1, r0
- strh r1, [r3]
- mov r0, sb
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r4, r4, r1
- lsls r4, r4, #1
- ldr r2, _08007AD4 @ =0x03000000
- adds r4, r4, r2
- mov r1, sb
- ldrh r0, [r1]
- ldr r1, _08007AD8 @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- mov r0, sb
- ldrh r2, [r0, #2]
- mov r0, sl
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r1, #4
- add sb, r1
- adds r5, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08007A4A
- bl _080088C8
- .align 2, 0
-_08007ACC: .4byte 0x0201B130
-_08007AD0: .4byte 0x0202BE30
-_08007AD4: .4byte 0x03000000
-_08007AD8: .4byte 0x0000FFF0
-_08007ADC:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _08007B48 @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _08007B4C @ =0x0201B130
- ldr r5, _08007B50 @ =0x0202BE30
-_08007AF4:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- ldrh r0, [r2]
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r5, #2]
- movs r0, #0xf
- ands r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldrh r0, [r3]
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r6, #2]
- movs r0, #0xf
- ands r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r5, #4
- adds r7, #1
- cmp r7, #7
- ble _08007AF4
- bl _080088C8
- .align 2, 0
-_08007B48: .4byte 0x03000000
-_08007B4C: .4byte 0x0201B130
-_08007B50: .4byte 0x0202BE30
-_08007B54:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- adds r2, #0x10
- mov sb, r2
- ldr r2, _08007BF0 @ =0x03000000
- mov sl, r2
- ldr r0, _08007BF4 @ =0x0201B130
- mov r8, r0
- ldr r6, _08007BF8 @ =0x0202BE30
-_08007B68:
- lsls r5, r7, #1
- mov r1, ip
- adds r3, r5, r1
- lsls r2, r3, #1
- add r2, sl
- ldrh r1, [r6]
- ldr r0, _08007BFC @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r5, sb
- lsls r4, r5, #1
- add r4, sl
- ldrh r0, [r6]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- ldrh r2, [r6, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sl
- mov r0, r8
- ldrh r1, [r0]
- ldr r0, _08007BFC @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, r5, r2
- lsls r5, r5, #1
- add r5, sl
- mov r1, r8
- ldrh r0, [r1]
- movs r1, #0xf0
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #0xc
- mov r0, r8
- ldrh r2, [r0, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #4
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r5]
- movs r1, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08007B68
- bl _080088C8
- .align 2, 0
-_08007BF0: .4byte 0x03000000
-_08007BF4: .4byte 0x0201B130
-_08007BF8: .4byte 0x0202BE30
-_08007BFC: .4byte 0x00000FFF
-_08007C00:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _08007C9C @ =0x03000000
- mov sl, r1
- ldr r2, _08007CA0 @ =0x0201B130
- mov r8, r2
- ldr r6, _08007CA4 @ =0x0202BE30
-_08007C14:
- lsls r5, r7, #1
- mov r0, ip
- adds r3, r5, r0
- lsls r2, r3, #1
- add r2, sl
- ldrh r1, [r6]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r5, sb
- lsls r4, r5, #1
- add r4, sl
- ldrh r0, [r6]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- ldrh r2, [r6, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r3, r3, r1
- lsls r3, r3, #1
- add r3, sl
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r5, r5, r0
- lsls r5, r5, #1
- add r5, sl
- ldrh r0, [r2]
- movs r1, #0xff
- lsls r1, r1, #8
- ands r1, r0
- lsrs r1, r1, #8
- ldrh r2, [r2, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r5]
- movs r1, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08007C14
- bl _080088C8
- .align 2, 0
-_08007C9C: .4byte 0x03000000
-_08007CA0: .4byte 0x0201B130
-_08007CA4: .4byte 0x0202BE30
-_08007CA8:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _08007D40 @ =0x03000000
- mov sl, r1
- ldr r2, _08007D44 @ =0x0201B130
- mov r8, r2
- ldr r6, _08007D48 @ =0x0202BE30
-_08007CBC:
- lsls r5, r7, #1
- mov r0, ip
- adds r3, r5, r0
- lsls r2, r3, #1
- add r2, sl
- ldrh r1, [r6]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r5, sb
- lsls r4, r5, #1
- add r4, sl
- ldrh r0, [r6]
- ldr r1, _08007D4C @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- ldrh r2, [r6, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r4]
- orrs r1, r0
- strh r1, [r4]
- movs r1, #0x80
- lsls r1, r1, #2
- adds r3, r3, r1
- lsls r3, r3, #1
- add r3, sl
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r5, r5, r0
- lsls r5, r5, #1
- add r5, sl
- ldrh r0, [r2]
- ldr r1, _08007D4C @ =0x0000FFF0
- ands r1, r0
- lsrs r1, r1, #4
- ldrh r2, [r2, #2]
- movs r0, #0xf
- ands r0, r2
- lsls r0, r0, #0xc
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r5]
- movs r1, #4
- add r8, r1
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08007CBC
- bl _080088C8
- .align 2, 0
-_08007D40: .4byte 0x03000000
-_08007D44: .4byte 0x0201B130
-_08007D48: .4byte 0x0202BE30
-_08007D4C: .4byte 0x0000FFF0
-_08007D50:
- adds r0, r3, #0
- cmp r3, #0
- bge _08007D58
- adds r0, r3, #7
-_08007D58:
- asrs r0, r0, #3
- lsls r0, r0, #3
- subs r0, r3, r0
- cmp r0, #7
- bls _08007D66
- bl _080088C8
-_08007D66:
- lsls r0, r0, #2
- ldr r1, _08007D70 @ =_08007D74
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08007D70: .4byte _08007D74
-_08007D74: @ jump table
- .4byte _08007D94 @ case 0
- .4byte _08007DD8 @ case 1
- .4byte _08007E74 @ case 2
- .4byte _08007F0C @ case 3
- .4byte _08007FA4 @ case 4
- .4byte _08007FF4 @ case 5
- .4byte _08008084 @ case 6
- .4byte _08008110 @ case 7
-_08007D94:
- movs r7, #0
- ldr r1, _08007DCC @ =0x03000000
- lsls r0, r2, #1
- adds r3, r0, r1
- ldr r5, _08007DD0 @ =0x0202BE30
- ldr r4, _08007DD4 @ =0x0201B130
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r0, r2
- adds r2, r0, r1
-_08007DA8:
- ldrh r0, [r3]
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r3]
- ldrh r0, [r2]
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r2]
- adds r3, #4
- adds r5, #4
- adds r2, #4
- adds r4, #4
- adds r7, #1
- cmp r7, #7
- ble _08007DA8
- bl _080088C8
- .align 2, 0
-_08007DCC: .4byte 0x03000000
-_08007DD0: .4byte 0x0202BE30
-_08007DD4: .4byte 0x0201B130
-_08007DD8:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- ldr r1, _08007E64 @ =0x03000000
- mov sb, r1
- movs r0, #0xf0
- lsls r0, r0, #8
- mov sl, r0
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r6, r0, r2
- ldr r0, _08007E68 @ =0x0202BE30
- mov r8, r0
- lsls r1, r1, #1
- adds r5, r1, r2
-_08007DFC:
- lsls r3, r7, #1
- lsls r4, r7, #2
- mov r2, r8
- ldrh r1, [r2]
- ldr r0, _08007E6C @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #0xc
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08007E70 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- ldr r0, _08007E6C @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r4]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #0xc
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, #4
- adds r6, #4
- movs r0, #4
- add r8, r0
- adds r7, #1
- cmp r7, #7
- ble _08007DFC
- bl _080088C8
- .align 2, 0
-_08007E64: .4byte 0x03000000
-_08007E68: .4byte 0x0202BE30
-_08007E6C: .4byte 0x00000FFF
-_08007E70: .4byte 0x0201B130
-_08007E74:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- ldr r0, _08007F00 @ =0x03000000
- mov sb, r0
- movs r1, #0xff
- lsls r1, r1, #8
- mov sl, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r6, r0, r2
- ldr r0, _08007F04 @ =0x0202BE30
- mov r8, r0
- lsls r1, r1, #1
- adds r5, r1, r2
-_08007E98:
- lsls r3, r7, #1
- lsls r4, r7, #2
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08007F08 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r4]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, #4
- adds r6, #4
- movs r0, #4
- add r8, r0
- adds r7, #1
- cmp r7, #7
- ble _08007E98
- bl _080088C8
- .align 2, 0
-_08007F00: .4byte 0x03000000
-_08007F04: .4byte 0x0202BE30
-_08007F08: .4byte 0x0201B130
-_08007F0C:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- ldr r0, _08007F94 @ =0x03000000
- mov sb, r0
- ldr r1, _08007F98 @ =0x0000FFF0
- mov sl, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r6, r0, r2
- ldr r0, _08007F9C @ =0x0202BE30
- mov r8, r0
- lsls r1, r1, #1
- adds r5, r1, r2
-_08007F2E:
- lsls r3, r7, #1
- lsls r4, r7, #2
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08007FA0 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r4]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, #4
- adds r6, #4
- movs r0, #4
- add r8, r0
- adds r7, #1
- cmp r7, #7
- ble _08007F2E
- bl _080088C8
- .align 2, 0
-_08007F94: .4byte 0x03000000
-_08007F98: .4byte 0x0000FFF0
-_08007F9C: .4byte 0x0202BE30
-_08007FA0: .4byte 0x0201B130
-_08007FA4:
- movs r7, #0
- adds r2, #1
- mov ip, r2
- ldr r1, _08007FE8 @ =0x03000000
- mov r8, r1
- ldr r6, _08007FEC @ =0x0202BE30
- lsls r0, r2, #1
- adds r4, r0, r1
- mov r5, ip
-_08007FB6:
- lsls r3, r7, #2
- ldrh r0, [r4]
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r4]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r2, r5, r0
- lsls r2, r2, #1
- add r2, r8
- ldr r1, _08007FF0 @ =0x0201B130
- adds r3, r3, r1
- ldrh r0, [r2]
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r2]
- adds r6, #4
- adds r4, #4
- adds r5, #2
- adds r7, #1
- cmp r7, #7
- ble _08007FB6
- bl _080088C8
- .align 2, 0
-_08007FE8: .4byte 0x03000000
-_08007FEC: .4byte 0x0202BE30
-_08007FF0: .4byte 0x0201B130
-_08007FF4:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _08008074 @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _08008078 @ =0x0202BE30
-_0800800A:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- lsls r5, r7, #2
- ldrh r1, [r6]
- ldr r0, _0800807C @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r6]
- movs r0, #0xf0
- lsls r0, r0, #8
- ands r0, r1
- lsrs r0, r0, #0xc
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldr r1, _08008080 @ =0x0201B130
- adds r5, r5, r1
- ldrh r1, [r5]
- ldr r0, _0800807C @ =0x00000FFF
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r5]
- movs r0, #0xf0
- lsls r0, r0, #8
- ands r0, r1
- lsrs r0, r0, #0xc
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _0800800A
- bl _080088C8
- .align 2, 0
-_08008074: .4byte 0x03000000
-_08008078: .4byte 0x0202BE30
-_0800807C: .4byte 0x00000FFF
-_08008080: .4byte 0x0201B130
-_08008084:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _08008104 @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _08008108 @ =0x0202BE30
-_0800809A:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- lsls r5, r7, #2
- ldrh r1, [r6]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r6]
- movs r0, #0xff
- lsls r0, r0, #8
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldr r1, _0800810C @ =0x0201B130
- adds r5, r5, r1
- ldrh r1, [r5]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r5]
- movs r0, #0xff
- lsls r0, r0, #8
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _0800809A
- bl _080088C8
- .align 2, 0
-_08008104: .4byte 0x03000000
-_08008108: .4byte 0x0202BE30
-_0800810C: .4byte 0x0201B130
-_08008110:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _0800818C @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _08008190 @ =0x0202BE30
-_08008126:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- lsls r5, r7, #2
- ldrh r1, [r6]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r6]
- ldr r0, _08008194 @ =0x0000FFF0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldr r1, _08008198 @ =0x0201B130
- adds r5, r5, r1
- ldrh r1, [r5]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r5]
- ldr r0, _08008194 @ =0x0000FFF0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08008126
- b _080088C8
- .align 2, 0
-_0800818C: .4byte 0x03000000
-_08008190: .4byte 0x0202BE30
-_08008194: .4byte 0x0000FFF0
-_08008198: .4byte 0x0201B130
-_0800819C:
- adds r0, r3, #0
- cmp r3, #0
- bge _080081A4
- adds r0, r3, #7
-_080081A4:
- asrs r0, r0, #3
- lsls r0, r0, #3
- subs r0, r3, r0
- cmp r0, #7
- bls _080081B0
- b _080088C8
-_080081B0:
- lsls r0, r0, #2
- ldr r1, _080081BC @ =_080081C0
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080081BC: .4byte _080081C0
-_080081C0: @ jump table
- .4byte _080081E0 @ case 0
- .4byte _08008230 @ case 1
- .4byte _08008284 @ case 2
- .4byte _08008318 @ case 3
- .4byte _080083AC @ case 4
- .4byte _0800840C @ case 5
- .4byte _08008468 @ case 6
- .4byte _080084F4 @ case 7
-_080081E0:
- movs r7, #0
- ldr r1, _08008220 @ =0x03000000
- ldr r6, _08008224 @ =0x00000FFF
- lsls r0, r2, #1
- adds r4, r0, r1
- ldr r5, _08008228 @ =0x0202BE30
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r0, r2
- adds r3, r0, r1
-_080081F4:
- lsls r2, r7, #2
- ldrh r1, [r5]
- adds r0, r6, #0
- ands r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- ldr r0, _0800822C @ =0x0201B130
- adds r2, r2, r0
- ldrh r1, [r2]
- adds r0, r6, #0
- ands r0, r1
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r4, #4
- adds r5, #4
- adds r3, #4
- adds r7, #1
- cmp r7, #7
- ble _080081F4
- b _080088C8
- .align 2, 0
-_08008220: .4byte 0x03000000
-_08008224: .4byte 0x00000FFF
-_08008228: .4byte 0x0202BE30
-_0800822C: .4byte 0x0201B130
-_08008230:
- movs r7, #0
- ldr r1, _08008274 @ =0x03000000
- ldr r6, _08008278 @ =0x00000FFF
- lsls r0, r2, #1
- adds r4, r0, r1
- ldr r5, _0800827C @ =0x0202BE30
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r0, r2
- adds r3, r0, r1
-_08008244:
- lsls r2, r7, #2
- ldrh r1, [r5]
- adds r0, r6, #0
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- ldr r0, _08008280 @ =0x0201B130
- adds r2, r2, r0
- ldrh r1, [r2]
- adds r0, r6, #0
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r4, #4
- adds r5, #4
- adds r3, #4
- adds r7, #1
- cmp r7, #7
- ble _08008244
- b _080088C8
- .align 2, 0
-_08008274: .4byte 0x03000000
-_08008278: .4byte 0x00000FFF
-_0800827C: .4byte 0x0202BE30
-_08008280: .4byte 0x0201B130
-_08008284:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- ldr r0, _0800830C @ =0x03000000
- mov sb, r0
- movs r1, #0xf0
- lsls r1, r1, #4
- mov sl, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r6, r0, r2
- ldr r0, _08008310 @ =0x0202BE30
- mov r8, r0
- lsls r1, r1, #1
- adds r5, r1, r2
-_080082A8:
- lsls r3, r7, #1
- lsls r4, r7, #2
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08008314 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r4]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, #4
- adds r6, #4
- movs r0, #4
- add r8, r0
- adds r7, #1
- cmp r7, #7
- ble _080082A8
- b _080088C8
- .align 2, 0
-_0800830C: .4byte 0x03000000
-_08008310: .4byte 0x0202BE30
-_08008314: .4byte 0x0201B130
-_08008318:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- ldr r0, _080083A0 @ =0x03000000
- mov sb, r0
- movs r1, #0xff
- lsls r1, r1, #4
- mov sl, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r6, r0, r2
- ldr r0, _080083A4 @ =0x0202BE30
- mov r8, r0
- lsls r1, r1, #1
- adds r5, r1, r2
-_0800833C:
- lsls r3, r7, #1
- lsls r4, r7, #2
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080083A8 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r4]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, #4
- adds r6, #4
- movs r0, #4
- add r8, r0
- adds r7, #1
- cmp r7, #7
- ble _0800833C
- b _080088C8
- .align 2, 0
-_080083A0: .4byte 0x03000000
-_080083A4: .4byte 0x0202BE30
-_080083A8: .4byte 0x0201B130
-_080083AC:
- movs r7, #0
- adds r2, #1
- mov ip, r2
- ldr r1, _080083FC @ =0x03000000
- mov sb, r1
- ldr r2, _08008400 @ =0x00000FFF
- mov r8, r2
- ldr r6, _08008404 @ =0x0202BE30
- mov r1, ip
- lsls r0, r1, #1
- mov r2, sb
- adds r4, r0, r2
- mov r5, ip
-_080083C6:
- lsls r3, r7, #2
- ldrh r1, [r6]
- mov r0, r8
- ands r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r2, r5, r0
- lsls r2, r2, #1
- add r2, sb
- ldr r1, _08008408 @ =0x0201B130
- adds r3, r3, r1
- ldrh r1, [r3]
- mov r0, r8
- ands r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- adds r6, #4
- adds r4, #4
- adds r5, #2
- adds r7, #1
- cmp r7, #7
- ble _080083C6
- b _080088C8
- .align 2, 0
-_080083FC: .4byte 0x03000000
-_08008400: .4byte 0x00000FFF
-_08008404: .4byte 0x0202BE30
-_08008408: .4byte 0x0201B130
-_0800840C:
- movs r7, #0
- adds r2, #1
- mov ip, r2
- ldr r6, _08008458 @ =0x03000000
- ldr r2, _0800845C @ =0x00000FFF
- mov r8, r2
- ldr r5, _08008460 @ =0x0202BE30
-_0800841A:
- lsls r2, r7, #1
- add r2, ip
- lsls r3, r2, #1
- adds r3, r3, r6
- lsls r4, r7, #2
- ldrh r1, [r5]
- mov r0, r8
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r2, r2, r0
- lsls r2, r2, #1
- adds r2, r2, r6
- ldr r1, _08008464 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- mov r0, r8
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- adds r5, #4
- adds r7, #1
- cmp r7, #7
- ble _0800841A
- b _080088C8
- .align 2, 0
-_08008458: .4byte 0x03000000
-_0800845C: .4byte 0x00000FFF
-_08008460: .4byte 0x0202BE30
-_08008464: .4byte 0x0201B130
-_08008468:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _080084E8 @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _080084EC @ =0x0202BE30
-_0800847E:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- lsls r5, r7, #2
- ldrh r1, [r6]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r6]
- movs r0, #0xf0
- lsls r0, r0, #4
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldr r1, _080084F0 @ =0x0201B130
- adds r5, r5, r1
- ldrh r1, [r5]
- movs r0, #0xff
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r5]
- movs r0, #0xf0
- lsls r0, r0, #4
- ands r0, r1
- lsrs r0, r0, #8
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _0800847E
- b _080088C8
- .align 2, 0
-_080084E8: .4byte 0x03000000
-_080084EC: .4byte 0x0202BE30
-_080084F0: .4byte 0x0201B130
-_080084F4:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _08008574 @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _08008578 @ =0x0202BE30
-_0800850A:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- lsls r5, r7, #2
- ldrh r1, [r6]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r6]
- movs r0, #0xff
- lsls r0, r0, #4
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldr r1, _0800857C @ =0x0201B130
- adds r5, r5, r1
- ldrh r1, [r5]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r5]
- movs r0, #0xff
- lsls r0, r0, #4
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _0800850A
- b _080088C8
- .align 2, 0
-_08008574: .4byte 0x03000000
-_08008578: .4byte 0x0202BE30
-_0800857C: .4byte 0x0201B130
-_08008580:
- adds r0, r3, #0
- cmp r3, #0
- bge _08008588
- adds r0, r3, #7
-_08008588:
- asrs r0, r0, #3
- lsls r0, r0, #3
- subs r0, r3, r0
- cmp r0, #7
- bls _08008594
- b _080088C8
-_08008594:
- lsls r0, r0, #2
- ldr r1, _080085A0 @ =_080085A4
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080085A0: .4byte _080085A4
-_080085A4: @ jump table
- .4byte _080085C4 @ case 0
- .4byte _08008610 @ case 1
- .4byte _08008660 @ case 2
- .4byte _080086B0 @ case 3
- .4byte _08008744 @ case 4
- .4byte _080087A0 @ case 5
- .4byte _080087F8 @ case 6
- .4byte _08008850 @ case 7
-_080085C4:
- movs r7, #0
- ldr r1, _08008604 @ =0x03000000
- movs r6, #0xff
- lsls r0, r2, #1
- adds r4, r0, r1
- ldr r5, _08008608 @ =0x0202BE30
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r0, r2
- adds r3, r0, r1
-_080085D8:
- lsls r2, r7, #2
- ldrh r1, [r5]
- adds r0, r6, #0
- ands r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- ldr r0, _0800860C @ =0x0201B130
- adds r2, r2, r0
- ldrh r1, [r2]
- adds r0, r6, #0
- ands r0, r1
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r4, #4
- adds r5, #4
- adds r3, #4
- adds r7, #1
- cmp r7, #7
- ble _080085D8
- b _080088C8
- .align 2, 0
-_08008604: .4byte 0x03000000
-_08008608: .4byte 0x0202BE30
-_0800860C: .4byte 0x0201B130
-_08008610:
- movs r7, #0
- ldr r1, _08008654 @ =0x03000000
- movs r6, #0xff
- lsls r0, r2, #1
- adds r4, r0, r1
- ldr r5, _08008658 @ =0x0202BE30
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r0, r2
- adds r3, r0, r1
-_08008624:
- lsls r2, r7, #2
- ldrh r1, [r5]
- adds r0, r6, #0
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- ldr r0, _0800865C @ =0x0201B130
- adds r2, r2, r0
- ldrh r1, [r2]
- adds r0, r6, #0
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r4, #4
- adds r5, #4
- adds r3, #4
- adds r7, #1
- cmp r7, #7
- ble _08008624
- b _080088C8
- .align 2, 0
-_08008654: .4byte 0x03000000
-_08008658: .4byte 0x0202BE30
-_0800865C: .4byte 0x0201B130
-_08008660:
- movs r7, #0
- ldr r1, _080086A4 @ =0x03000000
- movs r6, #0xff
- lsls r0, r2, #1
- adds r4, r0, r1
- ldr r5, _080086A8 @ =0x0202BE30
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r0, r2
- adds r3, r0, r1
-_08008674:
- lsls r2, r7, #2
- ldrh r1, [r5]
- adds r0, r6, #0
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- ldr r0, _080086AC @ =0x0201B130
- adds r2, r2, r0
- ldrh r1, [r2]
- adds r0, r6, #0
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r4, #4
- adds r5, #4
- adds r3, #4
- adds r7, #1
- cmp r7, #7
- ble _08008674
- b _080088C8
- .align 2, 0
-_080086A4: .4byte 0x03000000
-_080086A8: .4byte 0x0202BE30
-_080086AC: .4byte 0x0201B130
-_080086B0:
- movs r7, #0
- adds r1, r2, #1
- mov ip, r1
- ldr r0, _08008738 @ =0x03000000
- mov sb, r0
- movs r1, #0xf0
- mov sl, r1
- movs r0, #0x80
- lsls r0, r0, #2
- adds r1, r2, r0
- lsls r0, r2, #1
- mov r2, sb
- adds r6, r0, r2
- ldr r0, _0800873C @ =0x0202BE30
- mov r8, r0
- lsls r1, r1, #1
- adds r5, r1, r2
-_080086D2:
- lsls r3, r7, #1
- lsls r4, r7, #2
- mov r2, r8
- ldrh r1, [r2]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r6]
- orrs r0, r1
- strh r0, [r6]
- add r3, ip
- lsls r2, r3, #1
- add r2, sb
- mov r0, r8
- ldrh r1, [r0]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08008740 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r3, r3, r2
- lsls r3, r3, #1
- add r3, sb
- ldrh r1, [r4]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- adds r5, #4
- adds r6, #4
- movs r0, #4
- add r8, r0
- adds r7, #1
- cmp r7, #7
- ble _080086D2
- b _080088C8
- .align 2, 0
-_08008738: .4byte 0x03000000
-_0800873C: .4byte 0x0202BE30
-_08008740: .4byte 0x0201B130
-_08008744:
- movs r7, #0
- adds r2, #1
- mov ip, r2
- ldr r1, _08008794 @ =0x03000000
- mov sb, r1
- movs r2, #0xff
- mov r8, r2
- ldr r6, _08008798 @ =0x0202BE30
- mov r1, ip
- lsls r0, r1, #1
- mov r2, sb
- adds r4, r0, r2
- mov r5, ip
-_0800875E:
- lsls r3, r7, #2
- ldrh r1, [r6]
- mov r0, r8
- ands r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r2, r5, r0
- lsls r2, r2, #1
- add r2, sb
- ldr r1, _0800879C @ =0x0201B130
- adds r3, r3, r1
- ldrh r1, [r3]
- mov r0, r8
- ands r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- adds r6, #4
- adds r4, #4
- adds r5, #2
- adds r7, #1
- cmp r7, #7
- ble _0800875E
- b _080088C8
- .align 2, 0
-_08008794: .4byte 0x03000000
-_08008798: .4byte 0x0202BE30
-_0800879C: .4byte 0x0201B130
-_080087A0:
- movs r7, #0
- adds r2, #1
- mov ip, r2
- ldr r6, _080087EC @ =0x03000000
- movs r2, #0xff
- mov r8, r2
- ldr r5, _080087F0 @ =0x0202BE30
-_080087AE:
- lsls r2, r7, #1
- add r2, ip
- lsls r3, r2, #1
- adds r3, r3, r6
- lsls r4, r7, #2
- ldrh r1, [r5]
- mov r0, r8
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r2, r2, r0
- lsls r2, r2, #1
- adds r2, r2, r6
- ldr r1, _080087F4 @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- mov r0, r8
- ands r0, r1
- lsls r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- adds r5, #4
- adds r7, #1
- cmp r7, #7
- ble _080087AE
- b _080088C8
- .align 2, 0
-_080087EC: .4byte 0x03000000
-_080087F0: .4byte 0x0202BE30
-_080087F4: .4byte 0x0201B130
-_080087F8:
- movs r7, #0
- adds r2, #1
- mov ip, r2
- ldr r6, _08008844 @ =0x03000000
- movs r2, #0xff
- mov r8, r2
- ldr r5, _08008848 @ =0x0202BE30
-_08008806:
- lsls r2, r7, #1
- add r2, ip
- lsls r3, r2, #1
- adds r3, r3, r6
- lsls r4, r7, #2
- ldrh r1, [r5]
- mov r0, r8
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- movs r0, #0x80
- lsls r0, r0, #2
- adds r2, r2, r0
- lsls r2, r2, #1
- adds r2, r2, r6
- ldr r1, _0800884C @ =0x0201B130
- adds r4, r4, r1
- ldrh r1, [r4]
- mov r0, r8
- ands r0, r1
- lsls r0, r0, #8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- adds r5, #4
- adds r7, #1
- cmp r7, #7
- ble _08008806
- b _080088C8
- .align 2, 0
-_08008844: .4byte 0x03000000
-_08008848: .4byte 0x0202BE30
-_0800884C: .4byte 0x0201B130
-_08008850:
- movs r7, #0
- adds r0, r2, #1
- mov ip, r0
- adds r2, #0x10
- mov sb, r2
- ldr r1, _080088D8 @ =0x03000000
- mov r8, r1
- movs r2, #0x80
- lsls r2, r2, #2
- mov sl, r2
- ldr r6, _080088DC @ =0x0202BE30
-_08008866:
- lsls r4, r7, #1
- mov r0, ip
- adds r3, r4, r0
- lsls r2, r3, #1
- add r2, r8
- lsls r5, r7, #2
- ldrh r1, [r6]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r4, sb
- lsls r2, r4, #1
- add r2, r8
- ldrh r1, [r6]
- movs r0, #0xf0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- add r3, sl
- lsls r3, r3, #1
- add r3, r8
- ldr r1, _080088E0 @ =0x0201B130
- adds r5, r5, r1
- ldrh r1, [r5]
- movs r0, #0xf
- ands r0, r1
- lsls r0, r0, #0xc
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r3]
- add r4, sl
- lsls r4, r4, #1
- add r4, r8
- ldrh r1, [r5]
- movs r0, #0xf0
- ands r0, r1
- lsrs r0, r0, #4
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r6, #4
- adds r7, #1
- cmp r7, #7
- ble _08008866
-_080088C8:
- add sp, #0x14
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080088D8: .4byte 0x03000000
-_080088DC: .4byte 0x0202BE30
-_080088E0: .4byte 0x0201B130
-
- thumb_func_start sub_88E4
-sub_88E4: @ 0x080088E4
- push {r4, r5, r6, lr}
- movs r2, #0
- ldr r6, _08008934 @ =0x0202A1C0
- ldr r5, _08008938 @ =0x0201A514
- ldr r4, _0800893C @ =0x0202BEB8
- ldr r3, _08008940 @ =0x0200B134
- adds r1, r6, #0
-_080088F2:
- adds r0, r2, r3
- ldrb r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r2, #1
- cmp r2, #0xcc
- ble _080088F2
- ldr r0, _08008934 @ =0x0202A1C0
- movs r1, #0
- movs r2, #0xcd
- lsls r2, r2, #1
- adds r0, r0, r2
- movs r2, #0x13
-_0800890C:
- strh r1, [r0]
- adds r0, #2
- subs r2, #1
- cmp r2, #0
- bge _0800890C
- movs r0, #0
- strh r0, [r5]
- strh r0, [r4]
- movs r2, #0
-_0800891E:
- lsls r0, r2, #1
- adds r0, r0, r6
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #4
- bhi _08008968
- lsls r0, r0, #2
- ldr r1, _08008944 @ =_08008948
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08008934: .4byte 0x0202A1C0
-_08008938: .4byte 0x0201A514
-_0800893C: .4byte 0x0202BEB8
-_08008940: .4byte 0x0200B134
-_08008944: .4byte _08008948
-_08008948: @ jump table
- .4byte _08008968 @ case 0
- .4byte _08008962 @ case 1
- .4byte _08008968 @ case 2
- .4byte _08008962 @ case 3
- .4byte _0800895C @ case 4
-_0800895C:
- ldrh r0, [r5]
- adds r0, #1
- strh r0, [r5]
-_08008962:
- ldrh r0, [r4]
- adds r0, #1
- strh r0, [r4]
-_08008968:
- adds r2, #1
- cmp r2, #0xcc
- ble _0800891E
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-
- thumb_func_start sub_8974
-sub_8974: @ 0x08008974
- push {r4, r5, lr}
- ldr r1, _080089E0 @ =0x086A61BC
- lsls r0, r0, #0x10
- asrs r0, r0, #0xf
- adds r0, r0, r1
- movs r1, #0
- ldrsh r4, [r0, r1]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r4, r0
- beq _08008A56
- cmp r4, #0x63
- bgt _080089FC
- ldr r1, _080089E4 @ =0x0202BF14
- movs r0, #0
- strh r0, [r1]
- adds r0, r4, #0
- movs r1, #5
- bl __divsi3
- lsls r0, r0, #0x10
- lsrs r5, r0, #0x10
- adds r0, r4, #0
- movs r1, #5
- bl __modsi3
- adds r4, r0, #0
- ldr r0, _080089E8 @ =0x086BB6F4
- lsls r5, r5, #0x10
- asrs r5, r5, #0xe
- adds r0, r5, r0
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- lsls r1, r4, #3
- subs r1, r1, r4
- lsls r1, r1, #2
- subs r1, r1, r4
- lsls r1, r1, #7
- ldr r0, [r0]
- adds r0, r0, r1
- ldr r1, _080089EC @ =0x06013800
- movs r2, #0x6c
- movs r3, #1
- bl sub_10708
- ldr r1, _080089F0 @ =0x040000D4
- ldr r0, _080089F4 @ =0x086B15B4
- adds r5, r5, r0
- lsls r4, r4, #5
- ldr r0, [r5]
- adds r0, r0, r4
- str r0, [r1]
- ldr r0, _080089F8 @ =0x05000240
- b _08008A4E
- .align 2, 0
-_080089E0: .4byte 0x086A61BC
-_080089E4: .4byte 0x0202BF14
-_080089E8: .4byte 0x086BB6F4
-_080089EC: .4byte 0x06013800
-_080089F0: .4byte 0x040000D4
-_080089F4: .4byte 0x086B15B4
-_080089F8: .4byte 0x05000240
-_080089FC:
- ldr r1, _08008A5C @ =0x0202BF14
- movs r0, #1
- strh r0, [r1]
- subs r4, #0x64
- adds r0, r4, #0
- movs r1, #6
- bl __divsi3
- lsls r0, r0, #0x10
- lsrs r5, r0, #0x10
- adds r0, r4, #0
- movs r1, #6
- bl __modsi3
- adds r4, r0, #0
- ldr r0, _08008A60 @ =gMonHatchSpriteGroupGfx
- lsls r5, r5, #0x10
- asrs r5, r5, #0xe
- adds r0, r5, r0
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- lsls r1, r4, #4
- adds r1, r1, r4
- lsls r1, r1, #3
- subs r1, r1, r4
- lsls r1, r1, #5
- ldr r0, [r0]
- adds r0, r0, r1
- ldr r1, _08008A64 @ =0x06014800
- movs r2, #0x87
- movs r3, #1
- bl sub_10708
- ldr r1, _08008A68 @ =0x040000D4
- ldr r0, _08008A6C @ =gMonHatchSpriteGroupPals
- adds r5, r5, r0
- lsls r4, r4, #5
- ldr r0, [r5]
- adds r0, r0, r4
- str r0, [r1]
- ldr r0, _08008A70 @ =0x05000260
-_08008A4E:
- str r0, [r1, #4]
- ldr r0, _08008A74 @ =0x80000010
- str r0, [r1, #8]
- ldr r0, [r1, #8]
-_08008A56:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08008A5C: .4byte 0x0202BF14
-_08008A60: .4byte gMonHatchSpriteGroupGfx
-_08008A64: .4byte 0x06014800
-_08008A68: .4byte 0x040000D4
-_08008A6C: .4byte gMonHatchSpriteGroupPals
-_08008A70: .4byte 0x05000260
-_08008A74: .4byte 0x80000010
-
- thumb_func_start sub_8A78
-sub_8A78: @ 0x08008A78
- ldr r1, _08008AA0 @ =0x0202A1C0
- lsls r0, r0, #0x10
- asrs r2, r0, #0xf
- adds r1, r2, r1
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #4
- bne _08008AAC
- ldr r0, _08008AA4 @ =0x086A61BC
- adds r0, r2, r0
- movs r2, #0
- ldrsh r1, [r0, r2]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- beq _08008AAC
- ldr r1, _08008AA8 @ =0x0202A588
- movs r0, #1
- b _08008AB0
- .align 2, 0
-_08008AA0: .4byte 0x0202A1C0
-_08008AA4: .4byte 0x086A61BC
-_08008AA8: .4byte 0x0202A588
-_08008AAC:
- ldr r1, _08008AB8 @ =0x0202A588
- movs r0, #0
-_08008AB0:
- strh r0, [r1]
- movs r3, #0
- ldrsh r0, [r1, r3]
- bx lr
- .align 2, 0
-_08008AB8: .4byte 0x0202A588
-
- thumb_func_start sub_8ABC
-sub_8ABC: @ 0x08008ABC
- ldr r1, _08008AD0 @ =0x0200B134
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xcc
-_08008AC4:
- strb r2, [r0]
- subs r0, #1
- cmp r0, r1
- bge _08008AC4
- bx lr
- .align 2, 0
-_08008AD0: .4byte 0x0200B134
-
- thumb_func_start sub_8AD4
-sub_8AD4: @ 0x08008AD4
- push {lr}
- ldr r1, _08008AEC @ =0x080792C0
- ldr r0, _08008AF0 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08008AEC: .4byte 0x080792C0
-_08008AF0: .4byte 0x0200B0C0
-
- thumb_func_start sub_8AF4
-sub_8AF4: @ 0x08008AF4
- push {r4, lr}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x84
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _08008BD4 @ =0x04000008
- movs r0, #4
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #1
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08008BD8 @ =0x0400000A
- adds r3, #5
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r3, #0xfb
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08008BDC @ =0x0400000C
- adds r3, #0xa
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _08008BE0 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r4, #0x16]
- ldr r0, _08008BE4 @ =0x040000D4
- ldr r1, _08008BE8 @ =gFieldSelectBGPals
- str r1, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r3, _08008BEC @ =0x80000100
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08008BF0 @ =gFieldSelectWindow_Gfx
- str r1, [r0]
- ldr r1, _08008BF4 @ =0x06004000
- str r1, [r0, #4]
- ldr r1, _08008BF8 @ =0x80000A00
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08008BFC @ =gFieldSelectMiniFields_Gfx
- str r1, [r0]
- ldr r1, _08008C00 @ =0x06008000
- str r1, [r0, #4]
- ldr r1, _08008C04 @ =0x80001C00
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08008C08 @ =0x080A2400
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r2, _08008C0C @ =0x80000400
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08008C10 @ =gFieldSelectFrameShadowTilemap
- str r1, [r0]
- ldr r1, _08008C14 @ =0x06000800
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08008C18 @ =gFieldSelectWindowTilemap
- str r1, [r0]
- ldr r1, _08008C1C @ =0x06001000
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08008C20 @ =gFieldSelectSpritePals
- str r1, [r0]
- ldr r1, _08008C24 @ =0x05000200
- str r1, [r0, #4]
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _08008C28 @ =gFieldSelectSpriteGfx
- str r1, [r0]
- ldr r1, _08008C2C @ =0x06010000
- str r1, [r0, #4]
- ldr r1, _08008C30 @ =0x80002010
- str r1, [r0, #8]
- ldr r0, [r0, #8]
- bl sub_CBC
- bl sub_8C38
- ldr r0, _08008C34 @ =sub_8F94 + 1
- bl sub_FD5C
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
- movs r0, #3
- bl m4aSongNumStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08008BD4: .4byte 0x04000008
-_08008BD8: .4byte 0x0400000A
-_08008BDC: .4byte 0x0400000C
-_08008BE0: .4byte 0x0200B0C0
-_08008BE4: .4byte 0x040000D4
-_08008BE8: .4byte gFieldSelectBGPals
-_08008BEC: .4byte 0x80000100
-_08008BF0: .4byte gFieldSelectWindow_Gfx
-_08008BF4: .4byte 0x06004000
-_08008BF8: .4byte 0x80000A00
-_08008BFC: .4byte gFieldSelectMiniFields_Gfx
-_08008C00: .4byte 0x06008000
-_08008C04: .4byte 0x80001C00
-_08008C08: .4byte 0x080A2400
-_08008C0C: .4byte 0x80000400
-_08008C10: .4byte gFieldSelectFrameShadowTilemap
-_08008C14: .4byte 0x06000800
-_08008C18: .4byte gFieldSelectWindowTilemap
-_08008C1C: .4byte 0x06001000
-_08008C20: .4byte gFieldSelectSpritePals
-_08008C24: .4byte 0x05000200
-_08008C28: .4byte gFieldSelectSpriteGfx
-_08008C2C: .4byte 0x06010000
-_08008C30: .4byte 0x80002010
-_08008C34: .4byte sub_8F94 + 1
-
- thumb_func_start sub_8C38
-sub_8C38: @ 0x08008C38
- ldr r2, _08008C70 @ =0x02002838
- movs r3, #0
- movs r1, #0
- movs r0, #2
- strh r0, [r2]
- movs r0, #3
- strh r0, [r2, #2]
- strh r1, [r2, #4]
- movs r0, #1
- strh r0, [r2, #6]
- strh r1, [r2, #8]
- strh r1, [r2, #0xa]
- strh r1, [r2, #0xc]
- strh r1, [r2, #0xe]
- strh r1, [r2, #0x16]
- strh r1, [r2, #0x12]
- strb r3, [r2, #0x14]
- ldr r0, _08008C74 @ =0x0200B134
- adds r1, r0, #0
- adds r1, #0xce
- ldrb r1, [r1]
- strb r1, [r2, #0x10]
- subs r0, #0x74
- strb r3, [r0, #4]
- ldr r0, _08008C78 @ =0x02002850
- strb r3, [r0]
- bx lr
- .align 2, 0
-_08008C70: .4byte 0x02002838
-_08008C74: .4byte 0x0200B134
-_08008C78: .4byte 0x02002850
-
- thumb_func_start sub_8C7C
-sub_8C7C: @ 0x08008C7C
- push {r4, r5, r6, r7, lr}
- bl sub_8F94
- ldr r7, _08008CC4 @ =0x0200B0C0
- ldrh r1, [r7, #0x1c]
- movs r0, #0xf
- ands r0, r1
- cmp r0, #0xf
- bne _08008CA0
- ldr r1, _08008CC8 @ =0x02002850
- movs r0, #1
- strb r0, [r1]
- ldr r1, _08008CCC @ =0x02002838
- movs r0, #0
- strh r0, [r1, #0x16]
- ldrb r0, [r7, #3]
- adds r0, #1
- strb r0, [r7, #3]
-_08008CA0:
- ldr r0, _08008CC8 @ =0x02002850
- movs r6, #0
- ldrsb r6, [r0, r6]
- cmp r6, #0
- beq _08008CAC
- b _08008F56
-_08008CAC:
- ldr r5, _08008CCC @ =0x02002838
- ldrh r4, [r5, #0xa]
- adds r3, r5, #0
- cmp r4, #1
- bne _08008CB8
- b _08008E2E
-_08008CB8:
- cmp r4, #1
- bgt _08008CD0
- cmp r4, #0
- beq _08008CDC
- b _08008F4C
- .align 2, 0
-_08008CC4: .4byte 0x0200B0C0
-_08008CC8: .4byte 0x02002850
-_08008CCC: .4byte 0x02002838
-_08008CD0:
- cmp r4, #2
- beq _08008DC2
- cmp r4, #3
- bne _08008CDA
- b _08008F08
-_08008CDA:
- b _08008F4C
-_08008CDC:
- ldrh r1, [r7, #0x18]
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _08008CFC
- ldrh r4, [r5, #8]
- cmp r4, #1
- bne _08008D1A
- movs r0, #0x6d
- bl m4aSongNumStart
- strh r6, [r5, #8]
- strh r6, [r5, #4]
- strh r4, [r5, #6]
- strh r4, [r5, #0xa]
- b _08008D1A
-_08008CFC:
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _08008D1A
- ldrh r0, [r5, #8]
- cmp r0, #0
- bne _08008D1A
- movs r0, #0x6d
- bl m4aSongNumStart
- movs r0, #1
- strh r0, [r5, #8]
- strh r0, [r5, #4]
- strh r6, [r5, #6]
- strh r0, [r5, #0xa]
-_08008D1A:
- ldr r2, _08008D50 @ =0x0200B0C0
- ldrh r1, [r2, #0x18]
- movs r4, #1
- adds r0, r4, #0
- ands r0, r1
- adds r5, r2, #0
- cmp r0, #0
- beq _08008D66
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r1, _08008D54 @ =0x02002838
- movs r2, #0
- movs r3, #2
- strh r3, [r1, #0xa]
- movs r0, #1
- strb r0, [r1, #0x14]
- strh r2, [r1, #0xe]
- ldrh r0, [r1, #8]
- cmp r0, #0
- bne _08008D58
- strh r2, [r1, #4]
- strh r4, [r1, #6]
- strh r3, [r1]
- movs r0, #3
- b _08008D62
- .align 2, 0
-_08008D50: .4byte 0x0200B0C0
-_08008D54: .4byte 0x02002838
-_08008D58:
- strh r4, [r1, #4]
- strh r2, [r1, #6]
- movs r0, #7
- strh r0, [r1]
- movs r0, #0xb
-_08008D62:
- strh r0, [r1, #2]
- strh r2, [r1, #0xc]
-_08008D66:
- ldrh r1, [r5, #0x18]
- movs r4, #2
- adds r0, r4, #0
- ands r0, r1
- cmp r0, #0
- beq _08008DAA
- movs r0, #0x66
- bl m4aSongNumStart
- ldrb r0, [r5, #3]
- adds r0, #1
- movs r3, #0
- strb r0, [r5, #3]
- ldr r1, _08008D98 @ =0x02002838
- movs r2, #1
- strh r2, [r1, #0x16]
- ldrh r0, [r1, #8]
- cmp r0, #0
- bne _08008D9C
- strh r3, [r1, #4]
- strh r2, [r1, #6]
- strh r4, [r1]
- movs r0, #3
- b _08008DA6
- .align 2, 0
-_08008D98: .4byte 0x02002838
-_08008D9C:
- strh r2, [r1, #4]
- strh r3, [r1, #6]
- movs r0, #7
- strh r0, [r1]
- movs r0, #0xb
-_08008DA6:
- strh r0, [r1, #2]
- strh r3, [r1, #0xc]
-_08008DAA:
- ldr r1, _08008DB8 @ =0x0200B0C0
- ldrb r0, [r1, #4]
- cmp r0, #1
- bhi _08008DBC
- movs r0, #0
- strb r0, [r1, #6]
- b _08008F4C
- .align 2, 0
-_08008DB8: .4byte 0x0200B0C0
-_08008DBC:
- movs r0, #1
- strb r0, [r1, #6]
- b _08008F4C
-_08008DC2:
- ldrh r1, [r7, #0x18]
- movs r0, #0x30
- ands r0, r1
- cmp r0, #0
- beq _08008DDA
- movs r0, #0x67
- bl m4aSongNumStart
- ldrb r1, [r5, #0x10]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r5, #0x10]
-_08008DDA:
- ldrh r1, [r7, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08008E00
- movs r0, #0x65
- bl m4aSongNumStart
- strh r6, [r5, #0xe]
- strh r6, [r5, #0xc]
- ldrb r0, [r5, #0x10]
- movs r2, #0xa1
- lsls r2, r2, #1
- adds r1, r7, r2
- strb r0, [r1]
- bl sub_52B30
- movs r0, #3
- strh r0, [r5, #0xa]
-_08008E00:
- ldrh r0, [r7, #0x18]
- ands r4, r0
- cmp r4, #0
- beq _08008E12
- movs r0, #0x66
- bl m4aSongNumStart
- strb r6, [r5, #0x14]
- strh r6, [r5, #0xa]
-_08008E12:
- ldrh r0, [r5, #0xe]
- adds r0, #1
- strh r0, [r5, #0xe]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- bgt _08008E22
- b _08008F4C
-_08008E22:
- strh r6, [r5, #0xe]
- ldrh r1, [r5, #0x12]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r5, #0x12]
- b _08008F4C
-_08008E2E:
- ldrh r0, [r5, #8]
- cmp r0, #0
- bne _08008E5C
- ldr r2, _08008E58 @ =0x086A6B14
- movs r4, #0xc
- ldrsh r0, [r5, r4]
- movs r1, #4
- subs r0, r1, r0
- lsls r0, r0, #1
- adds r0, r0, r2
- ldrh r0, [r0]
- strh r0, [r5]
- movs r4, #0xc
- ldrsh r0, [r5, r4]
- subs r1, r1, r0
- lsls r1, r1, #1
- adds r2, #0xa
- adds r1, r1, r2
- ldrh r0, [r1]
- b _08008E76
- .align 2, 0
-_08008E58: .4byte 0x086A6B14
-_08008E5C:
- ldr r1, _08008E94 @ =0x086A6B14
- movs r2, #0xc
- ldrsh r0, [r5, r2]
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r0, [r0]
- strh r0, [r5]
- movs r4, #0xc
- ldrsh r0, [r5, r4]
- lsls r0, r0, #1
- adds r1, #0xa
- adds r0, r0, r1
- ldrh r0, [r0]
-_08008E76:
- strh r0, [r5, #2]
- ldr r0, _08008E98 @ =0x0200B0C0
- ldr r1, [r0, #0x4c]
- movs r0, #1
- ands r1, r0
- cmp r1, #0
- bne _08008EA0
- ldrh r2, [r3, #0xc]
- movs r4, #0xc
- ldrsh r0, [r3, r4]
- cmp r0, #3
- bgt _08008E9C
- adds r0, r2, #1
- strh r0, [r3, #0xc]
- b _08008EA0
- .align 2, 0
-_08008E94: .4byte 0x086A6B14
-_08008E98: .4byte 0x0200B0C0
-_08008E9C:
- strh r1, [r3, #0xc]
- strh r1, [r3, #0xa]
-_08008EA0:
- ldr r0, _08008ED0 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _08008ED8
- ldr r4, _08008ED4 @ =0x02002838
- ldrh r5, [r4, #8]
- cmp r5, #1
- bne _08008F4C
- movs r0, #0x6d
- bl m4aSongNumStart
- movs r0, #0
- strh r0, [r4, #8]
- strh r0, [r4, #4]
- strh r5, [r4, #6]
- movs r1, #2
- strh r1, [r4]
- movs r1, #3
- strh r1, [r4, #2]
- strh r0, [r4, #0xc]
- strh r0, [r4, #0xa]
- b _08008F4C
- .align 2, 0
-_08008ED0: .4byte 0x0200B0C0
-_08008ED4: .4byte 0x02002838
-_08008ED8:
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _08008F4C
- ldr r4, _08008F04 @ =0x02002838
- ldrh r5, [r4, #8]
- cmp r5, #0
- bne _08008F4C
- movs r0, #0x6d
- bl m4aSongNumStart
- movs r0, #1
- strh r0, [r4, #8]
- strh r0, [r4, #4]
- strh r5, [r4, #6]
- movs r0, #7
- strh r0, [r4]
- movs r0, #0xb
- strh r0, [r4, #2]
- strh r5, [r4, #0xc]
- strh r5, [r4, #0xa]
- b _08008F4C
- .align 2, 0
-_08008F04: .4byte 0x02002838
-_08008F08:
- ldrh r0, [r5, #0xe]
- adds r0, #1
- strh r0, [r5, #0xe]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #3
- ble _08008F4C
- strh r6, [r5, #0xe]
- ldrh r0, [r5, #8]
- cmp r0, #0
- bne _08008F28
- ldrh r1, [r5, #4]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r5, #4]
- b _08008F30
-_08008F28:
- ldrh r1, [r5, #6]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r5, #6]
-_08008F30:
- ldr r1, _08008F5C @ =0x02002838
- ldrh r0, [r1, #0xc]
- adds r0, #1
- strh r0, [r1, #0xc]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #5
- ble _08008F4C
- movs r0, #2
- strh r0, [r1, #0x16]
- ldr r1, _08008F60 @ =0x0200B0C0
- ldrb r0, [r1, #3]
- adds r0, #1
- strb r0, [r1, #3]
-_08008F4C:
- ldr r0, _08008F60 @ =0x0200B0C0
- ldr r1, _08008F5C @ =0x02002838
- ldrh r1, [r1, #8]
- strb r1, [r0, #4]
- strb r1, [r0, #5]
-_08008F56:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08008F5C: .4byte 0x02002838
-_08008F60: .4byte 0x0200B0C0
-
- thumb_func_start sub_8F64
-sub_8F64: @ 0x08008F64
- push {lr}
- ldr r0, _08008F88 @ =sub_8F94 + 1
- bl sub_FE04
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08008F8C @ =0x0201A4B4
- movs r0, #1
- strb r0, [r1]
- ldr r0, _08008F90 @ =0x02002838
- ldrh r0, [r0, #0x16]
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_08008F88: .4byte sub_8F94 + 1
-_08008F8C: .4byte 0x0201A4B4
-_08008F90: .4byte 0x02002838
-
- thumb_func_start sub_8F94
-sub_8F94: @ 0x08008F94
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- ldr r5, _08009254 @ =0x0200B0C0
- ldrh r0, [r5, #0x38]
- ldr r0, _08009258 @ =0x00000642
- strh r0, [r5, #0x38]
- ldrh r0, [r5, #0x3a]
- ldr r0, _0800925C @ =0x00000808
- strh r0, [r5, #0x3a]
- ldr r1, _08009260 @ =0x04000050
- ldrh r0, [r5, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r5, #0x3a]
- strh r0, [r1]
- movs r0, #0xbe
- lsls r0, r0, #2
- adds r6, r5, r0
- movs r1, #0xec
- lsls r1, r1, #2
- adds r1, r1, r5
- mov sb, r1
- ldr r4, _08009264 @ =0x02002838
- ldrh r0, [r4]
- movs r2, #0xb8
- muls r0, r2, r0
- adds r0, r0, r6
- str r0, [sp]
- ldrh r0, [r4, #2]
- muls r0, r2, r0
- adds r0, r0, r6
- mov sl, r0
- ldrb r1, [r4, #0x10]
- lsls r1, r1, #1
- movs r3, #0x12
- ldrsh r0, [r4, r3]
- adds r0, #0xc
- adds r1, r1, r0
- adds r0, r1, #0
- muls r0, r2, r0
- adds r0, r0, r6
- mov r8, r0
- ldrh r0, [r4, #4]
- strh r0, [r6]
- ldrh r0, [r4, #6]
- mov r7, sb
- strh r0, [r7]
- movs r0, #1
- ldr r1, [sp]
- strh r0, [r1]
- mov r2, sl
- strh r0, [r2]
- movs r0, #0x14
- ldrsb r0, [r4, r0]
- mov r3, r8
- strh r0, [r3]
- ldr r0, _08009268 @ =0x086A6AD4
- movs r1, #0x10
- adds r2, r6, #0
- bl sub_358
- ldrh r0, [r4, #4]
- cmp r0, #1
- bne _08009066
- movs r0, #0x25
- strh r0, [r6, #2]
- movs r0, #0x18
- strh r0, [r6, #4]
- ldr r7, _0800926C @ =0x03005000
- movs r0, #0xc0
- lsls r0, r0, #2
- adds r4, r5, r0
- ldr r1, _08009270 @ =0x000001FF
- mov ip, r1
- movs r5, #1
-_08009032:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r7
- movs r2, #2
- ldrsh r1, [r4, r2]
- movs r2, #2
- ldrsh r0, [r6, r2]
- adds r1, r1, r0
- mov r0, ip
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _08009274 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r7
- ldrb r0, [r6, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _08009032
-_08009066:
- ldr r0, _08009264 @ =0x02002838
- ldrh r1, [r0, #6]
- cmp r1, #1
- bne _080090BC
- movs r0, #0x8d
- mov r3, sb
- strh r0, [r3, #2]
- movs r0, #0x18
- strh r0, [r3, #4]
- ldr r6, _0800926C @ =0x03005000
- ldr r7, _08009274 @ =0xFFFFFE00
- mov ip, r7
- mov r4, sb
- adds r4, #8
- movs r5, #1
-_08009084:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, sb
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r0, _08009270 @ =0x000001FF
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r2, sb
- ldrb r0, [r2, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _08009084
-_080090BC:
- movs r0, #0x20
- ldr r7, [sp]
- strh r0, [r7, #2]
- strh r0, [r7, #4]
- ldr r1, _08009264 @ =0x02002838
- ldrh r0, [r1]
- lsls r0, r0, #2
- ldr r2, _08009268 @ =0x086A6AD4
- adds r0, r0, r2
- ldr r6, [r0]
- movs r5, #0
- ldrh r3, [r6]
- cmp r5, r3
- bge _0800913A
- movs r7, #0xd
- rsbs r7, r7, #0
- mov ip, r7
- ldr r0, _08009274 @ =0xFFFFFE00
- mov sb, r0
- ldr r4, [sp]
- adds r4, #8
-_080090E6:
- ldrh r2, [r4]
- lsls r2, r2, #3
- ldr r1, _0800926C @ =0x03005000
- adds r2, r2, r1
- ldrb r1, [r2, #1]
- mov r0, ip
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r3, [r4]
- lsls r3, r3, #3
- ldr r2, _0800926C @ =0x03005000
- adds r3, r3, r2
- movs r7, #2
- ldrsh r1, [r4, r7]
- ldr r2, [sp]
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08009270 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- ldr r3, _0800926C @ =0x03005000
- adds r1, r1, r3
- ldr r7, [sp]
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r3, [r6]
- cmp r5, r3
- blt _080090E6
-_0800913A:
- movs r0, #0x88
- mov r7, sl
- strh r0, [r7, #2]
- movs r0, #0x20
- strh r0, [r7, #4]
- ldr r1, _08009264 @ =0x02002838
- ldrh r0, [r1, #2]
- lsls r0, r0, #2
- ldr r2, _08009268 @ =0x086A6AD4
- adds r0, r0, r2
- ldr r6, [r0]
- movs r5, #0
- ldrh r3, [r6]
- cmp r5, r3
- bge _080091BA
- movs r7, #0xd
- rsbs r7, r7, #0
- mov ip, r7
- ldr r0, _08009274 @ =0xFFFFFE00
- mov sb, r0
- mov r4, sl
- adds r4, #8
-_08009166:
- ldrh r2, [r4]
- lsls r2, r2, #3
- ldr r1, _0800926C @ =0x03005000
- adds r2, r2, r1
- ldrb r1, [r2, #1]
- mov r0, ip
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r3, [r4]
- lsls r3, r3, #3
- ldr r2, _0800926C @ =0x03005000
- adds r3, r3, r2
- movs r7, #2
- ldrsh r1, [r4, r7]
- mov r2, sl
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08009270 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- ldr r3, _0800926C @ =0x03005000
- adds r1, r1, r3
- mov r7, sl
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r3, [r6]
- cmp r5, r3
- blt _08009166
-_080091BA:
- mov r7, r8
- ldrh r0, [r7]
- cmp r0, #1
- bne _08009234
- ldr r1, _08009278 @ =0x086A6B28
- ldr r2, _08009264 @ =0x02002838
- ldrh r0, [r2, #8]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldrh r0, [r0]
- strh r0, [r7, #2]
- ldrh r0, [r2, #8]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldrh r0, [r0, #2]
- strh r0, [r7, #4]
- ldr r6, _0800926C @ =0x03005000
- movs r3, #0xd
- rsbs r3, r3, #0
- mov sb, r3
- ldr r7, _08009274 @ =0xFFFFFE00
- mov ip, r7
- mov r4, r8
- adds r4, #8
- movs r5, #4
-_080091EC:
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #1]
- mov r0, sb
- ands r0, r2
- strb r0, [r1, #1]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, r8
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08009270 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r3, r8
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _080091EC
-_08009234:
- movs r0, #0
- ldr r1, [sp]
- strh r0, [r1]
- mov r2, sl
- strh r0, [r2]
- mov r3, r8
- strh r0, [r3]
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08009254: .4byte 0x0200B0C0
-_08009258: .4byte 0x00000642
-_0800925C: .4byte 0x00000808
-_08009260: .4byte 0x04000050
-_08009264: .4byte 0x02002838
-_08009268: .4byte 0x086A6AD4
-_0800926C: .4byte 0x03005000
-_08009270: .4byte 0x000001FF
-_08009274: .4byte 0xFFFFFE00
-_08009278: .4byte 0x086A6B28
-
- thumb_func_start sub_927C
-sub_927C: @ 0x0800927C
- push {lr}
- ldr r1, _08009294 @ =0x080792CC
- ldr r0, _08009298 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08009294: .4byte 0x080792CC
-_08009298: .4byte 0x0200B0C0
-
- thumb_func_start sub_929C
-sub_929C: @ 0x0800929C
- push {r4, lr}
- bl sub_438
- movs r3, #0x80
- lsls r3, r3, #0x13
- movs r0, #0x80
- strh r0, [r3]
- ldr r1, _08009318 @ =0x0400000A
- movs r0, #5
- strh r0, [r1]
- ldrh r0, [r3]
- movs r2, #0x80
- lsls r2, r2, #2
- adds r1, r2, #0
- orrs r0, r1
- strh r0, [r3]
- ldr r1, _0800931C @ =0x040000D4
- ldr r0, _08009320 @ =0x080798C0
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r2, _08009324 @ =0x80000400
- str r2, [r1, #8]
- ldr r0, [r1, #8]
- ldr r0, _08009328 @ =0x0807A0C0
- str r0, [r1]
- ldr r0, _0800932C @ =0x06004000
- str r0, [r1, #4]
- str r2, [r1, #8]
- ldr r0, [r1, #8]
- ldr r0, _08009330 @ =gIntroCopyright_Pal
- str r0, [r1]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _08009334 @ =0x80000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldr r4, _08009338 @ =0x0200B0C0
- ldrh r0, [r3]
- movs r2, #0
- movs r1, #0
- strh r0, [r4, #0x16]
- ldr r0, _0800933C @ =0x0202BF10
- strh r1, [r0]
- ldr r0, _08009340 @ =0x0202C790
- strb r2, [r0]
- ldr r0, _08009344 @ =sub_93F8 + 1
- bl sub_898
- bl sub_CBC
- bl sub_24C
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009318: .4byte 0x0400000A
-_0800931C: .4byte 0x040000D4
-_08009320: .4byte 0x080798C0
-_08009324: .4byte 0x80000400
-_08009328: .4byte 0x0807A0C0
-_0800932C: .4byte 0x06004000
-_08009330: .4byte gIntroCopyright_Pal
-_08009334: .4byte 0x80000100
-_08009338: .4byte 0x0200B0C0
-_0800933C: .4byte 0x0202BF10
-_08009340: .4byte 0x0202C790
-_08009344: .4byte sub_93F8 + 1
-
- thumb_func_start sub_9348
-sub_9348: @ 0x08009348
- ldr r1, _08009368 @ =0x0202BF10
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x78
- ble _08009364
- movs r0, #0
- strh r0, [r1]
- ldr r1, _0800936C @ =0x0200B0C0
- ldrb r0, [r1, #3]
- adds r0, #1
- strb r0, [r1, #3]
-_08009364:
- bx lr
- .align 2, 0
-_08009368: .4byte 0x0202BF10
-_0800936C: .4byte 0x0200B0C0
-
- thumb_func_start sub_9370
-sub_9370: @ 0x08009370
- push {lr}
- movs r0, #0
- bl sub_FF74
- bl sub_D10
- ldr r1, _08009388 @ =0x0200B0C0
- ldrb r0, [r1, #3]
- adds r0, #1
- strb r0, [r1, #3]
- pop {r0}
- bx r0
- .align 2, 0
-_08009388: .4byte 0x0200B0C0
-
- thumb_func_start sub_938C
-sub_938C: @ 0x0800938C
- push {lr}
- ldr r1, _080093C0 @ =0x080792E0
- ldr r0, _080093C4 @ =0x0202C790
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _080093C8 @ =0x0202BF10
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- ldr r2, _080093CC @ =0x0200B0C0
- ldrh r1, [r2, #0x18]
- movs r0, #9
- ands r0, r1
- cmp r0, #0
- beq _080093BA
- movs r0, #4
- strb r0, [r2, #3]
-_080093BA:
- pop {r0}
- bx r0
- .align 2, 0
-_080093C0: .4byte 0x080792E0
-_080093C4: .4byte 0x0202C790
-_080093C8: .4byte 0x0202BF10
-_080093CC: .4byte 0x0200B0C0
-
- thumb_func_start sub_93D0
-sub_93D0: @ 0x080093D0
- push {lr}
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- bl sub_8BC
- ldr r1, _080093F4 @ =0x0201A4B4
- movs r0, #0
- strb r0, [r1]
- movs r0, #1
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_080093F4: .4byte 0x0201A4B4
-
- thumb_func_start sub_93F8
-sub_93F8: @ 0x080093F8
- push {lr}
- ldr r0, _08009480 @ =0x04000004
- ldrh r1, [r0]
- movs r0, #8
- ands r0, r1
- cmp r0, #0
- beq _0800947C
- bl m4aSoundMain
- bl VBlankIntrWait
- ldr r1, _08009484 @ =0x040000D4
- ldr r0, _08009488 @ =0x03005000
- str r0, [r1]
- movs r0, #0xe0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800948C @ =0x84000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r2, #0x80
- lsls r2, r2, #0x13
- ldr r1, _08009490 @ =0x0200B0C0
- ldrh r0, [r1, #0x16]
- strh r0, [r2]
- adds r2, #0x10
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, #2
- adds r3, #2
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, #2
- adds r3, #2
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, #2
- adds r3, #2
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, #2
- adds r3, #2
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, #2
- adds r3, #2
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, #2
- adds r3, #2
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, #2
- ldr r0, _08009494 @ =0x000002F6
- adds r1, r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
-_0800947C:
- pop {r0}
- bx r0
- .align 2, 0
-_08009480: .4byte 0x04000004
-_08009484: .4byte 0x040000D4
-_08009488: .4byte 0x03005000
-_0800948C: .4byte 0x84000100
-_08009490: .4byte 0x0200B0C0
-_08009494: .4byte 0x000002F6
-
- thumb_func_start sub_9498
-sub_9498: @ 0x08009498
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- bl sub_490
- bl sub_518
- bl sub_578
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x80
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800961C @ =0x04000008
- movs r3, #0xd0
- lsls r3, r3, #5
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r7, #0x80
- lsls r7, r7, #1
- adds r1, r7, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08009620 @ =0x0400000A
- ldr r3, _08009624 @ =0x00005B01
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r7, #0x80
- lsls r7, r7, #2
- adds r1, r7, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08009628 @ =0x0400000C
- ldr r3, _0800962C @ =0x00005D02
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r7, #0x80
- lsls r7, r7, #3
- adds r1, r7, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08009630 @ =0x0400000E
- ldr r3, _08009634 @ =0x00001F03
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r7, #0x80
- lsls r7, r7, #4
- adds r1, r7, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _08009638 @ =0x040000D4
- ldr r0, _0800963C @ =0x080B9CC0
- str r0, [r4]
- ldr r0, _08009640 @ =0x0600D000
- str r0, [r4, #4]
- ldr r2, _08009644 @ =0x80000400
- str r2, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08009648 @ =0x080BC4C0
- str r0, [r4]
- ldr r0, _0800964C @ =0x0600D800
- str r0, [r4, #4]
- ldr r1, _08009650 @ =0x80000800
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08009654 @ =0x080BB4C0
- str r0, [r4]
- ldr r0, _08009658 @ =0x0600E800
- str r0, [r4, #4]
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800965C @ =0x080B3CA0
- str r0, [r4]
- ldr r0, _08009660 @ =0x0600F800
- str r0, [r4, #4]
- str r2, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _08009664 @ =0x080B44A0
- str r0, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r0, _08009668 @ =0x80002C00
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800966C @ =0x080BD4C0
- str r0, [r4]
- ldr r0, _08009670 @ =0x0201C1C0
- str r0, [r4, #4]
- ldr r0, _08009674 @ =0x80003400
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r6, _08009678 @ =gIntroScene1Sprites_Pals
- movs r0, #0xa0
- lsls r0, r0, #0x13
- mov sl, r0
- movs r2, #0x80
- lsls r2, r2, #2
- adds r0, r6, #0
- mov r1, sl
- movs r3, #0x20
- bl sub_10170
- ldr r0, _0800967C @ =gIntroScene1Sprites_Gfx
- str r0, [r4]
- ldr r0, _08009680 @ =0x06010000
- str r0, [r4, #4]
- ldr r0, _08009684 @ =0x80004000
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- str r6, [r4]
- ldr r5, _08009688 @ =0x05000200
- str r5, [r4, #4]
- ldr r1, _0800968C @ =0x80000100
- mov r8, r1
- str r1, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_96A8
- ldr r1, _08009690 @ =0x0200B0C0
- ldr r2, _08009694 @ =0x0202ADA0
- ldrh r3, [r2]
- movs r7, #0xba
- lsls r7, r7, #2
- adds r0, r1, r7
- movs r7, #0
- mov sb, r7
- strh r3, [r0]
- ldrh r3, [r2, #2]
- ldr r7, _08009698 @ =0x000002EA
- adds r0, r1, r7
- strh r3, [r0]
- ldrh r3, [r2, #0x24]
- adds r7, #2
- adds r0, r1, r7
- strh r3, [r0]
- ldrh r3, [r2, #0x26]
- adds r7, #2
- adds r0, r1, r7
- strh r3, [r0]
- ldrh r3, [r2, #0xc]
- adds r7, #2
- adds r0, r1, r7
- strh r3, [r0]
- ldrh r3, [r2, #0xe]
- adds r7, #2
- adds r0, r1, r7
- strh r3, [r0]
- ldrh r3, [r2, #0x18]
- adds r7, #2
- adds r0, r1, r7
- strh r3, [r0]
- ldrh r0, [r2, #0x1a]
- ldr r2, _0800969C @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_CBC
- mov r0, sl
- adds r1, r6, #0
- movs r2, #0
- bl sub_FEB8
- str r6, [r4]
- str r5, [r4, #4]
- mov r3, r8
- str r3, [r4, #8]
- ldr r0, [r4, #8]
- mov r7, sb
- str r7, [r4]
- str r5, [r4, #4]
- ldr r0, _080096A0 @ =0x80000010
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r1, _080096A4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800961C: .4byte 0x04000008
-_08009620: .4byte 0x0400000A
-_08009624: .4byte 0x00005B01
-_08009628: .4byte 0x0400000C
-_0800962C: .4byte 0x00005D02
-_08009630: .4byte 0x0400000E
-_08009634: .4byte 0x00001F03
-_08009638: .4byte 0x040000D4
-_0800963C: .4byte 0x080B9CC0
-_08009640: .4byte 0x0600D000
-_08009644: .4byte 0x80000400
-_08009648: .4byte 0x080BC4C0
-_0800964C: .4byte 0x0600D800
-_08009650: .4byte 0x80000800
-_08009654: .4byte 0x080BB4C0
-_08009658: .4byte 0x0600E800
-_0800965C: .4byte 0x080B3CA0
-_08009660: .4byte 0x0600F800
-_08009664: .4byte 0x080B44A0
-_08009668: .4byte 0x80002C00
-_0800966C: .4byte 0x080BD4C0
-_08009670: .4byte 0x0201C1C0
-_08009674: .4byte 0x80003400
-_08009678: .4byte gIntroScene1Sprites_Pals
-_0800967C: .4byte gIntroScene1Sprites_Gfx
-_08009680: .4byte 0x06010000
-_08009684: .4byte 0x80004000
-_08009688: .4byte 0x05000200
-_0800968C: .4byte 0x80000100
-_08009690: .4byte 0x0200B0C0
-_08009694: .4byte 0x0202ADA0
-_08009698: .4byte 0x000002EA
-_0800969C: .4byte 0x000002F6
-_080096A0: .4byte 0x80000010
-_080096A4: .4byte 0x0202C790
-
- thumb_func_start sub_96A8
-sub_96A8: @ 0x080096A8
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- ldr r0, _0800975C @ =0x0201A450
- mov ip, r0
- movs r5, #0
- movs r2, #0
- movs r1, #0x78
- mov r8, r1
- mov r1, r8
- strh r1, [r0, #0x10]
- movs r6, #0x50
- strh r6, [r0, #0x12]
- strh r2, [r0, #0x18]
- movs r4, #1
- strb r4, [r0, #0x1c]
- movs r0, #0x9c
- mov r1, ip
- strh r0, [r1, #0x30]
- movs r0, #0x92
- strh r0, [r1, #0x32]
- mov r0, ip
- adds r0, #0x3c
- strb r5, [r0]
- strh r2, [r1, #0x3a]
- movs r0, #0x9d
- strh r0, [r1, #0x20]
- movs r0, #0x93
- strh r0, [r1, #0x22]
- mov r0, ip
- adds r0, #0x2c
- strb r5, [r0]
- adds r0, #0x14
- movs r1, #0x80
- strh r1, [r0]
- adds r0, #2
- strh r1, [r0]
- adds r0, #0xa
- strb r4, [r0]
- ldr r0, _08009760 @ =0x0202ADA0
- ldr r1, _08009764 @ =0x0000FFA8
- strh r1, [r0]
- adds r1, #0x22
- strh r1, [r0, #2]
- strh r2, [r0, #8]
- strh r2, [r0, #0xa]
- movs r3, #0x80
- lsls r3, r3, #1
- strh r3, [r0, #0xc]
- strh r2, [r0, #0xe]
- strh r2, [r0, #0x14]
- movs r1, #0xfb
- strh r1, [r0, #0x24]
- strh r2, [r0, #0x26]
- strh r2, [r0, #0x2c]
- strh r2, [r0, #0x18]
- strh r2, [r0, #0x1a]
- mov r1, r8
- mov r0, ip
- strh r1, [r0]
- strh r6, [r0, #2]
- strh r2, [r0, #8]
- strh r2, [r0, #0xa]
- strb r4, [r0, #0xc]
- ldr r0, _08009768 @ =0x0201C1B8
- strb r5, [r0]
- ldr r1, _0800976C @ =0x0202ADD4
- movs r0, #0x10
- strb r0, [r1]
- ldr r0, _08009770 @ =0x0202C594
- strh r2, [r0]
- ldr r0, _08009774 @ =0x02019C30
- str r3, [r0]
- ldr r0, _08009778 @ =0x0201C188
- str r3, [r0]
- ldr r0, _0800977C @ =0x0202BF10
- strh r2, [r0]
- ldr r0, _08009780 @ =0x0202A578
- strh r2, [r0]
- ldr r1, _08009784 @ =0x0202BEF0
- movs r0, #0x20
- str r0, [r1]
- ldr r1, _08009788 @ =0x0202C5A8
- movs r0, #8
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800975C: .4byte 0x0201A450
-_08009760: .4byte 0x0202ADA0
-_08009764: .4byte 0x0000FFA8
-_08009768: .4byte 0x0201C1B8
-_0800976C: .4byte 0x0202ADD4
-_08009770: .4byte 0x0202C594
-_08009774: .4byte 0x02019C30
-_08009778: .4byte 0x0201C188
-_0800977C: .4byte 0x0202BF10
-_08009780: .4byte 0x0202A578
-_08009784: .4byte 0x0202BEF0
-_08009788: .4byte 0x0202C5A8
-
- thumb_func_start sub_978C
-sub_978C: @ 0x0800978C
- push {r4, r5, r6, lr}
- bl sub_9CB8
- ldr r1, _080097C0 @ =0x0201A450
- ldrh r2, [r1, #8]
- movs r3, #8
- ldrsh r0, [r1, r3]
- cmp r0, #0x24
- bne _080097CC
- ldrh r0, [r1, #0xa]
- adds r0, #1
- movs r2, #0
- strh r0, [r1, #0xa]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x1b
- ble _0800981A
- strh r2, [r1, #0xa]
- ldr r0, _080097C4 @ =0x0202A578
- strh r2, [r0]
- ldr r1, _080097C8 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- b _0800981A
- .align 2, 0
-_080097C0: .4byte 0x0201A450
-_080097C4: .4byte 0x0202A578
-_080097C8: .4byte 0x0202C790
-_080097CC:
- ldrh r0, [r1, #0xa]
- adds r0, #1
- strh r0, [r1, #0xa]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #1
- ble _080097E2
- movs r0, #0
- strh r0, [r1, #0xa]
- adds r0, r2, #1
- strh r0, [r1, #8]
-_080097E2:
- ldr r3, _08009820 @ =0x0202BF10
- ldr r5, _08009824 @ =0x086A77A8
- ldr r4, _08009828 @ =0x0202A578
- movs r6, #0
- ldrsh r2, [r4, r6]
- lsls r2, r2, #2
- ldr r0, _0800982C @ =0x0202C5A8
- movs r1, #0
- ldrsb r1, [r0, r1]
- lsls r0, r1, #2
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r2, r2, r0
- adds r0, r5, #2
- adds r0, r2, r0
- movs r6, #0
- ldrsh r1, [r3, r6]
- movs r3, #0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- blt _0800981A
- adds r0, r2, r5
- ldrh r0, [r0]
- bl m4aSongNumStart
- ldrh r0, [r4]
- adds r0, #1
- strh r0, [r4]
-_0800981A:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08009820: .4byte 0x0202BF10
-_08009824: .4byte 0x086A77A8
-_08009828: .4byte 0x0202A578
-_0800982C: .4byte 0x0202C5A8
-
- thumb_func_start sub_9830
-sub_9830: @ 0x08009830
- push {lr}
- ldr r0, _08009868 @ =0x02019C30
- ldr r2, [r0]
- subs r2, #0x10
- str r2, [r0]
- ldr r1, _0800986C @ =0x0201C188
- ldr r0, [r1]
- subs r0, #0x10
- str r0, [r1]
- ldr r1, _08009870 @ =0x0201A450
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- cmp r2, #0x1f
- bgt _0800985E
- movs r0, #0
- strh r0, [r1, #0xa]
- movs r0, #0x25
- strh r0, [r1, #8]
- ldr r1, _08009874 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800985E:
- bl sub_9D70
- pop {r0}
- bx r0
- .align 2, 0
-_08009868: .4byte 0x02019C30
-_0800986C: .4byte 0x0201C188
-_08009870: .4byte 0x0201A450
-_08009874: .4byte 0x0202C790
-
- thumb_func_start sub_9878
-sub_9878: @ 0x08009878
- push {lr}
- ldr r1, _080098AC @ =0x0201A450
- ldrh r0, [r1, #0xa]
- adds r0, #1
- strh r0, [r1, #0xa]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #3
- ble _080098A8
- movs r0, #0
- strh r0, [r1, #0xa]
- movs r0, #0x78
- strh r0, [r1]
- movs r0, #0x58
- strh r0, [r1, #2]
- movs r0, #1
- strb r0, [r1, #0xc]
- movs r0, #0xd8
- bl m4aSongNumStart
- ldr r1, _080098B0 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_080098A8:
- pop {r0}
- bx r0
- .align 2, 0
-_080098AC: .4byte 0x0201A450
-_080098B0: .4byte 0x0202C790
-
- thumb_func_start sub_98B4
-sub_98B4: @ 0x080098B4
- push {lr}
- ldr r1, _080098F0 @ =0x0201A450
- ldrh r2, [r1, #8]
- movs r3, #8
- ldrsh r0, [r1, r3]
- cmp r0, #0x2b
- bne _08009900
- ldrh r0, [r1, #0xa]
- adds r0, #1
- strh r0, [r1, #0xa]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #1
- ble _08009916
- movs r0, #0
- strb r0, [r1, #0xc]
- ldr r0, _080098F4 @ =0x080B3C60
- ldr r1, _080098F8 @ =0x050000E0
- movs r2, #0x20
- movs r3, #0
- bl sub_10170
- movs r0, #8
- bl m4aSongNumStart
- ldr r1, _080098FC @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- b _08009916
- .align 2, 0
-_080098F0: .4byte 0x0201A450
-_080098F4: .4byte 0x080B3C60
-_080098F8: .4byte 0x050000E0
-_080098FC: .4byte 0x0202C790
-_08009900:
- ldrh r0, [r1, #0xa]
- adds r0, #1
- strh r0, [r1, #0xa]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #1
- ble _08009916
- movs r0, #0
- strh r0, [r1, #0xa]
- adds r0, r2, #1
- strh r0, [r1, #8]
-_08009916:
- bl sub_9CB8
- pop {r0}
- bx r0
-
- thumb_func_start sub_9920
-sub_9920: @ 0x08009920
- push {lr}
- ldr r0, _08009954 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r0, r1]
- movs r1, #3
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08009982
- ldr r1, _08009958 @ =0x0202C594
- ldrh r2, [r1]
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #7
- bgt _08009964
- adds r0, r2, #1
- strh r0, [r1]
- ldr r1, _0800995C @ =0x0201C1B8
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- ldr r1, _08009960 @ =0x0202ADD4
- ldrb r0, [r1]
- subs r0, #1
- b _08009976
- .align 2, 0
-_08009954: .4byte 0x0202BF10
-_08009958: .4byte 0x0202C594
-_0800995C: .4byte 0x0201C1B8
-_08009960: .4byte 0x0202ADD4
-_08009964:
- ldr r0, _0800998C @ =0x0201C1C0
- ldr r1, _08009990 @ =0x060036E0
- movs r2, #8
- movs r3, #8
- bl sub_10708
- ldr r1, _08009994 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
-_08009976:
- strb r0, [r1]
- ldr r2, _08009998 @ =0x0201A450
- ldrh r1, [r2, #0x18]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r2, #0x18]
-_08009982:
- bl sub_9E90
- pop {r0}
- bx r0
- .align 2, 0
-_0800998C: .4byte 0x0201C1C0
-_08009990: .4byte 0x060036E0
-_08009994: .4byte 0x0202C790
-_08009998: .4byte 0x0201A450
-
- thumb_func_start sub_999C
-sub_999C: @ 0x0800999C
- push {r4, r5, lr}
- ldr r5, _08009A84 @ =0x0202BEF0
- ldr r0, [r5]
- cmp r0, #0
- ble _080099D0
- subs r0, #2
- str r0, [r5]
- cmp r0, #0
- bgt _080099B2
- movs r0, #0
- str r0, [r5]
-_080099B2:
- ldr r4, _08009A88 @ =gIntroScene1Sprites_Pals
- movs r1, #0xa0
- lsls r1, r1, #0x13
- movs r2, #0x80
- lsls r2, r2, #2
- ldrh r3, [r5]
- adds r0, r4, #0
- bl sub_10170
- ldr r1, _08009A8C @ =0x05000200
- ldrh r3, [r5]
- adds r0, r4, #0
- movs r2, #0x20
- bl sub_10170
-_080099D0:
- ldr r5, _08009A90 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r5, r1]
- movs r1, #3
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080099EC
- ldr r2, _08009A94 @ =0x0201A450
- ldrh r1, [r2, #0x18]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r2, #0x18]
-_080099EC:
- ldr r4, _08009A98 @ =0x0202ADA0
- ldrh r0, [r4]
- subs r0, #1
- strh r0, [r4]
- ldrh r0, [r5]
- movs r5, #1
- ands r0, r5
- cmp r0, #0
- bne _08009A04
- ldrh r0, [r4, #2]
- subs r0, #1
- strh r0, [r4, #2]
-_08009A04:
- ldr r1, _08009A9C @ =0x0200B0C0
- ldrh r2, [r4]
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #2]
- ldr r2, _08009AA0 @ =0x000002EA
- adds r1, r1, r2
- strh r0, [r1]
- ldrh r0, [r4, #0xa]
- adds r0, #1
- strh r0, [r4, #0xa]
- ldr r2, _08009AA4 @ =0x086A7768
- movs r1, #8
- ldrsh r3, [r4, r1]
- lsls r1, r3, #2
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r2, #2
- ldrsh r1, [r1, r2]
- cmp r0, r1
- ble _08009A78
- ldr r1, _08009AA8 @ =0x086A7788
- lsls r0, r3, #1
- adds r0, r0, r1
- movs r3, #0
- ldrsh r0, [r0, r3]
- lsls r0, r0, #1
- ldr r1, _08009AAC @ =0x0201C1C0
- adds r0, r0, r1
- ldr r1, _08009AB0 @ =0x060036E0
- movs r2, #8
- movs r3, #8
- bl sub_10708
- ldrh r0, [r4, #8]
- adds r0, #1
- strh r0, [r4, #8]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #3
- ble _08009A78
- ldr r1, _08009A94 @ =0x0201A450
- adds r0, r1, #0
- adds r0, #0x3c
- strb r5, [r0]
- subs r0, #0x10
- strb r5, [r0]
- movs r0, #0
- strb r0, [r1, #0x1c]
- movs r0, #0
- strh r0, [r4, #0x14]
- ldr r1, _08009AB4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_08009A78:
- bl sub_9E90
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08009A84: .4byte 0x0202BEF0
-_08009A88: .4byte gIntroScene1Sprites_Pals
-_08009A8C: .4byte 0x05000200
-_08009A90: .4byte 0x0202BF10
-_08009A94: .4byte 0x0201A450
-_08009A98: .4byte 0x0202ADA0
-_08009A9C: .4byte 0x0200B0C0
-_08009AA0: .4byte 0x000002EA
-_08009AA4: .4byte 0x086A7768
-_08009AA8: .4byte 0x086A7788
-_08009AAC: .4byte 0x0201C1C0
-_08009AB0: .4byte 0x060036E0
-_08009AB4: .4byte 0x0202C790
-
- thumb_func_start sub_9AB8
-sub_9AB8: @ 0x08009AB8
- push {r4, lr}
- ldr r1, _08009B54 @ =0x0201A450
- ldrh r0, [r1, #0x30]
- subs r0, #0xe
- strh r0, [r1, #0x30]
- ldrh r0, [r1, #0x32]
- subs r0, #0xd
- strh r0, [r1, #0x32]
- ldr r3, _08009B58 @ =0x0202ADA0
- ldrh r0, [r3, #0x24]
- subs r0, #0x10
- strh r0, [r3, #0x24]
- ldrh r0, [r3, #0x26]
- adds r0, #1
- strh r0, [r3, #0x26]
- ldrh r0, [r3, #0xc]
- subs r0, #0x10
- strh r0, [r3, #0xc]
- ldrh r0, [r1, #0x20]
- subs r0, #0xe
- strh r0, [r1, #0x20]
- ldrh r0, [r1, #0x22]
- subs r0, #0xd
- strh r0, [r1, #0x22]
- adds r2, r1, #0
- adds r2, #0x40
- ldrh r0, [r2]
- adds r0, #0xb
- strh r0, [r2]
- adds r1, #0x42
- ldrh r0, [r1]
- subs r0, #2
- strh r0, [r1]
- ldr r0, _08009B5C @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- adds r4, r3, #0
- cmp r0, #0
- bne _08009B14
- ldrh r0, [r4]
- subs r0, #1
- strh r0, [r4]
- ldrh r0, [r4, #2]
- subs r0, #1
- strh r0, [r4, #2]
-_08009B14:
- ldrh r0, [r4, #0xa]
- adds r0, #1
- strh r0, [r4, #0xa]
- ldr r2, _08009B60 @ =0x086A7768
- movs r1, #8
- ldrsh r3, [r4, r1]
- lsls r1, r3, #2
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r2, #2
- ldrsh r1, [r1, r2]
- cmp r0, r1
- ble _08009B94
- adds r0, r3, #0
- cmp r0, #6
- bgt _08009B70
- ldr r1, _08009B64 @ =0x086A7788
- lsls r0, r3, #1
- adds r0, r0, r1
- movs r2, #0
- ldrsh r0, [r0, r2]
- lsls r0, r0, #1
- ldr r1, _08009B68 @ =0x0201C1C0
- adds r0, r0, r1
- ldr r1, _08009B6C @ =0x060036E0
- movs r2, #8
- movs r3, #8
- bl sub_10708
- b _08009B8A
- .align 2, 0
-_08009B54: .4byte 0x0201A450
-_08009B58: .4byte 0x0202ADA0
-_08009B5C: .4byte 0x0202BF10
-_08009B60: .4byte 0x086A7768
-_08009B64: .4byte 0x086A7788
-_08009B68: .4byte 0x0201C1C0
-_08009B6C: .4byte 0x060036E0
-_08009B70:
- ldr r1, _08009BF0 @ =0x086A7788
- lsls r0, r3, #1
- adds r0, r0, r1
- movs r3, #0
- ldrsh r0, [r0, r3]
- lsls r0, r0, #1
- ldr r1, _08009BF4 @ =0x0201C1C0
- adds r0, r0, r1
- ldr r1, _08009BF8 @ =0x060032C0
- movs r2, #0xa
- movs r3, #0xa
- bl sub_10708
-_08009B8A:
- ldr r1, _08009BFC @ =0x0202ADA0
- ldrh r0, [r1, #8]
- adds r0, #1
- strh r0, [r1, #8]
- adds r4, r1, #0
-_08009B94:
- adds r1, r4, #0
- ldrh r0, [r1, #0x14]
- adds r0, #1
- strh r0, [r1, #0x14]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #9
- ble _08009BB0
- movs r0, #0
- strh r0, [r1, #0x14]
- ldr r1, _08009C00 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
-_08009BB0:
- bl sub_9E90
- ldr r1, _08009C04 @ =0x0200B0C0
- ldrh r2, [r4]
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #2]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x24]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x26]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xc]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0xe]
- ldr r2, _08009C08 @ =0x000002F2
- adds r1, r1, r2
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009BF0: .4byte 0x086A7788
-_08009BF4: .4byte 0x0201C1C0
-_08009BF8: .4byte 0x060032C0
-_08009BFC: .4byte 0x0202ADA0
-_08009C00: .4byte 0x0202C790
-_08009C04: .4byte 0x0200B0C0
-_08009C08: .4byte 0x000002F2
-
- thumb_func_start nullsub_4
-nullsub_4: @ 0x08009C0C
- bx lr
-
- thumb_func_start sub_9C10
-sub_9C10: @ 0x08009C10
- push {r4, lr}
- ldr r4, _08009C7C @ =0x0202ADA0
- ldrh r0, [r4, #0x18]
- adds r0, #1
- strh r0, [r4, #0x18]
- ldr r0, _08009C80 @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _08009C40
- ldr r1, _08009C84 @ =0x0201A450
- ldrh r0, [r1, #0x30]
- subs r0, #1
- strh r0, [r1, #0x30]
- ldrh r0, [r1, #0x32]
- subs r0, #1
- strh r0, [r1, #0x32]
- ldrh r0, [r1, #0x20]
- subs r0, #2
- strh r0, [r1, #0x20]
- ldrh r0, [r1, #0x22]
- subs r0, #2
- strh r0, [r1, #0x22]
-_08009C40:
- bl sub_9E90
- ldr r1, _08009C88 @ =0x0200B0C0
- ldrh r2, [r4, #0x18]
- movs r3, #0xbd
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x1a]
- ldr r2, _08009C8C @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- ldr r1, _08009C84 @ =0x0201A450
- ldrh r0, [r1, #0x3a]
- adds r0, #1
- strh r0, [r1, #0x3a]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x14
- ble _08009C74
- movs r0, #0
- strh r0, [r1, #0x3a]
- ldr r1, _08009C90 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #3
- strb r0, [r1]
-_08009C74:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009C7C: .4byte 0x0202ADA0
-_08009C80: .4byte 0x0202BF10
-_08009C84: .4byte 0x0201A450
-_08009C88: .4byte 0x0200B0C0
-_08009C8C: .4byte 0x000002F6
-_08009C90: .4byte 0x0202C790
-
- thumb_func_start nullsub_5
-nullsub_5: @ 0x08009C94
- bx lr
-
- thumb_func_start nullsub_17
-nullsub_17: @ 0x08009C98
- bx lr
-
- thumb_func_start sub_9C9C
-sub_9C9C: @ 0x08009C9C
- push {lr}
- bl sub_10480
- bl sub_10544
- ldr r1, _08009CB4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08009CB4: .4byte 0x0202C790
-
- thumb_func_start sub_9CB8
-sub_9CB8: @ 0x08009CB8
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- ldr r4, _08009D54 @ =0x0201A450
- movs r0, #8
- ldrsh r1, [r4, r0]
- movs r0, #0xb8
- muls r0, r1, r0
- ldr r2, _08009D58 @ =0x0200B698
- adds r5, r0, r2
- movs r0, #0xc
- ldrsb r0, [r4, r0]
- strh r0, [r5]
- ldr r6, _08009D5C @ =0x086A769C
- ldr r1, _08009D60 @ =0xFFFFFD20
- adds r2, r2, r1
- adds r0, r6, #0
- movs r1, #0x31
- bl sub_358
- ldrh r0, [r5]
- cmp r0, #1
- bne _08009D46
- ldrh r0, [r4]
- strh r0, [r5, #2]
- ldrh r0, [r4, #2]
- strh r0, [r5, #4]
- movs r2, #8
- ldrsh r0, [r4, r2]
- adds r0, #4
- lsls r0, r0, #2
- adds r0, r0, r6
- ldr r7, [r0]
- movs r6, #0
- ldrh r0, [r7]
- cmp r6, r0
- bge _08009D46
- ldr r1, _08009D64 @ =0x03005000
- mov ip, r1
- ldr r2, _08009D68 @ =0xFFFFFE00
- mov r8, r2
- adds r4, r5, #0
- adds r4, #8
-_08009D0E:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, ip
- movs r0, #2
- ldrsh r1, [r4, r0]
- movs r2, #2
- ldrsh r0, [r5, r2]
- adds r1, r1, r0
- ldr r2, _08009D6C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- ldrb r0, [r5, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r6, #1
- ldrh r0, [r7]
- cmp r6, r0
- blt _08009D0E
-_08009D46:
- movs r0, #0
- strh r0, [r5]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08009D54: .4byte 0x0201A450
-_08009D58: .4byte 0x0200B698
-_08009D5C: .4byte 0x086A769C
-_08009D60: .4byte 0xFFFFFD20
-_08009D64: .4byte 0x03005000
-_08009D68: .4byte 0xFFFFFE00
-_08009D6C: .4byte 0x000001FF
-
- thumb_func_start sub_9D70
-sub_9D70: @ 0x08009D70
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- ldr r0, _08009E68 @ =0x0200D078
- mov r8, r0
- ldr r6, _08009E6C @ =0x0201A450
- movs r0, #0xc
- ldrsb r0, [r6, r0]
- mov r1, r8
- strh r0, [r1]
- ldr r0, _08009E70 @ =0x086A769C
- ldr r2, _08009E74 @ =0xFFFFE340
- add r2, r8
- movs r1, #0x31
- bl sub_358
- mov r2, r8
- ldrh r0, [r2]
- cmp r0, #1
- bne _08009E50
- ldr r5, _08009E78 @ =0x02019C30
- movs r3, #0
- ldrsh r0, [r5, r3]
- ldr r4, _08009E7C @ =0x0201C188
- movs r2, #0
- ldrsh r1, [r4, r2]
- movs r2, #0
- bl sub_7C0
- ldrh r0, [r6]
- mov r3, r8
- strh r0, [r3, #2]
- ldrh r0, [r6, #2]
- strh r0, [r3, #4]
- movs r7, #0
- ldr r6, _08009E80 @ =0x03005000
- mov sl, r5
- mov sb, r4
- mov r5, r8
- adds r5, #8
- movs r0, #0xf
- rsbs r0, r0, #0
- mov ip, r0
-_08009DCC:
- ldrh r0, [r5]
- lsls r0, r0, #3
- adds r3, r0, r6
- lsls r0, r7, #2
- ldr r1, _08009E84 @ =0x086A7798
- adds r4, r0, r1
- movs r2, #0
- ldrsh r1, [r4, r2]
- mov r2, sl
- ldr r0, [r2]
- muls r1, r0, r1
- cmp r1, #0
- bge _08009DE8
- adds r1, #0xff
-_08009DE8:
- asrs r1, r1, #8
- str r1, [sp]
- mov r1, r8
- movs r2, #2
- ldrsh r0, [r1, r2]
- ldr r2, [sp]
- adds r1, r2, r0
- ldr r2, _08009E88 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _08009E8C @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r0, [r5]
- lsls r0, r0, #3
- adds r2, r0, r6
- movs r3, #2
- ldrsh r1, [r4, r3]
- mov r3, sb
- ldr r0, [r3]
- muls r0, r1, r0
- cmp r0, #0
- bge _08009E1C
- adds r0, #0xff
-_08009E1C:
- asrs r0, r0, #8
- mov r1, r8
- ldrb r1, [r1, #4]
- adds r0, r0, r1
- strb r0, [r2]
- ldrh r2, [r5]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #1]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r1, [r5]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #3]
- mov r0, ip
- ands r0, r2
- strb r0, [r1, #3]
- adds r5, #8
- adds r7, #1
- cmp r7, #3
- ble _08009DCC
-_08009E50:
- movs r0, #0
- mov r2, r8
- strh r0, [r2]
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08009E68: .4byte 0x0200D078
-_08009E6C: .4byte 0x0201A450
-_08009E70: .4byte 0x086A769C
-_08009E74: .4byte 0xFFFFE340
-_08009E78: .4byte 0x02019C30
-_08009E7C: .4byte 0x0201C188
-_08009E80: .4byte 0x03005000
-_08009E84: .4byte 0x086A7798
-_08009E88: .4byte 0x000001FF
-_08009E8C: .4byte 0xFFFFFE00
-
- thumb_func_start sub_9E90
-sub_9E90: @ 0x08009E90
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- ldr r3, _0800A12C @ =0x0200B0C0
- ldrh r0, [r3, #0x38]
- movs r0, #0xf1
- lsls r0, r0, #4
- strh r0, [r3, #0x38]
- ldr r0, _0800A130 @ =0x0201C1B8
- ldrb r1, [r0]
- ldr r0, _0800A134 @ =0x0202ADD4
- ldrb r0, [r0]
- lsls r0, r0, #8
- orrs r1, r0
- ldrh r0, [r3, #0x3a]
- strh r1, [r3, #0x3a]
- ldr r1, _0800A138 @ =0x04000050
- ldrh r0, [r3, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r3, #0x3a]
- strh r0, [r1]
- ldr r4, _0800A13C @ =0x0201A450
- movs r0, #0x18
- ldrsh r1, [r4, r0]
- movs r0, #0xb8
- muls r0, r1, r0
- movs r1, #0xbe
- lsls r1, r1, #2
- adds r2, r3, r1
- adds r0, r0, r2
- mov r8, r0
- movs r6, #0xa4
- lsls r6, r6, #3
- adds r6, r6, r3
- mov sb, r6
- movs r7, #0x8d
- lsls r7, r7, #3
- adds r7, r7, r3
- mov sl, r7
- movs r0, #0x1c
- ldrsb r0, [r4, r0]
- mov r1, r8
- strh r0, [r1]
- adds r0, r4, #0
- adds r0, #0x2c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r6]
- adds r0, r4, #0
- adds r0, #0x3c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r7]
- adds r0, r4, #0
- adds r0, #0x4c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r6, _0800A140 @ =0x0200D638
- strh r0, [r6]
- ldr r5, _0800A144 @ =0x086A769C
- adds r0, r5, #0
- movs r1, #0x31
- bl sub_358
- mov r7, r8
- ldrh r0, [r7]
- cmp r0, #1
- bne _08009F9E
- ldrh r0, [r4, #0x10]
- strh r0, [r7, #2]
- ldrh r0, [r4, #0x12]
- strh r0, [r7, #4]
- movs r1, #0x18
- ldrsh r0, [r4, r1]
- lsls r0, r0, #2
- adds r0, r0, r5
- ldr r0, [r0]
- str r0, [sp]
- movs r5, #0
- ldrh r2, [r0]
- cmp r5, r2
- bge _08009F9E
- ldr r7, _0800A148 @ =0x03005000
- ldr r6, _0800A14C @ =0xFFFFFE00
- mov ip, r6
- mov r4, r8
- adds r4, #8
-_08009F4C:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r7
- ldrb r1, [r2, #1]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r7
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, r8
- movs r6, #2
- ldrsh r0, [r2, r6]
- adds r1, r1, r0
- ldr r2, _0800A150 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r7
- mov r6, r8
- ldrb r0, [r6, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldr r6, [sp]
- ldrh r6, [r6]
- cmp r5, r6
- blt _08009F4C
-_08009F9E:
- mov r7, sb
- ldrh r0, [r7]
- cmp r0, #1
- bne _0800A01C
- ldr r0, _0800A13C @ =0x0201A450
- ldrh r1, [r0, #0x20]
- strh r1, [r7, #2]
- ldrh r0, [r0, #0x22]
- strh r0, [r7, #4]
- ldr r6, _0800A148 @ =0x03005000
- movs r0, #0xd
- rsbs r0, r0, #0
- mov ip, r0
- mov r4, sb
- adds r4, #8
- movs r5, #3
-_08009FBE:
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #1]
- mov r0, ip
- ands r0, r2
- movs r2, #4
- orrs r0, r2
- strb r0, [r1, #1]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #5]
- mov r0, ip
- ands r0, r2
- movs r7, #4
- orrs r0, r7
- strb r0, [r1, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, sb
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800A150 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _0800A14C @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r7, sb
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _08009FBE
-_0800A01C:
- mov r6, sl
- ldrh r0, [r6]
- cmp r0, #1
- bne _0800A098
- ldr r0, _0800A13C @ =0x0201A450
- ldrh r1, [r0, #0x30]
- strh r1, [r6, #2]
- ldrh r0, [r0, #0x32]
- strh r0, [r6, #4]
- ldr r6, _0800A148 @ =0x03005000
- ldr r7, _0800A14C @ =0xFFFFFE00
- mov ip, r7
- mov r4, sl
- adds r4, #8
- movs r5, #3
-_0800A03A:
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #1]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r2
- strb r0, [r1, #1]
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, sl
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800A150 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r7, sl
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _0800A03A
-_0800A098:
- ldr r6, _0800A140 @ =0x0200D638
- ldrh r0, [r6]
- cmp r0, #1
- bne _0800A10A
- ldr r0, _0800A13C @ =0x0201A450
- adds r1, r0, #0
- adds r1, #0x40
- ldrh r1, [r1]
- strh r1, [r6, #2]
- adds r0, #0x42
- ldrh r0, [r0]
- strh r0, [r6, #4]
- ldr r6, _0800A148 @ =0x03005000
- movs r7, #0xd
- rsbs r7, r7, #0
- mov ip, r7
- ldr r4, _0800A140 @ =0x0200D638
- adds r4, #8
- movs r5, #7
-_0800A0BE:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #5]
- mov r0, ip
- ands r0, r1
- movs r1, #8
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- ldr r2, _0800A140 @ =0x0200D638
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800A150 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _0800A14C @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldr r7, _0800A140 @ =0x0200D638
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _0800A0BE
-_0800A10A:
- movs r0, #0
- mov r6, r8
- strh r0, [r6]
- mov r7, sb
- strh r0, [r7]
- mov r1, sl
- strh r0, [r1]
- ldr r2, _0800A140 @ =0x0200D638
- strh r0, [r2]
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A12C: .4byte 0x0200B0C0
-_0800A130: .4byte 0x0201C1B8
-_0800A134: .4byte 0x0202ADD4
-_0800A138: .4byte 0x04000050
-_0800A13C: .4byte 0x0201A450
-_0800A140: .4byte 0x0200D638
-_0800A144: .4byte 0x086A769C
-_0800A148: .4byte 0x03005000
-_0800A14C: .4byte 0xFFFFFE00
-_0800A150: .4byte 0x000001FF
-
- thumb_func_start sub_A154
-sub_A154: @ 0x0800A154
- push {lr}
- bl sub_518
- ldr r1, _0800A168 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A168: .4byte 0x0202C790
-
- thumb_func_start sub_A16C
-sub_A16C: @ 0x0800A16C
- push {r4, lr}
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r0, #0
- strh r0, [r2]
- ldr r1, _0800A250 @ =0x04000008
- movs r3, #0xcc
- lsls r3, r3, #8
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #1
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800A254 @ =0x0400000A
- ldr r3, _0800A258 @ =0x0000DA01
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #2
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800A25C @ =0x0400000E
- ldr r3, _0800A260 @ =0x00001E03
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #4
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0800A264 @ =0x040000D4
- ldr r1, _0800A268 @ =0x080D0700
- str r1, [r0]
- ldr r1, _0800A26C @ =0x06006000
- str r1, [r0, #4]
- ldr r2, _0800A270 @ =0x80001000
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A274 @ =0x080D2700
- str r1, [r0]
- ldr r1, _0800A278 @ =0x0600D000
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A27C @ =0x080CBEE0
- str r1, [r0]
- ldr r1, _0800A280 @ =0x0600F000
- str r1, [r0, #4]
- ldr r1, _0800A284 @ =0x80000400
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A288 @ =0x080CC6E0
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800A28C @ =0x80001E00
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A290 @ =0x080CBCE0
- str r1, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800A294 @ =0x80000040
- str r1, [r0, #8]
- ldr r0, [r0, #8]
- bl sub_A2A8
- ldr r1, _0800A298 @ =0x0200B0C0
- ldr r3, _0800A29C @ =0x0202ADA0
- ldrh r2, [r3]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0x18]
- adds r4, #6
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, #0x1a]
- ldr r2, _0800A2A0 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800A2A4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A250: .4byte 0x04000008
-_0800A254: .4byte 0x0400000A
-_0800A258: .4byte 0x0000DA01
-_0800A25C: .4byte 0x0400000E
-_0800A260: .4byte 0x00001E03
-_0800A264: .4byte 0x040000D4
-_0800A268: .4byte 0x080D0700
-_0800A26C: .4byte 0x06006000
-_0800A270: .4byte 0x80001000
-_0800A274: .4byte 0x080D2700
-_0800A278: .4byte 0x0600D000
-_0800A27C: .4byte 0x080CBEE0
-_0800A280: .4byte 0x0600F000
-_0800A284: .4byte 0x80000400
-_0800A288: .4byte 0x080CC6E0
-_0800A28C: .4byte 0x80001E00
-_0800A290: .4byte 0x080CBCE0
-_0800A294: .4byte 0x80000040
-_0800A298: .4byte 0x0200B0C0
-_0800A29C: .4byte 0x0202ADA0
-_0800A2A0: .4byte 0x000002F6
-_0800A2A4: .4byte 0x0202C790
-
- thumb_func_start sub_A2A8
-sub_A2A8: @ 0x0800A2A8
- ldr r0, _0800A2D8 @ =0x0202ADA0
- movs r2, #0
- movs r1, #0x1c
- strh r1, [r0]
- ldr r1, _0800A2DC @ =0x0000FF2C
- strh r1, [r0, #2]
- strh r2, [r0, #4]
- movs r1, #0xe
- strh r1, [r0, #6]
- ldr r1, _0800A2E0 @ =0x0000FF5C
- strh r1, [r0, #0xc]
- subs r1, #0x54
- strh r1, [r0, #0xe]
- strh r2, [r0, #0x10]
- movs r1, #0x10
- strh r1, [r0, #0x12]
- strh r2, [r0, #0x18]
- strh r2, [r0, #0x1a]
- strh r2, [r0, #0x20]
- ldr r0, _0800A2E4 @ =0x0202BF10
- strh r2, [r0]
- ldr r0, _0800A2E8 @ =0x0202A578
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0800A2D8: .4byte 0x0202ADA0
-_0800A2DC: .4byte 0x0000FF2C
-_0800A2E0: .4byte 0x0000FF5C
-_0800A2E4: .4byte 0x0202BF10
-_0800A2E8: .4byte 0x0202A578
-
- thumb_func_start nullsub_6
-nullsub_6: @ 0x0800A2EC
- bx lr
-
- thumb_func_start sub_A2F0
-sub_A2F0: @ 0x0800A2F0
- push {r4, lr}
- ldr r3, _0800A384 @ =0x0202ADA0
- ldrh r4, [r3, #6]
- ldrh r1, [r3, #2]
- adds r0, r4, r1
- strh r0, [r3, #2]
- ldrh r2, [r3, #0x12]
- ldrh r1, [r3, #0xe]
- adds r0, r2, r1
- strh r0, [r3, #0xe]
- ldrh r0, [r3, #0x18]
- subs r0, #1
- strh r0, [r3, #0x18]
- ldrh r0, [r3, #0x1a]
- subs r0, #1
- strh r0, [r3, #0x1a]
- ldrh r0, [r3]
- subs r0, #1
- strh r0, [r3]
- ldrh r0, [r3, #0xc]
- adds r0, #1
- strh r0, [r3, #0xc]
- ldr r0, _0800A388 @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800A330
- subs r0, r4, #1
- strh r0, [r3, #6]
- subs r0, r2, #1
- strh r0, [r3, #0x12]
-_0800A330:
- ldr r1, _0800A38C @ =0x0200B0C0
- ldrh r2, [r3]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0x18]
- adds r4, #6
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, #0x1a]
- ldr r2, _0800A390 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- ldrh r0, [r3, #0x20]
- adds r0, #1
- strh r0, [r3, #0x20]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x27
- ble _0800A37E
- movs r0, #0
- strh r0, [r3, #0x20]
- ldr r1, _0800A394 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
-_0800A37E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A384: .4byte 0x0202ADA0
-_0800A388: .4byte 0x0202BF10
-_0800A38C: .4byte 0x0200B0C0
-_0800A390: .4byte 0x000002F6
-_0800A394: .4byte 0x0202C790
-
- thumb_func_start nullsub_7
-nullsub_7: @ 0x0800A398
- bx lr
-
- thumb_func_start sub_A39C
-sub_A39C: @ 0x0800A39C
- push {r4, lr}
- ldr r3, _0800A428 @ =0x0202ADA0
- ldrh r0, [r3, #2]
- adds r0, #1
- strh r0, [r3, #2]
- ldrh r0, [r3, #0xe]
- adds r0, #1
- strh r0, [r3, #0xe]
- ldrh r0, [r3, #0x18]
- subs r0, #1
- strh r0, [r3, #0x18]
- ldrh r0, [r3, #0x1a]
- subs r0, #1
- strh r0, [r3, #0x1a]
- ldrh r0, [r3]
- subs r0, #1
- strh r0, [r3]
- ldrh r0, [r3, #0xc]
- adds r0, #1
- strh r0, [r3, #0xc]
- ldr r0, _0800A42C @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800A3DC
- ldrh r0, [r3, #6]
- subs r0, #1
- strh r0, [r3, #6]
- ldrh r0, [r3, #0x12]
- subs r0, #1
- strh r0, [r3, #0x12]
-_0800A3DC:
- ldr r1, _0800A430 @ =0x0200B0C0
- ldrh r2, [r3]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0x18]
- adds r4, #6
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, #0x1a]
- ldr r2, _0800A434 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_10480
- bl sub_10544
- ldr r1, _0800A438 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A428: .4byte 0x0202ADA0
-_0800A42C: .4byte 0x0202BF10
-_0800A430: .4byte 0x0200B0C0
-_0800A434: .4byte 0x000002F6
-_0800A438: .4byte 0x0202C790
-
- thumb_func_start sub_A43C
-sub_A43C: @ 0x0800A43C
- push {lr}
- bl sub_518
- ldr r1, _0800A450 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A450: .4byte 0x0202C790
-
- thumb_func_start sub_A454
-sub_A454: @ 0x0800A454
- push {r4, lr}
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x80
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800A5A0 @ =0x04000008
- movs r3, #0xb4
- lsls r3, r3, #7
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #1
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800A5A4 @ =0x0400000A
- ldr r3, _0800A5A8 @ =0x00001C01
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #2
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800A5AC @ =0x0400000C
- ldr r3, _0800A5B0 @ =0x00005D02
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #3
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800A5B4 @ =0x0400000E
- ldr r3, _0800A5B8 @ =0x00001F03
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #4
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0800A5BC @ =0x040000D4
- ldr r1, _0800A5C0 @ =0x080DE520
- str r1, [r0]
- ldr r1, _0800A5C4 @ =0x0600D000
- str r1, [r0, #4]
- ldr r3, _0800A5C8 @ =0x80000800
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A5CC @ =0x080DCD20
- str r1, [r0]
- ldr r1, _0800A5D0 @ =0x0600E000
- str r1, [r0, #4]
- ldr r2, _0800A5D4 @ =0x80000400
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A5D8 @ =0x080D4900
- str r1, [r0]
- ldr r1, _0800A5DC @ =0x0600E800
- str r1, [r0, #4]
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A5E0 @ =0x080D5900
- str r1, [r0]
- ldr r1, _0800A5E4 @ =0x0600F800
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A5E8 @ =0x080DD520
- str r1, [r0]
- ldr r1, _0800A5EC @ =0x03005C00
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A5F0 @ =0x080DDD20
- str r1, [r0]
- ldr r1, _0800A5F4 @ =0x0201B180
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A5F8 @ =0x080D6100
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800A5FC @ =0x80003600
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r3, _0800A600 @ =0x080D4700
- str r3, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r2, _0800A604 @ =0x80000070
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800A608 @ =0x080DF520
- str r1, [r0]
- ldr r1, _0800A60C @ =0x06010000
- str r1, [r0, #4]
- ldr r1, _0800A610 @ =0x80001000
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- str r3, [r0]
- ldr r1, _0800A614 @ =0x05000200
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r0, [r0, #8]
- bl sub_A628
- bl sub_A87C
- ldr r1, _0800A618 @ =0x0200B0C0
- ldr r2, _0800A61C @ =0x0202ADA0
- ldrh r3, [r2]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x18]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x1a]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x24]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r0, [r2, #0x26]
- ldr r2, _0800A620 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800A624 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A5A0: .4byte 0x04000008
-_0800A5A4: .4byte 0x0400000A
-_0800A5A8: .4byte 0x00001C01
-_0800A5AC: .4byte 0x0400000C
-_0800A5B0: .4byte 0x00005D02
-_0800A5B4: .4byte 0x0400000E
-_0800A5B8: .4byte 0x00001F03
-_0800A5BC: .4byte 0x040000D4
-_0800A5C0: .4byte 0x080DE520
-_0800A5C4: .4byte 0x0600D000
-_0800A5C8: .4byte 0x80000800
-_0800A5CC: .4byte 0x080DCD20
-_0800A5D0: .4byte 0x0600E000
-_0800A5D4: .4byte 0x80000400
-_0800A5D8: .4byte 0x080D4900
-_0800A5DC: .4byte 0x0600E800
-_0800A5E0: .4byte 0x080D5900
-_0800A5E4: .4byte 0x0600F800
-_0800A5E8: .4byte 0x080DD520
-_0800A5EC: .4byte 0x03005C00
-_0800A5F0: .4byte 0x080DDD20
-_0800A5F4: .4byte 0x0201B180
-_0800A5F8: .4byte 0x080D6100
-_0800A5FC: .4byte 0x80003600
-_0800A600: .4byte 0x080D4700
-_0800A604: .4byte 0x80000070
-_0800A608: .4byte 0x080DF520
-_0800A60C: .4byte 0x06010000
-_0800A610: .4byte 0x80001000
-_0800A614: .4byte 0x05000200
-_0800A618: .4byte 0x0200B0C0
-_0800A61C: .4byte 0x0202ADA0
-_0800A620: .4byte 0x000002F6
-_0800A624: .4byte 0x0202C790
-
- thumb_func_start sub_A628
-sub_A628: @ 0x0800A628
- ldr r1, _0800A65C @ =0x0202ADA0
- movs r2, #0
- movs r0, #0x2c
- strh r0, [r1]
- ldr r0, _0800A660 @ =0x0000FF8E
- strh r0, [r1, #2]
- ldr r3, _0800A664 @ =0x0201A450
- adds r0, #0x46
- strh r0, [r3]
- movs r0, #0x72
- strh r0, [r3, #2]
- ldr r0, _0800A668 @ =0x0000FFCE
- strh r0, [r1, #0xc]
- movs r0, #0x1e
- strh r0, [r1, #0xe]
- strh r2, [r1, #0x18]
- strh r2, [r1, #0x1a]
- strh r2, [r1, #0x20]
- strh r2, [r1, #0x24]
- strh r2, [r1, #0x26]
- ldr r0, _0800A66C @ =0x0202BF10
- strh r2, [r0]
- ldr r0, _0800A670 @ =0x0202A578
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0800A65C: .4byte 0x0202ADA0
-_0800A660: .4byte 0x0000FF8E
-_0800A664: .4byte 0x0201A450
-_0800A668: .4byte 0x0000FFCE
-_0800A66C: .4byte 0x0202BF10
-_0800A670: .4byte 0x0202A578
-
- thumb_func_start sub_A674
-sub_A674: @ 0x0800A674
- push {r4, lr}
- ldr r4, _0800A6FC @ =0x0202ADA0
- ldrh r0, [r4]
- subs r0, #0x11
- strh r0, [r4]
- ldrh r0, [r4, #2]
- adds r0, #0xa
- strh r0, [r4, #2]
- ldr r1, _0800A700 @ =0x0201A450
- ldrh r0, [r1]
- adds r0, #0x11
- strh r0, [r1]
- ldrh r0, [r1, #2]
- subs r0, #0xa
- strh r0, [r1, #2]
- ldrh r0, [r4, #0x18]
- adds r0, #0x10
- strh r0, [r4, #0x18]
- ldrh r0, [r4, #0xc]
- adds r0, #4
- strh r0, [r4, #0xc]
- ldrh r0, [r4, #0xe]
- subs r0, #8
- strh r0, [r4, #0xe]
- ldrh r0, [r4, #0x20]
- adds r0, #1
- strh r0, [r4, #0x20]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #9
- ble _0800A6BE
- movs r0, #0
- strh r0, [r4, #0x20]
- ldr r1, _0800A704 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800A6BE:
- bl sub_A87C
- ldr r1, _0800A708 @ =0x0200B0C0
- ldrh r2, [r4]
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #2]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xc]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xe]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x18]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x1a]
- ldr r2, _0800A70C @ =0x000002F2
- adds r1, r1, r2
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A6FC: .4byte 0x0202ADA0
-_0800A700: .4byte 0x0201A450
-_0800A704: .4byte 0x0202C790
-_0800A708: .4byte 0x0200B0C0
-_0800A70C: .4byte 0x000002F2
-
- thumb_func_start sub_A710
-sub_A710: @ 0x0800A710
- push {r4, r5, r6, lr}
- ldr r5, _0800A7C8 @ =0x0202ADA0
- ldrh r0, [r5, #0x24]
- subs r0, #1
- movs r6, #0
- strh r0, [r5, #0x24]
- ldr r2, _0800A7CC @ =0x0202BF10
- ldrh r0, [r2]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800A742
- ldrh r0, [r5]
- subs r0, #1
- strh r0, [r5]
- ldrh r0, [r5, #2]
- adds r0, #1
- strh r0, [r5, #2]
- ldr r1, _0800A7D0 @ =0x0201A450
- ldrh r0, [r1]
- adds r0, #2
- strh r0, [r1]
- ldrh r0, [r1, #2]
- subs r0, #2
- strh r0, [r1, #2]
-_0800A742:
- movs r1, #0
- ldrsh r0, [r2, r1]
- movs r1, #3
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0800A776
- ldr r0, _0800A7D4 @ =0x040000D4
- movs r3, #0xa0
- lsls r3, r3, #0x13
- str r3, [r0]
- ldr r4, _0800A7D8 @ =0x0202BE70
- str r4, [r0, #4]
- ldr r1, _0800A7DC @ =0x80000010
- str r1, [r0, #8]
- ldr r2, [r0, #8]
- ldr r2, _0800A7E0 @ =0x05000040
- str r2, [r0]
- str r3, [r0, #4]
- str r1, [r0, #8]
- ldr r3, [r0, #8]
- str r4, [r0]
- str r2, [r0, #4]
- str r1, [r0, #8]
- ldr r0, [r0, #8]
-_0800A776:
- ldr r4, _0800A7E4 @ =0x0200B0C0
- ldrh r1, [r5]
- movs r2, #0xba
- lsls r2, r2, #2
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r5, #2]
- adds r2, #2
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r5, #0x24]
- adds r2, #0xa
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r5, #0x26]
- adds r2, #2
- adds r0, r4, r2
- strh r1, [r0]
- bl sub_A87C
- movs r1, #0x20
- ldrsh r0, [r5, r1]
- cmp r0, #2
- bne _0800A7F4
- ldr r1, _0800A7D4 @ =0x040000D4
- ldr r0, _0800A7E8 @ =0x03005C00
- str r0, [r1]
- ldr r0, _0800A7EC @ =0x0600E000
- str r0, [r1, #4]
- ldr r0, _0800A7F0 @ =0x80000400
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- strh r6, [r5, #0xc]
- strh r6, [r5, #0xe]
- movs r2, #0xbb
- lsls r2, r2, #2
- adds r0, r4, r2
- strh r6, [r0]
- movs r1, #0
- adds r2, #2
- b _0800A818
- .align 2, 0
-_0800A7C8: .4byte 0x0202ADA0
-_0800A7CC: .4byte 0x0202BF10
-_0800A7D0: .4byte 0x0201A450
-_0800A7D4: .4byte 0x040000D4
-_0800A7D8: .4byte 0x0202BE70
-_0800A7DC: .4byte 0x80000010
-_0800A7E0: .4byte 0x05000040
-_0800A7E4: .4byte 0x0200B0C0
-_0800A7E8: .4byte 0x03005C00
-_0800A7EC: .4byte 0x0600E000
-_0800A7F0: .4byte 0x80000400
-_0800A7F4:
- cmp r0, #4
- bne _0800A81C
- ldr r1, _0800A840 @ =0x040000D4
- ldr r0, _0800A844 @ =0x0201B180
- str r0, [r1]
- ldr r0, _0800A848 @ =0x0600E000
- str r0, [r1, #4]
- ldr r0, _0800A84C @ =0x80000400
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- strh r6, [r5, #0xc]
- strh r6, [r5, #0xe]
- movs r1, #0xbb
- lsls r1, r1, #2
- adds r0, r4, r1
- strh r6, [r0]
- movs r1, #0
- ldr r2, _0800A850 @ =0x000002EE
-_0800A818:
- adds r0, r4, r2
- strh r1, [r0]
-_0800A81C:
- ldr r1, _0800A854 @ =0x0202ADA0
- ldrh r0, [r1, #0x20]
- adds r0, #1
- strh r0, [r1, #0x20]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x1d
- ble _0800A838
- movs r0, #0
- strh r0, [r1, #0x20]
- ldr r1, _0800A858 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
-_0800A838:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A840: .4byte 0x040000D4
-_0800A844: .4byte 0x0201B180
-_0800A848: .4byte 0x0600E000
-_0800A84C: .4byte 0x80000400
-_0800A850: .4byte 0x000002EE
-_0800A854: .4byte 0x0202ADA0
-_0800A858: .4byte 0x0202C790
-
- thumb_func_start nullsub_8
-nullsub_8: @ 0x0800A85C
- bx lr
-
- thumb_func_start sub_A860
-sub_A860: @ 0x0800A860
- push {lr}
- bl sub_10480
- bl sub_10544
- ldr r1, _0800A878 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A878: .4byte 0x0202C790
-
- thumb_func_start sub_A87C
-sub_A87C: @ 0x0800A87C
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- ldr r4, _0800A92C @ =0x0200B0C0
- ldrh r0, [r4, #0x38]
- ldr r0, _0800A930 @ =0x00001F50
- strh r0, [r4, #0x38]
- ldrh r0, [r4, #0x3a]
- ldr r0, _0800A934 @ =0x00000808
- strh r0, [r4, #0x3a]
- ldr r1, _0800A938 @ =0x04000050
- ldrh r0, [r4, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r4, #0x3a]
- strh r0, [r1]
- movs r0, #0xbe
- lsls r0, r0, #2
- adds r5, r4, r0
- movs r0, #1
- strh r0, [r5]
- ldr r0, _0800A93C @ =0x086A795C
- movs r1, #1
- adds r2, r5, #0
- bl sub_358
- ldrh r0, [r5]
- cmp r0, #1
- bne _0800A91C
- ldr r0, _0800A940 @ =0x0201A450
- ldrh r1, [r0]
- strh r1, [r5, #2]
- ldrh r0, [r0, #2]
- strh r0, [r5, #4]
- ldr r7, _0800A944 @ =0x03005000
- movs r2, #0xd
- rsbs r2, r2, #0
- mov r8, r2
- ldr r0, _0800A948 @ =0xFFFFFE00
- mov ip, r0
- movs r2, #0xc0
- lsls r2, r2, #2
- adds r4, r4, r2
- movs r6, #3
-_0800A8D4:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r7
- ldrb r1, [r2, #5]
- mov r0, r8
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r7
- movs r0, #2
- ldrsh r1, [r4, r0]
- movs r2, #2
- ldrsh r0, [r5, r2]
- adds r1, r1, r0
- ldr r2, _0800A94C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r7
- ldrb r0, [r5, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _0800A8D4
-_0800A91C:
- movs r0, #0
- strh r0, [r5]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A92C: .4byte 0x0200B0C0
-_0800A930: .4byte 0x00001F50
-_0800A934: .4byte 0x00000808
-_0800A938: .4byte 0x04000050
-_0800A93C: .4byte 0x086A795C
-_0800A940: .4byte 0x0201A450
-_0800A944: .4byte 0x03005000
-_0800A948: .4byte 0xFFFFFE00
-_0800A94C: .4byte 0x000001FF
-
- thumb_func_start sub_A950
-sub_A950: @ 0x0800A950
- push {lr}
- bl sub_518
- ldr r1, _0800A964 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A964: .4byte 0x0202C790
-
- thumb_func_start sub_A968
-sub_A968: @ 0x0800A968
- push {r4, lr}
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r0, #0
- strh r0, [r2]
- ldr r1, _0800AA50 @ =0x04000008
- movs r3, #0xcc
- lsls r3, r3, #8
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #1
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800AA54 @ =0x0400000A
- ldr r3, _0800AA58 @ =0x0000DA01
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #2
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800AA5C @ =0x0400000E
- ldr r3, _0800AA60 @ =0x00001E03
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #4
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0800AA64 @ =0x040000D4
- ldr r1, _0800AA68 @ =0x080E5F60
- str r1, [r0]
- ldr r1, _0800AA6C @ =0x06006000
- str r1, [r0, #4]
- ldr r3, _0800AA70 @ =0x80001000
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800AA74 @ =0x080E7F60
- str r1, [r0]
- ldr r1, _0800AA78 @ =0x0600D000
- str r1, [r0, #4]
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800AA7C @ =0x080E1740
- str r1, [r0]
- ldr r1, _0800AA80 @ =0x0600F000
- str r1, [r0, #4]
- ldr r1, _0800AA84 @ =0x80000400
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800AA88 @ =0x080E1F40
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800AA8C @ =0x80002000
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800AA90 @ =0x080E1540
- str r1, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800AA94 @ =0x80000030
- str r1, [r0, #8]
- ldr r0, [r0, #8]
- ldr r4, _0800AA98 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r4, #0x16]
- bl sub_AAA8
- ldr r2, _0800AA9C @ =0x0202ADA0
- ldrh r1, [r2]
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r4, r3
- strh r1, [r0]
- ldrh r1, [r2, #2]
- adds r3, #2
- adds r0, r4, r3
- strh r1, [r0]
- ldrh r1, [r2, #0xc]
- adds r3, #2
- adds r0, r4, r3
- strh r1, [r0]
- ldrh r1, [r2, #0xe]
- adds r3, #2
- adds r0, r4, r3
- strh r1, [r0]
- ldrh r1, [r2, #0x18]
- adds r3, #6
- adds r0, r4, r3
- strh r1, [r0]
- ldrh r0, [r2, #0x1a]
- ldr r1, _0800AAA0 @ =0x000002F6
- adds r4, r4, r1
- strh r0, [r4]
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800AAA4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AA50: .4byte 0x04000008
-_0800AA54: .4byte 0x0400000A
-_0800AA58: .4byte 0x0000DA01
-_0800AA5C: .4byte 0x0400000E
-_0800AA60: .4byte 0x00001E03
-_0800AA64: .4byte 0x040000D4
-_0800AA68: .4byte 0x080E5F60
-_0800AA6C: .4byte 0x06006000
-_0800AA70: .4byte 0x80001000
-_0800AA74: .4byte 0x080E7F60
-_0800AA78: .4byte 0x0600D000
-_0800AA7C: .4byte 0x080E1740
-_0800AA80: .4byte 0x0600F000
-_0800AA84: .4byte 0x80000400
-_0800AA88: .4byte 0x080E1F40
-_0800AA8C: .4byte 0x80002000
-_0800AA90: .4byte 0x080E1540
-_0800AA94: .4byte 0x80000030
-_0800AA98: .4byte 0x0200B0C0
-_0800AA9C: .4byte 0x0202ADA0
-_0800AAA0: .4byte 0x000002F6
-_0800AAA4: .4byte 0x0202C790
-
- thumb_func_start sub_AAA8
-sub_AAA8: @ 0x0800AAA8
- ldr r0, _0800AAD8 @ =0x0202ADA0
- movs r2, #0
- movs r1, #0x1c
- strh r1, [r0]
- ldr r1, _0800AADC @ =0x0000FF20
- strh r1, [r0, #2]
- strh r2, [r0, #4]
- movs r1, #0xf
- strh r1, [r0, #6]
- ldr r1, _0800AAE0 @ =0x0000FF64
- strh r1, [r0, #0xc]
- movs r1, #0xe0
- strh r1, [r0, #0xe]
- strh r2, [r0, #0x10]
- ldr r1, _0800AAE4 @ =0x0000FFF1
- strh r1, [r0, #0x12]
- strh r2, [r0, #0x18]
- strh r2, [r0, #0x1a]
- strh r2, [r0, #0x20]
- ldr r0, _0800AAE8 @ =0x0202BF10
- strh r2, [r0]
- ldr r0, _0800AAEC @ =0x0202A578
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0800AAD8: .4byte 0x0202ADA0
-_0800AADC: .4byte 0x0000FF20
-_0800AAE0: .4byte 0x0000FF64
-_0800AAE4: .4byte 0x0000FFF1
-_0800AAE8: .4byte 0x0202BF10
-_0800AAEC: .4byte 0x0202A578
-
- thumb_func_start nullsub_9
-nullsub_9: @ 0x0800AAF0
- bx lr
-
- thumb_func_start sub_AAF4
-sub_AAF4: @ 0x0800AAF4
- push {r4, lr}
- ldr r3, _0800AB7C @ =0x0202ADA0
- ldrh r4, [r3, #6]
- ldrh r1, [r3, #2]
- adds r0, r4, r1
- strh r0, [r3, #2]
- ldrh r2, [r3, #0x12]
- ldrh r1, [r3, #0xe]
- adds r0, r2, r1
- strh r0, [r3, #0xe]
- ldrh r0, [r3, #0x18]
- subs r0, #1
- strh r0, [r3, #0x18]
- ldrh r0, [r3]
- subs r0, #1
- strh r0, [r3]
- ldrh r0, [r3, #0xc]
- adds r0, #1
- strh r0, [r3, #0xc]
- ldr r0, _0800AB80 @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800AB2E
- subs r0, r4, #1
- strh r0, [r3, #6]
- adds r0, r2, #1
- strh r0, [r3, #0x12]
-_0800AB2E:
- ldr r1, _0800AB84 @ =0x0200B0C0
- ldrh r2, [r3]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, #0x18]
- movs r2, #0xbd
- lsls r2, r2, #2
- adds r1, r1, r2
- strh r0, [r1]
- ldrh r0, [r3, #0x20]
- adds r0, #1
- strh r0, [r3, #0x20]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x27
- ble _0800AB76
- movs r0, #0
- strh r0, [r3, #0x20]
- ldr r1, _0800AB88 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
-_0800AB76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AB7C: .4byte 0x0202ADA0
-_0800AB80: .4byte 0x0202BF10
-_0800AB84: .4byte 0x0200B0C0
-_0800AB88: .4byte 0x0202C790
-
- thumb_func_start nullsub_10
-nullsub_10: @ 0x0800AB8C
- bx lr
-
- thumb_func_start sub_AB90
-sub_AB90: @ 0x0800AB8E
- push {r4, lr}
- ldr r3, _0800AC10 @ =0x0202ADA0
- ldrh r4, [r3, #6]
- ldrh r1, [r3, #2]
- adds r0, r4, r1
- strh r0, [r3, #2]
- ldrh r2, [r3, #0x12]
- ldrh r1, [r3, #0xe]
- adds r0, r2, r1
- strh r0, [r3, #0xe]
- ldrh r0, [r3, #0x18]
- subs r0, #1
- strh r0, [r3, #0x18]
- ldrh r0, [r3]
- subs r0, #1
- strh r0, [r3]
- ldrh r0, [r3, #0xc]
- adds r0, #1
- strh r0, [r3, #0xc]
- ldr r0, _0800AC14 @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800ABCA
- subs r0, r4, #1
- strh r0, [r3, #6]
- adds r0, r2, #1
- strh r0, [r3, #0x12]
-_0800ABCA:
- ldr r1, _0800AC18 @ =0x0200B0C0
- ldrh r2, [r3]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, #0x18]
- movs r2, #0xbd
- lsls r2, r2, #2
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_10480
- bl sub_10544
- ldr r1, _0800AC1C @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AC10: .4byte 0x0202ADA0
-_0800AC14: .4byte 0x0202BF10
-_0800AC18: .4byte 0x0200B0C0
-_0800AC1C: .4byte 0x0202C790
-
- thumb_func_start sub_AC20
-sub_AC20: @ 0x0800AC20
- push {lr}
- bl sub_518
- ldr r1, _0800AC34 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800AC34: .4byte 0x0202C790
-
- thumb_func_start sub_AC38
-sub_AC38: @ 0x0800AC38
- push {r4, lr}
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x80
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800AD78 @ =0x04000008
- movs r3, #0xc0
- lsls r3, r3, #4
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #1
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800AD7C @ =0x0400000A
- ldr r3, _0800AD80 @ =0x00004E01
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #2
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800AD84 @ =0x0400000C
- ldr r3, _0800AD88 @ =0x00005C02
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #3
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800AD8C @ =0x0400000E
- ldr r3, _0800AD90 @ =0x00001E03
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #4
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0800AD94 @ =0x040000D4
- ldr r1, _0800AD98 @ =0x080F1980
- str r1, [r0]
- ldr r1, _0800AD9C @ =0x06006000
- str r1, [r0, #4]
- ldr r3, _0800ADA0 @ =0x80000400
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800ADA4 @ =0x080EB160
- str r1, [r0]
- ldr r1, _0800ADA8 @ =0x06007000
- str r1, [r0, #4]
- ldr r2, _0800ADAC @ =0x80000800
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800ADB0 @ =0x080EA160
- str r1, [r0]
- ldr r1, _0800ADB4 @ =0x0600E000
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800ADB8 @ =0x080EC160
- str r1, [r0]
- ldr r1, _0800ADBC @ =0x0600F000
- str r1, [r0, #4]
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800ADC0 @ =0x080EC960
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800ADC4 @ =0x80001400
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800ADC8 @ =0x080BD4C0
- str r1, [r0]
- ldr r1, _0800ADCC @ =0x03000000
- str r1, [r0, #4]
- ldr r1, _0800ADD0 @ =0x80002000
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r3, _0800ADD4 @ =0x080E9F60
- str r3, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r2, _0800ADD8 @ =0x800000C0
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800ADDC @ =0x080F2180
- str r1, [r0]
- ldr r1, _0800ADE0 @ =0x06010000
- str r1, [r0, #4]
- ldr r1, _0800ADE4 @ =0x80001800
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- str r3, [r0]
- ldr r1, _0800ADE8 @ =0x05000200
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r0, [r0, #8]
- bl sub_ADFC
- bl sub_B0E8
- ldr r1, _0800ADEC @ =0x0200B0C0
- ldr r2, _0800ADF0 @ =0x0202ADA0
- ldrh r3, [r2]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x18]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x1a]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x24]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r0, [r2, #0x26]
- ldr r2, _0800ADF4 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800ADF8 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AD78: .4byte 0x04000008
-_0800AD7C: .4byte 0x0400000A
-_0800AD80: .4byte 0x00004E01
-_0800AD84: .4byte 0x0400000C
-_0800AD88: .4byte 0x00005C02
-_0800AD8C: .4byte 0x0400000E
-_0800AD90: .4byte 0x00001E03
-_0800AD94: .4byte 0x040000D4
-_0800AD98: .4byte 0x080F1980
-_0800AD9C: .4byte 0x06006000
-_0800ADA0: .4byte 0x80000400
-_0800ADA4: .4byte 0x080EB160
-_0800ADA8: .4byte 0x06007000
-_0800ADAC: .4byte 0x80000800
-_0800ADB0: .4byte 0x080EA160
-_0800ADB4: .4byte 0x0600E000
-_0800ADB8: .4byte 0x080EC160
-_0800ADBC: .4byte 0x0600F000
-_0800ADC0: .4byte 0x080EC960
-_0800ADC4: .4byte 0x80001400
-_0800ADC8: .4byte 0x080BD4C0
-_0800ADCC: .4byte 0x03000000
-_0800ADD0: .4byte 0x80002000
-_0800ADD4: .4byte 0x080E9F60
-_0800ADD8: .4byte 0x800000C0
-_0800ADDC: .4byte 0x080F2180
-_0800ADE0: .4byte 0x06010000
-_0800ADE4: .4byte 0x80001800
-_0800ADE8: .4byte 0x05000200
-_0800ADEC: .4byte 0x0200B0C0
-_0800ADF0: .4byte 0x0202ADA0
-_0800ADF4: .4byte 0x000002F6
-_0800ADF8: .4byte 0x0202C790
-
- thumb_func_start sub_ADFC
-sub_ADFC: @ 0x0800ADFC
- push {r4, r5, lr}
- ldr r1, _0800AE54 @ =0x0201A450
- movs r5, #0
- movs r2, #0xb4
- strh r2, [r1, #0x10]
- ldr r0, _0800AE58 @ =0x0000FFBC
- strh r0, [r1, #0x12]
- strh r2, [r1]
- strh r0, [r1, #2]
- movs r0, #0x80
- strh r0, [r1, #0x20]
- movs r0, #0x88
- strh r0, [r1, #0x22]
- ldr r4, _0800AE5C @ =0x0202ADA0
- ldr r0, _0800AE60 @ =0x0000FF58
- strh r0, [r4]
- adds r0, #0x40
- strh r0, [r4, #2]
- strh r5, [r4, #8]
- strh r5, [r4, #0xa]
- strh r5, [r4, #4]
- ldr r0, _0800AE64 @ =0x03002300
- ldr r1, _0800AE68 @ =0x06002EE0
- movs r2, #8
- movs r3, #8
- bl sub_10708
- movs r0, #0xa5
- strh r0, [r4, #0xc]
- strh r5, [r4, #0xe]
- strh r5, [r4, #0x14]
- movs r0, #0xa0
- strh r0, [r4, #0x18]
- strh r5, [r4, #0x1a]
- strh r5, [r4, #0x20]
- strh r5, [r4, #0x24]
- strh r5, [r4, #0x26]
- ldr r0, _0800AE6C @ =0x0202BF10
- strh r5, [r0]
- ldr r0, _0800AE70 @ =0x0202A578
- strh r5, [r0]
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AE54: .4byte 0x0201A450
-_0800AE58: .4byte 0x0000FFBC
-_0800AE5C: .4byte 0x0202ADA0
-_0800AE60: .4byte 0x0000FF58
-_0800AE64: .4byte 0x03002300
-_0800AE68: .4byte 0x06002EE0
-_0800AE6C: .4byte 0x0202BF10
-_0800AE70: .4byte 0x0202A578
-
- thumb_func_start sub_AE74
-sub_AE74: @ 0x0800AE74
- push {r4, lr}
- ldr r1, _0800AF5C @ =0x0201A450
- ldrh r0, [r1, #0x10]
- subs r0, #0x10
- strh r0, [r1, #0x10]
- ldrh r0, [r1, #0x12]
- adds r0, #0xa
- strh r0, [r1, #0x12]
- ldrh r0, [r1]
- subs r0, #0x10
- strh r0, [r1]
- ldrh r0, [r1, #2]
- adds r0, #0xa
- strh r0, [r1, #2]
- ldrh r0, [r1, #0x20]
- adds r0, #5
- strh r0, [r1, #0x20]
- ldrh r0, [r1, #0x22]
- subs r0, #3
- strh r0, [r1, #0x22]
- ldr r4, _0800AF60 @ =0x0202ADA0
- ldrh r0, [r4, #0xc]
- subs r0, #0x10
- strh r0, [r4, #0xc]
- ldrh r0, [r4, #0xe]
- adds r0, #1
- strh r0, [r4, #0xe]
- ldrh r0, [r4, #0x18]
- subs r0, #0x10
- strh r0, [r4, #0x18]
- ldrh r1, [r4, #4]
- ldrh r2, [r4]
- adds r0, r1, r2
- strh r0, [r4]
- ldrh r0, [r4, #2]
- adds r0, #9
- strh r0, [r4, #2]
- adds r1, #1
- strh r1, [r4, #4]
- ldrh r0, [r4, #0xa]
- adds r0, #1
- strh r0, [r4, #0xa]
- ldr r2, _0800AF64 @ =0x086A79FC
- movs r3, #8
- ldrsh r1, [r4, r3]
- lsls r1, r1, #2
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r2, #2
- ldrsh r1, [r1, r2]
- cmp r0, r1
- ble _0800AF02
- ldrh r0, [r4, #8]
- adds r0, #1
- strh r0, [r4, #8]
- ldr r1, _0800AF68 @ =0x086A7A1C
- movs r3, #8
- ldrsh r0, [r4, r3]
- lsls r0, r0, #1
- adds r0, r0, r1
- movs r1, #0
- ldrsh r0, [r0, r1]
- lsls r0, r0, #1
- ldr r1, _0800AF6C @ =0x03000000
- adds r0, r0, r1
- ldr r1, _0800AF70 @ =0x06002EE0
- movs r2, #8
- movs r3, #8
- bl sub_10708
-_0800AF02:
- bl sub_B0E8
- ldr r1, _0800AF74 @ =0x0200B0C0
- ldrh r2, [r4]
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #2]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xc]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xe]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x18]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x1a]
- ldr r2, _0800AF78 @ =0x000002F2
- adds r1, r1, r2
- strh r0, [r1]
- ldrh r0, [r4, #0x20]
- adds r0, #1
- strh r0, [r4, #0x20]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #9
- ble _0800AF54
- movs r0, #0
- strh r0, [r4, #0x20]
- ldr r1, _0800AF7C @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800AF54:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AF5C: .4byte 0x0201A450
-_0800AF60: .4byte 0x0202ADA0
-_0800AF64: .4byte 0x086A79FC
-_0800AF68: .4byte 0x086A7A1C
-_0800AF6C: .4byte 0x03000000
-_0800AF70: .4byte 0x06002EE0
-_0800AF74: .4byte 0x0200B0C0
-_0800AF78: .4byte 0x000002F2
-_0800AF7C: .4byte 0x0202C790
-
- thumb_func_start sub_AF80
-sub_AF80: @ 0x0800AF80
- push {r4, lr}
- ldr r3, _0800B064 @ =0x0202ADA0
- ldrh r0, [r3, #0xa]
- adds r0, #1
- strh r0, [r3, #0xa]
- ldr r2, _0800B068 @ =0x086A79FC
- movs r4, #8
- ldrsh r1, [r3, r4]
- lsls r1, r1, #2
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r2, #2
- ldrsh r1, [r1, r2]
- cmp r0, r1
- ble _0800AFCC
- ldrh r1, [r3, #8]
- movs r4, #8
- ldrsh r0, [r3, r4]
- cmp r0, #6
- bgt _0800AFCC
- adds r0, r1, #1
- strh r0, [r3, #8]
- ldr r1, _0800B06C @ =0x086A7A1C
- movs r2, #8
- ldrsh r0, [r3, r2]
- lsls r0, r0, #1
- adds r0, r0, r1
- movs r4, #0
- ldrsh r0, [r0, r4]
- lsls r0, r0, #1
- ldr r1, _0800B070 @ =0x03000000
- adds r0, r0, r1
- ldr r1, _0800B074 @ =0x06002EE0
- movs r2, #8
- movs r3, #8
- bl sub_10708
-_0800AFCC:
- bl sub_B0E8
- ldr r3, _0800B064 @ =0x0202ADA0
- ldrh r0, [r3, #0x24]
- adds r0, #1
- strh r0, [r3, #0x24]
- ldr r0, _0800B078 @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800AFFE
- ldr r1, _0800B07C @ =0x0201A450
- ldrh r0, [r1, #0x10]
- subs r0, #1
- strh r0, [r1, #0x10]
- ldrh r0, [r1, #0x12]
- adds r0, #1
- strh r0, [r1, #0x12]
- ldrh r0, [r1]
- subs r0, #2
- strh r0, [r1]
- ldrh r0, [r1, #2]
- adds r0, #2
- strh r0, [r1, #2]
-_0800AFFE:
- ldr r1, _0800B080 @ =0x0200B0C0
- ldrh r2, [r3]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0x18]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0x1a]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0x24]
- adds r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, #0x26]
- ldr r2, _0800B084 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- ldrh r0, [r3, #0x2c]
- adds r0, #1
- strh r0, [r3, #0x2c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x1d
- ble _0800B05C
- movs r0, #0
- strh r0, [r3, #0x2c]
- ldr r1, _0800B088 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
-_0800B05C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B064: .4byte 0x0202ADA0
-_0800B068: .4byte 0x086A79FC
-_0800B06C: .4byte 0x086A7A1C
-_0800B070: .4byte 0x03000000
-_0800B074: .4byte 0x06002EE0
-_0800B078: .4byte 0x0202BF10
-_0800B07C: .4byte 0x0201A450
-_0800B080: .4byte 0x0200B0C0
-_0800B084: .4byte 0x000002F6
-_0800B088: .4byte 0x0202C790
-
- thumb_func_start nullsub_11
-nullsub_11: @ 0x0800B08C
- bx lr
-
- thumb_func_start sub_B090
-sub_B090: @ 0x0800B090
- push {lr}
- sub sp, #8
- bl sub_10480
- bl sub_578
- movs r2, #0
- str r2, [sp]
- ldr r1, _0800B0D4 @ =0x040000D4
- mov r0, sp
- str r0, [r1]
- movs r0, #0xe0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800B0D8 @ =0x85000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- add r0, sp, #4
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _0800B0DC @ =0x06010000
- str r0, [r1, #4]
- ldr r0, _0800B0E0 @ =0x81002800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- bl sub_10544
- ldr r1, _0800B0E4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- add sp, #8
- pop {r0}
- bx r0
- .align 2, 0
-_0800B0D4: .4byte 0x040000D4
-_0800B0D8: .4byte 0x85000100
-_0800B0DC: .4byte 0x06010000
-_0800B0E0: .4byte 0x81002800
-_0800B0E4: .4byte 0x0202C790
-
- thumb_func_start sub_B0E8
-sub_B0E8: @ 0x0800B0E8
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- ldr r4, _0800B2C0 @ =0x0200B0C0
- ldrh r0, [r4, #0x38]
- movs r0, #0xf1
- lsls r0, r0, #4
- strh r0, [r4, #0x38]
- ldrh r0, [r4, #0x3a]
- ldr r0, _0800B2C4 @ =0x00000808
- strh r0, [r4, #0x3a]
- ldr r1, _0800B2C8 @ =0x04000050
- ldrh r0, [r4, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r4, #0x3a]
- strh r0, [r1]
- movs r0, #0xec
- lsls r0, r0, #2
- adds r0, r0, r4
- mov sl, r0
- movs r1, #0xbe
- lsls r1, r1, #2
- adds r1, r1, r4
- mov r8, r1
- movs r2, #0x8d
- lsls r2, r2, #3
- adds r2, r2, r4
- mov sb, r2
- movs r0, #1
- mov r7, sl
- strh r0, [r7]
- strh r0, [r1]
- strh r0, [r2]
- ldr r0, _0800B2CC @ =0x086A79EC
- movs r1, #3
- mov r2, r8
- bl sub_358
- ldrh r0, [r7]
- cmp r0, #1
- bne _0800B1B8
- ldr r0, _0800B2D0 @ =0x0201A450
- ldrh r1, [r0]
- strh r1, [r7, #2]
- ldrh r0, [r0, #2]
- strh r0, [r7, #4]
- ldr r6, _0800B2D4 @ =0x03005000
- movs r0, #0xd
- rsbs r0, r0, #0
- mov ip, r0
- movs r1, #0xee
- lsls r1, r1, #2
- adds r4, r4, r1
- movs r5, #3
-_0800B15A:
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #1]
- mov r0, ip
- ands r0, r2
- movs r2, #4
- orrs r0, r2
- strb r0, [r1, #1]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #5]
- mov r0, ip
- ands r0, r2
- movs r7, #4
- orrs r0, r7
- strb r0, [r1, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, sl
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800B2D8 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _0800B2DC @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r7, sl
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _0800B15A
-_0800B1B8:
- mov r7, r8
- ldrh r0, [r7]
- cmp r0, #1
- bne _0800B234
- ldr r0, _0800B2D0 @ =0x0201A450
- ldrh r1, [r0, #0x10]
- strh r1, [r7, #2]
- ldrh r0, [r0, #0x12]
- strh r0, [r7, #4]
- ldr r6, _0800B2D4 @ =0x03005000
- ldr r0, _0800B2DC @ =0xFFFFFE00
- mov ip, r0
- mov r4, r8
- adds r4, #8
- movs r5, #3
-_0800B1D6:
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #1]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r2
- strb r0, [r1, #1]
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r2, #2
- ldrsh r1, [r4, r2]
- mov r7, r8
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r7, _0800B2D8 @ =0x000001FF
- adds r0, r7, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r2, r8
- ldrb r0, [r2, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _0800B1D6
-_0800B234:
- mov r1, sb
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800B2A2
- ldr r0, _0800B2D0 @ =0x0201A450
- ldrh r1, [r0, #0x20]
- mov r2, sb
- strh r1, [r2, #2]
- ldrh r0, [r0, #0x22]
- strh r0, [r2, #4]
- ldr r6, _0800B2D4 @ =0x03005000
- movs r7, #0xd
- rsbs r7, r7, #0
- mov ip, r7
- mov r4, sb
- adds r4, #8
- movs r5, #7
-_0800B256:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #5]
- mov r0, ip
- ands r0, r1
- movs r1, #8
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r2, sb
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800B2D8 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _0800B2DC @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r7, sb
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _0800B256
-_0800B2A2:
- movs r0, #0
- mov r7, sl
- strh r0, [r7]
- mov r1, r8
- strh r0, [r1]
- mov r2, sb
- strh r0, [r2]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B2C0: .4byte 0x0200B0C0
-_0800B2C4: .4byte 0x00000808
-_0800B2C8: .4byte 0x04000050
-_0800B2CC: .4byte 0x086A79EC
-_0800B2D0: .4byte 0x0201A450
-_0800B2D4: .4byte 0x03005000
-_0800B2D8: .4byte 0x000001FF
-_0800B2DC: .4byte 0xFFFFFE00
-
- thumb_func_start sub_B2E0
-sub_B2E0: @ 0x0800B2E0
- push {lr}
- bl sub_518
- ldr r1, _0800B2F4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800B2F4: .4byte 0x0202C790
-
- thumb_func_start sub_B2F8
-sub_B2F8: @ 0x0800B2F8
- push {r4, lr}
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x80
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800B428 @ =0x04000008
- movs r3, #0xf0
- lsls r3, r3, #4
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #1
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800B42C @ =0x0400000A
- ldr r3, _0800B430 @ =0x0000DA01
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #2
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800B434 @ =0x0400000C
- ldr r3, _0800B438 @ =0x00001E02
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #3
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800B43C @ =0x0400000E
- ldr r3, _0800B440 @ =0x00001F03
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r4, #0x80
- lsls r4, r4, #4
- adds r1, r4, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0800B444 @ =0x040000D4
- ldr r1, _0800B448 @ =0x080FD7C0
- str r1, [r0]
- ldr r1, _0800B44C @ =0x06007800
- str r1, [r0, #4]
- ldr r2, _0800B450 @ =0x80000400
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800B454 @ =0x080FDFC0
- str r1, [r0]
- ldr r1, _0800B458 @ =0x0600D000
- str r1, [r0, #4]
- ldr r1, _0800B45C @ =0x80001000
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800B460 @ =0x080FCFC0
- str r1, [r0]
- ldr r1, _0800B464 @ =0x0600F000
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800B468 @ =0x080F63A0
- str r1, [r0]
- ldr r1, _0800B46C @ =0x0600F800
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800B470 @ =0x080F6BA0
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800B474 @ =0x80003200
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r3, _0800B478 @ =0x080F61A0
- str r3, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r2, _0800B47C @ =0x80000040
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800B480 @ =0x080FFFC0
- str r1, [r0]
- ldr r1, _0800B484 @ =0x06010000
- str r1, [r0, #4]
- ldr r1, _0800B488 @ =0x80000800
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- str r3, [r0]
- ldr r1, _0800B48C @ =0x05000200
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r0, [r0, #8]
- bl sub_B4A0
- ldr r1, _0800B490 @ =0x0200B0C0
- ldr r2, _0800B494 @ =0x0202ADA0
- ldrh r3, [r2]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #2]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0xc]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0xe]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x18]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x1a]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r3, [r2, #0x24]
- adds r4, #2
- adds r0, r1, r4
- strh r3, [r0]
- ldrh r0, [r2, #0x26]
- ldr r2, _0800B498 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800B49C @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B428: .4byte 0x04000008
-_0800B42C: .4byte 0x0400000A
-_0800B430: .4byte 0x0000DA01
-_0800B434: .4byte 0x0400000C
-_0800B438: .4byte 0x00001E02
-_0800B43C: .4byte 0x0400000E
-_0800B440: .4byte 0x00001F03
-_0800B444: .4byte 0x040000D4
-_0800B448: .4byte 0x080FD7C0
-_0800B44C: .4byte 0x06007800
-_0800B450: .4byte 0x80000400
-_0800B454: .4byte 0x080FDFC0
-_0800B458: .4byte 0x0600D000
-_0800B45C: .4byte 0x80001000
-_0800B460: .4byte 0x080FCFC0
-_0800B464: .4byte 0x0600F000
-_0800B468: .4byte 0x080F63A0
-_0800B46C: .4byte 0x0600F800
-_0800B470: .4byte 0x080F6BA0
-_0800B474: .4byte 0x80003200
-_0800B478: .4byte 0x080F61A0
-_0800B47C: .4byte 0x80000040
-_0800B480: .4byte 0x080FFFC0
-_0800B484: .4byte 0x06010000
-_0800B488: .4byte 0x80000800
-_0800B48C: .4byte 0x05000200
-_0800B490: .4byte 0x0200B0C0
-_0800B494: .4byte 0x0202ADA0
-_0800B498: .4byte 0x000002F6
-_0800B49C: .4byte 0x0202C790
-
- thumb_func_start sub_B4A0
-sub_B4A0: @ 0x0800B4A0
- push {r4, r5, r6, r7, lr}
- ldr r1, _0800B540 @ =0x0202ADA0
- movs r3, #0
- movs r4, #0x1e
- strh r4, [r1, #0xc]
- ldr r0, _0800B544 @ =0x0000FF6A
- strh r0, [r1, #0xe]
- movs r0, #1
- strh r0, [r1, #0x14]
- ldr r0, _0800B548 @ =0x0000FFFE
- strh r0, [r1]
- subs r0, #3
- strh r0, [r1, #2]
- strh r3, [r1, #4]
- movs r2, #8
- strh r2, [r1, #6]
- subs r0, #0x6b
- strh r0, [r1, #0x18]
- adds r0, #0x44
- strh r0, [r1, #0x1a]
- strh r2, [r1, #0x1c]
- strh r3, [r1, #0x1e]
- strh r3, [r1, #0x24]
- strh r3, [r1, #0x26]
- ldr r3, _0800B54C @ =0x0201A450
- movs r0, #0x32
- strh r0, [r3]
- movs r1, #0x3c
- strh r1, [r3, #2]
- movs r0, #0x50
- strh r0, [r3, #0x10]
- strh r1, [r3, #0x12]
- movs r0, #0x8c
- strh r0, [r3, #0x20]
- movs r2, #0x64
- strh r2, [r3, #0x22]
- movs r0, #0xc8
- strh r0, [r3, #0x30]
- movs r0, #0x5a
- strh r0, [r3, #0x32]
- adds r0, r3, #0
- adds r0, #0x40
- strh r1, [r0]
- adds r0, #2
- strh r4, [r0]
- adds r1, r3, #0
- adds r1, #0x50
- movs r0, #0x96
- strh r0, [r1]
- adds r0, r3, #0
- adds r0, #0x52
- strh r2, [r0]
- ldr r5, _0800B550 @ =0x0202C548
- ldr r6, _0800B554 @ =0x0202BF10
- ldr r7, _0800B558 @ =0x0202A578
- ldr r0, _0800B55C @ =0x0202BEB4
- mov ip, r0
- movs r4, #0
- movs r2, #0
- adds r0, r3, #0
- adds r0, #8
- movs r1, #5
-_0800B51C:
- strh r2, [r0]
- strh r2, [r0, #2]
- strb r4, [r0, #4]
- adds r0, #0x10
- subs r1, #1
- cmp r1, #0
- bge _0800B51C
- movs r0, #0
- strb r0, [r5]
- movs r0, #0
- strh r0, [r6]
- strh r0, [r7]
- mov r1, ip
- strb r0, [r1]
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B540: .4byte 0x0202ADA0
-_0800B544: .4byte 0x0000FF6A
-_0800B548: .4byte 0x0000FFFE
-_0800B54C: .4byte 0x0201A450
-_0800B550: .4byte 0x0202C548
-_0800B554: .4byte 0x0202BF10
-_0800B558: .4byte 0x0202A578
-_0800B55C: .4byte 0x0202BEB4
-
- thumb_func_start sub_B560
-sub_B560: @ 0x0800B560
- push {r4, r5, lr}
- ldr r2, _0800B694 @ =0x0202ADA0
- ldr r3, _0800B698 @ =0x086A7AC0
- ldr r1, _0800B69C @ =0x0202C548
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r3
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r4, [r2, #0xc]
- adds r0, r0, r4
- strh r0, [r2, #0xc]
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r3
- ldrb r0, [r0, #1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r5, [r2, #0xe]
- adds r0, r0, r5
- strh r0, [r2, #0xe]
- ldr r3, _0800B6A0 @ =0x086A7AE4
- ldr r4, _0800B6A4 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r4, r1]
- adds r0, r0, r3
- ldrb r1, [r0]
- movs r0, #0x10
- ands r0, r1
- adds r5, r2, #0
- cmp r0, #0
- beq _0800B5C2
- ldrh r0, [r5, #6]
- ldrh r2, [r5, #2]
- adds r1, r0, r2
- strh r1, [r5, #2]
- subs r0, #2
- strh r0, [r5, #6]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r1, #0xa
- rsbs r1, r1, #0
- cmp r0, r1
- bgt _0800B5C2
- movs r0, #8
- strh r0, [r5, #6]
-_0800B5C2:
- movs r1, #0
- ldrsh r0, [r4, r1]
- adds r0, r0, r3
- ldrb r1, [r0]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800B5EE
- ldrh r0, [r5, #0x1c]
- ldrh r2, [r5, #0x18]
- adds r1, r0, r2
- strh r1, [r5, #0x18]
- subs r0, #2
- strh r0, [r5, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r1, #0xa
- rsbs r1, r1, #0
- cmp r0, r1
- bgt _0800B5EE
- movs r0, #8
- strh r0, [r5, #0x1c]
-_0800B5EE:
- ldr r1, _0800B6A8 @ =0x0200B0C0
- ldrh r2, [r5]
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r5, #2]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r5, #0xc]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r5, #0xe]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r5, #0x18]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r5, #0x1a]
- ldr r5, _0800B6AC @ =0x000002F2
- adds r1, r1, r5
- strh r0, [r1]
- ldr r1, _0800B6B0 @ =0x086A7B34
- ldr r3, _0800B6B4 @ =0x0202BEB4
- movs r2, #0
- ldrsb r2, [r3, r2]
- lsls r0, r2, #2
- adds r0, r0, r1
- movs r5, #0
- ldrsh r1, [r4, r5]
- ldrb r0, [r0, #2]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bne _0800B64C
- ldr r1, _0800B6B8 @ =0x0201A450
- lsls r0, r2, #4
- adds r0, r0, r1
- movs r1, #1
- strb r1, [r0, #0xc]
- ldrb r0, [r3]
- adds r0, #1
- strb r0, [r3]
-_0800B64C:
- bl sub_B7F8
- ldr r4, _0800B6BC @ =0x0202A578
- ldrh r0, [r4]
- adds r0, #1
- strh r0, [r4]
- ldr r2, _0800B698 @ =0x086A7AC0
- ldr r3, _0800B69C @ =0x0202C548
- movs r1, #0
- ldrsb r1, [r3, r1]
- lsls r1, r1, #2
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1, #2]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- ble _0800B68C
- movs r0, #0
- strh r0, [r4]
- ldrb r0, [r3]
- adds r0, #1
- strb r0, [r3]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #8
- ble _0800B68C
- ldr r1, _0800B6C0 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800B68C:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B694: .4byte 0x0202ADA0
-_0800B698: .4byte 0x086A7AC0
-_0800B69C: .4byte 0x0202C548
-_0800B6A0: .4byte 0x086A7AE4
-_0800B6A4: .4byte 0x0202BF10
-_0800B6A8: .4byte 0x0200B0C0
-_0800B6AC: .4byte 0x000002F2
-_0800B6B0: .4byte 0x086A7B34
-_0800B6B4: .4byte 0x0202BEB4
-_0800B6B8: .4byte 0x0201A450
-_0800B6BC: .4byte 0x0202A578
-_0800B6C0: .4byte 0x0202C790
-
- thumb_func_start sub_B6C4
-sub_B6C4: @ 0x0800B6C4
- push {r4, r5, lr}
- ldr r2, _0800B784 @ =0x086A7AE4
- ldr r3, _0800B788 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r3, r1]
- adds r0, r0, r2
- ldrb r1, [r0]
- movs r0, #0x10
- ands r0, r1
- adds r4, r2, #0
- adds r2, r3, #0
- ldr r3, _0800B78C @ =0x0202ADA0
- cmp r0, #0
- beq _0800B6FC
- ldrh r0, [r3, #6]
- ldrh r5, [r3, #2]
- adds r1, r0, r5
- strh r1, [r3, #2]
- subs r0, #2
- strh r0, [r3, #6]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r1, #0xa
- rsbs r1, r1, #0
- cmp r0, r1
- bgt _0800B6FC
- movs r0, #8
- strh r0, [r3, #6]
-_0800B6FC:
- movs r1, #0
- ldrsh r0, [r2, r1]
- adds r0, r0, r4
- ldrb r1, [r0]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800B728
- ldrh r0, [r3, #0x1c]
- ldrh r2, [r3, #0x18]
- adds r1, r0, r2
- strh r1, [r3, #0x18]
- subs r0, #2
- strh r0, [r3, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r1, #0xa
- rsbs r1, r1, #0
- cmp r0, r1
- bgt _0800B728
- movs r0, #8
- strh r0, [r3, #0x1c]
-_0800B728:
- ldr r1, _0800B790 @ =0x0200B0C0
- ldrh r2, [r3]
- movs r4, #0xba
- lsls r4, r4, #2
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #2]
- ldr r5, _0800B794 @ =0x000002EA
- adds r0, r1, r5
- strh r2, [r0]
- ldrh r2, [r3, #0xc]
- adds r4, #4
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r2, [r3, #0xe]
- adds r5, #4
- adds r0, r1, r5
- strh r2, [r0]
- ldrh r2, [r3, #0x18]
- adds r4, #4
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, #0x1a]
- adds r5, #4
- adds r1, r1, r5
- strh r0, [r1]
- bl sub_B7F8
- ldr r1, _0800B798 @ =0x0202A578
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x10
- ble _0800B77C
- movs r0, #0
- strh r0, [r1]
- ldr r1, _0800B79C @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800B77C:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B784: .4byte 0x086A7AE4
-_0800B788: .4byte 0x0202BF10
-_0800B78C: .4byte 0x0202ADA0
-_0800B790: .4byte 0x0200B0C0
-_0800B794: .4byte 0x000002EA
-_0800B798: .4byte 0x0202A578
-_0800B79C: .4byte 0x0202C790
-
- thumb_func_start sub_B7A0
-sub_B7A0: @ 0x0800B7A0
- push {lr}
- sub sp, #8
- bl sub_578
- movs r2, #0
- str r2, [sp]
- ldr r1, _0800B7E4 @ =0x040000D4
- mov r0, sp
- str r0, [r1]
- movs r0, #0xe0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800B7E8 @ =0x85000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- add r0, sp, #4
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _0800B7EC @ =0x06010000
- str r0, [r1, #4]
- ldr r0, _0800B7F0 @ =0x81002800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- bl sub_10480
- bl sub_10544
- ldr r1, _0800B7F4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- add sp, #8
- pop {r0}
- bx r0
- .align 2, 0
-_0800B7E4: .4byte 0x040000D4
-_0800B7E8: .4byte 0x85000100
-_0800B7EC: .4byte 0x06010000
-_0800B7F0: .4byte 0x81002800
-_0800B7F4: .4byte 0x0202C790
-
- thumb_func_start sub_B7F8
-sub_B7F8: @ 0x0800B7F8
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x24
- ldr r6, _0800BA0C @ =0x0201A450
- movs r1, #8
- ldrsh r0, [r6, r1]
- lsls r2, r0, #4
- adds r2, r2, r0
- lsls r2, r2, #2
- adds r2, r2, r0
- lsls r2, r2, #4
- ldr r3, _0800BA10 @ =0x0200B3B8
- adds r2, r2, r3
- str r2, [sp]
- movs r4, #0x18
- ldrsh r1, [r6, r4]
- lsls r0, r1, #4
- adds r0, r0, r1
- lsls r0, r0, #2
- adds r0, r0, r1
- lsls r0, r0, #4
- adds r1, r3, #0
- adds r1, #0xb8
- adds r0, r0, r1
- str r0, [sp, #4]
- movs r0, #0x28
- ldrsh r1, [r6, r0]
- lsls r0, r1, #4
- adds r0, r0, r1
- lsls r0, r0, #2
- adds r0, r0, r1
- lsls r0, r0, #4
- movs r4, #0xb8
- lsls r4, r4, #1
- adds r1, r3, r4
- adds r0, r0, r1
- str r0, [sp, #8]
- movs r0, #0x38
- ldrsh r1, [r6, r0]
- lsls r0, r1, #4
- adds r0, r0, r1
- lsls r0, r0, #2
- adds r0, r0, r1
- lsls r0, r0, #4
- adds r4, #0xb8
- adds r1, r3, r4
- adds r0, r0, r1
- str r0, [sp, #0xc]
- adds r0, r6, #0
- adds r0, #0x48
- movs r4, #0
- ldrsh r1, [r0, r4]
- lsls r0, r1, #4
- adds r0, r0, r1
- lsls r0, r0, #2
- adds r0, r0, r1
- lsls r0, r0, #4
- movs r4, #0xb8
- lsls r4, r4, #2
- adds r1, r3, r4
- adds r0, r0, r1
- str r0, [sp, #0x10]
- adds r0, r6, #0
- adds r0, #0x58
- movs r4, #0
- ldrsh r1, [r0, r4]
- lsls r0, r1, #4
- adds r0, r0, r1
- lsls r0, r0, #2
- adds r0, r0, r1
- lsls r0, r0, #4
- movs r4, #0xe6
- lsls r4, r4, #2
- adds r1, r3, r4
- adds r0, r0, r1
- str r0, [sp, #0x14]
- movs r0, #0xc
- ldrsb r0, [r6, r0]
- strh r0, [r2]
- ldr r1, [sp, #4]
- movs r0, #0x1c
- ldrsb r0, [r6, r0]
- strh r0, [r1]
- ldr r1, [sp, #8]
- adds r0, r6, #0
- adds r0, #0x2c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r1, [sp, #0xc]
- adds r0, r6, #0
- adds r0, #0x3c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r1, [sp, #0x10]
- adds r0, r6, #0
- adds r0, #0x4c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r1, [sp, #0x14]
- adds r0, r6, #0
- adds r0, #0x5c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r4, _0800BA14 @ =0x086A7A78
- adds r0, r4, #0
- movs r1, #0x12
- adds r2, r3, #0
- bl sub_358
- movs r5, #0
- str r6, [sp, #0x18]
-_0800B8EC:
- lsls r0, r5, #2
- mov r6, sp
- adds r4, r6, r0
- ldr r1, [r4]
- ldrh r1, [r1]
- str r0, [sp, #0x20]
- adds r0, r5, #1
- str r0, [sp, #0x1c]
- cmp r1, #1
- bne _0800B9DA
- lsls r3, r5, #4
- ldr r1, [sp, #0x18]
- adds r2, r3, r1
- ldr r6, [sp, #0x20]
- ldr r1, _0800BA18 @ =0x086A7B34
- adds r0, r6, r1
- movs r1, #0
- ldrsb r1, [r0, r1]
- ldrh r6, [r2]
- adds r1, r1, r6
- strh r1, [r2]
- ldrb r0, [r0, #1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r6, [r2, #2]
- adds r0, r0, r6
- strh r0, [r2, #2]
- ldr r0, [r4]
- strh r1, [r0, #2]
- ldr r1, [r4]
- ldrh r0, [r2, #2]
- strh r0, [r1, #4]
- movs r0, #8
- ldrsh r1, [r2, r0]
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #1
- adds r0, r5, r0
- lsls r0, r0, #2
- ldr r1, _0800BA14 @ =0x086A7A78
- adds r0, r0, r1
- ldr r0, [r0]
- mov r8, r0
- movs r7, #0
- mov sb, r3
- ldrh r2, [r0]
- cmp r7, r2
- bge _0800B998
- adds r5, r4, #0
- ldr r3, _0800BA1C @ =0x03005000
- mov ip, r3
- ldr r4, _0800BA20 @ =0xFFFFFE00
- mov sl, r4
- movs r6, #8
-_0800B958:
- ldr r0, [r5]
- adds r4, r0, r6
- ldrh r2, [r4]
- lsls r2, r2, #3
- add r2, ip
- movs r3, #2
- ldrsh r1, [r4, r3]
- movs r3, #2
- ldrsh r0, [r0, r3]
- adds r1, r1, r0
- ldr r3, _0800BA24 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- ldr r0, [r5]
- ldrb r0, [r0, #4]
- ldrb r4, [r4, #4]
- adds r0, r0, r4
- strb r0, [r1]
- adds r6, #8
- adds r7, #1
- mov r4, r8
- ldrh r4, [r4]
- cmp r7, r4
- blt _0800B958
-_0800B998:
- ldr r1, [sp, #0x18]
- add r1, sb
- ldrh r0, [r1, #0xa]
- adds r0, #1
- movs r2, #0
- strh r0, [r1, #0xa]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800B9BC
- strh r2, [r1, #0xa]
- ldrh r2, [r1, #8]
- movs r6, #8
- ldrsh r0, [r1, r6]
- cmp r0, #1
- bgt _0800B9BC
- adds r0, r2, #1
- strh r0, [r1, #8]
-_0800B9BC:
- ldr r1, [sp, #0x20]
- ldr r2, _0800BA18 @ =0x086A7B34
- adds r0, r1, r2
- ldr r3, _0800BA28 @ =0x0202BF10
- movs r4, #0
- ldrsh r1, [r3, r4]
- ldrb r0, [r0, #3]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r1, r0
- bne _0800B9DA
- ldr r1, [sp, #0x18]
- add r1, sb
- movs r0, #0
- strb r0, [r1, #0xc]
-_0800B9DA:
- ldr r5, [sp, #0x1c]
- cmp r5, #5
- ble _0800B8EC
- ldr r0, [sp]
- movs r1, #0
- strh r1, [r0]
- ldr r0, [sp, #4]
- strh r1, [r0]
- ldr r0, [sp, #8]
- strh r1, [r0]
- ldr r0, [sp, #0xc]
- strh r1, [r0]
- ldr r0, [sp, #0x10]
- strh r1, [r0]
- ldr r0, [sp, #0x14]
- strh r1, [r0]
- add sp, #0x24
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BA0C: .4byte 0x0201A450
-_0800BA10: .4byte 0x0200B3B8
-_0800BA14: .4byte 0x086A7A78
-_0800BA18: .4byte 0x086A7B34
-_0800BA1C: .4byte 0x03005000
-_0800BA20: .4byte 0xFFFFFE00
-_0800BA24: .4byte 0x000001FF
-_0800BA28: .4byte 0x0202BF10
-
- thumb_func_start sub_BA2C
-sub_BA2C: @ 0x0800BA2C
- ldr r1, _0800BA38 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0800BA38: .4byte 0x0202C790
-
- thumb_func_start sub_BA3C
-sub_BA3C: @ 0x0800BA3C
- push {r4, r5, lr}
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x80
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800BB6C @ =0x04000008
- movs r3, #0xd4
- lsls r3, r3, #8
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #1
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800BB70 @ =0x0400000A
- ldr r3, _0800BB74 @ =0x0000D801
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #2
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800BB78 @ =0x0400000C
- ldr r3, _0800BB7C @ =0x0000DC02
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800BB80 @ =0x0400000E
- ldr r3, _0800BB84 @ =0x00000F03
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #4
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0800BB88 @ =0x040000D4
- ldr r1, _0800BB8C @ =0x08108A00
- str r1, [r0]
- ldr r1, _0800BB90 @ =0x0600A000
- str r1, [r0, #4]
- ldr r3, _0800BB94 @ =0x80001000
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800BB98 @ =0x0810AA00
- str r1, [r0]
- ldr r1, _0800BB9C @ =0x0600C000
- str r1, [r0, #4]
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800BBA0 @ =0x08106A00
- str r1, [r0]
- ldr r1, _0800BBA4 @ =0x0600E000
- str r1, [r0, #4]
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800BBA8 @ =0x081011E0
- str r1, [r0]
- ldr r1, _0800BBAC @ =0x06007800
- str r1, [r0, #4]
- ldr r1, _0800BBB0 @ =0x80000400
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800BBB4 @ =0x081019E0
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800BBB8 @ =0x80002800
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r5, _0800BBBC @ =0x08100FE0
- str r5, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r4, _0800BBC0 @ =0x800000B0
- str r4, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800BBC4 @ =0x0810CA00
- str r1, [r0]
- ldr r1, _0800BBC8 @ =0x06010000
- str r1, [r0, #4]
- str r3, [r0, #8]
- ldr r1, [r0, #8]
- str r5, [r0]
- ldr r1, _0800BBCC @ =0x05000200
- str r1, [r0, #4]
- str r4, [r0, #8]
- ldr r0, [r0, #8]
- ldr r4, _0800BBD0 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r4, #0x16]
- bl sub_BBE0
- ldr r1, _0800BBD4 @ =0x0202ADA0
- ldrh r2, [r1]
- movs r3, #0xba
- lsls r3, r3, #2
- adds r0, r4, r3
- strh r2, [r0]
- ldrh r2, [r1, #2]
- adds r3, #2
- adds r0, r4, r3
- strh r2, [r0]
- ldrh r2, [r1, #0xc]
- adds r3, #2
- adds r0, r4, r3
- strh r2, [r0]
- ldrh r2, [r1, #0xe]
- adds r3, #2
- adds r0, r4, r3
- strh r2, [r0]
- ldrh r2, [r1, #0x18]
- adds r3, #2
- adds r0, r4, r3
- strh r2, [r0]
- ldrh r2, [r1, #0x1a]
- adds r3, #2
- adds r0, r4, r3
- strh r2, [r0]
- ldrh r2, [r1, #0x24]
- adds r3, #2
- adds r0, r4, r3
- strh r2, [r0]
- ldrh r0, [r1, #0x26]
- ldr r1, _0800BBD8 @ =0x000002F6
- adds r4, r4, r1
- strh r0, [r4]
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800BBDC @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BB6C: .4byte 0x04000008
-_0800BB70: .4byte 0x0400000A
-_0800BB74: .4byte 0x0000D801
-_0800BB78: .4byte 0x0400000C
-_0800BB7C: .4byte 0x0000DC02
-_0800BB80: .4byte 0x0400000E
-_0800BB84: .4byte 0x00000F03
-_0800BB88: .4byte 0x040000D4
-_0800BB8C: .4byte 0x08108A00
-_0800BB90: .4byte 0x0600A000
-_0800BB94: .4byte 0x80001000
-_0800BB98: .4byte 0x0810AA00
-_0800BB9C: .4byte 0x0600C000
-_0800BBA0: .4byte 0x08106A00
-_0800BBA4: .4byte 0x0600E000
-_0800BBA8: .4byte 0x081011E0
-_0800BBAC: .4byte 0x06007800
-_0800BBB0: .4byte 0x80000400
-_0800BBB4: .4byte 0x081019E0
-_0800BBB8: .4byte 0x80002800
-_0800BBBC: .4byte 0x08100FE0
-_0800BBC0: .4byte 0x800000B0
-_0800BBC4: .4byte 0x0810CA00
-_0800BBC8: .4byte 0x06010000
-_0800BBCC: .4byte 0x05000200
-_0800BBD0: .4byte 0x0200B0C0
-_0800BBD4: .4byte 0x0202ADA0
-_0800BBD8: .4byte 0x000002F6
-_0800BBDC: .4byte 0x0202C790
-
- thumb_func_start sub_BBE0
-sub_BBE0: @ 0x0800BBE0
- ldr r1, _0800BC30 @ =0x0202ADA0
- movs r2, #0
- ldr r0, _0800BC34 @ =0x0000FEFC
- strh r0, [r1]
- movs r0, #0x46
- strh r0, [r1, #2]
- strh r2, [r1, #6]
- ldr r0, _0800BC38 @ =0x0000FEE8
- strh r0, [r1, #0xc]
- movs r0, #0x5a
- strh r0, [r1, #0xe]
- strh r2, [r1, #0x12]
- ldr r0, _0800BC3C @ =0x0000FF10
- strh r0, [r1, #0x18]
- adds r0, #0xbe
- strh r0, [r1, #0x1a]
- adds r0, #0x2f
- strh r0, [r1, #0x1e]
- strh r2, [r1, #0x24]
- strh r2, [r1, #0x26]
- ldr r1, _0800BC40 @ =0x0201A450
- movs r0, #0x94
- lsls r0, r0, #1
- strh r0, [r1]
- movs r0, #0x2c
- strh r0, [r1, #2]
- strh r2, [r1, #4]
- strh r2, [r1, #6]
- ldr r0, _0800BC44 @ =0x0202BF10
- strh r2, [r0]
- ldr r0, _0800BC48 @ =0x0202A578
- strh r2, [r0]
- ldr r0, _0800BC4C @ =0x0202C5E4
- movs r2, #0x80
- lsls r2, r2, #1
- adds r1, r2, #0
- strh r1, [r0]
- ldr r0, _0800BC50 @ =0x0202ADD8
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0800BC30: .4byte 0x0202ADA0
-_0800BC34: .4byte 0x0000FEFC
-_0800BC38: .4byte 0x0000FEE8
-_0800BC3C: .4byte 0x0000FF10
-_0800BC40: .4byte 0x0201A450
-_0800BC44: .4byte 0x0202BF10
-_0800BC48: .4byte 0x0202A578
-_0800BC4C: .4byte 0x0202C5E4
-_0800BC50: .4byte 0x0202ADD8
-
- thumb_func_start sub_BC54
-sub_BC54: @ 0x0800BC54
- push {r4, r5, r6, lr}
- ldr r4, _0800BCD0 @ =0x0202ADA0
- ldrh r0, [r4, #0x18]
- adds r0, #2
- strh r0, [r4, #0x18]
- ldrh r0, [r4, #0x1a]
- ldrh r6, [r4, #0x1e]
- subs r0, r0, r6
- strh r0, [r4, #0x1a]
- ldr r5, _0800BCD4 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r5, r1]
- movs r1, #3
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0800BC88
- adds r0, r6, #1
- strh r0, [r4, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800BC88
- ldr r0, _0800BCD8 @ =0x0000FFFD
- strh r0, [r4, #0x1e]
-_0800BC88:
- ldrh r0, [r4, #0x24]
- subs r0, #1
- strh r0, [r4, #0x24]
- ldrh r0, [r4, #0x26]
- subs r0, #1
- strh r0, [r4, #0x26]
- ldr r1, _0800BCDC @ =0x0200B0C0
- ldrh r2, [r4, #0x18]
- movs r3, #0xbc
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x1a]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x24]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x26]
- ldr r2, _0800BCE0 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- movs r3, #0
- ldrsh r0, [r5, r3]
- cmp r0, #0x20
- ble _0800BCC8
- ldr r1, _0800BCE4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800BCC8:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BCD0: .4byte 0x0202ADA0
-_0800BCD4: .4byte 0x0202BF10
-_0800BCD8: .4byte 0x0000FFFD
-_0800BCDC: .4byte 0x0200B0C0
-_0800BCE0: .4byte 0x000002F6
-_0800BCE4: .4byte 0x0202C790
-
- thumb_func_start sub_BCE8
-sub_BCE8: @ 0x0800BCE8
- push {r4, r5, r6, r7, lr}
- ldr r4, _0800BDA4 @ =0x0202ADA0
- ldrh r0, [r4, #0x18]
- adds r0, #2
- strh r0, [r4, #0x18]
- ldrh r0, [r4, #0x1a]
- ldrh r6, [r4, #0x1e]
- subs r0, r0, r6
- strh r0, [r4, #0x1a]
- ldr r5, _0800BDA8 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r5, r1]
- movs r1, #3
- bl __modsi3
- lsls r0, r0, #0x10
- adds r7, r5, #0
- cmp r0, #0
- bne _0800BD1E
- adds r0, r6, #1
- strh r0, [r4, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800BD1E
- ldr r0, _0800BDAC @ =0x0000FFFD
- strh r0, [r4, #0x1e]
-_0800BD1E:
- ldrh r0, [r4, #0xc]
- adds r0, #3
- strh r0, [r4, #0xc]
- ldrh r0, [r4, #0xe]
- ldrh r5, [r4, #0x12]
- subs r0, r0, r5
- strh r0, [r4, #0xe]
- movs r2, #0
- ldrsh r0, [r7, r2]
- movs r1, #5
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0800BD4C
- adds r0, r5, #1
- strh r0, [r4, #0x12]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #7
- ble _0800BD4C
- ldr r0, _0800BDB0 @ =0x0000FFFA
- strh r0, [r4, #0x12]
-_0800BD4C:
- ldrh r0, [r4, #0x24]
- subs r0, #1
- strh r0, [r4, #0x24]
- ldrh r0, [r4, #0x26]
- subs r0, #1
- strh r0, [r4, #0x26]
- ldr r1, _0800BDB4 @ =0x0200B0C0
- ldrh r2, [r4, #0x18]
- movs r3, #0xbc
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x1a]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xc]
- subs r3, #6
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xe]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x24]
- adds r3, #6
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x26]
- ldr r2, _0800BDB8 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- movs r3, #0
- ldrsh r0, [r7, r3]
- cmp r0, #0x50
- ble _0800BD9C
- ldr r1, _0800BDBC @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800BD9C:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BDA4: .4byte 0x0202ADA0
-_0800BDA8: .4byte 0x0202BF10
-_0800BDAC: .4byte 0x0000FFFD
-_0800BDB0: .4byte 0x0000FFFA
-_0800BDB4: .4byte 0x0200B0C0
-_0800BDB8: .4byte 0x000002F6
-_0800BDBC: .4byte 0x0202C790
-
- thumb_func_start sub_BDC0
-sub_BDC0: @ 0x0800BDC0
- push {r4, r5, r6, r7, lr}
- ldr r4, _0800BEB4 @ =0x0202ADA0
- ldrh r0, [r4, #0x18]
- adds r0, #2
- strh r0, [r4, #0x18]
- ldrh r0, [r4, #0x1a]
- ldrh r6, [r4, #0x1e]
- subs r0, r0, r6
- strh r0, [r4, #0x1a]
- ldr r5, _0800BEB8 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r5, r1]
- movs r1, #3
- bl __modsi3
- lsls r0, r0, #0x10
- adds r7, r5, #0
- cmp r0, #0
- bne _0800BDF6
- adds r0, r6, #1
- strh r0, [r4, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800BDF6
- ldr r0, _0800BEBC @ =0x0000FFFD
- strh r0, [r4, #0x1e]
-_0800BDF6:
- ldrh r0, [r4, #0xc]
- adds r0, #3
- strh r0, [r4, #0xc]
- ldrh r0, [r4, #0xe]
- ldrh r5, [r4, #0x12]
- subs r0, r0, r5
- strh r0, [r4, #0xe]
- movs r2, #0
- ldrsh r0, [r7, r2]
- movs r1, #5
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0800BE24
- adds r0, r5, #1
- strh r0, [r4, #0x12]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #7
- ble _0800BE24
- ldr r0, _0800BEC0 @ =0x0000FFFA
- strh r0, [r4, #0x12]
-_0800BE24:
- ldrh r0, [r4]
- adds r0, #4
- strh r0, [r4]
- ldrh r0, [r4, #2]
- ldrh r2, [r4, #6]
- subs r0, r0, r2
- strh r0, [r4, #2]
- ldrh r0, [r7]
- movs r1, #3
- ands r0, r1
- cmp r0, #0
- bne _0800BE4C
- adds r0, r2, #1
- strh r0, [r4, #6]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #7
- ble _0800BE4C
- ldr r0, _0800BEBC @ =0x0000FFFD
- strh r0, [r4, #6]
-_0800BE4C:
- ldrh r0, [r4, #0x24]
- subs r0, #1
- strh r0, [r4, #0x24]
- ldrh r0, [r4, #0x26]
- subs r0, #1
- strh r0, [r4, #0x26]
- ldr r1, _0800BEC4 @ =0x0200B0C0
- ldrh r2, [r4, #0x18]
- movs r3, #0xbc
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x1a]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xc]
- subs r3, #6
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xe]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4]
- subs r3, #6
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #2]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x24]
- adds r3, #0xa
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x26]
- ldr r2, _0800BEC8 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- movs r3, #0
- ldrsh r0, [r7, r3]
- cmp r0, #0x64
- ble _0800BEAC
- ldr r1, _0800BECC @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800BEAC:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BEB4: .4byte 0x0202ADA0
-_0800BEB8: .4byte 0x0202BF10
-_0800BEBC: .4byte 0x0000FFFD
-_0800BEC0: .4byte 0x0000FFFA
-_0800BEC4: .4byte 0x0200B0C0
-_0800BEC8: .4byte 0x000002F6
-_0800BECC: .4byte 0x0202C790
-
- thumb_func_start sub_BED0
-sub_BED0: @ 0x0800BED0
- push {r4, r5, r6, r7, lr}
- ldr r4, _0800BFF4 @ =0x0202ADA0
- ldrh r0, [r4, #0x18]
- adds r0, #2
- strh r0, [r4, #0x18]
- ldrh r0, [r4, #0x1a]
- ldrh r6, [r4, #0x1e]
- subs r0, r0, r6
- strh r0, [r4, #0x1a]
- ldr r5, _0800BFF8 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r5, r1]
- movs r1, #3
- bl __modsi3
- lsls r0, r0, #0x10
- adds r7, r5, #0
- cmp r0, #0
- bne _0800BF06
- adds r0, r6, #1
- strh r0, [r4, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800BF06
- ldr r0, _0800BFFC @ =0x0000FFFD
- strh r0, [r4, #0x1e]
-_0800BF06:
- ldrh r0, [r4, #0xc]
- adds r0, #3
- strh r0, [r4, #0xc]
- ldrh r0, [r4, #0xe]
- ldrh r5, [r4, #0x12]
- subs r0, r0, r5
- strh r0, [r4, #0xe]
- movs r2, #0
- ldrsh r0, [r7, r2]
- movs r1, #5
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0800BF34
- adds r0, r5, #1
- strh r0, [r4, #0x12]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #7
- ble _0800BF34
- ldr r0, _0800C000 @ =0x0000FFFA
- strh r0, [r4, #0x12]
-_0800BF34:
- ldrh r0, [r4]
- adds r0, #4
- strh r0, [r4]
- ldrh r0, [r4, #2]
- ldrh r2, [r4, #6]
- subs r0, r0, r2
- strh r0, [r4, #2]
- ldrh r0, [r7]
- movs r1, #3
- ands r0, r1
- cmp r0, #0
- bne _0800BF5C
- adds r0, r2, #1
- strh r0, [r4, #6]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #7
- ble _0800BF5C
- ldr r0, _0800BFFC @ =0x0000FFFD
- strh r0, [r4, #6]
-_0800BF5C:
- ldr r2, _0800C004 @ =0x0201A450
- ldrh r0, [r2]
- subs r0, #2
- strh r0, [r2]
- ldrh r3, [r2, #6]
- ldrh r1, [r2, #2]
- adds r0, r3, r1
- strh r0, [r2, #2]
- ldrh r0, [r7]
- movs r1, #3
- ands r0, r1
- cmp r0, #0
- bne _0800BF86
- adds r0, r3, #1
- strh r0, [r2, #6]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800BF86
- ldr r0, _0800C008 @ =0x0000FFFC
- strh r0, [r2, #6]
-_0800BF86:
- ldrh r0, [r4, #0x24]
- subs r0, #1
- strh r0, [r4, #0x24]
- ldrh r0, [r4, #0x26]
- subs r0, #1
- strh r0, [r4, #0x26]
- ldr r1, _0800C00C @ =0x0200B0C0
- ldrh r2, [r4, #0x18]
- movs r3, #0xbc
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x1a]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xc]
- subs r3, #6
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0xe]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4]
- subs r3, #6
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #2]
- adds r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r2, [r4, #0x24]
- adds r3, #0xa
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x26]
- ldr r2, _0800C010 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_C0D8
- ldr r0, _0800BFF8 @ =0x0202BF10
- movs r3, #0
- ldrsh r0, [r0, r3]
- cmp r0, #0xc0
- ble _0800BFEC
- ldr r1, _0800C014 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800BFEC:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BFF4: .4byte 0x0202ADA0
-_0800BFF8: .4byte 0x0202BF10
-_0800BFFC: .4byte 0x0000FFFD
-_0800C000: .4byte 0x0000FFFA
-_0800C004: .4byte 0x0201A450
-_0800C008: .4byte 0x0000FFFC
-_0800C00C: .4byte 0x0200B0C0
-_0800C010: .4byte 0x000002F6
-_0800C014: .4byte 0x0202C790
-
- thumb_func_start sub_C018
-sub_C018: @ 0x0800C018
- push {r4, r5, lr}
- ldr r4, _0800C044 @ =0x0202ADA0
- ldrh r0, [r4, #0x24]
- subs r0, #1
- strh r0, [r4, #0x24]
- ldrh r0, [r4, #0x26]
- subs r0, #1
- strh r0, [r4, #0x26]
- ldr r5, _0800C048 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r5, r1]
- movs r1, #6
- bl __modsi3
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0
- bne _0800C050
- ldr r1, _0800C04C @ =0x0201A450
- ldrh r0, [r1]
- subs r0, #3
- b _0800C05A
- .align 2, 0
-_0800C044: .4byte 0x0202ADA0
-_0800C048: .4byte 0x0202BF10
-_0800C04C: .4byte 0x0201A450
-_0800C050:
- cmp r0, #3
- bne _0800C05C
- ldr r1, _0800C0A4 @ =0x0201A450
- ldrh r0, [r1]
- adds r0, #3
-_0800C05A:
- strh r0, [r1]
-_0800C05C:
- movs r2, #0
- ldrsh r0, [r5, r2]
- cmp r0, #0xca
- ble _0800C074
- ldr r1, _0800C0A8 @ =0x0202C5E4
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- ldr r1, _0800C0AC @ =0x0202ADD8
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
-_0800C074:
- ldr r1, _0800C0B0 @ =0x0200B0C0
- ldrh r2, [r4, #0x24]
- movs r3, #0xbd
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, #0x26]
- ldr r2, _0800C0B4 @ =0x000002F6
- adds r1, r1, r2
- strh r0, [r1]
- bl sub_C0D8
- movs r3, #0
- ldrsh r0, [r5, r3]
- cmp r0, #0xde
- ble _0800C09C
- ldr r1, _0800C0B8 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800C09C:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C0A4: .4byte 0x0201A450
-_0800C0A8: .4byte 0x0202C5E4
-_0800C0AC: .4byte 0x0202ADD8
-_0800C0B0: .4byte 0x0200B0C0
-_0800C0B4: .4byte 0x000002F6
-_0800C0B8: .4byte 0x0202C790
-
- thumb_func_start sub_C0BC
-sub_C0BC: @ 0x0800C0BC
- push {lr}
- bl sub_10480
- bl sub_10544
- ldr r1, _0800C0D4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800C0D4: .4byte 0x0202C790
-
- thumb_func_start sub_C0D8
-sub_C0D8: @ 0x0800C0D8
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- ldr r0, _0800C1EC @ =0x0200B3B8
- mov r8, r0
- movs r0, #1
- mov r1, r8
- strh r0, [r1]
- ldr r0, _0800C1F0 @ =0x086A7B74
- movs r1, #1
- mov r2, r8
- bl sub_358
- mov r2, r8
- ldrh r0, [r2]
- cmp r0, #1
- bne _0800C1D4
- ldr r5, _0800C1F4 @ =0x0202C5E4
- movs r3, #0
- ldrsh r0, [r5, r3]
- ldr r4, _0800C1F8 @ =0x0202ADD8
- movs r2, #0
- ldrsh r1, [r4, r2]
- movs r2, #0
- bl sub_7C0
- ldr r1, _0800C1FC @ =0x0201A450
- ldrh r0, [r1]
- mov r3, r8
- strh r0, [r3, #2]
- ldrh r0, [r1, #2]
- strh r0, [r3, #4]
- movs r7, #0
- ldr r6, _0800C200 @ =0x03005000
- mov sl, r4
- mov r5, r8
- adds r5, #8
- ldr r4, _0800C204 @ =0xFFFFFE00
- mov sb, r4
- movs r0, #4
- rsbs r0, r0, #0
- mov ip, r0
-_0800C132:
- ldrh r2, [r5]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r0, [r5]
- lsls r0, r0, #3
- adds r3, r0, r6
- lsls r0, r7, #2
- ldr r1, _0800C208 @ =0x086A7B7C
- adds r4, r0, r1
- movs r0, #0
- ldrsh r2, [r4, r0]
- str r2, [sp]
- ldr r1, _0800C1F4 @ =0x0202C5E4
- movs r2, #0
- ldrsh r0, [r1, r2]
- ldr r2, [sp]
- adds r1, r2, #0
- muls r1, r0, r1
- cmp r1, #0
- bge _0800C16A
- adds r1, #0xff
-_0800C16A:
- asrs r1, r1, #8
- str r1, [sp]
- mov r1, r8
- movs r2, #2
- ldrsh r0, [r1, r2]
- ldr r2, [sp]
- adds r1, r2, r0
- ldr r2, _0800C20C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r0, [r5]
- lsls r0, r0, #3
- adds r2, r0, r6
- movs r3, #2
- ldrsh r1, [r4, r3]
- mov r4, sl
- movs r3, #0
- ldrsh r0, [r4, r3]
- muls r0, r1, r0
- cmp r0, #0
- bge _0800C1A0
- adds r0, #0xff
-_0800C1A0:
- asrs r0, r0, #8
- mov r4, r8
- ldrb r4, [r4, #4]
- adds r0, r0, r4
- strb r0, [r2]
- ldrh r2, [r5]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #1]
- mov r0, ip
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r1, [r5]
- lsls r1, r1, #3
- adds r1, r1, r6
- ldrb r2, [r1, #3]
- movs r0, #0xf
- rsbs r0, r0, #0
- ands r0, r2
- strb r0, [r1, #3]
- adds r5, #8
- adds r7, #1
- cmp r7, #3
- ble _0800C132
-_0800C1D4:
- movs r0, #0
- mov r1, r8
- strh r0, [r1]
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C1EC: .4byte 0x0200B3B8
-_0800C1F0: .4byte 0x086A7B74
-_0800C1F4: .4byte 0x0202C5E4
-_0800C1F8: .4byte 0x0202ADD8
-_0800C1FC: .4byte 0x0201A450
-_0800C200: .4byte 0x03005000
-_0800C204: .4byte 0xFFFFFE00
-_0800C208: .4byte 0x086A7B7C
-_0800C20C: .4byte 0x000001FF
-
- thumb_func_start sub_C210
-sub_C210: @ 0x0800C210
- push {lr}
- bl sub_518
- ldr r1, _0800C224 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800C224: .4byte 0x0202C790
-
- thumb_func_start sub_C228
-sub_C228: @ 0x0800C228
- push {r4, lr}
- movs r3, #0x80
- lsls r3, r3, #0x13
- movs r1, #0x80
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r3]
- ldr r1, _0800C2B4 @ =0x0400000C
- movs r0, #7
- strh r0, [r1]
- ldrh r0, [r3]
- movs r2, #0x80
- lsls r2, r2, #3
- adds r1, r2, #0
- orrs r0, r1
- strh r0, [r3]
- ldr r0, _0800C2B8 @ =0x040000D4
- ldr r1, _0800C2BC @ =0x0810EC20
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800C2C0 @ =0x80000400
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800C2C4 @ =0x0810F420
- str r1, [r0]
- ldr r1, _0800C2C8 @ =0x06004000
- str r1, [r0, #4]
- ldr r1, _0800C2CC @ =0x80001A00
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r4, _0800C2D0 @ =0x0810EA20
- str r4, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r2, _0800C2D4 @ =0x800000A0
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800C2D8 @ =0x08112840
- str r1, [r0]
- ldr r1, _0800C2DC @ =0x06010000
- str r1, [r0, #4]
- ldr r1, _0800C2E0 @ =0x80001600
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- str r4, [r0]
- ldr r1, _0800C2E4 @ =0x05000200
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r0, [r0, #8]
- ldr r1, _0800C2E8 @ =0x0200B0C0
- ldrh r0, [r3]
- strh r0, [r1, #0x16]
- bl sub_C2F0
- bl sub_C4F0
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800C2EC @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C2B4: .4byte 0x0400000C
-_0800C2B8: .4byte 0x040000D4
-_0800C2BC: .4byte 0x0810EC20
-_0800C2C0: .4byte 0x80000400
-_0800C2C4: .4byte 0x0810F420
-_0800C2C8: .4byte 0x06004000
-_0800C2CC: .4byte 0x80001A00
-_0800C2D0: .4byte 0x0810EA20
-_0800C2D4: .4byte 0x800000A0
-_0800C2D8: .4byte 0x08112840
-_0800C2DC: .4byte 0x06010000
-_0800C2E0: .4byte 0x80001600
-_0800C2E4: .4byte 0x05000200
-_0800C2E8: .4byte 0x0200B0C0
-_0800C2EC: .4byte 0x0202C790
-
- thumb_func_start sub_C2F0
-sub_C2F0: @ 0x0800C2F0
- push {r4, r5, r6, lr}
- ldr r0, _0800C380 @ =0x0201A450
- mov ip, r0
- movs r4, #0
- movs r1, #0
- movs r5, #0x78
- strh r5, [r0, #0x10]
- movs r2, #0x50
- strh r2, [r0, #0x12]
- movs r0, #4
- mov r3, ip
- strh r0, [r3, #0x14]
- strh r0, [r3, #0x16]
- strh r1, [r3, #0x18]
- strh r5, [r3]
- strh r2, [r3, #2]
- strb r4, [r3, #0xc]
- movs r2, #0x80
- strh r2, [r3, #0x20]
- movs r3, #0x58
- mov r0, ip
- strh r3, [r0, #0x22]
- strh r1, [r0, #0x28]
- strh r1, [r0, #0x2a]
- adds r0, #0x2c
- strb r4, [r0]
- mov r0, ip
- strh r2, [r0, #0x30]
- movs r6, #0x48
- strh r6, [r0, #0x32]
- strh r1, [r0, #0x38]
- strh r1, [r0, #0x3a]
- adds r0, #0x3c
- strb r4, [r0]
- adds r0, #4
- movs r2, #0x70
- strh r2, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #6
- strh r1, [r0]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strb r4, [r0]
- adds r0, #4
- strh r5, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #6
- strh r1, [r0]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strb r4, [r0]
- adds r0, #4
- strh r2, [r0]
- adds r0, #2
- strh r6, [r0]
- adds r0, #6
- strh r1, [r0]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strb r4, [r0]
- ldr r0, _0800C384 @ =0x0202BF10
- strh r1, [r0]
- ldr r0, _0800C388 @ =0x0202A578
- strh r1, [r0]
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C380: .4byte 0x0201A450
-_0800C384: .4byte 0x0202BF10
-_0800C388: .4byte 0x0202A578
-
- thumb_func_start sub_C38C
-sub_C38C: @ 0x0800C38C
- push {lr}
- bl sub_C4F0
- ldr r0, _0800C3C4 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #1
- ble _0800C3C0
- ldr r2, _0800C3C8 @ =0x0201A450
- movs r1, #1
- strb r1, [r2, #0xc]
- adds r0, r2, #0
- adds r0, #0x2c
- strb r1, [r0]
- adds r0, #0x10
- strb r1, [r0]
- adds r0, #0x10
- strb r1, [r0]
- adds r0, #0x10
- strb r1, [r0]
- adds r0, #0x10
- strb r1, [r0]
- ldr r1, _0800C3CC @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800C3C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0800C3C4: .4byte 0x0202BF10
-_0800C3C8: .4byte 0x0201A450
-_0800C3CC: .4byte 0x0202C790
-
- thumb_func_start sub_C3D0
-sub_C3D0: @ 0x0800C3D0
- push {r4, lr}
- ldr r3, _0800C408 @ =0x0201A450
- ldrh r0, [r3]
- subs r0, #9
- strh r0, [r3]
- ldrh r0, [r3, #2]
- subs r0, #6
- strh r0, [r3, #2]
- ldrh r0, [r3, #0x18]
- adds r0, #1
- strh r0, [r3, #0x18]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #3
- bgt _0800C40C
- ldrh r2, [r3, #0x14]
- ldrh r1, [r3, #0x10]
- adds r0, r2, r1
- strh r0, [r3, #0x10]
- ldrh r1, [r3, #0x16]
- ldrh r4, [r3, #0x12]
- adds r0, r1, r4
- strh r0, [r3, #0x12]
- subs r2, #1
- strh r2, [r3, #0x14]
- subs r1, #1
- strh r1, [r3, #0x16]
- b _0800C424
- .align 2, 0
-_0800C408: .4byte 0x0201A450
-_0800C40C:
- ldr r0, _0800C444 @ =0x0202BF10
- ldrh r0, [r0]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800C424
- ldrh r0, [r3, #0x10]
- adds r0, #1
- strh r0, [r3, #0x10]
- ldrh r0, [r3, #0x12]
- adds r0, #1
- strh r0, [r3, #0x12]
-_0800C424:
- bl sub_C4F0
- ldr r0, _0800C448 @ =0x0201A450
- movs r2, #2
- ldrsh r1, [r0, r2]
- movs r0, #0x20
- rsbs r0, r0, #0
- cmp r1, r0
- bge _0800C43E
- ldr r1, _0800C44C @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800C43E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C444: .4byte 0x0202BF10
-_0800C448: .4byte 0x0201A450
-_0800C44C: .4byte 0x0202C790
-
- thumb_func_start sub_C450
-sub_C450: @ 0x0800C450
- push {lr}
- bl sub_C4F0
- ldr r2, _0800C484 @ =0x0202BF10
- ldrh r0, [r2]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800C470
- ldr r0, _0800C488 @ =0x0201A450
- ldrh r1, [r0, #0x10]
- adds r1, #1
- strh r1, [r0, #0x10]
- ldrh r1, [r0, #0x12]
- adds r1, #1
- strh r1, [r0, #0x12]
-_0800C470:
- movs r1, #0
- ldrsh r0, [r2, r1]
- cmp r0, #0x14
- ble _0800C480
- ldr r1, _0800C48C @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #3
- strb r0, [r1]
-_0800C480:
- pop {r0}
- bx r0
- .align 2, 0
-_0800C484: .4byte 0x0202BF10
-_0800C488: .4byte 0x0201A450
-_0800C48C: .4byte 0x0202C790
-
- thumb_func_start nullsub_12
-nullsub_12: @ 0x0800C490
- bx lr
-
- thumb_func_start nullsub_13
-nullsub_13: @ 0x0800C494
- bx lr
-
- thumb_func_start sub_C498
-sub_C498: @ 0x0800C498
- push {lr}
- sub sp, #8
- bl sub_10480
- bl sub_578
- movs r2, #0
- str r2, [sp]
- ldr r1, _0800C4DC @ =0x040000D4
- mov r0, sp
- str r0, [r1]
- movs r0, #0xe0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800C4E0 @ =0x85000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- add r0, sp, #4
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _0800C4E4 @ =0x06010000
- str r0, [r1, #4]
- ldr r0, _0800C4E8 @ =0x81002800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- bl sub_10544
- ldr r1, _0800C4EC @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- add sp, #8
- pop {r0}
- bx r0
- .align 2, 0
-_0800C4DC: .4byte 0x040000D4
-_0800C4E0: .4byte 0x85000100
-_0800C4E4: .4byte 0x06010000
-_0800C4E8: .4byte 0x81002800
-_0800C4EC: .4byte 0x0202C790
-
- thumb_func_start sub_C4F0
-sub_C4F0: @ 0x0800C4F0
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x20
- ldr r0, _0800C64C @ =0x0200B3B8
- mov r8, r0
- ldr r6, _0800C650 @ =0x0201A450
- movs r1, #0x28
- ldrsh r0, [r6, r1]
- movs r2, #0xe6
- lsls r2, r2, #2
- adds r3, r0, #0
- muls r3, r2, r3
- movs r0, #0xb8
- lsls r0, r0, #1
- add r0, r8
- adds r3, r3, r0
- str r3, [sp]
- movs r7, #0x38
- ldrsh r0, [r6, r7]
- muls r0, r2, r0
- movs r1, #0x8a
- lsls r1, r1, #2
- add r1, r8
- adds r0, r0, r1
- str r0, [sp, #4]
- adds r0, r6, #0
- adds r0, #0x48
- movs r1, #0
- ldrsh r0, [r0, r1]
- muls r0, r2, r0
- movs r1, #0xb8
- lsls r1, r1, #2
- add r1, r8
- adds r0, r0, r1
- str r0, [sp, #8]
- adds r0, r6, #0
- adds r0, #0x58
- movs r7, #0
- ldrsh r0, [r0, r7]
- muls r0, r2, r0
- adds r1, r2, #0
- add r1, r8
- adds r0, r0, r1
- str r0, [sp, #0xc]
- adds r0, r6, #0
- adds r0, #0x68
- movs r1, #0
- ldrsh r0, [r0, r1]
- muls r0, r2, r0
- movs r1, #0x8a
- lsls r1, r1, #3
- add r1, r8
- adds r0, r0, r1
- str r0, [sp, #0x10]
- movs r0, #0xc
- ldrsb r0, [r6, r0]
- mov r2, r8
- strh r0, [r2]
- movs r0, #1
- ldr r7, _0800C654 @ =0x0200B470
- strh r0, [r7]
- adds r0, r6, #0
- adds r0, #0x2c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r3]
- ldr r1, [sp, #4]
- adds r0, r6, #0
- adds r0, #0x3c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r1, [sp, #8]
- adds r0, r6, #0
- adds r0, #0x4c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r1, [sp, #0xc]
- adds r0, r6, #0
- adds r0, #0x5c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r1, [sp, #0x10]
- adds r0, r6, #0
- adds r0, #0x6c
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r1]
- ldr r0, _0800C658 @ =0x086A7C24
- movs r1, #0x11
- bl sub_358
- mov r1, r8
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800C614
- ldrh r0, [r6]
- strh r0, [r1, #2]
- ldrh r0, [r6, #2]
- strh r0, [r1, #4]
- mov r5, r8
- adds r5, #8
- ldr r4, _0800C65C @ =0x03005000
- ldrh r1, [r1, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r2, [r1, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r2
- strb r0, [r1, #5]
- mov r3, r8
- ldrh r2, [r3, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r7, #2
- ldrsh r1, [r5, r7]
- movs r7, #2
- ldrsh r0, [r3, r7]
- adds r1, r1, r0
- ldr r3, _0800C660 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _0800C664 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- mov r7, r8
- ldrh r1, [r7, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r7, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
-_0800C614:
- movs r5, #0
- str r6, [sp, #0x14]
-_0800C618:
- lsls r1, r5, #2
- mov r2, sp
- adds r0, r2, r1
- ldr r0, [r0]
- ldrh r0, [r0]
- adds r4, r1, #0
- adds r3, r5, #1
- str r3, [sp, #0x18]
- cmp r0, #1
- beq _0800C62E
- b _0800C75A
-_0800C62E:
- ldr r1, _0800C668 @ =0x0202A578
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #5
- ble _0800C670
- lsls r1, r5, #3
- ldr r6, _0800C66C @ =0x086A7C68
- adds r0, r1, r6
- ldrb r2, [r0, #2]
- ldrb r0, [r0, #3]
- b _0800C67A
- .align 2, 0
-_0800C64C: .4byte 0x0200B3B8
-_0800C650: .4byte 0x0201A450
-_0800C654: .4byte 0x0200B470
-_0800C658: .4byte 0x086A7C24
-_0800C65C: .4byte 0x03005000
-_0800C660: .4byte 0x000001FF
-_0800C664: .4byte 0xFFFFFE00
-_0800C668: .4byte 0x0202A578
-_0800C66C: .4byte 0x086A7C68
-_0800C670:
- lsls r1, r5, #3
- ldr r7, _0800C7F8 @ =0x086A7C68
- adds r0, r1, r7
- ldrb r2, [r0]
- ldrb r0, [r0, #1]
-_0800C67A:
- adds r7, r1, #0
- adds r3, r5, #2
- lsls r1, r3, #4
- ldr r6, [sp, #0x14]
- adds r1, r1, r6
- lsls r2, r2, #0x18
- asrs r2, r2, #0x18
- ldrh r6, [r1]
- adds r2, r2, r6
- strh r2, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r6, [r1, #2]
- adds r0, r0, r6
- strh r0, [r1, #2]
- add r4, sp
- ldr r0, [r4]
- strh r2, [r0, #2]
- ldr r2, [r4]
- ldrh r0, [r1, #2]
- strh r0, [r2, #4]
- movs r0, #8
- ldrsh r1, [r1, r0]
- lsls r0, r1, #2
- adds r0, r0, r1
- adds r0, #2
- adds r0, r5, r0
- lsls r0, r0, #2
- ldr r1, _0800C7FC @ =0x086A7C24
- adds r0, r0, r1
- ldr r0, [r0]
- mov sb, r0
- movs r6, #0
- str r3, [sp, #0x1c]
- adds r5, #1
- str r5, [sp, #0x18]
- ldrh r2, [r0]
- cmp r6, r2
- bge _0800C732
- ldr r3, _0800C800 @ =0x03005000
- mov ip, r3
- ldr r0, _0800C7F8 @ =0x086A7C68
- adds r7, r7, r0
- mov sl, r7
- movs r7, #8
-_0800C6D4:
- ldr r0, [r4]
- adds r5, r0, r7
- ldrh r2, [r5]
- lsls r2, r2, #3
- add r2, ip
- mov r0, sl
- ldrb r1, [r0, #5]
- movs r3, #3
- ands r1, r3
- lsls r1, r1, #2
- ldrb r3, [r2, #5]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r2, [r5]
- lsls r2, r2, #3
- add r2, ip
- movs r0, #2
- ldrsh r1, [r5, r0]
- ldr r0, [r4]
- movs r3, #2
- ldrsh r0, [r0, r3]
- adds r1, r1, r0
- ldr r3, _0800C804 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _0800C808 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r5]
- lsls r1, r1, #3
- add r1, ip
- ldr r0, [r4]
- ldrb r0, [r0, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
- adds r7, #8
- adds r6, #1
- mov r0, sb
- ldrh r0, [r0]
- cmp r6, r0
- blt _0800C6D4
-_0800C732:
- ldr r1, [sp, #0x1c]
- lsls r0, r1, #4
- ldr r2, [sp, #0x14]
- adds r3, r0, r2
- ldrh r0, [r3, #0xa]
- adds r0, #1
- movs r1, #0
- strh r0, [r3, #0xa]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #4
- ble _0800C75A
- strh r1, [r3, #0xa]
- ldrh r1, [r3, #8]
- movs r6, #8
- ldrsh r0, [r3, r6]
- cmp r0, #1
- bgt _0800C75A
- adds r0, r1, #1
- strh r0, [r3, #8]
-_0800C75A:
- ldr r5, [sp, #0x18]
- cmp r5, #4
- bgt _0800C762
- b _0800C618
-_0800C762:
- ldr r7, _0800C80C @ =0x0200B470
- ldrh r0, [r7]
- cmp r0, #1
- bne _0800C7C8
- ldr r0, _0800C810 @ =0x0201A450
- ldrh r1, [r0, #0x10]
- strh r1, [r7, #2]
- ldrh r0, [r0, #0x12]
- strh r0, [r7, #4]
- ldr r5, _0800C800 @ =0x03005000
- ldr r0, _0800C808 @ =0xFFFFFE00
- mov sb, r0
- adds r4, r7, #0
- adds r4, #8
- movs r6, #3
-_0800C780:
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r5
- ldrb r0, [r2, #5]
- movs r1, #0xc
- orrs r0, r1
- strb r0, [r2, #5]
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r2, #2
- ldrsh r1, [r4, r2]
- ldr r7, _0800C80C @ =0x0200B470
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r7, _0800C804 @ =0x000001FF
- adds r0, r7, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldr r2, _0800C80C @ =0x0200B470
- ldrb r0, [r2, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _0800C780
-_0800C7C8:
- movs r0, #0
- ldr r6, _0800C80C @ =0x0200B470
- strh r0, [r6]
- mov r7, r8
- strh r0, [r7]
- ldr r1, [sp]
- strh r0, [r1]
- ldr r1, [sp, #4]
- strh r0, [r1]
- ldr r1, [sp, #8]
- strh r0, [r1]
- ldr r1, [sp, #0xc]
- strh r0, [r1]
- ldr r1, [sp, #0x10]
- strh r0, [r1]
- add sp, #0x20
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C7F8: .4byte 0x086A7C68
-_0800C7FC: .4byte 0x086A7C24
-_0800C800: .4byte 0x03005000
-_0800C804: .4byte 0x000001FF
-_0800C808: .4byte 0xFFFFFE00
-_0800C80C: .4byte 0x0200B470
-_0800C810: .4byte 0x0201A450
-
- thumb_func_start sub_C814
-sub_C814: @ 0x0800C814
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- bl sub_518
- movs r0, #0
- str r0, [sp]
- ldr r1, _0800C924 @ =0x040000D4
- mov r0, sp
- str r0, [r1]
- movs r0, #0xe0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800C928 @ =0x85000100
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- movs r5, #0
- ldr r6, _0800C92C @ =0x0200B0C0
- movs r1, #0xb8
- mov sb, r1
- movs r4, #0
- movs r3, #0xc0
- lsls r3, r3, #2
- mov r8, r3
- ldr r7, _0800C930 @ =0x00000302
- mov ip, r7
- movs r0, #0xc1
- lsls r0, r0, #2
- mov sl, r0
-_0800C854:
- mov r2, sb
- muls r2, r5, r2
- adds r1, r2, r6
- movs r3, #0xbe
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r4, [r0]
- ldr r7, _0800C934 @ =0x000002FA
- adds r0, r1, r7
- strh r4, [r0]
- movs r0, #0xbf
- lsls r0, r0, #2
- adds r1, r1, r0
- strh r4, [r1]
- movs r3, #0
-_0800C872:
- lsls r0, r3, #3
- adds r0, r0, r2
- adds r0, r0, r6
- mov r7, r8
- adds r1, r0, r7
- strh r4, [r1]
- mov r7, ip
- adds r1, r0, r7
- strh r4, [r1]
- add r0, sl
- strh r4, [r0]
- adds r0, r3, #1
- lsls r0, r0, #0x10
- lsrs r3, r0, #0x10
- cmp r3, #0x15
- bls _0800C872
- adds r0, r5, #1
- lsls r0, r0, #0x10
- lsrs r5, r0, #0x10
- cmp r5, #0x13
- bls _0800C854
- movs r5, #0
- mov sl, r5
- movs r0, #0xd
- rsbs r0, r0, #0
- mov ip, r0
- movs r1, #0x11
- rsbs r1, r1, #0
- mov sb, r1
- movs r3, #0x21
- rsbs r3, r3, #0
- mov r8, r3
- movs r4, #0x3f
- ldr r6, _0800C938 @ =0xFFFFFE00
- adds r3, #0x12
-_0800C8B8:
- lsls r2, r5, #3
- ldr r7, _0800C93C @ =0x03005000
- adds r2, r2, r7
- movs r0, #0xf4
- strb r0, [r2]
- movs r0, #0
- strb r0, [r2, #1]
- ldrh r1, [r2, #2]
- adds r0, r6, #0
- ands r0, r1
- movs r7, #0xfa
- lsls r7, r7, #1
- adds r1, r7, #0
- orrs r0, r1
- strh r0, [r2, #2]
- ldrb r1, [r2, #3]
- adds r0, r3, #0
- ands r0, r1
- mov r1, sb
- ands r0, r1
- mov r7, r8
- ands r0, r7
- ands r0, r4
- strb r0, [r2, #3]
- ldrh r1, [r2, #4]
- ldr r0, _0800C940 @ =0xFFFFFC00
- ands r0, r1
- strh r0, [r2, #4]
- ldrb r1, [r2, #5]
- mov r0, ip
- ands r0, r1
- movs r1, #0xf
- ands r0, r1
- strb r0, [r2, #5]
- mov r0, sl
- strh r0, [r2, #6]
- adds r0, r5, #1
- lsls r0, r0, #0x10
- lsrs r5, r0, #0x10
- cmp r5, #0x13
- bls _0800C8B8
- ldr r1, _0800C944 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C924: .4byte 0x040000D4
-_0800C928: .4byte 0x85000100
-_0800C92C: .4byte 0x0200B0C0
-_0800C930: .4byte 0x00000302
-_0800C934: .4byte 0x000002FA
-_0800C938: .4byte 0xFFFFFE00
-_0800C93C: .4byte 0x03005000
-_0800C940: .4byte 0xFFFFFC00
-_0800C944: .4byte 0x0202C790
-
- thumb_func_start sub_C948
-sub_C948: @ 0x0800C948
- push {r4, lr}
- movs r3, #0x80
- lsls r3, r3, #0x13
- movs r1, #0x80
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r3]
- ldr r1, _0800C9E4 @ =0x0400000E
- movs r0, #7
- strh r0, [r1]
- ldrh r0, [r3]
- movs r2, #0x80
- lsls r2, r2, #4
- adds r1, r2, #0
- orrs r0, r1
- strh r0, [r3]
- ldr r0, _0800C9E8 @ =0x040000D4
- ldr r1, _0800C9EC @ =0x08115A60
- str r1, [r0]
- movs r1, #0xc0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r1, _0800C9F0 @ =0x80000400
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800C9F4 @ =0x08116260
- str r1, [r0]
- ldr r1, _0800C9F8 @ =0x06004000
- str r1, [r0, #4]
- ldr r1, _0800C9FC @ =0x80001200
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- ldr r4, _0800CA00 @ =0x08115860
- str r4, [r0]
- movs r1, #0xa0
- lsls r1, r1, #0x13
- str r1, [r0, #4]
- ldr r2, _0800CA04 @ =0x80000020
- str r2, [r0, #8]
- ldr r1, [r0, #8]
- ldr r1, _0800CA08 @ =0x08118680
- str r1, [r0]
- ldr r1, _0800CA0C @ =0x06010000
- str r1, [r0, #4]
- ldr r1, _0800CA10 @ =0x80003800
- str r1, [r0, #8]
- ldr r1, [r0, #8]
- str r4, [r0]
- ldr r1, _0800CA14 @ =0x05000200
- str r1, [r0, #4]
- str r2, [r0, #8]
- ldr r0, [r0, #8]
- ldr r4, _0800CA18 @ =0x0200B0C0
- ldrh r0, [r3]
- strh r0, [r4, #0x16]
- bl sub_CA28
- ldr r2, _0800CA1C @ =0x0202ADA0
- ldrh r1, [r2]
- movs r3, #0xbd
- lsls r3, r3, #2
- adds r0, r4, r3
- strh r1, [r0]
- ldrh r0, [r2, #2]
- ldr r1, _0800CA20 @ =0x000002F6
- adds r4, r4, r1
- strh r0, [r4]
- bl sub_CBC
- bl sub_10424
- ldr r1, _0800CA24 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C9E4: .4byte 0x0400000E
-_0800C9E8: .4byte 0x040000D4
-_0800C9EC: .4byte 0x08115A60
-_0800C9F0: .4byte 0x80000400
-_0800C9F4: .4byte 0x08116260
-_0800C9F8: .4byte 0x06004000
-_0800C9FC: .4byte 0x80001200
-_0800CA00: .4byte 0x08115860
-_0800CA04: .4byte 0x80000020
-_0800CA08: .4byte 0x08118680
-_0800CA0C: .4byte 0x06010000
-_0800CA10: .4byte 0x80003800
-_0800CA14: .4byte 0x05000200
-_0800CA18: .4byte 0x0200B0C0
-_0800CA1C: .4byte 0x0202ADA0
-_0800CA20: .4byte 0x000002F6
-_0800CA24: .4byte 0x0202C790
-
- thumb_func_start sub_CA28
-sub_CA28: @ 0x0800CA28
- push {r4, lr}
- ldr r0, _0800CA80 @ =0x0202ADA0
- movs r4, #0
- movs r3, #0
- strh r3, [r0]
- strh r3, [r0, #2]
- ldr r1, _0800CA84 @ =0x0201A450
- movs r0, #0xf0
- strh r0, [r1]
- movs r0, #0x1e
- strh r0, [r1, #2]
- movs r0, #0xe
- strh r0, [r1, #4]
- movs r2, #1
- movs r0, #1
- strh r0, [r1, #8]
- strb r2, [r1, #0xc]
- movs r0, #0x84
- lsls r0, r0, #1
- strh r0, [r1, #0x10]
- movs r0, #0x50
- strh r0, [r1, #0x12]
- movs r0, #6
- strh r0, [r1, #0x14]
- strb r4, [r1, #0x1c]
- ldr r0, _0800CA88 @ =0x0202BF10
- strh r3, [r0]
- ldr r0, _0800CA8C @ =0x0202A578
- strh r3, [r0]
- ldr r0, _0800CA90 @ =0x0202C5E4
- movs r2, #0x80
- lsls r2, r2, #1
- adds r1, r2, #0
- strh r1, [r0]
- ldr r0, _0800CA94 @ =0x0202ADD8
- strh r1, [r0]
- ldr r0, _0800CA98 @ =0x0202BEDC
- strb r4, [r0]
- ldr r0, _0800CA9C @ =0x0202A56C
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CA80: .4byte 0x0202ADA0
-_0800CA84: .4byte 0x0201A450
-_0800CA88: .4byte 0x0202BF10
-_0800CA8C: .4byte 0x0202A578
-_0800CA90: .4byte 0x0202C5E4
-_0800CA94: .4byte 0x0202ADD8
-_0800CA98: .4byte 0x0202BEDC
-_0800CA9C: .4byte 0x0202A56C
-
- thumb_func_start sub_CAA0
-sub_CAA0: @ 0x0800CAA0
- push {r4, r5, lr}
- ldr r4, _0800CB48 @ =0x0202ADA0
- ldrh r0, [r4]
- subs r0, #0x24
- strh r0, [r4]
- ldr r5, _0800CB4C @ =0x0201A450
- ldr r1, _0800CB50 @ =0x086A7D4C
- ldr r2, _0800CB54 @ =0x0202A578
- movs r3, #0
- ldrsh r0, [r2, r3]
- adds r0, r0, r1
- movs r1, #0
- ldrsb r1, [r0, r1]
- ldrh r0, [r5]
- subs r0, r0, r1
- strh r0, [r5]
- ldrh r0, [r2]
- adds r0, #1
- strh r0, [r2]
- ldr r0, _0800CB58 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r0, r1]
- movs r1, #5
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0800CAEA
- ldrh r0, [r5, #8]
- adds r0, #1
- strh r0, [r5, #8]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xa
- ble _0800CAEA
- movs r0, #1
- strh r0, [r5, #8]
-_0800CAEA:
- ldr r0, _0800CB5C @ =0x0200B0C0
- ldrh r1, [r4]
- movs r2, #0xbd
- lsls r2, r2, #2
- adds r0, r0, r2
- strh r1, [r0]
- bl sub_CD18
- ldr r2, _0800CB58 @ =0x0202BF10
- movs r3, #0
- ldrsh r0, [r2, r3]
- cmp r0, #0x28
- ble _0800CB26
- ldr r1, _0800CB60 @ =0x0202C5E4
- ldrh r0, [r1]
- adds r0, #6
- strh r0, [r1]
- ldr r1, _0800CB64 @ =0x0202ADD8
- ldrh r0, [r1]
- adds r0, #6
- strh r0, [r1]
- ldrh r0, [r2]
- movs r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800CB26
- ldr r1, _0800CB4C @ =0x0201A450
- ldrh r0, [r1, #2]
- adds r0, #1
- strh r0, [r1, #2]
-_0800CB26:
- ldr r0, _0800CB58 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0x5a
- ble _0800CB42
- ldr r1, _0800CB4C @ =0x0201A450
- movs r0, #0
- strb r0, [r1, #0xc]
- movs r0, #1
- strb r0, [r1, #0x1c]
- ldr r1, _0800CB68 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800CB42:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CB48: .4byte 0x0202ADA0
-_0800CB4C: .4byte 0x0201A450
-_0800CB50: .4byte 0x086A7D4C
-_0800CB54: .4byte 0x0202A578
-_0800CB58: .4byte 0x0202BF10
-_0800CB5C: .4byte 0x0200B0C0
-_0800CB60: .4byte 0x0202C5E4
-_0800CB64: .4byte 0x0202ADD8
-_0800CB68: .4byte 0x0202C790
-
- thumb_func_start sub_CB6C
-sub_CB6C: @ 0x0800CB6C
- ldr r0, _0800CB94 @ =0x0202ADA0
- ldrh r1, [r0]
- subs r1, #0x24
- strh r1, [r0]
- ldr r0, _0800CB98 @ =0x0200B0C0
- movs r2, #0xbd
- lsls r2, r2, #2
- adds r0, r0, r2
- strh r1, [r0]
- ldr r0, _0800CB9C @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0x78
- ble _0800CB90
- ldr r1, _0800CBA0 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800CB90:
- bx lr
- .align 2, 0
-_0800CB94: .4byte 0x0202ADA0
-_0800CB98: .4byte 0x0200B0C0
-_0800CB9C: .4byte 0x0202BF10
-_0800CBA0: .4byte 0x0202C790
-
- thumb_func_start sub_CBA4
-sub_CBA4: @ 0x0800CBA4
- push {r4, lr}
- ldr r0, _0800CBBC @ =0x0202BF10
- movs r2, #0
- ldrsh r1, [r0, r2]
- adds r2, r0, #0
- cmp r1, #0x86
- bgt _0800CBC4
- ldr r1, _0800CBC0 @ =0x0201A450
- ldrh r0, [r1, #0x10]
- subs r0, #0xc
- b _0800CBCA
- .align 2, 0
-_0800CBBC: .4byte 0x0202BF10
-_0800CBC0: .4byte 0x0201A450
-_0800CBC4:
- ldr r1, _0800CC68 @ =0x0201A450
- ldrh r0, [r1, #0x10]
- subs r0, #1
-_0800CBCA:
- strh r0, [r1, #0x10]
- ldrh r0, [r2]
- movs r1, #1
- ands r0, r1
- ldr r2, _0800CC6C @ =0x0202BEDC
- cmp r0, #0
- bne _0800CBEA
- ldrb r0, [r2]
- adds r0, #3
- strb r0, [r2]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0x20
- ble _0800CBEA
- movs r0, #0x20
- strb r0, [r2]
-_0800CBEA:
- ldr r4, _0800CC70 @ =0x08115860
- ldr r1, _0800CC74 @ =0x05000200
- movs r3, #0
- ldrsb r3, [r2, r3]
- lsls r3, r3, #0x10
- lsrs r3, r3, #0x10
- adds r0, r4, #0
- movs r2, #0x20
- bl sub_102A8
- ldr r0, _0800CC78 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0x88
- ble _0800CC30
- ldr r2, _0800CC7C @ =0x0202A56C
- ldrb r0, [r2]
- adds r0, #2
- strb r0, [r2]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0x20
- ble _0800CC1C
- movs r0, #0x20
- strb r0, [r2]
-_0800CC1C:
- movs r1, #0xa0
- lsls r1, r1, #0x13
- movs r3, #0
- ldrsb r3, [r2, r3]
- lsls r3, r3, #0x10
- lsrs r3, r3, #0x10
- adds r0, r4, #0
- movs r2, #0x40
- bl sub_102A8
-_0800CC30:
- ldr r0, _0800CC80 @ =0x0202ADA0
- ldrh r1, [r0]
- subs r1, #0x24
- strh r1, [r0]
- ldr r0, _0800CC84 @ =0x0200B0C0
- movs r2, #0xbd
- lsls r2, r2, #2
- adds r0, r0, r2
- strh r1, [r0]
- bl sub_CD18
- ldr r1, _0800CC78 @ =0x0202BF10
- movs r2, #0
- ldrsh r0, [r1, r2]
- cmp r0, #0x98
- ble _0800CC62
- movs r0, #0
- strh r0, [r1]
- ldr r1, _0800CC88 @ =0x0202A578
- movs r0, #1
- strh r0, [r1]
- ldr r1, _0800CC8C @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #2
- strb r0, [r1]
-_0800CC62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CC68: .4byte 0x0201A450
-_0800CC6C: .4byte 0x0202BEDC
-_0800CC70: .4byte 0x08115860
-_0800CC74: .4byte 0x05000200
-_0800CC78: .4byte 0x0202BF10
-_0800CC7C: .4byte 0x0202A56C
-_0800CC80: .4byte 0x0202ADA0
-_0800CC84: .4byte 0x0200B0C0
-_0800CC88: .4byte 0x0202A578
-_0800CC8C: .4byte 0x0202C790
-
- thumb_func_start nullsub_14
-nullsub_14: @ 0x0800CC90
- bx lr
-
- thumb_func_start sub_CC94
-sub_CC94: @ 0x0800CC94
- push {r4, r5, r6, lr}
- ldr r6, _0800CCE4 @ =0x0202BF10
- movs r1, #0
- ldrsh r0, [r6, r1]
- movs r1, #0xa
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0800CCCE
- ldr r1, _0800CCE8 @ =0x0202A578
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- ldr r4, _0800CCEC @ =0x02032EE0
- ldr r5, _0800CCF0 @ =0x0000FFFF
- movs r0, #0
- ldrsh r1, [r1, r0]
- movs r0, #0x80
- lsls r0, r0, #1
- bl __divsi3
- adds r2, r0, #0
- lsls r2, r2, #0x10
- lsrs r2, r2, #0x10
- adds r0, r4, #0
- adds r1, r5, #0
- bl m4aMPlayVolumeControl
-_0800CCCE:
- movs r1, #0
- ldrsh r0, [r6, r1]
- cmp r0, #0x2d
- ble _0800CCDE
- ldr r1, _0800CCF4 @ =0x0202C790
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
-_0800CCDE:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CCE4: .4byte 0x0202BF10
-_0800CCE8: .4byte 0x0202A578
-_0800CCEC: .4byte 0x02032EE0
-_0800CCF0: .4byte 0x0000FFFF
-_0800CCF4: .4byte 0x0202C790
-
- thumb_func_start sub_CCF8
-sub_CCF8: @ 0x0800CCF8
- push {lr}
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _0800CD14 @ =0x0200B0C0
- ldrb r0, [r1, #3]
- adds r0, #1
- strb r0, [r1, #3]
- pop {r0}
- bx r0
- .align 2, 0
-_0800CD14: .4byte 0x0200B0C0
-
- thumb_func_start sub_CD18
-sub_CD18: @ 0x0800CD18
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- ldr r7, _0800CE28 @ =0x0201A450
- movs r0, #8
- ldrsh r1, [r7, r0]
- movs r0, #0xb8
- muls r1, r0, r1
- ldr r0, _0800CE2C @ =0x0200B3B8
- adds r6, r1, r0
- mov r8, r0
- movs r0, #0xc
- ldrsb r0, [r7, r0]
- strh r0, [r6]
- movs r0, #0x1c
- ldrsb r0, [r7, r0]
- mov r1, r8
- strh r0, [r1]
- ldr r0, _0800CE30 @ =0x086A7D20
- movs r1, #0xb
- mov r2, r8
- bl sub_358
- ldrh r0, [r6]
- cmp r0, #1
- bne _0800CDBA
- ldr r0, _0800CE34 @ =0x0202C5E4
- movs r2, #0
- ldrsh r0, [r0, r2]
- ldr r1, _0800CE38 @ =0x0202ADD8
- movs r3, #0
- ldrsh r1, [r1, r3]
- movs r2, #0
- bl sub_7C0
- ldrh r0, [r7]
- strh r0, [r6, #2]
- ldrh r0, [r7, #2]
- strh r0, [r6, #4]
- adds r5, r6, #0
- adds r5, #8
- ldr r4, _0800CE3C @ =0x03005000
- ldrh r2, [r6, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r0, #2
- ldrsh r1, [r5, r0]
- movs r3, #2
- ldrsh r0, [r6, r3]
- adds r1, r1, r0
- ldr r3, _0800CE40 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _0800CE44 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r6, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r6, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
- ldrh r1, [r6, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r1, #1]
- movs r2, #3
- orrs r0, r2
- strb r0, [r1, #1]
- ldrh r1, [r6, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r2, [r1, #3]
- movs r0, #0xf
- rsbs r0, r0, #0
- ands r0, r2
- strb r0, [r1, #3]
-_0800CDBA:
- mov r1, r8
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800CE12
- ldrh r0, [r7, #0x10]
- strh r0, [r1, #2]
- ldrh r0, [r7, #0x12]
- strh r0, [r1, #4]
- ldr r2, _0800CE3C @ =0x03005000
- mov sb, r2
- ldr r3, _0800CE44 @ =0xFFFFFE00
- mov ip, r3
- mov r4, r8
- adds r4, #8
- movs r5, #3
-_0800CDD8:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sb
- movs r7, #2
- ldrsh r1, [r4, r7]
- mov r2, r8
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _0800CE40 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, ip
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sb
- mov r3, r8
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _0800CDD8
-_0800CE12:
- movs r0, #0
- strh r0, [r6]
- mov r1, r8
- strh r0, [r1]
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CE28: .4byte 0x0201A450
-_0800CE2C: .4byte 0x0200B3B8
-_0800CE30: .4byte 0x086A7D20
-_0800CE34: .4byte 0x0202C5E4
-_0800CE38: .4byte 0x0202ADD8
-_0800CE3C: .4byte 0x03005000
-_0800CE40: .4byte 0x000001FF
-_0800CE44: .4byte 0xFFFFFE00
-
- thumb_func_start sub_CE48
-sub_CE48: @ 0x0800CE48
- push {lr}
- ldr r1, _0800CE60 @ =0x080793E8
- ldr r0, _0800CE64 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_0800CE60: .4byte 0x080793E8
-_0800CE64: .4byte 0x0200B0C0
-
- thumb_func_start sub_CE68
-sub_CE68: @ 0x0800CE68
- push {lr}
- ldr r1, _0800CE80 @ =0x08079424
- ldr r0, _0800CE84 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_0800CE80: .4byte 0x08079424
-_0800CE84: .4byte 0x0200B0C0
-
- thumb_func_start sub_CE88
-sub_CE88: @ 0x0800CE88
- push {r4, r5, r6, r7, lr}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x84
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800CF68 @ =0x0400000C
- ldr r3, _0800CF6C @ =0x00004006
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800CF70 @ =0x0400000E
- ldr r3, _0800CF74 @ =0x0000420F
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #4
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r7, _0800CF78 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r7, #0x16]
- ldr r4, _0800CF7C @ =0x040000D4
- ldr r0, _0800CF80 @ =0x0809DBE0
- str r0, [r4]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r0, _0800CF84 @ =0x80000100
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800CF88 @ =0x080957A0
- str r0, [r4]
- ldr r0, _0800CF8C @ =0x06004000
- str r0, [r4, #4]
- ldr r0, _0800CF90 @ =0x80002400
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800CF94 @ =0x0809AFC0
- str r0, [r4]
- ldr r0, _0800CF98 @ =0x0600C000
- str r0, [r4, #4]
- ldr r0, _0800CF9C @ =0x80001600
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800CFA0 @ =0x080947A0
- str r0, [r4]
- ldr r6, _0800CFA4 @ =0x03005C00
- str r6, [r4, #4]
- ldr r5, _0800CFA8 @ =0x80000800
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800CFAC @ =0x08099FC0
- str r0, [r4]
- ldr r0, _0800CFB0 @ =0x06001000
- str r0, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800CFB4 @ =0x0809DDE0
- str r0, [r4]
- ldr r0, _0800CFB8 @ =0x05000200
- str r0, [r4, #4]
- ldr r0, _0800CFBC @ =0x80000080
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800CFC0 @ =0x0809DFE0
- str r0, [r4]
- ldr r0, _0800CFC4 @ =0x06010000
- str r0, [r4, #4]
- ldr r0, _0800CFC8 @ =0x80002210
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_CFD4
- bl sub_EE64
- str r6, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- ldr r4, _0800CFCC @ =0x0202C588
- movs r1, #0
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bne _0800CF50
- movs r0, #9
- bl m4aSongNumStart
-_0800CF50:
- movs r0, #0
- strh r0, [r4]
- bl sub_CBC
- bl sub_24C
- ldr r0, _0800CFD0 @ =0x02002858
- ldrb r0, [r0, #0xa]
- strb r0, [r7, #3]
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CF68: .4byte 0x0400000C
-_0800CF6C: .4byte 0x00004006
-_0800CF70: .4byte 0x0400000E
-_0800CF74: .4byte 0x0000420F
-_0800CF78: .4byte 0x0200B0C0
-_0800CF7C: .4byte 0x040000D4
-_0800CF80: .4byte 0x0809DBE0
-_0800CF84: .4byte 0x80000100
-_0800CF88: .4byte 0x080957A0
-_0800CF8C: .4byte 0x06004000
-_0800CF90: .4byte 0x80002400
-_0800CF94: .4byte 0x0809AFC0
-_0800CF98: .4byte 0x0600C000
-_0800CF9C: .4byte 0x80001600
-_0800CFA0: .4byte 0x080947A0
-_0800CFA4: .4byte 0x03005C00
-_0800CFA8: .4byte 0x80000800
-_0800CFAC: .4byte 0x08099FC0
-_0800CFB0: .4byte 0x06001000
-_0800CFB4: .4byte 0x0809DDE0
-_0800CFB8: .4byte 0x05000200
-_0800CFBC: .4byte 0x80000080
-_0800CFC0: .4byte 0x0809DFE0
-_0800CFC4: .4byte 0x06010000
-_0800CFC8: .4byte 0x80002210
-_0800CFCC: .4byte 0x0202C588
-_0800CFD0: .4byte 0x02002858
-
- thumb_func_start sub_CFD4
-sub_CFD4: @ 0x0800CFD4
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- movs r7, #0
- ldr r0, _0800D0B0 @ =0x02002858
- mov r8, r0
- ldr r1, _0800D0B4 @ =0x0202C610
- mov sl, r1
- ldr r2, _0800D0B8 @ =0x0200B134
- mov sb, r2
- movs r3, #0
- mov ip, r3
-_0800CFF0:
- movs r3, #0
- mov r4, ip
- movs r6, #0
-_0800CFF6:
- adds r0, r4, #0
- adds r0, #0xe4
- adds r0, r6, r0
- mov r1, sb
- adds r5, r0, r1
- adds r0, r6, r4
- mov r1, sl
- adds r2, r0, r1
- movs r1, #5
-_0800D008:
- ldm r5!, {r0}
- stm r2!, {r0}
- subs r1, #1
- cmp r1, #0
- bge _0800D008
- adds r6, #0x18
- adds r3, #1
- cmp r3, #7
- ble _0800CFF6
- movs r2, #0xc0
- add ip, r2
- adds r7, #1
- cmp r7, #1
- ble _0800CFF0
- movs r7, #0
- ldr r6, _0800D0BC @ =0x0202C550
- ldr r5, _0800D0B4 @ =0x0202C610
-_0800D02A:
- lsls r0, r7, #1
- adds r4, r7, #1
- adds r0, r0, r7
- lsls r1, r0, #3
- lsls r0, r0, #6
- adds r2, r0, r5
- adds r1, r1, r6
- movs r3, #5
-_0800D03A:
- ldm r2!, {r0}
- stm r1!, {r0}
- subs r3, #1
- cmp r3, #0
- bge _0800D03A
- adds r7, r4, #0
- cmp r7, #1
- ble _0800D02A
- movs r3, #0
- movs r2, #0
- mov r4, r8
- strh r2, [r4, #0x10]
- strh r2, [r4, #0x12]
- strh r2, [r4, #0x14]
- strh r2, [r4, #0x18]
- strh r2, [r4, #0x1a]
- strh r2, [r4, #0x1e]
- strh r2, [r4, #0x1c]
- strh r2, [r4, #0x20]
- strh r2, [r4, #0x22]
- mov r0, r8
- adds r0, #0x25
- strb r3, [r0]
- mov r1, r8
- adds r1, #0x26
- movs r0, #1
- strb r0, [r1]
- ldr r1, _0800D0C0 @ =0x0201B178
- strb r3, [r1]
- ldr r4, _0800D0C4 @ =0x0202BEBC
- strb r0, [r4]
- ldr r0, _0800D0C8 @ =0x0201C18C
- strb r3, [r0]
- ldr r1, _0800D0CC @ =0x02002884
- strb r3, [r1]
- ldr r4, _0800D0D0 @ =0x02002885
- strb r3, [r4]
- ldr r1, _0800D0D4 @ =0x0202C588
- movs r4, #0
- ldrsh r0, [r1, r4]
- cmp r0, #1
- beq _0800D090
- b _0800D1C0
-_0800D090:
- ldr r0, _0800D0D8 @ =0x0200B0C0
- ldr r1, [r0, #0x5c]
- mov r4, r8
- str r1, [r4]
- ldr r1, [r0, #0x58]
- str r1, [r4, #4]
- ldrb r1, [r0, #4]
- cmp r1, #1
- bne _0800D0E4
- strb r1, [r4, #0xb]
- movs r0, #0xf0
- ldr r2, _0800D0DC @ =0x02002882
- strh r0, [r2]
- ldr r3, _0800D0E0 @ =0x02002880
- strh r1, [r3]
- b _0800D0F6
- .align 2, 0
-_0800D0B0: .4byte 0x02002858
-_0800D0B4: .4byte 0x0202C610
-_0800D0B8: .4byte 0x0200B134
-_0800D0BC: .4byte 0x0202C550
-_0800D0C0: .4byte 0x0201B178
-_0800D0C4: .4byte 0x0202BEBC
-_0800D0C8: .4byte 0x0201C18C
-_0800D0CC: .4byte 0x02002884
-_0800D0D0: .4byte 0x02002885
-_0800D0D4: .4byte 0x0202C588
-_0800D0D8: .4byte 0x0200B0C0
-_0800D0DC: .4byte 0x02002882
-_0800D0E0: .4byte 0x02002880
-_0800D0E4:
- mov r4, r8
- strb r3, [r4, #0xb]
- ldr r0, _0800D178 @ =0x02002882
- strh r2, [r0]
- movs r1, #1
- rsbs r1, r1, #0
- adds r0, r1, #0
- ldr r2, _0800D17C @ =0x02002880
- strh r0, [r2]
-_0800D0F6:
- ldr r4, _0800D180 @ =0x02002858
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldrb r2, [r4, #0xb]
- bl sub_F3DC
- adds r3, r0, #0
- str r3, [r4, #0xc]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r3, r0
- beq _0800D14A
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldrb r2, [r4, #0xb]
- bl sub_F434
- movs r7, #0
- ldr r5, _0800D184 @ =0x0202C610
- adds r3, r4, #0
- ldr r6, _0800D188 @ =0x0201A500
- adds r4, r6, #0
-_0800D122:
- lsls r2, r7, #2
- ldr r1, [r3, #0xc]
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r2, r2, r0
- ldrb r1, [r3, #0xb]
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #6
- adds r2, r2, r0
- adds r2, r2, r5
- ldm r4!, {r0}
- str r0, [r2]
- adds r7, #1
- cmp r7, #3
- ble _0800D122
- ldr r1, _0800D180 @ =0x02002858
- ldr r0, [r6]
- strh r0, [r1, #0x16]
-_0800D14A:
- bl sub_FD20
- lsls r0, r0, #0x18
- asrs r3, r0, #0x18
- cmp r3, #1
- bne _0800D1A8
- ldr r0, _0800D18C @ =0x0202BEB0
- movs r2, #0
- ldrsb r2, [r0, r2]
- cmp r2, #0
- bne _0800D1A0
- ldr r0, _0800D190 @ =0x0201C18C
- strb r3, [r0]
- ldr r1, _0800D194 @ =0x0201A4B8
- movs r0, #0xb8
- strh r0, [r1]
- ldr r0, _0800D198 @ =0x0202C580
- strb r2, [r0]
- ldr r0, _0800D19C @ =0x0202BED4
- strb r2, [r0]
- ldr r0, _0800D180 @ =0x02002858
- strb r3, [r0, #0xa]
- b _0800D1DA
- .align 2, 0
-_0800D178: .4byte 0x02002882
-_0800D17C: .4byte 0x02002880
-_0800D180: .4byte 0x02002858
-_0800D184: .4byte 0x0202C610
-_0800D188: .4byte 0x0201A500
-_0800D18C: .4byte 0x0202BEB0
-_0800D190: .4byte 0x0201C18C
-_0800D194: .4byte 0x0201A4B8
-_0800D198: .4byte 0x0202C580
-_0800D19C: .4byte 0x0202BED4
-_0800D1A0:
- ldr r1, _0800D1A4 @ =0x0201C18C
- b _0800D1AA
- .align 2, 0
-_0800D1A4: .4byte 0x0201C18C
-_0800D1A8:
- ldr r1, _0800D1B8 @ =0x0202BEB0
-_0800D1AA:
- movs r0, #0
- strb r0, [r1]
- ldr r1, _0800D1BC @ =0x02002858
- movs r0, #2
- strb r0, [r1, #0xa]
- b _0800D1DA
- .align 2, 0
-_0800D1B8: .4byte 0x0202BEB0
-_0800D1BC: .4byte 0x02002858
-_0800D1C0:
- mov r4, r8
- strb r3, [r4, #0xb]
- ldr r0, _0800D200 @ =0x02002882
- strh r2, [r0]
- movs r1, #1
- rsbs r1, r1, #0
- adds r0, r1, #0
- ldr r2, _0800D204 @ =0x02002880
- strh r0, [r2]
- bl sub_E464
- movs r0, #3
- strb r0, [r4, #0xa]
-_0800D1DA:
- ldr r2, _0800D208 @ =0x0200B0C0
- ldr r0, _0800D200 @ =0x02002882
- ldrh r1, [r0]
- movs r3, #0xbd
- lsls r3, r3, #2
- adds r0, r2, r3
- strh r1, [r0]
- movs r4, #0xbc
- lsls r4, r4, #2
- adds r0, r2, r4
- strh r1, [r0]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D200: .4byte 0x02002882
-_0800D204: .4byte 0x02002880
-_0800D208: .4byte 0x0200B0C0
-
- thumb_func_start sub_D20C
-sub_D20C: @ 0x0800D20C
- push {r4, r5, lr}
- ldr r4, _0800D224 @ =0x0202BED4
- movs r0, #0
- ldrsb r0, [r4, r0]
- adds r5, r4, #0
- cmp r0, #1
- beq _0800D248
- cmp r0, #1
- bgt _0800D228
- cmp r0, #0
- beq _0800D232
- b _0800D2E0
- .align 2, 0
-_0800D224: .4byte 0x0202BED4
-_0800D228:
- cmp r0, #2
- beq _0800D290
- cmp r0, #3
- beq _0800D2B4
- b _0800D2E0
-_0800D232:
- ldr r0, _0800D244 @ =0x02002858
- movs r1, #0x18
- ldrsh r0, [r0, r1]
- cmp r0, #3
- bne _0800D2E0
- movs r0, #0x11
- bl m4aSongNumStart
- b _0800D2A2
- .align 2, 0
-_0800D244: .4byte 0x02002858
-_0800D248:
- ldr r1, _0800D284 @ =0x0201A4B8
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- ldr r0, _0800D288 @ =0x02002858
- ldrh r2, [r0, #0x18]
- movs r0, #3
- ands r2, r0
- cmp r2, #0
- bne _0800D26E
- ldr r3, _0800D28C @ =0x0202C580
- ldrb r0, [r3]
- adds r0, #1
- strb r0, [r3]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #4
- ble _0800D26E
- strb r2, [r3]
-_0800D26E:
- movs r2, #0
- ldrsh r0, [r1, r2]
- cmp r0, #0x50
- bne _0800D2E0
- ldr r1, _0800D28C @ =0x0202C580
- movs r0, #0
- strb r0, [r1]
- ldrb r0, [r5]
- adds r0, #1
- strb r0, [r5]
- b _0800D2E0
- .align 2, 0
-_0800D284: .4byte 0x0201A4B8
-_0800D288: .4byte 0x02002858
-_0800D28C: .4byte 0x0202C580
-_0800D290:
- ldr r0, _0800D2AC @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #3
- ands r0, r1
- cmp r0, #0
- beq _0800D2E0
- ldr r1, _0800D2B0 @ =0x0202C580
- movs r0, #0
- strb r0, [r1]
-_0800D2A2:
- ldrb r0, [r4]
- adds r0, #1
- strb r0, [r4]
- b _0800D2E0
- .align 2, 0
-_0800D2AC: .4byte 0x0200B0C0
-_0800D2B0: .4byte 0x0202C580
-_0800D2B4:
- ldr r0, _0800D2F4 @ =0x0201A4B8
- ldrh r1, [r0]
- subs r1, #4
- strh r1, [r0]
- lsls r1, r1, #0x10
- asrs r1, r1, #0x10
- movs r0, #0x18
- rsbs r0, r0, #0
- cmp r1, r0
- bge _0800D2E0
- ldr r1, _0800D2F8 @ =0x02002858
- movs r2, #0
- movs r0, #0
- strh r0, [r1, #0x18]
- ldr r1, _0800D2FC @ =0x0202BEB0
- movs r0, #1
- strb r0, [r1]
- ldr r0, _0800D300 @ =0x0201C18C
- strb r2, [r0]
- ldr r1, _0800D304 @ =0x0200B0C0
- movs r0, #2
- strb r0, [r1, #3]
-_0800D2E0:
- ldr r1, _0800D2F8 @ =0x02002858
- ldrh r0, [r1, #0x18]
- adds r0, #1
- strh r0, [r1, #0x18]
- bl sub_E860
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D2F4: .4byte 0x0201A4B8
-_0800D2F8: .4byte 0x02002858
-_0800D2FC: .4byte 0x0202BEB0
-_0800D300: .4byte 0x0201C18C
-_0800D304: .4byte 0x0200B0C0
-
- thumb_func_start sub_D308
-sub_D308: @ 0x0800D308
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #8
- ldr r4, _0800D32C @ =0x02002858
- movs r0, #0x1a
- ldrsh r2, [r4, r0]
- cmp r2, #0
- bne _0800D35E
- ldr r1, [r4, #0xc]
- cmp r1, #0
- bne _0800D330
- movs r0, #0xa5
- lsls r0, r0, #1
- bl m4aSongNumStart
- movs r0, #0xa0
- b _0800D35C
- .align 2, 0
-_0800D32C: .4byte 0x02002858
-_0800D330:
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _0800D354
- ldr r0, _0800D34C @ =0x000003E7
- strh r0, [r4, #0x18]
- strh r2, [r4, #0x1a]
- movs r0, #9
- bl m4aSongNumStart
- ldr r1, _0800D350 @ =0x0200B0C0
- movs r0, #3
- strb r0, [r1, #3]
- b _0800D35E
- .align 2, 0
-_0800D34C: .4byte 0x000003E7
-_0800D350: .4byte 0x0200B0C0
-_0800D354:
- ldr r0, _0800D3C8 @ =0x0000014B
- bl m4aSongNumStart
- movs r0, #0x5a
-_0800D35C:
- strh r0, [r4, #0x18]
-_0800D35E:
- ldr r7, _0800D3CC @ =0x02002858
- ldrh r0, [r7, #0x14]
- adds r0, #1
- movs r1, #0
- strh r0, [r7, #0x14]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800D3FC
- strh r1, [r7, #0x14]
- movs r2, #0x12
- ldrsh r0, [r7, r2]
- cmp r0, #0
- bne _0800D3D4
- movs r0, #1
- strh r0, [r7, #0x12]
- ldrb r2, [r7, #0xb]
- lsls r0, r2, #1
- movs r4, #6
- subs r0, r4, r0
- ldr r3, _0800D3D0 @ =0x08079870
- mov r8, r3
- ldr r1, [r7, #0xc]
- lsls r1, r1, #2
- add r1, r8
- lsls r2, r2, #5
- ldr r1, [r1]
- adds r1, r1, r2
- movs r6, #4
- str r6, [sp]
- movs r5, #2
- str r5, [sp, #4]
- movs r2, #0
- movs r3, #0x15
- bl sub_10618
- ldrb r1, [r7, #0xb]
- lsls r0, r1, #1
- subs r4, r4, r0
- ldr r0, [r7, #0xc]
- lsls r0, r0, #2
- add r0, r8
- lsls r1, r1, #5
- ldr r3, [r0]
- adds r3, r3, r1
- str r6, [sp]
- str r5, [sp, #4]
- movs r0, #0
- movs r1, #0x17
- adds r2, r4, #0
- bl sub_10618
- b _0800D3FC
- .align 2, 0
-_0800D3C8: .4byte 0x0000014B
-_0800D3CC: .4byte 0x02002858
-_0800D3D0: .4byte 0x08079870
-_0800D3D4:
- strh r1, [r7, #0x12]
- ldrb r1, [r7, #0xb]
- lsls r0, r1, #1
- movs r2, #6
- subs r2, r2, r0
- ldr r3, _0800D4A0 @ =0x08079870
- ldr r0, [r7, #0xc]
- lsls r0, r0, #2
- adds r0, r0, r3
- lsls r1, r1, #5
- ldr r3, [r0]
- adds r3, r3, r1
- movs r0, #4
- str r0, [sp]
- movs r0, #2
- str r0, [sp, #4]
- movs r0, #0
- movs r1, #0x15
- bl sub_10618
-_0800D3FC:
- ldr r4, _0800D4A4 @ =0x02002858
- ldrh r0, [r4, #0x1e]
- adds r0, #1
- movs r5, #0
- strh r0, [r4, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800D42C
- strh r5, [r4, #0x1e]
- ldrb r0, [r4, #0xb]
- ldr r1, [r4, #0xc]
- movs r3, #0x1c
- ldrsh r2, [r4, r3]
- bl sub_F8B0
- ldrh r0, [r4, #0x1c]
- adds r0, #1
- strh r0, [r4, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _0800D42C
- strh r5, [r4, #0x1c]
-_0800D42C:
- ldr r4, _0800D4A4 @ =0x02002858
- ldrh r0, [r4, #0x1a]
- adds r0, #1
- movs r2, #0
- strh r0, [r4, #0x1a]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- movs r3, #0x18
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _0800D482
- strh r2, [r4, #0x1a]
- movs r1, #0x12
- ldrsh r0, [r4, r1]
- cmp r0, #1
- bne _0800D476
- strh r2, [r4, #0x12]
- strh r2, [r4, #0x14]
- ldrb r1, [r4, #0xb]
- lsls r0, r1, #1
- movs r2, #6
- subs r2, r2, r0
- ldr r3, _0800D4A0 @ =0x08079870
- ldr r0, [r4, #0xc]
- lsls r0, r0, #2
- adds r0, r0, r3
- lsls r1, r1, #5
- ldr r3, [r0]
- adds r3, r3, r1
- movs r0, #4
- str r0, [sp]
- movs r0, #2
- str r0, [sp, #4]
- movs r0, #0
- movs r1, #0x15
- bl sub_10618
-_0800D476:
- movs r0, #9
- bl m4aSongNumStart
- ldr r1, _0800D4A8 @ =0x0200B0C0
- movs r0, #4
- strb r0, [r1, #3]
-_0800D482:
- ldr r1, _0800D4AC @ =0x040000D4
- ldr r0, _0800D4B0 @ =0x03005C00
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800D4B4 @ =0x80000800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- add sp, #8
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D4A0: .4byte 0x08079870
-_0800D4A4: .4byte 0x02002858
-_0800D4A8: .4byte 0x0200B0C0
-_0800D4AC: .4byte 0x040000D4
-_0800D4B0: .4byte 0x03005C00
-_0800D4B4: .4byte 0x80000800
-
- thumb_func_start sub_D4B8
-sub_D4B8: @ 0x0800D4B8
- push {r4, lr}
- bl sub_E464
- ldr r4, _0800D500 @ =0x0200B0C0
- ldr r0, [r4, #0x4c]
- movs r1, #0xc
- bl __umodsi3
- cmp r0, #0
- bne _0800D4E0
- ldr r1, _0800D504 @ =0x02002858
- ldrh r2, [r1, #0x1a]
- movs r0, #1
- subs r0, r0, r2
- strh r0, [r1, #0x1a]
- adds r1, #0x25
- ldrb r2, [r1]
- movs r0, #1
- subs r0, r0, r2
- strb r0, [r1]
-_0800D4E0:
- ldrh r1, [r4, #0x18]
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _0800D50C
- ldr r0, _0800D508 @ =0x02002880
- movs r2, #0
- ldrsh r1, [r0, r2]
- movs r2, #1
- rsbs r2, r2, #0
- adds r3, r0, #0
- cmp r1, r2
- beq _0800D522
- strh r2, [r3]
- b _0800D522
- .align 2, 0
-_0800D500: .4byte 0x0200B0C0
-_0800D504: .4byte 0x02002858
-_0800D508: .4byte 0x02002880
-_0800D50C:
- movs r0, #0x10
- ands r0, r1
- ldr r3, _0800D53C @ =0x02002880
- cmp r0, #0
- beq _0800D522
- movs r1, #0
- ldrsh r0, [r3, r1]
- cmp r0, #1
- beq _0800D522
- movs r0, #1
- strh r0, [r3]
-_0800D522:
- movs r2, #0
- ldrsh r0, [r3, r2]
- cmp r0, #0
- ble _0800D544
- ldr r1, _0800D540 @ =0x02002882
- ldrh r2, [r1]
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #0xef
- bgt _0800D55A
- adds r0, r2, #0
- adds r0, #8
- b _0800D558
- .align 2, 0
-_0800D53C: .4byte 0x02002880
-_0800D540: .4byte 0x02002882
-_0800D544:
- cmp r0, #0
- bge _0800D55A
- ldr r1, _0800D608 @ =0x02002882
- ldrh r2, [r1]
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #0
- ble _0800D55A
- adds r0, r2, #0
- subs r0, #8
-_0800D558:
- strh r0, [r1]
-_0800D55A:
- ldr r4, _0800D60C @ =0x0200B0C0
- ldrh r1, [r4, #0x18]
- movs r0, #3
- ands r0, r1
- cmp r0, #0
- beq _0800D570
- movs r0, #0x66
- bl m4aSongNumStart
- movs r0, #0xb
- strb r0, [r4, #3]
-_0800D570:
- ldrh r1, [r4, #0x18]
- movs r0, #8
- ands r0, r1
- cmp r0, #0
- beq _0800D59E
- ldr r0, _0800D608 @ =0x02002882
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0
- beq _0800D588
- cmp r0, #0xf0
- bne _0800D59E
-_0800D588:
- movs r0, #0x68
- bl m4aSongNumStart
- ldr r1, _0800D610 @ =0x0201B178
- movs r0, #1
- strb r0, [r1]
- ldr r1, _0800D614 @ =0x0202BEBC
- movs r0, #0
- strb r0, [r1]
- movs r0, #5
- strb r0, [r4, #3]
-_0800D59E:
- ldr r3, _0800D60C @ =0x0200B0C0
- ldrh r2, [r3, #0x1c]
- movs r1, #0x88
- lsls r1, r1, #2
- adds r0, r1, #0
- ands r0, r2
- adds r4, r3, #0
- cmp r0, r1
- bne _0800D620
- ldrh r1, [r4, #0x18]
- movs r0, #0x80
- lsls r0, r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800D63E
- ldr r0, _0800D608 @ =0x02002882
- movs r2, #0
- ldrsh r0, [r0, r2]
- cmp r0, #0
- beq _0800D5CA
- cmp r0, #0xf0
- bne _0800D5FC
-_0800D5CA:
- ldr r2, _0800D618 @ =0x02002884
- movs r0, #0x28
- strb r0, [r2]
- ldr r1, _0800D61C @ =0x02002885
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #3
- bne _0800D5FC
- movs r0, #0
- strb r0, [r1]
- strb r0, [r2]
- movs r0, #0x68
- bl m4aSongNumStart
- ldr r1, _0800D610 @ =0x0201B178
- movs r0, #1
- strb r0, [r1]
- ldr r1, _0800D614 @ =0x0202BEBC
- movs r0, #4
- strb r0, [r1]
- movs r0, #0xa
- strb r0, [r4, #3]
-_0800D5FC:
- ldr r2, _0800D618 @ =0x02002884
- ldrb r1, [r2]
- movs r0, #0
- ldrsb r0, [r2, r0]
- ldr r4, _0800D60C @ =0x0200B0C0
- b _0800D628
- .align 2, 0
-_0800D608: .4byte 0x02002882
-_0800D60C: .4byte 0x0200B0C0
-_0800D610: .4byte 0x0201B178
-_0800D614: .4byte 0x0202BEBC
-_0800D618: .4byte 0x02002884
-_0800D61C: .4byte 0x02002885
-_0800D620:
- ldr r2, _0800D658 @ =0x02002884
- ldrb r1, [r2]
- movs r0, #0
- ldrsb r0, [r2, r0]
-_0800D628:
- cmp r0, #0
- ble _0800D63E
- subs r0, r1, #1
- strb r0, [r2]
- lsls r0, r0, #0x18
- cmp r0, #0
- bgt _0800D63E
- movs r1, #0
- strb r1, [r2]
- ldr r0, _0800D65C @ =0x02002885
- strb r1, [r0]
-_0800D63E:
- ldr r0, _0800D660 @ =0x02002882
- ldrh r1, [r0]
- movs r3, #0xbd
- lsls r3, r3, #2
- adds r0, r4, r3
- strh r1, [r0]
- movs r2, #0xbc
- lsls r2, r2, #2
- adds r0, r4, r2
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D658: .4byte 0x02002884
-_0800D65C: .4byte 0x02002885
-_0800D660: .4byte 0x02002882
-
- thumb_func_start sub_D664
-sub_D664: @ 0x0800D664
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- bl sub_E3A8
- ldr r4, _0800D6E8 @ =0x02002858
- ldrh r0, [r4, #0x14]
- adds r0, #1
- movs r5, #0
- strh r0, [r4, #0x14]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xc
- ble _0800D68C
- strh r5, [r4, #0x14]
- ldrh r1, [r4, #0x12]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r4, #0x12]
-_0800D68C:
- ldrh r0, [r4, #0x1e]
- adds r0, #1
- strh r0, [r4, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800D6B8
- strh r5, [r4, #0x1e]
- ldrb r0, [r4, #0xb]
- ldr r1, [r4, #0xc]
- movs r3, #0x1c
- ldrsh r2, [r4, r3]
- bl sub_F8B0
- ldrh r0, [r4, #0x1c]
- adds r0, #1
- strh r0, [r4, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _0800D6B8
- strh r5, [r4, #0x1c]
-_0800D6B8:
- ldr r0, _0800D6EC @ =0x0200B0C0
- ldrh r1, [r0, #0x1c]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0800D6F0
- ldr r4, _0800D6E8 @ =0x02002858
- movs r7, #0x20
- ldrsh r0, [r4, r7]
- cmp r0, #0
- bne _0800D72C
- movs r0, #0x6b
- bl m4aSongNumStart
- ldrh r0, [r4, #0x16]
- subs r0, #1
- strh r0, [r4, #0x16]
- lsls r0, r0, #0x10
- cmp r0, #0
- bge _0800D718
- movs r0, #0x29
- strh r0, [r4, #0x16]
- b _0800D718
- .align 2, 0
-_0800D6E8: .4byte 0x02002858
-_0800D6EC: .4byte 0x0200B0C0
-_0800D6F0:
- movs r0, #0x40
- ands r0, r1
- cmp r0, #0
- beq _0800D72C
- ldr r4, _0800D788 @ =0x02002858
- movs r7, #0x20
- ldrsh r5, [r4, r7]
- cmp r5, #0
- bne _0800D72C
- movs r0, #0x6b
- bl m4aSongNumStart
- ldrh r0, [r4, #0x16]
- adds r0, #1
- strh r0, [r4, #0x16]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x29
- ble _0800D718
- strh r5, [r4, #0x16]
-_0800D718:
- movs r1, #0x16
- ldrsh r0, [r4, r1]
- ldr r1, [r4, #0xc]
- movs r3, #0x10
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, #0xb]
- bl sub_F670
- movs r0, #9
- strh r0, [r4, #0x20]
-_0800D72C:
- ldr r0, _0800D78C @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _0800D794
- ldr r4, _0800D788 @ =0x02002858
- movs r7, #0x10
- ldrsh r0, [r4, r7]
- cmp r0, #3
- beq _0800D7A6
- movs r0, #0x67
- bl m4aSongNumStart
- movs r0, #1
- strh r0, [r4, #0x12]
- movs r1, #0x16
- ldrsh r0, [r4, r1]
- ldr r1, [r4, #0xc]
- movs r3, #0x10
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, #0xb]
- bl sub_F670
- ldr r3, _0800D790 @ =0x0202C610
- movs r7, #0x10
- ldrsh r1, [r4, r7]
- lsls r1, r1, #2
- ldr r2, [r4, #0xc]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldrb r2, [r4, #0xb]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r1, r1, r3
- movs r2, #0x16
- ldrsh r0, [r4, r2]
- str r0, [r1]
- ldrh r0, [r4, #0x10]
- adds r0, #1
- b _0800D7F6
- .align 2, 0
-_0800D788: .4byte 0x02002858
-_0800D78C: .4byte 0x0200B0C0
-_0800D790: .4byte 0x0202C610
-_0800D794:
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _0800D818
- ldr r4, _0800D7B0 @ =0x02002858
- movs r1, #0x10
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bne _0800D7B4
-_0800D7A6:
- movs r0, #0x8a
- bl m4aSongNumStart
- b _0800D818
- .align 2, 0
-_0800D7B0: .4byte 0x02002858
-_0800D7B4:
- movs r0, #0x67
- bl m4aSongNumStart
- movs r0, #1
- strh r0, [r4, #0x12]
- movs r2, #0x16
- ldrsh r0, [r4, r2]
- ldr r1, [r4, #0xc]
- movs r3, #0x10
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, #0xb]
- bl sub_F670
- ldr r3, _0800D8F8 @ =0x0202C610
- movs r7, #0x10
- ldrsh r1, [r4, r7]
- lsls r1, r1, #2
- ldr r2, [r4, #0xc]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldrb r2, [r4, #0xb]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r1, r1, r3
- movs r2, #0x16
- ldrsh r0, [r4, r2]
- str r0, [r1]
- ldrh r0, [r4, #0x10]
- subs r0, #1
-_0800D7F6:
- strh r0, [r4, #0x10]
- movs r7, #0x10
- ldrsh r1, [r4, r7]
- lsls r1, r1, #2
- ldr r2, [r4, #0xc]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldrb r2, [r4, #0xb]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r1, r1, r3
- ldr r0, [r1]
- strh r0, [r4, #0x16]
-_0800D818:
- ldr r0, _0800D8FC @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r5, #1
- adds r0, r5, #0
- ands r0, r1
- cmp r0, #0
- bne _0800D828
- b _0800D936
-_0800D828:
- ldr r4, _0800D900 @ =0x02002858
- strh r5, [r4, #0x12]
- movs r1, #0x16
- ldrsh r0, [r4, r1]
- ldr r1, [r4, #0xc]
- movs r3, #0x10
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, #0xb]
- bl sub_F670
- ldr r5, _0800D8F8 @ =0x0202C610
- movs r7, #0x10
- ldrsh r1, [r4, r7]
- lsls r1, r1, #2
- ldr r2, [r4, #0xc]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldrb r2, [r4, #0xb]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r1, r1, r5
- movs r2, #0x16
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r3, #0x10
- ldrsh r0, [r4, r3]
- cmp r0, #3
- bne _0800D90C
- movs r0, #0x65
- bl m4aSongNumStart
- ldrb r0, [r4, #0xb]
- ldr r1, [r4, #0xc]
- movs r7, #0x1c
- ldrsh r2, [r4, r7]
- bl sub_FAE8
- movs r3, #0
- adds r6, r5, #0
- ldr r5, _0800D904 @ =0x0201A500
-_0800D880:
- lsls r2, r3, #2
- ldr r1, [r4, #0xc]
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r2, r2, r0
- ldrb r1, [r4, #0xb]
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #6
- adds r2, r2, r0
- adds r2, r2, r6
- ldr r0, [r2]
- stm r5!, {r0}
- adds r3, #1
- cmp r3, #3
- ble _0800D880
- movs r3, #0
- ldr r0, _0800D908 @ =0x0200B134
- mov r8, r0
- ldr r1, _0800D8F8 @ =0x0202C610
- mov ip, r1
-_0800D8AC:
- movs r1, #0
- adds r2, r3, #1
- mov sb, r2
- lsls r0, r3, #1
- adds r0, r0, r3
- lsls r5, r0, #6
- adds r6, r5, #0
- adds r6, #0xe4
-_0800D8BC:
- lsls r0, r1, #1
- adds r4, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r1, r0, r6
- mov r3, r8
- adds r2, r1, r3
- adds r3, r0, r5
- movs r1, #5
-_0800D8CE:
- mov r7, ip
- adds r0, r3, r7
- ldr r0, [r0]
- stm r2!, {r0}
- adds r3, #4
- subs r1, #1
- cmp r1, #0
- bge _0800D8CE
- adds r1, r4, #0
- cmp r1, #7
- ble _0800D8BC
- mov r3, sb
- cmp r3, #1
- ble _0800D8AC
- bl sub_52B30
- ldr r1, _0800D8FC @ =0x0200B0C0
- movs r0, #3
- strb r0, [r1, #3]
- b _0800D9B6
- .align 2, 0
-_0800D8F8: .4byte 0x0202C610
-_0800D8FC: .4byte 0x0200B0C0
-_0800D900: .4byte 0x02002858
-_0800D904: .4byte 0x0201A500
-_0800D908: .4byte 0x0200B134
-_0800D90C:
- movs r0, #0x6a
- bl m4aSongNumStart
- ldrh r0, [r4, #0x10]
- adds r0, #1
- strh r0, [r4, #0x10]
- movs r0, #0x10
- ldrsh r1, [r4, r0]
- lsls r1, r1, #2
- ldr r2, [r4, #0xc]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldrb r2, [r4, #0xb]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r1, r1, r5
- b _0800D9B2
-_0800D936:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _0800D9B6
- ldr r4, _0800D950 @ =0x02002858
- movs r1, #0x10
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bne _0800D954
- movs r0, #0x8a
- bl m4aSongNumStart
- b _0800D9B6
- .align 2, 0
-_0800D950: .4byte 0x02002858
-_0800D954:
- movs r0, #0x6a
- bl m4aSongNumStart
- strh r5, [r4, #0x12]
- movs r2, #0x16
- ldrsh r0, [r4, r2]
- ldr r1, [r4, #0xc]
- movs r3, #0x10
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, #0xb]
- bl sub_F670
- ldr r3, _0800D9E4 @ =0x0202C610
- movs r7, #0x10
- ldrsh r1, [r4, r7]
- lsls r1, r1, #2
- ldr r2, [r4, #0xc]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldrb r2, [r4, #0xb]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r1, r1, r3
- movs r2, #0x16
- ldrsh r0, [r4, r2]
- str r0, [r1]
- ldrh r0, [r4, #0x10]
- subs r0, #1
- strh r0, [r4, #0x10]
- movs r7, #0x10
- ldrsh r1, [r4, r7]
- lsls r1, r1, #2
- ldr r2, [r4, #0xc]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #3
- adds r1, r1, r0
- ldrb r2, [r4, #0xb]
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r1, r1, r3
-_0800D9B2:
- ldr r0, [r1]
- strh r0, [r4, #0x16]
-_0800D9B6:
- ldr r1, _0800D9E8 @ =0x040000D4
- ldr r0, _0800D9EC @ =0x03005C00
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800D9F0 @ =0x80000800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldr r1, _0800D9F4 @ =0x02002858
- ldrh r2, [r1, #0x20]
- movs r3, #0x20
- ldrsh r0, [r1, r3]
- cmp r0, #0
- ble _0800D9D8
- subs r0, r2, #1
- strh r0, [r1, #0x20]
-_0800D9D8:
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D9E4: .4byte 0x0202C610
-_0800D9E8: .4byte 0x040000D4
-_0800D9EC: .4byte 0x03005C00
-_0800D9F0: .4byte 0x80000800
-_0800D9F4: .4byte 0x02002858
-
- thumb_func_start sub_D9F8
-sub_D9F8: @ 0x0800D9F8
- push {lr}
- bl sub_19B4
- bl sub_E908
- ldr r1, _0800DA18 @ =0x0201B124
- movs r0, #0
- strb r0, [r1]
- bl sub_E464
- ldr r1, _0800DA1C @ =0x0200B0C0
- movs r0, #6
- strb r0, [r1, #3]
- pop {r0}
- bx r0
- .align 2, 0
-_0800DA18: .4byte 0x0201B124
-_0800DA1C: .4byte 0x0200B0C0
-
- thumb_func_start sub_DA20
-sub_DA20: @ 0x0800DA20
- push {r4, r5, lr}
- bl sub_E464
- ldr r4, _0800DA4C @ =0x0200B0C0
- ldrh r1, [r4, #0x18]
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _0800DA58
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r0, _0800DA50 @ =0x0201B178
- movs r1, #0
- strb r1, [r0]
- ldr r0, _0800DA54 @ =0x0202BEBC
- strb r1, [r0]
- bl sub_2568
- movs r0, #3
- strb r0, [r4, #3]
- b _0800DB2E
- .align 2, 0
-_0800DA4C: .4byte 0x0200B0C0
-_0800DA50: .4byte 0x0201B178
-_0800DA54: .4byte 0x0202BEBC
-_0800DA58:
- ldr r5, _0800DAB8 @ =0x0202ADD0
- ldr r0, _0800DABC @ =0x0202BEC8
- ldr r1, _0800DAC0 @ =0x0202C5F0
- ldr r2, _0800DAC4 @ =0x0201A4D0
- bl sub_1B04
- str r0, [r5]
- ldr r1, _0800DAC8 @ =0x0202BDF0
- movs r3, #3
- ands r3, r0
- str r3, [r1]
- ldr r2, _0800DACC @ =0x0201C1AC
- movs r1, #0x1c
- ands r1, r0
- lsrs r1, r1, #2
- strb r1, [r2]
- ldr r2, _0800DAD0 @ =0x0202ADDC
- movs r1, #0xe0
- lsls r1, r1, #4
- ands r1, r0
- lsrs r1, r1, #9
- strb r1, [r2]
- movs r1, #0x40
- ands r1, r0
- cmp r1, #0
- beq _0800DB2E
- cmp r3, #1
- bhi _0800DB2E
- bl sub_E970
- ldr r0, [r5]
- movs r1, #0x80
- lsls r1, r1, #1
- ands r0, r1
- cmp r0, #0
- bne _0800DAE8
- bl sub_E94C
- lsls r0, r0, #0x10
- asrs r1, r0, #0x10
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _0800DAD4
- movs r0, #8
- strb r0, [r4, #3]
- b _0800DAE8
- .align 2, 0
-_0800DAB8: .4byte 0x0202ADD0
-_0800DABC: .4byte 0x0202BEC8
-_0800DAC0: .4byte 0x0202C5F0
-_0800DAC4: .4byte 0x0201A4D0
-_0800DAC8: .4byte 0x0202BDF0
-_0800DACC: .4byte 0x0201C1AC
-_0800DAD0: .4byte 0x0202ADDC
-_0800DAD4:
- cmp r1, #1
- bne _0800DAE8
- ldr r0, _0800DB34 @ =0x0202BEBC
- movs r1, #2
- strb r1, [r0]
- movs r0, #7
- strb r0, [r4, #3]
- movs r0, #0x8a
- bl m4aSongNumStart
-_0800DAE8:
- ldr r1, _0800DB38 @ =0x0201A510
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- ldr r0, _0800DB3C @ =0x0202ADD0
- ldr r0, [r0]
- movs r1, #0xfe
- lsls r1, r1, #0xf
- ands r0, r1
- cmp r0, #0
- beq _0800DB2E
- ldr r0, _0800DB40 @ =0x0202ADE4
- movs r1, #0
- ldrsb r1, [r0, r1]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _0800DB2E
- ldr r1, _0800DB44 @ =0x0201A444
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xb4
- ble _0800DB2E
- ldr r1, _0800DB34 @ =0x0202BEBC
- movs r0, #2
- strb r0, [r1]
- ldr r1, _0800DB48 @ =0x0200B0C0
- movs r0, #7
- strb r0, [r1, #3]
- movs r0, #0x8a
- bl m4aSongNumStart
-_0800DB2E:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DB34: .4byte 0x0202BEBC
-_0800DB38: .4byte 0x0201A510
-_0800DB3C: .4byte 0x0202ADD0
-_0800DB40: .4byte 0x0202ADE4
-_0800DB44: .4byte 0x0201A444
-_0800DB48: .4byte 0x0200B0C0
-
- thumb_func_start sub_DB4C
-sub_DB4C: @ 0x0800DB4C
- ldr r1, _0800DB68 @ =0x0201A444
- ldrh r0, [r1]
- adds r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _0800DB66
- movs r0, #0
- strh r0, [r1]
- ldr r1, _0800DB6C @ =0x0200B0C0
- movs r0, #5
- strb r0, [r1, #3]
-_0800DB66:
- bx lr
- .align 2, 0
-_0800DB68: .4byte 0x0201A444
-_0800DB6C: .4byte 0x0200B0C0
-
- thumb_func_start sub_DB70
-sub_DB70: @ 0x0800DB70
- push {r4, r5, r6, lr}
- bl sub_E464
- ldr r1, _0800DBDC @ =0x02002858
- ldrh r0, [r1, #0x22]
- adds r0, #1
- movs r2, #0
- strh r0, [r1, #0x22]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x5a
- ble _0800DBD4
- movs r0, #0
- strh r0, [r1, #0x22]
- ldr r0, _0800DBE0 @ =0x0201B178
- strb r2, [r0]
- ldr r0, _0800DBE4 @ =0x0202BEBC
- strb r2, [r0]
- bl sub_2568
- bl sub_1AA4
- movs r1, #0
- ldr r6, _0800DBE8 @ =0x0202C550
- ldr r5, _0800DBEC @ =0x0202C610
-_0800DBA2:
- lsls r0, r1, #1
- adds r4, r1, #1
- adds r0, r0, r1
- lsls r1, r0, #3
- lsls r0, r0, #6
- adds r3, r0, r5
- adds r1, r1, r6
- movs r2, #5
-_0800DBB2:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, #1
- cmp r2, #0
- bge _0800DBB2
- adds r1, r4, #0
- cmp r1, #1
- ble _0800DBA2
- movs r4, #0
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r0, _0800DBF0 @ =0x0200B0C0
- strb r4, [r0, #3]
-_0800DBD4:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DBDC: .4byte 0x02002858
-_0800DBE0: .4byte 0x0201B178
-_0800DBE4: .4byte 0x0202BEBC
-_0800DBE8: .4byte 0x0202C550
-_0800DBEC: .4byte 0x0202C610
-_0800DBF0: .4byte 0x0200B0C0
-
- thumb_func_start sub_DBF4
-sub_DBF4: @ 0x0800DBF4
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- bl sub_E464
- ldr r2, _0800DC14 @ =0x02002858
- movs r1, #0x22
- ldrsh r0, [r2, r1]
- cmp r0, #0x82
- beq _0800DC28
- cmp r0, #0x82
- bgt _0800DC18
- cmp r0, #4
- beq _0800DC1E
- b _0800DCBA
- .align 2, 0
-_0800DC14: .4byte 0x02002858
-_0800DC18:
- cmp r0, #0xfa
- beq _0800DC3C
- b _0800DCBA
-_0800DC1E:
- bl sub_2568
- bl sub_1AA4
- b _0800DCBA
-_0800DC28:
- ldr r1, _0800DC38 @ =0x0202BEBC
- movs r0, #3
- strb r0, [r1]
- movs r0, #0x65
- bl m4aSongNumStart
- b _0800DCBA
- .align 2, 0
-_0800DC38: .4byte 0x0202BEBC
-_0800DC3C:
- movs r1, #0
- movs r0, #0
- strh r0, [r2, #0x22]
- ldr r0, _0800DCD0 @ =0x0201B178
- strb r1, [r0]
- ldr r0, _0800DCD4 @ =0x0202BEBC
- strb r1, [r0]
- movs r0, #0
- bl sub_F4FC
- ldr r1, _0800DCD8 @ =0x0202BED8
- str r0, [r1]
- movs r0, #1
- bl sub_F4FC
- ldr r1, _0800DCDC @ =0x0201B170
- str r0, [r1]
- movs r2, #0
- ldr r3, _0800DCE0 @ =0x0200B134
- mov r8, r3
- ldr r7, _0800DCE4 @ =0x0202C610
- mov ip, r7
-_0800DC68:
- movs r1, #0
- lsls r0, r2, #1
- adds r3, r2, #1
- mov sb, r3
- adds r0, r0, r2
- lsls r5, r0, #6
- adds r6, r5, #0
- adds r6, #0xe4
-_0800DC78:
- lsls r0, r1, #1
- adds r4, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r1, r0, r6
- add r1, r8
- adds r2, r0, r5
- movs r3, #5
-_0800DC88:
- mov r7, ip
- adds r0, r2, r7
- ldr r0, [r0]
- stm r1!, {r0}
- adds r2, #4
- subs r3, #1
- cmp r3, #0
- bge _0800DC88
- adds r1, r4, #0
- cmp r1, #7
- ble _0800DC78
- mov r2, sb
- cmp r2, #1
- ble _0800DC68
- bl sub_52B30
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _0800DCE8 @ =0x0200B0C0
- movs r0, #0xc
- strb r0, [r1, #3]
-_0800DCBA:
- ldr r1, _0800DCEC @ =0x02002858
- ldrh r0, [r1, #0x22]
- adds r0, #1
- strh r0, [r1, #0x22]
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DCD0: .4byte 0x0201B178
-_0800DCD4: .4byte 0x0202BEBC
-_0800DCD8: .4byte 0x0202BED8
-_0800DCDC: .4byte 0x0201B170
-_0800DCE0: .4byte 0x0200B134
-_0800DCE4: .4byte 0x0202C610
-_0800DCE8: .4byte 0x0200B0C0
-_0800DCEC: .4byte 0x02002858
-
- thumb_func_start sub_DCF0
-sub_DCF0: @ 0x0800DCF0
- push {r4, r5, lr}
- bl sub_E464
- ldr r5, _0800DD20 @ =0x0200B0C0
- ldrh r1, [r5, #0x18]
- movs r4, #1
- ands r4, r1
- cmp r4, #0
- beq _0800DD24
- movs r0, #0x65
- bl m4aSongNumStart
- bl sub_F6E0
- bl sub_52B30
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- movs r0, #0
- b _0800DD3C
- .align 2, 0
-_0800DD20: .4byte 0x0200B0C0
-_0800DD24:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _0800DD3E
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r0, _0800DD44 @ =0x0201B178
- strb r4, [r0]
- ldr r0, _0800DD48 @ =0x0202BEBC
- strb r4, [r0]
- movs r0, #3
-_0800DD3C:
- strb r0, [r5, #3]
-_0800DD3E:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DD44: .4byte 0x0201B178
-_0800DD48: .4byte 0x0202BEBC
-
- thumb_func_start sub_DD4C
-sub_DD4C: @ 0x0800DD4C
- push {lr}
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _0800DD6C @ =0x0201A4B4
- movs r0, #1
- strb r0, [r1]
- movs r0, #1
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_0800DD6C: .4byte 0x0201A4B4
-
- thumb_func_start sub_DD70
-sub_DD70: @ 0x0800DD70
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x84
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800DE50 @ =0x0400000C
- ldr r3, _0800DE54 @ =0x00004006
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800DE58 @ =0x0400000E
- ldr r3, _0800DE5C @ =0x0000420F
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #4
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r6, _0800DE60 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r6, #0x16]
- ldr r4, _0800DE64 @ =0x040000D4
- ldr r0, _0800DE68 @ =0x0809DBE0
- str r0, [r4]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r0, _0800DE6C @ =0x80000100
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800DE70 @ =0x080957A0
- str r0, [r4]
- ldr r0, _0800DE74 @ =0x06004000
- str r0, [r4, #4]
- ldr r0, _0800DE78 @ =0x80002400
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800DE7C @ =0x0809AFC0
- str r0, [r4]
- ldr r0, _0800DE80 @ =0x0600C000
- str r0, [r4, #4]
- ldr r0, _0800DE84 @ =0x80001600
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800DE88 @ =0x080947A0
- str r0, [r4]
- ldr r0, _0800DE8C @ =0x03005C00
- mov r8, r0
- str r0, [r4, #4]
- ldr r5, _0800DE90 @ =0x80000800
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800DE94 @ =0x08099FC0
- str r0, [r4]
- ldr r0, _0800DE98 @ =0x06001000
- str r0, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800DE9C @ =0x0809DDE0
- str r0, [r4]
- ldr r0, _0800DEA0 @ =0x05000200
- str r0, [r4, #4]
- ldr r0, _0800DEA4 @ =0x80000010
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800DEA8 @ =0x0809DFE0
- str r0, [r4]
- ldr r0, _0800DEAC @ =0x06010000
- str r0, [r4, #4]
- ldr r0, _0800DEB0 @ =0x80002210
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_DEB4
- bl sub_EE64
- mov r1, r8
- str r1, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- movs r0, #9
- bl m4aSongNumStart
- bl sub_CBC
- bl sub_24C
- ldrb r0, [r6, #3]
- adds r0, #1
- strb r0, [r6, #3]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DE50: .4byte 0x0400000C
-_0800DE54: .4byte 0x00004006
-_0800DE58: .4byte 0x0400000E
-_0800DE5C: .4byte 0x0000420F
-_0800DE60: .4byte 0x0200B0C0
-_0800DE64: .4byte 0x040000D4
-_0800DE68: .4byte 0x0809DBE0
-_0800DE6C: .4byte 0x80000100
-_0800DE70: .4byte 0x080957A0
-_0800DE74: .4byte 0x06004000
-_0800DE78: .4byte 0x80002400
-_0800DE7C: .4byte 0x0809AFC0
-_0800DE80: .4byte 0x0600C000
-_0800DE84: .4byte 0x80001600
-_0800DE88: .4byte 0x080947A0
-_0800DE8C: .4byte 0x03005C00
-_0800DE90: .4byte 0x80000800
-_0800DE94: .4byte 0x08099FC0
-_0800DE98: .4byte 0x06001000
-_0800DE9C: .4byte 0x0809DDE0
-_0800DEA0: .4byte 0x05000200
-_0800DEA4: .4byte 0x80000010
-_0800DEA8: .4byte 0x0809DFE0
-_0800DEAC: .4byte 0x06010000
-_0800DEB0: .4byte 0x80002210
-
- thumb_func_start sub_DEB4
-sub_DEB4: @ 0x0800DEB4
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- movs r2, #0
- ldr r0, _0800DF54 @ =0x02002858
- mov r8, r0
- ldr r0, _0800DF58 @ =0x0200B0C0
- mov ip, r0
- ldr r0, _0800DF5C @ =0x0202C610
- mov sl, r0
- movs r0, #0x74
- add r0, ip
- mov sb, r0
-_0800DED2:
- movs r1, #0
- lsls r0, r2, #1
- adds r7, r2, #1
- adds r0, r0, r2
- lsls r5, r0, #6
- adds r6, r5, #0
- adds r6, #0xe4
-_0800DEE0:
- lsls r0, r1, #1
- adds r4, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r1, r0, r6
- add r1, sb
- adds r0, r0, r5
- mov r2, sl
- adds r3, r0, r2
- movs r2, #5
-_0800DEF4:
- ldm r1!, {r0}
- stm r3!, {r0}
- subs r2, #1
- cmp r2, #0
- bge _0800DEF4
- adds r1, r4, #0
- cmp r1, #7
- ble _0800DEE0
- adds r2, r7, #0
- cmp r2, #1
- ble _0800DED2
- movs r0, #0
- movs r1, #0
- mov r2, r8
- strh r0, [r2, #8]
- strh r0, [r2, #0x1e]
- strh r0, [r2, #0x1c]
- strb r1, [r2, #0xb]
- ldr r2, _0800DF60 @ =0x02002882
- strh r0, [r2]
- movs r2, #1
- rsbs r2, r2, #0
- adds r0, r2, #0
- ldr r2, _0800DF64 @ =0x02002880
- strh r0, [r2]
- mov r0, r8
- adds r0, #0x24
- strb r1, [r0]
- mov r0, r8
- strb r1, [r0, #0xa]
- ldr r2, _0800DF60 @ =0x02002882
- ldrh r1, [r2]
- movs r0, #0xbd
- lsls r0, r0, #2
- add r0, ip
- strh r1, [r0]
- ldrh r1, [r2]
- movs r0, #0xbc
- lsls r0, r0, #2
- add r0, ip
- strh r1, [r0]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DF54: .4byte 0x02002858
-_0800DF58: .4byte 0x0200B0C0
-_0800DF5C: .4byte 0x0202C610
-_0800DF60: .4byte 0x02002882
-_0800DF64: .4byte 0x02002880
-
- thumb_func_start sub_DF68
-sub_DF68: @ 0x0800DF68
- push {r4, r5, lr}
- ldr r0, _0800DF80 @ =0x02002858
- ldrb r4, [r0, #0xa]
- adds r5, r0, #0
- cmp r4, #1
- beq _0800DFE8
- cmp r4, #1
- bgt _0800DF88
- cmp r4, #0
- beq _0800DF94
- ldr r4, _0800DF84 @ =0x0200B0C0
- b _0800E072
- .align 2, 0
-_0800DF80: .4byte 0x02002858
-_0800DF84: .4byte 0x0200B0C0
-_0800DF88:
- cmp r4, #2
- beq _0800E020
- ldr r4, _0800DF90 @ =0x0200B0C0
- b _0800E072
- .align 2, 0
-_0800DF90: .4byte 0x0200B0C0
-_0800DF94:
- ldrh r0, [r5, #0x1e]
- adds r0, #1
- strh r0, [r5, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800DFC0
- strh r4, [r5, #0x1e]
- movs r0, #0x1c
- ldrsh r2, [r5, r0]
- movs r0, #0
- movs r1, #0
- bl sub_F8B0
- ldrh r0, [r5, #0x1c]
- adds r0, #1
- strh r0, [r5, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _0800DFC0
- strh r4, [r5, #0x1c]
-_0800DFC0:
- ldr r0, _0800DFE0 @ =0x02002858
- movs r1, #8
- ldrsh r2, [r0, r1]
- movs r1, #0x96
- lsls r1, r1, #2
- adds r5, r0, #0
- ldr r4, _0800DFE4 @ =0x0200B0C0
- cmp r2, r1
- ble _0800E072
- movs r0, #0
- strh r0, [r5, #8]
- strh r0, [r5, #0x1e]
- strh r0, [r5, #0x1c]
- movs r0, #1
- strb r0, [r5, #0xa]
- b _0800E072
- .align 2, 0
-_0800DFE0: .4byte 0x02002858
-_0800DFE4: .4byte 0x0200B0C0
-_0800DFE8:
- ldr r2, _0800E018 @ =0x02002882
- ldrh r0, [r2]
- adds r0, #8
- strh r0, [r2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xef
- ble _0800E000
- movs r0, #0
- strh r0, [r5, #8]
- movs r0, #2
- strb r0, [r5, #0xa]
-_0800E000:
- ldr r1, _0800E01C @ =0x0200B0C0
- ldrh r2, [r2]
- movs r3, #0xbd
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- subs r3, #4
- adds r0, r1, r3
- strh r2, [r0]
- adds r4, r1, #0
- b _0800E072
- .align 2, 0
-_0800E018: .4byte 0x02002882
-_0800E01C: .4byte 0x0200B0C0
-_0800E020:
- ldrh r0, [r5, #0x1e]
- adds r0, #1
- movs r4, #0
- strh r0, [r5, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800E04E
- strh r4, [r5, #0x1e]
- movs r0, #0x1c
- ldrsh r2, [r5, r0]
- movs r0, #1
- movs r1, #0
- bl sub_F8B0
- ldrh r0, [r5, #0x1c]
- adds r0, #1
- strh r0, [r5, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _0800E04E
- strh r4, [r5, #0x1c]
-_0800E04E:
- ldr r0, _0800E0B0 @ =0x02002858
- movs r1, #8
- ldrsh r2, [r0, r1]
- movs r1, #0x96
- lsls r1, r1, #2
- adds r5, r0, #0
- ldr r4, _0800E0B4 @ =0x0200B0C0
- cmp r2, r1
- ble _0800E072
- movs r1, #0
- movs r0, #0
- strh r0, [r5, #8]
- adds r0, r5, #0
- adds r0, #0x24
- strb r1, [r0]
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
-_0800E072:
- ldrh r0, [r5, #8]
- adds r0, #1
- strh r0, [r5, #8]
- ldr r1, _0800E0B8 @ =0x040000D4
- ldr r0, _0800E0BC @ =0x03005C00
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800E0C0 @ =0x80000800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldrh r1, [r4, #0x18]
- movs r0, #0xb
- ands r0, r1
- cmp r0, #0
- beq _0800E0A8
- movs r0, #0x66
- bl m4aSongNumStart
- adds r1, r5, #0
- adds r1, #0x24
- movs r0, #1
- strb r0, [r1]
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
-_0800E0A8:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E0B0: .4byte 0x02002858
-_0800E0B4: .4byte 0x0200B0C0
-_0800E0B8: .4byte 0x040000D4
-_0800E0BC: .4byte 0x03005C00
-_0800E0C0: .4byte 0x80000800
-
- thumb_func_start sub_E0C4
-sub_E0C4: @ 0x0800E0C4
- push {lr}
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r0, _0800E0E8 @ =0x02002858
- adds r0, #0x24
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_0800E0E8: .4byte 0x02002858
-
- thumb_func_start sub_E0EC
-sub_E0EC: @ 0x0800E0EC
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x84
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _0800E1CC @ =0x0400000C
- ldr r3, _0800E1D0 @ =0x00004006
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800E1D4 @ =0x0400000E
- ldr r3, _0800E1D8 @ =0x0000420F
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #4
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r6, _0800E1DC @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r6, #0x16]
- ldr r4, _0800E1E0 @ =0x040000D4
- ldr r0, _0800E1E4 @ =0x0809DBE0
- str r0, [r4]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- ldr r0, _0800E1E8 @ =0x80000100
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800E1EC @ =0x080957A0
- str r0, [r4]
- ldr r0, _0800E1F0 @ =0x06004000
- str r0, [r4, #4]
- ldr r0, _0800E1F4 @ =0x80002400
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800E1F8 @ =0x0809AFC0
- str r0, [r4]
- ldr r0, _0800E1FC @ =0x0600C000
- str r0, [r4, #4]
- ldr r0, _0800E200 @ =0x80001600
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800E204 @ =0x080947A0
- str r0, [r4]
- ldr r0, _0800E208 @ =0x03005C00
- mov r8, r0
- str r0, [r4, #4]
- ldr r5, _0800E20C @ =0x80000800
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800E210 @ =0x08099FC0
- str r0, [r4]
- ldr r0, _0800E214 @ =0x06001000
- str r0, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800E218 @ =0x0809DDE0
- str r0, [r4]
- ldr r0, _0800E21C @ =0x05000200
- str r0, [r4, #4]
- ldr r0, _0800E220 @ =0x80000010
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- ldr r0, _0800E224 @ =0x0809DFE0
- str r0, [r4]
- ldr r0, _0800E228 @ =0x06010000
- str r0, [r4, #4]
- ldr r0, _0800E22C @ =0x80002210
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_DEB4
- bl sub_EE64
- mov r1, r8
- str r1, [r4]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- movs r0, #9
- bl m4aSongNumStart
- bl sub_CBC
- bl sub_24C
- ldrb r0, [r6, #3]
- adds r0, #1
- strb r0, [r6, #3]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E1CC: .4byte 0x0400000C
-_0800E1D0: .4byte 0x00004006
-_0800E1D4: .4byte 0x0400000E
-_0800E1D8: .4byte 0x0000420F
-_0800E1DC: .4byte 0x0200B0C0
-_0800E1E0: .4byte 0x040000D4
-_0800E1E4: .4byte 0x0809DBE0
-_0800E1E8: .4byte 0x80000100
-_0800E1EC: .4byte 0x080957A0
-_0800E1F0: .4byte 0x06004000
-_0800E1F4: .4byte 0x80002400
-_0800E1F8: .4byte 0x0809AFC0
-_0800E1FC: .4byte 0x0600C000
-_0800E200: .4byte 0x80001600
-_0800E204: .4byte 0x080947A0
-_0800E208: .4byte 0x03005C00
-_0800E20C: .4byte 0x80000800
-_0800E210: .4byte 0x08099FC0
-_0800E214: .4byte 0x06001000
-_0800E218: .4byte 0x0809DDE0
-_0800E21C: .4byte 0x05000200
-_0800E220: .4byte 0x80000010
-_0800E224: .4byte 0x0809DFE0
-_0800E228: .4byte 0x06010000
-_0800E22C: .4byte 0x80002210
-
- thumb_func_start sub_E230
-sub_E230: @ 0x0800E230
- push {r4, r5, lr}
- ldr r0, _0800E248 @ =0x02002858
- ldrb r4, [r0, #0xa]
- adds r5, r0, #0
- cmp r4, #1
- beq _0800E2BC
- cmp r4, #1
- bgt _0800E250
- cmp r4, #0
- beq _0800E25C
- ldr r4, _0800E24C @ =0x0200B0C0
- b _0800E344
- .align 2, 0
-_0800E248: .4byte 0x02002858
-_0800E24C: .4byte 0x0200B0C0
-_0800E250:
- cmp r4, #2
- beq _0800E2F4
- ldr r4, _0800E258 @ =0x0200B0C0
- b _0800E344
- .align 2, 0
-_0800E258: .4byte 0x0200B0C0
-_0800E25C:
- ldr r0, _0800E2B0 @ =0x0202BED8
- ldr r1, [r0]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- beq _0800E292
- ldrh r0, [r5, #0x1e]
- adds r0, #1
- strh r0, [r5, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800E292
- strh r4, [r5, #0x1e]
- movs r0, #0x1c
- ldrsh r2, [r5, r0]
- movs r0, #0
- bl sub_F8B0
- ldrh r0, [r5, #0x1c]
- adds r0, #1
- strh r0, [r5, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _0800E292
- strh r4, [r5, #0x1c]
-_0800E292:
- ldr r0, _0800E2B4 @ =0x02002858
- movs r2, #8
- ldrsh r1, [r0, r2]
- adds r5, r0, #0
- ldr r4, _0800E2B8 @ =0x0200B0C0
- cmp r1, #0x78
- ble _0800E344
- movs r0, #0
- strh r0, [r5, #8]
- strh r0, [r5, #0x1e]
- strh r0, [r5, #0x1c]
- movs r0, #1
- strb r0, [r5, #0xa]
- b _0800E344
- .align 2, 0
-_0800E2B0: .4byte 0x0202BED8
-_0800E2B4: .4byte 0x02002858
-_0800E2B8: .4byte 0x0200B0C0
-_0800E2BC:
- ldr r2, _0800E2EC @ =0x02002882
- ldrh r0, [r2]
- adds r0, #8
- strh r0, [r2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xef
- ble _0800E2D4
- movs r0, #0
- strh r0, [r5, #8]
- movs r0, #2
- strb r0, [r5, #0xa]
-_0800E2D4:
- ldr r1, _0800E2F0 @ =0x0200B0C0
- ldrh r2, [r2]
- movs r3, #0xbd
- lsls r3, r3, #2
- adds r0, r1, r3
- strh r2, [r0]
- subs r3, #4
- adds r0, r1, r3
- strh r2, [r0]
- adds r4, r1, #0
- b _0800E344
- .align 2, 0
-_0800E2EC: .4byte 0x02002882
-_0800E2F0: .4byte 0x0200B0C0
-_0800E2F4:
- ldr r0, _0800E378 @ =0x0201B170
- ldr r1, [r0]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- beq _0800E32C
- ldrh r0, [r5, #0x1e]
- adds r0, #1
- movs r4, #0
- strh r0, [r5, #0x1e]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #8
- ble _0800E32C
- strh r4, [r5, #0x1e]
- movs r0, #0x1c
- ldrsh r2, [r5, r0]
- movs r0, #1
- bl sub_F8B0
- ldrh r0, [r5, #0x1c]
- adds r0, #1
- strh r0, [r5, #0x1c]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- ble _0800E32C
- strh r4, [r5, #0x1c]
-_0800E32C:
- ldr r0, _0800E37C @ =0x02002858
- movs r2, #8
- ldrsh r1, [r0, r2]
- adds r5, r0, #0
- ldr r4, _0800E380 @ =0x0200B0C0
- cmp r1, #0x78
- ble _0800E344
- movs r0, #0
- strh r0, [r5, #8]
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
-_0800E344:
- ldrh r0, [r5, #8]
- adds r0, #1
- strh r0, [r5, #8]
- ldr r1, _0800E384 @ =0x040000D4
- ldr r0, _0800E388 @ =0x03005C00
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _0800E38C @ =0x80000800
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldrh r1, [r4, #0x18]
- movs r0, #0xb
- ands r0, r1
- cmp r0, #0
- beq _0800E372
- movs r0, #0x66
- bl m4aSongNumStart
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
-_0800E372:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E378: .4byte 0x0201B170
-_0800E37C: .4byte 0x02002858
-_0800E380: .4byte 0x0200B0C0
-_0800E384: .4byte 0x040000D4
-_0800E388: .4byte 0x03005C00
-_0800E38C: .4byte 0x80000800
-
- thumb_func_start sub_E390
-sub_E390: @ 0x0800E390
- push {lr}
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- movs r0, #8
- bl sub_23C
- pop {r0}
- bx r0
-
- thumb_func_start sub_E3A8
-sub_E3A8: @ 0x0800E3A8
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- ldr r4, _0800E448 @ =0x02002858
- movs r0, #0x12
- ldrsh r1, [r4, r0]
- movs r0, #0xb8
- muls r0, r1, r0
- ldr r2, _0800E44C @ =0x0200B3B8
- adds r5, r0, r2
- movs r0, #1
- strh r0, [r5]
- ldr r0, _0800E450 @ =0x086A7DA8
- movs r1, #2
- bl sub_358
- ldr r2, _0800E454 @ =0x080797F0
- ldr r0, [r4, #0xc]
- lsls r0, r0, #3
- ldrb r1, [r4, #0xb]
- lsls r1, r1, #6
- adds r0, r0, r1
- adds r0, r0, r2
- ldr r1, [r0]
- movs r3, #0x10
- ldrsh r0, [r4, r3]
- lsls r0, r0, #3
- adds r1, r1, r0
- strh r1, [r5, #2]
- ldr r1, [r4, #0xc]
- lsls r1, r1, #3
- ldrb r0, [r4, #0xb]
- lsls r0, r0, #6
- adds r1, r1, r0
- adds r2, #4
- adds r1, r1, r2
- ldr r0, [r1]
- strh r0, [r5, #4]
- ldr r7, _0800E458 @ =0x03005000
- ldr r0, _0800E45C @ =0xFFFFFE00
- mov r8, r0
- adds r4, r5, #0
- adds r4, #8
- ldr r2, _0800E460 @ =0x000001FF
- mov ip, r2
- movs r6, #1
-_0800E404:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r7
- movs r0, #2
- ldrsh r1, [r4, r0]
- movs r2, #2
- ldrsh r0, [r5, r2]
- adds r1, r1, r0
- mov r0, ip
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r7
- ldrb r0, [r5, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _0800E404
- movs r0, #0
- strh r0, [r5]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E448: .4byte 0x02002858
-_0800E44C: .4byte 0x0200B3B8
-_0800E450: .4byte 0x086A7DA8
-_0800E454: .4byte 0x080797F0
-_0800E458: .4byte 0x03005000
-_0800E45C: .4byte 0xFFFFFE00
-_0800E460: .4byte 0x000001FF
-
- thumb_func_start sub_E464
-sub_E464: @ 0x0800E464
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- ldr r6, _0800E5CC @ =0x0200B3B8
- adds r4, r6, #0
- movs r0, #0xb8
- adds r0, r0, r6
- mov sl, r0
- mov r5, sl
- ldr r0, _0800E5D0 @ =0x0202BEBC
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- movs r2, #0xb8
- adds r1, r0, #0
- muls r1, r2, r1
- movs r3, #0xb8
- lsls r3, r3, #1
- adds r0, r6, r3
- adds r7, r1, r0
- ldr r0, _0800E5D4 @ =0x02002858
- mov sb, r0
- ldr r1, _0800E5D8 @ =0x0200287D
- movs r0, #0
- ldrsb r0, [r1, r0]
- adds r1, r0, #0
- muls r1, r2, r1
- movs r2, #0xa1
- lsls r2, r2, #3
- adds r0, r6, r2
- adds r1, r1, r0
- mov r8, r1
- ldr r0, _0800E5DC @ =0x02002882
- movs r3, #0
- ldrsh r1, [r0, r3]
- cmp r1, #0
- beq _0800E4B4
- b _0800E674
-_0800E4B4:
- movs r0, #1
- strh r0, [r6]
- strh r1, [r5]
- ldr r0, _0800E5E0 @ =0x0201B178
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r7]
- mov r0, sb
- adds r0, #0x26
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- mov r1, r8
- strh r0, [r1]
- ldr r0, _0800E5E4 @ =0x086A7DB0
- movs r1, #9
- adds r2, r6, #0
- bl sub_358
- movs r0, #0xdc
- strh r0, [r6, #2]
- movs r0, #0x90
- strh r0, [r6, #4]
- adds r4, #8
- ldr r2, _0800E5E8 @ =0x03005000
- mov sl, r2
- ldrh r2, [r4]
- lsls r2, r2, #3
- add r2, sl
- mov r3, sb
- movs r5, #0x1a
- ldrsh r1, [r3, r5]
- lsls r1, r1, #1
- adds r1, #2
- ldr r3, _0800E5EC @ =0x000003FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #4]
- ldr r0, _0800E5F0 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r2, [r4]
- lsls r2, r2, #3
- add r2, sl
- movs r5, #2
- ldrsh r1, [r4, r5]
- movs r3, #2
- ldrsh r0, [r6, r3]
- adds r1, r1, r0
- ldr r5, _0800E5F4 @ =0x000001FF
- adds r0, r5, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _0800E5F8 @ =0xFFFFFE00
- mov ip, r0
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sl
- ldrb r0, [r6, #4]
- ldrb r4, [r4, #4]
- adds r0, r0, r4
- strb r0, [r1]
- mov r1, r8
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800E5AA
- movs r0, #0x54
- strh r0, [r1, #2]
- movs r0, #0x96
- strh r0, [r1, #4]
- ldr r2, _0800E5D8 @ =0x0200287D
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, #7
- lsls r0, r0, #2
- ldr r3, _0800E5E4 @ =0x086A7DB0
- adds r0, r0, r3
- ldr r6, [r0]
- movs r5, #0
- ldrh r0, [r6]
- cmp r5, r0
- bge _0800E5AA
- mov sb, sl
- mov sl, ip
- mov r4, r8
- adds r4, #8
-_0800E56A:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sb
- movs r2, #2
- ldrsh r1, [r4, r2]
- mov ip, r1
- mov r1, r8
- movs r2, #2
- ldrsh r0, [r1, r2]
- mov r2, ip
- adds r1, r2, r0
- ldr r2, _0800E5F4 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sl
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sb
- mov r3, r8
- ldrb r0, [r3, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r3, [r6]
- cmp r5, r3
- blt _0800E56A
-_0800E5AA:
- ldrh r0, [r7]
- cmp r0, #1
- beq _0800E5B2
- b _0800E846
-_0800E5B2:
- ldr r0, _0800E5D0 @ =0x0202BEBC
- movs r1, #0
- ldrsb r1, [r0, r1]
- adds r2, r0, #0
- cmp r1, #0
- beq _0800E5C2
- cmp r1, #4
- bne _0800E5FC
-_0800E5C2:
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x64
- b _0800E602
- .align 2, 0
-_0800E5CC: .4byte 0x0200B3B8
-_0800E5D0: .4byte 0x0202BEBC
-_0800E5D4: .4byte 0x02002858
-_0800E5D8: .4byte 0x0200287D
-_0800E5DC: .4byte 0x02002882
-_0800E5E0: .4byte 0x0201B178
-_0800E5E4: .4byte 0x086A7DB0
-_0800E5E8: .4byte 0x03005000
-_0800E5EC: .4byte 0x000003FF
-_0800E5F0: .4byte 0xFFFFFC00
-_0800E5F4: .4byte 0x000001FF
-_0800E5F8: .4byte 0xFFFFFE00
-_0800E5FC:
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x50
-_0800E602:
- strh r0, [r7, #4]
- ldr r1, _0800E664 @ =0x086A7DB0
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, #2
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r6, [r0]
- movs r5, #0
- ldrh r0, [r6]
- cmp r5, r0
- blt _0800E61C
- b _0800E846
-_0800E61C:
- ldr r1, _0800E668 @ =0x03005000
- mov sb, r1
- ldr r2, _0800E66C @ =0xFFFFFE00
- mov sl, r2
- adds r4, r7, #0
- adds r4, #8
-_0800E628:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sb
- movs r0, #2
- ldrsh r1, [r4, r0]
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r2, _0800E670 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sl
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sb
- ldrb r0, [r7, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r0, [r6]
- cmp r5, r0
- blt _0800E628
- b _0800E846
- .align 2, 0
-_0800E664: .4byte 0x086A7DB0
-_0800E668: .4byte 0x03005000
-_0800E66C: .4byte 0xFFFFFE00
-_0800E670: .4byte 0x000001FF
-_0800E674:
- cmp r1, #0xf0
- beq _0800E67A
- b _0800E834
-_0800E67A:
- movs r0, #0
- strh r0, [r6]
- movs r0, #1
- mov r1, sl
- strh r0, [r1]
- ldr r0, _0800E79C @ =0x0201B178
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r7]
- mov r0, sb
- adds r0, #0x26
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- mov r2, r8
- strh r0, [r2]
- ldr r0, _0800E7A0 @ =0x086A7DB0
- movs r1, #9
- adds r2, r6, #0
- bl sub_358
- movs r0, #4
- mov r3, sl
- strh r0, [r3, #2]
- movs r0, #0x90
- strh r0, [r3, #4]
- adds r4, r5, #0
- adds r4, #8
- ldr r5, _0800E7A4 @ =0x03005000
- mov ip, r5
- ldrh r2, [r4]
- lsls r2, r2, #3
- add r2, ip
- mov r0, sb
- movs r3, #0x1a
- ldrsh r1, [r0, r3]
- lsls r1, r1, #1
- adds r1, #2
- ldr r5, _0800E7A8 @ =0x000003FF
- adds r0, r5, #0
- ands r1, r0
- ldrh r3, [r2, #4]
- ldr r0, _0800E7AC @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r2, [r4]
- lsls r2, r2, #3
- add r2, ip
- movs r0, #2
- ldrsh r1, [r4, r0]
- mov r3, sl
- movs r5, #2
- ldrsh r0, [r3, r5]
- adds r1, r1, r0
- ldr r3, _0800E7B0 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _0800E7B4 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, ip
- mov r5, sl
- ldrb r0, [r5, #4]
- ldrb r4, [r4, #4]
- adds r0, r0, r4
- strb r0, [r1]
- mov r1, r8
- ldrh r0, [r1]
- cmp r0, #1
- bne _0800E77C
- movs r0, #0x54
- strh r0, [r1, #2]
- movs r0, #0x96
- strh r0, [r1, #4]
- ldr r2, _0800E7B8 @ =0x0200287D
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, #7
- lsls r0, r0, #2
- ldr r3, _0800E7A0 @ =0x086A7DB0
- adds r0, r0, r3
- ldr r6, [r0]
- movs r5, #0
- ldrh r0, [r6]
- cmp r5, r0
- bge _0800E77C
- mov sb, ip
- ldr r1, _0800E7B4 @ =0xFFFFFE00
- mov sl, r1
- mov r4, r8
- adds r4, #8
-_0800E73C:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sb
- movs r0, #2
- ldrsh r2, [r4, r0]
- mov ip, r2
- mov r1, r8
- movs r2, #2
- ldrsh r0, [r1, r2]
- mov r2, ip
- adds r1, r2, r0
- ldr r2, _0800E7B0 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sl
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sb
- mov r3, r8
- ldrb r0, [r3, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r3, [r6]
- cmp r5, r3
- blt _0800E73C
-_0800E77C:
- ldrh r0, [r7]
- cmp r0, #1
- bne _0800E846
- ldr r0, _0800E7BC @ =0x0202BEBC
- movs r1, #0
- ldrsb r1, [r0, r1]
- adds r2, r0, #0
- cmp r1, #0
- beq _0800E792
- cmp r1, #4
- bne _0800E7C0
-_0800E792:
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x64
- b _0800E7C6
- .align 2, 0
-_0800E79C: .4byte 0x0201B178
-_0800E7A0: .4byte 0x086A7DB0
-_0800E7A4: .4byte 0x03005000
-_0800E7A8: .4byte 0x000003FF
-_0800E7AC: .4byte 0xFFFFFC00
-_0800E7B0: .4byte 0x000001FF
-_0800E7B4: .4byte 0xFFFFFE00
-_0800E7B8: .4byte 0x0200287D
-_0800E7BC: .4byte 0x0202BEBC
-_0800E7C0:
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x50
-_0800E7C6:
- strh r0, [r7, #4]
- ldr r1, _0800E824 @ =0x086A7DB0
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, #2
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r6, [r0]
- movs r5, #0
- ldrh r0, [r6]
- cmp r5, r0
- bge _0800E846
- ldr r1, _0800E828 @ =0x03005000
- mov sb, r1
- ldr r2, _0800E82C @ =0xFFFFFE00
- mov sl, r2
- adds r4, r7, #0
- adds r4, #8
-_0800E7EA:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, sb
- movs r0, #2
- ldrsh r1, [r4, r0]
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r2, _0800E830 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sl
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, sb
- ldrb r0, [r7, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- ldrh r0, [r6]
- cmp r5, r0
- blt _0800E7EA
- b _0800E846
- .align 2, 0
-_0800E824: .4byte 0x086A7DB0
-_0800E828: .4byte 0x03005000
-_0800E82C: .4byte 0xFFFFFE00
-_0800E830: .4byte 0x000001FF
-_0800E834:
- movs r0, #0
- strh r0, [r6]
- mov r1, sl
- strh r0, [r1]
- ldr r0, _0800E85C @ =0x086A7DB0
- movs r1, #9
- adds r2, r6, #0
- bl sub_358
-_0800E846:
- movs r0, #0
- strh r0, [r7]
- mov r2, r8
- strh r0, [r2]
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E85C: .4byte 0x086A7DB0
-
- thumb_func_start sub_E860
-sub_E860: @ 0x0800E860
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- ldr r0, _0800E8E8 @ =0x0202C580
- movs r1, #0
- ldrsb r1, [r0, r1]
- movs r0, #0xb8
- muls r0, r1, r0
- ldr r2, _0800E8EC @ =0x0200B3B8
- adds r5, r0, r2
- ldr r0, _0800E8F0 @ =0x0201C18C
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r5]
- ldr r0, _0800E8F4 @ =0x086A7DD4
- movs r1, #5
- bl sub_358
- ldrh r0, [r5]
- cmp r0, #1
- bne _0800E8DA
- movs r0, #0x78
- strh r0, [r5, #2]
- ldr r0, _0800E8F8 @ =0x0201A4B8
- ldrh r0, [r0]
- strh r0, [r5, #4]
- ldr r7, _0800E8FC @ =0x03005000
- ldr r0, _0800E900 @ =0xFFFFFE00
- mov r8, r0
- adds r4, r5, #0
- adds r4, #8
- ldr r2, _0800E904 @ =0x000001FF
- mov ip, r2
- movs r6, #3
-_0800E8A6:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r7
- movs r0, #2
- ldrsh r1, [r4, r0]
- movs r2, #2
- ldrsh r0, [r5, r2]
- adds r1, r1, r0
- mov r0, ip
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r7
- ldrb r0, [r5, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r6, #1
- cmp r6, #0
- bge _0800E8A6
-_0800E8DA:
- movs r0, #0
- strh r0, [r5]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E8E8: .4byte 0x0202C580
-_0800E8EC: .4byte 0x0200B3B8
-_0800E8F0: .4byte 0x0201C18C
-_0800E8F4: .4byte 0x086A7DD4
-_0800E8F8: .4byte 0x0201A4B8
-_0800E8FC: .4byte 0x03005000
-_0800E900: .4byte 0xFFFFFE00
-_0800E904: .4byte 0x000001FF
-
- thumb_func_start sub_E908
-sub_E908: @ 0x0800E908
- ldr r1, _0800E92C @ =0x0202C5F0
- movs r2, #0
- ldr r0, _0800E930 @ =0x0000CFCF
- strh r0, [r1]
- ldr r0, _0800E934 @ =0x0201C1B0
- movs r1, #1
- strh r1, [r0]
- ldr r0, _0800E938 @ =0x0202C59C
- strh r1, [r0]
- ldr r0, _0800E93C @ =0x0202ADE4
- strb r2, [r0]
- ldr r0, _0800E940 @ =0x0201A4BC
- strb r2, [r0]
- ldr r0, _0800E944 @ =0x0202C598
- strb r2, [r0]
- ldr r0, _0800E948 @ =0x0202C54C
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0800E92C: .4byte 0x0202C5F0
-_0800E930: .4byte 0x0000CFCF
-_0800E934: .4byte 0x0201C1B0
-_0800E938: .4byte 0x0202C59C
-_0800E93C: .4byte 0x0202ADE4
-_0800E940: .4byte 0x0201A4BC
-_0800E944: .4byte 0x0202C598
-_0800E948: .4byte 0x0202C54C
-
- thumb_func_start sub_E94C
-sub_E94C: @ 0x0800E94C
- push {lr}
- ldr r0, _0800E95C @ =0x0202BF20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0800E960
- bl sub_EBEC
- b _0800E964
- .align 2, 0
-_0800E95C: .4byte 0x0202BF20
-_0800E960:
- bl sub_ED28
-_0800E964:
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- pop {r1}
- bx r1
-
- thumb_func_start sub_E970
-sub_E970: @ 0x0800E970
- push {lr}
- ldr r0, _0800E980 @ =0x0202BF20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0800E984
- bl sub_E994
- b _0800E988
- .align 2, 0
-_0800E980: .4byte 0x0202BF20
-_0800E984:
- bl sub_EAC0
-_0800E988:
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- pop {r1}
- bx r1
-
- thumb_func_start sub_E994
-sub_E994: @ 0x0800E994
- push {r4, r5, lr}
- ldr r0, _0800E9B4 @ =0x0202ADE4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _0800EA04
- ldr r0, _0800E9B8 @ =0x0201A4BC
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- beq _0800E9BC
- cmp r0, #1
- beq _0800E9F4
- b _0800EAB2
- .align 2, 0
-_0800E9B4: .4byte 0x0202ADE4
-_0800E9B8: .4byte 0x0201A4BC
-_0800E9BC:
- ldr r0, _0800E9D0 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800E9DC
- ldr r1, _0800E9D4 @ =0x0202C5F0
- ldr r0, _0800E9D8 @ =0x0000DEDE
- strh r0, [r1]
- b _0800EAB2
- .align 2, 0
-_0800E9D0: .4byte 0x0200B0C0
-_0800E9D4: .4byte 0x0202C5F0
-_0800E9D8: .4byte 0x0000DEDE
-_0800E9DC:
- ldr r1, _0800E9F0 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_0800E9E4:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _0800E9E4
- b _0800EAB2
- .align 2, 0
-_0800E9F0: .4byte 0x0202C5F0
-_0800E9F4:
- ldr r1, _0800E9FC @ =0x0202C5F0
- ldr r0, _0800EA00 @ =0x0000EDED
- strh r0, [r1]
- b _0800EAB2
- .align 2, 0
-_0800E9FC: .4byte 0x0202C5F0
-_0800EA00: .4byte 0x0000EDED
-_0800EA04:
- ldr r0, _0800EA24 @ =0x0202C59C
- ldrh r2, [r0]
- adds r1, r2, #0
- adds r5, r0, #0
- cmp r1, #7
- bhi _0800EA30
- ldr r1, _0800EA28 @ =0x0202C5F0
- ldr r2, _0800EA2C @ =0x0000CFCF
- adds r0, r1, #0
- adds r0, #0xe
-_0800EA18:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _0800EA18
- b _0800EAAC
- .align 2, 0
-_0800EA24: .4byte 0x0202C59C
-_0800EA28: .4byte 0x0202C5F0
-_0800EA2C: .4byte 0x0000CFCF
-_0800EA30:
- cmp r1, #9
- bhi _0800EA9C
- adds r0, r2, #0
- subs r0, #8
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- ldr r3, _0800EA94 @ =0x0202C5F0
- movs r4, #0
- strh r2, [r3]
- ldr r1, _0800EA98 @ =0x0202C610
- mov ip, r1
- lsls r2, r0, #1
- adds r2, r2, r0
- lsls r2, r2, #6
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r1, r1, #8
- mov r0, ip
- adds r0, #4
- adds r0, r2, r0
- ldr r0, [r0]
- orrs r0, r1
- strh r0, [r3, #2]
- mov r0, ip
- adds r0, #8
- adds r0, r2, r0
- ldr r1, [r0]
- lsls r1, r1, #8
- mov r0, ip
- adds r0, #0xc
- adds r0, r2, r0
- ldr r0, [r0]
- orrs r0, r1
- strh r0, [r3, #4]
- mov r0, ip
- adds r0, #0x10
- adds r0, r2, r0
- ldrh r1, [r0, #2]
- strh r1, [r3, #6]
- ldr r0, [r0]
- strh r0, [r3, #8]
- mov r0, ip
- adds r0, #0x14
- adds r2, r2, r0
- ldrh r0, [r2, #2]
- strh r0, [r3, #0xa]
- ldr r0, [r2]
- strh r0, [r3, #0xc]
- strh r4, [r3, #0xe]
- b _0800EAAC
- .align 2, 0
-_0800EA94: .4byte 0x0202C5F0
-_0800EA98: .4byte 0x0202C610
-_0800EA9C:
- ldr r1, _0800EABC @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_0800EAA4:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _0800EAA4
-_0800EAAC:
- ldrh r0, [r5]
- adds r0, #1
- strh r0, [r5]
-_0800EAB2:
- movs r0, #0
- pop {r4, r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0800EABC: .4byte 0x0202C5F0
-
- thumb_func_start sub_EAC0
-sub_EAC0: @ 0x0800EAC0
- push {r4, r5, lr}
- ldr r0, _0800EAE0 @ =0x0202ADE4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- bne _0800EB30
- ldr r0, _0800EAE4 @ =0x0202C598
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0
- beq _0800EAE8
- cmp r0, #1
- beq _0800EB20
- b _0800EBDE
- .align 2, 0
-_0800EAE0: .4byte 0x0202ADE4
-_0800EAE4: .4byte 0x0202C598
-_0800EAE8:
- ldr r0, _0800EAFC @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0800EB08
- ldr r1, _0800EB00 @ =0x0202C5F0
- ldr r0, _0800EB04 @ =0x0000DEDE
- strh r0, [r1]
- b _0800EBDE
- .align 2, 0
-_0800EAFC: .4byte 0x0200B0C0
-_0800EB00: .4byte 0x0202C5F0
-_0800EB04: .4byte 0x0000DEDE
-_0800EB08:
- ldr r1, _0800EB1C @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_0800EB10:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _0800EB10
- b _0800EBDE
- .align 2, 0
-_0800EB1C: .4byte 0x0202C5F0
-_0800EB20:
- ldr r1, _0800EB28 @ =0x0202C5F0
- ldr r0, _0800EB2C @ =0x0000EDED
- strh r0, [r1]
- b _0800EBDE
- .align 2, 0
-_0800EB28: .4byte 0x0202C5F0
-_0800EB2C: .4byte 0x0000EDED
-_0800EB30:
- ldr r0, _0800EB50 @ =0x0202C59C
- ldrh r2, [r0]
- adds r1, r2, #0
- adds r5, r0, #0
- cmp r1, #7
- bhi _0800EB5C
- ldr r1, _0800EB54 @ =0x0202C5F0
- ldr r2, _0800EB58 @ =0x0000CFCF
- adds r0, r1, #0
- adds r0, #0xe
-_0800EB44:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _0800EB44
- b _0800EBD8
- .align 2, 0
-_0800EB50: .4byte 0x0202C59C
-_0800EB54: .4byte 0x0202C5F0
-_0800EB58: .4byte 0x0000CFCF
-_0800EB5C:
- cmp r1, #9
- bhi _0800EBC8
- adds r0, r2, #0
- subs r0, #8
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- ldr r3, _0800EBC0 @ =0x0202C5F0
- movs r4, #0
- strh r2, [r3]
- ldr r1, _0800EBC4 @ =0x0202C610
- mov ip, r1
- lsls r2, r0, #1
- adds r2, r2, r0
- lsls r2, r2, #6
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r1, r1, #8
- mov r0, ip
- adds r0, #4
- adds r0, r2, r0
- ldr r0, [r0]
- orrs r0, r1
- strh r0, [r3, #2]
- mov r0, ip
- adds r0, #8
- adds r0, r2, r0
- ldr r1, [r0]
- lsls r1, r1, #8
- mov r0, ip
- adds r0, #0xc
- adds r0, r2, r0
- ldr r0, [r0]
- orrs r0, r1
- strh r0, [r3, #4]
- mov r0, ip
- adds r0, #0x10
- adds r0, r2, r0
- ldrh r1, [r0, #2]
- strh r1, [r3, #6]
- ldr r0, [r0]
- strh r0, [r3, #8]
- mov r0, ip
- adds r0, #0x14
- adds r2, r2, r0
- ldrh r0, [r2, #2]
- strh r0, [r3, #0xa]
- ldr r0, [r2]
- strh r0, [r3, #0xc]
- strh r4, [r3, #0xe]
- b _0800EBD8
- .align 2, 0
-_0800EBC0: .4byte 0x0202C5F0
-_0800EBC4: .4byte 0x0202C610
-_0800EBC8:
- ldr r1, _0800EBE8 @ =0x0202C5F0
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xe
-_0800EBD0:
- strh r2, [r0]
- subs r0, #2
- cmp r0, r1
- bge _0800EBD0
-_0800EBD8:
- ldrh r0, [r5]
- adds r0, #1
- strh r0, [r5]
-_0800EBDE:
- movs r0, #0
- pop {r4, r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0800EBE8: .4byte 0x0202C5F0
-
- thumb_func_start sub_EBEC
-sub_EBEC: @ 0x0800EBEC
- push {r4, r5, lr}
- ldr r4, _0800EC08 @ =0x0202ADE4
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _0800EC7C
- ldr r3, _0800EC0C @ =0x0201A4BC
- movs r1, #0
- ldrsb r1, [r3, r1]
- cmp r1, #0
- beq _0800EC10
- cmp r1, #1
- beq _0800EC30
- b _0800ECFC
- .align 2, 0
-_0800EC08: .4byte 0x0202ADE4
-_0800EC0C: .4byte 0x0201A4BC
-_0800EC10:
- ldr r2, _0800EC28 @ =0x0201A4D0
- ldrh r0, [r2]
- ldr r1, _0800EC2C @ =0x0000DEDE
- cmp r0, r1
- beq _0800EC20
- ldrh r0, [r2, #2]
- cmp r0, r1
- bne _0800ECFC
-_0800EC20:
- movs r0, #1
- strb r0, [r3]
- b _0800ECFC
- .align 2, 0
-_0800EC28: .4byte 0x0201A4D0
-_0800EC2C: .4byte 0x0000DEDE
-_0800EC30:
- ldr r3, _0800EC54 @ =0x0201A4D0
- ldrh r2, [r3]
- ldr r0, _0800EC58 @ =0x0000EDED
- cmp r2, r0
- bne _0800EC64
- ldrh r0, [r3, #2]
- cmp r0, r2
- bne _0800EC64
- movs r2, #1
- rsbs r2, r2, #0
- adds r0, r2, #0
- strb r0, [r4]
- ldr r0, _0800EC5C @ =0x0202BEBC
- strb r1, [r0]
- ldr r0, _0800EC60 @ =0x0202C59C
- strh r1, [r0]
- b _0800ECFC
- .align 2, 0
-_0800EC54: .4byte 0x0201A4D0
-_0800EC58: .4byte 0x0000EDED
-_0800EC5C: .4byte 0x0202BEBC
-_0800EC60: .4byte 0x0202C59C
-_0800EC64:
- ldr r1, _0800EC78 @ =0x0202C54C
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0xa
- ble _0800ECFC
- movs r0, #1
- b _0800ED1E
- .align 2, 0
-_0800EC78: .4byte 0x0202C54C
-_0800EC7C:
- ldr r4, _0800ECF0 @ =0x0201A4D0
- ldrh r5, [r4, #2]
- adds r0, r5, #0
- subs r0, #8
- lsls r0, r0, #0x10
- lsrs r1, r0, #0x10
- cmp r1, #1
- bhi _0800ED1C
- ldr r0, _0800ECF4 @ =0x0201C1B0
- strh r5, [r0]
- ldr r0, _0800ECF8 @ =0x0202C550
- mov ip, r0
- lsls r3, r1, #1
- adds r3, r3, r1
- lsls r3, r3, #3
- adds r1, r3, r0
- ldrh r0, [r4, #6]
- lsrs r0, r0, #8
- str r0, [r1]
- mov r0, ip
- adds r0, #4
- adds r0, r3, r0
- ldrb r1, [r4, #6]
- str r1, [r0]
- mov r1, ip
- adds r1, #8
- adds r1, r3, r1
- ldrh r0, [r4, #0xa]
- lsrs r0, r0, #8
- str r0, [r1]
- mov r0, ip
- adds r0, #0xc
- adds r0, r3, r0
- ldrb r1, [r4, #0xa]
- str r1, [r0]
- mov r2, ip
- adds r2, #0x10
- adds r2, r3, r2
- ldrh r0, [r4, #0xe]
- lsls r0, r0, #0x10
- ldrh r1, [r4, #0x12]
- orrs r0, r1
- str r0, [r2]
- mov r0, ip
- adds r0, #0x14
- adds r3, r3, r0
- ldrh r0, [r4, #0x16]
- lsls r0, r0, #0x10
- ldrh r1, [r4, #0x1a]
- orrs r0, r1
- str r0, [r3]
- lsls r0, r5, #0x10
- lsrs r0, r0, #0x10
- cmp r0, #9
- bne _0800ECFC
- movs r0, #1
- rsbs r0, r0, #0
- b _0800ED1E
- .align 2, 0
-_0800ECF0: .4byte 0x0201A4D0
-_0800ECF4: .4byte 0x0201C1B0
-_0800ECF8: .4byte 0x0202C550
-_0800ECFC:
- movs r1, #0
- ldr r4, _0800ED24 @ =0x0201A4D0
- movs r3, #0
-_0800ED02:
- lsls r0, r1, #2
- adds r2, r1, #1
- movs r1, #1
- adds r0, r0, r4
- adds r0, #2
-_0800ED0C:
- strh r3, [r0]
- subs r0, #2
- subs r1, #1
- cmp r1, #0
- bge _0800ED0C
- adds r1, r2, #0
- cmp r1, #7
- ble _0800ED02
-_0800ED1C:
- movs r0, #0
-_0800ED1E:
- pop {r4, r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0800ED24: .4byte 0x0201A4D0
-
- thumb_func_start sub_ED28
-sub_ED28: @ 0x0800ED28
- push {r4, r5, lr}
- ldr r4, _0800ED44 @ =0x0202ADE4
- movs r0, #0
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bne _0800EDB8
- ldr r3, _0800ED48 @ =0x0202C598
- movs r1, #0
- ldrsb r1, [r3, r1]
- cmp r1, #0
- beq _0800ED4C
- cmp r1, #1
- beq _0800ED6C
- b _0800EE38
- .align 2, 0
-_0800ED44: .4byte 0x0202ADE4
-_0800ED48: .4byte 0x0202C598
-_0800ED4C:
- ldr r2, _0800ED64 @ =0x0201A4D0
- ldrh r0, [r2]
- ldr r1, _0800ED68 @ =0x0000DEDE
- cmp r0, r1
- beq _0800ED5C
- ldrh r0, [r2, #2]
- cmp r0, r1
- bne _0800EE38
-_0800ED5C:
- movs r0, #1
- strb r0, [r3]
- b _0800EE38
- .align 2, 0
-_0800ED64: .4byte 0x0201A4D0
-_0800ED68: .4byte 0x0000DEDE
-_0800ED6C:
- ldr r3, _0800ED90 @ =0x0201A4D0
- ldrh r2, [r3]
- ldr r0, _0800ED94 @ =0x0000EDED
- cmp r2, r0
- bne _0800EDA0
- ldrh r0, [r3, #2]
- cmp r0, r2
- bne _0800EDA0
- movs r2, #1
- rsbs r2, r2, #0
- adds r0, r2, #0
- strb r0, [r4]
- ldr r0, _0800ED98 @ =0x0202BEBC
- strb r1, [r0]
- ldr r0, _0800ED9C @ =0x0202C59C
- strh r1, [r0]
- b _0800EE38
- .align 2, 0
-_0800ED90: .4byte 0x0201A4D0
-_0800ED94: .4byte 0x0000EDED
-_0800ED98: .4byte 0x0202BEBC
-_0800ED9C: .4byte 0x0202C59C
-_0800EDA0:
- ldr r1, _0800EDB4 @ =0x0202C54C
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0xa
- ble _0800EE38
- movs r0, #1
- b _0800EE5A
- .align 2, 0
-_0800EDB4: .4byte 0x0202C54C
-_0800EDB8:
- ldr r4, _0800EE2C @ =0x0201A4D0
- ldrh r5, [r4]
- adds r0, r5, #0
- subs r0, #8
- lsls r0, r0, #0x10
- lsrs r1, r0, #0x10
- cmp r1, #1
- bhi _0800EE58
- ldr r0, _0800EE30 @ =0x0201C1B0
- strh r5, [r0]
- ldr r0, _0800EE34 @ =0x0202C550
- mov ip, r0
- lsls r3, r1, #1
- adds r3, r3, r1
- lsls r3, r3, #3
- adds r1, r3, r0
- ldrh r0, [r4, #4]
- lsrs r0, r0, #8
- str r0, [r1]
- mov r0, ip
- adds r0, #4
- adds r0, r3, r0
- ldrb r1, [r4, #4]
- str r1, [r0]
- mov r1, ip
- adds r1, #8
- adds r1, r3, r1
- ldrh r0, [r4, #8]
- lsrs r0, r0, #8
- str r0, [r1]
- mov r0, ip
- adds r0, #0xc
- adds r0, r3, r0
- ldrb r1, [r4, #8]
- str r1, [r0]
- mov r2, ip
- adds r2, #0x10
- adds r2, r3, r2
- ldrh r0, [r4, #0xc]
- lsls r0, r0, #0x10
- ldrh r1, [r4, #0x10]
- orrs r0, r1
- str r0, [r2]
- mov r0, ip
- adds r0, #0x14
- adds r3, r3, r0
- ldrh r0, [r4, #0x14]
- lsls r0, r0, #0x10
- ldrh r1, [r4, #0x18]
- orrs r0, r1
- str r0, [r3]
- lsls r0, r5, #0x10
- lsrs r0, r0, #0x10
- cmp r0, #9
- bne _0800EE38
- movs r0, #1
- rsbs r0, r0, #0
- b _0800EE5A
- .align 2, 0
-_0800EE2C: .4byte 0x0201A4D0
-_0800EE30: .4byte 0x0201C1B0
-_0800EE34: .4byte 0x0202C550
-_0800EE38:
- movs r1, #0
- ldr r4, _0800EE60 @ =0x0201A4D0
- movs r3, #0
-_0800EE3E:
- lsls r0, r1, #2
- adds r2, r1, #1
- movs r1, #1
- adds r0, r0, r4
- adds r0, #2
-_0800EE48:
- strh r3, [r0]
- subs r0, #2
- subs r1, #1
- cmp r1, #0
- bge _0800EE48
- adds r1, r2, #0
- cmp r1, #7
- ble _0800EE3E
-_0800EE58:
- movs r0, #0
-_0800EE5A:
- pop {r4, r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0800EE60: .4byte 0x0201A4D0
-
- thumb_func_start sub_EE64
-sub_EE64: @ 0x0800EE64
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x10
- movs r6, #0
- ldr r4, _0800EF20 @ =0x086A7FAC
- ldr r5, _0800EF24 @ =0x0202C610
-_0800EE76:
- ldm r5!, {r0}
- lsls r0, r0, #1
- adds r0, r0, r4
- ldrh r0, [r0]
- adds r0, #0x80
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #6
- movs r1, #1
- str r1, [sp]
- str r1, [sp, #4]
- movs r1, #8
- movs r3, #3
- bl sub_105A0
- adds r6, #1
- cmp r6, #3
- ble _0800EE76
- movs r5, #1
- ldr r0, _0800EF20 @ =0x086A7FAC
- mov sb, r0
- ldr r1, _0800EF24 @ =0x0202C610
- mov sl, r1
-_0800EEA4:
- movs r6, #0
- lsls r7, r5, #1
- adds r2, r5, #1
- mov r8, r2
- adds r4, r7, #0
- adds r0, r4, r5
- lsls r0, r0, #3
- mov r1, sl
- adds r5, r0, r1
-_0800EEB6:
- ldm r5!, {r0}
- lsls r0, r0, #1
- add r0, sb
- ldrh r0, [r0]
- adds r0, #0xa0
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #6
- movs r1, #1
- str r1, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #8
- adds r3, r4, #3
- bl sub_105A0
- adds r6, #1
- cmp r6, #3
- ble _0800EEB6
- mov r5, r8
- cmp r5, #7
- ble _0800EEA4
- ldr r1, _0800EF24 @ =0x0202C610
- ldr r0, [r1, #0x10]
- ldr r1, [r1, #0x14]
- bl sub_F21C
- movs r6, #0
- movs r5, #0xc
- ldr r4, _0800EF28 @ =0x0202C5C0
- movs r7, #1
-_0800EEF4:
- adds r0, r6, #1
- movs r1, #3
- bl __modsi3
- cmp r0, #0
- bne _0800EF2C
- movs r2, #0x90
- lsls r2, r2, #1
- adds r0, r2, #0
- ldrh r1, [r4]
- adds r0, r0, r1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r7, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #9
- adds r2, r5, #0
- movs r3, #2
- bl sub_105A0
- b _0800EF44
- .align 2, 0
-_0800EF20: .4byte 0x086A7FAC
-_0800EF24: .4byte 0x0202C610
-_0800EF28: .4byte 0x0202C5C0
-_0800EF2C:
- ldrh r0, [r4]
- adds r0, #0xe0
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r7, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #9
- adds r2, r5, #0
- movs r3, #2
- bl sub_105A0
-_0800EF44:
- adds r5, #1
- adds r4, #2
- adds r6, #1
- cmp r6, #0xd
- ble _0800EEF4
- ldr r4, _0800EFC8 @ =0x0202C5C0
- ldrh r0, [r4, #0x1c]
- adds r0, #0xe0
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- movs r1, #1
- str r1, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #9
- movs r2, #0x1a
- movs r3, #2
- bl sub_105A0
- movs r5, #1
- ldr r2, _0800EFCC @ =0x0202C610
- str r2, [sp, #8]
- mov sl, r5
- movs r0, #2
- mov sb, r0
-_0800EF76:
- lsls r4, r5, #1
- adds r1, r4, r5
- lsls r1, r1, #3
- ldr r0, [sp, #8]
- adds r0, #0x10
- adds r0, r1, r0
- ldr r0, [r0]
- ldr r2, _0800EFD0 @ =0x0202C624
- adds r1, r1, r2
- ldr r1, [r1]
- bl sub_F21C
- movs r6, #0
- adds r7, r4, #0
- adds r5, #1
- mov r8, r5
- movs r5, #0xc
- ldr r4, _0800EFC8 @ =0x0202C5C0
-_0800EF9A:
- adds r0, r6, #1
- movs r1, #3
- bl __modsi3
- cmp r0, #0
- bne _0800EFD4
- movs r1, #0xd0
- lsls r1, r1, #1
- adds r0, r1, #0
- ldrh r2, [r4]
- adds r0, r0, r2
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- mov r1, sl
- str r1, [sp]
- mov r2, sb
- str r2, [sp, #4]
- movs r1, #9
- adds r2, r5, #0
- adds r3, r7, #3
- bl sub_105A0
- b _0800EFF4
- .align 2, 0
-_0800EFC8: .4byte 0x0202C5C0
-_0800EFCC: .4byte 0x0202C610
-_0800EFD0: .4byte 0x0202C624
-_0800EFD4:
- movs r1, #0xb0
- lsls r1, r1, #1
- adds r0, r1, #0
- ldrh r2, [r4]
- adds r0, r0, r2
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- mov r1, sl
- str r1, [sp]
- mov r2, sb
- str r2, [sp, #4]
- movs r1, #9
- adds r2, r5, #0
- adds r3, r7, #3
- bl sub_105A0
-_0800EFF4:
- adds r5, #1
- adds r4, #2
- adds r6, #1
- cmp r6, #0xd
- ble _0800EF9A
- movs r1, #0xb0
- lsls r1, r1, #1
- adds r0, r1, #0
- ldr r2, _0800F0E4 @ =0x0202C5C0
- ldrh r2, [r2, #0x1c]
- adds r0, r0, r2
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r3, r7, #3
- mov r1, sl
- str r1, [sp]
- mov r2, sb
- str r2, [sp, #4]
- movs r1, #9
- movs r2, #0x1a
- bl sub_105A0
- mov r5, r8
- cmp r5, #7
- ble _0800EF76
- movs r6, #0
- ldr r7, _0800F0E8 @ =0x086A7FAC
- ldr r0, _0800F0EC @ =0x0202C610
- adds r5, r0, #0
- adds r5, #0xc0
- movs r4, #1
-_0800F032:
- ldm r5!, {r0}
- lsls r0, r0, #1
- adds r0, r0, r7
- ldrh r0, [r0]
- adds r0, #0x80
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #4
- str r4, [sp]
- str r4, [sp, #4]
- movs r1, #8
- movs r3, #0x23
- bl sub_105A0
- adds r6, #1
- cmp r6, #3
- ble _0800F032
- movs r5, #1
- ldr r0, _0800F0E8 @ =0x086A7FAC
- mov sb, r0
- ldr r1, _0800F0F0 @ =0x0202C6D0
- mov sl, r1
-_0800F05E:
- movs r6, #0
- lsls r7, r5, #1
- adds r2, r5, #1
- mov r8, r2
- adds r4, r7, #0
- adds r0, r4, r5
- lsls r0, r0, #3
- mov r1, sl
- adds r5, r0, r1
-_0800F070:
- ldm r5!, {r0}
- lsls r0, r0, #1
- add r0, sb
- ldrh r0, [r0]
- adds r0, #0xa0
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #4
- movs r1, #1
- str r1, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #8
- adds r3, r4, #0
- adds r3, #0x23
- bl sub_105A0
- adds r6, #1
- cmp r6, #3
- ble _0800F070
- mov r5, r8
- cmp r5, #7
- ble _0800F05E
- ldr r1, _0800F0EC @ =0x0202C610
- adds r0, r1, #0
- adds r0, #0xd0
- ldr r0, [r0]
- adds r1, #0xd4
- ldr r1, [r1]
- bl sub_F21C
- movs r6, #0
- movs r5, #0xa
- ldr r4, _0800F0E4 @ =0x0202C5C0
- movs r7, #1
-_0800F0B6:
- adds r0, r6, #1
- movs r1, #3
- bl __modsi3
- cmp r0, #0
- bne _0800F0F4
- movs r2, #0x90
- lsls r2, r2, #1
- adds r0, r2, #0
- ldrh r1, [r4]
- adds r0, r0, r1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r7, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #9
- adds r2, r5, #0
- movs r3, #0x22
- bl sub_105A0
- b _0800F10C
- .align 2, 0
-_0800F0E4: .4byte 0x0202C5C0
-_0800F0E8: .4byte 0x086A7FAC
-_0800F0EC: .4byte 0x0202C610
-_0800F0F0: .4byte 0x0202C6D0
-_0800F0F4:
- ldrh r0, [r4]
- adds r0, #0xe0
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r7, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #9
- adds r2, r5, #0
- movs r3, #0x22
- bl sub_105A0
-_0800F10C:
- adds r5, #1
- adds r4, #2
- adds r6, #1
- cmp r6, #0xd
- ble _0800F0B6
- ldr r4, _0800F19C @ =0x0202C5C0
- lsls r0, r6, #1
- adds r0, r0, r4
- ldrh r0, [r0]
- adds r0, #0xe0
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- movs r1, #1
- str r1, [sp]
- movs r1, #2
- str r1, [sp, #4]
- movs r1, #9
- movs r2, #0x18
- movs r3, #0x22
- bl sub_105A0
- movs r5, #1
- ldr r2, _0800F1A0 @ =0x0202C610
- str r2, [sp, #0xc]
- mov sl, r5
- movs r0, #2
- mov sb, r0
-_0800F142:
- lsls r4, r5, #1
- adds r1, r4, r5
- lsls r1, r1, #3
- ldr r0, [sp, #0xc]
- adds r0, #0xd0
- adds r0, r1, r0
- ldr r0, [r0]
- ldr r2, _0800F1A4 @ =0x0202C6E4
- adds r1, r1, r2
- ldr r1, [r1]
- bl sub_F21C
- movs r6, #0
- adds r7, r4, #0
- adds r5, #1
- mov r8, r5
-_0800F162:
- adds r4, r6, #1
- adds r0, r4, #0
- movs r1, #3
- bl __modsi3
- cmp r0, #0
- bne _0800F1A8
- lsls r1, r6, #1
- ldr r0, _0800F19C @ =0x0202C5C0
- adds r1, r1, r0
- movs r2, #0xd0
- lsls r2, r2, #1
- adds r0, r2, #0
- ldrh r1, [r1]
- adds r0, r0, r1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #0
- adds r2, #0xa
- mov r1, sl
- str r1, [sp]
- mov r1, sb
- str r1, [sp, #4]
- movs r1, #9
- adds r3, r7, #0
- adds r3, #0x23
- bl sub_105A0
- b _0800F1D2
- .align 2, 0
-_0800F19C: .4byte 0x0202C5C0
-_0800F1A0: .4byte 0x0202C610
-_0800F1A4: .4byte 0x0202C6E4
-_0800F1A8:
- lsls r1, r6, #1
- ldr r2, _0800F218 @ =0x0202C5C0
- adds r1, r1, r2
- movs r2, #0xb0
- lsls r2, r2, #1
- adds r0, r2, #0
- ldrh r1, [r1]
- adds r0, r0, r1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r2, r6, #0
- adds r2, #0xa
- mov r1, sl
- str r1, [sp]
- mov r1, sb
- str r1, [sp, #4]
- movs r1, #9
- adds r3, r7, #0
- adds r3, #0x23
- bl sub_105A0
-_0800F1D2:
- adds r6, r4, #0
- cmp r4, #0xd
- ble _0800F162
- lsls r1, r4, #1
- ldr r2, _0800F218 @ =0x0202C5C0
- adds r1, r1, r2
- movs r2, #0xb0
- lsls r2, r2, #1
- adds r0, r2, #0
- ldrh r1, [r1]
- adds r0, r0, r1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r3, r7, #0
- adds r3, #0x23
- mov r1, sl
- str r1, [sp]
- mov r2, sb
- str r2, [sp, #4]
- movs r1, #9
- movs r2, #0x18
- bl sub_105A0
- mov r5, r8
- cmp r5, #7
- ble _0800F142
- add sp, #0x10
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F218: .4byte 0x0202C5C0
-
- thumb_func_start sub_F21C
-sub_F21C: @ 0x0800F21C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- adds r5, r0, #0
- adds r7, r1, #0
- cmp r5, #0
- bne _0800F250
- cmp r7, #0
- bne _0800F250
- ldr r4, _0800F24C @ =0x0202C5C0
- adds r2, r4, #0
- movs r1, #0xa
- adds r0, r4, #0
- adds r0, #0x1a
-_0800F23E:
- strh r1, [r0]
- subs r0, #2
- cmp r0, r2
- bge _0800F23E
- movs r0, #0
- strh r0, [r4, #0x1c]
- b _0800F392
- .align 2, 0
-_0800F24C: .4byte 0x0202C5C0
-_0800F250:
- ldr r0, _0800F25C @ =0x0098967F
- cmp r5, r0
- bls _0800F260
- adds r5, r0, #0
- b _0800F266
- .align 2, 0
-_0800F25C: .4byte 0x0098967F
-_0800F260:
- ldr r0, _0800F3A4 @ =0x05F5E0FF
- cmp r7, r0
- bls _0800F268
-_0800F266:
- ldr r7, _0800F3A4 @ =0x05F5E0FF
-_0800F268:
- ldr r4, _0800F3A8 @ =0x0202C5C0
- ldr r0, _0800F3AC @ =0x000F4240
- mov sl, r0
- adds r0, r5, #0
- mov r1, sl
- bl __udivsi3
- str r0, [sp]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r4]
- adds r0, r5, #0
- mov r1, sl
- bl __umodsi3
- adds r5, r0, #0
- ldr r0, _0800F3B0 @ =0x000186A0
- mov sb, r0
- adds r0, r5, #0
- mov r1, sb
- bl __udivsi3
- strh r0, [r4, #2]
- adds r0, r5, #0
- mov r1, sb
- bl __umodsi3
- adds r5, r0, #0
- ldr r1, _0800F3B4 @ =0x00002710
- mov r8, r1
- bl __udivsi3
- strh r0, [r4, #4]
- adds r0, r5, #0
- mov r1, r8
- bl __umodsi3
- adds r5, r0, #0
- movs r6, #0xfa
- lsls r6, r6, #2
- adds r1, r6, #0
- bl __udivsi3
- strh r0, [r4, #6]
- adds r0, r5, #0
- adds r1, r6, #0
- bl __umodsi3
- adds r5, r0, #0
- movs r1, #0x64
- bl __udivsi3
- strh r0, [r4, #8]
- adds r0, r5, #0
- movs r1, #0x64
- bl __umodsi3
- adds r5, r0, #0
- movs r1, #0xa
- bl __udivsi3
- strh r0, [r4, #0xa]
- adds r0, r5, #0
- movs r1, #0xa
- bl __umodsi3
- strh r0, [r4, #0xc]
- ldr r5, _0800F3B8 @ =0x00989680
- adds r0, r7, #0
- adds r1, r5, #0
- bl __udivsi3
- strh r0, [r4, #0xe]
- adds r0, r7, #0
- adds r1, r5, #0
- bl __umodsi3
- adds r5, r0, #0
- mov r1, sl
- bl __udivsi3
- strh r0, [r4, #0x10]
- adds r0, r5, #0
- mov r1, sl
- bl __umodsi3
- adds r5, r0, #0
- mov r1, sb
- bl __udivsi3
- strh r0, [r4, #0x12]
- adds r0, r5, #0
- mov r1, sb
- bl __umodsi3
- adds r5, r0, #0
- mov r1, r8
- bl __udivsi3
- strh r0, [r4, #0x14]
- adds r0, r5, #0
- mov r1, r8
- bl __umodsi3
- adds r5, r0, #0
- adds r1, r6, #0
- bl __udivsi3
- strh r0, [r4, #0x16]
- adds r0, r5, #0
- adds r1, r6, #0
- bl __umodsi3
- adds r5, r0, #0
- movs r1, #0x64
- bl __udivsi3
- strh r0, [r4, #0x18]
- adds r0, r5, #0
- movs r1, #0x64
- bl __umodsi3
- adds r5, r0, #0
- movs r1, #0xa
- bl __udivsi3
- strh r0, [r4, #0x1a]
- adds r0, r5, #0
- movs r1, #0xa
- bl __umodsi3
- strh r0, [r4, #0x1c]
- ldr r5, [sp]
- lsls r0, r5, #0x10
- cmp r0, #0
- bne _0800F392
- movs r3, #0xa
- adds r1, r4, #0
- adds r2, r4, #0
- adds r2, #0x1c
-_0800F380:
- strh r3, [r1]
- adds r4, #2
- adds r1, #2
- cmp r1, r2
- bgt _0800F392
- movs r5, #0
- ldrsh r0, [r4, r5]
- cmp r0, #0
- beq _0800F380
-_0800F392:
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F3A4: .4byte 0x05F5E0FF
-_0800F3A8: .4byte 0x0202C5C0
-_0800F3AC: .4byte 0x000F4240
-_0800F3B0: .4byte 0x000186A0
-_0800F3B4: .4byte 0x00002710
-_0800F3B8: .4byte 0x00989680
-
- thumb_func_start sub_F3BC
-sub_F3BC: @ 0x0800F3BC
- cmp r0, r2
- bhi _0800F3C8
- cmp r0, r2
- blo _0800F3D4
- cmp r1, r3
- bls _0800F3CC
-_0800F3C8:
- movs r0, #1
- b _0800F3D8
-_0800F3CC:
- cmp r1, r3
- blo _0800F3D4
- movs r0, #0
- b _0800F3D8
-_0800F3D4:
- movs r0, #1
- rsbs r0, r0, #0
-_0800F3D8:
- bx lr
-
- thumb_func_start sub_F3DC
-sub_F3DC: @ 0x0800F3DC
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- mov sb, r0
- mov r8, r1
- movs r6, #0
- ldr r7, _0800F414 @ =0x0202C610
- lsls r0, r2, #1
- adds r0, r0, r2
- lsls r0, r0, #6
- adds r1, r7, #0
- adds r1, #0x14
- adds r5, r0, r1
- adds r4, r0, #0
-_0800F3FA:
- adds r0, r7, #0
- adds r0, #0x10
- adds r0, r4, r0
- ldr r2, [r0]
- ldr r3, [r5]
- mov r0, sb
- mov r1, r8
- bl sub_F3BC
- cmp r0, #0
- blt _0800F418
- adds r0, r6, #0
- b _0800F426
- .align 2, 0
-_0800F414: .4byte 0x0202C610
-_0800F418:
- adds r5, #0x18
- adds r4, #0x18
- adds r6, #1
- cmp r6, #7
- ble _0800F3FA
- movs r0, #1
- rsbs r0, r0, #0
-_0800F426:
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-
- thumb_func_start sub_F434
-sub_F434: @ 0x0800F434
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #8
- str r0, [sp]
- str r1, [sp, #4]
- mov r8, r2
- mov sb, r3
- movs r5, #7
- ldr r0, _0800F4F8 @ =0x0202C610
- mov ip, r0
- cmp r5, sb
- ble _0800F4A4
- mov sl, ip
- lsls r0, r2, #1
- add r0, r8
- lsls r1, r0, #6
- mov r2, ip
- adds r0, r2, r1
- adds r3, r0, #0
- adds r3, #0x90
- adds r7, r1, #0
- adds r7, #0x90
- adds r6, r1, #0
- adds r6, #0xa8
- adds r0, r1, #0
- adds r0, #0xac
- adds r4, r0, r2
- subs r0, #0x18
- adds r2, r0, r2
-_0800F474:
- ldr r0, [r3]
- str r0, [r3, #0x18]
- ldr r0, [r2]
- str r0, [r4]
- ldr r0, [r2, #4]
- str r0, [r4, #4]
- ldr r0, [r2, #8]
- str r0, [r4, #8]
- mov r0, sl
- adds r0, #0x10
- adds r1, r6, r0
- adds r0, r7, r0
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r3, #0x14]
- str r0, [r3, #0x2c]
- subs r3, #0x18
- subs r2, #0x18
- subs r7, #0x18
- subs r4, #0x18
- subs r6, #0x18
- subs r5, #1
- cmp r5, sb
- bgt _0800F474
-_0800F4A4:
- lsls r1, r5, #1
- adds r1, r1, r5
- lsls r1, r1, #3
- mov r2, r8
- lsls r0, r2, #1
- add r0, r8
- lsls r0, r0, #6
- adds r1, r1, r0
- mov r2, ip
- adds r0, r1, r2
- movs r2, #0
- str r2, [r0]
- mov r0, ip
- adds r0, #4
- adds r0, r1, r0
- str r2, [r0]
- mov r0, ip
- adds r0, #8
- adds r0, r1, r0
- str r2, [r0]
- mov r0, ip
- adds r0, #0xc
- adds r0, r1, r0
- str r2, [r0]
- mov r0, ip
- adds r0, #0x10
- adds r0, r1, r0
- ldr r2, [sp]
- str r2, [r0]
- mov r0, ip
- adds r0, #0x14
- adds r1, r1, r0
- ldr r0, [sp, #4]
- str r0, [r1]
- add sp, #8
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F4F8: .4byte 0x0202C610
-
- thumb_func_start sub_F4FC
-sub_F4FC: @ 0x0800F4FC
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- str r0, [sp]
- ldr r0, _0800F668 @ =0x0202C550
- mov r8, r0
- ldr r1, [sp]
- lsls r4, r1, #1
- adds r4, r4, r1
- lsls r0, r4, #3
- mov sb, r0
- mov r6, r8
- adds r6, #0x10
- add r6, sb
- ldr r0, [r6]
- mov r5, r8
- adds r5, #0x14
- add r5, sb
- ldr r1, [r5]
- ldr r2, [sp]
- bl sub_F3DC
- mov sl, r0
- ldr r7, _0800F66C @ =0x0202C610
- lsls r0, r0, #1
- add r0, sl
- lsls r0, r0, #3
- lsls r4, r4, #6
- adds r4, r0, r4
- adds r0, r7, #0
- adds r0, #0x10
- adds r0, r4, r0
- ldr r0, [r0]
- adds r1, r7, #0
- adds r1, #0x14
- adds r1, r4, r1
- ldr r1, [r1]
- ldr r2, [r6]
- ldr r3, [r5]
- bl sub_F3BC
- mov ip, r8
- cmp r0, #0
- bne _0800F5A2
- adds r0, r4, r7
- mov r1, sb
- add r1, ip
- ldr r2, [r0]
- ldr r0, [r1]
- cmp r2, r0
- bne _0800F5A2
- adds r1, r7, #4
- adds r1, r4, r1
- mov r0, ip
- adds r0, #4
- add r0, sb
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- bne _0800F5A2
- adds r1, r7, #0
- adds r1, #8
- adds r1, r4, r1
- mov r0, ip
- adds r0, #8
- add r0, sb
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- bne _0800F5A2
- adds r1, r7, #0
- adds r1, #0xc
- adds r1, r4, r1
- mov r0, ip
- adds r0, #0xc
- add r0, sb
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- beq _0800F656
-_0800F5A2:
- movs r0, #1
- rsbs r0, r0, #0
- cmp sl, r0
- beq _0800F656
- movs r4, #7
- ldr r1, _0800F668 @ =0x0202C550
- mov ip, r1
- ldr r0, [sp]
- lsls r3, r0, #1
- ldr r1, _0800F66C @ =0x0202C610
- mov r8, r1
- cmp r4, sl
- ble _0800F5EA
- mov r7, r8
- adds r0, r3, r0
- lsls r6, r0, #6
-_0800F5C2:
- movs r5, #0
- lsls r0, r4, #1
- subs r1, r4, #1
- adds r0, r0, r4
- lsls r0, r0, #3
- adds r0, r0, r6
- adds r2, r0, r7
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r0, r0, r6
- adds r4, r0, r7
-_0800F5DA:
- ldm r4!, {r0}
- stm r2!, {r0}
- adds r5, #1
- cmp r5, #5
- ble _0800F5DA
- adds r4, r1, #0
- cmp r4, sl
- bgt _0800F5C2
-_0800F5EA:
- lsls r2, r4, #1
- adds r2, r2, r4
- lsls r2, r2, #3
- ldr r4, [sp]
- adds r3, r3, r4
- lsls r0, r3, #6
- adds r2, r2, r0
- mov r0, r8
- adds r1, r2, r0
- lsls r3, r3, #3
- mov r4, ip
- adds r0, r3, r4
- ldr r0, [r0]
- str r0, [r1]
- mov r1, r8
- adds r1, #4
- adds r1, r2, r1
- mov r0, ip
- adds r0, #4
- adds r0, r3, r0
- ldr r0, [r0]
- str r0, [r1]
- mov r1, r8
- adds r1, #8
- adds r1, r2, r1
- mov r0, ip
- adds r0, #8
- adds r0, r3, r0
- ldr r0, [r0]
- str r0, [r1]
- mov r1, r8
- adds r1, #0xc
- adds r1, r2, r1
- mov r0, ip
- adds r0, #0xc
- adds r0, r3, r0
- ldr r0, [r0]
- str r0, [r1]
- mov r1, r8
- adds r1, #0x10
- adds r1, r2, r1
- mov r0, ip
- adds r0, #0x10
- adds r0, r3, r0
- ldr r0, [r0]
- str r0, [r1]
- mov r0, r8
- adds r0, #0x14
- adds r2, r2, r0
- mov r0, ip
- adds r0, #0x14
- adds r3, r3, r0
- ldr r0, [r3]
- str r0, [r2]
-_0800F656:
- mov r0, sl
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0800F668: .4byte 0x0202C550
-_0800F66C: .4byte 0x0202C610
-
- thumb_func_start sub_F670
-sub_F670: @ 0x0800F670
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #8
- adds r7, r0, #0
- mov r8, r2
- ldr r2, _0800F6D8 @ =0x086A7FAC
- lsls r0, r7, #1
- adds r0, r0, r2
- ldrh r7, [r0]
- ldr r6, _0800F6DC @ =0x08079730
- lsls r4, r1, #1
- adds r4, r4, r1
- lsls r4, r4, #2
- lsls r0, r3, #1
- adds r0, r0, r3
- lsls r0, r0, #5
- adds r4, r4, r0
- adds r0, r6, #0
- adds r0, #8
- adds r0, r4, r0
- ldr r5, [r0]
- lsls r0, r5, #5
- adds r1, r7, #0
- adds r1, #0x80
- adds r0, r0, r1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r1, r4, r6
- mov r2, r8
- lsls r2, r2, #0x10
- asrs r2, r2, #0x10
- mov r8, r2
- ldr r2, [r1]
- add r2, r8
- adds r6, #4
- adds r4, r4, r6
- ldr r3, [r4]
- movs r1, #1
- str r1, [sp]
- adds r5, #1
- str r5, [sp, #4]
- movs r1, #8
- bl sub_105A0
- add sp, #8
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F6D8: .4byte 0x086A7FAC
-_0800F6DC: .4byte 0x08079730
-
- thumb_func_start sub_F6E0
-sub_F6E0: @ 0x0800F6E0
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- ldr r1, _0800F740 @ =0x0202BEB0
- movs r0, #0
- strb r0, [r1]
- movs r2, #0
- ldr r0, _0800F744 @ =0x0200B134
- mov r8, r0
- ldr r3, _0800F748 @ =0x08079430
- mov ip, r3
-_0800F6F8:
- movs r1, #0
- lsls r0, r2, #1
- adds r7, r2, #1
- mov sb, r7
- adds r0, r0, r2
- lsls r5, r0, #6
- adds r6, r5, #0
- adds r6, #0xe4
-_0800F708:
- lsls r0, r1, #1
- adds r4, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #3
- adds r1, r0, r6
- add r1, r8
- adds r2, r0, r5
- movs r3, #5
-_0800F718:
- mov r7, ip
- adds r0, r2, r7
- ldr r0, [r0]
- stm r1!, {r0}
- adds r2, #4
- subs r3, #1
- cmp r3, #0
- bge _0800F718
- adds r1, r4, #0
- cmp r1, #7
- ble _0800F708
- mov r2, sb
- cmp r2, #1
- ble _0800F6F8
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F740: .4byte 0x0202BEB0
-_0800F744: .4byte 0x0200B134
-_0800F748: .4byte 0x08079430
-
- thumb_func_start sub_F74C
-sub_F74C: @ 0x0800F74C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x14
- movs r0, #0
- mov r8, r0
- ldr r1, _0800F85C @ =0x0200B134
- str r1, [sp]
-_0800F760:
- bl sub_C00
- movs r1, #0x2a
- bl __umodsi3
- lsls r0, r0, #0x18
- lsrs r4, r0, #0x18
- mov r3, r8
- lsls r2, r3, #1
- adds r1, r2, r3
- lsls r1, r1, #6
- ldr r3, _0800F860 @ =0x0200B218
- adds r0, r1, r3
- str r4, [r0]
- mov sb, r2
- mov r0, r8
- adds r0, #1
- str r0, [sp, #8]
- ldr r2, [sp]
- adds r1, r2, r1
- adds r6, r1, #0
- adds r6, #0xe8
- movs r5, #2
-_0800F78E:
- bl sub_C00
- movs r1, #0xa
- bl __umodsi3
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #7
- bhi _0800F7AE
- bl sub_C00
- movs r1, #0x2a
- bl __umodsi3
- lsls r0, r0, #0x18
- lsrs r4, r0, #0x18
-_0800F7AE:
- stm r6!, {r4}
- subs r5, #1
- cmp r5, #0
- bge _0800F78E
- bl sub_C00
- adds r7, r0, #0
- bl sub_C00
- adds r6, r0, #0
- mov r0, sb
- add r0, r8
- lsls r0, r0, #6
- ldr r1, [sp]
- adds r1, #0xf4
- adds r1, r0, r1
- str r7, [r1]
- ldr r3, _0800F864 @ =0x0200B22C
- adds r1, r0, r3
- str r6, [r1]
- movs r1, #1
- mov r8, r1
- ldr r2, [sp]
- str r2, [sp, #4]
- mov sl, r0
-_0800F7E0:
- bl sub_C00
- movs r1, #0x2a
- bl __umodsi3
- lsls r0, r0, #0x18
- lsrs r4, r0, #0x18
- mov r3, r8
- lsls r2, r3, #1
- adds r1, r2, r3
- lsls r1, r1, #3
- mov r3, sl
- adds r0, r1, r3
- ldr r3, _0800F860 @ =0x0200B218
- adds r0, r0, r3
- str r4, [r0]
- str r2, [sp, #0x10]
- mov r0, r8
- adds r0, #1
- str r0, [sp, #0xc]
- adds r1, #4
- movs r5, #2
- adds r0, r3, #0
- add r0, sl
- adds r1, r1, r0
- mov sb, r1
-_0800F814:
- bl sub_C00
- movs r1, #0xa
- bl __umodsi3
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #7
- bhi _0800F834
- bl sub_C00
- movs r1, #0x2a
- bl __umodsi3
- lsls r0, r0, #0x18
- lsrs r4, r0, #0x18
-_0800F834:
- mov r1, sb
- adds r1, #4
- mov sb, r1
- subs r1, #4
- stm r1!, {r4}
- subs r5, #1
- cmp r5, #0
- bge _0800F814
- bl sub_C00
- adds r1, r7, #0
- bl __umodsi3
- adds r7, r0, #0
- cmp r7, #0
- beq _0800F868
- bl sub_C00
- b _0800F872
- .align 2, 0
-_0800F85C: .4byte 0x0200B134
-_0800F860: .4byte 0x0200B218
-_0800F864: .4byte 0x0200B22C
-_0800F868:
- bl sub_C00
- adds r1, r6, #0
- bl __umodsi3
-_0800F872:
- adds r6, r0, #0
- ldr r1, [sp, #0x10]
- add r1, r8
- lsls r1, r1, #3
- add r1, sl
- ldr r0, [sp, #4]
- adds r0, #0xf4
- adds r0, r1, r0
- str r7, [r0]
- ldr r2, _0800F8AC @ =0x0200B22C
- adds r1, r1, r2
- str r6, [r1]
- ldr r3, [sp, #0xc]
- mov r8, r3
- cmp r3, #7
- ble _0800F7E0
- ldr r0, [sp, #8]
- mov r8, r0
- cmp r0, #1
- bgt _0800F89C
- b _0800F760
-_0800F89C:
- add sp, #0x14
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F8AC: .4byte 0x0200B22C
-
- thumb_func_start sub_F8B0
-sub_F8B0: @ 0x0800F8B0
- push {r4, r5, r6, r7, lr}
- lsls r2, r2, #0x10
- lsrs r5, r2, #0x10
- cmp r0, #0
- beq _0800F8BC
- b _0800F9CC
-_0800F8BC:
- cmp r1, #0
- bne _0800F93C
- ldr r0, _0800F924 @ =0x03005C00
- ldr r7, _0800F928 @ =0x000090EA
- ldr r6, _0800F92C @ =0x0000912A
- ldr r1, _0800F930 @ =0x086A7FA4
- adds r2, r0, #0
- adds r2, #0x98
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r1
- movs r4, #0xe
-_0800F8D4:
- ldrh r1, [r2]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800F8E8
- cmp r0, r6
- beq _0800F8E8
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r1, r0
- strh r0, [r2]
-_0800F8E8:
- adds r2, #2
- subs r4, #1
- cmp r4, #0
- bge _0800F8D4
- ldr r0, _0800F924 @ =0x03005C00
- ldr r7, _0800F934 @ =0x0000910A
- ldr r6, _0800F938 @ =0x0000914A
- ldr r1, _0800F930 @ =0x086A7FA4
- adds r3, r0, #0
- adds r3, #0xd8
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r1
- movs r4, #0xe
-_0800F904:
- ldrh r1, [r3]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800F918
- cmp r0, r6
- beq _0800F918
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r1, r0
- strh r0, [r3]
-_0800F918:
- adds r3, #2
- subs r4, #1
- cmp r4, #0
- bge _0800F904
- b _0800FAC2
- .align 2, 0
-_0800F924: .4byte 0x03005C00
-_0800F928: .4byte 0x000090EA
-_0800F92C: .4byte 0x0000912A
-_0800F930: .4byte 0x086A7FA4
-_0800F934: .4byte 0x0000910A
-_0800F938: .4byte 0x0000914A
-_0800F93C:
- lsls r1, r1, #1
- adds r0, r1, #3
- lsls r0, r0, #5
- adds r3, r0, #0
- adds r3, #0xc
- adds r6, r1, #0
- ldr r1, _0800F9B4 @ =0x03005C00
- ldr r0, _0800F9B8 @ =0x0000916A
- mov ip, r0
- ldr r7, _0800F9BC @ =0x000091AA
- ldr r2, _0800F9C0 @ =0x086A7FA4
- lsls r0, r3, #1
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r2
- movs r4, #0xe
-_0800F95E:
- ldrh r2, [r1]
- adds r0, r2, #0
- cmp r0, ip
- beq _0800F972
- cmp r0, r7
- beq _0800F972
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r2, r0
- strh r0, [r1]
-_0800F972:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800F95E
- adds r0, r6, #4
- lsls r0, r0, #5
- adds r3, r0, #0
- adds r3, #0xc
- ldr r1, _0800F9B4 @ =0x03005C00
- ldr r7, _0800F9C4 @ =0x0000918A
- ldr r6, _0800F9C8 @ =0x000091CA
- ldr r2, _0800F9C0 @ =0x086A7FA4
- lsls r0, r3, #1
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r2
- movs r4, #0xe
-_0800F996:
- ldrh r3, [r1]
- adds r0, r3, #0
- cmp r0, r7
- beq _0800F9AA
- cmp r0, r6
- beq _0800F9AA
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r3, r0
- strh r0, [r1]
-_0800F9AA:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800F996
- b _0800FAC2
- .align 2, 0
-_0800F9B4: .4byte 0x03005C00
-_0800F9B8: .4byte 0x0000916A
-_0800F9BC: .4byte 0x000091AA
-_0800F9C0: .4byte 0x086A7FA4
-_0800F9C4: .4byte 0x0000918A
-_0800F9C8: .4byte 0x000091CA
-_0800F9CC:
- cmp r1, #0
- bne _0800FA54
- ldr r0, _0800FA34 @ =0x03005C00
- ldr r7, _0800FA38 @ =0x000090EA
- ldr r6, _0800FA3C @ =0x0000912A
- ldr r1, _0800FA40 @ =0x086A7FA4
- ldr r3, _0800FA44 @ =0x00000894
- adds r2, r0, r3
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r1
- movs r4, #0xe
-_0800F9E4:
- ldrh r1, [r2]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800F9F8
- cmp r0, r6
- beq _0800F9F8
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r1, r0
- strh r0, [r2]
-_0800F9F8:
- adds r2, #2
- subs r4, #1
- cmp r4, #0
- bge _0800F9E4
- ldr r0, _0800FA34 @ =0x03005C00
- ldr r7, _0800FA48 @ =0x0000910A
- ldr r6, _0800FA4C @ =0x0000914A
- ldr r1, _0800FA40 @ =0x086A7FA4
- ldr r4, _0800FA50 @ =0x000008D4
- adds r3, r0, r4
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r1
- movs r4, #0xe
-_0800FA14:
- ldrh r1, [r3]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800FA28
- cmp r0, r6
- beq _0800FA28
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r1, r0
- strh r0, [r3]
-_0800FA28:
- adds r3, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FA14
- b _0800FAC2
- .align 2, 0
-_0800FA34: .4byte 0x03005C00
-_0800FA38: .4byte 0x000090EA
-_0800FA3C: .4byte 0x0000912A
-_0800FA40: .4byte 0x086A7FA4
-_0800FA44: .4byte 0x00000894
-_0800FA48: .4byte 0x0000910A
-_0800FA4C: .4byte 0x0000914A
-_0800FA50: .4byte 0x000008D4
-_0800FA54:
- lsls r0, r1, #1
- lsls r3, r0, #6
- adds r6, r0, #0
- ldr r1, _0800FAC8 @ =0x03005C00
- ldr r0, _0800FACC @ =0x0000916A
- mov ip, r0
- ldr r7, _0800FAD0 @ =0x000091AA
- ldr r2, _0800FAD4 @ =0x086A7FA4
- ldr r4, _0800FAD8 @ =0x000008D4
- adds r0, r3, r4
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r2
- movs r4, #0xe
-_0800FA72:
- ldrh r2, [r1]
- adds r0, r2, #0
- cmp r0, ip
- beq _0800FA86
- cmp r0, r7
- beq _0800FA86
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r2, r0
- strh r0, [r1]
-_0800FA86:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FA72
- lsls r3, r6, #6
- ldr r1, _0800FAC8 @ =0x03005C00
- ldr r7, _0800FADC @ =0x0000918A
- ldr r6, _0800FAE0 @ =0x000091CA
- ldr r2, _0800FAD4 @ =0x086A7FA4
- ldr r4, _0800FAE4 @ =0x00000914
- adds r0, r3, r4
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r2
- movs r4, #0xe
-_0800FAA6:
- ldrh r3, [r1]
- adds r0, r3, #0
- cmp r0, r7
- beq _0800FABA
- cmp r0, r6
- beq _0800FABA
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r3, r0
- strh r0, [r1]
-_0800FABA:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FAA6
-_0800FAC2:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FAC8: .4byte 0x03005C00
-_0800FACC: .4byte 0x0000916A
-_0800FAD0: .4byte 0x000091AA
-_0800FAD4: .4byte 0x086A7FA4
-_0800FAD8: .4byte 0x000008D4
-_0800FADC: .4byte 0x0000918A
-_0800FAE0: .4byte 0x000091CA
-_0800FAE4: .4byte 0x00000914
-
- thumb_func_start sub_FAE8
-sub_FAE8: @ 0x0800FAE8
- push {r4, r5, r6, r7, lr}
- lsls r2, r2, #0x10
- lsrs r5, r2, #0x10
- cmp r0, #0
- beq _0800FAF4
- b _0800FC04
-_0800FAF4:
- cmp r1, #0
- bne _0800FB74
- ldr r0, _0800FB5C @ =0x03005C00
- ldr r7, _0800FB60 @ =0x000090EA
- ldr r6, _0800FB64 @ =0x0000912A
- ldr r1, _0800FB68 @ =0x086A7FA8
- adds r2, r0, #0
- adds r2, #0x98
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r1
- movs r4, #0xe
-_0800FB0C:
- ldrh r1, [r2]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800FB20
- cmp r0, r6
- beq _0800FB20
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r1, r0
- strh r0, [r2]
-_0800FB20:
- adds r2, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FB0C
- ldr r0, _0800FB5C @ =0x03005C00
- ldr r7, _0800FB6C @ =0x0000910A
- ldr r6, _0800FB70 @ =0x0000914A
- ldr r1, _0800FB68 @ =0x086A7FA8
- adds r3, r0, #0
- adds r3, #0xd8
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r1
- movs r4, #0xe
-_0800FB3C:
- ldrh r1, [r3]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800FB50
- cmp r0, r6
- beq _0800FB50
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r1, r0
- strh r0, [r3]
-_0800FB50:
- adds r3, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FB3C
- b _0800FCFA
- .align 2, 0
-_0800FB5C: .4byte 0x03005C00
-_0800FB60: .4byte 0x000090EA
-_0800FB64: .4byte 0x0000912A
-_0800FB68: .4byte 0x086A7FA8
-_0800FB6C: .4byte 0x0000910A
-_0800FB70: .4byte 0x0000914A
-_0800FB74:
- lsls r1, r1, #1
- adds r0, r1, #3
- lsls r0, r0, #5
- adds r3, r0, #0
- adds r3, #0xc
- adds r6, r1, #0
- ldr r1, _0800FBEC @ =0x03005C00
- ldr r0, _0800FBF0 @ =0x0000916A
- mov ip, r0
- ldr r7, _0800FBF4 @ =0x000091AA
- ldr r2, _0800FBF8 @ =0x086A7FA8
- lsls r0, r3, #1
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r2
- movs r4, #0xe
-_0800FB96:
- ldrh r2, [r1]
- adds r0, r2, #0
- cmp r0, ip
- beq _0800FBAA
- cmp r0, r7
- beq _0800FBAA
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r2, r0
- strh r0, [r1]
-_0800FBAA:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FB96
- adds r0, r6, #4
- lsls r0, r0, #5
- adds r3, r0, #0
- adds r3, #0xc
- ldr r1, _0800FBEC @ =0x03005C00
- ldr r7, _0800FBFC @ =0x0000918A
- ldr r6, _0800FC00 @ =0x000091CA
- ldr r2, _0800FBF8 @ =0x086A7FA8
- lsls r0, r3, #1
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r2
- movs r4, #0xe
-_0800FBCE:
- ldrh r3, [r1]
- adds r0, r3, #0
- cmp r0, r7
- beq _0800FBE2
- cmp r0, r6
- beq _0800FBE2
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r3, r0
- strh r0, [r1]
-_0800FBE2:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FBCE
- b _0800FCFA
- .align 2, 0
-_0800FBEC: .4byte 0x03005C00
-_0800FBF0: .4byte 0x0000916A
-_0800FBF4: .4byte 0x000091AA
-_0800FBF8: .4byte 0x086A7FA8
-_0800FBFC: .4byte 0x0000918A
-_0800FC00: .4byte 0x000091CA
-_0800FC04:
- cmp r1, #0
- bne _0800FC8C
- ldr r0, _0800FC6C @ =0x03005C00
- ldr r7, _0800FC70 @ =0x000090EA
- ldr r6, _0800FC74 @ =0x0000912A
- ldr r1, _0800FC78 @ =0x086A7FA8
- ldr r3, _0800FC7C @ =0x00000894
- adds r2, r0, r3
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r1
- movs r4, #0xe
-_0800FC1C:
- ldrh r1, [r2]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800FC30
- cmp r0, r6
- beq _0800FC30
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r1, r0
- strh r0, [r2]
-_0800FC30:
- adds r2, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FC1C
- ldr r0, _0800FC6C @ =0x03005C00
- ldr r7, _0800FC80 @ =0x0000910A
- ldr r6, _0800FC84 @ =0x0000914A
- ldr r1, _0800FC78 @ =0x086A7FA8
- ldr r4, _0800FC88 @ =0x000008D4
- adds r3, r0, r4
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r1
- movs r4, #0xe
-_0800FC4C:
- ldrh r1, [r3]
- adds r0, r1, #0
- cmp r0, r7
- beq _0800FC60
- cmp r0, r6
- beq _0800FC60
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r1, r0
- strh r0, [r3]
-_0800FC60:
- adds r3, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FC4C
- b _0800FCFA
- .align 2, 0
-_0800FC6C: .4byte 0x03005C00
-_0800FC70: .4byte 0x000090EA
-_0800FC74: .4byte 0x0000912A
-_0800FC78: .4byte 0x086A7FA8
-_0800FC7C: .4byte 0x00000894
-_0800FC80: .4byte 0x0000910A
-_0800FC84: .4byte 0x0000914A
-_0800FC88: .4byte 0x000008D4
-_0800FC8C:
- lsls r0, r1, #1
- lsls r3, r0, #6
- adds r6, r0, #0
- ldr r1, _0800FD00 @ =0x03005C00
- ldr r0, _0800FD04 @ =0x0000916A
- mov ip, r0
- ldr r7, _0800FD08 @ =0x000091AA
- ldr r2, _0800FD0C @ =0x086A7FA8
- ldr r4, _0800FD10 @ =0x000008D4
- adds r0, r3, r4
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r3, r0, r2
- movs r4, #0xe
-_0800FCAA:
- ldrh r2, [r1]
- adds r0, r2, #0
- cmp r0, ip
- beq _0800FCBE
- cmp r0, r7
- beq _0800FCBE
- movs r0, #0
- ldrsb r0, [r3, r0]
- adds r0, r2, r0
- strh r0, [r1]
-_0800FCBE:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FCAA
- lsls r3, r6, #6
- ldr r1, _0800FD00 @ =0x03005C00
- ldr r7, _0800FD14 @ =0x0000918A
- ldr r6, _0800FD18 @ =0x000091CA
- ldr r2, _0800FD0C @ =0x086A7FA8
- ldr r4, _0800FD1C @ =0x00000914
- adds r0, r3, r4
- adds r1, r0, r1
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r2
- movs r4, #0xe
-_0800FCDE:
- ldrh r3, [r1]
- adds r0, r3, #0
- cmp r0, r7
- beq _0800FCF2
- cmp r0, r6
- beq _0800FCF2
- movs r0, #0
- ldrsb r0, [r2, r0]
- adds r0, r3, r0
- strh r0, [r1]
-_0800FCF2:
- adds r1, #2
- subs r4, #1
- cmp r4, #0
- bge _0800FCDE
-_0800FCFA:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FD00: .4byte 0x03005C00
-_0800FD04: .4byte 0x0000916A
-_0800FD08: .4byte 0x000091AA
-_0800FD0C: .4byte 0x086A7FA8
-_0800FD10: .4byte 0x000008D4
-_0800FD14: .4byte 0x0000918A
-_0800FD18: .4byte 0x000091CA
-_0800FD1C: .4byte 0x00000914
-
- thumb_func_start sub_FD20
-sub_FD20: @ 0x0800FD20
- sub sp, #0x19c
- movs r2, #0
- ldr r3, _0800FD48 @ =0x0200B134
- mov r1, sp
-_0800FD28:
- adds r0, r2, r3
- ldrb r0, [r0]
- strh r0, [r1]
- adds r1, #2
- adds r2, #1
- cmp r2, #0xcc
- ble _0800FD28
- movs r2, #0
- mov r1, sp
-_0800FD3A:
- movs r3, #0
- ldrsh r0, [r1, r3]
- cmp r0, #4
- beq _0800FD4C
- movs r0, #0
- b _0800FD56
- .align 2, 0
-_0800FD48: .4byte 0x0200B134
-_0800FD4C:
- adds r1, #2
- adds r2, #1
- cmp r2, #0xc8
- ble _0800FD3A
- movs r0, #1
-_0800FD56:
- add sp, #0x19c
- bx lr
-
- thumb_func_start sub_FD5C
-sub_FD5C: @ 0x0800FD5C
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #4
- mov r8, r0
- ldr r4, _0800FDC8 @ =0x040000D4
- movs r6, #0xa0
- lsls r6, r6, #0x13
- str r6, [r4]
- ldr r2, _0800FDCC @ =0x0201A920
- str r2, [r4, #4]
- ldr r5, _0800FDD0 @ =0x80000200
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- mov r1, sp
- ldr r3, _0800FDD4 @ =0x00007FFF
- adds r0, r3, #0
- strh r0, [r1]
- str r1, [r4]
- ldr r0, _0800FDD8 @ =0xFFFFFC00
- adds r1, r2, r0
- str r1, [r4, #4]
- ldr r0, _0800FDDC @ =0x81000200
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- str r1, [r4]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r2, r2, r3
- str r2, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- str r2, [r4]
- str r6, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_1050C
- movs r7, #0
-_0800FDAA:
- mov r0, r8
- cmp r0, #0
- beq _0800FDB4
- bl _call_via_r8
-_0800FDB4:
- adds r0, r7, #0
- bl sub_1001C
- bl sub_D74
- cmp r7, #0x1f
- bne _0800FDE0
- ldr r0, _0800FDCC @ =0x0201A920
- b _0800FDE2
- .align 2, 0
-_0800FDC8: .4byte 0x040000D4
-_0800FDCC: .4byte 0x0201A920
-_0800FDD0: .4byte 0x80000200
-_0800FDD4: .4byte 0x00007FFF
-_0800FDD8: .4byte 0xFFFFFC00
-_0800FDDC: .4byte 0x81000200
-_0800FDE0:
- ldr r0, _0800FE00 @ =0x0201AD20
-_0800FDE2:
- str r0, [r4]
- str r6, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- adds r0, r7, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, #0x1f
- bls _0800FDAA
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FE00: .4byte 0x0201AD20
-
- thumb_func_start sub_FE04
-sub_FE04: @ 0x0800FE04
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #4
- adds r5, r0, #0
- ldr r1, _0800FE6C @ =0x040000D4
- movs r0, #0xa0
- lsls r0, r0, #0x13
- mov r8, r0
- str r0, [r1]
- ldr r3, _0800FE70 @ =0x0201A520
- str r3, [r1, #4]
- ldr r4, _0800FE74 @ =0x80000200
- str r4, [r1, #8]
- ldr r0, [r1, #8]
- mov r2, sp
- ldr r6, _0800FE78 @ =0x00007FFF
- adds r0, r6, #0
- strh r0, [r2]
- str r2, [r1]
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r3, r2
- str r0, [r1, #4]
- ldr r0, _0800FE7C @ =0x81000200
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- str r3, [r1]
- movs r6, #0x80
- lsls r6, r6, #4
- adds r3, r3, r6
- str r3, [r1, #4]
- str r4, [r1, #8]
- ldr r0, [r1, #8]
- movs r7, #0
- adds r6, r1, #0
-_0800FE4C:
- cmp r5, #0
- beq _0800FE54
- bl _call_via_r5
-_0800FE54:
- adds r0, r7, #0
- bl sub_1001C
- bl sub_D74
- cmp r7, #0x1f
- bne _0800FE84
- ldr r0, _0800FE80 @ =0x0201A920
- str r0, [r6]
- mov r0, r8
- str r0, [r6, #4]
- b _0800FE8C
- .align 2, 0
-_0800FE6C: .4byte 0x040000D4
-_0800FE70: .4byte 0x0201A520
-_0800FE74: .4byte 0x80000200
-_0800FE78: .4byte 0x00007FFF
-_0800FE7C: .4byte 0x81000200
-_0800FE80: .4byte 0x0201A920
-_0800FE84:
- ldr r0, _0800FEB4 @ =0x0201AD20
- str r0, [r6]
- mov r2, r8
- str r2, [r6, #4]
-_0800FE8C:
- str r4, [r6, #8]
- ldr r0, [r6, #8]
- adds r0, r7, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, #0x1f
- bls _0800FE4C
- bl sub_10528
- bl sub_D74
- bl sub_490
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FEB4: .4byte 0x0201AD20
-
- thumb_func_start sub_FEB8
-sub_FEB8: @ 0x0800FEB8
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #4
- mov r8, r2
- ldr r4, _0800FF34 @ =0x040000D4
- str r0, [r4]
- ldr r2, _0800FF38 @ =0x0201A920
- str r2, [r4, #4]
- ldr r0, _0800FF3C @ =0x80000100
- str r0, [r4, #8]
- ldr r3, [r4, #8]
- str r1, [r4]
- movs r1, #0x80
- lsls r1, r1, #3
- adds r3, r2, r1
- str r3, [r4, #4]
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- mov r1, sp
- movs r0, #0
- strh r0, [r1]
- str r1, [r4]
- ldr r0, _0800FF40 @ =0xFFFFFC00
- adds r2, r2, r0
- str r2, [r4, #4]
- ldr r0, _0800FF44 @ =0x81000200
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- str r2, [r4]
- str r3, [r4, #4]
- ldr r5, _0800FF48 @ =0x80000200
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- str r3, [r4]
- movs r6, #0xa0
- lsls r6, r6, #0x13
- str r6, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_1050C
- ldr r1, _0800FF4C @ =0x0200B0C0
- movs r0, #0x80
- lsls r0, r0, #0x13
- ldrh r0, [r0]
- strh r0, [r1, #0x16]
- movs r7, #0
-_0800FF18:
- mov r1, r8
- cmp r1, #0
- beq _0800FF22
- bl _call_via_r8
-_0800FF22:
- adds r0, r7, #0
- bl sub_1001C
- bl sub_D74
- cmp r7, #0x1f
- bne _0800FF50
- ldr r0, _0800FF38 @ =0x0201A920
- b _0800FF52
- .align 2, 0
-_0800FF34: .4byte 0x040000D4
-_0800FF38: .4byte 0x0201A920
-_0800FF3C: .4byte 0x80000100
-_0800FF40: .4byte 0xFFFFFC00
-_0800FF44: .4byte 0x81000200
-_0800FF48: .4byte 0x80000200
-_0800FF4C: .4byte 0x0200B0C0
-_0800FF50:
- ldr r0, _0800FF70 @ =0x0201AD20
-_0800FF52:
- str r0, [r4]
- str r6, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- adds r0, r7, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, #0x1f
- bls _0800FF18
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FF70: .4byte 0x0201AD20
-
- thumb_func_start sub_FF74
-sub_FF74: @ 0x0800FF74
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #4
- adds r5, r0, #0
- ldr r1, _0800FFDC @ =0x040000D4
- movs r0, #0xa0
- lsls r0, r0, #0x13
- mov r8, r0
- str r0, [r1]
- ldr r3, _0800FFE0 @ =0x0201A520
- str r3, [r1, #4]
- ldr r4, _0800FFE4 @ =0x80000200
- str r4, [r1, #8]
- ldr r0, [r1, #8]
- mov r2, sp
- movs r0, #0
- strh r0, [r2]
- str r2, [r1]
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r3, r2
- str r0, [r1, #4]
- ldr r0, _0800FFE8 @ =0x81000200
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- str r3, [r1]
- movs r0, #0x80
- lsls r0, r0, #4
- adds r3, r3, r0
- str r3, [r1, #4]
- str r4, [r1, #8]
- ldr r0, [r1, #8]
- movs r7, #0
- adds r6, r1, #0
-_0800FFBA:
- cmp r5, #0
- beq _0800FFC2
- bl _call_via_r5
-_0800FFC2:
- adds r0, r7, #0
- bl sub_1001C
- bl sub_D74
- cmp r7, #0x1f
- bne _0800FFF0
- ldr r0, _0800FFEC @ =0x0201A920
- str r0, [r6]
- mov r2, r8
- str r2, [r6, #4]
- b _0800FFF8
- .align 2, 0
-_0800FFDC: .4byte 0x040000D4
-_0800FFE0: .4byte 0x0201A520
-_0800FFE4: .4byte 0x80000200
-_0800FFE8: .4byte 0x81000200
-_0800FFEC: .4byte 0x0201A920
-_0800FFF0:
- ldr r0, _08010018 @ =0x0201AD20
- str r0, [r6]
- mov r0, r8
- str r0, [r6, #4]
-_0800FFF8:
- str r4, [r6, #8]
- ldr r0, [r6, #8]
- adds r0, r7, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, #0x1f
- bls _0800FFBA
- bl sub_D74
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010018: .4byte 0x0201AD20
-
- thumb_func_start sub_1001C
-sub_1001C: @ 0x0801001C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x14
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- add r1, sp, #0xc
- movs r0, #0
- strh r0, [r1]
- movs r0, #2
- strh r0, [r1, #2]
- movs r0, #1
- strh r0, [r1, #4]
- movs r2, #3
- strh r2, [r1, #6]
- adds r0, r7, #0
- ands r0, r2
- lsls r0, r0, #1
- adds r1, r1, r0
- ldrh r0, [r1]
- lsls r0, r0, #0x17
- lsrs r1, r0, #0x10
- mov ip, r1
- movs r1, #0x80
- lsls r1, r1, #0x10
- adds r0, r0, r1
- lsrs r0, r0, #0x10
- mov r8, r0
- ldr r0, _080100D8 @ =0x0000FFFC
- ands r7, r0
- adds r0, r7, #4
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp ip, r8
- bhs _08010160
- add r5, sp, #8
- ldr r0, _080100DC @ =0x0201A520
- mov sb, r0
- add r4, sp, #4
- mov r6, sp
- movs r1, #0xf8
- lsls r1, r1, #7
- mov sl, r1
-_08010076:
- mov r0, ip
- lsls r3, r0, #1
- mov r1, sb
- adds r2, r3, r1
- ldrh r1, [r2]
- movs r0, #0x1f
- ands r0, r1
- strh r0, [r5]
- ldrh r1, [r2]
- movs r0, #0xf8
- lsls r0, r0, #2
- ands r0, r1
- lsrs r0, r0, #5
- strh r0, [r4]
- ldrh r1, [r2]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #0xa
- strh r0, [r6]
- movs r2, #0x80
- lsls r2, r2, #3
- add r2, sb
- adds r2, r3, r2
- ldrh r1, [r2]
- movs r0, #0x1f
- ands r0, r1
- strh r0, [r5, #2]
- ldrh r1, [r2]
- movs r0, #0xf8
- lsls r0, r0, #2
- ands r0, r1
- lsrs r0, r0, #5
- strh r0, [r4, #2]
- ldrh r1, [r2]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #0xa
- strh r0, [r6, #2]
- ldrh r1, [r6]
- cmp r1, r0
- bhs _080100E0
- ldrh r0, [r6, #2]
- subs r0, r0, r1
- muls r0, r7, r0
- asrs r0, r0, #5
- adds r1, r1, r0
- strh r1, [r6]
- b _080100EE
- .align 2, 0
-_080100D8: .4byte 0x0000FFFC
-_080100DC: .4byte 0x0201A520
-_080100E0:
- ldrh r0, [r6]
- ldrh r1, [r6, #2]
- subs r1, r0, r1
- muls r1, r7, r1
- asrs r1, r1, #5
- subs r0, r0, r1
- strh r0, [r6]
-_080100EE:
- ldrh r1, [r4, #2]
- ldrh r0, [r4]
- cmp r0, r1
- bhs _08010106
- ldrh r0, [r4, #2]
- ldrh r1, [r4]
- subs r0, r0, r1
- muls r0, r7, r0
- asrs r0, r0, #5
- adds r1, r1, r0
- strh r1, [r4]
- b _08010114
-_08010106:
- ldrh r0, [r4]
- ldrh r1, [r4, #2]
- subs r1, r0, r1
- muls r1, r7, r1
- asrs r1, r1, #5
- subs r0, r0, r1
- strh r0, [r4]
-_08010114:
- ldrh r1, [r5, #2]
- ldrh r0, [r5]
- cmp r0, r1
- bhs _0801012C
- ldrh r0, [r5, #2]
- ldrh r1, [r5]
- subs r0, r0, r1
- muls r0, r7, r0
- asrs r0, r0, #5
- adds r1, r1, r0
- strh r1, [r5]
- b _0801013A
-_0801012C:
- ldrh r0, [r5]
- ldrh r1, [r5, #2]
- subs r1, r0, r1
- muls r1, r7, r1
- asrs r1, r1, #5
- subs r0, r0, r1
- strh r0, [r5]
-_0801013A:
- movs r2, #0x80
- lsls r2, r2, #4
- add r2, sb
- adds r2, r3, r2
- ldrh r1, [r6]
- lsls r1, r1, #0xa
- ldrh r0, [r4]
- lsls r0, r0, #5
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r2]
- mov r0, ip
- adds r0, #1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- mov ip, r0
- cmp ip, r8
- blo _08010076
-_08010160:
- add sp, #0x14
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_start sub_10170
-sub_10170: @ 0x08010170
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x14
- str r1, [sp, #0x10]
- lsls r2, r2, #0x10
- lsrs r1, r2, #0x10
- mov r8, r1
- lsls r3, r3, #0x10
- lsrs r3, r3, #0x10
- mov ip, r3
- ldr r1, _08010298 @ =0x040000D4
- str r0, [r1]
- ldr r4, _0801029C @ =0x0201A520
- str r4, [r1, #4]
- lsrs r2, r2, #0x11
- movs r0, #0x80
- lsls r0, r0, #0x18
- orrs r0, r2
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- add r3, sp, #0xc
- movs r0, #0
- strh r0, [r3]
- str r3, [r1]
- movs r0, #0x80
- lsls r0, r0, #3
- adds r3, r4, r0
- str r3, [r1, #4]
- movs r0, #0x81
- lsls r0, r0, #0x18
- orrs r2, r0
- str r2, [r1, #8]
- ldr r0, [r1, #8]
- movs r7, #0
- cmp r7, r8
- bhs _08010270
- add r5, sp, #8
- add r4, sp, #4
- movs r1, #0xf8
- lsls r1, r1, #2
- mov sl, r1
- mov r6, sp
- movs r0, #0xf8
- lsls r0, r0, #7
- mov sb, r0
-_080101D0:
- lsls r3, r7, #1
- ldr r1, _0801029C @ =0x0201A520
- adds r2, r3, r1
- ldrh r1, [r2]
- movs r0, #0x1f
- ands r0, r1
- strh r0, [r5]
- ldrh r1, [r2]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #5
- strh r0, [r4]
- ldrh r1, [r2]
- mov r0, sb
- ands r0, r1
- lsrs r0, r0, #0xa
- strh r0, [r6]
- ldr r0, _080102A0 @ =0x0201A920
- adds r2, r3, r0
- ldrh r1, [r2]
- movs r0, #0x1f
- ands r0, r1
- strh r0, [r5, #2]
- ldrh r1, [r2]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #5
- strh r0, [r4, #2]
- ldrh r1, [r2]
- mov r0, sb
- ands r0, r1
- lsrs r1, r0, #0xa
- strh r1, [r6, #2]
- ldrh r0, [r6]
- cmp r0, r1
- bls _08010222
- adds r1, r0, #0
- mov r0, ip
- muls r0, r1, r0
- asrs r0, r0, #5
- subs r1, r1, r0
-_08010222:
- strh r1, [r6]
- ldrh r1, [r4, #2]
- ldrh r0, [r4]
- cmp r0, r1
- bls _08010236
- adds r1, r0, #0
- mov r0, ip
- muls r0, r1, r0
- asrs r0, r0, #5
- subs r1, r1, r0
-_08010236:
- strh r1, [r4]
- ldrh r1, [r5, #2]
- ldrh r0, [r5]
- cmp r0, r1
- bls _0801024A
- adds r1, r0, #0
- mov r0, ip
- muls r0, r1, r0
- asrs r0, r0, #5
- subs r1, r1, r0
-_0801024A:
- strh r1, [r5]
- ldr r1, _0801029C @ =0x0201A520
- movs r0, #0x80
- lsls r0, r0, #4
- adds r2, r1, r0
- adds r2, r3, r2
- ldrh r1, [r6]
- lsls r1, r1, #0xa
- ldrh r0, [r4]
- lsls r0, r0, #5
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r2]
- adds r0, r7, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, r8
- blo _080101D0
-_08010270:
- ldr r2, _08010298 @ =0x040000D4
- ldr r1, _080102A4 @ =0x0201AD20
- str r1, [r2]
- ldr r0, [sp, #0x10]
- str r0, [r2, #4]
- mov r1, r8
- lsrs r0, r1, #1
- movs r1, #0x80
- lsls r1, r1, #0x18
- orrs r0, r1
- str r0, [r2, #8]
- ldr r0, [r2, #8]
- add sp, #0x14
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010298: .4byte 0x040000D4
-_0801029C: .4byte 0x0201A520
-_080102A0: .4byte 0x0201A920
-_080102A4: .4byte 0x0201AD20
-
- thumb_func_start sub_102A8
-sub_102A8: @ 0x080102A8
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x14
- str r1, [sp, #0x10]
- lsls r2, r2, #0x10
- lsrs r1, r2, #0x10
- mov r8, r1
- lsls r3, r3, #0x10
- lsrs r7, r3, #0x10
- ldr r1, _08010368 @ =0x040000D4
- str r0, [r1]
- ldr r4, _0801036C @ =0x0201A520
- str r4, [r1, #4]
- lsrs r2, r2, #0x11
- movs r0, #0x80
- lsls r0, r0, #0x18
- orrs r0, r2
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- add r3, sp, #0xc
- ldr r5, _08010370 @ =0x00007FFF
- adds r0, r5, #0
- strh r0, [r3]
- str r3, [r1]
- movs r3, #0x80
- lsls r3, r3, #3
- adds r0, r4, r3
- str r0, [r1, #4]
- movs r0, #0x81
- lsls r0, r0, #0x18
- orrs r2, r0
- str r2, [r1, #8]
- ldr r0, [r1, #8]
- movs r5, #0
- mov ip, r5
- cmp ip, r8
- bhs _080103F4
- add r5, sp, #8
- mov sb, r4
- add r4, sp, #4
- mov r6, sp
- movs r0, #0xf8
- lsls r0, r0, #7
- mov sl, r0
-_08010306:
- mov r1, ip
- lsls r3, r1, #1
- mov r0, sb
- adds r2, r3, r0
- ldrh r1, [r2]
- movs r0, #0x1f
- ands r0, r1
- strh r0, [r5]
- ldrh r1, [r2]
- movs r0, #0xf8
- lsls r0, r0, #2
- ands r0, r1
- lsrs r0, r0, #5
- strh r0, [r4]
- ldrh r1, [r2]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #0xa
- strh r0, [r6]
- movs r2, #0x80
- lsls r2, r2, #3
- add r2, sb
- adds r2, r3, r2
- ldrh r1, [r2]
- movs r0, #0x1f
- ands r0, r1
- strh r0, [r5, #2]
- ldrh r1, [r2]
- movs r0, #0xf8
- lsls r0, r0, #2
- ands r0, r1
- lsrs r0, r0, #5
- strh r0, [r4, #2]
- ldrh r1, [r2]
- mov r0, sl
- ands r0, r1
- lsrs r0, r0, #0xa
- strh r0, [r6, #2]
- ldrh r1, [r6]
- cmp r1, r0
- bhs _08010374
- ldrh r0, [r6, #2]
- subs r0, r0, r1
- muls r0, r7, r0
- asrs r0, r0, #5
- adds r1, r1, r0
- strh r1, [r6]
- b _08010382
- .align 2, 0
-_08010368: .4byte 0x040000D4
-_0801036C: .4byte 0x0201A520
-_08010370: .4byte 0x00007FFF
-_08010374:
- ldrh r0, [r6]
- ldrh r1, [r6, #2]
- subs r1, r0, r1
- muls r1, r7, r1
- asrs r1, r1, #5
- subs r0, r0, r1
- strh r0, [r6]
-_08010382:
- ldrh r1, [r4, #2]
- ldrh r0, [r4]
- cmp r0, r1
- bhs _0801039A
- ldrh r0, [r4, #2]
- ldrh r1, [r4]
- subs r0, r0, r1
- muls r0, r7, r0
- asrs r0, r0, #5
- adds r1, r1, r0
- strh r1, [r4]
- b _080103A8
-_0801039A:
- ldrh r0, [r4]
- ldrh r1, [r4, #2]
- subs r1, r0, r1
- muls r1, r7, r1
- asrs r1, r1, #5
- subs r0, r0, r1
- strh r0, [r4]
-_080103A8:
- ldrh r1, [r5, #2]
- ldrh r0, [r5]
- cmp r0, r1
- bhs _080103C0
- ldrh r0, [r5, #2]
- ldrh r1, [r5]
- subs r0, r0, r1
- muls r0, r7, r0
- asrs r0, r0, #5
- adds r1, r1, r0
- strh r1, [r5]
- b _080103CE
-_080103C0:
- ldrh r0, [r5]
- ldrh r1, [r5, #2]
- subs r1, r0, r1
- muls r1, r7, r1
- asrs r1, r1, #5
- subs r0, r0, r1
- strh r0, [r5]
-_080103CE:
- movs r2, #0x80
- lsls r2, r2, #4
- add r2, sb
- adds r2, r3, r2
- ldrh r1, [r6]
- lsls r1, r1, #0xa
- ldrh r0, [r4]
- lsls r0, r0, #5
- orrs r1, r0
- ldrh r0, [r5]
- orrs r1, r0
- strh r1, [r2]
- mov r0, ip
- adds r0, #1
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- mov ip, r0
- cmp ip, r8
- blo _08010306
-_080103F4:
- ldr r2, _0801041C @ =0x040000D4
- ldr r1, _08010420 @ =0x0201AD20
- str r1, [r2]
- ldr r3, [sp, #0x10]
- str r3, [r2, #4]
- mov r5, r8
- lsrs r0, r5, #1
- movs r1, #0x80
- lsls r1, r1, #0x18
- orrs r0, r1
- str r0, [r2, #8]
- ldr r0, [r2, #8]
- add sp, #0x14
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801041C: .4byte 0x040000D4
-_08010420: .4byte 0x0201AD20
-
- thumb_func_start sub_10424
-sub_10424: @ 0x08010424
- push {r4, r5, r6, lr}
- ldr r4, _08010470 @ =0x04000054
- movs r3, #0x10
- strh r3, [r4]
- ldr r6, _08010474 @ =0x04000050
- movs r2, #0x80
- lsls r2, r2, #0x13
- ldrh r1, [r2]
- movs r0, #0xf8
- lsls r0, r0, #5
- ands r0, r1
- lsrs r0, r0, #8
- movs r1, #0xa0
- orrs r0, r1
- strh r0, [r6]
- ldrh r1, [r2]
- ldr r0, _08010478 @ =0x0000FF7F
- ands r0, r1
- strh r0, [r2]
- ldr r1, _0801047C @ =0x0200B0C0
- ldrh r0, [r2]
- movs r5, #0
- strh r0, [r1, #0x16]
- strh r3, [r4]
- bl sub_D74
- movs r0, #8
- strh r0, [r4]
- bl sub_D74
- strh r5, [r4]
- bl sub_D74
- strh r5, [r6]
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08010470: .4byte 0x04000054
-_08010474: .4byte 0x04000050
-_08010478: .4byte 0x0000FF7F
-_0801047C: .4byte 0x0200B0C0
-
- thumb_func_start sub_10480
-sub_10480: @ 0x08010480
- push {r4, r5, lr}
- sub sp, #4
- ldr r5, _080104F8 @ =0x04000054
- movs r4, #0
- strh r4, [r5]
- ldr r2, _080104FC @ =0x04000050
- movs r0, #0x80
- lsls r0, r0, #0x13
- ldrh r1, [r0]
- movs r0, #0xf8
- lsls r0, r0, #5
- ands r0, r1
- lsrs r0, r0, #8
- movs r1, #0xa0
- orrs r0, r1
- strh r0, [r2]
- strh r4, [r5]
- bl sub_D74
- movs r0, #8
- strh r0, [r5]
- bl sub_D74
- movs r0, #0x10
- strh r0, [r5]
- bl sub_D74
- mov r0, sp
- strh r4, [r0]
- ldr r1, _08010500 @ =0x040000D4
- str r0, [r1]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r1, #4]
- ldr r0, _08010504 @ =0x8100C000
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- ldr r0, _08010508 @ =0x04000010
- strh r4, [r0]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r4, [r0]
- bl sub_D74
- add sp, #4
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080104F8: .4byte 0x04000054
-_080104FC: .4byte 0x04000050
-_08010500: .4byte 0x040000D4
-_08010504: .4byte 0x8100C000
-_08010508: .4byte 0x04000010
-
- thumb_func_start sub_1050C
-sub_1050C: @ 0x0801050C
- movs r1, #0x80
- lsls r1, r1, #0x13
- ldrh r2, [r1]
- ldr r0, _08010520 @ =0x0000FF7F
- ands r0, r2
- strh r0, [r1]
- ldr r2, _08010524 @ =0x0200B0C0
- ldrh r0, [r1]
- strh r0, [r2, #0x16]
- bx lr
- .align 2, 0
-_08010520: .4byte 0x0000FF7F
-_08010524: .4byte 0x0200B0C0
-
- thumb_func_start sub_10528
-sub_10528: @ 0x08010528
- ldr r1, _08010540 @ =0x0200B0C0
- ldrh r0, [r1, #0x16]
- movs r2, #0x80
- orrs r0, r2
- strh r0, [r1, #0x16]
- movs r1, #0x80
- lsls r1, r1, #0x13
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08010540: .4byte 0x0200B0C0
-
- thumb_func_start sub_10544
-sub_10544: @ 0x08010544
- ldr r1, _08010580 @ =0x04000004
- ldrh r2, [r1]
- ldr r0, _08010584 @ =0x0000FFF7
- ands r0, r2
- strh r0, [r1]
- ldrh r2, [r1]
- ldr r0, _08010588 @ =0x0000FFDF
- ands r0, r2
- strh r0, [r1]
- ldr r1, _0801058C @ =0x04000200
- ldrh r2, [r1]
- ldr r0, _08010590 @ =0x00003FFF
- ands r0, r2
- strh r0, [r1]
- ldrh r2, [r1]
- ldr r0, _08010594 @ =0x00003FFE
- ands r0, r2
- strh r0, [r1]
- ldrh r0, [r1]
- adds r1, r0, #0
- cmp r1, #0
- bne _08010574
- ldr r0, _08010598 @ =0x04000208
- strh r1, [r0]
-_08010574:
- ldr r0, _0801059C @ =0x04000202
- ldrh r1, [r0]
- movs r2, #1
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08010580: .4byte 0x04000004
-_08010584: .4byte 0x0000FFF7
-_08010588: .4byte 0x0000FFDF
-_0801058C: .4byte 0x04000200
-_08010590: .4byte 0x00003FFF
-_08010594: .4byte 0x00003FFE
-_08010598: .4byte 0x04000208
-_0801059C: .4byte 0x04000202
-
- thumb_func_start sub_105A0
-sub_105A0: @ 0x080105A0
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- ldr r4, [sp, #0x24]
- mov ip, r4
- ldr r4, [sp, #0x28]
- mov sb, r4
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r0, [sp]
- lsls r1, r1, #0x10
- lsrs r1, r1, #0x10
- mov sl, r1
- movs r1, #0
- cmp r1, sb
- bge _08010602
- lsls r0, r3, #5
- adds r0, r0, r2
- mov r8, r0
-_080105CC:
- movs r2, #0
- adds r6, r1, #1
- cmp r2, ip
- bge _080105FA
- ldr r7, _08010614 @ =0x03005C00
- lsls r0, r1, #5
- mov r1, r8
- adds r5, r1, r0
- ldr r1, [sp]
- adds r4, r1, r0
- mov r0, sl
- lsls r3, r0, #0xc
-_080105E4:
- adds r0, r5, r2
- lsls r0, r0, #1
- adds r0, r0, r7
- adds r1, r2, r4
- orrs r1, r3
- strh r1, [r0]
- adds r0, r2, #1
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
- cmp r2, ip
- blt _080105E4
-_080105FA:
- lsls r0, r6, #0x10
- lsrs r1, r0, #0x10
- cmp r1, sb
- blt _080105CC
-_08010602:
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010614: .4byte 0x03005C00
-
- thumb_func_start sub_10618
-sub_10618: @ 0x08010618
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- adds r5, r0, #0
- adds r4, r1, #0
- ldr r7, [sp, #0x20]
- ldr r0, [sp, #0x24]
- mov ip, r0
- movs r1, #0
- cmp r1, ip
- bge _08010678
- ldr r0, _08010688 @ =0x03005C00
- mov sl, r0
- lsls r0, r3, #5
- adds r0, r0, r2
- mov sb, r0
- lsls r0, r4, #5
- adds r0, r0, r5
- mov r8, r0
-_08010642:
- movs r2, #0
- adds r6, r1, #1
- cmp r2, r7
- bge _08010670
- mov r4, sl
- lsls r0, r1, #5
- mov r1, sb
- adds r5, r1, r0
- mov r1, r8
- adds r3, r1, r0
-_08010656:
- adds r1, r5, r2
- lsls r1, r1, #1
- adds r1, r1, r4
- adds r0, r3, r2
- lsls r0, r0, #1
- adds r0, r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, #1
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
- cmp r2, r7
- blt _08010656
-_08010670:
- lsls r0, r6, #0x10
- lsrs r1, r0, #0x10
- cmp r1, ip
- blt _08010642
-_08010678:
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010688: .4byte 0x03005C00
-
- thumb_func_start sub_1068C
-sub_1068C: @ 0x0801068C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- adds r4, r0, #0
- adds r7, r2, #0
- mov sb, r3
- ldr r0, [sp, #0x24]
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- str r0, [sp]
- movs r2, #0
- cmp r2, sb
- bge _080106F0
- lsls r0, r1, #5
- adds r0, r0, r4
- mov sl, r0
-_080106B2:
- movs r3, #0
- adds r6, r2, #1
- cmp r3, r7
- bge _080106E8
- lsls r0, r2, #5
- mov r1, sl
- adds r5, r1, r0
- ldr r0, _08010700 @ =0x03005C00
- mov ip, r0
- ldr r1, _08010704 @ =0x00000FFF
- mov r8, r1
- ldr r0, [sp]
- lsls r4, r0, #0xc
-_080106CC:
- adds r1, r3, r5
- lsls r1, r1, #0x10
- lsrs r1, r1, #0xf
- add r1, ip
- ldrh r2, [r1]
- mov r0, r8
- ands r0, r2
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, #1
- lsls r0, r0, #0x10
- lsrs r3, r0, #0x10
- cmp r3, r7
- blt _080106CC
-_080106E8:
- lsls r0, r6, #0x10
- lsrs r2, r0, #0x10
- cmp r2, sb
- blt _080106B2
-_080106F0:
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010700: .4byte 0x03005C00
-_08010704: .4byte 0x00000FFF
-
- thumb_func_start sub_10708
-sub_10708: @ 0x08010708
- push {r4, r5, lr}
- sub sp, #8
- str r0, [sp]
- str r1, [sp, #4]
- lsls r2, r2, #0x10
- lsrs r0, r2, #0x10
- movs r4, #0
- lsls r3, r3, #0x10
- asrs r1, r3, #0x10
- cmp r4, r1
- bge _08010744
- ldr r2, _0801074C @ =0x040000D4
- lsls r0, r0, #0x10
- asrs r3, r0, #0xc
- movs r0, #0x80
- lsls r0, r0, #0x18
- orrs r3, r0
- adds r5, r1, #0
-_0801072C:
- lsls r1, r4, #0xa
- ldr r0, [sp]
- adds r0, r0, r1
- str r0, [r2]
- ldr r0, [sp, #4]
- adds r0, r0, r1
- str r0, [r2, #4]
- str r3, [r2, #8]
- ldr r0, [r2, #8]
- adds r4, #1
- cmp r4, r5
- blt _0801072C
-_08010744:
- add sp, #8
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801074C: .4byte 0x040000D4
-
- thumb_func_start sub_10750
-sub_10750: @ 0x08010750
- push {r4, r5, lr}
- sub sp, #8
- str r0, [sp]
- str r1, [sp, #4]
- lsls r2, r2, #0x10
- lsrs r0, r2, #0x10
- movs r4, #0
- lsls r3, r3, #0x10
- asrs r1, r3, #0x10
- cmp r4, r1
- bge _0801078C
- ldr r2, _08010794 @ =0x040000D4
- lsls r0, r0, #0x10
- asrs r3, r0, #0x10
- movs r0, #0x80
- lsls r0, r0, #0x18
- orrs r3, r0
- adds r5, r1, #0
-_08010774:
- lsls r1, r4, #6
- ldr r0, [sp]
- adds r0, r0, r1
- str r0, [r2]
- ldr r0, [sp, #4]
- adds r0, r0, r1
- str r0, [r2, #4]
- str r3, [r2, #8]
- ldr r0, [r2, #8]
- adds r4, #1
- cmp r4, r5
- blt _08010774
-_0801078C:
- add sp, #8
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010794: .4byte 0x040000D4
-
- thumb_func_start sub_10798
-sub_10798: @ 0x08010798
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #4
- mov r8, r2
- ldr r4, _08010818 @ =0x040000D4
- str r0, [r4]
- ldr r2, _0801081C @ =0x0201A920
- str r2, [r4, #4]
- ldr r0, _08010820 @ =0x80000100
- str r0, [r4, #8]
- ldr r3, [r4, #8]
- str r1, [r4]
- movs r1, #0x80
- lsls r1, r1, #3
- adds r3, r2, r1
- str r3, [r4, #4]
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- mov r1, sp
- ldr r5, _08010824 @ =0x00007FFF
- adds r0, r5, #0
- strh r0, [r1]
- str r1, [r4]
- ldr r0, _08010828 @ =0xFFFFFC00
- adds r2, r2, r0
- str r2, [r4, #4]
- ldr r0, _0801082C @ =0x81000200
- str r0, [r4, #8]
- ldr r0, [r4, #8]
- str r2, [r4]
- str r3, [r4, #4]
- ldr r5, _08010830 @ =0x80000200
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- str r3, [r4]
- movs r6, #0xa0
- lsls r6, r6, #0x13
- str r6, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- bl sub_1050C
- ldr r1, _08010834 @ =0x0200B0C0
- movs r0, #0x80
- lsls r0, r0, #0x13
- ldrh r0, [r0]
- strh r0, [r1, #0x16]
- movs r7, #0
-_080107FA:
- mov r1, r8
- cmp r1, #0
- beq _08010804
- bl _call_via_r8
-_08010804:
- adds r0, r7, #0
- bl sub_1001C
- bl sub_D74
- cmp r7, #0x20
- bne _08010838
- ldr r0, _0801081C @ =0x0201A920
- b _0801083A
- .align 2, 0
-_08010818: .4byte 0x040000D4
-_0801081C: .4byte 0x0201A920
-_08010820: .4byte 0x80000100
-_08010824: .4byte 0x00007FFF
-_08010828: .4byte 0xFFFFFC00
-_0801082C: .4byte 0x81000200
-_08010830: .4byte 0x80000200
-_08010834: .4byte 0x0200B0C0
-_08010838:
- ldr r0, _0801085C @ =0x0201AD20
-_0801083A:
- str r0, [r4]
- str r6, [r4, #4]
- str r5, [r4, #8]
- ldr r0, [r4, #8]
- adds r0, r7, #0
- adds r0, #0x10
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, #0x20
- bls _080107FA
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801085C: .4byte 0x0201AD20
-
- thumb_func_start sub_10860
-sub_10860: @ 0x08010860
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- sub sp, #4
- adds r5, r0, #0
- ldr r1, _080108C8 @ =0x040000D4
- movs r0, #0xa0
- lsls r0, r0, #0x13
- mov r8, r0
- str r0, [r1]
- ldr r3, _080108CC @ =0x0201A520
- str r3, [r1, #4]
- ldr r4, _080108D0 @ =0x80000200
- str r4, [r1, #8]
- ldr r0, [r1, #8]
- mov r2, sp
- ldr r6, _080108D4 @ =0x00007FFF
- adds r0, r6, #0
- strh r0, [r2]
- str r2, [r1]
- movs r2, #0x80
- lsls r2, r2, #3
- adds r0, r3, r2
- str r0, [r1, #4]
- ldr r0, _080108D8 @ =0x81000200
- str r0, [r1, #8]
- ldr r0, [r1, #8]
- str r3, [r1]
- movs r6, #0x80
- lsls r6, r6, #4
- adds r3, r3, r6
- str r3, [r1, #4]
- str r4, [r1, #8]
- ldr r0, [r1, #8]
- movs r7, #0
- adds r6, r1, #0
-_080108A8:
- cmp r5, #0
- beq _080108B0
- bl _call_via_r5
-_080108B0:
- adds r0, r7, #0
- bl sub_1001C
- bl sub_D74
- cmp r7, #0x20
- bne _080108E0
- ldr r0, _080108DC @ =0x0201A920
- str r0, [r6]
- mov r0, r8
- str r0, [r6, #4]
- b _080108E8
- .align 2, 0
-_080108C8: .4byte 0x040000D4
-_080108CC: .4byte 0x0201A520
-_080108D0: .4byte 0x80000200
-_080108D4: .4byte 0x00007FFF
-_080108D8: .4byte 0x81000200
-_080108DC: .4byte 0x0201A920
-_080108E0:
- ldr r0, _08010908 @ =0x0201AD20
- str r0, [r6]
- mov r2, r8
- str r2, [r6, #4]
-_080108E8:
- str r4, [r6, #8]
- ldr r0, [r6, #8]
- adds r0, r7, #0
- adds r0, #0x10
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, #0x20
- bls _080108A8
- bl sub_D74
- add sp, #4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010908: .4byte 0x0201AD20
-
- thumb_func_start sub_1090C
-sub_1090C: @ 0x0801090C
- ldr r1, _08010920 @ =0x0201A500
- movs r2, #0
- adds r0, r1, #0
- adds r0, #0xc
-_08010914:
- str r2, [r0]
- subs r0, #4
- cmp r0, r1
- bge _08010914
- bx lr
- .align 2, 0
-_08010920: .4byte 0x0201A500
-
- thumb_func_start sub_10924
-sub_10924: @ 0x08010924
- push {lr}
- ldr r1, _0801093C @ =0x08079890
- ldr r0, _08010940 @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_0801093C: .4byte 0x08079890
-_08010940: .4byte 0x0200B0C0
-
- thumb_func_start sub_10944
-sub_10944: @ 0x08010944
- push {r4, r5, lr}
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x84
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _080109BC @ =0x0400000A
- movs r0, #0x85
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #2
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080109C0 @ =0x0200B0C0
- ldrh r0, [r2]
- strh r0, [r4, #0x16]
- ldr r5, _080109C4 @ =0x040000D4
- ldr r0, _080109C8 @ =gTitlescreenBg_Gfx
- str r0, [r5]
- ldr r0, _080109CC @ =0x06004000
- str r0, [r5, #4]
- ldr r0, _080109D0 @ =0x80005000
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _080109D4 @ =gTitlescreenBg_Pals
- str r0, [r5]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r5, #4]
- ldr r0, _080109D8 @ =0x80000100
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _080109DC @ =gTitlescreenBgTilemap
- str r0, [r5]
- movs r0, #0xc0
- lsls r0, r0, #0x13
- str r0, [r5, #4]
- ldr r0, _080109E0 @ =0x80000400
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- bl sub_52C44
- ldr r0, [r4, #0x40]
- cmp r0, #1
- bne _080109F4
- ldr r0, _080109E4 @ =gTitlescreenSprites_Pals
- str r0, [r5]
- ldr r0, _080109E8 @ =0x05000200
- str r0, [r5, #4]
- ldr r0, _080109EC @ =0x80000050
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _080109F0 @ =gTitlescreenSpritesSavedGame_Gfx
- b _08010A04
- .align 2, 0
-_080109BC: .4byte 0x0400000A
-_080109C0: .4byte 0x0200B0C0
-_080109C4: .4byte 0x040000D4
-_080109C8: .4byte gTitlescreenBg_Gfx
-_080109CC: .4byte 0x06004000
-_080109D0: .4byte 0x80005000
-_080109D4: .4byte gTitlescreenBg_Pals
-_080109D8: .4byte 0x80000100
-_080109DC: .4byte gTitlescreenBgTilemap
-_080109E0: .4byte 0x80000400
-_080109E4: .4byte gTitlescreenSprites_Pals
-_080109E8: .4byte 0x05000200
-_080109EC: .4byte 0x80000050
-_080109F0: .4byte gTitlescreenSpritesSavedGame_Gfx
-_080109F4:
- ldr r0, _08010A5C @ =gTitlescreenSprites_Pals
- str r0, [r5]
- ldr r0, _08010A60 @ =0x05000200
- str r0, [r5, #4]
- ldr r0, _08010A64 @ =0x80000050
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _08010A68 @ =gTitlescreenSpritesNoSavedGame_Gfx
-_08010A04:
- str r0, [r5]
- ldr r0, _08010A6C @ =0x06010000
- str r0, [r5, #4]
- ldr r0, _08010A70 @ =0x80003800
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _08010A74 @ =0x0852B668
- str r0, [r5]
- ldr r0, _08010A78 @ =0x050002A0
- str r0, [r5, #4]
- ldr r0, _08010A7C @ =0x80000020
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _08010A80 @ =0x0852B868
- str r0, [r5]
- ldr r0, _08010A84 @ =0x06017000
- str r0, [r5, #4]
- ldr r0, _08010A88 @ =0x80000200
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- bl sub_10AC0
- ldr r0, _08010A8C @ =0x0201A4B4
- movs r2, #0
- ldrsb r2, [r0, r2]
- cmp r2, #1
- bne _08010A9C
- ldr r1, _08010A90 @ =0x0202BE24
- movs r0, #0
- strb r0, [r1]
- ldr r1, _08010A94 @ =0x02002888
- movs r0, #0
- strb r0, [r1, #9]
- strb r2, [r1, #0xb]
- ldr r1, _08010A98 @ =0x0200B0C0
- movs r0, #3
- strb r0, [r1, #3]
- bl sub_CBC
- movs r0, #0
- bl sub_FD5C
- b _08010AAC
- .align 2, 0
-_08010A5C: .4byte gTitlescreenSprites_Pals
-_08010A60: .4byte 0x05000200
-_08010A64: .4byte 0x80000050
-_08010A68: .4byte gTitlescreenSpritesNoSavedGame_Gfx
-_08010A6C: .4byte 0x06010000
-_08010A70: .4byte 0x80003800
-_08010A74: .4byte 0x0852B668
-_08010A78: .4byte 0x050002A0
-_08010A7C: .4byte 0x80000020
-_08010A80: .4byte 0x0852B868
-_08010A84: .4byte 0x06017000
-_08010A88: .4byte 0x80000200
-_08010A8C: .4byte 0x0201A4B4
-_08010A90: .4byte 0x0202BE24
-_08010A94: .4byte 0x02002888
-_08010A98: .4byte 0x0200B0C0
-_08010A9C:
- ldr r0, _08010AB8 @ =0x0200B0C0
- movs r1, #1
- strb r1, [r0, #3]
- bl sub_CBC
- ldr r0, _08010ABC @ =sub_11640 + 1
- bl sub_FD5C
-_08010AAC:
- movs r0, #1
- bl m4aSongNumStart
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010AB8: .4byte 0x0200B0C0
-_08010ABC: .4byte sub_11640 + 1
-
- thumb_func_start sub_10AC0
-sub_10AC0: @ 0x08010AC0
- push {r4, r5, r6, r7, lr}
- ldr r1, _08010B28 @ =0x02002888
- movs r2, #0
- movs r0, #0
- strh r0, [r1, #4]
- strh r0, [r1, #2]
- strb r2, [r1, #6]
- strb r2, [r1, #8]
- movs r0, #4
- strb r0, [r1, #0x10]
- movs r3, #1
- strb r3, [r1, #9]
- strb r2, [r1, #0x11]
- movs r0, #6
- strb r0, [r1, #0xa]
- strb r2, [r1, #0xc]
- movs r0, #3
- strb r0, [r1, #0xe]
- strb r2, [r1, #0xb]
- strb r2, [r1, #0xd]
- strb r2, [r1, #0xf]
- ldr r0, _08010B2C @ =0x0202C588
- strh r3, [r0]
- ldr r0, _08010B30 @ =0x020028A0
- strb r2, [r0]
- ldr r0, _08010B34 @ =0x020028A1
- strb r2, [r0]
- ldr r0, _08010B38 @ =0x020028A2
- strb r2, [r0]
- ldr r0, _08010B3C @ =0x020028A3
- strb r2, [r0]
- ldr r0, _08010B40 @ =0x0200B0C0
- ldr r2, [r0, #0x40]
- adds r6, r0, #0
- cmp r2, #1
- bne _08010B58
- ldr r7, _08010B44 @ =0x020028A4
- ldr r5, _08010B48 @ =0x020028A5
- ldr r0, _08010B4C @ =0x0202BE24
- mov ip, r0
- ldr r4, _08010B50 @ =0x086A975C
- ldr r3, _08010B54 @ =0x0202BE00
- movs r2, #6
-_08010B16:
- ldm r4!, {r0}
- stm r3!, {r0}
- subs r2, #1
- cmp r2, #0
- bge _08010B16
- movs r0, #1
- strb r0, [r1]
- strb r0, [r1, #7]
- b _08010B78
- .align 2, 0
-_08010B28: .4byte 0x02002888
-_08010B2C: .4byte 0x0202C588
-_08010B30: .4byte 0x020028A0
-_08010B34: .4byte 0x020028A1
-_08010B38: .4byte 0x020028A2
-_08010B3C: .4byte 0x020028A3
-_08010B40: .4byte 0x0200B0C0
-_08010B44: .4byte 0x020028A4
-_08010B48: .4byte 0x020028A5
-_08010B4C: .4byte 0x0202BE24
-_08010B50: .4byte 0x086A975C
-_08010B54: .4byte 0x0202BE00
-_08010B58:
- ldr r7, _08010B94 @ =0x020028A4
- ldr r5, _08010B98 @ =0x020028A5
- ldr r0, _08010B9C @ =0x0202BE24
- mov ip, r0
- ldr r4, _08010BA0 @ =0x086A96F8
- ldr r3, _08010BA4 @ =0x0201C190
- movs r2, #6
-_08010B66:
- ldm r4!, {r0}
- stm r3!, {r0}
- subs r2, #1
- cmp r2, #0
- bge _08010B66
- movs r0, #0
- strb r0, [r1]
- strb r0, [r1, #7]
- strb r0, [r6, #0xd]
-_08010B78:
- movs r2, #0
- movs r0, #0
- strh r0, [r1, #0x14]
- movs r0, #1
- strh r0, [r1, #0x12]
- strb r2, [r7]
- ldrh r1, [r6, #0x1c]
- movs r0, #0xf
- ands r0, r1
- cmp r0, #0xf
- bne _08010BA8
- movs r0, #1
- strb r0, [r5]
- b _08010BAA
- .align 2, 0
-_08010B94: .4byte 0x020028A4
-_08010B98: .4byte 0x020028A5
-_08010B9C: .4byte 0x0202BE24
-_08010BA0: .4byte 0x086A96F8
-_08010BA4: .4byte 0x0201C190
-_08010BA8:
- strb r2, [r5]
-_08010BAA:
- movs r0, #0
- mov r1, ip
- strb r0, [r1]
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_start sub_10BB8
-sub_10BB8: @ 0x08010BB8
- push {r4, r5, r6, r7, lr}
- ldr r2, _08010BE8 @ =0x0200B0C0
- ldrh r1, [r2, #0x1c]
- movs r0, #0xf
- ands r0, r1
- adds r7, r2, #0
- cmp r0, #0xf
- bne _08010BF8
- ldr r0, _08010BEC @ =0x020028A5
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r2, _08010BF0 @ =0x020028A4
- cmp r0, #0
- bne _08010C00
- movs r0, #1
- strb r0, [r2]
- ldr r1, _08010BF4 @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xb
- strb r0, [r7, #3]
- b _08010C00
- .align 2, 0
-_08010BE8: .4byte 0x0200B0C0
-_08010BEC: .4byte 0x020028A5
-_08010BF0: .4byte 0x020028A4
-_08010BF4: .4byte 0x02002888
-_08010BF8:
- ldr r1, _08010CD4 @ =0x020028A5
- movs r0, #0
- strb r0, [r1]
- ldr r2, _08010CD8 @ =0x020028A4
-_08010C00:
- movs r4, #0
- ldrsb r4, [r2, r4]
- cmp r4, #0
- bne _08010CC8
- ldr r2, _08010CDC @ =0x02002888
- ldrh r0, [r2, #4]
- adds r0, #1
- strh r0, [r2, #4]
- ldr r3, _08010CE0 @ =0x086A9662
- movs r1, #8
- ldrsb r1, [r2, r1]
- adds r1, r1, r3
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _08010C3A
- strh r4, [r2, #4]
- ldrb r0, [r2, #8]
- adds r0, #1
- strb r0, [r2, #8]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #3
- ble _08010C3A
- movs r0, #0
- strb r0, [r2, #8]
-_08010C3A:
- adds r4, r7, #0
- ldrh r1, [r4, #0x1c]
- ldr r0, _08010CE4 @ =0x000003FF
- ands r0, r1
- cmp r0, #0
- beq _08010C4A
- movs r0, #0
- strh r0, [r2, #0x14]
-_08010C4A:
- ldrh r1, [r4, #0x18]
- movs r0, #9
- ands r0, r1
- cmp r0, #0
- beq _08010C66
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r1, _08010CDC @ =0x02002888
- movs r0, #0
- strh r0, [r1, #4]
- strh r0, [r1, #2]
- movs r0, #2
- strb r0, [r4, #3]
-_08010C66:
- bl sub_114FC
- bl sub_1157C
- ldr r6, _08010CDC @ =0x02002888
- ldrh r0, [r6, #0x14]
- adds r0, #1
- strh r0, [r6, #0x14]
- lsls r0, r0, #0x10
- movs r1, #0xe1
- lsls r1, r1, #0x13
- cmp r0, r1
- ble _08010CC8
- movs r1, #0x14
- ldrsh r0, [r6, r1]
- movs r1, #0xa
- bl __modsi3
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08010CB4
- ldrh r0, [r6, #0x12]
- adds r0, #1
- strh r0, [r6, #0x12]
- ldr r4, _08010CE8 @ =0x02032EE0
- ldr r5, _08010CEC @ =0x0000FFFF
- movs r0, #0x12
- ldrsh r1, [r6, r0]
- movs r0, #0x80
- lsls r0, r0, #1
- bl __divsi3
- adds r2, r0, #0
- lsls r2, r2, #0x10
- lsrs r2, r2, #0x10
- adds r0, r4, #0
- adds r1, r5, #0
- bl m4aMPlayVolumeControl
-_08010CB4:
- movs r1, #0x12
- ldrsh r0, [r6, r1]
- cmp r0, #9
- ble _08010CC8
- movs r0, #0
- strh r0, [r6, #0x14]
- movs r0, #7
- strb r0, [r6, #6]
- movs r0, #0xb
- strb r0, [r7, #3]
-_08010CC8:
- bl sub_11640
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010CD4: .4byte 0x020028A5
-_08010CD8: .4byte 0x020028A4
-_08010CDC: .4byte 0x02002888
-_08010CE0: .4byte 0x086A9662
-_08010CE4: .4byte 0x000003FF
-_08010CE8: .4byte 0x02032EE0
-_08010CEC: .4byte 0x0000FFFF
-
- thumb_func_start sub_10CF0
-sub_10CF0: @ 0x08010CF0
- push {r4, r5, r6, r7, lr}
- ldr r6, _08010D70 @ =0x0200B0C0
- ldrh r1, [r6, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _08010D74 @ =0x020028A4
- cmp r0, #0xf
- bne _08010D0E
- movs r0, #1
- strb r0, [r2]
- ldr r1, _08010D78 @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xb
- strb r0, [r6, #3]
-_08010D0E:
- movs r4, #0
- ldrsb r4, [r2, r4]
- cmp r4, #0
- bne _08010D66
- ldr r3, _08010D78 @ =0x02002888
- ldrh r0, [r3, #4]
- adds r0, #1
- movs r7, #0
- strh r0, [r3, #4]
- ldr r5, _08010D7C @ =0x086A9666
- movs r2, #2
- ldrsh r1, [r3, r2]
- lsls r1, r1, #1
- adds r2, r5, #1
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _08010D66
- strh r4, [r3, #4]
- movs r1, #2
- ldrsh r0, [r3, r1]
- lsls r0, r0, #1
- adds r0, r0, r5
- ldrb r0, [r0]
- strb r0, [r3, #8]
- ldrh r0, [r3, #2]
- adds r0, #1
- strh r0, [r3, #2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #5
- ble _08010D66
- strh r4, [r3, #2]
- ldr r0, _08010D80 @ =0x0202BE24
- strb r7, [r0]
- strb r7, [r3, #9]
- movs r0, #1
- strb r0, [r3, #0xb]
- movs r0, #3
- strb r0, [r6, #3]
-_08010D66:
- bl sub_11640
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010D70: .4byte 0x0200B0C0
-_08010D74: .4byte 0x020028A4
-_08010D78: .4byte 0x02002888
-_08010D7C: .4byte 0x086A9666
-_08010D80: .4byte 0x0202BE24
-
- thumb_func_start sub_10D84
-sub_10D84: @ 0x08010D84
- push {r4, r5, r6, lr}
- ldr r6, _08010DD0 @ =0x0200B0C0
- ldrh r1, [r6, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _08010DD4 @ =0x020028A4
- cmp r0, #0xf
- bne _08010DA2
- movs r0, #1
- strb r0, [r2]
- ldr r1, _08010DD8 @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xa
- strb r0, [r6, #3]
-_08010DA2:
- movs r5, #0
- ldrsb r5, [r2, r5]
- cmp r5, #0
- bne _08010DF2
- ldrh r1, [r6, #0x18]
- movs r4, #1
- ands r4, r1
- cmp r4, #0
- beq _08010DDC
- movs r0, #0x65
- bl m4aSongNumStart
- bl sub_11B74
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- strb r5, [r6, #3]
- b _08010DF2
- .align 2, 0
-_08010DD0: .4byte 0x0200B0C0
-_08010DD4: .4byte 0x020028A4
-_08010DD8: .4byte 0x02002888
-_08010DDC:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08010DF2
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r0, _08010DFC @ =0x02002888
- strb r4, [r0, #0x11]
- movs r0, #1
- strb r0, [r6, #3]
-_08010DF2:
- bl sub_11640
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08010DFC: .4byte 0x02002888
-
- thumb_func_start sub_10E00
-sub_10E00: @ 0x08010E00
- push {r4, r5, r6, lr}
- ldr r5, _08010E7C @ =0x0200B0C0
- ldrh r1, [r5, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _08010E80 @ =0x020028A4
- cmp r0, #0xf
- bne _08010E1E
- movs r0, #1
- strb r0, [r2]
- ldr r1, _08010E84 @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xb
- strb r0, [r5, #3]
-_08010E1E:
- movs r4, #0
- ldrsb r4, [r2, r4]
- cmp r4, #0
- bne _08010EE0
- ldr r3, _08010E84 @ =0x02002888
- ldrb r0, [r3, #7]
- cmp r0, #0
- bne _08010E94
- ldrh r0, [r3, #4]
- adds r0, #1
- strh r0, [r3, #4]
- ldr r2, _08010E88 @ =0x086A9748
- movs r6, #2
- ldrsh r1, [r3, r6]
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _08010E76
- strh r4, [r3, #4]
- ldr r2, _08010E8C @ =0x0201C190
- ldr r1, _08010E90 @ =0x086A9714
- movs r6, #2
- ldrsh r0, [r3, r6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- str r0, [r2, #0x18]
- ldrh r0, [r3, #2]
- adds r0, #1
- strh r0, [r3, #2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xb
- ble _08010E76
- strh r4, [r3, #2]
- movs r0, #1
- strb r0, [r3, #0xd]
- strb r0, [r3, #0xf]
- movs r0, #4
- strb r0, [r5, #3]
-_08010E76:
- bl sub_1175C
- b _08010EE0
- .align 2, 0
-_08010E7C: .4byte 0x0200B0C0
-_08010E80: .4byte 0x020028A4
-_08010E84: .4byte 0x02002888
-_08010E88: .4byte 0x086A9748
-_08010E8C: .4byte 0x0201C190
-_08010E90: .4byte 0x086A9714
-_08010E94:
- ldrh r0, [r3, #4]
- adds r0, #1
- strh r0, [r3, #4]
- ldr r2, _08010EE8 @ =0x086A9748
- movs r6, #2
- ldrsh r1, [r3, r6]
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _08010EDC
- strh r4, [r3, #4]
- ldr r2, _08010EEC @ =0x0202BE00
- ldr r1, _08010EF0 @ =0x086A9778
- movs r6, #2
- ldrsh r0, [r3, r6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- str r0, [r2, #0x18]
- ldrh r0, [r3, #2]
- adds r0, #1
- strh r0, [r3, #2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0xb
- ble _08010EDC
- strh r4, [r3, #2]
- movs r0, #1
- strb r0, [r3, #0xd]
- strb r0, [r3, #0xf]
- movs r0, #5
- strb r0, [r5, #3]
-_08010EDC:
- bl sub_11968
-_08010EE0:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08010EE8: .4byte 0x086A9748
-_08010EEC: .4byte 0x0202BE00
-_08010EF0: .4byte 0x086A9778
-
- thumb_func_start sub_10EF4
-sub_10EF4: @ 0x08010EF4
- push {r4, r5, lr}
- ldr r3, _08010F94 @ =0x0200B0C0
- ldrh r1, [r3, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _08010F98 @ =0x020028A4
- cmp r0, #0xf
- bne _08010F12
- movs r0, #1
- strb r0, [r2]
- ldr r1, _08010F9C @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xa
- strb r0, [r3, #3]
-_08010F12:
- movs r4, #0
- ldrsb r4, [r2, r4]
- cmp r4, #0
- bne _08011010
- ldr r3, _08010F9C @ =0x02002888
- ldrh r0, [r3, #4]
- adds r0, #1
- strh r0, [r3, #4]
- ldr r5, _08010FA0 @ =0x086A9672
- movs r2, #2
- ldrsh r1, [r3, r2]
- lsls r1, r1, #1
- adds r2, r5, #1
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _08010F68
- strh r4, [r3, #4]
- ldrh r0, [r3, #2]
- adds r0, #1
- strh r0, [r3, #2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #6
- ble _08010F4E
- strh r4, [r3, #2]
-_08010F4E:
- movs r1, #2
- ldrsh r0, [r3, r1]
- lsls r0, r0, #1
- adds r0, r0, r5
- ldrb r0, [r0]
- strb r0, [r3, #0xc]
- movs r2, #2
- ldrsh r0, [r3, r2]
- lsls r0, r0, #1
- adds r0, r0, r5
- ldrb r0, [r0]
- adds r0, #3
- strb r0, [r3, #0xe]
-_08010F68:
- ldr r0, _08010F94 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x40
- ands r0, r1
- lsls r0, r0, #0x10
- lsrs r4, r0, #0x10
- cmp r4, #0
- beq _08010FA4
- movs r0, #0x67
- bl m4aSongNumStart
- ldr r1, _08010F9C @ =0x02002888
- ldrb r0, [r1]
- subs r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- cmp r0, #0
- bge _08010FC4
- movs r0, #3
- strb r0, [r1]
- b _08010FC4
- .align 2, 0
-_08010F94: .4byte 0x0200B0C0
-_08010F98: .4byte 0x020028A4
-_08010F9C: .4byte 0x02002888
-_08010FA0: .4byte 0x086A9672
-_08010FA4:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08010FC4
- movs r0, #0x67
- bl m4aSongNumStart
- ldr r1, _08010FE4 @ =0x02002888
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #3
- ble _08010FC4
- strb r4, [r1]
-_08010FC4:
- ldr r5, _08010FE8 @ =0x0200B0C0
- ldrh r1, [r5, #0x18]
- movs r4, #9
- ands r4, r1
- cmp r4, #0
- beq _08010FEC
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r1, _08010FE4 @ =0x02002888
- movs r0, #0
- strh r0, [r1, #4]
- strh r0, [r1, #2]
- movs r0, #7
- b _0801100A
- .align 2, 0
-_08010FE4: .4byte 0x02002888
-_08010FE8: .4byte 0x0200B0C0
-_08010FEC:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _0801100C
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r1, _0801101C @ =0x02002888
- movs r2, #0
- strh r4, [r1, #4]
- movs r0, #0xc
- strh r0, [r1, #2]
- strb r2, [r1, #0xd]
- strb r2, [r1, #0xf]
- movs r0, #6
-_0801100A:
- strb r0, [r5, #3]
-_0801100C:
- bl sub_1157C
-_08011010:
- bl sub_1175C
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801101C: .4byte 0x02002888
-
- thumb_func_start sub_11020
-sub_11020: @ 0x08011020
- push {r4, r5, lr}
- ldr r3, _08011088 @ =0x0200B0C0
- ldrh r1, [r3, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _0801108C @ =0x020028A4
- cmp r0, #0xf
- bne _0801103E
- movs r0, #1
- strb r0, [r2]
- ldr r1, _08011090 @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xb
- strb r0, [r3, #3]
-_0801103E:
- movs r0, #0
- ldrsb r0, [r2, r0]
- cmp r0, #0
- bne _080110DE
- ldr r5, _08011090 @ =0x02002888
- ldrh r1, [r5, #4]
- movs r0, #3
- ands r1, r0
- cmp r1, #0
- bne _080110B6
- movs r2, #2
- ldrsh r0, [r5, r2]
- cmp r0, #0
- bne _080110A0
- movs r0, #1
- strh r0, [r5, #2]
- movs r0, #0
- ldrsb r0, [r5, r0]
- lsls r0, r0, #0xb
- ldr r4, _08011094 @ =0x060101E0
- adds r0, r0, r4
- ldr r1, _08011098 @ =0x03000000
- movs r2, #8
- movs r3, #2
- bl sub_10708
- ldr r0, _0801109C @ =0x060161E0
- movs r1, #0
- ldrsb r1, [r5, r1]
- lsls r1, r1, #0xb
- adds r1, r1, r4
- movs r2, #8
- movs r3, #2
- bl sub_10708
- b _080110B6
- .align 2, 0
-_08011088: .4byte 0x0200B0C0
-_0801108C: .4byte 0x020028A4
-_08011090: .4byte 0x02002888
-_08011094: .4byte 0x060101E0
-_08011098: .4byte 0x03000000
-_0801109C: .4byte 0x060161E0
-_080110A0:
- strh r1, [r5, #2]
- ldr r0, _080110E8 @ =0x03000000
- movs r1, #0
- ldrsb r1, [r5, r1]
- lsls r1, r1, #0xb
- ldr r2, _080110EC @ =0x060101E0
- adds r1, r1, r2
- movs r2, #8
- movs r3, #2
- bl sub_10708
-_080110B6:
- ldr r3, _080110F0 @ =0x02002888
- movs r1, #4
- ldrsh r0, [r3, r1]
- cmp r0, #0x14
- ble _080110D8
- ldr r2, _080110F4 @ =0x0200B0C0
- movs r0, #0
- strb r0, [r2, #0xd]
- ldr r1, _080110F8 @ =0x086A96A4
- movs r0, #0
- ldrsb r0, [r3, r0]
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r0, [r0]
- strb r0, [r3, #6]
- movs r0, #0xa
- strb r0, [r2, #3]
-_080110D8:
- ldrh r0, [r3, #4]
- adds r0, #1
- strh r0, [r3, #4]
-_080110DE:
- bl sub_1175C
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080110E8: .4byte 0x03000000
-_080110EC: .4byte 0x060101E0
-_080110F0: .4byte 0x02002888
-_080110F4: .4byte 0x0200B0C0
-_080110F8: .4byte 0x086A96A4
-
- thumb_func_start sub_110FC
-sub_110FC: @ 0x080110FC
- push {r4, r5, lr}
- ldr r3, _0801119C @ =0x0200B0C0
- ldrh r1, [r3, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _080111A0 @ =0x020028A4
- cmp r0, #0xf
- bne _0801111A
- movs r0, #1
- strb r0, [r2]
- ldr r1, _080111A4 @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xa
- strb r0, [r3, #3]
-_0801111A:
- movs r4, #0
- ldrsb r4, [r2, r4]
- cmp r4, #0
- bne _08011218
- ldr r3, _080111A4 @ =0x02002888
- ldrh r0, [r3, #4]
- adds r0, #1
- strh r0, [r3, #4]
- ldr r5, _080111A8 @ =0x086A9672
- movs r2, #2
- ldrsh r1, [r3, r2]
- lsls r1, r1, #1
- adds r2, r5, #1
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _08011170
- strh r4, [r3, #4]
- ldrh r0, [r3, #2]
- adds r0, #1
- strh r0, [r3, #2]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #6
- ble _08011156
- strh r4, [r3, #2]
-_08011156:
- movs r1, #2
- ldrsh r0, [r3, r1]
- lsls r0, r0, #1
- adds r0, r0, r5
- ldrb r0, [r0]
- strb r0, [r3, #0xc]
- movs r2, #2
- ldrsh r0, [r3, r2]
- lsls r0, r0, #1
- adds r0, r0, r5
- ldrb r0, [r0]
- adds r0, #3
- strb r0, [r3, #0xe]
-_08011170:
- ldr r0, _0801119C @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x40
- ands r0, r1
- lsls r0, r0, #0x10
- lsrs r4, r0, #0x10
- cmp r4, #0
- beq _080111AC
- movs r0, #0x67
- bl m4aSongNumStart
- ldr r1, _080111A4 @ =0x02002888
- ldrb r0, [r1]
- subs r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- cmp r0, #0
- bge _080111CC
- movs r0, #4
- strb r0, [r1]
- b _080111CC
- .align 2, 0
-_0801119C: .4byte 0x0200B0C0
-_080111A0: .4byte 0x020028A4
-_080111A4: .4byte 0x02002888
-_080111A8: .4byte 0x086A9672
-_080111AC:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080111CC
- movs r0, #0x67
- bl m4aSongNumStart
- ldr r1, _080111EC @ =0x02002888
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #4
- ble _080111CC
- strb r4, [r1]
-_080111CC:
- ldr r5, _080111F0 @ =0x0200B0C0
- ldrh r1, [r5, #0x18]
- movs r4, #9
- ands r4, r1
- cmp r4, #0
- beq _080111F4
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r1, _080111EC @ =0x02002888
- movs r0, #0
- strh r0, [r1, #4]
- strh r0, [r1, #2]
- movs r0, #8
- b _08011212
- .align 2, 0
-_080111EC: .4byte 0x02002888
-_080111F0: .4byte 0x0200B0C0
-_080111F4:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08011214
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r1, _08011224 @ =0x02002888
- movs r2, #0
- strh r4, [r1, #4]
- movs r0, #0xc
- strh r0, [r1, #2]
- strb r2, [r1, #0xd]
- strb r2, [r1, #0xf]
- movs r0, #6
-_08011212:
- strb r0, [r5, #3]
-_08011214:
- bl sub_1157C
-_08011218:
- bl sub_11968
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011224: .4byte 0x02002888
-
- thumb_func_start sub_11228
-sub_11228: @ 0x08011228
- push {r4, r5, lr}
- ldr r3, _08011290 @ =0x0200B0C0
- ldrh r1, [r3, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _08011294 @ =0x020028A4
- cmp r0, #0xf
- bne _08011246
- movs r0, #1
- strb r0, [r2]
- ldr r1, _08011298 @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xb
- strb r0, [r3, #3]
-_08011246:
- movs r0, #0
- ldrsb r0, [r2, r0]
- cmp r0, #0
- bne _0801130C
- ldr r5, _08011298 @ =0x02002888
- ldrh r1, [r5, #4]
- movs r0, #3
- ands r1, r0
- cmp r1, #0
- bne _080112BE
- movs r2, #2
- ldrsh r0, [r5, r2]
- cmp r0, #0
- bne _080112A8
- movs r0, #1
- strh r0, [r5, #2]
- movs r0, #0
- ldrsb r0, [r5, r0]
- lsls r0, r0, #0xb
- ldr r4, _0801129C @ =0x060101E0
- adds r0, r0, r4
- ldr r1, _080112A0 @ =0x03000000
- movs r2, #8
- movs r3, #2
- bl sub_10708
- ldr r0, _080112A4 @ =0x060161E0
- movs r1, #0
- ldrsb r1, [r5, r1]
- lsls r1, r1, #0xb
- adds r1, r1, r4
- movs r2, #8
- movs r3, #2
- bl sub_10708
- b _080112BE
- .align 2, 0
-_08011290: .4byte 0x0200B0C0
-_08011294: .4byte 0x020028A4
-_08011298: .4byte 0x02002888
-_0801129C: .4byte 0x060101E0
-_080112A0: .4byte 0x03000000
-_080112A4: .4byte 0x060161E0
-_080112A8:
- strh r1, [r5, #2]
- ldr r0, _080112DC @ =0x03000000
- movs r1, #0
- ldrsb r1, [r5, r1]
- lsls r1, r1, #0xb
- ldr r2, _080112E0 @ =0x060101E0
- adds r1, r1, r2
- movs r2, #8
- movs r3, #2
- bl sub_10708
-_080112BE:
- ldr r0, _080112E4 @ =0x02002888
- movs r2, #4
- ldrsh r1, [r0, r2]
- adds r3, r0, #0
- cmp r1, #0x14
- ble _08011306
- movs r2, #0
- ldrsb r2, [r3, r2]
- cmp r2, #1
- bne _080112EC
- ldr r0, _080112E8 @ =0x0200B0C0
- strb r2, [r0, #0xd]
- adds r2, r0, #0
- b _080112F4
- .align 2, 0
-_080112DC: .4byte 0x03000000
-_080112E0: .4byte 0x060101E0
-_080112E4: .4byte 0x02002888
-_080112E8: .4byte 0x0200B0C0
-_080112EC:
- ldr r1, _08011318 @ =0x0200B0C0
- movs r0, #0
- strb r0, [r1, #0xd]
- adds r2, r1, #0
-_080112F4:
- ldr r1, _0801131C @ =0x086A96D4
- movs r0, #0
- ldrsb r0, [r3, r0]
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r0, [r0]
- strb r0, [r3, #6]
- movs r0, #0xa
- strb r0, [r2, #3]
-_08011306:
- ldrh r0, [r3, #4]
- adds r0, #1
- strh r0, [r3, #4]
-_0801130C:
- bl sub_11968
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011318: .4byte 0x0200B0C0
-_0801131C: .4byte 0x086A96D4
-
- thumb_func_start sub_11320
-sub_11320: @ 0x08011320
- push {r4, r5, r6, r7, lr}
- ldr r5, _080113A4 @ =0x0200B0C0
- ldrh r1, [r5, #0x1c]
- movs r0, #0xf
- ands r0, r1
- ldr r2, _080113A8 @ =0x020028A4
- cmp r0, #0xf
- bne _0801133E
- movs r0, #1
- strb r0, [r2]
- ldr r1, _080113AC @ =0x02002888
- movs r0, #9
- strb r0, [r1, #6]
- movs r0, #0xb
- strb r0, [r5, #3]
-_0801133E:
- movs r4, #0
- ldrsb r4, [r2, r4]
- cmp r4, #0
- bne _08011410
- ldr r3, _080113AC @ =0x02002888
- ldrb r0, [r3, #7]
- cmp r0, #0
- bne _080113C0
- ldrh r0, [r3, #4]
- adds r0, #1
- movs r6, #0
- strh r0, [r3, #4]
- ldr r2, _080113B0 @ =0x086A9748
- movs r7, #2
- ldrsh r1, [r3, r7]
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _0801139C
- strh r4, [r3, #4]
- ldrh r0, [r3, #2]
- subs r0, #1
- strh r0, [r3, #2]
- lsls r0, r0, #0x10
- cmp r0, #0
- bge _0801138C
- strh r4, [r3, #2]
- strb r6, [r3]
- ldr r0, _080113B4 @ =0x0202BE24
- movs r1, #1
- strb r1, [r0]
- movs r0, #1
- strb r0, [r3, #9]
- strb r6, [r3, #0xb]
- strb r0, [r5, #3]
-_0801138C:
- ldr r2, _080113B8 @ =0x0201C190
- ldr r1, _080113BC @ =0x086A9714
- movs r4, #2
- ldrsh r0, [r3, r4]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- str r0, [r2, #0x18]
-_0801139C:
- bl sub_1175C
- b _08011410
- .align 2, 0
-_080113A4: .4byte 0x0200B0C0
-_080113A8: .4byte 0x020028A4
-_080113AC: .4byte 0x02002888
-_080113B0: .4byte 0x086A9748
-_080113B4: .4byte 0x0202BE24
-_080113B8: .4byte 0x0201C190
-_080113BC: .4byte 0x086A9714
-_080113C0:
- ldrh r0, [r3, #4]
- adds r0, #1
- strh r0, [r3, #4]
- ldr r2, _08011418 @ =0x086A9748
- movs r6, #2
- ldrsh r1, [r3, r6]
- adds r1, r1, r2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- cmp r0, r1
- blt _0801140C
- strh r4, [r3, #4]
- ldrh r0, [r3, #2]
- subs r0, #1
- strh r0, [r3, #2]
- lsls r0, r0, #0x10
- cmp r0, #0
- bge _080113FC
- strh r4, [r3, #2]
- movs r0, #1
- strb r0, [r3]
- ldr r1, _0801141C @ =0x0202BE24
- strb r0, [r1]
- strb r0, [r3, #9]
- movs r1, #0
- strb r1, [r3, #0xb]
- strb r0, [r5, #3]
-_080113FC:
- ldr r2, _08011420 @ =0x0202BE00
- ldr r1, _08011424 @ =0x086A9778
- movs r7, #2
- ldrsh r0, [r3, r7]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- str r0, [r2, #0x18]
-_0801140C:
- bl sub_11968
-_08011410:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011418: .4byte 0x086A9748
-_0801141C: .4byte 0x0202BE24
-_08011420: .4byte 0x0202BE00
-_08011424: .4byte 0x086A9778
-
- thumb_func_start sub_11428
-sub_11428: @ 0x08011428
- push {lr}
- ldr r0, _0801143C @ =0x02002888
- ldrb r0, [r0, #7]
- cmp r0, #0
- bne _08011444
- ldr r0, _08011440 @ =sub_1175C + 1
- bl sub_FE04
- b _0801144A
- .align 2, 0
-_0801143C: .4byte 0x02002888
-_08011440: .4byte sub_1175C + 1
-_08011444:
- ldr r0, _08011470 @ =sub_11968 + 1
- bl sub_FE04
-_0801144A:
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08011474 @ =0x086A964C
- ldr r0, _08011478 @ =0x02002888
- ldrb r0, [r0, #6]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #1
- adds r0, r0, r1
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #8
- bne _08011480
- ldr r1, _0801147C @ =0x0202C588
- movs r0, #0
- b _08011484
- .align 2, 0
-_08011470: .4byte sub_11968 + 1
-_08011474: .4byte 0x086A964C
-_08011478: .4byte 0x02002888
-_0801147C: .4byte 0x0202C588
-_08011480:
- ldr r1, _080114A4 @ =0x0202C588
- movs r0, #1
-_08011484:
- strh r0, [r1]
- ldr r1, _080114A8 @ =0x0201A4B4
- movs r0, #0
- strb r0, [r1]
- ldr r1, _080114AC @ =0x086A964C
- ldr r0, _080114B0 @ =0x02002888
- ldrb r0, [r0, #6]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r0, [r0]
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_080114A4: .4byte 0x0202C588
-_080114A8: .4byte 0x0201A4B4
-_080114AC: .4byte 0x086A964C
-_080114B0: .4byte 0x02002888
-
- thumb_func_start sub_114B4
-sub_114B4: @ 0x080114B4
- push {lr}
- ldr r0, _080114E8 @ =sub_11640 + 1
- bl sub_FE04
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _080114EC @ =0x0202C588
- movs r0, #1
- strh r0, [r1]
- ldr r1, _080114F0 @ =0x0201A4B4
- movs r0, #0
- strb r0, [r1]
- ldr r1, _080114F4 @ =0x086A964C
- ldr r0, _080114F8 @ =0x02002888
- ldrb r0, [r0, #6]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r0, [r0]
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_080114E8: .4byte sub_11640 + 1
-_080114EC: .4byte 0x0202C588
-_080114F0: .4byte 0x0201A4B4
-_080114F4: .4byte 0x086A964C
-_080114F8: .4byte 0x02002888
-
- thumb_func_start sub_114FC
-sub_114FC: @ 0x080114FC
- push {r4, lr}
- ldr r4, _0801156C @ =0x0200B0C0
- ldrh r2, [r4, #0x1c]
- movs r1, #0x88
- lsls r1, r1, #2
- adds r0, r1, #0
- ands r0, r2
- cmp r0, r1
- bne _08011546
- ldrh r1, [r4, #0x18]
- movs r0, #0x80
- lsls r0, r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08011546
- ldr r2, _08011570 @ =0x020028A1
- movs r0, #0x28
- strb r0, [r2]
- ldr r1, _08011574 @ =0x020028A0
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #3
- bne _08011546
- movs r0, #0
- strb r0, [r1]
- strb r0, [r2]
- movs r0, #0x68
- bl m4aSongNumStart
- ldr r1, _08011578 @ =0x02002888
- movs r0, #1
- strb r0, [r1, #0x11]
- movs r0, #9
- strb r0, [r4, #3]
-_08011546:
- ldr r2, _08011570 @ =0x020028A1
- ldrb r1, [r2]
- movs r0, #0
- ldrsb r0, [r2, r0]
- cmp r0, #0
- ble _08011564
- subs r0, r1, #1
- strb r0, [r2]
- lsls r0, r0, #0x18
- cmp r0, #0
- bgt _08011564
- movs r1, #0
- strb r1, [r2]
- ldr r0, _08011574 @ =0x020028A0
- strb r1, [r0]
-_08011564:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801156C: .4byte 0x0200B0C0
-_08011570: .4byte 0x020028A1
-_08011574: .4byte 0x020028A0
-_08011578: .4byte 0x02002888
-
- thumb_func_start sub_1157C
-sub_1157C: @ 0x0801157C
- push {r4, r5, r6, r7, lr}
- ldr r6, _080115E4 @ =0x086A97AC
- ldr r3, _080115E8 @ =0x020028A2
- movs r0, #0
- ldrsb r0, [r3, r0]
- lsls r0, r0, #1
- adds r0, r0, r6
- ldrh r5, [r0]
- ldr r2, _080115EC @ =0x0200B0C0
- ldrh r1, [r2, #0x1c]
- movs r0, #0x10
- ands r0, r1
- adds r4, r2, #0
- ldr r7, _080115F0 @ =0x020028A3
- cmp r0, #0
- beq _080115FC
- ldrh r1, [r4, #0x18]
- lsls r0, r5, #0x10
- asrs r0, r0, #0x10
- ands r1, r0
- cmp r1, r0
- bne _080115FC
- movs r0, #0x28
- strb r0, [r7]
- ldrb r0, [r3]
- adds r0, #1
- strb r0, [r3]
- movs r0, #0
- ldrsb r0, [r3, r0]
- lsls r0, r0, #1
- adds r0, r0, r6
- movs r2, #0
- ldrsh r1, [r0, r2]
- movs r0, #1
- rsbs r0, r0, #0
- cmp r1, r0
- bne _080115FC
- movs r0, #0
- strb r0, [r3]
- strb r0, [r7]
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r1, _080115F4 @ =0x02002888
- movs r0, #5
- strb r0, [r1, #6]
- ldrb r0, [r4, #3]
- cmp r0, #1
- bne _080115F8
- movs r0, #0xb
- b _080115FA
- .align 2, 0
-_080115E4: .4byte 0x086A97AC
-_080115E8: .4byte 0x020028A2
-_080115EC: .4byte 0x0200B0C0
-_080115F0: .4byte 0x020028A3
-_080115F4: .4byte 0x02002888
-_080115F8:
- movs r0, #0xa
-_080115FA:
- strb r0, [r4, #3]
-_080115FC:
- ldrh r0, [r4, #0x18]
- ldr r1, _08011638 @ =0x000003FF
- ands r0, r1
- lsls r1, r5, #0x10
- asrs r1, r1, #0x10
- bics r0, r1
- cmp r0, #0
- beq _08011614
- movs r1, #0
- strb r1, [r7]
- ldr r0, _0801163C @ =0x020028A2
- strb r1, [r0]
-_08011614:
- ldrb r1, [r7]
- movs r0, #0
- ldrsb r0, [r7, r0]
- cmp r0, #0
- ble _08011630
- subs r0, r1, #1
- strb r0, [r7]
- lsls r0, r0, #0x18
- cmp r0, #0
- bgt _08011630
- movs r1, #0
- strb r1, [r7]
- ldr r0, _0801163C @ =0x020028A2
- strb r1, [r0]
-_08011630:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011638: .4byte 0x000003FF
-_0801163C: .4byte 0x020028A2
-
- thumb_func_start sub_11640
-sub_11640: @ 0x08011640
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- ldr r4, _08011744 @ =0x02002888
- movs r0, #8
- ldrsb r0, [r4, r0]
- movs r1, #0xb8
- muls r0, r1, r0
- ldr r2, _08011748 @ =0x0200B3B8
- adds r7, r0, r2
- movs r0, #0x10
- ldrsb r0, [r4, r0]
- muls r0, r1, r0
- adds r6, r0, r2
- movs r0, #9
- ldrsb r0, [r4, r0]
- strh r0, [r7]
- movs r0, #0x11
- ldrsb r0, [r4, r0]
- strh r0, [r6]
- ldr r5, _0801174C @ =0x086A96E4
- adds r0, r5, #0
- movs r1, #5
- bl sub_358
- ldrh r0, [r7]
- cmp r0, #1
- bne _080116DC
- movs r0, #0x78
- strh r0, [r7, #2]
- movs r0, #0x66
- strh r0, [r7, #4]
- movs r0, #8
- ldrsb r0, [r4, r0]
- lsls r0, r0, #2
- adds r0, r0, r5
- ldr r0, [r0]
- mov ip, r0
- movs r5, #0
- ldrh r0, [r0]
- cmp r5, r0
- bge _080116DC
- ldr r1, _08011750 @ =0x03005000
- mov r8, r1
- ldr r2, _08011754 @ =0xFFFFFE00
- mov sb, r2
- adds r4, r7, #0
- adds r4, #8
-_080116A2:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, r8
- movs r0, #2
- ldrsh r1, [r4, r0]
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r2, _08011758 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, r8
- ldrb r0, [r7, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- adds r5, #1
- mov r0, ip
- ldrh r0, [r0]
- cmp r5, r0
- blt _080116A2
-_080116DC:
- ldrh r0, [r6]
- cmp r0, #1
- bne _08011730
- movs r0, #0x78
- strh r0, [r6, #2]
- movs r0, #0x50
- strh r0, [r6, #4]
- ldr r1, _08011750 @ =0x03005000
- mov r8, r1
- ldr r2, _08011754 @ =0xFFFFFE00
- mov sb, r2
- adds r4, r6, #0
- adds r4, #8
- ldr r0, _08011758 @ =0x000001FF
- mov ip, r0
- movs r5, #1
-_080116FC:
- ldrh r3, [r4]
- lsls r3, r3, #3
- add r3, r8
- movs r2, #2
- ldrsh r1, [r4, r2]
- movs r2, #2
- ldrsh r0, [r6, r2]
- adds r1, r1, r0
- mov r0, ip
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- add r1, r8
- ldrb r0, [r6, #4]
- ldrb r2, [r4, #4]
- adds r0, r0, r2
- strb r0, [r1]
- adds r4, #8
- subs r5, #1
- cmp r5, #0
- bge _080116FC
-_08011730:
- movs r0, #0
- strh r0, [r7]
- strh r0, [r6]
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011744: .4byte 0x02002888
-_08011748: .4byte 0x0200B3B8
-_0801174C: .4byte 0x086A96E4
-_08011750: .4byte 0x03005000
-_08011754: .4byte 0xFFFFFE00
-_08011758: .4byte 0x000001FF
-
- thumb_func_start sub_1175C
-sub_1175C: @ 0x0801175C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- ldr r2, _08011810 @ =0x0200B0C0
- ldrh r0, [r2, #0x38]
- movs r0, #0x84
- lsls r0, r0, #2
- strh r0, [r2, #0x38]
- ldrh r0, [r2, #0x3a]
- ldr r0, _08011814 @ =0x00000808
- strh r0, [r2, #0x3a]
- ldr r1, _08011818 @ =0x04000050
- ldrh r0, [r2, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r2, #0x3a]
- strh r0, [r1]
- ldr r3, _0801181C @ =0x02002888
- movs r0, #0xa
- ldrsb r0, [r3, r0]
- movs r1, #0xb8
- muls r0, r1, r0
- movs r4, #0xbe
- lsls r4, r4, #2
- adds r2, r2, r4
- adds r0, r0, r2
- mov sl, r0
- movs r0, #0xc
- ldrsb r0, [r3, r0]
- muls r0, r1, r0
- adds r0, r0, r2
- mov sb, r0
- movs r0, #0xe
- ldrsb r0, [r3, r0]
- muls r0, r1, r0
- adds r0, r0, r2
- mov r8, r0
- movs r0, #0xb
- ldrsb r0, [r3, r0]
- mov r6, sl
- strh r0, [r6]
- movs r0, #0xd
- ldrsb r0, [r3, r0]
- mov r7, sb
- strh r0, [r7]
- movs r0, #0xf
- ldrsb r0, [r3, r0]
- mov r1, r8
- strh r0, [r1]
- ldr r4, _08011820 @ =0x0201C190
- adds r0, r4, #0
- movs r1, #7
- bl sub_358
- ldrh r0, [r6]
- cmp r0, #1
- bne _0801187C
- movs r0, #0x78
- strh r0, [r6, #2]
- movs r0, #0x66
- strh r0, [r6, #4]
- ldr r4, [r4, #0x18]
- mov ip, r4
- movs r2, #0
- str r2, [sp]
- ldrh r3, [r4]
- cmp r2, r3
- bge _0801187C
- ldr r6, _08011824 @ =0x03005000
- mov r4, sl
- adds r4, #8
- mov r5, ip
-_080117F2:
- ldrh r0, [r5, #8]
- cmp r0, #1
- bne _08011828
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #1]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #1]
- b _08011838
- .align 2, 0
-_08011810: .4byte 0x0200B0C0
-_08011814: .4byte 0x00000808
-_08011818: .4byte 0x04000050
-_0801181C: .4byte 0x02002888
-_08011820: .4byte 0x0201C190
-_08011824: .4byte 0x03005000
-_08011828:
- ldrh r0, [r4]
- lsls r0, r0, #3
- adds r0, r0, r6
- ldrb r2, [r0, #1]
- movs r1, #0xd
- rsbs r1, r1, #0
- ands r1, r2
- strb r1, [r0, #1]
-_08011838:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r7, #2
- ldrsh r1, [r4, r7]
- mov r2, sl
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08011950 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _08011954 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r3, sl
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- adds r5, #8
- ldr r0, [sp]
- adds r0, #1
- str r0, [sp]
- mov r1, ip
- ldrh r1, [r1]
- cmp r0, r1
- blt _080117F2
-_0801187C:
- mov r2, sb
- ldrh r0, [r2]
- cmp r0, #1
- bne _080118D8
- ldr r2, _08011958 @ =0x086A9684
- ldr r1, _0801195C @ =0x02002888
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0]
- mov r3, sb
- strh r0, [r3, #2]
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0, #2]
- strh r0, [r3, #4]
- mov r5, sb
- adds r5, #8
- ldr r4, _08011960 @ =0x03005000
- ldrh r2, [r3, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r6, #2
- ldrsh r1, [r5, r6]
- movs r7, #2
- ldrsh r0, [r3, r7]
- adds r1, r1, r0
- ldr r3, _08011950 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08011954 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- mov r6, sb
- ldrh r1, [r6, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r6, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
-_080118D8:
- mov r7, r8
- ldrh r0, [r7]
- cmp r0, #1
- bne _08011930
- ldr r2, _08011964 @ =0x086A9694
- ldr r1, _0801195C @ =0x02002888
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0]
- strh r0, [r7, #2]
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0, #2]
- strh r0, [r7, #4]
- mov r5, r8
- adds r5, #8
- ldr r4, _08011960 @ =0x03005000
- ldrh r2, [r7, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r0, #2
- ldrsh r1, [r5, r0]
- movs r3, #2
- ldrsh r0, [r7, r3]
- adds r1, r1, r0
- ldr r6, _08011950 @ =0x000001FF
- adds r0, r6, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08011954 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r7, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r7, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
-_08011930:
- movs r0, #0
- mov r7, sl
- strh r0, [r7]
- mov r1, sb
- strh r0, [r1]
- mov r2, r8
- strh r0, [r2]
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011950: .4byte 0x000001FF
-_08011954: .4byte 0xFFFFFE00
-_08011958: .4byte 0x086A9684
-_0801195C: .4byte 0x02002888
-_08011960: .4byte 0x03005000
-_08011964: .4byte 0x086A9694
-
- thumb_func_start sub_11968
-sub_11968: @ 0x08011968
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #4
- ldr r2, _08011A1C @ =0x0200B0C0
- ldrh r0, [r2, #0x38]
- movs r0, #0x84
- lsls r0, r0, #2
- strh r0, [r2, #0x38]
- ldrh r0, [r2, #0x3a]
- ldr r0, _08011A20 @ =0x00000808
- strh r0, [r2, #0x3a]
- ldr r1, _08011A24 @ =0x04000050
- ldrh r0, [r2, #0x38]
- strh r0, [r1]
- adds r1, #2
- ldrh r0, [r2, #0x3a]
- strh r0, [r1]
- ldr r3, _08011A28 @ =0x02002888
- movs r0, #0xa
- ldrsb r0, [r3, r0]
- movs r1, #0xb8
- muls r0, r1, r0
- movs r4, #0xbe
- lsls r4, r4, #2
- adds r2, r2, r4
- adds r0, r0, r2
- mov sl, r0
- movs r0, #0xc
- ldrsb r0, [r3, r0]
- muls r0, r1, r0
- adds r0, r0, r2
- mov sb, r0
- movs r0, #0xe
- ldrsb r0, [r3, r0]
- muls r0, r1, r0
- adds r0, r0, r2
- mov r8, r0
- movs r0, #0xb
- ldrsb r0, [r3, r0]
- mov r6, sl
- strh r0, [r6]
- movs r0, #0xd
- ldrsb r0, [r3, r0]
- mov r7, sb
- strh r0, [r7]
- movs r0, #0xf
- ldrsb r0, [r3, r0]
- mov r1, r8
- strh r0, [r1]
- ldr r4, _08011A2C @ =0x0202BE00
- adds r0, r4, #0
- movs r1, #7
- bl sub_358
- ldrh r0, [r6]
- cmp r0, #1
- bne _08011A88
- movs r0, #0x78
- strh r0, [r6, #2]
- movs r0, #0x66
- strh r0, [r6, #4]
- ldr r4, [r4, #0x18]
- mov ip, r4
- movs r2, #0
- str r2, [sp]
- ldrh r3, [r4]
- cmp r2, r3
- bge _08011A88
- ldr r6, _08011A30 @ =0x03005000
- mov r4, sl
- adds r4, #8
- mov r5, ip
-_080119FE:
- ldrh r0, [r5, #8]
- cmp r0, #1
- bne _08011A34
- ldrh r2, [r4]
- lsls r2, r2, #3
- adds r2, r2, r6
- ldrb r1, [r2, #1]
- movs r0, #0xd
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2, #1]
- b _08011A44
- .align 2, 0
-_08011A1C: .4byte 0x0200B0C0
-_08011A20: .4byte 0x00000808
-_08011A24: .4byte 0x04000050
-_08011A28: .4byte 0x02002888
-_08011A2C: .4byte 0x0202BE00
-_08011A30: .4byte 0x03005000
-_08011A34:
- ldrh r0, [r4]
- lsls r0, r0, #3
- adds r0, r0, r6
- ldrb r2, [r0, #1]
- movs r1, #0xd
- rsbs r1, r1, #0
- ands r1, r2
- strb r1, [r0, #1]
-_08011A44:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r6
- movs r7, #2
- ldrsh r1, [r4, r7]
- mov r2, sl
- movs r7, #2
- ldrsh r0, [r2, r7]
- adds r1, r1, r0
- ldr r2, _08011B5C @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _08011B60 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r6
- mov r3, sl
- ldrb r0, [r3, #4]
- ldrb r7, [r4, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r4, #8
- adds r5, #8
- ldr r0, [sp]
- adds r0, #1
- str r0, [sp]
- mov r1, ip
- ldrh r1, [r1]
- cmp r0, r1
- blt _080119FE
-_08011A88:
- mov r2, sb
- ldrh r0, [r2]
- cmp r0, #1
- bne _08011AE4
- ldr r2, _08011B64 @ =0x086A96AC
- ldr r1, _08011B68 @ =0x02002888
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0]
- mov r3, sb
- strh r0, [r3, #2]
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0, #2]
- strh r0, [r3, #4]
- mov r5, sb
- adds r5, #8
- ldr r4, _08011B6C @ =0x03005000
- ldrh r2, [r3, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r6, #2
- ldrsh r1, [r5, r6]
- movs r7, #2
- ldrsh r0, [r3, r7]
- adds r1, r1, r0
- ldr r3, _08011B5C @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08011B60 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- mov r6, sb
- ldrh r1, [r6, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r6, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
-_08011AE4:
- mov r7, r8
- ldrh r0, [r7]
- cmp r0, #1
- bne _08011B3C
- ldr r2, _08011B70 @ =0x086A96C0
- ldr r1, _08011B68 @ =0x02002888
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0]
- strh r0, [r7, #2]
- movs r0, #0
- ldrsb r0, [r1, r0]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0, #2]
- strh r0, [r7, #4]
- mov r5, r8
- adds r5, #8
- ldr r4, _08011B6C @ =0x03005000
- ldrh r2, [r7, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r0, #2
- ldrsh r1, [r5, r0]
- movs r3, #2
- ldrsh r0, [r7, r3]
- adds r1, r1, r0
- ldr r6, _08011B5C @ =0x000001FF
- adds r0, r6, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _08011B60 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r7, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r7, #4]
- ldrb r5, [r5, #4]
- adds r0, r0, r5
- strb r0, [r1]
-_08011B3C:
- movs r0, #0
- mov r7, sl
- strh r0, [r7]
- mov r1, sb
- strh r0, [r1]
- mov r2, r8
- strh r0, [r2]
- add sp, #4
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011B5C: .4byte 0x000001FF
-_08011B60: .4byte 0xFFFFFE00
-_08011B64: .4byte 0x086A96AC
-_08011B68: .4byte 0x02002888
-_08011B6C: .4byte 0x03005000
-_08011B70: .4byte 0x086A96C0
-
- thumb_func_start sub_11B74
-sub_11B74: @ 0x08011B74
- push {lr}
- bl sub_52C64
- bl sub_52B30
- ldr r0, _08011B94 @ =0x0200B0C0
- movs r1, #0
- str r1, [r0, #0x40]
- adds r0, #0x40
- ldr r1, _08011B98 @ =0x0E000544
- movs r2, #4
- bl sub_55654
- pop {r0}
- bx r0
- .align 2, 0
-_08011B94: .4byte 0x0200B0C0
-_08011B98: .4byte 0x0E000544
-
thumb_func_start sub_11B9C
sub_11B9C: @ 0x08011B9C
push {r4, lr}
@@ -49305,8 +14547,8 @@ _0801901C:
_08019020: .4byte 0x020314E0
_08019024: .4byte 0x00000532
- thumb_func_start sub_19028
-sub_19028: @ 0x08019028
+ thumb_func_start sub_19028_Main
+sub_19028_Main: @ 0x08019028
push {lr}
ldr r1, _08019040 @ =0x08137918
ldr r0, _08019044 @ =0x0200B0C0
@@ -145514,8 +110756,8 @@ _08049EA8: .4byte 0x0200B528
_08049EAC: .4byte 0x020314E0
_08049EB0: .4byte 0x0000131C
- thumb_func_start sub_49EB4
-sub_49EB4: @ 0x08049EB4
+ thumb_func_start PinballGameMain
+PinballGameMain: @ 0x08049EB4
push {lr}
ldr r1, _08049ECC @ =0x08137E04
ldr r0, _08049ED0 @ =0x0200B0C0
@@ -159669,3363 +124911,3 @@ sub_511F8: @ 0x080511F8
.align 2, 0
_08051218: .4byte 0x086B155C
_0805121C: .4byte 0x0200B0C0
-
- thumb_func_start sub_51220
-sub_51220: @ 0x08051220
- push {lr}
- ldr r1, _08051238 @ =0x08527F08
- ldr r0, _0805123C @ =0x0200B0C0
- ldrb r0, [r0, #3]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08051238: .4byte 0x08527F08
-_0805123C: .4byte 0x0200B0C0
-
- thumb_func_start sub_51240
-sub_51240: @ 0x08051240
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- sub sp, #4
- bl sub_438
- movs r2, #0x80
- lsls r2, r2, #0x13
- movs r1, #0x84
- lsls r1, r1, #5
- adds r0, r1, #0
- strh r0, [r2]
- ldr r1, _08051358 @ =0x04000008
- movs r0, #4
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #1
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0805135C @ =0x0400000A
- adds r3, #9
- adds r0, r3, #0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r3, #0xf7
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08051360 @ =0x0200B0C0
- mov sb, r0
- ldrh r0, [r2]
- mov r1, sb
- strh r0, [r1, #0x16]
- ldr r5, _08051364 @ =0x040000D4
- ldr r0, _08051368 @ =0x0852B468
- str r0, [r5]
- movs r0, #0xa0
- lsls r0, r0, #0x13
- str r0, [r5, #4]
- ldr r0, _0805136C @ =0x80000100
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _08051370 @ =0x08528828
- str r0, [r5]
- ldr r0, _08051374 @ =0x06004000
- str r0, [r5, #4]
- ldr r0, _08051378 @ =0x80000C00
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _0805137C @ =0x0852A848
- str r0, [r5]
- ldr r0, _08051380 @ =0x06008000
- str r0, [r5, #4]
- ldr r0, _08051384 @ =0x80000600
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _08051388 @ =0x08528028
- str r0, [r5]
- ldr r7, _0805138C @ =0x03005C00
- str r7, [r5, #4]
- ldr r6, _08051390 @ =0x80000400
- str r6, [r5, #8]
- ldr r0, [r5, #8]
- str r7, [r5]
- movs r3, #0xc0
- lsls r3, r3, #0x13
- mov r8, r3
- str r3, [r5, #4]
- str r6, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _08051394 @ =0x02019C0C
- ldr r0, [r0]
- cmp r0, #1
- beq _080512F8
- movs r4, #2
- str r4, [sp]
- movs r0, #0x12
- movs r1, #4
- movs r2, #2
- movs r3, #1
- bl sub_1068C
- str r4, [sp]
- movs r0, #0x12
- movs r1, #5
- movs r2, #3
- movs r3, #2
- bl sub_1068C
-_080512F8:
- str r7, [r5]
- mov r0, r8
- str r0, [r5, #4]
- str r6, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _08051398 @ =0x0852A048
- str r0, [r5]
- ldr r0, _0805139C @ =0x06000800
- str r0, [r5, #4]
- str r6, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _080513A0 @ =0x0852B668
- str r0, [r5]
- ldr r0, _080513A4 @ =0x05000200
- str r0, [r5, #4]
- ldr r0, _080513A8 @ =0x80000030
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- ldr r0, _080513AC @ =0x0852B868
- str r0, [r5]
- ldr r0, _080513B0 @ =0x06010000
- str r0, [r5, #4]
- ldr r0, _080513B4 @ =0x80001010
- str r0, [r5, #8]
- ldr r0, [r5, #8]
- bl sub_513B8
- bl sub_51C9C
- bl m4aMPlayAllStop
- bl sub_CBC
- bl sub_24C
- bl sub_10C0
- mov r1, sb
- ldrb r0, [r1, #3]
- adds r0, #1
- strb r0, [r1, #3]
- add sp, #4
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08051358: .4byte 0x04000008
-_0805135C: .4byte 0x0400000A
-_08051360: .4byte 0x0200B0C0
-_08051364: .4byte 0x040000D4
-_08051368: .4byte 0x0852B468
-_0805136C: .4byte 0x80000100
-_08051370: .4byte 0x08528828
-_08051374: .4byte 0x06004000
-_08051378: .4byte 0x80000C00
-_0805137C: .4byte 0x0852A848
-_08051380: .4byte 0x06008000
-_08051384: .4byte 0x80000600
-_08051388: .4byte 0x08528028
-_0805138C: .4byte 0x03005C00
-_08051390: .4byte 0x80000400
-_08051394: .4byte 0x02019C0C
-_08051398: .4byte 0x0852A048
-_0805139C: .4byte 0x06000800
-_080513A0: .4byte 0x0852B668
-_080513A4: .4byte 0x05000200
-_080513A8: .4byte 0x80000030
-_080513AC: .4byte 0x0852B868
-_080513B0: .4byte 0x06010000
-_080513B4: .4byte 0x80001010
-
- thumb_func_start sub_513B8
-sub_513B8: @ 0x080513B8
- push {r4, r5, r6, lr}
- ldr r0, _08051468 @ =0x02002920
- mov ip, r0
- movs r2, #0
- movs r1, #0
- strh r1, [r0]
- strh r1, [r0, #2]
- strh r1, [r0, #4]
- movs r3, #1
- movs r0, #1
- mov r4, ip
- strh r0, [r4, #6]
- strh r1, [r4, #8]
- strh r1, [r4, #0xa]
- ldr r0, _0805146C @ =0x0200B134
- adds r0, #0xcf
- ldrb r0, [r0]
- strh r0, [r4, #0xc]
- strh r1, [r4, #0xe]
- strh r1, [r4, #0x10]
- strb r2, [r4, #0x12]
- strb r2, [r4, #0x13]
- strb r3, [r4, #0x14]
- strb r2, [r4, #0x15]
- strb r2, [r4, #0x16]
- strb r3, [r4, #0x17]
- strh r1, [r4, #0x18]
- mov r2, ip
- movs r3, #0
- movs r1, #5
- adds r0, r2, #0
- adds r0, #0x1f
-_080513F8:
- strb r3, [r0]
- subs r0, #1
- subs r1, #1
- cmp r1, #0
- bge _080513F8
- movs r0, #0
- strh r0, [r2, #0x20]
- strh r0, [r2, #0x22]
- movs r3, #0xa
- movs r1, #1
- adds r0, r2, #0
- adds r0, #0x26
-_08051410:
- strh r3, [r0]
- subs r0, #2
- subs r1, #1
- cmp r1, #0
- bge _08051410
- movs r0, #0
- strh r0, [r2, #0x28]
- movs r1, #0
- ldr r6, _08051470 @ =0x02031AF0
- ldr r5, _08051474 @ =0x08527ED6
-_08051424:
- adds r4, r1, #1
- lsls r0, r1, #2
- adds r0, r0, r1
- lsls r0, r0, #1
- adds r2, r0, r5
- adds r1, r0, r6
- movs r3, #9
-_08051432:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, #1
- adds r1, #1
- subs r3, #1
- cmp r3, #0
- bge _08051432
- adds r1, r4, #0
- cmp r1, #3
- ble _08051424
- bl sub_52528
- ldr r0, _08051478 @ =0x02019C0C
- ldr r4, [r0]
- cmp r4, #1
- bne _0805147C
- ldr r3, _08051468 @ =0x02002920
- ldr r0, _0805146C @ =0x0200B134
- adds r0, #0xcd
- ldrb r1, [r0]
- adds r2, r3, #0
- adds r2, #0x2a
- strb r1, [r2]
- strb r4, [r0]
- adds r2, r3, #0
- b _0805148C
- .align 2, 0
-_08051468: .4byte 0x02002920
-_0805146C: .4byte 0x0200B134
-_08051470: .4byte 0x02031AF0
-_08051474: .4byte 0x08527ED6
-_08051478: .4byte 0x02019C0C
-_0805147C:
- ldr r2, _080514B0 @ =0x02002920
- adds r0, r2, #0
- adds r0, #0x2a
- movs r1, #0
- strb r1, [r0]
- ldr r0, _080514B4 @ =0x0200B134
- adds r0, #0xcd
- strb r1, [r0]
-_0805148C:
- adds r1, r2, #0
- adds r1, #0x2e
- movs r0, #0
- strb r0, [r1]
- subs r1, #3
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #2
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080514B0: .4byte 0x02002920
-_080514B4: .4byte 0x0200B134
-
- thumb_func_start sub_514B8
-sub_514B8: @ 0x080514B8
- push {r4, r5, r6, r7, lr}
- bl sub_51C9C
- ldr r0, _080514D4 @ =0x02002920
- movs r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #4
- bls _080514CA
- b _08051B98
-_080514CA:
- lsls r0, r0, #2
- ldr r1, _080514D8 @ =_080514DC
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080514D4: .4byte 0x02002920
-_080514D8: .4byte _080514DC
-_080514DC: @ jump table
- .4byte _080514F0 @ case 0
- .4byte _080517A8 @ case 1
- .4byte _080518D4 @ case 2
- .4byte _08051A08 @ case 3
- .4byte _08051AB8 @ case 4
-_080514F0:
- ldr r0, _08051514 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x40
- ands r0, r1
- cmp r0, #0
- beq _0805152C
- ldr r4, _08051518 @ =0x02002920
- movs r2, #0xa
- ldrsh r0, [r4, r2]
- cmp r0, #0xd
- beq _0805156C
- cmp r0, #0xe
- bne _0805151C
- movs r0, #0x67
- bl m4aSongNumStart
- movs r0, #0xd
- b _0805156A
- .align 2, 0
-_08051514: .4byte 0x0200B0C0
-_08051518: .4byte 0x02002920
-_0805151C:
- cmp r0, #0
- ble _0805156C
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4, #0xa]
- subs r0, #1
- b _0805156A
-_0805152C:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0805156C
- ldr r4, _0805154C @ =0x02002920
- movs r3, #0xa
- ldrsh r0, [r4, r3]
- cmp r0, #5
- bgt _08051550
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4, #0xa]
- adds r0, #1
- b _0805156A
- .align 2, 0
-_0805154C: .4byte 0x02002920
-_08051550:
- cmp r0, #0xd
- bne _0805155E
- movs r0, #0x67
- bl m4aSongNumStart
- movs r0, #0xe
- b _0805156A
-_0805155E:
- cmp r0, #0xe
- bne _0805156C
- movs r0, #0x67
- bl m4aSongNumStart
- movs r0, #2
-_0805156A:
- strh r0, [r4, #0xa]
-_0805156C:
- ldr r0, _080515E8 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _08051594
- ldr r0, _080515EC @ =0x02019C0C
- ldr r0, [r0]
- cmp r0, #1
- bne _08051594
- ldr r4, _080515F0 @ =0x02002920
- ldrh r0, [r4, #0xa]
- cmp r0, #1
- bhi _08051594
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4, #0xa]
- adds r0, #0xd
- strh r0, [r4, #0xa]
-_08051594:
- ldr r0, _080515E8 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _080515C2
- ldr r0, _080515EC @ =0x02019C0C
- ldr r0, [r0]
- cmp r0, #1
- bne _080515C2
- ldr r4, _080515F0 @ =0x02002920
- ldrh r0, [r4, #0xa]
- subs r0, #0xd
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- cmp r0, #1
- bhi _080515C2
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4, #0xa]
- subs r0, #0xd
- strh r0, [r4, #0xa]
-_080515C2:
- ldr r4, _080515E8 @ =0x0200B0C0
- ldrh r1, [r4, #0x18]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- bne _080515D0
- b _0805177C
-_080515D0:
- ldr r0, _080515F0 @ =0x02002920
- movs r6, #0xa
- ldrsh r0, [r0, r6]
- cmp r0, #0xe
- bls _080515DC
- b _08051A96
-_080515DC:
- lsls r0, r0, #2
- ldr r1, _080515F4 @ =_080515F8
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080515E8: .4byte 0x0200B0C0
-_080515EC: .4byte 0x02019C0C
-_080515F0: .4byte 0x02002920
-_080515F4: .4byte _080515F8
-_080515F8: @ jump table
- .4byte _08051634 @ case 0
- .4byte _08051674 @ case 1
- .4byte _080516B0 @ case 2
- .4byte _080516B0 @ case 3
- .4byte _080516B0 @ case 4
- .4byte _080516B0 @ case 5
- .4byte _080516D0 @ case 6
- .4byte _08051A96 @ case 7
- .4byte _08051A96 @ case 8
- .4byte _08051A96 @ case 9
- .4byte _08051A96 @ case 10
- .4byte _08051A96 @ case 11
- .4byte _08051A96 @ case 12
- .4byte _08051738 @ case 13
- .4byte _080516F8 @ case 14
-_08051634:
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r3, _08051670 @ =0x02002920
- movs r4, #0
- movs r1, #0
- movs r2, #1
- movs r0, #1
- strh r0, [r3]
- strh r1, [r3, #0x18]
- adds r0, r3, #0
- adds r0, #0x30
- strb r2, [r0]
- adds r1, r3, #0
- adds r1, #0x2e
- movs r0, #0
- ldrsb r0, [r1, r0]
- cmp r0, #1
- beq _0805165C
- b _08051A96
-_0805165C:
- adds r0, r3, #0
- adds r0, #0x2b
- strb r4, [r0]
- adds r0, #2
- strb r4, [r0]
- subs r0, #1
- strb r4, [r0]
- strb r4, [r1]
- b _08051A96
- .align 2, 0
-_08051670: .4byte 0x02002920
-_08051674:
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r2, _080516AC @ =0x02002920
- movs r3, #0
- movs r1, #0
- movs r0, #2
- strh r0, [r2]
- strh r1, [r2, #0x18]
- adds r1, r2, #0
- adds r1, #0x30
- movs r0, #1
- strb r0, [r1]
- subs r1, #2
- movs r0, #0
- ldrsb r0, [r1, r0]
- cmp r0, #1
- beq _0805169A
- b _08051A96
-_0805169A:
- adds r0, r2, #0
- adds r0, #0x2b
- strb r3, [r0]
- adds r0, #2
- strb r3, [r0]
- subs r0, #1
- strb r3, [r0]
- strb r3, [r1]
- b _08051A96
- .align 2, 0
-_080516AC: .4byte 0x02002920
-_080516B0:
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r0, _080516C8 @ =0x02002920
- ldrh r1, [r0, #0xa]
- subs r1, #2
- strh r1, [r0, #0xc]
- ldr r0, _080516CC @ =0x0200B134
- adds r0, #0xcf
- strb r1, [r0]
- b _08051A96
- .align 2, 0
-_080516C8: .4byte 0x02002920
-_080516CC: .4byte 0x0200B134
-_080516D0:
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r2, _080516F0 @ =0x02002920
- ldrh r1, [r2, #0xa]
- subs r1, #2
- strh r1, [r2, #0xc]
- ldr r0, _080516F4 @ =0x0200B134
- adds r0, #0xcf
- strb r1, [r0]
- movs r0, #7
- strh r0, [r2, #0xa]
- movs r0, #3
- strh r0, [r2]
- b _08051A96
- .align 2, 0
-_080516F0: .4byte 0x02002920
-_080516F4: .4byte 0x0200B134
-_080516F8:
- ldr r0, _08051730 @ =0x02019C0C
- ldr r0, [r0]
- cmp r0, #1
- beq _08051702
- b _08051A96
-_08051702:
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r1, _08051734 @ =0x02002920
- adds r0, r1, #0
- adds r0, #0x2d
- movs r2, #0
- strb r2, [r0]
- adds r3, r1, #0
- adds r3, #0x2e
- movs r0, #0
- ldrsb r0, [r3, r0]
- cmp r0, #1
- bne _08051720
- strb r2, [r3]
-_08051720:
- adds r0, r1, #0
- adds r0, #0x2b
- strb r2, [r0]
- adds r0, #1
- strb r2, [r0]
- subs r0, #2
- strb r2, [r0]
- b _08051A96
- .align 2, 0
-_08051730: .4byte 0x02019C0C
-_08051734: .4byte 0x02002920
-_08051738:
- ldr r0, _08051774 @ =0x02019C0C
- ldr r4, [r0]
- cmp r4, #1
- beq _08051742
- b _08051A96
-_08051742:
- movs r0, #0x65
- bl m4aSongNumStart
- movs r0, #0xb
- bl sub_11B0
- ldr r2, _08051778 @ =0x02002920
- adds r1, r2, #0
- adds r1, #0x2e
- movs r0, #0
- ldrsb r0, [r1, r0]
- cmp r0, #0
- bne _0805175E
- strb r4, [r1]
-_0805175E:
- adds r1, r2, #0
- adds r1, #0x2b
- movs r0, #0
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r0, r2, #0
- adds r0, #0x2a
- strb r4, [r0]
- b _08051A96
- .align 2, 0
-_08051774: .4byte 0x02019C0C
-_08051778: .4byte 0x02002920
-_0805177C:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- bne _08051786
- b _08051A96
-_08051786:
- movs r0, #0x66
- bl m4aSongNumStart
- ldrb r0, [r4, #3]
- adds r0, #1
- strb r0, [r4, #3]
- ldr r7, _080517A4 @ =0x00000143
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- bl sub_525CC
- b _08051A96
- .align 2, 0
-_080517A4: .4byte 0x00000143
-_080517A8:
- ldr r1, _080517C8 @ =0x0200B0C0
- ldrh r2, [r1, #0x1c]
- movs r0, #0x20
- ands r0, r2
- adds r3, r1, #0
- cmp r0, #0
- beq _080517D0
- ldr r0, _080517CC @ =0x02002920
- movs r2, #0x18
- ldrsh r1, [r0, r2]
- adds r4, r0, #0
- cmp r1, #0
- bne _080517EC
- ldrh r0, [r4, #0xe]
- subs r0, #1
- b _080517E6
- .align 2, 0
-_080517C8: .4byte 0x0200B0C0
-_080517CC: .4byte 0x02002920
-_080517D0:
- movs r0, #0x10
- ands r0, r2
- ldr r4, _080517FC @ =0x02002920
- cmp r0, #0
- beq _080517EC
- movs r6, #0x18
- ldrsh r0, [r4, r6]
- cmp r0, #0
- bne _080517EC
- ldrh r0, [r4, #0xe]
- adds r0, #1
-_080517E6:
- strh r0, [r4, #0xe]
- movs r0, #0xa
- strh r0, [r4, #0x18]
-_080517EC:
- ldrh r1, [r3, #0x18]
- movs r0, #0x40
- ands r0, r1
- cmp r0, #0
- beq _08051800
- ldrh r0, [r4, #0xe]
- adds r0, #0xa
- b _0805180C
- .align 2, 0
-_080517FC: .4byte 0x02002920
-_08051800:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0805180E
- ldrh r0, [r4, #0xe]
- subs r0, #0xa
-_0805180C:
- strh r0, [r4, #0xe]
-_0805180E:
- ldr r5, _08051880 @ =0x02002920
- movs r7, #0xe
- ldrsh r0, [r5, r7]
- cmp r0, #0
- bge _0805181C
- movs r0, #0x21
- strh r0, [r5, #0xe]
-_0805181C:
- movs r1, #0xe
- ldrsh r0, [r5, r1]
- cmp r0, #0x21
- ble _08051828
- movs r0, #0
- strh r0, [r5, #0xe]
-_08051828:
- ldrh r4, [r5, #0xe]
- adds r4, #1
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- adds r0, r4, #0
- movs r1, #0x64
- bl __divsi3
- strb r0, [r5, #0x12]
- adds r0, r4, #0
- movs r1, #0x64
- bl __modsi3
- adds r4, r0, #0
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- adds r0, r4, #0
- movs r1, #0xa
- bl __divsi3
- strb r0, [r5, #0x13]
- adds r0, r4, #0
- movs r1, #0xa
- bl __modsi3
- strb r0, [r5, #0x14]
- ldr r0, _08051884 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r4, #1
- ands r4, r1
- cmp r4, #0
- beq _0805188C
- bl m4aMPlayAllStop
- ldr r0, _08051888 @ =0x08527D22
- movs r2, #0xe
- ldrsh r1, [r5, r2]
- lsls r1, r1, #1
- adds r1, r1, r0
- ldrh r0, [r1]
- bl m4aSongNumStart
- b _080518AA
- .align 2, 0
-_08051880: .4byte 0x02002920
-_08051884: .4byte 0x0200B0C0
-_08051888: .4byte 0x08527D22
-_0805188C:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _080518AA
- bl m4aMPlayAllStop
- movs r0, #0x66
- bl m4aSongNumStart
- movs r1, #0
- strh r4, [r5, #4]
- adds r0, r5, #0
- adds r0, #0x30
- strb r1, [r0]
- strh r4, [r5]
-_080518AA:
- ldr r0, _080518CC @ =0x0200B0C0
- ldr r0, [r0, #0x4c]
- movs r1, #7
- ands r0, r1
- cmp r0, #0
- bne _080518C0
- ldr r2, _080518D0 @ =0x02002920
- ldrh r1, [r2, #4]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r2, #4]
-_080518C0:
- ldr r1, _080518D0 @ =0x02002920
- ldrh r2, [r1, #0x18]
- movs r3, #0x18
- ldrsh r0, [r1, r3]
- b _080519F4
- .align 2, 0
-_080518CC: .4byte 0x0200B0C0
-_080518D0: .4byte 0x02002920
-_080518D4:
- ldr r1, _080518F4 @ =0x0200B0C0
- ldrh r2, [r1, #0x1c]
- movs r0, #0x20
- ands r0, r2
- adds r3, r1, #0
- cmp r0, #0
- beq _080518FC
- ldr r0, _080518F8 @ =0x02002920
- movs r6, #0x18
- ldrsh r1, [r0, r6]
- adds r4, r0, #0
- cmp r1, #0
- bne _08051918
- ldrh r0, [r4, #0x10]
- subs r0, #1
- b _08051912
- .align 2, 0
-_080518F4: .4byte 0x0200B0C0
-_080518F8: .4byte 0x02002920
-_080518FC:
- movs r0, #0x10
- ands r0, r2
- ldr r4, _08051928 @ =0x02002920
- cmp r0, #0
- beq _08051918
- movs r7, #0x18
- ldrsh r0, [r4, r7]
- cmp r0, #0
- bne _08051918
- ldrh r0, [r4, #0x10]
- adds r0, #1
-_08051912:
- strh r0, [r4, #0x10]
- movs r0, #0xa
- strh r0, [r4, #0x18]
-_08051918:
- ldrh r1, [r3, #0x18]
- movs r0, #0x40
- ands r0, r1
- cmp r0, #0
- beq _0805192C
- ldrh r0, [r4, #0x10]
- adds r0, #0xa
- b _08051938
- .align 2, 0
-_08051928: .4byte 0x02002920
-_0805192C:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0805193A
- ldrh r0, [r4, #0x10]
- subs r0, #0xa
-_08051938:
- strh r0, [r4, #0x10]
-_0805193A:
- ldr r5, _080519AC @ =0x02002920
- movs r1, #0x10
- ldrsh r0, [r5, r1]
- cmp r0, #0
- bge _08051948
- movs r0, #0xb7
- strh r0, [r5, #0x10]
-_08051948:
- movs r2, #0x10
- ldrsh r0, [r5, r2]
- cmp r0, #0xb7
- ble _08051954
- movs r0, #0
- strh r0, [r5, #0x10]
-_08051954:
- ldrh r4, [r5, #0x10]
- adds r4, #1
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- adds r0, r4, #0
- movs r1, #0x64
- bl __divsi3
- strb r0, [r5, #0x15]
- adds r0, r4, #0
- movs r1, #0x64
- bl __modsi3
- adds r4, r0, #0
- lsls r4, r4, #0x10
- asrs r4, r4, #0x10
- adds r0, r4, #0
- movs r1, #0xa
- bl __divsi3
- strb r0, [r5, #0x16]
- adds r0, r4, #0
- movs r1, #0xa
- bl __modsi3
- strb r0, [r5, #0x17]
- ldr r0, _080519B0 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r4, #1
- ands r4, r1
- cmp r4, #0
- beq _080519B8
- bl m4aMPlayAllStop
- ldr r0, _080519B4 @ =0x08527D66
- movs r3, #0x10
- ldrsh r1, [r5, r3]
- lsls r1, r1, #1
- adds r1, r1, r0
- ldrh r0, [r1]
- bl m4aSongNumStart
- b _080519D6
- .align 2, 0
-_080519AC: .4byte 0x02002920
-_080519B0: .4byte 0x0200B0C0
-_080519B4: .4byte 0x08527D66
-_080519B8:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _080519D6
- bl m4aMPlayAllStop
- movs r0, #0x66
- bl m4aSongNumStart
- movs r1, #0
- strh r4, [r5, #4]
- adds r0, r5, #0
- adds r0, #0x30
- strb r1, [r0]
- strh r4, [r5]
-_080519D6:
- ldr r0, _08051A00 @ =0x0200B0C0
- ldr r0, [r0, #0x4c]
- movs r1, #7
- ands r0, r1
- cmp r0, #0
- bne _080519EC
- ldr r2, _08051A04 @ =0x02002920
- ldrh r1, [r2, #4]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r2, #4]
-_080519EC:
- ldr r1, _08051A04 @ =0x02002920
- ldrh r2, [r1, #0x18]
- movs r6, #0x18
- ldrsh r0, [r1, r6]
-_080519F4:
- cmp r0, #0
- bgt _080519FA
- b _08051B98
-_080519FA:
- subs r0, r2, #1
- strh r0, [r1, #0x18]
- b _08051B98
- .align 2, 0
-_08051A00: .4byte 0x0200B0C0
-_08051A04: .4byte 0x02002920
-_08051A08:
- ldr r0, _08051A2C @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r0, #0x40
- ands r0, r1
- cmp r0, #0
- beq _08051A34
- ldr r4, _08051A30 @ =0x02002920
- movs r7, #0xa
- ldrsh r0, [r4, r7]
- cmp r0, #7
- ble _08051A52
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4, #0xa]
- subs r0, #1
- b _08051A50
- .align 2, 0
-_08051A2C: .4byte 0x0200B0C0
-_08051A30: .4byte 0x02002920
-_08051A34:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08051A52
- ldr r4, _08051A78 @ =0x02002920
- movs r1, #0xa
- ldrsh r0, [r4, r1]
- cmp r0, #0xa
- bgt _08051A52
- movs r0, #0x67
- bl m4aSongNumStart
- ldrh r0, [r4, #0xa]
- adds r0, #1
-_08051A50:
- strh r0, [r4, #0xa]
-_08051A52:
- ldr r0, _08051A7C @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- movs r4, #1
- ands r4, r1
- cmp r4, #0
- beq _08051A80
- movs r0, #0x65
- bl m4aSongNumStart
- ldr r0, _08051A78 @ =0x02002920
- movs r1, #4
- strh r1, [r0]
- movs r2, #0xa
- ldrsh r1, [r0, r2]
- adds r0, r0, r1
- movs r1, #1
- strb r1, [r0, #0x13]
- b _08051A96
- .align 2, 0
-_08051A78: .4byte 0x02002920
-_08051A7C: .4byte 0x0200B0C0
-_08051A80:
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _08051A96
- movs r0, #0x66
- bl m4aSongNumStart
- ldr r1, _08051AB0 @ =0x02002920
- movs r0, #6
- strh r0, [r1, #0xa]
- strh r4, [r1]
-_08051A96:
- ldr r0, _08051AB4 @ =0x0200B0C0
- ldr r0, [r0, #0x4c]
- movs r1, #7
- ands r0, r1
- cmp r0, #0
- bne _08051B98
- ldr r2, _08051AB0 @ =0x02002920
- ldrh r1, [r2, #2]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r2, #2]
- b _08051B98
- .align 2, 0
-_08051AB0: .4byte 0x02002920
-_08051AB4: .4byte 0x0200B0C0
-_08051AB8:
- ldr r4, _08051BF4 @ =0x02002920
- ldrh r0, [r4, #8]
- adds r0, #1
- movs r5, #0
- strh r0, [r4, #8]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #0x18
- ble _08051AD4
- strh r5, [r4, #8]
- ldrh r1, [r4, #6]
- movs r0, #1
- subs r0, r0, r1
- strh r0, [r4, #6]
-_08051AD4:
- ldr r0, _08051BF8 @ =0x0200B0C0
- ldrh r1, [r0, #0x18]
- ldr r0, _08051BFC @ =0x000003F7
- ands r0, r1
- cmp r0, #0
- beq _08051B0E
- movs r0, #0x65
- bl m4aSongNumStart
- movs r0, #0xa
- strh r0, [r4, #0x20]
- strh r5, [r4, #0x22]
- movs r0, #0
- adds r3, r4, #0
- adds r3, #0x24
- movs r2, #0xa
-_08051AF4:
- lsls r1, r0, #0x10
- asrs r1, r1, #0x10
- lsls r0, r1, #1
- adds r0, r0, r3
- strh r2, [r0]
- adds r1, #1
- lsls r1, r1, #0x10
- lsrs r0, r1, #0x10
- asrs r1, r1, #0x10
- cmp r1, #1
- ble _08051AF4
- movs r0, #0
- strh r0, [r4, #0x28]
-_08051B0E:
- ldr r4, _08051BF4 @ =0x02002920
- movs r3, #0x20
- ldrsh r0, [r4, r3]
- cmp r0, #0
- ble _08051B98
- bl sub_524BC
- ldrh r0, [r4, #0x20]
- subs r0, #1
- strh r0, [r4, #0x20]
- lsls r0, r0, #0x10
- asrs r5, r0, #0x10
- cmp r5, #0
- bne _08051B98
- ldr r2, _08051C00 @ =0x02031AF0
- movs r6, #0xa
- ldrsh r0, [r4, r6]
- subs r0, #7
- lsls r0, r0, #1
- adds r2, #0x28
- adds r0, r0, r2
- ldrh r1, [r4, #0x24]
- strb r1, [r0]
- movs r7, #0xa
- ldrsh r0, [r4, r7]
- subs r0, #7
- lsls r0, r0, #1
- adds r0, #1
- adds r0, r0, r2
- ldrh r1, [r4, #0x26]
- strb r1, [r0]
- ldr r2, _08051C04 @ =0x0200B134
- movs r0, #0xa
- ldrsh r1, [r4, r0]
- subs r1, #7
- lsls r1, r1, #2
- adds r0, r2, #0
- adds r0, #0xd0
- adds r1, r1, r0
- ldr r3, _08051C08 @ =0x086BB910
- movs r6, #0x24
- ldrsh r0, [r4, r6]
- lsls r0, r0, #3
- adds r0, r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- movs r7, #0xa
- ldrsh r1, [r4, r7]
- subs r1, #7
- lsls r1, r1, #2
- adds r2, #0xd2
- adds r1, r1, r2
- movs r2, #0x26
- ldrsh r0, [r4, r2]
- lsls r0, r0, #3
- adds r0, r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, #3
- strh r0, [r4]
- movs r3, #0xa
- ldrsh r0, [r4, r3]
- adds r0, r4, r0
- adds r0, #0x13
- movs r1, #0
- strb r1, [r0]
- strh r5, [r4, #8]
- movs r0, #1
- strh r0, [r4, #6]
-_08051B98:
- ldr r2, _08051BF4 @ =0x02002920
- movs r6, #0x2e
- adds r6, r6, r2
- mov ip, r6
- movs r0, #0
- ldrsb r0, [r6, r0]
- cmp r0, #1
- bne _08051C10
- adds r4, r2, #0
- adds r4, #0x2b
- ldrb r0, [r4]
- adds r0, #1
- movs r5, #0
- strb r0, [r4]
- lsls r0, r0, #0x18
- ldr r6, _08051C0C @ =0x086BB9B4
- adds r3, r2, #0
- adds r3, #0x2c
- movs r1, #0
- ldrsb r1, [r3, r1]
- lsls r1, r1, #2
- adds r1, r1, r6
- asrs r0, r0, #0x18
- movs r7, #2
- ldrsh r1, [r1, r7]
- cmp r0, r1
- ble _08051C30
- strb r5, [r4]
- ldrb r0, [r3]
- adds r0, #1
- strb r0, [r3]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r2, #0x2d
- cmp r0, #0xc
- ble _08051BE8
- strb r5, [r3]
- strb r5, [r2]
- mov r0, ip
- strb r5, [r0]
-_08051BE8:
- movs r0, #0
- ldrsb r0, [r3, r0]
- lsls r0, r0, #2
- adds r0, r0, r6
- ldrb r0, [r0]
- b _08051C2E
- .align 2, 0
-_08051BF4: .4byte 0x02002920
-_08051BF8: .4byte 0x0200B0C0
-_08051BFC: .4byte 0x000003F7
-_08051C00: .4byte 0x02031AF0
-_08051C04: .4byte 0x0200B134
-_08051C08: .4byte 0x086BB910
-_08051C0C: .4byte 0x086BB9B4
-_08051C10:
- adds r1, r2, #0
- adds r1, #0x2b
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- cmp r0, #0x12
- ble _08051C30
- movs r0, #0
- strb r0, [r1]
- adds r2, #0x2d
- ldrb r1, [r2]
- movs r0, #1
- subs r0, r0, r1
-_08051C2E:
- strb r0, [r2]
-_08051C30:
- bl sub_11FC
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_start sub_51C3C
-sub_51C3C: @ 0x08051C3C
- push {lr}
- bl sub_111C
- bl sub_1170
- cmp r0, #0
- beq _08051C56
- bl sub_1198
- ldr r1, _08051C5C @ =0x0200B0C0
- ldrb r0, [r1, #3]
- adds r0, #1
- strb r0, [r1, #3]
-_08051C56:
- pop {r0}
- bx r0
- .align 2, 0
-_08051C5C: .4byte 0x0200B0C0
-
- thumb_func_start sub_51C60
-sub_51C60: @ 0x08051C60
- push {lr}
- ldr r1, _08051C90 @ =0x0200B134
- ldr r0, _08051C94 @ =0x02002920
- adds r0, #0x2a
- ldrb r0, [r0]
- adds r1, #0xcd
- strb r0, [r1]
- bl sub_52B30
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08051C98 @ =0x0201A4B4
- movs r0, #1
- strb r0, [r1]
- movs r0, #1
- bl sub_23C
- pop {r0}
- bx r0
- .align 2, 0
-_08051C90: .4byte 0x0200B134
-_08051C94: .4byte 0x02002920
-_08051C98: .4byte 0x0201A4B4
-
- thumb_func_start sub_51C9C
-sub_51C9C: @ 0x08051C9C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x8c
- ldr r0, _08051D38 @ =0x0200B3B8
- mov r8, r0
- ldr r2, _08051D3C @ =0x02002920
- movs r3, #4
- ldrsh r1, [r2, r3]
- movs r0, #0xe6
- lsls r0, r0, #4
- muls r1, r0, r1
- movs r0, #0xa1
- lsls r0, r0, #3
- add r0, r8
- adds r1, r1, r0
- str r1, [sp, #0x60]
- add r4, sp, #0xc
- mov sl, r4
- mov r6, sp
- adds r6, #0x18
- str r6, [sp, #0x6c]
- mov r7, sp
- adds r7, #0x1c
- str r7, [sp, #0x74]
- mov r0, sp
- adds r0, #0x20
- str r0, [sp, #0x7c]
- movs r0, #0xb8
- lsls r0, r0, #2
- add r0, r8
- mov r3, sl
- mov r1, r8
- adds r1, #0xb8
- mov r2, sp
- movs r4, #2
- mov ip, r4
-_08051CEA:
- stm r2!, {r1}
- stm r3!, {r0}
- adds r0, #0xb8
- adds r1, #0xb8
- movs r6, #1
- rsbs r6, r6, #0
- add ip, r6
- mov r7, ip
- cmp r7, #0
- bge _08051CEA
- movs r0, #0
- mov ip, r0
- movs r1, #8
- add r1, r8
- mov sb, r1
- ldr r2, _08051D40 @ =0x0200B978
- adds r2, #8
- str r2, [sp, #0x70]
- ldr r0, _08051D44 @ =0x0200BAE8
- adds r4, r0, #0
- adds r4, #0xb8
- adds r5, r0, #0
- movs r3, #0
- ldr r1, [sp, #0x6c]
- adds r2, r5, #0
- subs r2, #0xb8
-_08051D1E:
- ldr r0, _08051D48 @ =0x0200293A
- add r0, ip
- ldrb r0, [r0]
- cmp r0, #1
- bne _08051D50
- ldr r6, _08051D3C @ =0x02002920
- movs r7, #6
- ldrsh r0, [r6, r7]
- cmp r0, #1
- bne _08051D50
- ldr r0, _08051D4C @ =0x0200C7D8
- str r0, [r1]
- b _08051D52
- .align 2, 0
-_08051D38: .4byte 0x0200B3B8
-_08051D3C: .4byte 0x02002920
-_08051D40: .4byte 0x0200B978
-_08051D44: .4byte 0x0200BAE8
-_08051D48: .4byte 0x0200293A
-_08051D4C: .4byte 0x0200C7D8
-_08051D50:
- str r2, [r1]
-_08051D52:
- ldr r6, [sp, #0x74]
- adds r0, r6, r3
- str r5, [r0]
- ldr r7, [sp, #0x7c]
- adds r0, r7, r3
- str r4, [r0]
- movs r0, #0x8a
- lsls r0, r0, #2
- adds r4, r4, r0
- adds r5, r5, r0
- adds r2, r2, r0
- adds r3, #0xc
- adds r1, #0xc
- movs r6, #1
- add ip, r6
- mov r7, ip
- cmp r7, #5
- ble _08051D1E
- ldr r0, _08051F64 @ =0x0200C890
- str r0, [sp, #0x64]
- movs r0, #1
- mov r1, r8
- strh r0, [r1]
- movs r2, #1
- mov r1, sp
- movs r3, #2
- mov ip, r3
-_08051D88:
- ldm r1!, {r0}
- strh r2, [r0]
- movs r4, #1
- rsbs r4, r4, #0
- add ip, r4
- mov r6, ip
- cmp r6, #0
- bge _08051D88
- ldr r7, [sp, #0x64]
- adds r7, #8
- str r7, [sp, #0x78]
- movs r2, #1
- mov r1, sl
- movs r0, #2
- mov ip, r0
-_08051DA6:
- ldm r1!, {r0}
- strh r2, [r0]
- movs r3, #1
- rsbs r3, r3, #0
- add ip, r3
- mov r4, ip
- cmp r4, #0
- bge _08051DA6
- movs r0, #1
- ldr r6, [sp, #0x60]
- strh r0, [r6]
- ldr r7, _08051F68 @ =0x0200B978
- strh r0, [r7]
- movs r0, #0
- mov ip, r0
- ldr r6, [sp, #0x6c]
- movs r3, #1
- movs r2, #0
-_08051DCA:
- adds r1, r2, r6
- movs r5, #2
-_08051DCE:
- ldm r1!, {r0}
- strh r3, [r0]
- subs r5, #1
- cmp r5, #0
- bge _08051DCE
- adds r2, #0xc
- movs r1, #1
- add ip, r1
- mov r4, ip
- cmp r4, #5
- ble _08051DCA
- movs r0, #1
- ldr r6, [sp, #0x64]
- strh r0, [r6]
- ldr r7, _08051F6C @ =0x0200C948
- strh r0, [r7]
- ldr r5, _08051F70 @ =0x02002920
- adds r0, r5, #0
- adds r0, #0x30
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r1, _08051F74 @ =0x0200CA00
- strh r0, [r1]
- ldr r0, _08051F78 @ =0x086BB9EC
- movs r1, #0x20
- ldr r2, _08051F7C @ =0x0200B3B8
- bl sub_358
- ldr r2, _08051F80 @ =0x086BB968
- movs r3, #0xa
- ldrsh r1, [r5, r3]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldrh r0, [r5, #2]
- ldrh r1, [r1]
- adds r0, r0, r1
- mov r4, r8
- strh r0, [r4, #2]
- movs r6, #0xa
- ldrsh r0, [r5, r6]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0, #2]
- strh r0, [r4, #4]
- mov r7, sb
- ldr r4, _08051F84 @ =0x03005000
- mov r0, r8
- ldrh r2, [r0, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r3, #2
- ldrsh r1, [r7, r3]
- movs r6, #2
- ldrsh r0, [r0, r6]
- adds r1, r1, r0
- ldr r3, _08051F88 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r6, _08051F8C @ =0xFFFFFE00
- adds r0, r6, #0
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- mov r0, r8
- ldrh r1, [r0, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r1, #0
- mov ip, r1
- mov r8, r4
- mov r5, sp
- movs r2, #0x48
- mov sb, r2
-_08051E6C:
- ldr r0, [r5]
- mov r3, sb
- strh r3, [r0, #2]
- ldr r1, [r5]
- movs r0, #0x20
- strh r0, [r1, #4]
- ldr r4, [r5]
- adds r7, r4, #0
- adds r7, #8
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- add r2, r8
- ldr r0, _08051F90 @ =0x02002932
- add r0, ip
- ldrb r1, [r0]
- adds r1, #0x16
- ldrh r3, [r2, #4]
- ldr r0, _08051F94 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r3, [r4, #8]
- lsls r3, r3, #3
- add r3, r8
- movs r0, #2
- ldrsh r1, [r7, r0]
- ldr r0, [r5]
- movs r2, #2
- ldrsh r0, [r0, r2]
- adds r1, r1, r0
- ldr r2, _08051F88 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- adds r0, r6, #0
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- add r1, r8
- ldm r5!, {r0}
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r3, #7
- add sb, r3
- movs r4, #1
- add ip, r4
- mov r7, ip
- cmp r7, #2
- ble _08051E6C
- movs r0, #0
- mov ip, r0
- ldr r1, _08051F84 @ =0x03005000
- mov r8, r1
- movs r6, #0x48
- mov r5, sl
-_08051EE2:
- ldr r0, [r5]
- strh r6, [r0, #2]
- ldr r0, [r5]
- movs r2, #0x2c
- mov sb, r2
- mov r3, sb
- strh r3, [r0, #4]
- ldr r4, [r5]
- adds r7, r4, #0
- adds r7, #8
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- add r2, r8
- ldr r0, _08051F98 @ =0x02002935
- add r0, ip
- ldrb r1, [r0]
- adds r1, #0x16
- ldrh r3, [r2, #4]
- ldr r0, _08051F94 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r3, [r4, #8]
- lsls r3, r3, #3
- add r3, r8
- movs r0, #2
- ldrsh r1, [r7, r0]
- ldr r0, [r5]
- movs r2, #2
- ldrsh r0, [r0, r2]
- adds r1, r1, r0
- ldr r2, _08051F88 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _08051F8C @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- add r1, r8
- ldm r5!, {r0}
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r6, #7
- movs r3, #1
- add ip, r3
- mov r4, ip
- cmp r4, #2
- ble _08051EE2
- movs r0, #0x48
- ldr r6, [sp, #0x60]
- strh r0, [r6, #2]
- ldr r7, _08051F70 @ =0x02002920
- movs r1, #0xa
- ldrsh r0, [r7, r1]
- cmp r0, #0
- bne _08051F9C
- movs r0, #0x20
- strh r0, [r6, #4]
- b _08051FA6
- .align 2, 0
-_08051F64: .4byte 0x0200C890
-_08051F68: .4byte 0x0200B978
-_08051F6C: .4byte 0x0200C948
-_08051F70: .4byte 0x02002920
-_08051F74: .4byte 0x0200CA00
-_08051F78: .4byte 0x086BB9EC
-_08051F7C: .4byte 0x0200B3B8
-_08051F80: .4byte 0x086BB968
-_08051F84: .4byte 0x03005000
-_08051F88: .4byte 0x000001FF
-_08051F8C: .4byte 0xFFFFFE00
-_08051F90: .4byte 0x02002932
-_08051F94: .4byte 0xFFFFFC00
-_08051F98: .4byte 0x02002935
-_08051F9C:
- cmp r0, #1
- bne _08051FA6
- mov r3, sb
- ldr r2, [sp, #0x60]
- strh r3, [r2, #4]
-_08051FA6:
- ldr r5, _080520D0 @ =0x03005000
- ldr r7, _080520D4 @ =0xFFFFFE00
- ldr r4, [sp, #0x60]
- adds r4, #8
- movs r6, #1
- mov ip, r6
-_08051FB2:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r0, #2
- ldrsh r1, [r4, r0]
- ldr r2, [sp, #0x60]
- movs r6, #2
- ldrsh r0, [r2, r6]
- adds r1, r1, r0
- ldr r0, _080520D8 @ =0x000001FF
- adds r6, r0, #0
- ands r1, r6
- ldrh r2, [r3, #2]
- adds r0, r7, #0
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldr r2, [sp, #0x60]
- ldrb r0, [r2, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- movs r0, #1
- rsbs r0, r0, #0
- add ip, r0
- mov r1, ip
- cmp r1, #0
- bge _08051FB2
- movs r0, #0x48
- ldr r2, _080520DC @ =0x0200B978
- strh r0, [r2, #2]
- ldr r3, _080520E0 @ =0x02002920
- movs r4, #0xc
- ldrsh r0, [r3, r4]
- lsls r0, r0, #1
- ldr r7, _080520E4 @ =0x086BB9A8
- adds r0, r0, r7
- ldrh r0, [r0]
- strh r0, [r2, #4]
- ldr r7, [sp, #0x70]
- ldrh r2, [r2, #8]
- lsls r2, r2, #3
- ldr r0, _080520D0 @ =0x03005000
- adds r2, r2, r0
- movs r3, #2
- ldrsh r1, [r7, r3]
- adds r1, #0x48
- ands r1, r6
- ldrh r3, [r2, #2]
- ldr r0, _080520D4 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldr r4, _080520DC @ =0x0200B978
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r6, _080520D0 @ =0x03005000
- adds r1, r1, r6
- ldrb r0, [r4, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r7, #0
- mov ip, r7
- ldr r0, _080520E0 @ =0x02002920
- str r0, [sp, #0x68]
- movs r1, #0x54
- str r1, [sp, #0x80]
- movs r2, #0
- str r2, [sp, #0x84]
- movs r3, #0
- str r3, [sp, #0x88]
- ldr r4, [sp, #0x6c]
- mov r8, r4
-_0805204E:
- ldr r0, [sp, #0x68]
- adds r0, #0x1a
- add r0, ip
- ldrb r0, [r0]
- cmp r0, #1
- bne _080520E8
- mov r6, r8
- ldr r1, [r6]
- movs r0, #0x9c
- strh r0, [r1, #2]
- ldr r0, [r6]
- add r7, sp, #0x80
- ldrh r7, [r7]
- strh r7, [r0, #4]
- movs r5, #0
- ldr r1, [sp, #0x68]
- movs r2, #6
- ldrsh r0, [r1, r2]
- adds r0, #1
- cmp r5, r0
- blt _0805207A
- b _080522E2
-_0805207A:
- ldr r3, [sp, #0x6c]
- ldr r6, [sp, #0x84]
- adds r4, r3, r6
- ldr r7, _080520D0 @ =0x03005000
- mov sb, r7
- movs r6, #8
- ldr r0, _080520D4 @ =0xFFFFFE00
- mov sl, r0
-_0805208A:
- ldr r0, [r4]
- adds r7, r0, r6
- ldrh r2, [r7]
- lsls r2, r2, #3
- add r2, sb
- movs r3, #2
- ldrsh r1, [r7, r3]
- movs r3, #2
- ldrsh r0, [r0, r3]
- adds r1, r1, r0
- ldr r3, _080520D8 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r7]
- lsls r1, r1, #3
- add r1, sb
- ldr r0, [r4]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r6, #8
- adds r5, #1
- ldr r7, [sp, #0x68]
- movs r1, #6
- ldrsh r0, [r7, r1]
- adds r0, #1
- cmp r5, r0
- blt _0805208A
- b _080522E2
- .align 2, 0
-_080520D0: .4byte 0x03005000
-_080520D4: .4byte 0xFFFFFE00
-_080520D8: .4byte 0x000001FF
-_080520DC: .4byte 0x0200B978
-_080520E0: .4byte 0x02002920
-_080520E4: .4byte 0x086BB9A8
-_080520E8:
- mov r2, r8
- ldr r1, [r2]
- movs r0, #0x9c
- strh r0, [r1, #2]
- ldr r0, [r2]
- add r3, sp, #0x80
- ldrh r3, [r3]
- strh r3, [r0, #4]
- ldr r4, [r2]
- adds r7, r4, #0
- adds r7, #8
- ldr r6, [sp, #0x68]
- movs r0, #0xc
- ldrsh r1, [r6, r0]
- lsls r0, r1, #2
- adds r0, r0, r1
- lsls r0, r0, #1
- ldr r1, [sp, #0x88]
- adds r0, r1, r0
- ldr r2, _08052490 @ =0x02031AF0
- adds r0, r0, r2
- ldrb r0, [r0]
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =0x03005000
- adds r2, r2, r3
- lsls r0, r0, #3
- ldr r1, _08052498 @ =0x086BB910
- adds r6, r0, r1
- ldrh r0, [r6, #2]
- ldr r1, _0805249C @ =0x000003FF
- ands r1, r0
- ldrh r3, [r2, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =0x03005000
- adds r1, r1, r2
- ldrb r2, [r6, #4]
- lsls r2, r2, #6
- ldrb r3, [r1, #1]
- movs r0, #0x3f
- mov sl, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, #1]
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r1, _08052494 @ =0x03005000
- adds r2, r2, r1
- ldrb r1, [r6, #5]
- lsls r1, r1, #6
- ldrb r3, [r2, #3]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #3]
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =0x03005000
- adds r2, r2, r3
- movs r0, #2
- ldrsh r1, [r7, r0]
- mov r3, r8
- ldr r0, [r3]
- movs r3, #2
- ldrsh r0, [r0, r3]
- adds r1, r1, r0
- ldr r0, _080524A4 @ =0x000001FF
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =0x03005000
- adds r1, r1, r2
- mov r3, r8
- ldr r0, [r3]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- ldr r4, [sp, #0x68]
- movs r7, #0xc
- ldrsh r1, [r4, r7]
- lsls r0, r1, #2
- adds r0, r0, r1
- lsls r0, r0, #1
- adds r0, #1
- ldr r1, [sp, #0x88]
- adds r0, r1, r0
- ldr r2, _08052490 @ =0x02031AF0
- adds r0, r0, r2
- ldrb r0, [r0]
- mov sb, r0
- cmp r0, #0xa
- bne _080521B8
- b _080522E2
-_080521B8:
- ldr r3, [sp, #0x74]
- ldr r4, [sp, #0x84]
- adds r5, r3, r4
- ldr r1, [r5]
- mov r7, r8
- ldr r0, [r7]
- ldrh r0, [r0, #2]
- ldrb r6, [r6, #6]
- adds r0, r0, r6
- strh r0, [r1, #2]
- ldr r1, [r5]
- ldr r0, [r7]
- ldrh r0, [r0, #4]
- strh r0, [r1, #4]
- ldr r4, [r5]
- adds r7, r4, #0
- adds r7, #8
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r0, _08052494 @ =0x03005000
- adds r2, r2, r0
- ldrh r1, [r2, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r1
- movs r1, #0x2a
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =0x03005000
- adds r1, r1, r2
- ldrb r2, [r1, #1]
- mov r0, sl
- ands r0, r2
- strb r0, [r1, #1]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r3, _08052494 @ =0x03005000
- adds r1, r1, r3
- ldrb r2, [r1, #3]
- mov r0, sl
- ands r0, r2
- strb r0, [r1, #3]
- ldrh r3, [r4, #8]
- lsls r3, r3, #3
- ldr r6, _08052494 @ =0x03005000
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r7, r0]
- ldr r0, [r5]
- movs r2, #2
- ldrsh r0, [r0, r2]
- adds r1, r1, r0
- ldr r6, _080524A4 @ =0x000001FF
- ands r1, r6
- ldrh r2, [r3, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r0, _08052494 @ =0x03005000
- adds r1, r1, r0
- ldr r0, [r5]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- ldr r1, [sp, #0x7c]
- ldr r2, [sp, #0x84]
- adds r6, r1, r2
- ldr r1, [r6]
- ldr r0, [r5]
- ldrh r0, [r0, #2]
- adds r0, #8
- strh r0, [r1, #2]
- ldr r1, [r6]
- mov r3, r8
- ldr r0, [r3]
- ldrh r0, [r0, #4]
- strh r0, [r1, #4]
- ldr r5, [r6]
- adds r7, r5, #0
- adds r7, #8
- ldrh r3, [r5, #8]
- lsls r3, r3, #3
- ldr r4, _08052494 @ =0x03005000
- adds r3, r3, r4
- mov r0, sb
- lsls r4, r0, #3
- ldr r1, _08052498 @ =0x086BB910
- adds r4, r4, r1
- ldrh r0, [r4, #2]
- ldr r1, _0805249C @ =0x000003FF
- ands r1, r0
- ldrh r2, [r3, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #4]
- ldrh r2, [r5, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =0x03005000
- adds r2, r2, r3
- ldrb r1, [r4, #4]
- lsls r1, r1, #6
- ldrb r3, [r2, #1]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r2, [r5, #8]
- lsls r2, r2, #3
- ldr r0, _08052494 @ =0x03005000
- adds r2, r2, r0
- ldrb r1, [r4, #5]
- lsls r1, r1, #6
- ldrb r3, [r2, #3]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #3]
- ldrh r3, [r5, #8]
- lsls r3, r3, #3
- ldr r1, _08052494 @ =0x03005000
- adds r3, r3, r1
- movs r2, #2
- ldrsh r1, [r7, r2]
- ldr r0, [r6]
- movs r4, #2
- ldrsh r0, [r0, r4]
- adds r1, r1, r0
- ldr r0, _080524A4 @ =0x000001FF
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r5, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =0x03005000
- adds r1, r1, r2
- ldr r0, [r6]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
-_080522E2:
- ldr r3, [sp, #0x80]
- adds r3, #0xc
- str r3, [sp, #0x80]
- ldr r4, [sp, #0x84]
- adds r4, #0xc
- str r4, [sp, #0x84]
- ldr r6, [sp, #0x88]
- adds r6, #2
- str r6, [sp, #0x88]
- movs r7, #0xc
- add r8, r7
- movs r0, #1
- add ip, r0
- mov r1, ip
- cmp r1, #4
- bgt _08052304
- b _0805204E
-_08052304:
- movs r5, #8
- movs r0, #0xaa
- ldr r2, [sp, #0x64]
- strh r0, [r2, #2]
- ldr r0, _080524AC @ =0x02002920
- adds r0, #0x2a
- ldrb r0, [r0]
- lsls r1, r0, #1
- adds r1, r1, r0
- lsls r1, r1, #2
- movs r0, #0x2c
- subs r0, r0, r1
- strh r0, [r2, #4]
- ldr r7, [sp, #0x78]
- ldrh r2, [r2, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =0x03005000
- adds r2, r2, r3
- movs r4, #2
- ldrsh r1, [r7, r4]
- adds r1, #0xaa
- ldr r6, _080524A4 @ =0x000001FF
- adds r0, r6, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r4, _080524A8 @ =0xFFFFFE00
- adds r0, r4, #0
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldr r0, [sp, #0x64]
- ldrh r1, [r0, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =0x03005000
- adds r1, r1, r2
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r0, #0xc0
- ldr r3, _080524B0 @ =0x0200C948
- strh r0, [r3, #2]
- strh r5, [r3, #4]
- ldr r6, _080524AC @ =0x02002920
- adds r6, #0x2d
- mov sl, r6
- adds r5, r3, #0
- adds r5, #8
- movs r6, #0x40
- mov sb, r4
- movs r7, #1
- mov ip, r7
-_0805236C:
- ldrh r3, [r5]
- lsls r3, r3, #3
- ldr r0, _08052494 @ =0x03005000
- adds r3, r3, r0
- mov r2, sl
- movs r1, #0
- ldrsb r1, [r2, r1]
- lsls r1, r1, #2
- adds r1, r6, r1
- ldr r7, _0805249C @ =0x000003FF
- adds r4, r7, #0
- ands r1, r4
- ldrh r2, [r3, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #4]
- ldrh r3, [r5]
- lsls r3, r3, #3
- ldr r0, _08052494 @ =0x03005000
- adds r3, r3, r0
- movs r2, #2
- ldrsh r1, [r5, r2]
- ldr r7, _080524B0 @ =0x0200C948
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r7, _080524A4 @ =0x000001FF
- mov r8, r7
- mov r0, r8
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r5]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =0x03005000
- adds r1, r1, r2
- ldr r3, _080524B0 @ =0x0200C948
- ldrb r0, [r3, #4]
- ldrb r7, [r5, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r5, #8
- adds r6, #0x80
- movs r0, #1
- rsbs r0, r0, #0
- add ip, r0
- mov r1, ip
- cmp r1, #0
- bge _0805236C
- ldr r2, _080524B4 @ =0x0200CA00
- ldrh r0, [r2]
- cmp r0, #1
- bne _08052454
- movs r0, #0xb0
- strh r0, [r2, #2]
- movs r0, #8
- strh r0, [r2, #4]
- adds r7, r2, #0
- adds r7, #8
- ldrh r2, [r2, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =0x03005000
- adds r2, r2, r3
- ldr r5, _080524AC @ =0x02002920
- adds r5, #0x2f
- movs r1, #0
- ldrsb r1, [r5, r1]
- lsls r1, r1, #6
- adds r1, #0x54
- ands r1, r4
- ldrh r3, [r2, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldr r4, _080524B4 @ =0x0200CA00
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r6, _08052494 @ =0x03005000
- adds r2, r2, r6
- movs r0, #2
- ldrsh r1, [r7, r0]
- movs r3, #2
- ldrsh r0, [r4, r3]
- adds r1, r1, r0
- mov r4, r8
- ands r1, r4
- ldrh r3, [r2, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldr r6, _080524B4 @ =0x0200CA00
- ldrh r1, [r6, #8]
- lsls r1, r1, #3
- ldr r0, _08052494 @ =0x03005000
- adds r1, r1, r0
- ldrb r0, [r6, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- ldr r0, _080524B8 @ =0x0200B0C0
- ldr r0, [r0, #0x4c]
- movs r1, #0x12
- bl __umodsi3
- cmp r0, #0
- bne _08052454
- ldrb r1, [r5]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r5]
-_08052454:
- movs r0, #0
- ldr r1, [sp, #0x60]
- strh r0, [r1]
- mov ip, r0
- ldr r4, [sp, #0x6c]
- movs r3, #0
-_08052460:
- mov r2, ip
- adds r2, #1
- mov r6, ip
- lsls r0, r6, #1
- add r0, ip
- lsls r0, r0, #2
- adds r1, r0, r4
- movs r5, #2
-_08052470:
- ldm r1!, {r0}
- strh r3, [r0]
- subs r5, #1
- cmp r5, #0
- bge _08052470
- mov ip, r2
- cmp r2, #5
- ble _08052460
- add sp, #0x8c
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08052490: .4byte 0x02031AF0
-_08052494: .4byte 0x03005000
-_08052498: .4byte 0x086BB910
-_0805249C: .4byte 0x000003FF
-_080524A0: .4byte 0xFFFFFC00
-_080524A4: .4byte 0x000001FF
-_080524A8: .4byte 0xFFFFFE00
-_080524AC: .4byte 0x02002920
-_080524B0: .4byte 0x0200C948
-_080524B4: .4byte 0x0200CA00
-_080524B8: .4byte 0x0200B0C0
-
- thumb_func_start sub_524BC
-sub_524BC: @ 0x080524BC
- push {r4, r5, lr}
- ldr r1, _0805251C @ =0x02002920
- movs r2, #0x28
- ldrsh r0, [r1, r2]
- adds r2, r1, #0
- cmp r0, #1
- bgt _08052514
- ldr r0, _08052520 @ =0x0200B0C0
- ldrh r0, [r0, #0x1c]
- ldr r4, _08052524 @ =0x000003F7
- ands r4, r0
- cmp r4, #0
- beq _08052514
- movs r3, #0
-_080524D8:
- movs r1, #1
- lsls r1, r3
- ands r1, r4
- cmp r1, #0
- beq _0805250E
- movs r5, #0x22
- ldrsh r0, [r2, r5]
- ands r0, r1
- cmp r0, #0
- bne _0805250E
- ldrh r0, [r2, #0x22]
- orrs r1, r0
- strh r1, [r2, #0x22]
- movs r1, #0x28
- ldrsh r0, [r2, r1]
- lsls r0, r0, #1
- adds r1, r2, #0
- adds r1, #0x24
- adds r0, r0, r1
- strh r3, [r0]
- ldrh r0, [r2, #0x28]
- adds r0, #1
- strh r0, [r2, #0x28]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- beq _08052514
-_0805250E:
- adds r3, #1
- cmp r3, #9
- ble _080524D8
-_08052514:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805251C: .4byte 0x02002920
-_08052520: .4byte 0x0200B0C0
-_08052524: .4byte 0x000003F7
-
- thumb_func_start sub_52528
-sub_52528: @ 0x08052528
- push {r4, r5, r6, r7, lr}
- movs r0, #0
- ldr r1, _0805255C @ =0x0200B204
- mov ip, r1
- ldr r6, _08052560 @ =0x02031B18
-_08052532:
- movs r2, #0
- lsls r4, r0, #2
- lsls r3, r0, #1
- adds r5, r0, #1
-_0805253A:
- lsls r0, r2, #1
- adds r0, r0, r4
- add r0, ip
- movs r7, #0
- ldrsh r1, [r0, r7]
- cmp r1, #0x10
- beq _0805259A
- cmp r1, #0x10
- bgt _0805256A
- cmp r1, #2
- beq _08052592
- cmp r1, #2
- bgt _08052564
- cmp r1, #1
- beq _0805258E
- b _080525B2
- .align 2, 0
-_0805255C: .4byte 0x0200B204
-_08052560: .4byte 0x02031B18
-_08052564:
- cmp r1, #4
- beq _08052596
- b _080525B2
-_0805256A:
- cmp r1, #0x80
- beq _080525A6
- cmp r1, #0x80
- bgt _0805257C
- cmp r1, #0x20
- beq _0805259E
- cmp r1, #0x40
- beq _080525A2
- b _080525B2
-_0805257C:
- movs r0, #0x80
- lsls r0, r0, #1
- cmp r1, r0
- beq _080525AA
- movs r0, #0x80
- lsls r0, r0, #2
- cmp r1, r0
- beq _080525AE
- b _080525B2
-_0805258E:
- movs r1, #0
- b _080525B4
-_08052592:
- movs r1, #1
- b _080525B4
-_08052596:
- movs r1, #2
- b _080525B4
-_0805259A:
- movs r1, #4
- b _080525B4
-_0805259E:
- movs r1, #5
- b _080525B4
-_080525A2:
- movs r1, #6
- b _080525B4
-_080525A6:
- movs r1, #7
- b _080525B4
-_080525AA:
- movs r1, #8
- b _080525B4
-_080525AE:
- movs r1, #9
- b _080525B4
-_080525B2:
- movs r1, #0xa
-_080525B4:
- adds r0, r3, r2
- adds r0, r0, r6
- strb r1, [r0]
- adds r2, #1
- cmp r2, #1
- ble _0805253A
- adds r0, r5, #0
- cmp r0, #4
- ble _08052532
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_start sub_525CC
-sub_525CC: @ 0x080525CC
- push {r4, r5, r6, lr}
- lsls r0, r0, #0x18
- movs r1, #0x80
- lsls r1, r1, #0x11
- adds r0, r0, r1
- asrs r0, r0, #0x18
- cmp r0, #5
- bls _080525DE
- b _080528A2
-_080525DE:
- lsls r0, r0, #2
- ldr r1, _080525E8 @ =_080525EC
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080525E8: .4byte _080525EC
-_080525EC: @ jump table
- .4byte _08052604 @ case 0
- .4byte _080526CC @ case 1
- .4byte _08052720 @ case 2
- .4byte _08052770 @ case 3
- .4byte _080527C0 @ case 4
- .4byte _08052814 @ case 5
-_08052604:
- ldr r0, _080526BC @ =0x0200B0C0
- mov ip, r0
- ldr r6, _080526C0 @ =0x086BB910
- ldrh r5, [r6, #0x28]
- adds r0, #0x60
- strh r5, [r0]
- adds r0, r6, #0
- adds r0, #0x50
- ldrh r2, [r0]
- mov r0, ip
- adds r0, #0x62
- strh r2, [r0]
- ldrh r4, [r6]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r6, #0
- adds r0, #0x48
- ldrh r3, [r0]
- mov r0, ip
- adds r0, #0x68
- strh r3, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r6, #0
- adds r0, #0x40
- ldrh r1, [r0]
- mov r0, ip
- adds r0, #0x6c
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- strh r1, [r0]
- ldrh r1, [r6, #8]
- movs r0, #0xa2
- lsls r0, r0, #1
- add r0, ip
- strh r1, [r0]
- movs r0, #0xa3
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- movs r0, #0xa4
- lsls r0, r0, #1
- add r0, ip
- strh r4, [r0]
- movs r0, #0xa5
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- movs r0, #0xa6
- lsls r0, r0, #1
- add r0, ip
- strh r5, [r0]
- movs r0, #0xa7
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- ldrh r1, [r6, #0x20]
- movs r0, #0xa8
- lsls r0, r0, #1
- add r0, ip
- strh r1, [r0]
- movs r0, #0xa9
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- ldrh r1, [r6, #0x30]
- movs r0, #0xaa
- lsls r0, r0, #1
- add r0, ip
- strh r1, [r0]
- movs r0, #0xab
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- movs r2, #0
- ldr r4, _080526C4 @ =0x02031B18
- ldr r3, _080526C8 @ =0x08527EFE
-_080526AA:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, #1
- cmp r2, #9
- ble _080526AA
- b _080528A2
- .align 2, 0
-_080526BC: .4byte 0x0200B0C0
-_080526C0: .4byte 0x086BB910
-_080526C4: .4byte 0x02031B18
-_080526C8: .4byte 0x08527EFE
-_080526CC:
- ldr r4, _08052718 @ =0x0200B0C0
- ldr r5, _0805271C @ =0x086BB910
- ldrh r1, [r5, #0x28]
- adds r0, r4, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r5, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x62
- strh r2, [r0]
- ldrh r1, [r5]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r5, #0
- adds r0, #0x48
- ldrh r3, [r0]
- adds r0, r4, #0
- adds r0, #0x68
- strh r3, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r5, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x6c
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- b _080528A0
- .align 2, 0
-_08052718: .4byte 0x0200B0C0
-_0805271C: .4byte 0x086BB910
-_08052720:
- ldr r3, _08052768 @ =0x0200B0C0
- ldr r4, _0805276C @ =0x086BB910
- ldrh r1, [r4, #0x28]
- adds r0, r3, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r3, #0
- adds r0, #0x62
- strh r2, [r0]
- ldrh r1, [r4]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x48
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x68
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x6c
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #8]
- b _08052802
- .align 2, 0
-_08052768: .4byte 0x0200B0C0
-_0805276C: .4byte 0x086BB910
-_08052770:
- ldr r4, _080527B8 @ =0x0200B0C0
- ldr r5, _080527BC @ =0x086BB910
- adds r0, r5, #0
- adds r0, #0x48
- ldrh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r5, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x62
- strh r2, [r0]
- adds r0, r5, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x64
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r3, [r5, #0x28]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r5]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- b _080528A0
- .align 2, 0
-_080527B8: .4byte 0x0200B0C0
-_080527BC: .4byte 0x086BB910
-_080527C0:
- ldr r3, _0805280C @ =0x0200B0C0
- ldr r4, _08052810 @ =0x086BB910
- adds r0, r4, #0
- adds r0, #0x48
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r3, #0
- adds r0, #0x62
- strh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x64
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #0x28]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #0x20]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #0x30]
-_08052802:
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- b _080528A2
- .align 2, 0
-_0805280C: .4byte 0x0200B0C0
-_08052810: .4byte 0x086BB910
-_08052814:
- ldr r2, _080528A8 @ =0x0200B0C0
- movs r1, #0xa2
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x60
- strh r1, [r0]
- movs r1, #0xa3
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x62
- strh r0, [r1]
- movs r1, #0xa4
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x64
- strh r1, [r0]
- movs r1, #0xa5
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x66
- strh r0, [r1]
- movs r1, #0xa6
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x68
- strh r1, [r0]
- movs r1, #0xa7
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x6a
- strh r0, [r1]
- movs r1, #0xa8
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x6c
- strh r1, [r0]
- movs r1, #0xa9
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x6e
- strh r0, [r1]
- movs r1, #0xaa
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x70
- strh r1, [r0]
- movs r1, #0xab
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x72
-_080528A0:
- strh r1, [r0]
-_080528A2:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080528A8: .4byte 0x0200B0C0
-
- thumb_func_start sub_528AC
-sub_528AC: @ 0x080528AC
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- adds r1, r0, #0
- cmp r0, #0xfa
- bls _080528DA
- ldr r0, _080528CC @ =0x00000113
- cmp r1, r0
- bls _080528D8
- ldr r0, _080528D0 @ =0x08527F18
- ldr r2, _080528D4 @ =0xFFFFFEEC
- adds r1, r1, r2
- lsls r1, r1, #1
- adds r1, r1, r0
- ldrh r0, [r1]
- b _080528DA
- .align 2, 0
-_080528CC: .4byte 0x00000113
-_080528D0: .4byte 0x08527F18
-_080528D4: .4byte 0xFFFFFEEC
-_080528D8:
- movs r0, #0xc8
-_080528DA:
- bx lr
-
- thumb_func_start sub_528DC
-sub_528DC: @ 0x080528DC
- push {r4, r5, lr}
- sub sp, #4
- adds r5, r0, #0
- adds r4, r1, #0
- lsls r5, r5, #0x10
- lsrs r5, r5, #0x10
- lsls r4, r4, #0x18
- lsrs r4, r4, #0x18
- ldr r0, _08052914 @ =0x02032EE0
- ldr r1, _08052918 @ =0x0000FFFF
- movs r2, #0x99
- bl m4aMPlayVolumeControl
- lsls r4, r4, #0x18
- asrs r4, r4, #0x18
- movs r0, #0
- str r0, [sp]
- adds r0, r5, #0
- adds r1, r4, #0
- movs r2, #0x7d
- movs r3, #0xa
- bl sub_52940
- add sp, #4
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08052914: .4byte 0x02032EE0
-_08052918: .4byte 0x0000FFFF
-
- thumb_func_start sub_5291C
-sub_5291C: @ 0x0805291C
- push {r4, lr}
- sub sp, #4
- lsls r0, r0, #0x10
- lsrs r0, r0, #0x10
- lsls r3, r3, #0x18
- lsrs r3, r3, #0x18
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- lsls r2, r2, #0x18
- asrs r2, r2, #0x18
- movs r4, #0
- str r4, [sp]
- bl sub_52940
- add sp, #4
- pop {r4}
- pop {r0}
- bx r0
-
- thumb_func_start sub_52940
-sub_52940: @ 0x08052940
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- adds r5, r0, #0
- adds r4, r1, #0
- adds r0, r2, #0
- adds r6, r3, #0
- lsls r5, r5, #0x10
- lsls r4, r4, #0x18
- lsrs r4, r4, #0x18
- lsls r6, r6, #0x18
- lsrs r6, r6, #0x18
- ldr r1, _080529BC @ =0xFFFF0000
- adds r5, r5, r1
- lsrs r5, r5, #0x10
- movs r1, #0xf0
- lsls r1, r1, #6
- mov r8, r1
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- bl SetPokemonCryVolume
- lsls r4, r4, #0x18
- asrs r4, r4, #0x18
- adds r0, r4, #0
- bl SetPokemonCryPanpot
- mov r0, r8
- bl SetPokemonCryPitch
- movs r0, #0x8c
- bl SetPokemonCryLength
- movs r0, #0
- bl SetPokemonCryProgress
- movs r0, #0
- bl SetPokemonCryRelease
- movs r0, #0
- bl SetPokemonCryChorus
- adds r0, r6, #0
- bl SetPokemonCryPriority
- adds r0, r5, #0
- bl sub_528AC
- movs r1, #0x7f
- ands r1, r0
- lsrs r0, r0, #7
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- adds r2, r0, #0
- cmp r0, #1
- beq _080529D8
- cmp r0, #1
- bgt _080529C0
- cmp r0, #0
- beq _080529CA
- b _08052A0A
- .align 2, 0
-_080529BC: .4byte 0xFFFF0000
-_080529C0:
- cmp r2, #2
- beq _080529E8
- cmp r2, #3
- beq _080529FC
- b _08052A0A
-_080529CA:
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #2
- ldr r1, _080529D4 @ =0x08532D6C
- b _080529F0
- .align 2, 0
-_080529D4: .4byte 0x08532D6C
-_080529D8:
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #2
- ldr r1, _080529E4 @ =0x08533360
- b _080529F0
- .align 2, 0
-_080529E4: .4byte 0x08533360
-_080529E8:
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #2
- ldr r1, _080529F8 @ =0x08533960
-_080529F0:
- adds r0, r0, r1
- bl SetPokemonCryTone
- b _08052A0A
- .align 2, 0
-_080529F8: .4byte 0x08533960
-_080529FC:
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #2
- ldr r1, _08052A14 @ =0x08533F60
- adds r0, r0, r1
- bl SetPokemonCryTone
-_08052A0A:
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08052A14: .4byte 0x08533F60
-
- thumb_func_start sub_52A18
-sub_52A18: @ 0x08052A18
- push {r4, lr}
- bl sub_555BC
- ldr r4, _08052A4C @ =0x0200B0C0
- movs r0, #0
- strb r0, [r4, #0xc]
- bl sub_52A68
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08052A50
- bl sub_52C64
- bl sub_52B30
- bl sub_52A68
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08052A5E
- movs r0, #1
- strb r0, [r4, #0xc]
- bl sub_52C64
- b _08052A5E
- .align 2, 0
-_08052A4C: .4byte 0x0200B0C0
-_08052A50:
- ldr r1, _08052A64 @ =0x00000143
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- bl sub_525CC
-_08052A5E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08052A64: .4byte 0x00000143
-
- thumb_func_start sub_52A68
-sub_52A68: @ 0x08052A68
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- movs r0, #0
- mov r8, r0
- movs r7, #0
- ldr r1, _08052B04 @ =0x02032FF0
- mov sb, r1
-_08052A7A:
- ldr r5, _08052B08 @ =0x0200B134
- movs r4, #0x9d
- lsls r4, r4, #2
- lsls r0, r7, #2
- adds r0, r0, r7
- lsls r0, r0, #2
- adds r0, r0, r7
- lsls r0, r0, #5
- ldr r3, _08052B0C @ =0x0E000004
- adds r0, r0, r3
- mov r6, sb
- ldr r3, [r6]
- adds r1, r5, #0
- adds r2, r4, #0
- bl _call_via_r3
- movs r2, #0
- movs r0, #0x99
- lsls r0, r0, #2
- adds r3, r5, r0
- movs r0, #0
- ldrsb r0, [r3, r0]
- ldr r1, _08052B10 @ =0x086BBA6C
- ldrb r6, [r1]
- cmp r0, r6
- bne _08052ACA
- adds r6, r3, #0
- adds r3, r1, #0
-_08052AB2:
- adds r0, r2, #1
- lsls r0, r0, #0x10
- lsrs r2, r0, #0x10
- cmp r2, #9
- bhi _08052ACA
- adds r0, r2, r6
- movs r1, #0
- ldrsb r1, [r0, r1]
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- beq _08052AB2
-_08052ACA:
- cmp r2, #0xa
- bne _08052B18
- movs r2, #0
- cmp r4, #1
- bls _08052AE0
-_08052AD4:
- ldrh r0, [r5]
- adds r2, r2, r0
- adds r5, #2
- subs r4, #2
- cmp r4, #1
- bhi _08052AD4
-_08052AE0:
- cmp r4, #0
- beq _08052AF0
- ldrh r1, [r5]
- movs r3, #0xff
- lsls r3, r3, #8
- adds r0, r3, #0
- ands r0, r1
- adds r2, r2, r0
-_08052AF0:
- ldr r0, _08052B14 @ =0x0000FFFF
- adds r1, r2, #0
- ands r1, r0
- lsrs r2, r2, #0x10
- adds r2, r1, r2
- cmp r2, r0
- bne _08052B18
- movs r6, #1
- mov r8, r6
- b _08052B22
- .align 2, 0
-_08052B04: .4byte 0x02032FF0
-_08052B08: .4byte 0x0200B134
-_08052B0C: .4byte 0x0E000004
-_08052B10: .4byte 0x086BBA6C
-_08052B14: .4byte 0x0000FFFF
-_08052B18:
- adds r0, r7, #1
- lsls r0, r0, #0x10
- lsrs r7, r0, #0x10
- cmp r7, #1
- bls _08052A7A
-_08052B22:
- mov r0, r8
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-
- thumb_func_start sub_52B30
-sub_52B30: @ 0x08052B30
- push {r4, r5, lr}
- ldr r3, _08052B9C @ =0x0200B134
- movs r4, #0x9d
- lsls r4, r4, #2
- movs r0, #0x9c
- lsls r0, r0, #2
- adds r1, r3, r0
- ldr r0, [r1]
- adds r0, #1
- str r0, [r1]
- ldr r2, _08052BA0 @ =0x0000026E
- adds r1, r3, r2
- movs r0, #0
- strh r0, [r1]
- movs r2, #0
- adds r5, r3, #0
-_08052B50:
- ldrh r0, [r3]
- adds r2, r2, r0
- adds r3, #2
- subs r4, #2
- cmp r4, #1
- bhi _08052B50
- cmp r4, #0
- beq _08052B6A
- ldrh r1, [r3]
- movs r0, #0xff
- lsls r0, r0, #8
- ands r0, r1
- adds r2, r2, r0
-_08052B6A:
- ldr r0, _08052BA4 @ =0x0000FFFF
- ands r0, r2
- lsrs r1, r2, #0x10
- adds r2, r0, r1
- lsrs r0, r2, #0x10
- adds r0, r0, r2
- mvns r0, r0
- ldr r2, _08052BA0 @ =0x0000026E
- adds r1, r5, r2
- strh r0, [r1]
- ldr r1, _08052BA8 @ =0x0E000004
- movs r4, #0x9d
- lsls r4, r4, #2
- adds r0, r5, #0
- adds r2, r4, #0
- bl sub_55654
- ldr r1, _08052BAC @ =0x0E0002A4
- adds r0, r5, #0
- adds r2, r4, #0
- bl sub_55654
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08052B9C: .4byte 0x0200B134
-_08052BA0: .4byte 0x0000026E
-_08052BA4: .4byte 0x0000FFFF
-_08052BA8: .4byte 0x0E000004
-_08052BAC: .4byte 0x0E0002A4
-
- thumb_func_start sub_52BB0
-sub_52BB0: @ 0x08052BB0
- push {r4, r5, r6, lr}
- lsls r1, r1, #0x18
- lsrs r5, r1, #0x18
- ldr r3, _08052C30 @ =0x0200B134
- movs r4, #0x9d
- lsls r4, r4, #2
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r3
- ldrb r0, [r2]
- adds r6, r3, #0
- cmp r0, r5
- bhs _08052C28
- movs r0, #0x9c
- lsls r0, r0, #2
- adds r1, r6, r0
- ldr r0, [r1]
- adds r0, #1
- str r0, [r1]
- movs r1, #0
- strb r5, [r2]
- ldr r2, _08052C34 @ =0x0000026E
- adds r0, r6, r2
- strh r1, [r0]
- movs r2, #0
-_08052BE2:
- ldrh r0, [r3]
- adds r2, r2, r0
- adds r3, #2
- subs r4, #2
- cmp r4, #1
- bhi _08052BE2
- cmp r4, #0
- beq _08052BFC
- ldrh r1, [r3]
- movs r0, #0xff
- lsls r0, r0, #8
- ands r0, r1
- adds r2, r2, r0
-_08052BFC:
- ldr r0, _08052C38 @ =0x0000FFFF
- ands r0, r2
- lsrs r1, r2, #0x10
- adds r2, r0, r1
- lsrs r0, r2, #0x10
- adds r0, r0, r2
- mvns r0, r0
- ldr r2, _08052C34 @ =0x0000026E
- adds r1, r6, r2
- strh r0, [r1]
- ldr r1, _08052C3C @ =0x0E000004
- movs r4, #0x9d
- lsls r4, r4, #2
- adds r0, r6, #0
- adds r2, r4, #0
- bl sub_55654
- ldr r1, _08052C40 @ =0x0E0002A4
- adds r0, r6, #0
- adds r2, r4, #0
- bl sub_55654
-_08052C28:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08052C30: .4byte 0x0200B134
-_08052C34: .4byte 0x0000026E
-_08052C38: .4byte 0x0000FFFF
-_08052C3C: .4byte 0x0E000004
-_08052C40: .4byte 0x0E0002A4
-
- thumb_func_start sub_52C44
-sub_52C44: @ 0x08052C44
- push {lr}
- ldr r2, _08052C58 @ =0x02032FF0
- ldr r0, _08052C5C @ =0x0E000544
- ldr r1, _08052C60 @ =0x0200B100
- ldr r3, [r2]
- movs r2, #4
- bl _call_via_r3
- pop {r0}
- bx r0
- .align 2, 0
-_08052C58: .4byte 0x02032FF0
-_08052C5C: .4byte 0x0E000544
-_08052C60: .4byte 0x0200B100
-
- thumb_func_start sub_52C64
-sub_52C64: @ 0x08052C64
- push {r4, r5, lr}
- movs r1, #0
- ldr r5, _08052CBC @ =0x0200B134
- movs r0, #0x99
- lsls r0, r0, #2
- adds r4, r5, r0
- ldr r3, _08052CC0 @ =0x086BBA6C
-_08052C72:
- lsls r0, r1, #0x10
- asrs r0, r0, #0x10
- adds r2, r0, r4
- adds r1, r0, r3
- ldrb r1, [r1]
- strb r1, [r2]
- adds r0, #1
- lsls r0, r0, #0x10
- lsrs r1, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #9
- ble _08052C72
- movs r1, #0x9c
- lsls r1, r1, #2
- adds r0, r5, r1
- movs r4, #0
- str r4, [r0]
- adds r0, r5, #0
- adds r0, #0xcd
- strb r4, [r0]
- adds r0, #1
- strb r4, [r0]
- movs r0, #1
- rsbs r0, r0, #0
- bl sub_525CC
- bl sub_F6E0
- bl sub_8ABC
- adds r0, r5, #0
- adds r0, #0xcf
- strb r4, [r0]
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08052CBC: .4byte 0x0200B134
-_08052CC0: .4byte 0x086BBA6C
diff --git a/asm/rom_24C.s b/asm/rom_24C.s
new file mode 100755
index 0000000..9c0fc14
--- /dev/null
+++ b/asm/rom_24C.s
@@ -0,0 +1,4503 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_24C
+sub_24C: @ 0x0800024C
+ push {r4, r5, r6, lr}
+ ldr r3, _080002A4 @ =0x04000050
+ movs r0, #0
+ strh r0, [r3]
+ ldr r4, _080002A8 @ =0x04000054
+ movs r0, #0x10
+ strh r0, [r4]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r1, [r2]
+ movs r0, #0xf8
+ lsls r0, r0, #5
+ ands r0, r1
+ lsrs r0, r0, #8
+ movs r1, #0xa0
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r1, [r2]
+ ldr r0, _080002AC @ =0x0000FF7F
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _080002B0 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r1, #0x16]
+ movs r5, #0
+ adds r6, r4, #0
+ movs r4, #0xf
+_08000282:
+ lsrs r0, r5, #1
+ subs r0, r4, r0
+ strh r0, [r6]
+ bl sub_D74
+ adds r0, r5, #1
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r5, #0x1f
+ bls _08000282
+ ldr r1, _080002A4 @ =0x04000050
+ movs r0, #0
+ strh r0, [r1]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080002A4: .4byte 0x04000050
+_080002A8: .4byte 0x04000054
+_080002AC: .4byte 0x0000FF7F
+_080002B0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_2B4
+sub_2B4: @ 0x080002B4
+ push {r4, r5, lr}
+ sub sp, #4
+ ldr r3, _08000344 @ =0x04000050
+ movs r0, #0
+ strh r0, [r3]
+ ldr r2, _08000348 @ =0x04000054
+ strh r0, [r2]
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ ldrh r1, [r0]
+ movs r0, #0xf8
+ lsls r0, r0, #5
+ ands r0, r1
+ lsrs r0, r0, #8
+ movs r1, #0xa0
+ orrs r0, r1
+ strh r0, [r3]
+ movs r4, #0
+ adds r5, r2, #0
+_080002DA:
+ adds r4, #1
+ strh r4, [r5]
+ bl sub_D74
+ lsls r4, r4, #0x10
+ lsrs r4, r4, #0x10
+ cmp r4, #0xf
+ bls _080002DA
+ ldr r1, _0800034C @ =0x0200B0C0
+ ldrh r0, [r1, #0x16]
+ movs r3, #0x80
+ movs r2, #0
+ orrs r0, r3
+ strh r0, [r1, #0x16]
+ movs r1, #0x80
+ lsls r1, r1, #0x13
+ ldrh r0, [r1]
+ orrs r0, r3
+ strh r0, [r1]
+ mov r0, sp
+ strh r2, [r0]
+ adds r1, #0xd4
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08000350 @ =0x8100C000
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08000354 @ =0x04000010
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #0x32
+ strh r2, [r0]
+ adds r0, #4
+ strh r2, [r0]
+ add sp, #4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000344: .4byte 0x04000050
+_08000348: .4byte 0x04000054
+_0800034C: .4byte 0x0200B0C0
+_08000350: .4byte 0x8100C000
+_08000354: .4byte 0x04000010
+
+ thumb_func_start sub_358
+sub_358: @ 0x08000358
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x10
+ str r0, [sp]
+ str r2, [sp, #8]
+ lsls r1, r1, #0x10
+ lsrs r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, _08000424 @ =0x03005000
+ movs r7, #0
+ ldr r2, _08000428 @ =0x040000D4
+ ldr r0, _0800042C @ =0x08057C46
+ str r0, [r2]
+ str r4, [r2, #4]
+ ldr r0, _08000430 @ =0x80000200
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldr r0, [sp, #4]
+ cmp r7, r0
+ bhs _0800040E
+ mov ip, r2
+_0800038A:
+ movs r0, #0xb8
+ muls r0, r1, r0
+ ldr r2, [sp, #8]
+ adds r6, r2, r0
+ ldrh r0, [r6]
+ adds r2, r1, #1
+ str r2, [sp, #0xc]
+ cmp r0, #0
+ beq _08000402
+ lsls r0, r1, #2
+ ldr r1, [sp]
+ adds r0, r0, r1
+ ldr r0, [r0]
+ ldrh r5, [r0]
+ adds r0, #2
+ mov r2, ip
+ str r0, [r2]
+ lsls r0, r7, #3
+ ldr r1, _08000424 @ =0x03005000
+ adds r0, r0, r1
+ str r0, [r2, #4]
+ lsls r0, r5, #2
+ movs r1, #0x80
+ lsls r1, r1, #0x18
+ orrs r0, r1
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r3, #0
+ cmp r3, r5
+ bhs _08000402
+ ldr r2, _08000424 @ =0x03005000
+ mov sb, r2
+ ldr r0, _08000434 @ =0x000001FF
+ mov sl, r0
+ movs r1, #0xff
+ mov r8, r1
+_080003D2:
+ adds r2, r7, #0
+ lsls r0, r2, #3
+ mov r1, sb
+ adds r4, r0, r1
+ lsls r1, r3, #3
+ adds r1, #8
+ adds r1, r6, r1
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ strh r2, [r1]
+ ldrh r2, [r4, #2]
+ mov r0, sl
+ ands r0, r2
+ strh r0, [r1, #2]
+ ldrh r2, [r4]
+ mov r0, r8
+ ands r0, r2
+ strh r0, [r1, #4]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, r5
+ blo _080003D2
+_08000402:
+ ldr r2, [sp, #0xc]
+ lsls r0, r2, #0x10
+ lsrs r1, r0, #0x10
+ ldr r0, [sp, #4]
+ cmp r1, r0
+ blo _0800038A
+_0800040E:
+ lsls r0, r7, #0x10
+ asrs r0, r0, #0x10
+ add sp, #0x10
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08000424: .4byte 0x03005000
+_08000428: .4byte 0x040000D4
+_0800042C: .4byte 0x08057C46
+_08000430: .4byte 0x80000200
+_08000434: .4byte 0x000001FF
+
+ thumb_func_start sub_438
+sub_438: @ 0x08000438
+ push {r4, r5, r6, lr}
+ ldr r4, _0800048C @ =0x0200B0C0
+ ldrh r0, [r4, #0x16]
+ movs r2, #0x80
+ movs r6, #0
+ movs r5, #0
+ orrs r0, r2
+ strh r0, [r4, #0x16]
+ movs r1, #0x80
+ lsls r1, r1, #0x13
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ bl sub_490
+ bl sub_518
+ bl sub_578
+ strb r6, [r4, #0xf]
+ strb r6, [r4, #0x10]
+ str r5, [r4, #0x50]
+ strb r6, [r4, #0x11]
+ strh r5, [r4, #0x12]
+ strh r5, [r4, #0x14]
+ movs r0, #0x90
+ strh r0, [r4, #0x26]
+ strh r5, [r4, #0x28]
+ strh r5, [r4, #0x2a]
+ adds r0, r4, #0
+ adds r0, #0x36
+ strb r6, [r0]
+ ldrh r0, [r4, #0x38]
+ strh r5, [r4, #0x38]
+ ldrh r0, [r4, #0x3a]
+ strh r5, [r4, #0x3a]
+ ldrh r0, [r4, #0x3c]
+ strh r5, [r4, #0x3c]
+ strh r5, [r4, #0x2c]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800048C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_490
+sub_490: @ 0x08000490
+ sub sp, #8
+ mov r1, sp
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08000504 @ =0x040000D4
+ mov r0, sp
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08000508 @ =0x8100C000
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r2, #0
+ str r2, [sp, #4]
+ add r0, sp, #4
+ str r0, [r1]
+ movs r0, #0xe0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _0800050C @ =0x85000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ mov r0, sp
+ strh r2, [r0]
+ str r0, [r1]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08000510 @ =0x81000200
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08000514 @ =0x04000010
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #0x32
+ strh r2, [r0]
+ adds r0, #4
+ strh r2, [r0]
+ subs r0, #0x50
+ strh r2, [r0]
+ adds r0, #0x4e
+ strh r2, [r0]
+ add sp, #8
+ bx lr
+ .align 2, 0
+_08000504: .4byte 0x040000D4
+_08000508: .4byte 0x8100C000
+_0800050C: .4byte 0x85000100
+_08000510: .4byte 0x81000200
+_08000514: .4byte 0x04000010
+
+ thumb_func_start sub_518
+sub_518: @ 0x08000518
+ push {r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, sp
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08000564 @ =0x040000D4
+ mov r0, sp
+ str r0, [r1]
+ ldr r0, _08000568 @ =0x03005C00
+ str r0, [r1, #4]
+ ldr r0, _0800056C @ =0x81000600
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r1, #0
+ ldr r6, _08000570 @ =0x0200B0C0
+ movs r5, #0xba
+ lsls r5, r5, #2
+ movs r3, #0
+ ldr r4, _08000574 @ =0x000002EA
+_0800053E:
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ lsls r1, r0, #2
+ adds r1, r1, r6
+ adds r2, r1, r5
+ strh r3, [r2]
+ adds r1, r1, r4
+ strh r3, [r1]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0800053E
+ add sp, #4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000564: .4byte 0x040000D4
+_08000568: .4byte 0x03005C00
+_0800056C: .4byte 0x81000600
+_08000570: .4byte 0x0200B0C0
+_08000574: .4byte 0x000002EA
+
+ thumb_func_start sub_578
+sub_578: @ 0x08000578
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ movs r5, #0
+ ldr r6, _08000660 @ =0x0200B0C0
+ movs r0, #0xb8
+ mov sb, r0
+ movs r4, #0
+ movs r1, #0xc0
+ lsls r1, r1, #2
+ mov r8, r1
+ ldr r3, _08000664 @ =0x00000302
+ mov ip, r3
+ movs r7, #0xc1
+ lsls r7, r7, #2
+ mov sl, r7
+_0800059C:
+ mov r2, sb
+ muls r2, r5, r2
+ adds r1, r2, r6
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strh r4, [r0]
+ ldr r7, _08000668 @ =0x000002FA
+ adds r0, r1, r7
+ strh r4, [r0]
+ movs r0, #0xbf
+ lsls r0, r0, #2
+ adds r1, r1, r0
+ strh r4, [r1]
+ movs r3, #0
+_080005BA:
+ lsls r0, r3, #3
+ adds r0, r0, r2
+ adds r0, r0, r6
+ mov r7, r8
+ adds r1, r0, r7
+ strh r4, [r1]
+ mov r7, ip
+ adds r1, r0, r7
+ strh r4, [r1]
+ add r0, sl
+ strh r4, [r0]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, #0x15
+ bls _080005BA
+ adds r0, r5, #1
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r5, #0x63
+ bls _0800059C
+ movs r5, #0
+ mov sl, r5
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ mov ip, r0
+ movs r1, #0x11
+ rsbs r1, r1, #0
+ mov sb, r1
+ movs r3, #0x21
+ rsbs r3, r3, #0
+ mov r8, r3
+ movs r4, #0x3f
+ ldr r6, _0800066C @ =0xFFFFFE00
+ adds r3, #0x12
+_08000600:
+ lsls r2, r5, #3
+ ldr r7, _08000670 @ =0x03005000
+ adds r2, r2, r7
+ movs r0, #0xf4
+ strb r0, [r2]
+ movs r0, #0
+ strb r0, [r2, #1]
+ ldrh r1, [r2, #2]
+ adds r0, r6, #0
+ ands r0, r1
+ movs r7, #0xfa
+ lsls r7, r7, #1
+ adds r1, r7, #0
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrb r1, [r2, #3]
+ adds r0, r3, #0
+ ands r0, r1
+ mov r1, sb
+ ands r0, r1
+ mov r7, r8
+ ands r0, r7
+ ands r0, r4
+ strb r0, [r2, #3]
+ ldrh r1, [r2, #4]
+ ldr r0, _08000674 @ =0xFFFFFC00
+ ands r0, r1
+ strh r0, [r2, #4]
+ ldrb r1, [r2, #5]
+ mov r0, ip
+ ands r0, r1
+ movs r1, #0xf
+ ands r0, r1
+ strb r0, [r2, #5]
+ mov r0, sl
+ strh r0, [r2, #6]
+ adds r0, r5, #1
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r5, #0x7f
+ bls _08000600
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000660: .4byte 0x0200B0C0
+_08000664: .4byte 0x00000302
+_08000668: .4byte 0x000002FA
+_0800066C: .4byte 0xFFFFFE00
+_08000670: .4byte 0x03005000
+_08000674: .4byte 0xFFFFFC00
+
+ thumb_func_start sub_678
+sub_678: @ 0x08000678
+ push {r4, r5, r6, lr}
+ adds r6, r0, #0
+ adds r4, r1, #0
+ adds r5, r2, #0
+ lsls r4, r4, #0x10
+ lsrs r4, r4, #0x10
+ lsls r5, r5, #0x10
+ lsrs r5, r5, #0x10
+ bl sub_55A24
+ subs r0, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0xb
+ lsls r5, r5, #0x10
+ asrs r5, r5, #0x10
+ adds r4, r4, r5
+ lsls r4, r4, #1
+ ldr r0, _080006C4 @ =0x03005C00
+ adds r4, r4, r0
+_080006A2:
+ ldrb r0, [r6]
+ subs r0, #0x20
+ strh r0, [r4]
+ adds r6, #1
+ adds r4, #2
+ adds r1, r2, #0
+ lsls r0, r1, #0x10
+ ldr r2, _080006C8 @ =0xFFFF0000
+ adds r0, r0, r2
+ lsrs r2, r0, #0x10
+ lsls r1, r1, #0x10
+ cmp r1, #0
+ bgt _080006A2
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080006C4: .4byte 0x03005C00
+_080006C8: .4byte 0xFFFF0000
+
+ thumb_func_start sub_6CC
+sub_6CC: @ 0x080006CC
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, #0
+ adds r5, r1, #0
+ adds r4, r2, #0
+ lsls r3, r3, #0x10
+ lsrs r3, r3, #0x10
+ cmp r6, #0
+ bge _080006E8
+ movs r0, #0x2d
+ strb r0, [r5]
+ adds r5, #1
+ rsbs r6, r6, #0
+_080006E8:
+ lsls r7, r3, #0x10
+ movs r0, #0x30
+ mov r8, r0
+_080006EE:
+ cmp r4, #1
+ ble _08000708
+ subs r4, #1
+ movs r0, #0xa
+ adds r1, r4, #0
+ bl sub_780
+ cmp r6, r0
+ bge _08000708
+ mov r0, r8
+ strb r0, [r5]
+ adds r5, #1
+ b _080006EE
+_08000708:
+ asrs r4, r7, #0x10
+ cmp r4, #0
+ beq _0800071A
+ adds r0, r6, #0
+ adds r1, r5, #0
+ movs r2, #0xa
+ bl sub_734
+ b _08000726
+_0800071A:
+ adds r0, r6, #0
+ adds r1, r5, #0
+ movs r2, #0xa
+ bl sub_734
+ strb r4, [r0]
+_08000726:
+ adds r0, r5, #0
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_734
+sub_734: @ 0x08000734
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, #0
+ adds r7, r1, #0
+ adds r6, r2, #0
+ adds r1, r6, #0
+ bl __umodsi3
+ lsls r0, r0, #0x18
+ lsrs r5, r0, #0x18
+ mov r8, r5
+ adds r0, r4, #0
+ adds r1, r6, #0
+ bl __udivsi3
+ cmp r0, #0
+ beq _08000762
+ adds r1, r7, #0
+ adds r2, r6, #0
+ bl sub_734
+ adds r7, r0, #0
+_08000762:
+ cmp r5, #9
+ bhi _0800076C
+ adds r0, r5, #0
+ adds r0, #0x30
+ b _08000770
+_0800076C:
+ mov r0, r8
+ adds r0, #0x57
+_08000770:
+ strb r0, [r7]
+ adds r0, r7, #1
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_780
+sub_780: @ 0x08000780
+ push {r4, r5, lr}
+ adds r3, r0, #0
+ adds r2, r1, #0
+ cmp r1, #0
+ bge _0800078C
+ rsbs r2, r1, #0
+_0800078C:
+ movs r4, #1
+ cmp r2, #0
+ beq _080007AA
+ movs r5, #1
+_08000794:
+ adds r0, r2, #0
+ ands r0, r5
+ cmp r0, #0
+ beq _0800079E
+ muls r4, r3, r4
+_0800079E:
+ adds r0, r3, #0
+ muls r0, r3, r0
+ adds r3, r0, #0
+ asrs r2, r2, #1
+ cmp r2, #0
+ bne _08000794
+_080007AA:
+ cmp r1, #0
+ bge _080007B8
+ movs r0, #1
+ adds r1, r4, #0
+ bl __divsi3
+ b _080007BA
+_080007B8:
+ adds r0, r4, #0
+_080007BA:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_7C0
+sub_7C0: @ 0x080007C0
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ sub sp, #8
+ adds r3, r0, #0
+ adds r4, r1, #0
+ adds r5, r2, #0
+ lsls r4, r4, #0x10
+ lsrs r4, r4, #0x10
+ lsls r5, r5, #0x10
+ lsrs r5, r5, #0x10
+ lsls r3, r3, #0x10
+ asrs r3, r3, #0x10
+ movs r0, #0x80
+ lsls r0, r0, #9
+ mov r8, r0
+ adds r1, r3, #0
+ bl __divsi3
+ adds r6, r0, #0
+ lsls r6, r6, #0x10
+ lsrs r6, r6, #0x10
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ mov r0, r8
+ adds r1, r4, #0
+ bl __divsi3
+ mov r1, sp
+ strh r6, [r1]
+ mov r4, sp
+ adds r4, #2
+ movs r1, #0
+ strh r1, [r4]
+ add r6, sp, #4
+ strh r1, [r6]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov r1, sp
+ adds r1, #6
+ strh r0, [r1]
+ ldr r3, _0800084C @ =0x03005000
+ lsls r5, r5, #0x10
+ asrs r5, r5, #0x10
+ lsls r1, r5, #5
+ adds r1, r1, r3
+ mov r2, sp
+ ldrh r2, [r2]
+ strh r2, [r1, #6]
+ lsls r5, r5, #2
+ adds r1, r5, #1
+ lsls r1, r1, #3
+ adds r1, r1, r3
+ ldrh r2, [r4]
+ strh r2, [r1, #6]
+ adds r1, r5, #2
+ lsls r1, r1, #3
+ adds r1, r1, r3
+ ldrh r2, [r6]
+ strh r2, [r1, #6]
+ adds r5, #3
+ lsls r5, r5, #3
+ adds r5, r5, r3
+ strh r0, [r5, #6]
+ add sp, #8
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800084C: .4byte 0x03005000
+
+ thumb_func_start sub_850
+sub_850: @ 0x08000850
+ ldr r0, _08000888 @ =0x04000208
+ ldrh r1, [r0]
+ movs r2, #1
+ adds r0, r2, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08000894
+ ldr r0, _0800088C @ =0x04000004
+ ldrh r1, [r0]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08000894
+ ldr r0, _08000890 @ =0x04000200
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08000894
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ ldrh r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ bne _08000894
+ movs r0, #1
+ b _08000896
+ .align 2, 0
+_08000888: .4byte 0x04000208
+_0800088C: .4byte 0x04000004
+_08000890: .4byte 0x04000200
+_08000894:
+ movs r0, #0
+_08000896:
+ bx lr
+
+ thumb_func_start sub_898
+sub_898: @ 0x08000898
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r0, _080008B4 @ =0x02017BD4
+ str r4, [r0]
+ bl sub_850
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _080008AE
+ ldr r0, _080008B8 @ =0x0200FB9C
+ str r4, [r0]
+_080008AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080008B4: .4byte 0x02017BD4
+_080008B8: .4byte 0x0200FB9C
+
+ thumb_func_start sub_8BC
+sub_8BC: @ 0x080008BC
+ ldr r0, _080008C8 @ =0x0200FB9C
+ ldr r1, _080008CC @ =sub_DC4 + 1
+ str r1, [r0]
+ ldr r0, _080008D0 @ =0x02017BD4
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080008C8: .4byte 0x0200FB9C
+_080008CC: .4byte sub_DC4 + 1
+_080008D0: .4byte 0x02017BD4
+
+ thumb_func_start sub_8D4
+sub_8D4: @ 0x080008D4
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r0, _080008F4 @ =0x02017BD0
+ str r4, [r0]
+ bl sub_850
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _080008EC
+ ldr r0, _080008F8 @ =0x0200FB98
+ ldr r0, [r0]
+ str r4, [r0]
+_080008EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080008F4: .4byte 0x02017BD0
+_080008F8: .4byte 0x0200FB98
+
+ thumb_func_start sub_8FC
+sub_8FC: @ 0x080008FC
+ ldr r0, _0800090C @ =0x0200FB98
+ ldr r0, [r0]
+ ldr r1, _08000910 @ =sub_A08 + 1
+ str r1, [r0]
+ ldr r0, _08000914 @ =0x02017BD0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0800090C: .4byte 0x0200FB98
+_08000910: .4byte sub_A08 + 1
+_08000914: .4byte 0x02017BD0
+
+ thumb_func_start sub_918
+sub_918: @ 0x08000918
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r0, _08000938 @ =0x0200FBA0
+ str r4, [r0]
+ bl sub_850
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08000930
+ ldr r0, _0800093C @ =0x02019BE0
+ ldr r0, [r0]
+ str r4, [r0]
+_08000930:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000938: .4byte 0x0200FBA0
+_0800093C: .4byte 0x02019BE0
+
+ thumb_func_start sub_940
+sub_940: @ 0x08000940
+ ldr r0, _08000950 @ =0x02019BE0
+ ldr r0, [r0]
+ ldr r1, _08000954 @ =sub_A20 + 1
+ str r1, [r0]
+ ldr r0, _08000958 @ =0x0200FBA0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08000950: .4byte 0x02019BE0
+_08000954: .4byte sub_A20 + 1
+_08000958: .4byte 0x0200FBA0
+
+ thumb_func_start AgbMain
+AgbMain: @ 0x0800095C
+ push {r4, r5, lr}
+ movs r0, #0xff
+ bl RegisterRamReset
+ bl sub_BBC
+ ldr r1, _080009A0 @ =0x040000D4
+ ldr r0, _080009A4 @ =IntrMain
+ str r0, [r1]
+ ldr r2, _080009A8 @ =0x03005400
+ str r2, [r1, #4]
+ ldr r0, _080009AC @ =0x84000200
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _080009B0 @ =0x03007FFC
+ str r2, [r0]
+ bl sub_B54
+ bl sub_FE8
+ ldr r5, _080009B4 @ =gMainFuncs
+ ldr r4, _080009B8 @ =0x0200B0C0
+_08000988:
+ bl ReadKeys
+ ldrb r0, [r4, #2]
+ lsls r0, r0, #2
+ adds r0, r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_D74
+ b _08000988
+ .align 2, 0
+_080009A0: .4byte 0x040000D4
+_080009A4: .4byte IntrMain
+_080009A8: .4byte 0x03005400
+_080009AC: .4byte 0x84000200
+_080009B0: .4byte 0x03007FFC
+_080009B4: .4byte gMainFuncs
+_080009B8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_9BC_Main
+sub_9BC_Main: @ 0x080009BC
+ push {r4, lr}
+ ldr r4, _080009DC @ =0x0200B0C0
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ beq _080009E0
+ cmp r0, #1
+ beq _080009EE
+ bl sub_2B4
+ bl sub_D10
+ movs r0, #1
+ bl sub_23C
+ b _080009FC
+ .align 2, 0
+_080009DC: .4byte 0x0200B0C0
+_080009E0:
+ bl sub_CBC
+ bl sub_24C
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ b _080009FA
+_080009EE:
+ ldrh r1, [r4, #0x18]
+ ldr r0, _08000A04 @ =0x000003FF
+ ands r0, r1
+ cmp r0, #0
+ beq _080009FC
+ movs r0, #2
+_080009FA:
+ strb r0, [r4, #3]
+_080009FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000A04: .4byte 0x000003FF
+
+ thumb_func_start sub_A08
+sub_A08: @ 0x08000A08
+ push {lr}
+ bl m4aSoundVSync
+ ldr r0, _08000A1C @ =0x03007FF8
+ ldrh r1, [r0]
+ movs r2, #1
+ orrs r1, r2
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000A1C: .4byte 0x03007FF8
+
+ thumb_func_start sub_A20
+sub_A20: @ 0x08000A20
+ push {r4, r5, lr}
+ ldr r2, _08000A78 @ =0x03007FF8
+ ldrh r0, [r2]
+ movs r1, #4
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _08000A7C @ =0x04000004
+ ldrh r1, [r2]
+ movs r0, #2
+ ands r0, r1
+ ldr r3, _08000A80 @ =0x0200B0C0
+ cmp r0, #0
+ bne _08000A46
+ movs r4, #2
+_08000A3C:
+ ldrh r1, [r2]
+ adds r0, r4, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08000A3C
+_08000A46:
+ adds r2, r3, #0
+ ldrb r0, [r2, #2]
+ cmp r0, #2
+ bne _08000B2E
+ ldr r0, _08000A84 @ =0x04000010
+ movs r4, #0
+ strh r4, [r0]
+ movs r0, #0x28
+ ldrsh r1, [r2, r0]
+ cmp r1, #0
+ beq _08000AA0
+ movs r1, #0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x48
+ bne _08000A8C
+ ldr r1, _08000A88 @ =0x04000012
+ movs r3, #0x2a
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #2
+ adds r0, #0x58
+ strh r0, [r1]
+ movs r1, #0x90
+ strh r1, [r2, #0x26]
+ b _08000B00
+ .align 2, 0
+_08000A78: .4byte 0x03007FF8
+_08000A7C: .4byte 0x04000004
+_08000A80: .4byte 0x0200B0C0
+_08000A84: .4byte 0x04000010
+_08000A88: .4byte 0x04000012
+_08000A8C:
+ ldr r1, _08000A9C @ =0x04000012
+ movs r5, #0xb0
+ lsls r5, r5, #1
+ adds r0, r5, #0
+ strh r0, [r1]
+ movs r1, #0x48
+ strh r1, [r2, #0x26]
+ b _08000B00
+ .align 2, 0
+_08000A9C: .4byte 0x04000012
+_08000AA0:
+ movs r5, #0x2c
+ ldrsh r0, [r2, r5]
+ cmp r0, #0
+ beq _08000B24
+ movs r5, #0x26
+ ldrsh r0, [r2, r5]
+ cmp r0, #0x28
+ bne _08000ADC
+ ldrh r0, [r2, #0x38]
+ ldr r0, _08000AD0 @ =0x00001E41
+ strh r0, [r2, #0x38]
+ ldrh r0, [r2, #0x3a]
+ ldr r0, _08000AD4 @ =0x00000A06
+ strh r0, [r2, #0x3a]
+ ldr r1, _08000AD8 @ =0x04000050
+ ldrh r0, [r2, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r2, #0x3a]
+ strh r0, [r1]
+ movs r1, #0x90
+ strh r1, [r2, #0x26]
+ b _08000B00
+ .align 2, 0
+_08000AD0: .4byte 0x00001E41
+_08000AD4: .4byte 0x00000A06
+_08000AD8: .4byte 0x04000050
+_08000ADC:
+ ldrh r0, [r3, #0x38]
+ ldr r0, _08000B18 @ =0x00001E01
+ strh r0, [r3, #0x38]
+ ldrh r0, [r3, #0x3a]
+ strh r1, [r3, #0x3a]
+ ldr r1, _08000B1C @ =0x04000050
+ ldrh r0, [r3, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r3, #0x3a]
+ strh r0, [r1]
+ subs r1, #0x40
+ movs r2, #0xb0
+ lsls r2, r2, #1
+ adds r0, r2, #0
+ strh r0, [r1]
+ movs r1, #0x28
+ strh r1, [r3, #0x26]
+_08000B00:
+ ldr r2, _08000B20 @ =0x04000004
+ ldrh r3, [r2]
+ movs r0, #0xff
+ ands r0, r3
+ strh r0, [r2]
+ lsls r1, r1, #8
+ adds r1, #0x20
+ ldrh r0, [r2]
+ orrs r1, r0
+ strh r1, [r2]
+ b _08000B2E
+ .align 2, 0
+_08000B18: .4byte 0x00001E01
+_08000B1C: .4byte 0x04000050
+_08000B20: .4byte 0x04000004
+_08000B24:
+ ldr r1, _08000B34 @ =0x04000012
+ movs r3, #0xb0
+ lsls r3, r3, #1
+ adds r0, r3, #0
+ strh r0, [r1]
+_08000B2E:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000B34: .4byte 0x04000012
+
+ thumb_func_start sub_B38
+sub_B38: @ 0x08000B38
+ push {lr}
+ bl sub_1F5C
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_B44
+sub_B44: @ 0x08000B44
+ push {lr}
+ bl sub_1F4C
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_B50
+sub_B50: @ 0x08000B50
+ bx lr
+
+ thumb_func_start sub_B54
+sub_B54: @ 0x08000B54
+ push {lr}
+ ldr r1, _08000B84 @ =0x04000204
+ ldr r2, _08000B88 @ =0x000045B6
+ adds r0, r2, #0
+ strh r0, [r1]
+ subs r1, #4
+ movs r2, #0x80
+ lsls r2, r2, #6
+ adds r0, r2, #0
+ strh r0, [r1]
+ adds r1, #8
+ movs r0, #1
+ strh r0, [r1]
+ bl sub_B8C
+ bl m4aSoundInit
+ bl m4aSoundVSyncOff
+ bl sub_52A18
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000B84: .4byte 0x04000204
+_08000B88: .4byte 0x000045B6
+
+ thumb_func_start sub_B8C
+sub_B8C: @ 0x08000B8C
+ push {lr}
+ ldr r0, _08000BB8 @ =0x0200B0C0
+ movs r1, #0
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ strh r1, [r0, #0x16]
+ strh r1, [r0, #0x1c]
+ strh r1, [r0, #0x18]
+ strh r1, [r0, #0x20]
+ str r1, [r0, #0x48]
+ str r1, [r0, #0x4c]
+ strh r1, [r0, #0x30]
+ movs r2, #0x90
+ strh r2, [r0, #0x26]
+ strh r1, [r0, #0x2c]
+ bl sub_1090C
+ bl sub_438
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000BB8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_BBC
+sub_BBC: @ 0x08000BBC
+ push {r4, r5, r6, lr}
+ ldr r5, _08000BF0 @ =0x0200FB98
+ ldr r2, _08000BF4 @ =0x02003068
+ ldr r6, _08000BF8 @ =0x02019BE0
+ ldr r4, _08000BFC @ =0x086A4AA0
+ adds r3, r2, #0
+ subs r3, #8
+ movs r1, #0xd
+_08000BCC:
+ ldm r4!, {r0}
+ stm r3!, {r0}
+ subs r1, #1
+ cmp r1, #0
+ bge _08000BCC
+ str r2, [r5]
+ adds r0, r2, #0
+ adds r0, #8
+ str r0, [r6]
+ bl sub_8BC
+ bl sub_8FC
+ bl sub_940
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000BF0: .4byte 0x0200FB98
+_08000BF4: .4byte 0x02003068
+_08000BF8: .4byte 0x02019BE0
+_08000BFC: .4byte 0x086A4AA0
+
+ thumb_func_start sub_C00
+sub_C00: @ 0x08000C00
+ ldr r2, _08000C14 @ =0x0200B0C0
+ ldr r1, [r2, #0x48]
+ ldr r0, _08000C18 @ =0x41C64E6D
+ muls r0, r1, r0
+ ldr r1, _08000C1C @ =0x00003039
+ adds r0, r0, r1
+ str r0, [r2, #0x48]
+ ldr r1, _08000C20 @ =0x0000FFFF
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_08000C14: .4byte 0x0200B0C0
+_08000C18: .4byte 0x41C64E6D
+_08000C1C: .4byte 0x00003039
+_08000C20: .4byte 0x0000FFFF
+
+ thumb_func_start sub_C24
+sub_C24: @ 0x08000C24
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x12
+ movs r3, #1
+ ldr r0, _08000C60 @ =0x00001FFF
+ cmp r2, r0
+ bls _08000C3A
+ ldr r1, _08000C64 @ =0xFFFFE000
+ adds r0, r2, r1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ ldr r3, _08000C68 @ =0x0000FFFF
+_08000C3A:
+ ldr r0, _08000C6C @ =0x00000FFF
+ cmp r2, r0
+ bls _08000C4C
+ movs r1, #0x80
+ lsls r1, r1, #6
+ adds r0, r1, #0
+ subs r0, r0, r2
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+_08000C4C:
+ ldr r1, _08000C70 @ =0x08055C44
+ lsls r0, r2, #1
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0x10
+ muls r0, r1, r0
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ bx lr
+ .align 2, 0
+_08000C60: .4byte 0x00001FFF
+_08000C64: .4byte 0xFFFFE000
+_08000C68: .4byte 0x0000FFFF
+_08000C6C: .4byte 0x00000FFF
+_08000C70: .4byte 0x08055C44
+
+ thumb_func_start sub_C74
+sub_C74: @ 0x08000C74
+ push {lr}
+ lsls r0, r0, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #0x17
+ adds r0, r0, r1
+ lsrs r0, r0, #0x10
+ bl sub_C24
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ pop {r1}
+ bx r1
+
+ thumb_func_start ReadKeys
+ReadKeys: @ 0x08000C8C
+ push {r4, lr}
+ ldr r0, _08000CB4 @ =0x04000130
+ ldrh r2, [r0]
+ mvns r2, r2
+ lsls r2, r2, #0x10
+ lsrs r2, r2, #0x10
+ ldr r3, _08000CB8 @ =0x0200B0C0
+ ldrh r4, [r3, #0x1c]
+ adds r1, r2, #0
+ eors r1, r4
+ adds r0, r2, #0
+ ands r0, r1
+ strh r0, [r3, #0x18]
+ ands r1, r4
+ strh r1, [r3, #0x1a]
+ strh r2, [r3, #0x1c]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000CB4: .4byte 0x04000130
+_08000CB8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_CBC
+sub_CBC: @ 0x08000CBC
+ push {r4, lr}
+ ldr r3, _08000CFC @ =0x04000200
+ ldrh r1, [r3]
+ movs r4, #1
+ adds r0, r4, #0
+ ands r0, r1
+ cmp r0, #0
+ bne _08000CF6
+ ldr r1, _08000D00 @ =0x04000202
+ ldrh r0, [r1]
+ movs r2, #5
+ orrs r0, r2
+ strh r0, [r1]
+ ldrh r1, [r3]
+ ldr r0, _08000D04 @ =0x00003FFF
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08000D08 @ =0x04000208
+ strh r4, [r0]
+ ldrh r0, [r3]
+ orrs r0, r2
+ strh r0, [r3]
+ ldr r2, _08000D0C @ =0x04000004
+ ldrh r0, [r2]
+ movs r1, #8
+ orrs r0, r1
+ strh r0, [r2]
+ bl m4aSoundVSyncOn
+_08000CF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000CFC: .4byte 0x04000200
+_08000D00: .4byte 0x04000202
+_08000D04: .4byte 0x00003FFF
+_08000D08: .4byte 0x04000208
+_08000D0C: .4byte 0x04000004
+
+ thumb_func_start sub_D10
+sub_D10: @ 0x08000D10
+ push {lr}
+ ldr r1, _08000D54 @ =0x04000004
+ ldrh r2, [r1]
+ ldr r0, _08000D58 @ =0x0000FFF7
+ ands r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1]
+ ldr r0, _08000D5C @ =0x0000FFDF
+ ands r0, r2
+ strh r0, [r1]
+ ldr r1, _08000D60 @ =0x04000200
+ ldrh r2, [r1]
+ ldr r0, _08000D64 @ =0x00003FFF
+ ands r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1]
+ ldr r0, _08000D68 @ =0x00003FFE
+ ands r0, r2
+ strh r0, [r1]
+ ldrh r0, [r1]
+ adds r1, r0, #0
+ cmp r1, #0
+ bne _08000D42
+ ldr r0, _08000D6C @ =0x04000208
+ strh r1, [r0]
+_08000D42:
+ ldr r0, _08000D70 @ =0x04000202
+ ldrh r1, [r0]
+ movs r2, #1
+ orrs r1, r2
+ strh r1, [r0]
+ bl m4aSoundVSyncOff
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000D54: .4byte 0x04000004
+_08000D58: .4byte 0x0000FFF7
+_08000D5C: .4byte 0x0000FFDF
+_08000D60: .4byte 0x04000200
+_08000D64: .4byte 0x00003FFF
+_08000D68: .4byte 0x00003FFE
+_08000D6C: .4byte 0x04000208
+_08000D70: .4byte 0x04000202
+
+ thumb_func_start sub_D74
+sub_D74: @ 0x08000D74
+ push {lr}
+ ldr r2, _08000DA8 @ =0x0200FB9C
+ ldr r0, _08000DAC @ =0x02017BD4
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, _08000DB0 @ =0x0200FB98
+ ldr r1, [r0]
+ ldr r0, _08000DB4 @ =0x02017BD0
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, _08000DB8 @ =0x02019BE0
+ ldr r1, [r0]
+ ldr r0, _08000DBC @ =0x0200FBA0
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, [r2]
+ cmp r2, #0
+ beq _08000D9C
+ bl _call_via_r2
+_08000D9C:
+ ldr r1, _08000DC0 @ =0x0200B0C0
+ ldr r0, [r1, #0x4c]
+ adds r0, #1
+ str r0, [r1, #0x4c]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000DA8: .4byte 0x0200FB9C
+_08000DAC: .4byte 0x02017BD4
+_08000DB0: .4byte 0x0200FB98
+_08000DB4: .4byte 0x02017BD0
+_08000DB8: .4byte 0x02019BE0
+_08000DBC: .4byte 0x0200FBA0
+_08000DC0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_DC4
+sub_DC4: @ 0x08000DC4
+ push {r4, lr}
+ ldr r4, _08000E7C @ =0x04000004
+ ldrh r1, [r4]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08000E76
+ bl VBlankIntrWait
+ ldr r1, _08000E80 @ =0x040000D4
+ ldr r0, _08000E84 @ =0x03005000
+ str r0, [r1]
+ movs r0, #0xe0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08000E88 @ =0x84000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ subs r1, #0xd4
+ ldr r2, _08000E8C @ =0x0200B0C0
+ ldrh r0, [r2, #0x16]
+ strh r0, [r1]
+ adds r1, #0x10
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, #0
+ adds r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08000E5E
+ adds r1, #0x32
+ ldrh r0, [r2, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r2, #0x3a]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r2, #0x3c]
+ strh r0, [r1]
+_08000E5E:
+ ldrh r1, [r4]
+ movs r0, #0xff
+ ands r0, r1
+ strh r0, [r4]
+ ldrh r0, [r2, #0x26]
+ lsls r0, r0, #8
+ adds r0, #0x20
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ bl m4aSoundMain
+_08000E76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08000E7C: .4byte 0x04000004
+_08000E80: .4byte 0x040000D4
+_08000E84: .4byte 0x03005000
+_08000E88: .4byte 0x84000100
+_08000E8C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_E90
+sub_E90: @ 0x08000E90
+ ldr r0, _08000EA8 @ =0x04000130
+ ldrh r0, [r0]
+ ldr r2, _08000EAC @ =0x000003FF
+ adds r1, r2, #0
+ eors r1, r0
+ ldr r3, _08000EB0 @ =0x02002002
+ ldr r2, _08000EB4 @ =0x02002000
+ ldrh r0, [r2]
+ strh r0, [r3]
+ strh r1, [r2]
+ bx lr
+ .align 2, 0
+_08000EA8: .4byte 0x04000130
+_08000EAC: .4byte 0x000003FF
+_08000EB0: .4byte 0x02002002
+_08000EB4: .4byte 0x02002000
+
+ thumb_func_start sub_EB8
+sub_EB8: @ 0x08000EB8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ movs r7, #0
+ movs r0, #0
+ mov sl, r0
+ mov sb, r0
+ mov r8, r0
+ bl VBlankIntrWait
+ ldr r0, _08000F30 @ =0x040000D4
+ ldr r1, _08000F34 @ =0x08058248
+ str r1, [r0]
+ ldr r1, _08000F38 @ =0x06008000
+ str r1, [r0, #4]
+ ldr r1, _08000F3C @ =0x80002000
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08000F40 @ =0x08058048
+ str r1, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _08000F44 @ =0x80000100
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08000F48 @ =0x0805C248
+ str r1, [r0]
+ ldr r2, _08000F4C @ =0x02002008
+ str r2, [r0, #4]
+ ldr r1, _08000F50 @ =0x80000280
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ str r2, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _08000F54 @ =0x80000400
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ ldr r1, _08000F58 @ =0x04000008
+ movs r0, #0x88
+ strh r0, [r1]
+ movs r4, #0
+ ldr r6, _08000F5C @ =0x04000054
+ movs r5, #0x10
+_08000F18:
+ bl VBlankIntrWait
+ subs r0, r5, r4
+ strh r0, [r6]
+ adds r4, #1
+ cmp r4, #0x10
+ bls _08000F18
+ ldr r6, _08000F60 @ =0x02002002
+ ldr r5, _08000F64 @ =0x02002000
+ ldr r4, _08000F30 @ =0x040000D4
+ b _08000FA4
+ .align 2, 0
+_08000F30: .4byte 0x040000D4
+_08000F34: .4byte 0x08058248
+_08000F38: .4byte 0x06008000
+_08000F3C: .4byte 0x80002000
+_08000F40: .4byte 0x08058048
+_08000F44: .4byte 0x80000100
+_08000F48: .4byte 0x0805C248
+_08000F4C: .4byte 0x02002008
+_08000F50: .4byte 0x80000280
+_08000F54: .4byte 0x80000400
+_08000F58: .4byte 0x04000008
+_08000F5C: .4byte 0x04000054
+_08000F60: .4byte 0x02002002
+_08000F64: .4byte 0x02002000
+_08000F68:
+ ldrh r0, [r6]
+ ldrh r1, [r5]
+ eors r0, r1
+ ands r0, r1
+ movs r1, #0xf0
+ ands r0, r1
+ cmp r0, #0xf0
+ bne _08000F7C
+ mov r8, sb
+ mov sb, r7
+_08000F7C:
+ mov r1, r8
+ cmp r1, #0
+ beq _08000F8E
+ mov r2, sb
+ subs r0, r2, r1
+ cmp r0, #3
+ bgt _08000F8E
+ movs r0, #1
+ mov sl, r0
+_08000F8E:
+ adds r7, #1
+ bl VBlankIntrWait
+ ldr r0, _08000FB0 @ =0x02002008
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08000FB4 @ =0x84000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+_08000FA4:
+ cmp r7, #0x1d
+ bgt _08000FB8
+ bl sub_E90
+ b _08000F68
+ .align 2, 0
+_08000FB0: .4byte 0x02002008
+_08000FB4: .4byte 0x84000200
+_08000FB8:
+ movs r4, #0
+ ldr r5, _08000FD4 @ =0x04000054
+_08000FBC:
+ bl VBlankIntrWait
+ strh r4, [r5]
+ adds r4, #1
+ cmp r4, #0x10
+ bls _08000FBC
+ mov r1, sl
+ cmp r1, #0
+ bne _08000FD8
+ movs r0, #0
+ b _08000FDA
+ .align 2, 0
+_08000FD4: .4byte 0x04000054
+_08000FD8:
+ movs r0, #1
+_08000FDA:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_FE8
+sub_FE8: @ 0x08000FE8
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ sub sp, #4
+ ldr r2, _08001080 @ =0x04000200
+ ldrh r0, [r2]
+ movs r1, #1
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r6, _08001084 @ =0x04000004
+ ldrh r0, [r6]
+ movs r1, #8
+ orrs r0, r1
+ strh r0, [r6]
+ ldr r1, _08001088 @ =0x04000050
+ ldr r3, _0800108C @ =0x00003FBF
+ adds r0, r3, #0
+ strh r0, [r1]
+ adds r1, #4
+ movs r0, #0x10
+ strh r0, [r1]
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ mov r8, r0
+ movs r1, #0x88
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ mov r3, r8
+ strh r0, [r3]
+ ldr r0, _08001090 @ =0x02019C00
+ movs r4, #0
+ str r4, [r0]
+ ldr r0, _08001094 @ =0x02019BEC
+ str r4, [r0]
+ ldr r0, _08001098 @ =0x02019BF4
+ str r4, [r0]
+ ldr r0, _0800109C @ =0x02019BF0
+ str r4, [r0]
+ ldr r5, _080010A0 @ =0x02019C0C
+ str r2, [sp]
+ bl sub_EB8
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ str r0, [r5]
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ ldr r0, _080010A4 @ =0x0000FFFE
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r6]
+ ldr r0, _080010A8 @ =0x0000FFF7
+ ands r0, r1
+ strh r0, [r6]
+ mov r0, r8
+ strh r4, [r0]
+ ldr r1, _080010AC @ =0x02019BFC
+ movs r0, #1
+ rsbs r0, r0, #0
+ str r0, [r1]
+ ldr r0, _080010B0 @ =0x02019BE4
+ str r4, [r0]
+ ldr r0, _080010B4 @ =0x02019BE8
+ str r4, [r0]
+ ldr r0, _080010B8 @ =0x02019BF8
+ str r4, [r0]
+ ldr r1, _080010BC @ =0x02019C08
+ movs r0, #2
+ str r0, [r1]
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001080: .4byte 0x04000200
+_08001084: .4byte 0x04000004
+_08001088: .4byte 0x04000050
+_0800108C: .4byte 0x00003FBF
+_08001090: .4byte 0x02019C00
+_08001094: .4byte 0x02019BEC
+_08001098: .4byte 0x02019BF4
+_0800109C: .4byte 0x02019BF0
+_080010A0: .4byte 0x02019C0C
+_080010A4: .4byte 0x0000FFFE
+_080010A8: .4byte 0x0000FFF7
+_080010AC: .4byte 0x02019BFC
+_080010B0: .4byte 0x02019BE4
+_080010B4: .4byte 0x02019BE8
+_080010B8: .4byte 0x02019BF8
+_080010BC: .4byte 0x02019C08
+
+ thumb_func_start sub_10C0
+sub_10C0: @ 0x080010C0
+ push {lr}
+ ldr r0, _080010F8 @ =0x02019C0C
+ ldr r2, [r0]
+ cmp r2, #1
+ bne _080010DC
+ ldr r1, _080010FC @ =0x02003060
+ ldr r0, _08001100 @ =sub_13FC + 1
+ str r0, [r1]
+ ldr r0, _08001104 @ =sub_1828 + 1
+ str r0, [r1, #4]
+ ldr r0, _08001108 @ =0x02019BF4
+ str r2, [r0]
+ bl sub_1340
+_080010DC:
+ ldr r1, _0800110C @ =0x02019BFC
+ movs r0, #1
+ rsbs r0, r0, #0
+ str r0, [r1]
+ ldr r0, _08001110 @ =0x02019BE4
+ movs r2, #0
+ str r2, [r0]
+ ldr r1, _08001114 @ =0x02019C08
+ movs r0, #2
+ str r0, [r1]
+ ldr r0, _08001118 @ =0x02019C04
+ str r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080010F8: .4byte 0x02019C0C
+_080010FC: .4byte 0x02003060
+_08001100: .4byte sub_13FC + 1
+_08001104: .4byte sub_1828 + 1
+_08001108: .4byte 0x02019BF4
+_0800110C: .4byte 0x02019BFC
+_08001110: .4byte 0x02019BE4
+_08001114: .4byte 0x02019C08
+_08001118: .4byte 0x02019C04
+
+ thumb_func_start sub_111C
+sub_111C: @ 0x0800111C
+ ldr r2, _0800114C @ =0x02019BF4
+ movs r1, #0
+ ldr r0, _08001150 @ =0x02019C00
+ str r1, [r0]
+ ldr r0, _08001154 @ =0x02019BEC
+ str r1, [r0]
+ str r1, [r2]
+ ldr r0, _08001158 @ =0x02019BF0
+ str r1, [r0]
+ ldr r2, _0800115C @ =0x02019BFC
+ movs r0, #1
+ rsbs r0, r0, #0
+ str r0, [r2]
+ ldr r0, _08001160 @ =0x02019BE4
+ str r1, [r0]
+ ldr r0, _08001164 @ =0x02019BE8
+ str r1, [r0]
+ ldr r0, _08001168 @ =0x02019BF8
+ str r1, [r0]
+ ldr r1, _0800116C @ =0x02019C08
+ movs r0, #2
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0800114C: .4byte 0x02019BF4
+_08001150: .4byte 0x02019C00
+_08001154: .4byte 0x02019BEC
+_08001158: .4byte 0x02019BF0
+_0800115C: .4byte 0x02019BFC
+_08001160: .4byte 0x02019BE4
+_08001164: .4byte 0x02019BE8
+_08001168: .4byte 0x02019BF8
+_0800116C: .4byte 0x02019C08
+
+ thumb_func_start sub_1170
+sub_1170: @ 0x08001170
+ ldr r0, _0800118C @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _08001194
+ ldr r0, _08001190 @ =0x02019C10
+ ldrb r0, [r0]
+ subs r0, #4
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #1
+ bls _08001194
+ movs r0, #0
+ b _08001196
+ .align 2, 0
+_0800118C: .4byte 0x02019C0C
+_08001190: .4byte 0x02019C10
+_08001194:
+ movs r0, #1
+_08001196:
+ bx lr
+
+ thumb_func_start sub_1198
+sub_1198: @ 0x08001198
+ ldr r0, _080011A4 @ =0x02003060
+ ldr r1, _080011A8 @ =sub_B38 + 1
+ str r1, [r0]
+ ldr r1, _080011AC @ =sub_B44 + 1
+ str r1, [r0, #4]
+ bx lr
+ .align 2, 0
+_080011A4: .4byte 0x02003060
+_080011A8: .4byte sub_B38 + 1
+_080011AC: .4byte sub_B44 + 1
+
+ thumb_func_start sub_11B0
+sub_11B0: @ 0x080011B0
+ adds r1, r0, #0
+ ldr r0, _080011D0 @ =0x0200B134
+ adds r0, #0xcd
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _080011CE
+ ldr r0, _080011D4 @ =0x02019BF8
+ str r1, [r0]
+ ldr r0, _080011D8 @ =0x02019BFC
+ movs r1, #0
+ str r1, [r0]
+ ldr r0, _080011DC @ =0x02019BE4
+ str r1, [r0]
+ ldr r0, _080011E0 @ =0x02019BE8
+ str r1, [r0]
+_080011CE:
+ bx lr
+ .align 2, 0
+_080011D0: .4byte 0x0200B134
+_080011D4: .4byte 0x02019BF8
+_080011D8: .4byte 0x02019BFC
+_080011DC: .4byte 0x02019BE4
+_080011E0: .4byte 0x02019BE8
+
+ thumb_func_start sub_11E4
+sub_11E4: @ 0x080011E4
+ ldr r1, _080011EC @ =0x02019C08
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080011EC: .4byte 0x02019C08
+
+ thumb_func_start sub_11F0
+sub_11F0: @ 0x080011F0
+ ldr r1, _080011F8 @ =0x02019C04
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080011F8: .4byte 0x02019C04
+
+ thumb_func_start sub_11FC
+sub_11FC: @ 0x080011FC
+ push {r4, r5, r6, r7, lr}
+ ldr r0, _0800121C @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _08001208
+ b _08001324
+_08001208:
+ ldr r0, _08001220 @ =0x02019C10
+ ldrb r0, [r0]
+ cmp r0, #5
+ bls _08001212
+ b _08001324
+_08001212:
+ lsls r0, r0, #2
+ ldr r1, _08001224 @ =_08001228
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800121C: .4byte 0x02019C0C
+_08001220: .4byte 0x02019C10
+_08001224: .4byte _08001228
+_08001228: @ jump table
+ .4byte _08001324 @ case 0
+ .4byte _08001324 @ case 1
+ .4byte _08001324 @ case 2
+ .4byte _08001240 @ case 3
+ .4byte _08001240 @ case 4
+ .4byte _08001308 @ case 5
+_08001240:
+ ldr r0, _080012A8 @ =0x02019BFC
+ ldr r1, [r0]
+ mov ip, r0
+ cmp r1, #0
+ blt _080012FC
+ ldr r0, _080012AC @ =0x02019C08
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _080012FC
+ ldr r0, _080012B0 @ =0x02019C04
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _080012FC
+ ldr r0, _080012B4 @ =0x02019BE8
+ ldr r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _080012DC
+ ldr r1, _080012B8 @ =0x086A4C44
+ ldr r0, _080012BC @ =0x02019BF8
+ ldr r0, [r0]
+ lsls r0, r0, #2
+ adds r7, r0, r1
+ mov r5, ip
+ movs r6, #1
+ rsbs r6, r6, #0
+_08001276:
+ ldr r2, [r5]
+ ldr r0, [r7]
+ lsls r1, r2, #2
+ adds r1, r1, r0
+ ldr r3, [r1]
+ adds r2, #1
+ str r2, [r5]
+ lsls r1, r2, #2
+ adds r1, r1, r0
+ ldr r4, [r1]
+ cmp r3, r6
+ beq _080012F8
+ cmp r3, r6
+ bge _080012D0
+ ldr r1, _080012C0 @ =0x02019BE4
+ ldr r0, [r1]
+ cmp r0, #0
+ beq _080012C4
+ subs r0, #1
+ str r0, [r1]
+ cmp r0, #0
+ bne _080012C8
+ adds r0, r2, #1
+ str r0, [r5]
+ b _08001276
+ .align 2, 0
+_080012A8: .4byte 0x02019BFC
+_080012AC: .4byte 0x02019C08
+_080012B0: .4byte 0x02019C04
+_080012B4: .4byte 0x02019BE8
+_080012B8: .4byte 0x086A4C44
+_080012BC: .4byte 0x02019BF8
+_080012C0: .4byte 0x02019BE4
+_080012C4:
+ mvns r0, r3
+ str r0, [r1]
+_080012C8:
+ subs r0, r2, #1
+ subs r0, r0, r4
+ str r0, [r5]
+ b _08001276
+_080012D0:
+ ldr r0, _080012D8 @ =0x02019C00
+ str r3, [r0]
+ b _08001324
+ .align 2, 0
+_080012D8: .4byte 0x02019C00
+_080012DC:
+ lsrs r0, r1, #0x1f
+ adds r0, r1, r0
+ asrs r0, r0, #1
+ lsls r0, r0, #1
+ subs r0, r1, r0
+ cmp r0, #1
+ bne _08001324
+ cmp r3, #1
+ bne _08001324
+ ldr r0, _080012F4 @ =0x02019C00
+ str r2, [r0]
+ b _08001324
+ .align 2, 0
+_080012F4: .4byte 0x02019C00
+_080012F8:
+ mov r0, ip
+ str r3, [r0]
+_080012FC:
+ ldr r1, _08001304 @ =0x02019C00
+ movs r0, #0
+ str r0, [r1]
+ b _08001324
+ .align 2, 0
+_08001304: .4byte 0x02019C00
+_08001308:
+ ldr r4, _08001334 @ =0x02019BF0
+ ldr r0, [r4]
+ adds r0, #1
+ str r0, [r4]
+ cmp r0, #0x3c
+ bls _08001324
+ ldr r0, _08001338 @ =0x02019BF4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _08001320
+ bl sub_1340
+_08001320:
+ movs r0, #0
+ str r0, [r4]
+_08001324:
+ ldr r1, _0800133C @ =0x02019BE8
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001334: .4byte 0x02019BF0
+_08001338: .4byte 0x02019BF4
+_0800133C: .4byte 0x02019BE8
+
+ thumb_func_start sub_1340
+sub_1340: @ 0x08001340
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ sub sp, #4
+ ldr r6, _080013D0 @ =0x04000208
+ movs r3, #0
+ strh r3, [r6]
+ ldr r2, _080013D4 @ =0x04000200
+ ldrh r1, [r2]
+ ldr r0, _080013D8 @ =0x0000FF3F
+ ands r0, r1
+ strh r0, [r2]
+ movs r0, #1
+ mov r8, r0
+ strh r0, [r6]
+ ldr r0, _080013DC @ =0x04000134
+ strh r3, [r0]
+ ldr r4, _080013E0 @ =0x04000128
+ ldr r1, _080013E4 @ =0x00001008
+ adds r0, r1, #0
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r5, #0x80
+ lsls r5, r5, #7
+ adds r1, r5, #0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _080013E8 @ =0x04000202
+ movs r1, #0xc0
+ strh r1, [r0]
+ strh r3, [r6]
+ ldrh r0, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, r8
+ strh r0, [r6]
+ ldrb r1, [r4]
+ movs r0, #2
+ rsbs r0, r0, #0
+ ands r0, r1
+ strb r0, [r4]
+ ldr r0, _080013EC @ =0x02019C10
+ strb r3, [r0]
+ movs r5, #0
+ str r5, [sp]
+ ldr r1, _080013F0 @ =0x02002808
+ ldr r2, _080013F4 @ =0x05000003
+ mov r0, sp
+ bl CpuSet
+ strh r5, [r6]
+ ldrh r0, [r4]
+ movs r1, #0x80
+ orrs r0, r1
+ strh r0, [r4]
+ mov r1, r8
+ strh r1, [r6]
+ ldr r1, _080013F8 @ =0x0400010C
+ movs r2, #0x80
+ lsls r2, r2, #8
+ adds r0, r2, #0
+ strh r0, [r1]
+ adds r1, #2
+ movs r0, #0xc1
+ strh r0, [r1]
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080013D0: .4byte 0x04000208
+_080013D4: .4byte 0x04000200
+_080013D8: .4byte 0x0000FF3F
+_080013DC: .4byte 0x04000134
+_080013E0: .4byte 0x04000128
+_080013E4: .4byte 0x00001008
+_080013E8: .4byte 0x04000202
+_080013EC: .4byte 0x02019C10
+_080013F0: .4byte 0x02002808
+_080013F4: .4byte 0x05000003
+_080013F8: .4byte 0x0400010C
+
+ thumb_func_start sub_13FC
+sub_13FC: @ 0x080013FC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #0xc
+ ldr r1, _08001434 @ =0x02002818
+ ldr r0, _08001438 @ =0x04000120
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _0800143C @ =0x0400010E
+ movs r0, #0
+ strh r0, [r1]
+ subs r1, #2
+ movs r2, #0x80
+ lsls r2, r2, #8
+ adds r0, r2, #0
+ strh r0, [r1]
+ ldr r0, _08001440 @ =0x02019C10
+ ldrb r1, [r0]
+ mov sb, r0
+ cmp r1, #5
+ bls _0800142A
+ b _0800161C
+_0800142A:
+ lsls r0, r1, #2
+ ldr r1, _08001444 @ =_08001448
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08001434: .4byte 0x02002818
+_08001438: .4byte 0x04000120
+_0800143C: .4byte 0x0400010E
+_08001440: .4byte 0x02019C10
+_08001444: .4byte _08001448
+_08001448: @ jump table
+ .4byte _08001460 @ case 0
+ .4byte _08001520 @ case 1
+ .4byte _08001574 @ case 2
+ .4byte _080015C8 @ case 3
+ .4byte _0800161C @ case 4
+ .4byte _0800161C @ case 5
+_08001460:
+ ldr r0, _080014B0 @ =0x04000120
+ mov r8, r0
+ ldr r6, [r0]
+ ldr r3, _080014B4 @ =0x02002808
+ ldrb r1, [r3]
+ lsls r2, r1, #4
+ adds r0, r6, #0
+ lsls r0, r2
+ lsrs r0, r0, #0x10
+ movs r7, #1
+ subs r1, r7, r1
+ lsls r1, r1, #4
+ lsls r6, r1
+ adds r1, r6, #0
+ lsrs r6, r1, #0x10
+ ldrh r5, [r3, #0xa]
+ adds r4, r3, #0
+ cmp r5, #0
+ bne _080014E4
+ ldrh r2, [r4, #6]
+ adds r1, r0, #0
+ cmp r1, r2
+ bne _080014E2
+ ldrh r3, [r4, #2]
+ cmp r3, #3
+ bhi _080014B8
+ ldrh r0, [r4, #4]
+ mvns r0, r0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r1, r0
+ bne _080014E4
+ mvns r0, r2
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r6, r0
+ bne _080014E4
+ adds r0, r3, #1
+ strh r0, [r4, #2]
+ b _080014E4
+ .align 2, 0
+_080014B0: .4byte 0x04000120
+_080014B4: .4byte 0x02002808
+_080014B8:
+ strh r6, [r4, #0xa]
+ ldr r0, _080014D8 @ =0x00008002
+ cmp r6, r0
+ bne _080014E0
+ mov r1, sb
+ strb r7, [r1]
+ movs r0, #1
+ bl sub_1748
+ ldr r1, _080014DC @ =0x02002814
+ str r0, [r1]
+ mov r2, r8
+ str r0, [r2]
+ strh r5, [r4, #2]
+ b _08001640
+ .align 2, 0
+_080014D8: .4byte 0x00008002
+_080014DC: .4byte 0x02002814
+_080014E0:
+ strh r5, [r4, #0xa]
+_080014E2:
+ strh r5, [r4, #2]
+_080014E4:
+ ldrh r0, [r4, #2]
+ cmp r0, #3
+ bhi _080014F8
+ lsls r0, r0, #1
+ ldr r1, _080014F4 @ =0x0805C748
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ b _080014FC
+ .align 2, 0
+_080014F4: .4byte 0x0805C748
+_080014F8:
+ movs r0, #0x80
+ lsls r0, r0, #8
+_080014FC:
+ strh r0, [r4, #4]
+ mvns r0, r6
+ strh r0, [r4, #6]
+ ldr r3, _0800151C @ =0x04000120
+ ldrh r2, [r4, #4]
+ ldrb r1, [r4]
+ movs r0, #1
+ subs r0, r0, r1
+ lsls r0, r0, #4
+ lsls r2, r0
+ ldrh r0, [r4, #6]
+ lsls r1, r1, #4
+ lsls r0, r1
+ adds r2, r2, r0
+ str r2, [r3]
+ b _08001640
+ .align 2, 0
+_0800151C: .4byte 0x04000120
+_08001520:
+ ldr r5, _08001544 @ =0x02019C10
+ ldrb r0, [r5]
+ bl sub_16A0
+ cmp r0, #0
+ beq _08001550
+ ldr r1, _08001548 @ =0x02002808
+ movs r4, #0
+ movs r0, #0
+ strh r0, [r1, #2]
+ str r0, [sp]
+ ldr r2, _0800154C @ =0x05000003
+ mov r0, sp
+ bl CpuSet
+ strb r4, [r5]
+ b _08001554
+ .align 2, 0
+_08001544: .4byte 0x02019C10
+_08001548: .4byte 0x02002808
+_0800154C: .4byte 0x05000003
+_08001550:
+ movs r0, #2
+ strb r0, [r5]
+_08001554:
+ ldr r0, _0800156C @ =0x02019BF4
+ ldr r0, [r0]
+ ldr r1, _08001570 @ =0x02019C10
+ mov sb, r1
+ cmp r0, #0
+ bne _08001564
+ movs r0, #4
+ strb r0, [r1]
+_08001564:
+ mov r2, sb
+ ldrb r0, [r2]
+ b _080015F8
+ .align 2, 0
+_0800156C: .4byte 0x02019BF4
+_08001570: .4byte 0x02019C10
+_08001574:
+ ldr r5, _08001598 @ =0x02019C10
+ ldrb r0, [r5]
+ bl sub_16A0
+ cmp r0, #0
+ beq _080015A4
+ ldr r1, _0800159C @ =0x02002808
+ movs r4, #0
+ movs r0, #0
+ strh r0, [r1, #2]
+ str r0, [sp, #4]
+ add r0, sp, #4
+ ldr r2, _080015A0 @ =0x05000003
+ bl CpuSet
+ strb r4, [r5]
+ b _080015A8
+ .align 2, 0
+_08001598: .4byte 0x02019C10
+_0800159C: .4byte 0x02002808
+_080015A0: .4byte 0x05000003
+_080015A4:
+ movs r0, #3
+ strb r0, [r5]
+_080015A8:
+ ldr r0, _080015C0 @ =0x02019BF4
+ ldr r0, [r0]
+ ldr r1, _080015C4 @ =0x02019C10
+ mov sb, r1
+ cmp r0, #0
+ bne _080015B8
+ movs r0, #4
+ strb r0, [r1]
+_080015B8:
+ mov r2, sb
+ ldrb r0, [r2]
+ b _080015F8
+ .align 2, 0
+_080015C0: .4byte 0x02019BF4
+_080015C4: .4byte 0x02019C10
+_080015C8:
+ mov r5, sb
+ ldrb r0, [r5]
+ bl sub_16A0
+ cmp r0, #0
+ beq _080015E8
+ ldr r1, _08001608 @ =0x02002808
+ movs r4, #0
+ movs r0, #0
+ strh r0, [r1, #2]
+ str r0, [sp, #8]
+ add r0, sp, #8
+ ldr r2, _0800160C @ =0x05000003
+ bl CpuSet
+ strb r4, [r5]
+_080015E8:
+ ldr r0, _08001610 @ =0x02019BF4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _080015F4
+ movs r0, #4
+ strb r0, [r5]
+_080015F4:
+ mov r1, sb
+ ldrb r0, [r1]
+_080015F8:
+ bl sub_1748
+ ldr r1, _08001614 @ =0x02002814
+ str r0, [r1]
+ ldr r1, _08001618 @ =0x04000120
+ str r0, [r1]
+ b _08001640
+ .align 2, 0
+_08001608: .4byte 0x02002808
+_0800160C: .4byte 0x05000003
+_08001610: .4byte 0x02019BF4
+_08001614: .4byte 0x02002814
+_08001618: .4byte 0x04000120
+_0800161C:
+ ldr r3, _08001634 @ =0x04000208
+ movs r0, #0
+ strh r0, [r3]
+ ldr r2, _08001638 @ =0x04000200
+ ldrh r1, [r2]
+ ldr r0, _0800163C @ =0x0000FF7F
+ ands r0, r1
+ strh r0, [r2]
+ movs r0, #1
+ strh r0, [r3]
+ b _08001650
+ .align 2, 0
+_08001634: .4byte 0x04000208
+_08001638: .4byte 0x04000200
+_0800163C: .4byte 0x0000FF7F
+_08001640:
+ ldr r2, _08001660 @ =0x04000128
+ ldrh r0, [r2]
+ movs r1, #0x80
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08001664 @ =0x0400010E
+ movs r0, #0xc1
+ strh r0, [r1]
+_08001650:
+ add sp, #0xc
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001660: .4byte 0x04000128
+_08001664: .4byte 0x0400010E
+
+ thumb_func_start sub_1668
+sub_1668: @ 0x08001668
+ push {r4, r5, lr}
+ ldr r2, _0800169C @ =0x00FFFFFF
+ ands r2, r0
+ lsls r4, r2, #4
+ lsls r1, r1, #0x1c
+ orrs r4, r1
+ lsrs r3, r4, #0x1c
+ movs r2, #6
+ movs r5, #0xf
+_0800167A:
+ lsls r0, r2, #2
+ adds r1, r4, #0
+ lsrs r1, r0
+ ands r1, r5
+ eors r3, r1
+ subs r0, r2, #1
+ lsls r0, r0, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, #0
+ bne _0800167A
+ movs r0, #0xf
+ ands r3, r0
+ orrs r4, r3
+ adds r0, r4, #0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800169C: .4byte 0x00FFFFFF
+
+ thumb_func_start sub_16A0
+sub_16A0: @ 0x080016A0
+ push {r4, r5, r6, lr}
+ lsls r0, r0, #0x18
+ lsrs r4, r0, #0x18
+ ldr r6, _080016C4 @ =0x02002818
+ ldr r0, [r6]
+ lsrs r5, r0, #0x1c
+ bl sub_170C
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080016DE
+ cmp r4, #2
+ beq _080016E8
+ cmp r4, #2
+ bgt _080016C8
+ cmp r4, #1
+ beq _080016CE
+ b _080016DE
+ .align 2, 0
+_080016C4: .4byte 0x02002818
+_080016C8:
+ cmp r4, #3
+ beq _08001700
+ b _080016DE
+_080016CE:
+ ldr r1, _080016E4 @ =0x0200281C
+ ldr r0, [r6]
+ lsls r0, r0, #4
+ lsrs r0, r0, #8
+ ands r0, r4
+ str r0, [r1]
+ cmp r5, #1
+ beq _08001704
+_080016DE:
+ movs r0, #1
+ b _08001706
+ .align 2, 0
+_080016E4: .4byte 0x0200281C
+_080016E8:
+ cmp r5, #2
+ bne _080016DE
+ ldr r0, _080016FC @ =0x0200281C
+ ldr r1, [r6]
+ lsls r1, r1, #4
+ lsrs r1, r1, #8
+ ldr r0, [r0]
+ cmp r0, r1
+ beq _08001704
+ b _080016DE
+ .align 2, 0
+_080016FC: .4byte 0x0200281C
+_08001700:
+ cmp r5, #3
+ bne _080016DE
+_08001704:
+ movs r0, #0
+_08001706:
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_170C
+sub_170C: @ 0x0800170C
+ push {r4, r5, r6, lr}
+ ldr r0, _0800173C @ =0x02002818
+ ldr r0, [r0]
+ lsrs r4, r0, #4
+ movs r5, #0xf
+ ands r5, r0
+ lsrs r3, r4, #0x18
+ movs r0, #6
+ movs r6, #0xf
+_0800171E:
+ subs r0, #1
+ lsls r2, r0, #2
+ adds r1, r4, #0
+ lsrs r1, r2
+ ands r1, r6
+ eors r3, r1
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0800171E
+ cmp r3, r5
+ beq _08001740
+ movs r0, #1
+ b _08001742
+ .align 2, 0
+_0800173C: .4byte 0x02002818
+_08001740:
+ movs r0, #0
+_08001742:
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_1748
+sub_1748: @ 0x08001748
+ push {r4, lr}
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ subs r0, #1
+ cmp r0, #4
+ bhi _080017CE
+ lsls r0, r0, #2
+ ldr r1, _08001760 @ =_08001764
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08001760: .4byte _08001764
+_08001764: @ jump table
+ .4byte _080017C4 @ case 0
+ .4byte _08001778 @ case 1
+ .4byte _08001784 @ case 2
+ .4byte _080017C4 @ case 3
+ .4byte _080017C4 @ case 4
+_08001778:
+ ldr r0, _08001780 @ =0x0200281C
+ ldr r0, [r0]
+ movs r1, #2
+ b _080017C8
+ .align 2, 0
+_08001780: .4byte 0x0200281C
+_08001784:
+ ldr r4, _080017C0 @ =0x02019C00
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _0800179A
+ movs r0, #0
+ bl sub_17D8
+ movs r1, #4
+ bl sub_1668
+ adds r2, r0, #0
+_0800179A:
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _080017AE
+ movs r0, #1
+ bl sub_17D8
+ movs r1, #4
+ bl sub_1668
+ adds r2, r0, #0
+_080017AE:
+ ldr r0, [r4]
+ cmp r0, #2
+ bne _080017CE
+ movs r0, #2
+ bl sub_17D8
+ movs r1, #4
+ b _080017C8
+ .align 2, 0
+_080017C0: .4byte 0x02019C00
+_080017C4:
+ movs r0, #1
+ movs r1, #1
+_080017C8:
+ bl sub_1668
+ adds r2, r0, #0
+_080017CE:
+ adds r0, r2, #0
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_17D8
+sub_17D8: @ 0x080017D8
+ adds r2, r0, #0
+ ldr r0, _080017EC @ =0x02019BEC
+ ldr r0, [r0]
+ cmp r0, #4
+ bhi _08001824
+ lsls r0, r0, #2
+ ldr r1, _080017F0 @ =_080017F4
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080017EC: .4byte 0x02019BEC
+_080017F0: .4byte _080017F4
+_080017F4: @ jump table
+ .4byte _08001808 @ case 0
+ .4byte _0800180C @ case 1
+ .4byte _08001810 @ case 2
+ .4byte _08001814 @ case 3
+ .4byte _08001818 @ case 4
+_08001808:
+ adds r1, r2, #0
+ b _08001824
+_0800180C:
+ lsls r1, r2, #2
+ b _08001824
+_08001810:
+ lsls r1, r2, #4
+ b _08001824
+_08001814:
+ lsls r1, r2, #6
+ b _08001824
+_08001818:
+ lsls r1, r2, #2
+ orrs r1, r2
+ lsls r0, r2, #4
+ orrs r1, r0
+ lsls r0, r2, #6
+ orrs r1, r0
+_08001824:
+ adds r0, r1, #0
+ bx lr
+
+ thumb_func_start sub_1828
+sub_1828: @ 0x08001828
+ push {r4, r5, lr}
+ ldr r3, _08001868 @ =0x04000208
+ movs r4, #0
+ strh r4, [r3]
+ ldr r2, _0800186C @ =0x04000200
+ ldrh r1, [r2]
+ ldr r0, _08001870 @ =0x0000FFBF
+ ands r0, r1
+ strh r0, [r2]
+ movs r5, #1
+ strh r5, [r3]
+ strh r4, [r3]
+ subs r2, #0xd8
+ ldrh r1, [r2]
+ ldr r0, _08001874 @ =0x0000FF7F
+ ands r0, r1
+ strh r0, [r2]
+ strh r5, [r3]
+ ldr r0, _08001878 @ =0x0400010E
+ strh r4, [r0]
+ ldr r1, _0800187C @ =0x0400010C
+ movs r2, #0x80
+ lsls r2, r2, #8
+ adds r0, r2, #0
+ strh r0, [r1]
+ ldr r1, _08001880 @ =0x02019C10
+ movs r0, #5
+ strb r0, [r1]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001868: .4byte 0x04000208
+_0800186C: .4byte 0x04000200
+_08001870: .4byte 0x0000FFBF
+_08001874: .4byte 0x0000FF7F
+_08001878: .4byte 0x0400010E
+_0800187C: .4byte 0x0400010C
+_08001880: .4byte 0x02019C10
+
+ thumb_func_start sub_1884
+sub_1884: @ 0x08001884
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ sub sp, #4
+ ldr r0, _08001944 @ =0x02002822
+ mov r8, r0
+ ldr r5, _08001948 @ =0x04000208
+ ldrh r2, [r5]
+ movs r4, #0
+ strh r4, [r5]
+ ldr r6, _0800194C @ =0x04000200
+ ldrh r1, [r6]
+ ldr r0, _08001950 @ =0x0000FF3F
+ ands r0, r1
+ strh r0, [r6]
+ strh r2, [r5]
+ ldr r0, _08001954 @ =0x04000134
+ strh r4, [r0]
+ ldr r2, _08001958 @ =0x04000128
+ movs r1, #0x80
+ lsls r1, r1, #6
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldrh r0, [r2]
+ ldr r3, _0800195C @ =0x00004003
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _08001960 @ =sub_19CC + 1
+ bl sub_898
+ ldr r0, _08001964 @ =sub_1A78 + 1
+ bl sub_8D4
+ strh r4, [r5]
+ ldrh r0, [r6]
+ movs r1, #0x80
+ orrs r0, r1
+ strh r0, [r6]
+ mov r3, r8
+ ldrh r0, [r3]
+ strh r0, [r5]
+ ldr r0, _08001968 @ =0x0400012A
+ strh r4, [r0]
+ ldr r2, _0800196C @ =0x04000120
+ movs r0, #0
+ movs r1, #0
+ str r0, [r2]
+ str r1, [r2, #4]
+ movs r5, #0
+ str r5, [sp]
+ ldr r1, _08001970 @ =0x0202BF20
+ ldr r2, _08001974 @ =0x05000189
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _08001978 @ =0x02002824
+ strb r4, [r0]
+ ldr r0, _0800197C @ =0x02002825
+ strb r4, [r0]
+ ldr r0, _08001980 @ =0x02002827
+ strb r4, [r0]
+ ldr r0, _08001984 @ =0x02019C2C
+ strb r4, [r0]
+ ldr r0, _08001988 @ =0x0202A554
+ strb r4, [r0]
+ ldr r0, _0800198C @ =0x0202C5E0
+ strb r4, [r0]
+ ldr r0, _08001990 @ =0x0202ADD0
+ str r5, [r0]
+ ldr r0, _08001994 @ =0x0201A444
+ strh r5, [r0]
+ ldr r0, _08001998 @ =0x0202BDF0
+ str r5, [r0]
+ ldr r0, _0800199C @ =0x0201C1AC
+ strb r4, [r0]
+ ldr r0, _080019A0 @ =0x0202ADDC
+ strb r4, [r0]
+ ldr r0, _080019A4 @ =0x0202BEC8
+ strb r4, [r0]
+ ldr r0, _080019A8 @ =0x02002820
+ strb r4, [r0]
+ ldr r0, _080019AC @ =0x02002828
+ strh r5, [r0]
+ ldr r0, _080019B0 @ =0x0200282A
+ strh r5, [r0]
+ add sp, #4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001944: .4byte 0x02002822
+_08001948: .4byte 0x04000208
+_0800194C: .4byte 0x04000200
+_08001950: .4byte 0x0000FF3F
+_08001954: .4byte 0x04000134
+_08001958: .4byte 0x04000128
+_0800195C: .4byte 0x00004003
+_08001960: .4byte sub_19CC + 1
+_08001964: .4byte sub_1A78 + 1
+_08001968: .4byte 0x0400012A
+_0800196C: .4byte 0x04000120
+_08001970: .4byte 0x0202BF20
+_08001974: .4byte 0x05000189
+_08001978: .4byte 0x02002824
+_0800197C: .4byte 0x02002825
+_08001980: .4byte 0x02002827
+_08001984: .4byte 0x02019C2C
+_08001988: .4byte 0x0202A554
+_0800198C: .4byte 0x0202C5E0
+_08001990: .4byte 0x0202ADD0
+_08001994: .4byte 0x0201A444
+_08001998: .4byte 0x0202BDF0
+_0800199C: .4byte 0x0201C1AC
+_080019A0: .4byte 0x0202ADDC
+_080019A4: .4byte 0x0202BEC8
+_080019A8: .4byte 0x02002820
+_080019AC: .4byte 0x02002828
+_080019B0: .4byte 0x0200282A
+
+ thumb_func_start sub_19B4
+sub_19B4: @ 0x080019B4
+ push {lr}
+ bl sub_24DC
+ bl sub_250C
+ bl sub_1884
+ bl sub_1AA4
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_19CC
+sub_19CC: @ 0x080019CC
+ push {lr}
+ ldr r0, _08001A6C @ =0x04000004
+ ldrh r1, [r0]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08001A64
+ ldr r0, _08001A70 @ =0x03005000
+ movs r1, #0xe0
+ lsls r1, r1, #0x13
+ movs r2, #0x80
+ lsls r2, r2, #2
+ bl CpuSet
+ movs r1, #0x80
+ lsls r1, r1, #0x13
+ ldr r2, _08001A74 @ =0x0200B0C0
+ ldrh r0, [r2, #0x16]
+ strh r0, [r1]
+ adds r1, #0x10
+ movs r3, #0xba
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, #0
+ adds r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08001A60
+ adds r1, #0x32
+ ldrh r0, [r2, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r2, #0x3a]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r2, #0x3c]
+ strh r0, [r1]
+_08001A60:
+ bl VBlankIntrWait
+_08001A64:
+ bl m4aSoundMain
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001A6C: .4byte 0x04000004
+_08001A70: .4byte 0x03005000
+_08001A74: .4byte 0x0200B0C0
+
+ thumb_func_start sub_1A78
+sub_1A78: @ 0x08001A78
+ push {lr}
+ bl sub_1EC0
+ bl m4aSoundVSync
+ ldr r3, _08001A98 @ =0x04000208
+ movs r0, #0
+ strh r0, [r3]
+ ldr r2, _08001A9C @ =0x03007FF8
+ ldrh r0, [r2]
+ movs r1, #1
+ orrs r0, r1
+ strh r0, [r2]
+ strh r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001A98: .4byte 0x04000208
+_08001A9C: .4byte 0x03007FF8
+
+ thumb_func_start nullsub_15
+nullsub_15: @ 0x08001AA0
+ bx lr
+
+ thumb_func_start sub_1AA4
+sub_1AA4: @ 0x08001AA4
+ push {r4, r5, lr}
+ sub sp, #4
+ ldr r0, _08001AE4 @ =0x02002822
+ ldr r2, _08001AE8 @ =0x04000208
+ ldrh r5, [r2]
+ strh r5, [r0]
+ movs r4, #0
+ strh r4, [r2]
+ ldr r3, _08001AEC @ =0x04000200
+ ldrh r1, [r3]
+ ldr r0, _08001AF0 @ =0x0000FF3F
+ ands r0, r1
+ strh r0, [r3]
+ strh r5, [r2]
+ ldr r0, _08001AF4 @ =0x04000128
+ strh r4, [r0]
+ subs r0, #0x1a
+ strh r4, [r0]
+ ldr r1, _08001AF8 @ =0x04000202
+ movs r0, #0xc0
+ strh r0, [r1]
+ movs r0, #0
+ str r0, [sp]
+ ldr r1, _08001AFC @ =0x0202BF20
+ ldr r2, _08001B00 @ =0x05000189
+ mov r0, sp
+ bl CpuSet
+ add sp, #4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001AE4: .4byte 0x02002822
+_08001AE8: .4byte 0x04000208
+_08001AEC: .4byte 0x04000200
+_08001AF0: .4byte 0x0000FF3F
+_08001AF4: .4byte 0x04000128
+_08001AF8: .4byte 0x04000202
+_08001AFC: .4byte 0x0202BF20
+_08001B00: .4byte 0x05000189
+
+ thumb_func_start sub_1B04
+sub_1B04: @ 0x08001B04
+ push {r4, r5, r6, r7, lr}
+ adds r6, r0, #0
+ adds r4, r1, #0
+ adds r5, r2, #0
+ ldr r0, _08001B20 @ =0x0202BF20
+ ldrb r0, [r0, #1]
+ cmp r0, #4
+ bhi _08001BEE
+ lsls r0, r0, #2
+ ldr r1, _08001B24 @ =_08001B28
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08001B20: .4byte 0x0202BF20
+_08001B24: .4byte _08001B28
+_08001B28: @ jump table
+ .4byte _08001B3C @ case 0
+ .4byte _08001B4C @ case 1
+ .4byte _08001B5C @ case 2
+ .4byte _08001BD0 @ case 3
+ .4byte _08001BDA @ case 4
+_08001B3C:
+ bl sub_1AA4
+ ldr r1, _08001B48 @ =0x0202BF20
+ movs r0, #1
+ strb r0, [r1, #1]
+ b _08001BEE
+ .align 2, 0
+_08001B48: .4byte 0x0202BF20
+_08001B4C:
+ bl sub_1884
+ ldr r1, _08001B58 @ =0x0202BF20
+ movs r0, #2
+ strb r0, [r1, #1]
+ b _08001BEE
+ .align 2, 0
+_08001B58: .4byte 0x0202BF20
+_08001B5C:
+ ldrb r1, [r6]
+ cmp r1, #1
+ beq _08001B98
+ cmp r1, #2
+ beq _08001BBC
+ bl sub_1C5C
+ ldr r2, _08001B90 @ =0x0202C5E0
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ bne _08001BEE
+ ldr r1, _08001B94 @ =0x0202BF20
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _08001BEE
+ ldrb r0, [r1, #3]
+ cmp r0, #2
+ bne _08001BEE
+ movs r0, #1
+ strb r0, [r1, #0x10]
+ movs r1, #1
+ rsbs r1, r1, #0
+ adds r0, r1, #0
+ strb r0, [r2]
+ b _08001BEE
+ .align 2, 0
+_08001B90: .4byte 0x0202C5E0
+_08001B94: .4byte 0x0202BF20
+_08001B98:
+ ldr r2, _08001BB4 @ =0x0202BF20
+ ldrb r0, [r2]
+ cmp r0, #0
+ beq _08001BA8
+ ldrb r0, [r2, #3]
+ cmp r0, #2
+ bne _08001BA8
+ strb r1, [r2, #0x10]
+_08001BA8:
+ ldr r1, _08001BB8 @ =0x0202C5E0
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ strb r0, [r1]
+ b _08001BEE
+ .align 2, 0
+_08001BB4: .4byte 0x0202BF20
+_08001BB8: .4byte 0x0202C5E0
+_08001BBC:
+ ldr r0, _08001BC8 @ =0x0202BF20
+ movs r1, #0
+ strb r1, [r0, #1]
+ ldr r0, _08001BCC @ =0x0400012A
+ strh r1, [r0]
+ b _08001BEE
+ .align 2, 0
+_08001BC8: .4byte 0x0202BF20
+_08001BCC: .4byte 0x0400012A
+_08001BD0:
+ bl sub_1C84
+ ldr r1, _08001C30 @ =0x0202BF20
+ movs r0, #4
+ strb r0, [r1, #1]
+_08001BDA:
+ ldr r0, _08001C30 @ =0x0202BF20
+ ldrb r0, [r0, #0xe]
+ cmp r0, #0
+ bne _08001BE8
+ adds r0, r4, #0
+ bl sub_1CD4
+_08001BE8:
+ adds r0, r5, #0
+ bl sub_1DB8
+_08001BEE:
+ movs r0, #0
+ strb r0, [r6]
+ ldr r1, _08001C30 @ =0x0202BF20
+ ldrb r2, [r1, #2]
+ ldrb r0, [r1, #3]
+ lsls r0, r0, #2
+ orrs r2, r0
+ ldrb r0, [r1]
+ cmp r0, #8
+ bne _08001C06
+ movs r0, #0x20
+ orrs r2, r0
+_08001C06:
+ ldrb r0, [r1, #0xc]
+ lsls r3, r0, #8
+ ldrb r0, [r1, #0x11]
+ lsls r4, r0, #9
+ ldrb r0, [r1, #0x12]
+ lsls r5, r0, #0x10
+ ldrb r0, [r1, #0x13]
+ lsls r6, r0, #0x11
+ ldrb r0, [r1, #0x14]
+ lsls r7, r0, #0x12
+ ldrb r0, [r1, #0x15]
+ lsls r0, r0, #0x14
+ mov ip, r0
+ ldrb r0, [r1, #1]
+ cmp r0, #4
+ bne _08001C34
+ movs r0, #0x40
+ orrs r0, r3
+ orrs r0, r2
+ b _08001C38
+ .align 2, 0
+_08001C30: .4byte 0x0202BF20
+_08001C34:
+ adds r0, r2, #0
+ orrs r0, r3
+_08001C38:
+ orrs r0, r4
+ orrs r0, r5
+ orrs r0, r6
+ orrs r0, r7
+ mov r2, ip
+ orrs r0, r2
+ adds r2, r0, #0
+ ldrb r0, [r1, #2]
+ cmp r0, #1
+ bls _08001C52
+ movs r0, #0x80
+ lsls r0, r0, #0xf
+ orrs r2, r0
+_08001C52:
+ adds r0, r2, #0
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_1C5C
+sub_1C5C: @ 0x08001C5C
+ ldr r0, _08001C74 @ =0x04000128
+ ldr r1, [r0]
+ movs r0, #0xc
+ ands r1, r0
+ ldr r2, _08001C78 @ =0x0202BF20
+ cmp r1, #8
+ bne _08001C7C
+ ldrb r0, [r2, #2]
+ cmp r0, #0
+ bne _08001C7C
+ strb r1, [r2]
+ b _08001C80
+ .align 2, 0
+_08001C74: .4byte 0x04000128
+_08001C78: .4byte 0x0202BF20
+_08001C7C:
+ movs r0, #0
+ strb r0, [r2]
+_08001C80:
+ bx lr
+
+ thumb_func_start sub_1C84
+sub_1C84: @ 0x08001C84
+ push {r4, lr}
+ ldr r0, _08001CBC @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08001CB4
+ ldr r1, _08001CC0 @ =0x0400010C
+ ldr r2, _08001CC4 @ =0x0000FF3B
+ adds r0, r2, #0
+ strh r0, [r1]
+ adds r1, #2
+ movs r0, #0x41
+ strh r0, [r1]
+ ldr r0, _08001CC8 @ =0x02002822
+ ldr r2, _08001CCC @ =0x04000208
+ ldrh r4, [r2]
+ strh r4, [r0]
+ movs r0, #0
+ strh r0, [r2]
+ ldr r3, _08001CD0 @ =0x04000200
+ ldrh r0, [r3]
+ movs r1, #0x40
+ orrs r0, r1
+ strh r0, [r3]
+ strh r4, [r2]
+_08001CB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001CBC: .4byte 0x0202BF20
+_08001CC0: .4byte 0x0400010C
+_08001CC4: .4byte 0x0000FF3B
+_08001CC8: .4byte 0x02002822
+_08001CCC: .4byte 0x04000208
+_08001CD0: .4byte 0x04000200
+
+ thumb_func_start sub_1CD4
+sub_1CD4: @ 0x08001CD4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ adds r3, r0, #0
+ ldr r2, _08001D48 @ =0x02002822
+ ldr r1, _08001D4C @ =0x04000208
+ ldrh r0, [r1]
+ strh r0, [r2]
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08001D50 @ =0x0202BF20
+ ldr r4, _08001D54 @ =0x0000021D
+ adds r0, r1, r4
+ ldrb r4, [r0]
+ mov sl, r2
+ adds r6, r1, #0
+ cmp r4, #0x1f
+ bhi _08001D60
+ movs r1, #0x87
+ lsls r1, r1, #2
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #0x1f
+ bls _08001D14
+ subs r0, #0x20
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+_08001D14:
+ movs r2, #0
+ ldr r4, _08001D58 @ =0x02002828
+ mov r8, r4
+ ldr r1, _08001D5C @ =0x02019C2C
+ mov sb, r1
+ lsls r5, r0, #1
+ movs r0, #0x1c
+ adds r0, r0, r6
+ mov ip, r0
+ movs r7, #0
+_08001D28:
+ ldrh r0, [r4]
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r4]
+ lsls r0, r2, #6
+ adds r0, r5, r0
+ add r0, ip
+ strh r1, [r0]
+ strh r7, [r3]
+ adds r3, #2
+ adds r0, r2, #1
+ lsls r0, r0, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, #7
+ bls _08001D28
+ b _08001D70
+ .align 2, 0
+_08001D48: .4byte 0x02002822
+_08001D4C: .4byte 0x04000208
+_08001D50: .4byte 0x0202BF20
+_08001D54: .4byte 0x0000021D
+_08001D58: .4byte 0x02002828
+_08001D5C: .4byte 0x02019C2C
+_08001D60:
+ ldrb r1, [r6, #0x14]
+ movs r0, #1
+ orrs r0, r1
+ strb r0, [r6, #0x14]
+ ldr r1, _08001DA8 @ =0x02002828
+ mov r8, r1
+ ldr r2, _08001DAC @ =0x02019C2C
+ mov sb, r2
+_08001D70:
+ mov r4, r8
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _08001D86
+ ldr r1, _08001DB0 @ =0x0000021D
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r1, #1
+ movs r2, #0
+ strb r1, [r0]
+ strh r2, [r4]
+_08001D86:
+ ldr r1, _08001DB4 @ =0x04000208
+ mov r2, sl
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r4, _08001DB0 @ =0x0000021D
+ adds r0, r6, r4
+ ldrb r0, [r0]
+ mov r1, sb
+ strb r0, [r1]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001DA8: .4byte 0x02002828
+_08001DAC: .4byte 0x02019C2C
+_08001DB0: .4byte 0x0000021D
+_08001DB4: .4byte 0x04000208
+
+ thumb_func_start sub_1DB8
+sub_1DB8: @ 0x08001DB8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ mov ip, r0
+ ldr r2, _08001E18 @ =0x02002822
+ ldr r1, _08001E1C @ =0x04000208
+ ldrh r0, [r1]
+ strh r0, [r2]
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08001E20 @ =0x0202BF20
+ ldr r3, _08001E24 @ =0x00000621
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ adds r7, r1, #0
+ cmp r0, #0
+ bne _08001E28
+ movs r1, #0
+ mov r8, r7
+ ldrb r6, [r7, #3]
+_08001DE4:
+ movs r2, #0
+ adds r5, r1, #1
+ cmp r2, r6
+ bhs _08001E08
+ lsls r0, r1, #2
+ mov r3, ip
+ adds r1, r0, r3
+ movs r4, #0
+ mov r0, r8
+ ldrb r3, [r0, #3]
+_08001DF8:
+ lsls r0, r2, #1
+ adds r0, r0, r1
+ strh r4, [r0]
+ adds r0, r2, #1
+ lsls r0, r0, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, r3
+ blo _08001DF8
+_08001E08:
+ lsls r0, r5, #0x18
+ lsrs r1, r0, #0x18
+ cmp r1, #7
+ bls _08001DE4
+ movs r0, #1
+ strb r0, [r7, #0xc]
+ b _08001E9A
+ .align 2, 0
+_08001E18: .4byte 0x02002822
+_08001E1C: .4byte 0x04000208
+_08001E20: .4byte 0x0202BF20
+_08001E24: .4byte 0x00000621
+_08001E28:
+ movs r1, #0
+ ldrb r2, [r7, #3]
+ mov sb, r2
+ movs r3, #0x88
+ lsls r3, r3, #2
+ adds r3, r3, r7
+ mov r8, r3
+ mov sl, r7
+_08001E38:
+ movs r2, #0
+ adds r5, r1, #1
+ cmp r2, sb
+ bhs _08001E6C
+ lsls r0, r1, #2
+ mov r3, ip
+ adds r6, r0, r3
+ ldr r0, _08001EB0 @ =0x0202C540
+ ldrb r0, [r0]
+ lsls r0, r0, #1
+ lsls r1, r1, #6
+ adds r4, r0, r1
+ mov r0, sl
+ ldrb r3, [r0, #3]
+_08001E54:
+ lsls r1, r2, #1
+ adds r1, r1, r6
+ lsls r0, r2, #9
+ adds r0, r4, r0
+ add r0, r8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, #1
+ lsls r0, r0, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, r3
+ blo _08001E54
+_08001E6C:
+ lsls r0, r5, #0x18
+ lsrs r1, r0, #0x18
+ cmp r1, #7
+ bls _08001E38
+ adds r2, r7, #0
+ ldr r3, _08001EB4 @ =0x00000621
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ subs r0, #1
+ movs r3, #0
+ strb r0, [r1]
+ movs r0, #0xc4
+ lsls r0, r0, #3
+ adds r2, r2, r0
+ ldrb r0, [r2]
+ adds r0, #1
+ strb r0, [r2]
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #0x1f
+ bls _08001E98
+ strb r3, [r2]
+_08001E98:
+ strb r3, [r7, #0xc]
+_08001E9A:
+ ldr r1, _08001EB8 @ =0x04000208
+ ldr r2, _08001EBC @ =0x02002822
+ ldrh r0, [r2]
+ strh r0, [r1]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001EB0: .4byte 0x0202C540
+_08001EB4: .4byte 0x00000621
+_08001EB8: .4byte 0x04000208
+_08001EBC: .4byte 0x02002822
+
+ thumb_func_start sub_1EC0
+sub_1EC0: @ 0x08001EC0
+ push {r4, lr}
+ ldr r4, _08001F00 @ =0x0202BF20
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ beq _08001EDC
+ ldr r1, _08001F04 @ =0x02002826
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08001F42
+ strb r0, [r4, #0xe]
+_08001EDC:
+ ldrb r3, [r4]
+ cmp r3, #0
+ beq _08001F16
+ ldrb r0, [r4, #1]
+ cmp r0, #2
+ beq _08001F10
+ cmp r0, #4
+ bne _08001F42
+ ldrb r0, [r4, #0xd]
+ cmp r0, #8
+ bhi _08001F08
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0
+ bne _08001F10
+ movs r0, #1
+ strb r0, [r4, #0x15]
+ b _08001F42
+ .align 2, 0
+_08001F00: .4byte 0x0202BF20
+_08001F04: .4byte 0x02002826
+_08001F08:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0
+ bne _08001F42
+ strb r0, [r4, #0xd]
+_08001F10:
+ bl sub_1FEC
+ b _08001F42
+_08001F16:
+ ldrb r2, [r4, #1]
+ cmp r2, #4
+ beq _08001F20
+ cmp r2, #2
+ bne _08001F42
+_08001F20:
+ ldr r1, _08001F48 @ =0x02002824
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #6
+ bls _08001F42
+ cmp r2, #4
+ bne _08001F38
+ movs r0, #2
+ strb r0, [r4, #0x15]
+_08001F38:
+ cmp r2, #2
+ bne _08001F42
+ strb r3, [r4, #2]
+ strb r3, [r4, #3]
+ strb r3, [r4, #0x11]
+_08001F42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001F48: .4byte 0x02002824
+
+ thumb_func_start sub_1F4C
+sub_1F4C: @ 0x08001F4C
+ push {lr}
+ bl sub_2308
+ bl sub_1FEC
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_1F5C
+sub_1F5C: @ 0x08001F5C
+ push {r4, lr}
+ ldr r0, _08001F90 @ =0x04000128
+ ldr r1, [r0]
+ ldr r4, _08001F94 @ =0x0202BF20
+ lsls r0, r1, #0x1a
+ lsrs r0, r0, #0x1e
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #1]
+ cmp r0, #2
+ beq _08001F98
+ cmp r0, #4
+ bne _08001FB6
+ movs r0, #0x40
+ ands r1, r0
+ cmp r1, #0
+ beq _08001F80
+ movs r0, #1
+ strb r0, [r4, #0x12]
+_08001F80:
+ bl sub_20FC
+ bl sub_223C
+ bl sub_2338
+ b _08001FB6
+ .align 2, 0
+_08001F90: .4byte 0x04000128
+_08001F94: .4byte 0x0202BF20
+_08001F98:
+ bl sub_1FFC
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ beq _08001FB6
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _08001FB2
+ movs r0, #3
+ strb r0, [r4, #1]
+ movs r0, #8
+ strb r0, [r4, #0xd]
+ b _08001FB6
+_08001FB2:
+ movs r0, #4
+ strb r0, [r4, #1]
+_08001FB6:
+ ldr r3, _08001FDC @ =0x0202BF20
+ ldrb r0, [r3, #0xd]
+ adds r0, #1
+ movs r2, #0
+ strb r0, [r3, #0xd]
+ ldr r1, _08001FE0 @ =0x02002824
+ strb r2, [r1]
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #8
+ bne _08001FD6
+ ldr r0, _08001FE4 @ =0x0202A554
+ ldr r2, _08001FE8 @ =0x00000621
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+_08001FD6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001FDC: .4byte 0x0202BF20
+_08001FE0: .4byte 0x02002824
+_08001FE4: .4byte 0x0202A554
+_08001FE8: .4byte 0x00000621
+
+ thumb_func_start sub_1FEC
+sub_1FEC: @ 0x08001FEC
+ ldr r0, _08001FF8 @ =0x04000128
+ ldrh r1, [r0]
+ movs r2, #0x80
+ orrs r1, r2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08001FF8: .4byte 0x04000128
+
+ thumb_func_start sub_1FFC
+sub_1FFC: @ 0x08001FFC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ movs r7, #0
+ ldr r5, _08002018 @ =0x0000FFFF
+ ldr r0, _0800201C @ =0x0202BF20
+ ldrb r1, [r0, #0x10]
+ adds r4, r0, #0
+ cmp r1, #1
+ bne _0800202C
+ ldr r1, _08002020 @ =0x0400012A
+ ldr r2, _08002024 @ =0x00008FFF
+ b _08002030
+ .align 2, 0
+_08002018: .4byte 0x0000FFFF
+_0800201C: .4byte 0x0202BF20
+_08002020: .4byte 0x0400012A
+_08002024: .4byte 0x00008FFF
+_08002028:
+ movs r7, #0
+ b _080020B2
+_0800202C:
+ ldr r1, _08002080 @ =0x0400012A
+ ldr r2, _08002084 @ =0x0000D13B
+_08002030:
+ adds r0, r2, #0
+ strh r0, [r1]
+ movs r0, #0
+ strb r0, [r4, #0x10]
+ ldr r0, _08002088 @ =0x04000120
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ movs r3, #0
+ ldr r0, _0800208C @ =0x02002827
+ mov sb, r0
+ adds r6, r4, #0
+ ldr r1, _08002090 @ =0x00008FFF
+ mov r8, r1
+ ldr r2, _08002094 @ =0x0000FFFF
+ mov ip, r2
+_08002052:
+ lsls r0, r3, #1
+ adds r1, r6, #4
+ adds r0, r0, r1
+ ldrh r2, [r0]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r2
+ ldr r1, _08002098 @ =0x0000D138
+ cmp r0, r1
+ beq _0800206C
+ adds r0, r2, #0
+ cmp r0, r8
+ bne _0800209C
+_0800206C:
+ adds r0, r7, #1
+ lsls r0, r0, #0x18
+ lsrs r7, r0, #0x18
+ adds r0, r2, #0
+ cmp r5, r0
+ bls _080020A8
+ cmp r0, #0
+ beq _080020A8
+ adds r5, r2, #0
+ b _080020A8
+ .align 2, 0
+_08002080: .4byte 0x0400012A
+_08002084: .4byte 0x0000D13B
+_08002088: .4byte 0x04000120
+_0800208C: .4byte 0x02002827
+_08002090: .4byte 0x00008FFF
+_08002094: .4byte 0x0000FFFF
+_08002098: .4byte 0x0000D138
+_0800209C:
+ cmp r0, ip
+ bne _08002028
+ ldrb r0, [r6, #2]
+ cmp r3, r0
+ bne _080020A8
+ movs r7, #0
+_080020A8:
+ adds r0, r3, #1
+ lsls r0, r0, #0x18
+ lsrs r3, r0, #0x18
+ cmp r3, #1
+ bls _08002052
+_080020B2:
+ strb r7, [r4, #3]
+ adds r0, r7, #0
+ cmp r0, #2
+ bne _080020E2
+ mov r1, sb
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080020D4
+ ldrh r1, [r4, #4]
+ ldr r0, _080020D0 @ =0x00008FFF
+ cmp r1, r0
+ bne _080020D4
+ movs r0, #1
+ b _080020EE
+ .align 2, 0
+_080020D0: .4byte 0x00008FFF
+_080020D4:
+ ldrb r0, [r4, #3]
+ cmp r0, #2
+ bne _080020E2
+ movs r0, #3
+ ands r5, r0
+ adds r0, r5, #1
+ b _080020E4
+_080020E2:
+ movs r0, #0
+_080020E4:
+ strb r0, [r4, #0x11]
+ ldrb r0, [r4, #3]
+ mov r2, sb
+ strb r0, [r2]
+ movs r0, #0
+_080020EE:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_20FC
+sub_20FC: @ 0x080020FC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #8
+ ldr r0, _08002158 @ =0x04000120
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, _0800215C @ =0x0202BF20
+ ldrb r1, [r0, #0x18]
+ adds r6, r0, #0
+ cmp r1, #0
+ bne _08002164
+ movs r3, #0
+ ldr r7, _08002160 @ =0x02002820
+ ldrb r0, [r6, #3]
+ cmp r3, r0
+ bhs _0800214C
+ adds r5, r6, #0
+ ldrh r1, [r6, #0x16]
+ adds r4, r7, #0
+ adds r2, r6, #0
+_0800212C:
+ lsls r0, r3, #1
+ add r0, sp
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _08002140
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _08002140
+ movs r0, #1
+ strb r0, [r5, #0x13]
+_08002140:
+ adds r0, r3, #1
+ lsls r0, r0, #0x18
+ lsrs r3, r0, #0x18
+ ldrb r0, [r2, #3]
+ cmp r3, r0
+ blo _0800212C
+_0800214C:
+ movs r0, #0
+ strh r0, [r6, #0x16]
+ movs r0, #1
+ strb r0, [r7]
+ b _08002224
+ .align 2, 0
+_08002158: .4byte 0x04000120
+_0800215C: .4byte 0x0202BF20
+_08002160: .4byte 0x02002820
+_08002164:
+ movs r2, #0xc4
+ lsls r2, r2, #3
+ adds r1, r6, r2
+ adds r2, #1
+ adds r0, r6, r2
+ ldrb r2, [r0]
+ ldrb r1, [r1]
+ adds r0, r2, r1
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #0x1f
+ bls _08002182
+ subs r0, #0x20
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+_08002182:
+ cmp r2, #0x1f
+ bhi _080021F8
+ movs r3, #0
+ ldrb r1, [r6, #3]
+ cmp r3, r1
+ bhs _08002200
+ adds r5, r6, #0
+ ldr r7, _080021F0 @ =0x0200282A
+ lsls r0, r0, #1
+ mov ip, r0
+ movs r2, #0x88
+ lsls r2, r2, #2
+ adds r2, r2, r6
+ mov sb, r2
+ ldr r0, _080021F4 @ =0x02002826
+ mov r8, r0
+_080021A2:
+ lsls r0, r3, #1
+ mov r1, sp
+ adds r4, r1, r0
+ ldrh r2, [r4]
+ ldrh r1, [r5, #0x16]
+ adds r0, r2, r1
+ strh r0, [r5, #0x16]
+ ldrh r0, [r7]
+ orrs r0, r2
+ strh r0, [r7]
+ ldrb r0, [r5, #0x19]
+ lsls r0, r0, #6
+ add r0, ip
+ lsls r1, r3, #9
+ adds r0, r0, r1
+ add r0, sb
+ strh r2, [r0]
+ ldrb r0, [r5, #0x18]
+ cmp r0, #1
+ bne _080021E2
+ ldrb r0, [r6, #0xe]
+ cmp r0, #0
+ bne _080021E2
+ ldrh r0, [r4]
+ movs r1, #0xf
+ ands r1, r0
+ cmp r1, #1
+ bne _080021E2
+ strb r1, [r5, #0xe]
+ movs r0, #5
+ mov r2, r8
+ strb r0, [r2]
+_080021E2:
+ adds r0, r3, #1
+ lsls r0, r0, #0x18
+ lsrs r3, r0, #0x18
+ ldrb r0, [r5, #3]
+ cmp r3, r0
+ blo _080021A2
+ b _08002200
+ .align 2, 0
+_080021F0: .4byte 0x0200282A
+_080021F4: .4byte 0x02002826
+_080021F8:
+ ldrb r1, [r6, #0x14]
+ movs r0, #2
+ orrs r0, r1
+ strb r0, [r6, #0x14]
+_08002200:
+ ldrb r0, [r6, #0x19]
+ adds r0, #1
+ strb r0, [r6, #0x19]
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #8
+ bne _08002224
+ ldr r2, _08002234 @ =0x0200282A
+ ldrh r0, [r2]
+ cmp r0, #0
+ beq _08002224
+ ldr r1, _08002238 @ =0x00000621
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ adds r1, #1
+ strb r1, [r0]
+ movs r0, #0
+ strh r0, [r2]
+_08002224:
+ add sp, #8
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002234: .4byte 0x0200282A
+_08002238: .4byte 0x00000621
+
+ thumb_func_start sub_223C
+sub_223C: @ 0x0800223C
+ ldr r0, _08002278 @ =0x0202BF20
+ ldrb r2, [r0, #0x18]
+ adds r3, r0, #0
+ cmp r2, #8
+ bne _0800228E
+ ldr r1, _0800227C @ =0x0400012A
+ ldrh r0, [r3, #0x16]
+ strh r0, [r1]
+ ldr r1, _08002280 @ =0x02002825
+ ldrb r2, [r1]
+ cmp r2, #0
+ bne _08002288
+ ldr r0, _08002284 @ =0x0000021D
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ movs r0, #0x87
+ lsls r0, r0, #2
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #0x1f
+ bls _080022FE
+ strb r2, [r1]
+ b _080022FE
+ .align 2, 0
+_08002278: .4byte 0x0202BF20
+_0800227C: .4byte 0x0400012A
+_08002280: .4byte 0x02002825
+_08002284: .4byte 0x0000021D
+_08002288:
+ movs r0, #0
+ strb r0, [r1]
+ b _080022FE
+_0800228E:
+ ldr r1, _080022B0 @ =0x02002825
+ cmp r2, #0
+ bne _080022A2
+ ldr r2, _080022B4 @ =0x0000021D
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _080022A2
+ movs r0, #1
+ strb r0, [r1]
+_080022A2:
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _080022BC
+ ldr r1, _080022B8 @ =0x0400012A
+ movs r0, #0
+ strh r0, [r1]
+ b _080022D8
+ .align 2, 0
+_080022B0: .4byte 0x02002825
+_080022B4: .4byte 0x0000021D
+_080022B8: .4byte 0x0400012A
+_080022BC:
+ ldr r2, _08002300 @ =0x0400012A
+ movs r1, #0x87
+ lsls r1, r1, #2
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ lsls r1, r1, #1
+ ldrb r0, [r3, #0x18]
+ lsls r0, r0, #6
+ adds r1, r1, r0
+ adds r0, r3, #0
+ adds r0, #0x1c
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+_080022D8:
+ ldrb r0, [r3, #0xe]
+ cmp r0, #0
+ bne _080022F8
+ ldrb r0, [r3, #0x18]
+ cmp r0, #0
+ bne _080022F8
+ ldr r2, _08002304 @ =0x00000621
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _080022F8
+ ldr r0, _08002300 @ =0x0400012A
+ ldrh r1, [r0]
+ movs r2, #1
+ orrs r1, r2
+ strh r1, [r0]
+_080022F8:
+ ldrb r0, [r3, #0x18]
+ adds r0, #1
+ strb r0, [r3, #0x18]
+_080022FE:
+ bx lr
+ .align 2, 0
+_08002300: .4byte 0x0400012A
+_08002304: .4byte 0x00000621
+
+ thumb_func_start sub_2308
+sub_2308: @ 0x08002308
+ ldr r0, _08002324 @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08002322
+ ldr r2, _08002328 @ =0x0400010E
+ ldrh r1, [r2]
+ ldr r0, _0800232C @ =0x0000FF7F
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _08002330 @ =0x0400010C
+ ldr r2, _08002334 @ =0x0000FF3B
+ adds r0, r2, #0
+ strh r0, [r1]
+_08002322:
+ bx lr
+ .align 2, 0
+_08002324: .4byte 0x0202BF20
+_08002328: .4byte 0x0400010E
+_0800232C: .4byte 0x0000FF7F
+_08002330: .4byte 0x0400010C
+_08002334: .4byte 0x0000FF3B
+
+ thumb_func_start sub_2338
+sub_2338: @ 0x08002338
+ ldr r1, _08002348 @ =0x0202BF20
+ ldrb r0, [r1, #0x19]
+ cmp r0, #8
+ bne _0800234C
+ movs r0, #0
+ strb r0, [r1, #0x18]
+ strb r0, [r1, #0x19]
+ b _0800235C
+ .align 2, 0
+_08002348: .4byte 0x0202BF20
+_0800234C:
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _0800235C
+ ldr r0, _08002360 @ =0x0400010E
+ ldrh r1, [r0]
+ movs r2, #0x80
+ orrs r1, r2
+ strh r1, [r0]
+_0800235C:
+ bx lr
+ .align 2, 0
+_08002360: .4byte 0x0400010E
+
+ thumb_func_start sub_2364
+sub_2364: @ 0x08002364
+ push {r4, r5, lr}
+ ldr r1, _080023A8 @ =0x0202BF20
+ ldr r2, _080023AC @ =0x0000021D
+ adds r0, r1, r2
+ movs r2, #0
+ strb r2, [r0]
+ movs r3, #0x87
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ strb r2, [r0]
+ movs r0, #0
+ adds r5, r1, #0
+ adds r5, #0x1c
+ ldr r4, _080023B0 @ =0x0000EFFF
+_08002380:
+ movs r2, #0
+ adds r1, r0, #1
+ lsls r3, r0, #6
+_08002386:
+ lsls r0, r2, #1
+ adds r0, r0, r3
+ adds r0, r0, r5
+ strh r4, [r0]
+ adds r0, r2, #1
+ lsls r0, r0, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, #0x1f
+ bls _08002386
+ lsls r0, r1, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #7
+ bls _08002380
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080023A8: .4byte 0x0202BF20
+_080023AC: .4byte 0x0000021D
+_080023B0: .4byte 0x0000EFFF
+
+ thumb_func_start sub_23B4
+sub_23B4: @ 0x080023B4
+ push {r4, r5, r6, r7, lr}
+ ldr r1, _08002408 @ =0x0202BF20
+ ldr r2, _0800240C @ =0x00000621
+ adds r0, r1, r2
+ movs r2, #0
+ strb r2, [r0]
+ movs r3, #0xc4
+ lsls r3, r3, #3
+ adds r0, r1, r3
+ strb r2, [r0]
+ movs r0, #0x88
+ lsls r0, r0, #2
+ adds r7, r1, r0
+ ldr r6, _08002410 @ =0x0000EFFF
+_080023D0:
+ movs r0, #0
+ adds r5, r2, #1
+ lsls r4, r2, #9
+_080023D6:
+ movs r2, #0
+ adds r1, r0, #1
+ lsls r3, r0, #6
+_080023DC:
+ lsls r0, r2, #1
+ adds r0, r0, r3
+ adds r0, r0, r4
+ adds r0, r0, r7
+ strh r6, [r0]
+ adds r0, r2, #1
+ lsls r0, r0, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, #0x1f
+ bls _080023DC
+ lsls r0, r1, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #7
+ bls _080023D6
+ lsls r0, r5, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, #1
+ bls _080023D0
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002408: .4byte 0x0202BF20
+_0800240C: .4byte 0x00000621
+_08002410: .4byte 0x0000EFFF
+
+ thumb_func_start sub_2414
+sub_2414: @ 0x08002414
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0xc
+ str r0, [sp]
+ str r2, [sp, #8]
+ lsls r1, r1, #0x10
+ lsrs r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, _080024CC @ =0x03005000
+ movs r7, #0
+ ldr r0, _080024D0 @ =0x08057C46
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r1, r4, #0
+ bl CpuSet
+ movs r1, #0
+ ldr r0, [sp, #4]
+ cmp r7, r0
+ bhs _080024B8
+_08002442:
+ movs r0, #0xb8
+ muls r0, r1, r0
+ ldr r2, [sp, #8]
+ adds r6, r2, r0
+ ldrh r0, [r6]
+ adds r2, r1, #1
+ mov sl, r2
+ cmp r0, #0
+ beq _080024AC
+ lsls r0, r1, #2
+ ldr r1, [sp]
+ adds r0, r0, r1
+ ldr r0, [r0]
+ ldrh r5, [r0]
+ adds r0, #2
+ lsls r1, r7, #3
+ ldr r4, _080024CC @ =0x03005000
+ adds r1, r1, r4
+ lsls r2, r5, #2
+ bl CpuSet
+ movs r3, #0
+ cmp r3, r5
+ bhs _080024AC
+ mov r8, r4
+ ldr r2, _080024D4 @ =0x000001FF
+ mov sb, r2
+ movs r0, #0xff
+ mov ip, r0
+_0800247C:
+ adds r2, r7, #0
+ lsls r0, r2, #3
+ mov r1, r8
+ adds r4, r0, r1
+ lsls r1, r3, #3
+ adds r1, #8
+ adds r1, r6, r1
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ strh r2, [r1]
+ ldrh r2, [r4, #2]
+ mov r0, sb
+ ands r0, r2
+ strh r0, [r1, #2]
+ ldrh r2, [r4]
+ mov r0, ip
+ ands r0, r2
+ strh r0, [r1, #4]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, r5
+ blo _0800247C
+_080024AC:
+ mov r2, sl
+ lsls r0, r2, #0x10
+ lsrs r1, r0, #0x10
+ ldr r0, [sp, #4]
+ cmp r1, r0
+ blo _08002442
+_080024B8:
+ lsls r0, r7, #0x10
+ asrs r0, r0, #0x10
+ add sp, #0xc
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080024CC: .4byte 0x03005000
+_080024D0: .4byte 0x08057C46
+_080024D4: .4byte 0x000001FF
+
+ thumb_func_start nullsub_16
+nullsub_16: @ 0x080024D8
+ bx lr
+
+ thumb_func_start sub_24DC
+sub_24DC: @ 0x080024DC
+ ldr r1, _08002504 @ =0x04000134
+ movs r0, #0
+ strh r0, [r1]
+ subs r1, #0xc
+ strh r0, [r1]
+ ldr r2, _08002508 @ =0x0400012A
+ strh r0, [r2]
+ subs r1, #8
+ strh r0, [r1]
+ strh r0, [r2]
+ strh r0, [r1]
+ strh r0, [r1]
+ adds r1, #2
+ strh r0, [r1]
+ adds r1, #2
+ strh r0, [r1]
+ adds r1, #2
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08002504: .4byte 0x04000134
+_08002508: .4byte 0x0400012A
+
+ thumb_func_start sub_250C
+sub_250C: @ 0x0800250C
+ ldr r2, _08002528 @ =0x04000208
+ movs r0, #0
+ strh r0, [r2]
+ ldr r1, _0800252C @ =0x04000200
+ ldr r3, _08002530 @ =0x00002001
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldr r1, _08002534 @ =0x04000004
+ movs r0, #8
+ strh r0, [r1]
+ movs r0, #1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_08002528: .4byte 0x04000208
+_0800252C: .4byte 0x04000200
+_08002530: .4byte 0x00002001
+_08002534: .4byte 0x04000004
+
+ thumb_func_start sub_2538
+sub_2538: @ 0x08002538
+ ldr r0, _08002554 @ =0x0202ADD0
+ movs r1, #0
+ str r1, [r0]
+ ldr r0, _08002558 @ =0x0201A444
+ movs r2, #0
+ strh r1, [r0]
+ ldr r0, _0800255C @ =0x0202BDF0
+ str r1, [r0]
+ ldr r0, _08002560 @ =0x0201C1AC
+ strb r2, [r0]
+ ldr r0, _08002564 @ =0x0202ADDC
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_08002554: .4byte 0x0202ADD0
+_08002558: .4byte 0x0201A444
+_0800255C: .4byte 0x0202BDF0
+_08002560: .4byte 0x0201C1AC
+_08002564: .4byte 0x0202ADDC
+
+ thumb_func_start sub_2568
+sub_2568: @ 0x08002568
+ push {r4, lr}
+ bl sub_24DC
+ ldr r4, _08002594 @ =0x04000208
+ movs r0, #0
+ strh r0, [r4]
+ bl sub_8BC
+ bl sub_8FC
+ ldr r1, _08002598 @ =0x04000200
+ ldr r2, _0800259C @ =0x00002005
+ adds r0, r2, #0
+ strh r0, [r1]
+ ldr r1, _080025A0 @ =0x04000004
+ movs r0, #0x28
+ strh r0, [r1]
+ movs r0, #1
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002594: .4byte 0x04000208
+_08002598: .4byte 0x04000200
+_0800259C: .4byte 0x00002005
+_080025A0: .4byte 0x04000004
diff --git a/asm/rom_25A4.s b/asm/rom_25A4.s
new file mode 100755
index 0000000..c503c9e
--- /dev/null
+++ b/asm/rom_25A4.s
@@ -0,0 +1,810 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_25A4_Main
+sub_25A4_Main: @ 0x080025A4
+ push {lr}
+ ldr r1, _080025BC @ =0x0805C750
+ ldr r0, _080025C0 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080025BC: .4byte 0x0805C750
+_080025C0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_25C4
+sub_25C4: @ 0x080025C4
+ push {r4, lr}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _080026A8 @ =0x04000008
+ movs r0, #5
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080026AC @ =0x0400000A
+ adds r3, #6
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r3, #0xfa
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080026B0 @ =0x0400000C
+ adds r3, #0xb
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080026B4 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r4, #0x16]
+ ldr r0, _080026B8 @ =0x040000D4
+ ldr r1, _080026BC @ =0x0807C2E0
+ str r1, [r0]
+ movs r1, #0xa0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r1, _080026C0 @ =0x80000100
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _080026C4 @ =gFieldSelectWindow_Gfx
+ str r1, [r0]
+ ldr r1, _080026C8 @ =0x06004000
+ str r1, [r0, #4]
+ ldr r1, _080026CC @ =0x80002000
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _080026D0 @ =0x0807C4E0
+ str r1, [r0]
+ ldr r1, _080026D4 @ =0x06008000
+ str r1, [r0, #4]
+ ldr r1, _080026D8 @ =0x80000C00
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _080026DC @ =0x0807AAE0
+ str r1, [r0]
+ movs r1, #0xc0
+ lsls r1, r1, #0x13
+ str r1, [r0, #4]
+ ldr r2, _080026E0 @ =0x80000400
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _080026E4 @ =0x0807B2E0
+ str r1, [r0]
+ ldr r1, _080026E8 @ =0x06000800
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _080026EC @ =0x0807BAE0
+ str r1, [r0]
+ ldr r1, _080026F0 @ =0x06001000
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _080026F4 @ =gFieldSelectSpritePals
+ str r1, [r0]
+ ldr r1, _080026F8 @ =0x05000200
+ str r1, [r0, #4]
+ ldr r1, _080026FC @ =0x80000030
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08002700 @ =gFieldSelectSpriteGfx
+ str r1, [r0]
+ ldr r1, _08002704 @ =0x06010000
+ str r1, [r0, #4]
+ ldr r1, _08002708 @ =0x80002010
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ bl sub_CBC
+ bl sub_2710
+ ldr r0, _0800270C @ =sub_29C8 + 1
+ bl sub_FD5C
+ movs r0, #3
+ bl m4aSongNumStart
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080026A8: .4byte 0x04000008
+_080026AC: .4byte 0x0400000A
+_080026B0: .4byte 0x0400000C
+_080026B4: .4byte 0x0200B0C0
+_080026B8: .4byte 0x040000D4
+_080026BC: .4byte 0x0807C2E0
+_080026C0: .4byte 0x80000100
+_080026C4: .4byte gFieldSelectWindow_Gfx
+_080026C8: .4byte 0x06004000
+_080026CC: .4byte 0x80002000
+_080026D0: .4byte 0x0807C4E0
+_080026D4: .4byte 0x06008000
+_080026D8: .4byte 0x80000C00
+_080026DC: .4byte 0x0807AAE0
+_080026E0: .4byte 0x80000400
+_080026E4: .4byte 0x0807B2E0
+_080026E8: .4byte 0x06000800
+_080026EC: .4byte 0x0807BAE0
+_080026F0: .4byte 0x06001000
+_080026F4: .4byte gFieldSelectSpritePals
+_080026F8: .4byte 0x05000200
+_080026FC: .4byte 0x80000030
+_08002700: .4byte gFieldSelectSpriteGfx
+_08002704: .4byte 0x06010000
+_08002708: .4byte 0x80002010
+_0800270C: .4byte sub_29C8 + 1
+
+ thumb_func_start sub_2710
+sub_2710: @ 0x08002710
+ ldr r0, _08002740 @ =0x0201A4F8
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _08002744 @ =0x0202BED0
+ strb r1, [r0]
+ ldr r0, _08002748 @ =0x0202A560
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _0800274C @ =0x0202BE1C
+ strh r1, [r0]
+ ldr r0, _08002750 @ =0x0202BEE8
+ strb r1, [r0]
+ ldr r0, _08002754 @ =0x0201A4F4
+ strh r1, [r0]
+ ldr r0, _08002758 @ =0x0201A4B0
+ strb r1, [r0]
+ ldr r0, _0800275C @ =0x0202BEE4
+ strb r1, [r0]
+ ldr r1, _08002760 @ =0x0201A4C0
+ ldr r0, _08002764 @ =0x0200B134
+ adds r0, #0xce
+ ldrb r0, [r0]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08002740: .4byte 0x0201A4F8
+_08002744: .4byte 0x0202BED0
+_08002748: .4byte 0x0202A560
+_0800274C: .4byte 0x0202BE1C
+_08002750: .4byte 0x0202BEE8
+_08002754: .4byte 0x0201A4F4
+_08002758: .4byte 0x0201A4B0
+_0800275C: .4byte 0x0202BEE4
+_08002760: .4byte 0x0201A4C0
+_08002764: .4byte 0x0200B134
+
+ thumb_func_start sub_2768
+sub_2768: @ 0x08002768
+ push {r4, r5, r6, lr}
+ bl sub_29C8
+ ldr r6, _08002784 @ =0x0202BED0
+ movs r4, #0
+ ldrsb r4, [r6, r4]
+ cmp r4, #1
+ bne _0800277A
+ b _08002884
+_0800277A:
+ cmp r4, #1
+ bgt _08002788
+ cmp r4, #0
+ beq _08002790
+ b _0800296E
+ .align 2, 0
+_08002784: .4byte 0x0202BED0
+_08002788:
+ cmp r4, #2
+ bne _0800278E
+ b _0800291C
+_0800278E:
+ b _0800296E
+_08002790:
+ ldr r0, _080027B8 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _080027C0
+ ldr r4, _080027BC @ =0x0201A4F8
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ beq _080027E2
+ cmp r0, #3
+ beq _080027E2
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ ldrb r0, [r4]
+ subs r0, #1
+ b _080027E0
+ .align 2, 0
+_080027B8: .4byte 0x0200B0C0
+_080027BC: .4byte 0x0201A4F8
+_080027C0:
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _080027E2
+ ldr r4, _08002804 @ =0x0201A4F8
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ beq _080027E2
+ cmp r0, #5
+ beq _080027E2
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ ldrb r0, [r4]
+ adds r0, #1
+_080027E0:
+ strb r0, [r4]
+_080027E2:
+ ldr r0, _08002808 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0800280C
+ ldr r4, _08002804 @ =0x0201A4F8
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _0800282A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ ldrb r0, [r4]
+ subs r0, #3
+ b _08002828
+ .align 2, 0
+_08002804: .4byte 0x0201A4F8
+_08002808: .4byte 0x0200B0C0
+_0800280C:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0800282A
+ ldr r4, _0800286C @ =0x0201A4F8
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ bgt _0800282A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ ldrb r0, [r4]
+ adds r0, #3
+_08002828:
+ strb r0, [r4]
+_0800282A:
+ ldr r4, _08002870 @ =0x0200B0C0
+ ldrh r1, [r4, #0x18]
+ movs r5, #1
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800284C
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r0, _08002874 @ =0x0202BED0
+ strb r5, [r0]
+ ldr r0, _08002878 @ =0x0201A4B0
+ strb r5, [r0]
+ ldr r1, _0800287C @ =0x0202A560
+ movs r0, #0
+ strh r0, [r1]
+_0800284C:
+ ldrh r1, [r4, #0x18]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ bne _08002858
+ b _0800296E
+_08002858:
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _08002880 @ =0x0202BEE4
+ strb r5, [r0]
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+ b _0800296E
+ .align 2, 0
+_0800286C: .4byte 0x0201A4F8
+_08002870: .4byte 0x0200B0C0
+_08002874: .4byte 0x0202BED0
+_08002878: .4byte 0x0201A4B0
+_0800287C: .4byte 0x0202A560
+_08002880: .4byte 0x0202BEE4
+_08002884:
+ ldr r5, _08002904 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r0, #0x30
+ ands r0, r1
+ cmp r0, #0
+ beq _080028A0
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldr r2, _08002908 @ =0x0201A4C0
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_080028A0:
+ ldrh r0, [r5, #0x18]
+ ands r4, r0
+ cmp r4, #0
+ beq _080028CC
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r0, _0800290C @ =0x0202A560
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _08002910 @ =0x0202BE1C
+ strh r1, [r0]
+ ldr r0, _08002908 @ =0x0201A4C0
+ ldrb r0, [r0]
+ movs r2, #0xa1
+ lsls r2, r2, #1
+ adds r1, r5, r2
+ strb r0, [r1]
+ bl sub_52B30
+ movs r0, #2
+ strb r0, [r6]
+_080028CC:
+ ldrh r1, [r5, #0x18]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _080028E4
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r1, _08002914 @ =0x0201A4B0
+ movs r0, #0
+ strb r0, [r1]
+ strb r0, [r6]
+_080028E4:
+ ldr r1, _0800290C @ =0x0202A560
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0800296E
+ movs r0, #0
+ strh r0, [r1]
+ ldr r2, _08002918 @ =0x0201A4F4
+ ldrh r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2]
+ b _0800296E
+ .align 2, 0
+_08002904: .4byte 0x0200B0C0
+_08002908: .4byte 0x0201A4C0
+_0800290C: .4byte 0x0202A560
+_08002910: .4byte 0x0202BE1C
+_08002914: .4byte 0x0201A4B0
+_08002918: .4byte 0x0201A4F4
+_0800291C:
+ ldr r1, _08002974 @ =0x0202A560
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #5
+ ble _0800296E
+ movs r3, #0
+ strh r3, [r1]
+ ldr r2, _08002978 @ =0x0202BEE8
+ ldrb r1, [r2]
+ movs r0, #2
+ subs r0, r0, r1
+ strb r0, [r2]
+ ldr r1, _0800297C @ =0x0202BE1C
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #5
+ ble _0800296E
+ ldr r1, _08002980 @ =0x0200B0C0
+ strb r3, [r1, #0xd]
+ ldr r2, _08002984 @ =0x086A4CF0
+ ldr r0, _08002988 @ =0x0201A4F8
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, #4]
+ strb r0, [r1, #5]
+ movs r0, #1
+ strb r0, [r1, #6]
+ ldr r0, _0800298C @ =0x0202BEE4
+ strb r4, [r0]
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+_0800296E:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002974: .4byte 0x0202A560
+_08002978: .4byte 0x0202BEE8
+_0800297C: .4byte 0x0202BE1C
+_08002980: .4byte 0x0200B0C0
+_08002984: .4byte 0x086A4CF0
+_08002988: .4byte 0x0201A4F8
+_0800298C: .4byte 0x0202BEE4
+
+ thumb_func_start sub_2990
+sub_2990: @ 0x08002990
+ push {lr}
+ ldr r0, _080029BC @ =sub_29C8 + 1
+ bl sub_FE04
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _080029C0 @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, _080029C4 @ =0x0202BEE4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080029BC: .4byte sub_29C8 + 1
+_080029C0: .4byte 0x0201A4B4
+_080029C4: .4byte 0x0202BEE4
+
+ thumb_func_start sub_29C8
+sub_29C8: @ 0x080029C8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x18
+ ldr r1, _08002C14 @ =0x0200B0C0
+ ldrh r0, [r1, #0x38]
+ ldr r0, _08002C18 @ =0x00000C14
+ strh r0, [r1, #0x38]
+ ldrh r0, [r1, #0x3a]
+ ldr r0, _08002C1C @ =0x00000808
+ strh r0, [r1, #0x3a]
+ ldr r2, _08002C20 @ =0x04000050
+ ldrh r0, [r1, #0x38]
+ strh r0, [r2]
+ adds r2, #2
+ ldrh r0, [r1, #0x3a]
+ strh r0, [r2]
+ ldr r7, _08002C24 @ =0x0201A4F8
+ movs r0, #0xe9
+ lsls r0, r0, #3
+ adds r3, r1, r0
+ ldr r4, _08002C28 @ =0x0201A4C0
+ ldr r5, _08002C2C @ =0x0201A4F4
+ ldr r2, _08002C30 @ =0x0201A4B0
+ mov sb, r2
+ ldr r0, _08002C34 @ =0x086A4C80
+ mov ip, r0
+ movs r2, #0xd2
+ lsls r2, r2, #3
+ adds r1, r1, r2
+ add r0, sp, #0x14
+_08002A0A:
+ str r1, [r0]
+ subs r1, #0xb8
+ subs r0, #4
+ cmp r0, sp @ warning: use of r13 is deprecated
+ bge _08002A0A
+ movs r0, #0
+ ldrsb r0, [r7, r0]
+ movs r2, #0xb8
+ muls r0, r2, r0
+ adds r0, r0, r3
+ mov sl, r0
+ ldrb r1, [r4]
+ lsls r1, r1, #1
+ movs r4, #0
+ ldrsh r0, [r5, r4]
+ adds r0, #0xc
+ adds r1, r1, r0
+ muls r1, r2, r1
+ ldr r2, _08002C38 @ =0xFFFFFBB0
+ adds r0, r3, r2
+ adds r1, r1, r0
+ mov r8, r1
+ movs r2, #1
+ mov r1, sp
+ movs r6, #5
+_08002A3C:
+ ldm r1!, {r0}
+ strh r2, [r0]
+ subs r6, #1
+ cmp r6, #0
+ bge _08002A3C
+ movs r0, #0
+ ldrsb r0, [r7, r0]
+ lsls r0, r0, #2
+ add r0, sp
+ ldr r1, [r0]
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #1
+ mov r3, sl
+ strh r0, [r3]
+ mov r4, sb
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ mov r7, r8
+ strh r0, [r7]
+ mov r0, ip
+ movs r1, #0x10
+ ldr r2, _08002C3C @ =0x0200B3B8
+ bl sub_358
+ movs r1, #0
+_08002A70:
+ lsls r2, r1, #2
+ mov r0, sp
+ adds r4, r0, r2
+ ldr r3, [r4]
+ ldrh r0, [r3]
+ adds r1, #1
+ mov sb, r1
+ cmp r0, #1
+ bne _08002AEC
+ ldr r1, _08002C40 @ =0x086A4CC0
+ adds r1, r2, r1
+ ldrh r0, [r1]
+ strh r0, [r3, #2]
+ ldr r2, [r4]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #4]
+ adds r5, r4, #0
+ ldr r1, _08002C44 @ =0x03005000
+ mov ip, r1
+ movs r7, #8
+ movs r6, #3
+_08002A9A:
+ ldr r4, [r5]
+ adds r4, r4, r7
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrb r1, [r2, #1]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ add r2, ip
+ movs r3, #2
+ ldrsh r1, [r4, r3]
+ ldr r0, [r5]
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ adds r1, r1, r0
+ ldr r3, _08002C48 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08002C4C @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r5]
+ ldrb r0, [r0, #4]
+ ldrb r4, [r4, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ adds r7, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _08002A9A
+_08002AEC:
+ mov r1, sb
+ cmp r1, #5
+ ble _08002A70
+ movs r0, #0x58
+ mov r4, sl
+ strh r0, [r4, #2]
+ movs r0, #0x85
+ strh r0, [r4, #4]
+ ldr r5, _08002C44 @ =0x03005000
+ movs r7, #0xd
+ rsbs r7, r7, #0
+ mov sb, r7
+ ldr r0, _08002C4C @ =0xFFFFFE00
+ mov ip, r0
+ adds r4, #8
+ movs r6, #1
+_08002B0C:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r2, [r1, #1]
+ mov r0, sb
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldr r3, _08002C50 @ =0x0202BEE8
+ ldrb r1, [r3]
+ lsls r1, r1, #4
+ ldrb r3, [r2, #5]
+ movs r0, #0xf
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ mov r2, sl
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08002C48 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ mov r3, sl
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _08002B0C
+ mov r1, r8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08002BEA
+ ldr r2, _08002C54 @ =0x086A4CD8
+ ldr r1, _08002C24 @ =0x0201A4F8
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ mov r3, r8
+ strh r0, [r3, #2]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0, #2]
+ strh r0, [r3, #4]
+ ldr r5, _08002C44 @ =0x03005000
+ movs r4, #0xd
+ rsbs r4, r4, #0
+ mov sb, r4
+ ldr r7, _08002C4C @ =0xFFFFFE00
+ mov ip, r7
+ mov r4, r8
+ adds r4, #8
+ movs r6, #4
+_08002BA2:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r2, [r1, #1]
+ mov r0, sb
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ mov r2, r8
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08002C48 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ mov r3, r8
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _08002BA2
+_08002BEA:
+ movs r2, #0
+ mov r1, sp
+ movs r6, #5
+_08002BF0:
+ ldm r1!, {r0}
+ strh r2, [r0]
+ subs r6, #1
+ cmp r6, #0
+ bge _08002BF0
+ movs r0, #0
+ mov r1, sl
+ strh r0, [r1]
+ mov r2, r8
+ strh r0, [r2]
+ add sp, #0x18
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002C14: .4byte 0x0200B0C0
+_08002C18: .4byte 0x00000C14
+_08002C1C: .4byte 0x00000808
+_08002C20: .4byte 0x04000050
+_08002C24: .4byte 0x0201A4F8
+_08002C28: .4byte 0x0201A4C0
+_08002C2C: .4byte 0x0201A4F4
+_08002C30: .4byte 0x0201A4B0
+_08002C34: .4byte 0x086A4C80
+_08002C38: .4byte 0xFFFFFBB0
+_08002C3C: .4byte 0x0200B3B8
+_08002C40: .4byte 0x086A4CC0
+_08002C44: .4byte 0x03005000
+_08002C48: .4byte 0x000001FF
+_08002C4C: .4byte 0xFFFFFE00
+_08002C50: .4byte 0x0202BEE8
+_08002C54: .4byte 0x086A4CD8
diff --git a/asm/rom_2C58.s b/asm/rom_2C58.s
new file mode 100755
index 0000000..20a2956
--- /dev/null
+++ b/asm/rom_2C58.s
@@ -0,0 +1,2085 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start EReaderMain
+EReaderMain: @ 0x08002C58
+ push {lr}
+ ldr r1, _08002C70 @ =0x0805C75C
+ ldr r0, _08002C74 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002C70: .4byte 0x0805C75C
+_08002C74: .4byte 0x0200B0C0
+
+ thumb_func_start sub_2C78
+sub_2C78: @ 0x08002C78
+ push {r4, r5, r6, lr}
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x86
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _08002D80 @ =0x04000008
+ movs r0, #4
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08002D84 @ =0x0400000A
+ adds r3, #5
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r3, #0xfb
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r6, _08002D88 @ =0x0200B0C0
+ movs r0, #0xba
+ lsls r0, r0, #2
+ adds r1, r6, r0
+ movs r5, #0
+ ldr r0, _08002D8C @ =0x0000FFE8
+ strh r0, [r1]
+ adds r3, #0xea
+ adds r1, r6, r3
+ subs r0, #0x48
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r6, #0x16]
+ ldr r4, _08002D90 @ =0x040000D4
+ ldr r0, _08002D94 @ =0x08081D20
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08002D98 @ =0x80000020
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08002D9C @ =0x080897E0
+ str r0, [r4]
+ ldr r0, _08002DA0 @ =0x05000040
+ str r0, [r4, #4]
+ ldr r0, _08002DA4 @ =0x80000010
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08002DA8 @ =0x08080500
+ str r0, [r4]
+ ldr r0, _08002DAC @ =0x03000000
+ mov r8, r0
+ str r0, [r4, #4]
+ ldr r1, _08002DB0 @ =0x80001800
+ mov sb, r1
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08002DB4 @ =0x0807DD00
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08002DB8 @ =0x80000400
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08002DBC @ =0x0807FD00
+ str r0, [r4]
+ ldr r0, _08002DC0 @ =0x06000800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08002DC4 @ =0x08089960
+ str r0, [r4]
+ ldr r0, _08002DC8 @ =0x05000200
+ str r0, [r4, #4]
+ ldr r0, _08002DCC @ =0x80000060
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08002DD0 @ =0x08089B60
+ str r0, [r4]
+ ldr r0, _08002DD4 @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _08002DD8 @ =0x80003610
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_2DF0
+ ldr r0, _08002DDC @ =0x0202C604
+ strb r5, [r0]
+ ldr r0, _08002DE0 @ =0x0202A580
+ strb r5, [r0]
+ ldr r0, _08002DE4 @ =0x0202C5A4
+ strb r5, [r0]
+ ldr r0, _08002DE8 @ =0x0202AD90
+ strb r5, [r0]
+ bl sub_377C
+ mov r3, r8
+ str r3, [r4]
+ ldr r0, _08002DEC @ =0x06004000
+ str r0, [r4, #4]
+ mov r0, sb
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_394C
+ movs r0, #5
+ bl m4aSongNumStart
+ bl sub_CBC
+ bl sub_24C
+ movs r0, #1
+ strb r0, [r6, #3]
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002D80: .4byte 0x04000008
+_08002D84: .4byte 0x0400000A
+_08002D88: .4byte 0x0200B0C0
+_08002D8C: .4byte 0x0000FFE8
+_08002D90: .4byte 0x040000D4
+_08002D94: .4byte 0x08081D20
+_08002D98: .4byte 0x80000020
+_08002D9C: .4byte 0x080897E0
+_08002DA0: .4byte 0x05000040
+_08002DA4: .4byte 0x80000010
+_08002DA8: .4byte 0x08080500
+_08002DAC: .4byte 0x03000000
+_08002DB0: .4byte 0x80001800
+_08002DB4: .4byte 0x0807DD00
+_08002DB8: .4byte 0x80000400
+_08002DBC: .4byte 0x0807FD00
+_08002DC0: .4byte 0x06000800
+_08002DC4: .4byte 0x08089960
+_08002DC8: .4byte 0x05000200
+_08002DCC: .4byte 0x80000060
+_08002DD0: .4byte 0x08089B60
+_08002DD4: .4byte 0x06010000
+_08002DD8: .4byte 0x80003610
+_08002DDC: .4byte 0x0202C604
+_08002DE0: .4byte 0x0202A580
+_08002DE4: .4byte 0x0202C5A4
+_08002DE8: .4byte 0x0202AD90
+_08002DEC: .4byte 0x06004000
+
+ thumb_func_start sub_2DF0
+sub_2DF0: @ 0x08002DF0
+ ldr r0, _08002E1C @ =0x0202A58C
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _08002E20 @ =0x0202C584
+ strb r1, [r0]
+ ldr r2, _08002E24 @ =0x0202BEC0
+ movs r0, #4
+ strb r0, [r2]
+ ldr r0, _08002E28 @ =0x0201B174
+ strb r1, [r0]
+ ldr r0, _08002E2C @ =0x0202C5A0
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _08002E30 @ =0x0201A44C
+ strh r1, [r0]
+ ldr r0, _08002E34 @ =0x0202BEF8
+ strb r1, [r0]
+ ldr r0, _08002E38 @ =0x0200282C
+ strb r1, [r0]
+ ldr r0, _08002E3C @ =0x0200282D
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_08002E1C: .4byte 0x0202A58C
+_08002E20: .4byte 0x0202C584
+_08002E24: .4byte 0x0202BEC0
+_08002E28: .4byte 0x0201B174
+_08002E2C: .4byte 0x0202C5A0
+_08002E30: .4byte 0x0201A44C
+_08002E34: .4byte 0x0202BEF8
+_08002E38: .4byte 0x0200282C
+_08002E3C: .4byte 0x0200282D
+
+ thumb_func_start sub_2E40
+sub_2E40: @ 0x08002E40
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _08002E84 @ =0x0202C604
+ ldr r2, _08002E88 @ =0x086A551A
+ ldr r3, _08002E8C @ =0x0202AD90
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bgt _08002E94
+ ldr r1, _08002E90 @ =0x0202A580
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ ble _08002EF0
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ bl sub_3828
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ b _08002EF0
+ .align 2, 0
+_08002E84: .4byte 0x0202C604
+_08002E88: .4byte 0x086A551A
+_08002E8C: .4byte 0x0202AD90
+_08002E90: .4byte 0x0202A580
+_08002E94:
+ ldr r1, _08002ECC @ =0x0202A580
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #6
+ ble _08002EF0
+ movs r0, #0
+ strb r0, [r1]
+ ldr r0, _08002ED0 @ =0x0202C5A4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08002ED4
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r1, #0xea
+ lsls r1, r1, #6
+ bl sub_38A0
+ b _08002EE6
+ .align 2, 0
+_08002ECC: .4byte 0x0202A580
+_08002ED0: .4byte 0x0202C5A4
+_08002ED4:
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r1, #0
+ bl sub_38A0
+_08002EE6:
+ ldr r2, _08002F2C @ =0x0202C5A4
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_08002EF0:
+ ldr r7, _08002F30 @ =0x0200B0C0
+ ldrh r1, [r7, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08002F78
+ ldr r5, _08002F34 @ =0x0202C604
+ ldr r6, _08002F38 @ =0x086A551A
+ ldr r4, _08002F3C @ =0x0202AD90
+ movs r2, #0
+ ldrsb r2, [r4, r2]
+ adds r0, r2, r6
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bgt _08002F40
+ adds r0, r2, #0
+ bl sub_37B4
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ adds r0, #1
+ strb r0, [r5]
+ b _08002F90
+ .align 2, 0
+_08002F2C: .4byte 0x0202C5A4
+_08002F30: .4byte 0x0200B0C0
+_08002F34: .4byte 0x0202C604
+_08002F38: .4byte 0x086A551A
+_08002F3C: .4byte 0x0202AD90
+_08002F40:
+ ldr r0, _08002F54 @ =0x086A5528
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08002F58
+ movs r0, #2
+ b _08002F8E
+ .align 2, 0
+_08002F54: .4byte 0x086A5528
+_08002F58:
+ bl sub_377C
+ movs r1, #0
+ strb r1, [r5]
+ ldr r0, _08002F70 @ =0x0202A580
+ strb r1, [r0]
+ ldr r0, _08002F74 @ =0x0202C5A4
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ b _08002F90
+ .align 2, 0
+_08002F70: .4byte 0x0202A580
+_08002F74: .4byte 0x0202C5A4
+_08002F78:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08002F90
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _08002FAC @ =0x0202BEF8
+ movs r1, #1
+ strb r1, [r0]
+ movs r0, #8
+_08002F8E:
+ strb r0, [r7, #3]
+_08002F90:
+ bl sub_394C
+ ldr r1, _08002FB0 @ =0x040000D4
+ ldr r0, _08002FB4 @ =0x03000000
+ str r0, [r1]
+ ldr r0, _08002FB8 @ =0x06004000
+ str r0, [r1, #4]
+ ldr r0, _08002FBC @ =0x80001800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08002FAC: .4byte 0x0202BEF8
+_08002FB0: .4byte 0x040000D4
+_08002FB4: .4byte 0x03000000
+_08002FB8: .4byte 0x06004000
+_08002FBC: .4byte 0x80001800
+
+ thumb_func_start sub_2FC0
+sub_2FC0: @ 0x08002FC0
+ push {r4, r5, lr}
+ ldr r4, _0800302C @ =0x0202C5A0
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ ldr r2, _08003030 @ =0x086A550C
+ ldr r3, _08003034 @ =0x0201B174
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ lsls r1, r1, #1
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r2, #0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _08003012
+ movs r5, #0
+ strh r5, [r4]
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #6
+ bne _08003012
+ bl sub_19B4
+ bl sub_3C1C
+ ldr r0, _08003038 @ =0x0201B124
+ strb r5, [r0]
+ ldr r1, _0800303C @ =0x0202C584
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #0x76
+ bl m4aSongNumStart
+ ldr r1, _08003040 @ =0x0200B0C0
+ movs r0, #3
+ strb r0, [r1, #3]
+_08003012:
+ ldr r1, _08003044 @ =0x0202A58C
+ movs r0, #0
+ strb r0, [r1]
+ ldr r1, _08003048 @ =0x0202BEC0
+ ldr r0, _08003034 @ =0x0201B174
+ ldrb r0, [r0]
+ adds r0, #4
+ strb r0, [r1]
+ bl sub_3AB4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800302C: .4byte 0x0202C5A0
+_08003030: .4byte 0x086A550C
+_08003034: .4byte 0x0201B174
+_08003038: .4byte 0x0201B124
+_0800303C: .4byte 0x0202C584
+_08003040: .4byte 0x0200B0C0
+_08003044: .4byte 0x0202A58C
+_08003048: .4byte 0x0202BEC0
+
+ thumb_func_start sub_304C
+sub_304C: @ 0x0800304C
+ push {r4, r5, lr}
+ bl sub_3AB4
+ ldr r5, _08003114 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08003076
+ bl sub_2568
+ bl sub_1AA4
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ movs r0, #0
+ strb r0, [r5, #3]
+_08003076:
+ ldr r4, _08003118 @ =0x0202ADD0
+ ldr r0, _0800311C @ =0x0202BEC8
+ ldr r1, _08003120 @ =0x0202C5F0
+ ldr r2, _08003124 @ =0x0201A4D0
+ bl sub_1B04
+ str r0, [r4]
+ ldr r1, _08003128 @ =0x0202BDF0
+ movs r3, #3
+ ands r3, r0
+ str r3, [r1]
+ ldr r2, _0800312C @ =0x0201C1AC
+ movs r1, #0x1c
+ ands r1, r0
+ lsrs r1, r1, #2
+ strb r1, [r2]
+ ldr r2, _08003130 @ =0x0202ADDC
+ movs r1, #0xe0
+ lsls r1, r1, #4
+ ands r1, r0
+ lsrs r1, r1, #9
+ strb r1, [r2]
+ movs r1, #0x40
+ ands r1, r0
+ cmp r1, #0
+ bne _080030AC
+ b _080031DC
+_080030AC:
+ cmp r3, #1
+ bls _080030B2
+ b _080031DC
+_080030B2:
+ bl sub_3C78
+ ldr r0, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0800316C
+ bl sub_3CD8
+ lsls r0, r0, #0x10
+ asrs r4, r0, #0x10
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r4, r0
+ bne _0800316C
+ bl sub_38F0
+ ldr r1, _08003134 @ =0x0201C184
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, r4
+ beq _0800313C
+ cmp r0, #4
+ bgt _0800313C
+ adds r3, r5, #0
+ adds r4, r1, #0
+ ldr r5, _08003138 @ =0x0201A44C
+ movs r2, #0
+ movs r1, #4
+ adds r0, r3, #0
+ adds r0, #0xb
+_080030F4:
+ strb r2, [r0]
+ subs r0, #1
+ subs r1, #1
+ cmp r1, #0
+ bge _080030F4
+ movs r0, #0
+ ldrsh r1, [r4, r0]
+ adds r0, r3, #7
+ adds r1, r1, r0
+ movs r2, #0
+ movs r0, #1
+ strb r0, [r1]
+ strh r2, [r5]
+ movs r0, #5
+ strb r0, [r3, #3]
+ b _0800316C
+ .align 2, 0
+_08003114: .4byte 0x0200B0C0
+_08003118: .4byte 0x0202ADD0
+_0800311C: .4byte 0x0202BEC8
+_08003120: .4byte 0x0202C5F0
+_08003124: .4byte 0x0201A4D0
+_08003128: .4byte 0x0202BDF0
+_0800312C: .4byte 0x0201C1AC
+_08003130: .4byte 0x0202ADDC
+_08003134: .4byte 0x0201C184
+_08003138: .4byte 0x0201A44C
+_0800313C:
+ ldr r0, _080031E4 @ =0x0201A44C
+ movs r2, #0
+ strh r2, [r0]
+ ldr r1, _080031E8 @ =0x0202A58C
+ movs r0, #2
+ strb r0, [r1]
+ ldr r1, _080031EC @ =0x0202BEC0
+ movs r0, #0xa
+ strb r0, [r1]
+ ldr r0, _080031F0 @ =0x0202C604
+ strb r2, [r0]
+ ldr r0, _080031F4 @ =0x0202C5A4
+ strb r2, [r0]
+ ldr r1, _080031F8 @ =0x0202AD90
+ movs r0, #0xd
+ strb r0, [r1]
+ bl sub_377C
+ ldr r1, _080031FC @ =0x0200B0C0
+ movs r0, #4
+ strb r0, [r1, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_0800316C:
+ ldr r4, _080031E8 @ =0x0202A58C
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #1
+ bne _080031DC
+ ldr r3, _080031E4 @ =0x0201A44C
+ ldrh r0, [r3]
+ adds r0, #1
+ strh r0, [r3]
+ ldrh r0, [r3]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _08003192
+ ldr r2, _080031EC @ =0x0202BEC0
+ ldrb r1, [r2]
+ movs r0, #0x15
+ subs r0, r0, r1
+ strb r0, [r2]
+_08003192:
+ ldr r0, _08003200 @ =0x0202ADD0
+ ldr r0, [r0]
+ movs r1, #0xfe
+ lsls r1, r1, #0xf
+ ands r0, r1
+ cmp r0, #0
+ beq _080031DC
+ ldr r1, _08003204 @ =0x0201A444
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb4
+ ble _080031DC
+ movs r2, #0
+ strh r2, [r3]
+ movs r0, #2
+ strb r0, [r4]
+ ldr r1, _080031EC @ =0x0202BEC0
+ movs r0, #0xa
+ strb r0, [r1]
+ ldr r0, _080031F0 @ =0x0202C604
+ strb r2, [r0]
+ ldr r0, _080031F4 @ =0x0202C5A4
+ strb r2, [r0]
+ ldr r1, _080031F8 @ =0x0202AD90
+ movs r0, #0xd
+ strb r0, [r1]
+ bl sub_377C
+ ldr r1, _080031FC @ =0x0200B0C0
+ movs r0, #4
+ strb r0, [r1, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_080031DC:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080031E4: .4byte 0x0201A44C
+_080031E8: .4byte 0x0202A58C
+_080031EC: .4byte 0x0202BEC0
+_080031F0: .4byte 0x0202C604
+_080031F4: .4byte 0x0202C5A4
+_080031F8: .4byte 0x0202AD90
+_080031FC: .4byte 0x0200B0C0
+_08003200: .4byte 0x0202ADD0
+_08003204: .4byte 0x0201A444
+
+ thumb_func_start sub_3208
+sub_3208: @ 0x08003208
+ push {r4, r5, r6, r7, lr}
+ ldr r1, _0800326C @ =0x0201A44C
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _08003228
+ movs r0, #0
+ strh r0, [r1]
+ ldr r2, _08003270 @ =0x0202BEC0
+ ldrb r1, [r2]
+ movs r0, #0x16
+ subs r0, r0, r1
+ strb r0, [r2]
+_08003228:
+ ldr r4, _08003274 @ =0x0202C604
+ ldr r2, _08003278 @ =0x086A551A
+ ldr r3, _0800327C @ =0x0202AD90
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bgt _08003284
+ ldr r1, _08003280 @ =0x0202A580
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ ble _080032E0
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ bl sub_3828
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ b _080032E0
+ .align 2, 0
+_0800326C: .4byte 0x0201A44C
+_08003270: .4byte 0x0202BEC0
+_08003274: .4byte 0x0202C604
+_08003278: .4byte 0x086A551A
+_0800327C: .4byte 0x0202AD90
+_08003280: .4byte 0x0202A580
+_08003284:
+ ldr r1, _080032BC @ =0x0202A580
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #6
+ ble _080032E0
+ movs r0, #0
+ strb r0, [r1]
+ ldr r0, _080032C0 @ =0x0202C5A4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _080032C4
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r1, #0xea
+ lsls r1, r1, #6
+ bl sub_38A0
+ b _080032D6
+ .align 2, 0
+_080032BC: .4byte 0x0202A580
+_080032C0: .4byte 0x0202C5A4
+_080032C4:
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r1, #0
+ bl sub_38A0
+_080032D6:
+ ldr r2, _0800331C @ =0x0202C5A4
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_080032E0:
+ ldr r7, _08003320 @ =0x0200B0C0
+ ldrh r1, [r7, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800336E
+ ldr r6, _08003324 @ =0x0202C604
+ ldr r4, _08003328 @ =0x086A551A
+ ldr r5, _0800332C @ =0x0202AD90
+ movs r2, #0
+ ldrsb r2, [r5, r2]
+ adds r0, r2, r4
+ movs r1, #0
+ ldrsb r1, [r6, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bgt _08003330
+ adds r0, r2, #0
+ bl sub_37B4
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ adds r0, #1
+ strb r0, [r6]
+ b _0800336E
+ .align 2, 0
+_0800331C: .4byte 0x0202C5A4
+_08003320: .4byte 0x0200B0C0
+_08003324: .4byte 0x0202C604
+_08003328: .4byte 0x086A551A
+_0800332C: .4byte 0x0202AD90
+_08003330:
+ ldr r0, _08003354 @ =0x086A5528
+ adds r0, r2, r0
+ movs r4, #0
+ ldrsb r4, [r0, r4]
+ cmp r4, #0
+ bne _08003358
+ bl sub_2568
+ bl sub_1AA4
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ strb r4, [r7, #3]
+ b _0800336E
+ .align 2, 0
+_08003354: .4byte 0x086A5528
+_08003358:
+ bl sub_377C
+ movs r1, #0
+ strb r1, [r6]
+ ldr r0, _08003388 @ =0x0202A580
+ strb r1, [r0]
+ ldr r0, _0800338C @ =0x0202C5A4
+ strb r1, [r0]
+ ldrb r0, [r5]
+ adds r0, #1
+ strb r0, [r5]
+_0800336E:
+ bl sub_394C
+ ldr r1, _08003390 @ =0x040000D4
+ ldr r0, _08003394 @ =0x03000000
+ str r0, [r1]
+ ldr r0, _08003398 @ =0x06004000
+ str r0, [r1, #4]
+ ldr r0, _0800339C @ =0x80001800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003388: .4byte 0x0202A580
+_0800338C: .4byte 0x0202C5A4
+_08003390: .4byte 0x040000D4
+_08003394: .4byte 0x03000000
+_08003398: .4byte 0x06004000
+_0800339C: .4byte 0x80001800
+
+ thumb_func_start sub_33A0
+sub_33A0: @ 0x080033A0
+ push {lr}
+ bl sub_3AB4
+ ldr r2, _080033BC @ =0x0201A44C
+ movs r0, #0
+ ldrsh r1, [r2, r0]
+ cmp r1, #0x96
+ beq _080033D4
+ cmp r1, #0x96
+ bgt _080033C0
+ cmp r1, #4
+ beq _080033CA
+ b _080033FE
+ .align 2, 0
+_080033BC: .4byte 0x0201A44C
+_080033C0:
+ movs r0, #0x87
+ lsls r0, r0, #1
+ cmp r1, r0
+ beq _080033E8
+ b _080033FE
+_080033CA:
+ bl sub_2568
+ bl sub_1AA4
+ b _080033FE
+_080033D4:
+ ldr r1, _080033E4 @ =0x0202A58C
+ movs r0, #3
+ strb r0, [r1]
+ movs r0, #0x65
+ bl m4aSongNumStart
+ b _080033FE
+ .align 2, 0
+_080033E4: .4byte 0x0202A58C
+_080033E8:
+ movs r0, #0
+ strh r0, [r2]
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _0800342C @ =0x0200B0C0
+ movs r0, #6
+ strb r0, [r1, #3]
+_080033FE:
+ ldr r0, _08003430 @ =0x0202A58C
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r3, _08003434 @ =0x0201A44C
+ cmp r0, #1
+ bne _08003420
+ ldrh r0, [r3]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _08003420
+ ldr r2, _08003438 @ =0x0202BEC0
+ ldrb r1, [r2]
+ movs r0, #0x15
+ subs r0, r0, r1
+ strb r0, [r2]
+_08003420:
+ ldrh r0, [r3]
+ adds r0, #1
+ strh r0, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800342C: .4byte 0x0200B0C0
+_08003430: .4byte 0x0202A58C
+_08003434: .4byte 0x0201A44C
+_08003438: .4byte 0x0202BEC0
+
+ thumb_func_start sub_343C
+sub_343C: @ 0x0800343C
+ push {r4, r5, r6, lr}
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x86
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _08003550 @ =0x04000008
+ movs r0, #4
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08003554 @ =0x0400000A
+ adds r3, #5
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r3, #0xfb
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r6, _08003558 @ =0x0200B0C0
+ movs r0, #0xba
+ lsls r0, r0, #2
+ adds r1, r6, r0
+ movs r5, #0
+ ldr r0, _0800355C @ =0x0000FFE8
+ strh r0, [r1]
+ adds r3, #0xea
+ adds r1, r6, r3
+ subs r0, #0x48
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r6, #0x16]
+ ldr r4, _08003560 @ =0x040000D4
+ ldr r0, _08003564 @ =0x08081D20
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08003568 @ =0x80000020
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800356C @ =0x080897E0
+ str r0, [r4]
+ ldr r0, _08003570 @ =0x05000040
+ str r0, [r4, #4]
+ ldr r0, _08003574 @ =0x80000010
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003578 @ =0x08080500
+ str r0, [r4]
+ ldr r0, _0800357C @ =0x03000000
+ mov r8, r0
+ str r0, [r4, #4]
+ ldr r1, _08003580 @ =0x80001800
+ mov sb, r1
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003584 @ =0x0807DD00
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08003588 @ =0x80000400
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0800358C @ =0x0807FD00
+ str r0, [r4]
+ ldr r0, _08003590 @ =0x06000800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003594 @ =0x08089960
+ str r0, [r4]
+ ldr r0, _08003598 @ =0x05000200
+ str r0, [r4, #4]
+ ldr r0, _0800359C @ =0x80000060
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _080035A0 @ =0x08089B60
+ str r0, [r4]
+ ldr r0, _080035A4 @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _080035A8 @ =0x80003610
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_2DF0
+ ldr r0, _080035AC @ =0x0202C604
+ strb r5, [r0]
+ ldr r0, _080035B0 @ =0x0202A580
+ strb r5, [r0]
+ ldr r0, _080035B4 @ =0x0202C5A4
+ strb r5, [r0]
+ ldr r2, _080035B8 @ =0x0202AD90
+ ldr r1, _080035BC @ =0x086A5536
+ ldr r0, _080035C0 @ =0x0201C184
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ bl sub_377C
+ mov r0, r8
+ str r0, [r4]
+ ldr r0, _080035C4 @ =0x06004000
+ str r0, [r4, #4]
+ mov r1, sb
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_394C
+ movs r0, #5
+ bl m4aSongNumStart
+ bl sub_CBC
+ bl sub_24C
+ movs r0, #7
+ strb r0, [r6, #3]
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003550: .4byte 0x04000008
+_08003554: .4byte 0x0400000A
+_08003558: .4byte 0x0200B0C0
+_0800355C: .4byte 0x0000FFE8
+_08003560: .4byte 0x040000D4
+_08003564: .4byte 0x08081D20
+_08003568: .4byte 0x80000020
+_0800356C: .4byte 0x080897E0
+_08003570: .4byte 0x05000040
+_08003574: .4byte 0x80000010
+_08003578: .4byte 0x08080500
+_0800357C: .4byte 0x03000000
+_08003580: .4byte 0x80001800
+_08003584: .4byte 0x0807DD00
+_08003588: .4byte 0x80000400
+_0800358C: .4byte 0x0807FD00
+_08003590: .4byte 0x06000800
+_08003594: .4byte 0x08089960
+_08003598: .4byte 0x05000200
+_0800359C: .4byte 0x80000060
+_080035A0: .4byte 0x08089B60
+_080035A4: .4byte 0x06010000
+_080035A8: .4byte 0x80003610
+_080035AC: .4byte 0x0202C604
+_080035B0: .4byte 0x0202A580
+_080035B4: .4byte 0x0202C5A4
+_080035B8: .4byte 0x0202AD90
+_080035BC: .4byte 0x086A5536
+_080035C0: .4byte 0x0201C184
+_080035C4: .4byte 0x06004000
+
+ thumb_func_start sub_35C8
+sub_35C8: @ 0x080035C8
+ push {r4, r5, r6, lr}
+ ldr r4, _0800360C @ =0x0202C604
+ ldr r2, _08003610 @ =0x086A551A
+ ldr r3, _08003614 @ =0x0202AD90
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bgt _0800361C
+ ldr r1, _08003618 @ =0x0202A580
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ ble _08003678
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ bl sub_3828
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ b _08003678
+ .align 2, 0
+_0800360C: .4byte 0x0202C604
+_08003610: .4byte 0x086A551A
+_08003614: .4byte 0x0202AD90
+_08003618: .4byte 0x0202A580
+_0800361C:
+ ldr r1, _08003654 @ =0x0202A580
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #6
+ ble _08003678
+ movs r0, #0
+ strb r0, [r1]
+ ldr r0, _08003658 @ =0x0202C5A4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0800365C
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r1, #0xea
+ lsls r1, r1, #6
+ bl sub_38A0
+ b _0800366E
+ .align 2, 0
+_08003654: .4byte 0x0202A580
+_08003658: .4byte 0x0202C5A4
+_0800365C:
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r1, #0
+ bl sub_38A0
+_0800366E:
+ ldr r2, _080036B4 @ =0x0202C5A4
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_08003678:
+ ldr r2, _080036B8 @ =0x0200B0C0
+ ldrh r1, [r2, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800371A
+ ldr r5, _080036BC @ =0x0202C604
+ ldr r6, _080036C0 @ =0x086A551A
+ ldr r4, _080036C4 @ =0x0202AD90
+ movs r3, #0
+ ldrsb r3, [r4, r3]
+ adds r0, r3, r6
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bgt _080036C8
+ adds r0, r3, #0
+ bl sub_37B4
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ adds r0, #1
+ strb r0, [r5]
+ b _0800371A
+ .align 2, 0
+_080036B4: .4byte 0x0202C5A4
+_080036B8: .4byte 0x0200B0C0
+_080036BC: .4byte 0x0202C604
+_080036C0: .4byte 0x086A551A
+_080036C4: .4byte 0x0202AD90
+_080036C8:
+ ldr r0, _080036E8 @ =0x086A5528
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08003704
+ ldr r0, _080036EC @ =0x0201C184
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #4
+ bne _080036F4
+ ldr r1, _080036F0 @ =0x0202BEF8
+ movs r0, #0xb
+ b _080036F8
+ .align 2, 0
+_080036E8: .4byte 0x086A5528
+_080036EC: .4byte 0x0201C184
+_080036F0: .4byte 0x0202BEF8
+_080036F4:
+ ldr r1, _08003700 @ =0x0202BEF8
+ movs r0, #1
+_080036F8:
+ strb r0, [r1]
+ movs r0, #8
+ strb r0, [r2, #3]
+ b _0800371A
+ .align 2, 0
+_08003700: .4byte 0x0202BEF8
+_08003704:
+ bl sub_377C
+ movs r1, #0
+ strb r1, [r5]
+ ldr r0, _08003734 @ =0x0202A580
+ strb r1, [r0]
+ ldr r0, _08003738 @ =0x0202C5A4
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+_0800371A:
+ bl sub_394C
+ ldr r1, _0800373C @ =0x040000D4
+ ldr r0, _08003740 @ =0x03000000
+ str r0, [r1]
+ ldr r0, _08003744 @ =0x06004000
+ str r0, [r1, #4]
+ ldr r0, _08003748 @ =0x80001800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003734: .4byte 0x0202A580
+_08003738: .4byte 0x0202C5A4
+_0800373C: .4byte 0x040000D4
+_08003740: .4byte 0x03000000
+_08003744: .4byte 0x06004000
+_08003748: .4byte 0x80001800
+
+ thumb_func_start sub_374C
+sub_374C: @ 0x0800374C
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08003774 @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, _08003778 @ =0x0202BEF8
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003774: .4byte 0x0201A4B4
+_08003778: .4byte 0x0202BEF8
+
+ thumb_func_start sub_377C
+sub_377C: @ 0x0800377C
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r7, _080037AC @ =0x03001800
+_08003782:
+ movs r5, #0
+ lsls r0, r1, #0xb
+ adds r6, r1, #1
+ adds r4, r7, r0
+_0800378A:
+ ldr r0, _080037B0 @ =0x080ACC60
+ adds r1, r4, #0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #0x20
+ adds r5, #1
+ cmp r5, #0x17
+ ble _0800378A
+ adds r1, r6, #0
+ cmp r1, #2
+ ble _08003782
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080037AC: .4byte 0x03001800
+_080037B0: .4byte 0x080ACC60
+
+ thumb_func_start sub_37B4
+sub_37B4: @ 0x080037B4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ movs r2, #0
+ lsls r0, r0, #0x18
+ ldr r1, _08003818 @ =0x086A4CF8
+ mov sb, r1
+ asrs r0, r0, #0x18
+ lsls r1, r0, #3
+ adds r1, r1, r0
+ lsls r1, r1, #4
+ mov r8, r1
+_080037CE:
+ movs r5, #0
+ lsls r1, r2, #1
+ lsls r6, r2, #0xb
+ adds r7, r2, #1
+ adds r1, r1, r2
+ lsls r1, r1, #4
+ mov r0, r8
+ add r0, sb
+ adds r4, r1, r0
+_080037E0:
+ ldrh r1, [r4]
+ ldr r2, _0800381C @ =0x0000FFF0
+ adds r0, r2, #0
+ ands r0, r1
+ ldr r1, _08003820 @ =0x080ACC60
+ adds r0, r0, r1
+ lsls r1, r5, #5
+ ldr r2, _08003824 @ =0x03001800
+ adds r1, r1, r2
+ adds r1, r6, r1
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #2
+ adds r5, #1
+ cmp r5, #0x17
+ ble _080037E0
+ adds r2, r7, #0
+ cmp r2, #2
+ ble _080037CE
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003818: .4byte 0x086A4CF8
+_0800381C: .4byte 0x0000FFF0
+_08003820: .4byte 0x080ACC60
+_08003824: .4byte 0x03001800
+
+ thumb_func_start sub_3828
+sub_3828: @ 0x08003828
+ push {r4, r5, r6, lr}
+ adds r5, r0, #0
+ adds r4, r1, #0
+ lsls r5, r5, #0x18
+ lsrs r5, r5, #0x18
+ lsls r4, r4, #0x18
+ asrs r4, r4, #0x18
+ adds r0, r4, #0
+ movs r1, #0x18
+ bl __divsi3
+ adds r6, r0, #0
+ lsls r6, r6, #0x18
+ asrs r6, r6, #0x18
+ adds r0, r4, #0
+ movs r1, #0x18
+ bl __modsi3
+ adds r2, r0, #0
+ lsls r2, r2, #0x18
+ asrs r2, r2, #0x18
+ ldr r3, _08003890 @ =0x086A4CF8
+ lsls r1, r6, #1
+ adds r1, r1, r6
+ lsls r1, r1, #3
+ adds r1, r1, r2
+ lsls r1, r1, #1
+ lsls r5, r5, #0x18
+ asrs r5, r5, #0x18
+ lsls r0, r5, #3
+ adds r0, r0, r5
+ lsls r0, r0, #4
+ adds r1, r1, r0
+ adds r1, r1, r3
+ ldrh r1, [r1]
+ ldr r0, _08003894 @ =0x0000FFF0
+ ands r0, r1
+ ldr r1, _08003898 @ =0x080ACC60
+ adds r0, r0, r1
+ lsls r6, r6, #0xb
+ lsls r2, r2, #5
+ ldr r1, _0800389C @ =0x03001800
+ adds r2, r2, r1
+ adds r6, r6, r2
+ adds r1, r6, #0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003890: .4byte 0x086A4CF8
+_08003894: .4byte 0x0000FFF0
+_08003898: .4byte 0x080ACC60
+_0800389C: .4byte 0x03001800
+
+ thumb_func_start sub_38A0
+sub_38A0: @ 0x080038A0
+ push {r4, r5, r6, lr}
+ adds r5, r0, #0
+ adds r6, r1, #0
+ lsls r6, r6, #0x10
+ lsrs r6, r6, #0x10
+ lsls r5, r5, #0x18
+ asrs r5, r5, #0x18
+ adds r0, r5, #0
+ movs r1, #0x18
+ bl __divsi3
+ adds r4, r0, #0
+ lsls r4, r4, #0x18
+ asrs r4, r4, #0x18
+ adds r0, r5, #0
+ movs r1, #0x18
+ bl __modsi3
+ lsls r0, r0, #0x18
+ ldr r1, _080038E8 @ =0x080ACC60
+ adds r6, r6, r1
+ lsls r4, r4, #0xb
+ asrs r0, r0, #0x13
+ ldr r1, _080038EC @ =0x03001800
+ adds r0, r0, r1
+ adds r4, r4, r0
+ adds r0, r6, #0
+ adds r1, r4, #0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080038E8: .4byte 0x080ACC60
+_080038EC: .4byte 0x03001800
+
+ thumb_func_start sub_38F0
+sub_38F0: @ 0x080038F0
+ ldr r0, _08003900 @ =0x0202BEEC
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r0, _08003904 @ =0x00001F52
+ cmp r1, r0
+ bne _08003908
+ movs r0, #0
+ b _0800394A
+ .align 2, 0
+_08003900: .4byte 0x0202BEEC
+_08003904: .4byte 0x00001F52
+_08003908:
+ ldr r0, _08003914 @ =0x00003E1A
+ cmp r1, r0
+ bne _08003918
+ movs r0, #1
+ b _0800394A
+ .align 2, 0
+_08003914: .4byte 0x00003E1A
+_08003918:
+ ldr r0, _08003924 @ =0x000025AF
+ cmp r1, r0
+ bne _08003928
+ movs r0, #2
+ b _0800394A
+ .align 2, 0
+_08003924: .4byte 0x000025AF
+_08003928:
+ ldr r0, _08003934 @ =0x00004A09
+ cmp r1, r0
+ bne _08003938
+ movs r0, #3
+ b _0800394A
+ .align 2, 0
+_08003934: .4byte 0x00004A09
+_08003938:
+ ldr r0, _08003944 @ =0x00006B12
+ cmp r1, r0
+ beq _08003948
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _0800394A
+ .align 2, 0
+_08003944: .4byte 0x00006B12
+_08003948:
+ movs r0, #4
+_0800394A:
+ bx lr
+
+ thumb_func_start sub_394C
+sub_394C: @ 0x0800394C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r4, _080039A0 @ =0x0202A58C
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ movs r1, #0xb8
+ muls r0, r1, r0
+ ldr r2, _080039A4 @ =0x0200B3B8
+ adds r7, r0, r2
+ ldr r0, _080039A8 @ =0x0202BEC0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ muls r0, r1, r0
+ adds r0, r0, r2
+ mov r8, r0
+ ldr r0, _080039AC @ =0x0202C584
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r7]
+ movs r0, #1
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _080039B0 @ =0x086A54D8
+ movs r1, #0xd
+ bl sub_358
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _08003A18
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _080039B4
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x64
+ b _080039BA
+ .align 2, 0
+_080039A0: .4byte 0x0202A58C
+_080039A4: .4byte 0x0200B3B8
+_080039A8: .4byte 0x0202BEC0
+_080039AC: .4byte 0x0202C584
+_080039B0: .4byte 0x086A54D8
+_080039B4:
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x50
+_080039BA:
+ strh r0, [r7, #4]
+ ldr r1, _08003A9C @ =0x086A54D8
+ ldr r0, _08003AA0 @ =0x0202A58C
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r2, [r6]
+ cmp r5, r2
+ bge _08003A18
+ ldr r0, _08003AA4 @ =0x03005000
+ mov ip, r0
+ ldr r1, _08003AA8 @ =0xFFFFFE00
+ mov sb, r1
+ adds r4, r7, #0
+ adds r4, #8
+_080039E0:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r2, _08003AAC @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r0, [r6]
+ cmp r5, r0
+ blt _080039E0
+_08003A18:
+ movs r0, #0x78
+ mov r1, r8
+ strh r0, [r1, #2]
+ movs r0, #0x18
+ strh r0, [r1, #4]
+ ldr r1, _08003A9C @ =0x086A54D8
+ ldr r0, _08003AB0 @ =0x0202BEC0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r2, [r6]
+ cmp r5, r2
+ bge _08003A86
+ ldr r0, _08003AA4 @ =0x03005000
+ mov ip, r0
+ ldr r1, _08003AA8 @ =0xFFFFFE00
+ mov sb, r1
+ mov r4, r8
+ adds r4, #8
+_08003A46:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r0, #2
+ ldrsh r2, [r4, r0]
+ mov sl, r2
+ mov r1, r8
+ movs r2, #2
+ ldrsh r0, [r1, r2]
+ mov r2, sl
+ adds r1, r2, r0
+ ldr r2, _08003AAC @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ mov r2, r8
+ ldrb r0, [r2, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r0, [r6]
+ cmp r5, r0
+ blt _08003A46
+_08003A86:
+ movs r0, #0
+ strh r0, [r7]
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003A9C: .4byte 0x086A54D8
+_08003AA0: .4byte 0x0202A58C
+_08003AA4: .4byte 0x03005000
+_08003AA8: .4byte 0xFFFFFE00
+_08003AAC: .4byte 0x000001FF
+_08003AB0: .4byte 0x0202BEC0
+
+ thumb_func_start sub_3AB4
+sub_3AB4: @ 0x08003AB4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r4, _08003B08 @ =0x0202A58C
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ movs r1, #0xb8
+ muls r0, r1, r0
+ ldr r2, _08003B0C @ =0x0200B3B8
+ adds r7, r0, r2
+ ldr r0, _08003B10 @ =0x0202BEC0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ muls r0, r1, r0
+ adds r0, r0, r2
+ mov r8, r0
+ ldr r0, _08003B14 @ =0x0202C584
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r7]
+ movs r0, #1
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _08003B18 @ =0x086A54D8
+ movs r1, #0xd
+ bl sub_2414
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _08003B80
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _08003B1C
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x64
+ b _08003B22
+ .align 2, 0
+_08003B08: .4byte 0x0202A58C
+_08003B0C: .4byte 0x0200B3B8
+_08003B10: .4byte 0x0202BEC0
+_08003B14: .4byte 0x0202C584
+_08003B18: .4byte 0x086A54D8
+_08003B1C:
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x50
+_08003B22:
+ strh r0, [r7, #4]
+ ldr r1, _08003C04 @ =0x086A54D8
+ ldr r0, _08003C08 @ =0x0202A58C
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r2, [r6]
+ cmp r5, r2
+ bge _08003B80
+ ldr r0, _08003C0C @ =0x03005000
+ mov ip, r0
+ ldr r1, _08003C10 @ =0xFFFFFE00
+ mov sb, r1
+ adds r4, r7, #0
+ adds r4, #8
+_08003B48:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r2, _08003C14 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r0, [r6]
+ cmp r5, r0
+ blt _08003B48
+_08003B80:
+ movs r0, #0x78
+ mov r1, r8
+ strh r0, [r1, #2]
+ movs r0, #0x18
+ strh r0, [r1, #4]
+ ldr r1, _08003C04 @ =0x086A54D8
+ ldr r0, _08003C18 @ =0x0202BEC0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r6, [r0]
+ movs r5, #0
+ ldrh r2, [r6]
+ cmp r5, r2
+ bge _08003BEE
+ ldr r0, _08003C0C @ =0x03005000
+ mov ip, r0
+ ldr r1, _08003C10 @ =0xFFFFFE00
+ mov sb, r1
+ mov r4, r8
+ adds r4, #8
+_08003BAE:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r0, #2
+ ldrsh r2, [r4, r0]
+ mov sl, r2
+ mov r1, r8
+ movs r2, #2
+ ldrsh r0, [r1, r2]
+ mov r2, sl
+ adds r1, r2, r0
+ ldr r2, _08003C14 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ mov r2, r8
+ ldrb r0, [r2, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ ldrh r0, [r6]
+ cmp r5, r0
+ blt _08003BAE
+_08003BEE:
+ movs r0, #0
+ strh r0, [r7]
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003C04: .4byte 0x086A54D8
+_08003C08: .4byte 0x0202A58C
+_08003C0C: .4byte 0x03005000
+_08003C10: .4byte 0xFFFFFE00
+_08003C14: .4byte 0x000001FF
+_08003C18: .4byte 0x0202BEC0
+
+ thumb_func_start sub_3C1C
+sub_3C1C: @ 0x08003C1C
+ push {r4, lr}
+ ldr r0, _08003C64 @ =0x0202A564
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _08003C68 @ =0x02019C20
+ strb r1, [r0]
+ ldr r0, _08003C6C @ =0x0202ADE8
+ strb r1, [r0]
+ ldr r1, _08003C70 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08003C34:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08003C34
+ movs r1, #0
+ ldr r4, _08003C74 @ =0x0201A4D0
+ movs r3, #0
+_08003C42:
+ lsls r0, r1, #1
+ adds r2, r1, #1
+ movs r1, #7
+ adds r0, r0, r4
+ adds r0, #0x1c
+_08003C4C:
+ strh r3, [r0]
+ subs r0, #4
+ subs r1, #1
+ cmp r1, #0
+ bge _08003C4C
+ adds r1, r2, #0
+ cmp r1, #1
+ ble _08003C42
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003C64: .4byte 0x0202A564
+_08003C68: .4byte 0x02019C20
+_08003C6C: .4byte 0x0202ADE8
+_08003C70: .4byte 0x0202C5F0
+_08003C74: .4byte 0x0201A4D0
+
+ thumb_func_start sub_3C78
+sub_3C78: @ 0x08003C78
+ ldr r0, _08003C8C @ =0x02019C20
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _08003C98
+ ldr r1, _08003C90 @ =0x0202C5F0
+ ldr r0, _08003C94 @ =0x0000DFDF
+ strh r0, [r1]
+ b _08003CD0
+ .align 2, 0
+_08003C8C: .4byte 0x02019C20
+_08003C90: .4byte 0x0202C5F0
+_08003C94: .4byte 0x0000DFDF
+_08003C98:
+ ldr r3, _08003CB4 @ =0x0202ADE8
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _08003CC0
+ ldr r0, _08003CB8 @ =0x0202C5F0
+ movs r2, #0
+ ldr r1, _08003CBC @ =0x0000CDFE
+ strh r1, [r0]
+ strb r2, [r3]
+ b _08003CD0
+ .align 2, 0
+_08003CB4: .4byte 0x0202ADE8
+_08003CB8: .4byte 0x0202C5F0
+_08003CBC: .4byte 0x0000CDFE
+_08003CC0:
+ ldr r1, _08003CD4 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08003CC8:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08003CC8
+_08003CD0:
+ movs r0, #0
+ bx lr
+ .align 2, 0
+_08003CD4: .4byte 0x0202C5F0
+
+ thumb_func_start sub_3CD8
+sub_3CD8: @ 0x08003CD8
+ push {r4, lr}
+ ldr r0, _08003D24 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ ldr r2, _08003D28 @ =0x0202A564
+ cmp r0, #0
+ beq _08003D02
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ bne _08003D0A
+ movs r0, #1
+ rsbs r0, r0, #0
+ adds r1, r0, #0
+ strb r1, [r2]
+ ldr r0, _08003D2C @ =0x0202ADE8
+ strb r1, [r0]
+ ldr r1, _08003D30 @ =0x0202A58C
+ movs r0, #1
+ strb r0, [r1]
+_08003D02:
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ beq _08003D7A
+_08003D0A:
+ ldr r3, _08003D34 @ =0x02019C20
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #0
+ bne _08003D66
+ ldr r1, _08003D38 @ =0x0201A4D0
+ ldrh r0, [r1]
+ ldr r2, _08003D3C @ =0x0000FEDC
+ cmp r0, r2
+ bne _08003D44
+ ldr r0, _08003D40 @ =0x0202BEEC
+ ldrh r1, [r1, #4]
+ b _08003D4E
+ .align 2, 0
+_08003D24: .4byte 0x0200B0C0
+_08003D28: .4byte 0x0202A564
+_08003D2C: .4byte 0x0202ADE8
+_08003D30: .4byte 0x0202A58C
+_08003D34: .4byte 0x02019C20
+_08003D38: .4byte 0x0201A4D0
+_08003D3C: .4byte 0x0000FEDC
+_08003D40: .4byte 0x0202BEEC
+_08003D44:
+ ldrh r0, [r1, #2]
+ cmp r0, r2
+ bne _08003D7A
+ ldr r0, _08003D5C @ =0x0202BEEC
+ ldrh r1, [r1, #6]
+_08003D4E:
+ strh r1, [r0]
+ movs r1, #1
+ rsbs r1, r1, #0
+ adds r0, r1, #0
+ strb r0, [r3]
+ b _08003D7A
+ .align 2, 0
+_08003D5C: .4byte 0x0202BEEC
+_08003D60:
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _08003D9C
+_08003D66:
+ movs r1, #0
+ ldr r3, _08003DA4 @ =0x0000DFDF
+ ldr r2, _08003DA8 @ =0x0201A4D0
+_08003D6C:
+ ldrh r0, [r2]
+ cmp r0, r3
+ beq _08003D60
+ adds r2, #2
+ adds r1, #1
+ cmp r1, #1
+ ble _08003D6C
+_08003D7A:
+ movs r1, #0
+ ldr r4, _08003DA8 @ =0x0201A4D0
+ movs r3, #0
+_08003D80:
+ lsls r0, r1, #1
+ adds r2, r1, #1
+ movs r1, #7
+ adds r0, r0, r4
+ adds r0, #0x1c
+_08003D8A:
+ strh r3, [r0]
+ subs r0, #4
+ subs r1, #1
+ cmp r1, #0
+ bge _08003D8A
+ adds r1, r2, #0
+ cmp r1, #1
+ ble _08003D80
+ movs r0, #0
+_08003D9C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08003DA4: .4byte 0x0000DFDF
+_08003DA8: .4byte 0x0201A4D0
diff --git a/asm/rom_528AC.s b/asm/rom_528AC.s
new file mode 100755
index 0000000..fe3ab9b
--- /dev/null
+++ b/asm/rom_528AC.s
@@ -0,0 +1,529 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_528AC
+sub_528AC: @ 0x080528AC
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r1, r0, #0
+ cmp r0, #0xfa
+ bls _080528DA
+ ldr r0, _080528CC @ =0x00000113
+ cmp r1, r0
+ bls _080528D8
+ ldr r0, _080528D0 @ =0x08527F18
+ ldr r2, _080528D4 @ =0xFFFFFEEC
+ adds r1, r1, r2
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ b _080528DA
+ .align 2, 0
+_080528CC: .4byte 0x00000113
+_080528D0: .4byte 0x08527F18
+_080528D4: .4byte 0xFFFFFEEC
+_080528D8:
+ movs r0, #0xc8
+_080528DA:
+ bx lr
+
+ thumb_func_start sub_528DC
+sub_528DC: @ 0x080528DC
+ push {r4, r5, lr}
+ sub sp, #4
+ adds r5, r0, #0
+ adds r4, r1, #0
+ lsls r5, r5, #0x10
+ lsrs r5, r5, #0x10
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x18
+ ldr r0, _08052914 @ =0x02032EE0
+ ldr r1, _08052918 @ =0x0000FFFF
+ movs r2, #0x99
+ bl m4aMPlayVolumeControl
+ lsls r4, r4, #0x18
+ asrs r4, r4, #0x18
+ movs r0, #0
+ str r0, [sp]
+ adds r0, r5, #0
+ adds r1, r4, #0
+ movs r2, #0x7d
+ movs r3, #0xa
+ bl sub_52940
+ add sp, #4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052914: .4byte 0x02032EE0
+_08052918: .4byte 0x0000FFFF
+
+ thumb_func_start sub_5291C
+sub_5291C: @ 0x0805291C
+ push {r4, lr}
+ sub sp, #4
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r3, r3, #0x18
+ lsrs r3, r3, #0x18
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ lsls r2, r2, #0x18
+ asrs r2, r2, #0x18
+ movs r4, #0
+ str r4, [sp]
+ bl sub_52940
+ add sp, #4
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_52940
+sub_52940: @ 0x08052940
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, #0
+ adds r4, r1, #0
+ adds r0, r2, #0
+ adds r6, r3, #0
+ lsls r5, r5, #0x10
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x18
+ lsls r6, r6, #0x18
+ lsrs r6, r6, #0x18
+ ldr r1, _080529BC @ =0xFFFF0000
+ adds r5, r5, r1
+ lsrs r5, r5, #0x10
+ movs r1, #0xf0
+ lsls r1, r1, #6
+ mov r8, r1
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ bl SetPokemonCryVolume
+ lsls r4, r4, #0x18
+ asrs r4, r4, #0x18
+ adds r0, r4, #0
+ bl SetPokemonCryPanpot
+ mov r0, r8
+ bl SetPokemonCryPitch
+ movs r0, #0x8c
+ bl SetPokemonCryLength
+ movs r0, #0
+ bl SetPokemonCryProgress
+ movs r0, #0
+ bl SetPokemonCryRelease
+ movs r0, #0
+ bl SetPokemonCryChorus
+ adds r0, r6, #0
+ bl SetPokemonCryPriority
+ adds r0, r5, #0
+ bl sub_528AC
+ movs r1, #0x7f
+ ands r1, r0
+ lsrs r0, r0, #7
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ adds r2, r0, #0
+ cmp r0, #1
+ beq _080529D8
+ cmp r0, #1
+ bgt _080529C0
+ cmp r0, #0
+ beq _080529CA
+ b _08052A0A
+ .align 2, 0
+_080529BC: .4byte 0xFFFF0000
+_080529C0:
+ cmp r2, #2
+ beq _080529E8
+ cmp r2, #3
+ beq _080529FC
+ b _08052A0A
+_080529CA:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _080529D4 @ =0x08532D6C
+ b _080529F0
+ .align 2, 0
+_080529D4: .4byte 0x08532D6C
+_080529D8:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _080529E4 @ =0x08533360
+ b _080529F0
+ .align 2, 0
+_080529E4: .4byte 0x08533360
+_080529E8:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _080529F8 @ =0x08533960
+_080529F0:
+ adds r0, r0, r1
+ bl SetPokemonCryTone
+ b _08052A0A
+ .align 2, 0
+_080529F8: .4byte 0x08533960
+_080529FC:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _08052A14 @ =0x08533F60
+ adds r0, r0, r1
+ bl SetPokemonCryTone
+_08052A0A:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052A14: .4byte 0x08533F60
+
+ thumb_func_start sub_52A18
+sub_52A18: @ 0x08052A18
+ push {r4, lr}
+ bl sub_555BC
+ ldr r4, _08052A4C @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r4, #0xc]
+ bl sub_52A68
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08052A50
+ bl sub_52C64
+ bl sub_52B30
+ bl sub_52A68
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08052A5E
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl sub_52C64
+ b _08052A5E
+ .align 2, 0
+_08052A4C: .4byte 0x0200B0C0
+_08052A50:
+ ldr r1, _08052A64 @ =0x00000143
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ bl sub_525CC
+_08052A5E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052A64: .4byte 0x00000143
+
+ thumb_func_start sub_52A68
+sub_52A68: @ 0x08052A68
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ movs r0, #0
+ mov r8, r0
+ movs r7, #0
+ ldr r1, _08052B04 @ =0x02032FF0
+ mov sb, r1
+_08052A7A:
+ ldr r5, _08052B08 @ =0x0200B134
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ lsls r0, r7, #2
+ adds r0, r0, r7
+ lsls r0, r0, #2
+ adds r0, r0, r7
+ lsls r0, r0, #5
+ ldr r3, _08052B0C @ =0x0E000004
+ adds r0, r0, r3
+ mov r6, sb
+ ldr r3, [r6]
+ adds r1, r5, #0
+ adds r2, r4, #0
+ bl _call_via_r3
+ movs r2, #0
+ movs r0, #0x99
+ lsls r0, r0, #2
+ adds r3, r5, r0
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ ldr r1, _08052B10 @ =0x086BBA6C
+ ldrb r6, [r1]
+ cmp r0, r6
+ bne _08052ACA
+ adds r6, r3, #0
+ adds r3, r1, #0
+_08052AB2:
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ cmp r2, #9
+ bhi _08052ACA
+ adds r0, r2, r6
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08052AB2
+_08052ACA:
+ cmp r2, #0xa
+ bne _08052B18
+ movs r2, #0
+ cmp r4, #1
+ bls _08052AE0
+_08052AD4:
+ ldrh r0, [r5]
+ adds r2, r2, r0
+ adds r5, #2
+ subs r4, #2
+ cmp r4, #1
+ bhi _08052AD4
+_08052AE0:
+ cmp r4, #0
+ beq _08052AF0
+ ldrh r1, [r5]
+ movs r3, #0xff
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ ands r0, r1
+ adds r2, r2, r0
+_08052AF0:
+ ldr r0, _08052B14 @ =0x0000FFFF
+ adds r1, r2, #0
+ ands r1, r0
+ lsrs r2, r2, #0x10
+ adds r2, r1, r2
+ cmp r2, r0
+ bne _08052B18
+ movs r6, #1
+ mov r8, r6
+ b _08052B22
+ .align 2, 0
+_08052B04: .4byte 0x02032FF0
+_08052B08: .4byte 0x0200B134
+_08052B0C: .4byte 0x0E000004
+_08052B10: .4byte 0x086BBA6C
+_08052B14: .4byte 0x0000FFFF
+_08052B18:
+ adds r0, r7, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #1
+ bls _08052A7A
+_08052B22:
+ mov r0, r8
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_52B30
+sub_52B30: @ 0x08052B30
+ push {r4, r5, lr}
+ ldr r3, _08052B9C @ =0x0200B134
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ movs r0, #0x9c
+ lsls r0, r0, #2
+ adds r1, r3, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ ldr r2, _08052BA0 @ =0x0000026E
+ adds r1, r3, r2
+ movs r0, #0
+ strh r0, [r1]
+ movs r2, #0
+ adds r5, r3, #0
+_08052B50:
+ ldrh r0, [r3]
+ adds r2, r2, r0
+ adds r3, #2
+ subs r4, #2
+ cmp r4, #1
+ bhi _08052B50
+ cmp r4, #0
+ beq _08052B6A
+ ldrh r1, [r3]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ adds r2, r2, r0
+_08052B6A:
+ ldr r0, _08052BA4 @ =0x0000FFFF
+ ands r0, r2
+ lsrs r1, r2, #0x10
+ adds r2, r0, r1
+ lsrs r0, r2, #0x10
+ adds r0, r0, r2
+ mvns r0, r0
+ ldr r2, _08052BA0 @ =0x0000026E
+ adds r1, r5, r2
+ strh r0, [r1]
+ ldr r1, _08052BA8 @ =0x0E000004
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ adds r0, r5, #0
+ adds r2, r4, #0
+ bl sub_55654
+ ldr r1, _08052BAC @ =0x0E0002A4
+ adds r0, r5, #0
+ adds r2, r4, #0
+ bl sub_55654
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052B9C: .4byte 0x0200B134
+_08052BA0: .4byte 0x0000026E
+_08052BA4: .4byte 0x0000FFFF
+_08052BA8: .4byte 0x0E000004
+_08052BAC: .4byte 0x0E0002A4
+
+ thumb_func_start sub_52BB0
+sub_52BB0: @ 0x08052BB0
+ push {r4, r5, r6, lr}
+ lsls r1, r1, #0x18
+ lsrs r5, r1, #0x18
+ ldr r3, _08052C30 @ =0x0200B134
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r3
+ ldrb r0, [r2]
+ adds r6, r3, #0
+ cmp r0, r5
+ bhs _08052C28
+ movs r0, #0x9c
+ lsls r0, r0, #2
+ adds r1, r6, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ movs r1, #0
+ strb r5, [r2]
+ ldr r2, _08052C34 @ =0x0000026E
+ adds r0, r6, r2
+ strh r1, [r0]
+ movs r2, #0
+_08052BE2:
+ ldrh r0, [r3]
+ adds r2, r2, r0
+ adds r3, #2
+ subs r4, #2
+ cmp r4, #1
+ bhi _08052BE2
+ cmp r4, #0
+ beq _08052BFC
+ ldrh r1, [r3]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ adds r2, r2, r0
+_08052BFC:
+ ldr r0, _08052C38 @ =0x0000FFFF
+ ands r0, r2
+ lsrs r1, r2, #0x10
+ adds r2, r0, r1
+ lsrs r0, r2, #0x10
+ adds r0, r0, r2
+ mvns r0, r0
+ ldr r2, _08052C34 @ =0x0000026E
+ adds r1, r6, r2
+ strh r0, [r1]
+ ldr r1, _08052C3C @ =0x0E000004
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ adds r0, r6, #0
+ adds r2, r4, #0
+ bl sub_55654
+ ldr r1, _08052C40 @ =0x0E0002A4
+ adds r0, r6, #0
+ adds r2, r4, #0
+ bl sub_55654
+_08052C28:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052C30: .4byte 0x0200B134
+_08052C34: .4byte 0x0000026E
+_08052C38: .4byte 0x0000FFFF
+_08052C3C: .4byte 0x0E000004
+_08052C40: .4byte 0x0E0002A4
+
+ thumb_func_start sub_52C44
+sub_52C44: @ 0x08052C44
+ push {lr}
+ ldr r2, _08052C58 @ =0x02032FF0
+ ldr r0, _08052C5C @ =0x0E000544
+ ldr r1, _08052C60 @ =0x0200B100
+ ldr r3, [r2]
+ movs r2, #4
+ bl _call_via_r3
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052C58: .4byte 0x02032FF0
+_08052C5C: .4byte 0x0E000544
+_08052C60: .4byte 0x0200B100
+
+ thumb_func_start sub_52C64
+sub_52C64: @ 0x08052C64
+ push {r4, r5, lr}
+ movs r1, #0
+ ldr r5, _08052CBC @ =0x0200B134
+ movs r0, #0x99
+ lsls r0, r0, #2
+ adds r4, r5, r0
+ ldr r3, _08052CC0 @ =0x086BBA6C
+_08052C72:
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r4
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ strb r1, [r2]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _08052C72
+ movs r1, #0x9c
+ lsls r1, r1, #2
+ adds r0, r5, r1
+ movs r4, #0
+ str r4, [r0]
+ adds r0, r5, #0
+ adds r0, #0xcd
+ strb r4, [r0]
+ adds r0, #1
+ strb r4, [r0]
+ movs r0, #1
+ rsbs r0, r0, #0
+ bl sub_525CC
+ bl sub_F6E0
+ bl sub_8ABC
+ adds r0, r5, #0
+ adds r0, #0xcf
+ strb r4, [r0]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052CBC: .4byte 0x0200B134
+_08052CC0: .4byte 0x086BBA6C
diff --git a/asm/titlescreen.s b/asm/titlescreen.s
new file mode 100755
index 0000000..24718d1
--- /dev/null
+++ b/asm/titlescreen.s
@@ -0,0 +1,2277 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start TitlescreenMain
+TitlescreenMain: @ 0x08010924
+ push {lr}
+ ldr r1, _0801093C @ =0x08079890
+ ldr r0, _08010940 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801093C: .4byte 0x08079890
+_08010940: .4byte 0x0200B0C0
+
+ thumb_func_start LoadTitlescreenGraphics
+LoadTitlescreenGraphics: @ 0x08010944
+ push {r4, r5, lr}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _080109BC @ =0x0400000A
+ movs r0, #0x85
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #2
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080109C0 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r4, #0x16]
+ ldr r5, _080109C4 @ =0x040000D4
+ ldr r0, _080109C8 @ =gTitlescreenBg_Gfx
+ str r0, [r5]
+ ldr r0, _080109CC @ =0x06004000
+ str r0, [r5, #4]
+ ldr r0, _080109D0 @ =0x80005000
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _080109D4 @ =gTitlescreenBg_Pals
+ str r0, [r5]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r5, #4]
+ ldr r0, _080109D8 @ =0x80000100
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _080109DC @ =gTitlescreenBgTilemap
+ str r0, [r5]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r5, #4]
+ ldr r0, _080109E0 @ =0x80000400
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ bl sub_52C44
+ ldr r0, [r4, #0x40]
+ cmp r0, #1
+ bne _080109F4
+ ldr r0, _080109E4 @ =gTitlescreenSprites_Pals
+ str r0, [r5]
+ ldr r0, _080109E8 @ =0x05000200
+ str r0, [r5, #4]
+ ldr r0, _080109EC @ =0x80000050
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _080109F0 @ =gTitlescreenSpritesSavedGame_Gfx
+ b _08010A04
+ .align 2, 0
+_080109BC: .4byte 0x0400000A
+_080109C0: .4byte 0x0200B0C0
+_080109C4: .4byte 0x040000D4
+_080109C8: .4byte gTitlescreenBg_Gfx
+_080109CC: .4byte 0x06004000
+_080109D0: .4byte 0x80005000
+_080109D4: .4byte gTitlescreenBg_Pals
+_080109D8: .4byte 0x80000100
+_080109DC: .4byte gTitlescreenBgTilemap
+_080109E0: .4byte 0x80000400
+_080109E4: .4byte gTitlescreenSprites_Pals
+_080109E8: .4byte 0x05000200
+_080109EC: .4byte 0x80000050
+_080109F0: .4byte gTitlescreenSpritesSavedGame_Gfx
+_080109F4:
+ ldr r0, _08010A5C @ =gTitlescreenSprites_Pals
+ str r0, [r5]
+ ldr r0, _08010A60 @ =0x05000200
+ str r0, [r5, #4]
+ ldr r0, _08010A64 @ =0x80000050
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08010A68 @ =gTitlescreenSpritesNoSavedGame_Gfx
+_08010A04:
+ str r0, [r5]
+ ldr r0, _08010A6C @ =0x06010000
+ str r0, [r5, #4]
+ ldr r0, _08010A70 @ =0x80003800
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08010A74 @ =0x0852B668
+ str r0, [r5]
+ ldr r0, _08010A78 @ =0x050002A0
+ str r0, [r5, #4]
+ ldr r0, _08010A7C @ =0x80000020
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08010A80 @ =0x0852B868
+ str r0, [r5]
+ ldr r0, _08010A84 @ =0x06017000
+ str r0, [r5, #4]
+ ldr r0, _08010A88 @ =0x80000200
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ bl sub_10AC0
+ ldr r0, _08010A8C @ =0x0201A4B4
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ cmp r2, #1
+ bne _08010A9C
+ ldr r1, _08010A90 @ =0x0202BE24
+ movs r0, #0
+ strb r0, [r1]
+ ldr r1, _08010A94 @ =0x02002888
+ movs r0, #0
+ strb r0, [r1, #9]
+ strb r2, [r1, #0xb]
+ ldr r1, _08010A98 @ =0x0200B0C0
+ movs r0, #3
+ strb r0, [r1, #3]
+ bl sub_CBC
+ movs r0, #0
+ bl sub_FD5C
+ b _08010AAC
+ .align 2, 0
+_08010A5C: .4byte gTitlescreenSprites_Pals
+_08010A60: .4byte 0x05000200
+_08010A64: .4byte 0x80000050
+_08010A68: .4byte gTitlescreenSpritesNoSavedGame_Gfx
+_08010A6C: .4byte 0x06010000
+_08010A70: .4byte 0x80003800
+_08010A74: .4byte 0x0852B668
+_08010A78: .4byte 0x050002A0
+_08010A7C: .4byte 0x80000020
+_08010A80: .4byte 0x0852B868
+_08010A84: .4byte 0x06017000
+_08010A88: .4byte 0x80000200
+_08010A8C: .4byte 0x0201A4B4
+_08010A90: .4byte 0x0202BE24
+_08010A94: .4byte 0x02002888
+_08010A98: .4byte 0x0200B0C0
+_08010A9C:
+ ldr r0, _08010AB8 @ =0x0200B0C0
+ movs r1, #1
+ strb r1, [r0, #3]
+ bl sub_CBC
+ ldr r0, _08010ABC @ =sub_11640 + 1
+ bl sub_FD5C
+_08010AAC:
+ movs r0, #1
+ bl m4aSongNumStart
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010AB8: .4byte 0x0200B0C0
+_08010ABC: .4byte sub_11640 + 1
+
+ thumb_func_start sub_10AC0
+sub_10AC0: @ 0x08010AC0
+ push {r4, r5, r6, r7, lr}
+ ldr r1, _08010B28 @ =0x02002888
+ movs r2, #0
+ movs r0, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #2]
+ strb r2, [r1, #6]
+ strb r2, [r1, #8]
+ movs r0, #4
+ strb r0, [r1, #0x10]
+ movs r3, #1
+ strb r3, [r1, #9]
+ strb r2, [r1, #0x11]
+ movs r0, #6
+ strb r0, [r1, #0xa]
+ strb r2, [r1, #0xc]
+ movs r0, #3
+ strb r0, [r1, #0xe]
+ strb r2, [r1, #0xb]
+ strb r2, [r1, #0xd]
+ strb r2, [r1, #0xf]
+ ldr r0, _08010B2C @ =0x0202C588
+ strh r3, [r0]
+ ldr r0, _08010B30 @ =0x020028A0
+ strb r2, [r0]
+ ldr r0, _08010B34 @ =0x020028A1
+ strb r2, [r0]
+ ldr r0, _08010B38 @ =0x020028A2
+ strb r2, [r0]
+ ldr r0, _08010B3C @ =0x020028A3
+ strb r2, [r0]
+ ldr r0, _08010B40 @ =0x0200B0C0
+ ldr r2, [r0, #0x40]
+ adds r6, r0, #0
+ cmp r2, #1
+ bne _08010B58
+ ldr r7, _08010B44 @ =0x020028A4
+ ldr r5, _08010B48 @ =0x020028A5
+ ldr r0, _08010B4C @ =0x0202BE24
+ mov ip, r0
+ ldr r4, _08010B50 @ =0x086A975C
+ ldr r3, _08010B54 @ =0x0202BE00
+ movs r2, #6
+_08010B16:
+ ldm r4!, {r0}
+ stm r3!, {r0}
+ subs r2, #1
+ cmp r2, #0
+ bge _08010B16
+ movs r0, #1
+ strb r0, [r1]
+ strb r0, [r1, #7]
+ b _08010B78
+ .align 2, 0
+_08010B28: .4byte 0x02002888
+_08010B2C: .4byte 0x0202C588
+_08010B30: .4byte 0x020028A0
+_08010B34: .4byte 0x020028A1
+_08010B38: .4byte 0x020028A2
+_08010B3C: .4byte 0x020028A3
+_08010B40: .4byte 0x0200B0C0
+_08010B44: .4byte 0x020028A4
+_08010B48: .4byte 0x020028A5
+_08010B4C: .4byte 0x0202BE24
+_08010B50: .4byte 0x086A975C
+_08010B54: .4byte 0x0202BE00
+_08010B58:
+ ldr r7, _08010B94 @ =0x020028A4
+ ldr r5, _08010B98 @ =0x020028A5
+ ldr r0, _08010B9C @ =0x0202BE24
+ mov ip, r0
+ ldr r4, _08010BA0 @ =0x086A96F8
+ ldr r3, _08010BA4 @ =0x0201C190
+ movs r2, #6
+_08010B66:
+ ldm r4!, {r0}
+ stm r3!, {r0}
+ subs r2, #1
+ cmp r2, #0
+ bge _08010B66
+ movs r0, #0
+ strb r0, [r1]
+ strb r0, [r1, #7]
+ strb r0, [r6, #0xd]
+_08010B78:
+ movs r2, #0
+ movs r0, #0
+ strh r0, [r1, #0x14]
+ movs r0, #1
+ strh r0, [r1, #0x12]
+ strb r2, [r7]
+ ldrh r1, [r6, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0xf
+ bne _08010BA8
+ movs r0, #1
+ strb r0, [r5]
+ b _08010BAA
+ .align 2, 0
+_08010B94: .4byte 0x020028A4
+_08010B98: .4byte 0x020028A5
+_08010B9C: .4byte 0x0202BE24
+_08010BA0: .4byte 0x086A96F8
+_08010BA4: .4byte 0x0201C190
+_08010BA8:
+ strb r2, [r5]
+_08010BAA:
+ movs r0, #0
+ mov r1, ip
+ strb r0, [r1]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_10BB8
+sub_10BB8: @ 0x08010BB8
+ push {r4, r5, r6, r7, lr}
+ ldr r2, _08010BE8 @ =0x0200B0C0
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ adds r7, r2, #0
+ cmp r0, #0xf
+ bne _08010BF8
+ ldr r0, _08010BEC @ =0x020028A5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r2, _08010BF0 @ =0x020028A4
+ cmp r0, #0
+ bne _08010C00
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _08010BF4 @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xb
+ strb r0, [r7, #3]
+ b _08010C00
+ .align 2, 0
+_08010BE8: .4byte 0x0200B0C0
+_08010BEC: .4byte 0x020028A5
+_08010BF0: .4byte 0x020028A4
+_08010BF4: .4byte 0x02002888
+_08010BF8:
+ ldr r1, _08010CD4 @ =0x020028A5
+ movs r0, #0
+ strb r0, [r1]
+ ldr r2, _08010CD8 @ =0x020028A4
+_08010C00:
+ movs r4, #0
+ ldrsb r4, [r2, r4]
+ cmp r4, #0
+ bne _08010CC8
+ ldr r2, _08010CDC @ =0x02002888
+ ldrh r0, [r2, #4]
+ adds r0, #1
+ strh r0, [r2, #4]
+ ldr r3, _08010CE0 @ =0x086A9662
+ movs r1, #8
+ ldrsb r1, [r2, r1]
+ adds r1, r1, r3
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _08010C3A
+ strh r4, [r2, #4]
+ ldrb r0, [r2, #8]
+ adds r0, #1
+ strb r0, [r2, #8]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #3
+ ble _08010C3A
+ movs r0, #0
+ strb r0, [r2, #8]
+_08010C3A:
+ adds r4, r7, #0
+ ldrh r1, [r4, #0x1c]
+ ldr r0, _08010CE4 @ =0x000003FF
+ ands r0, r1
+ cmp r0, #0
+ beq _08010C4A
+ movs r0, #0
+ strh r0, [r2, #0x14]
+_08010C4A:
+ ldrh r1, [r4, #0x18]
+ movs r0, #9
+ ands r0, r1
+ cmp r0, #0
+ beq _08010C66
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r1, _08010CDC @ =0x02002888
+ movs r0, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #2]
+ movs r0, #2
+ strb r0, [r4, #3]
+_08010C66:
+ bl sub_114FC
+ bl sub_1157C
+ ldr r6, _08010CDC @ =0x02002888
+ ldrh r0, [r6, #0x14]
+ adds r0, #1
+ strh r0, [r6, #0x14]
+ lsls r0, r0, #0x10
+ movs r1, #0xe1
+ lsls r1, r1, #0x13
+ cmp r0, r1
+ ble _08010CC8
+ movs r1, #0x14
+ ldrsh r0, [r6, r1]
+ movs r1, #0xa
+ bl __modsi3
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08010CB4
+ ldrh r0, [r6, #0x12]
+ adds r0, #1
+ strh r0, [r6, #0x12]
+ ldr r4, _08010CE8 @ =0x02032EE0
+ ldr r5, _08010CEC @ =0x0000FFFF
+ movs r0, #0x12
+ ldrsh r1, [r6, r0]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ bl __divsi3
+ adds r2, r0, #0
+ lsls r2, r2, #0x10
+ lsrs r2, r2, #0x10
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl m4aMPlayVolumeControl
+_08010CB4:
+ movs r1, #0x12
+ ldrsh r0, [r6, r1]
+ cmp r0, #9
+ ble _08010CC8
+ movs r0, #0
+ strh r0, [r6, #0x14]
+ movs r0, #7
+ strb r0, [r6, #6]
+ movs r0, #0xb
+ strb r0, [r7, #3]
+_08010CC8:
+ bl sub_11640
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010CD4: .4byte 0x020028A5
+_08010CD8: .4byte 0x020028A4
+_08010CDC: .4byte 0x02002888
+_08010CE0: .4byte 0x086A9662
+_08010CE4: .4byte 0x000003FF
+_08010CE8: .4byte 0x02032EE0
+_08010CEC: .4byte 0x0000FFFF
+
+ thumb_func_start sub_10CF0
+sub_10CF0: @ 0x08010CF0
+ push {r4, r5, r6, r7, lr}
+ ldr r6, _08010D70 @ =0x0200B0C0
+ ldrh r1, [r6, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _08010D74 @ =0x020028A4
+ cmp r0, #0xf
+ bne _08010D0E
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _08010D78 @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xb
+ strb r0, [r6, #3]
+_08010D0E:
+ movs r4, #0
+ ldrsb r4, [r2, r4]
+ cmp r4, #0
+ bne _08010D66
+ ldr r3, _08010D78 @ =0x02002888
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ movs r7, #0
+ strh r0, [r3, #4]
+ ldr r5, _08010D7C @ =0x086A9666
+ movs r2, #2
+ ldrsh r1, [r3, r2]
+ lsls r1, r1, #1
+ adds r2, r5, #1
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _08010D66
+ strh r4, [r3, #4]
+ movs r1, #2
+ ldrsh r0, [r3, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ strb r0, [r3, #8]
+ ldrh r0, [r3, #2]
+ adds r0, #1
+ strh r0, [r3, #2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #5
+ ble _08010D66
+ strh r4, [r3, #2]
+ ldr r0, _08010D80 @ =0x0202BE24
+ strb r7, [r0]
+ strb r7, [r3, #9]
+ movs r0, #1
+ strb r0, [r3, #0xb]
+ movs r0, #3
+ strb r0, [r6, #3]
+_08010D66:
+ bl sub_11640
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010D70: .4byte 0x0200B0C0
+_08010D74: .4byte 0x020028A4
+_08010D78: .4byte 0x02002888
+_08010D7C: .4byte 0x086A9666
+_08010D80: .4byte 0x0202BE24
+
+ thumb_func_start sub_10D84
+sub_10D84: @ 0x08010D84
+ push {r4, r5, r6, lr}
+ ldr r6, _08010DD0 @ =0x0200B0C0
+ ldrh r1, [r6, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _08010DD4 @ =0x020028A4
+ cmp r0, #0xf
+ bne _08010DA2
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _08010DD8 @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xa
+ strb r0, [r6, #3]
+_08010DA2:
+ movs r5, #0
+ ldrsb r5, [r2, r5]
+ cmp r5, #0
+ bne _08010DF2
+ ldrh r1, [r6, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _08010DDC
+ movs r0, #0x65
+ bl m4aSongNumStart
+ bl sub_11B74
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ strb r5, [r6, #3]
+ b _08010DF2
+ .align 2, 0
+_08010DD0: .4byte 0x0200B0C0
+_08010DD4: .4byte 0x020028A4
+_08010DD8: .4byte 0x02002888
+_08010DDC:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08010DF2
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _08010DFC @ =0x02002888
+ strb r4, [r0, #0x11]
+ movs r0, #1
+ strb r0, [r6, #3]
+_08010DF2:
+ bl sub_11640
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010DFC: .4byte 0x02002888
+
+ thumb_func_start sub_10E00
+sub_10E00: @ 0x08010E00
+ push {r4, r5, r6, lr}
+ ldr r5, _08010E7C @ =0x0200B0C0
+ ldrh r1, [r5, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _08010E80 @ =0x020028A4
+ cmp r0, #0xf
+ bne _08010E1E
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _08010E84 @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xb
+ strb r0, [r5, #3]
+_08010E1E:
+ movs r4, #0
+ ldrsb r4, [r2, r4]
+ cmp r4, #0
+ bne _08010EE0
+ ldr r3, _08010E84 @ =0x02002888
+ ldrb r0, [r3, #7]
+ cmp r0, #0
+ bne _08010E94
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ strh r0, [r3, #4]
+ ldr r2, _08010E88 @ =0x086A9748
+ movs r6, #2
+ ldrsh r1, [r3, r6]
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _08010E76
+ strh r4, [r3, #4]
+ ldr r2, _08010E8C @ =0x0201C190
+ ldr r1, _08010E90 @ =0x086A9714
+ movs r6, #2
+ ldrsh r0, [r3, r6]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ str r0, [r2, #0x18]
+ ldrh r0, [r3, #2]
+ adds r0, #1
+ strh r0, [r3, #2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb
+ ble _08010E76
+ strh r4, [r3, #2]
+ movs r0, #1
+ strb r0, [r3, #0xd]
+ strb r0, [r3, #0xf]
+ movs r0, #4
+ strb r0, [r5, #3]
+_08010E76:
+ bl sub_1175C
+ b _08010EE0
+ .align 2, 0
+_08010E7C: .4byte 0x0200B0C0
+_08010E80: .4byte 0x020028A4
+_08010E84: .4byte 0x02002888
+_08010E88: .4byte 0x086A9748
+_08010E8C: .4byte 0x0201C190
+_08010E90: .4byte 0x086A9714
+_08010E94:
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ strh r0, [r3, #4]
+ ldr r2, _08010EE8 @ =0x086A9748
+ movs r6, #2
+ ldrsh r1, [r3, r6]
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _08010EDC
+ strh r4, [r3, #4]
+ ldr r2, _08010EEC @ =0x0202BE00
+ ldr r1, _08010EF0 @ =0x086A9778
+ movs r6, #2
+ ldrsh r0, [r3, r6]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ str r0, [r2, #0x18]
+ ldrh r0, [r3, #2]
+ adds r0, #1
+ strh r0, [r3, #2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb
+ ble _08010EDC
+ strh r4, [r3, #2]
+ movs r0, #1
+ strb r0, [r3, #0xd]
+ strb r0, [r3, #0xf]
+ movs r0, #5
+ strb r0, [r5, #3]
+_08010EDC:
+ bl sub_11968
+_08010EE0:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010EE8: .4byte 0x086A9748
+_08010EEC: .4byte 0x0202BE00
+_08010EF0: .4byte 0x086A9778
+
+ thumb_func_start sub_10EF4
+sub_10EF4: @ 0x08010EF4
+ push {r4, r5, lr}
+ ldr r3, _08010F94 @ =0x0200B0C0
+ ldrh r1, [r3, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _08010F98 @ =0x020028A4
+ cmp r0, #0xf
+ bne _08010F12
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _08010F9C @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xa
+ strb r0, [r3, #3]
+_08010F12:
+ movs r4, #0
+ ldrsb r4, [r2, r4]
+ cmp r4, #0
+ bne _08011010
+ ldr r3, _08010F9C @ =0x02002888
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ strh r0, [r3, #4]
+ ldr r5, _08010FA0 @ =0x086A9672
+ movs r2, #2
+ ldrsh r1, [r3, r2]
+ lsls r1, r1, #1
+ adds r2, r5, #1
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _08010F68
+ strh r4, [r3, #4]
+ ldrh r0, [r3, #2]
+ adds r0, #1
+ strh r0, [r3, #2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #6
+ ble _08010F4E
+ strh r4, [r3, #2]
+_08010F4E:
+ movs r1, #2
+ ldrsh r0, [r3, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ strb r0, [r3, #0xc]
+ movs r2, #2
+ ldrsh r0, [r3, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ adds r0, #3
+ strb r0, [r3, #0xe]
+_08010F68:
+ ldr r0, _08010F94 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ cmp r4, #0
+ beq _08010FA4
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldr r1, _08010F9C @ =0x02002888
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bge _08010FC4
+ movs r0, #3
+ strb r0, [r1]
+ b _08010FC4
+ .align 2, 0
+_08010F94: .4byte 0x0200B0C0
+_08010F98: .4byte 0x020028A4
+_08010F9C: .4byte 0x02002888
+_08010FA0: .4byte 0x086A9672
+_08010FA4:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08010FC4
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldr r1, _08010FE4 @ =0x02002888
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #3
+ ble _08010FC4
+ strb r4, [r1]
+_08010FC4:
+ ldr r5, _08010FE8 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r4, #9
+ ands r4, r1
+ cmp r4, #0
+ beq _08010FEC
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r1, _08010FE4 @ =0x02002888
+ movs r0, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #2]
+ movs r0, #7
+ b _0801100A
+ .align 2, 0
+_08010FE4: .4byte 0x02002888
+_08010FE8: .4byte 0x0200B0C0
+_08010FEC:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _0801100C
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r1, _0801101C @ =0x02002888
+ movs r2, #0
+ strh r4, [r1, #4]
+ movs r0, #0xc
+ strh r0, [r1, #2]
+ strb r2, [r1, #0xd]
+ strb r2, [r1, #0xf]
+ movs r0, #6
+_0801100A:
+ strb r0, [r5, #3]
+_0801100C:
+ bl sub_1157C
+_08011010:
+ bl sub_1175C
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801101C: .4byte 0x02002888
+
+ thumb_func_start sub_11020
+sub_11020: @ 0x08011020
+ push {r4, r5, lr}
+ ldr r3, _08011088 @ =0x0200B0C0
+ ldrh r1, [r3, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _0801108C @ =0x020028A4
+ cmp r0, #0xf
+ bne _0801103E
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _08011090 @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xb
+ strb r0, [r3, #3]
+_0801103E:
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ bne _080110DE
+ ldr r5, _08011090 @ =0x02002888
+ ldrh r1, [r5, #4]
+ movs r0, #3
+ ands r1, r0
+ cmp r1, #0
+ bne _080110B6
+ movs r2, #2
+ ldrsh r0, [r5, r2]
+ cmp r0, #0
+ bne _080110A0
+ movs r0, #1
+ strh r0, [r5, #2]
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ lsls r0, r0, #0xb
+ ldr r4, _08011094 @ =0x060101E0
+ adds r0, r0, r4
+ ldr r1, _08011098 @ =0x03000000
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ ldr r0, _0801109C @ =0x060161E0
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #0xb
+ adds r1, r1, r4
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ b _080110B6
+ .align 2, 0
+_08011088: .4byte 0x0200B0C0
+_0801108C: .4byte 0x020028A4
+_08011090: .4byte 0x02002888
+_08011094: .4byte 0x060101E0
+_08011098: .4byte 0x03000000
+_0801109C: .4byte 0x060161E0
+_080110A0:
+ strh r1, [r5, #2]
+ ldr r0, _080110E8 @ =0x03000000
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #0xb
+ ldr r2, _080110EC @ =0x060101E0
+ adds r1, r1, r2
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+_080110B6:
+ ldr r3, _080110F0 @ =0x02002888
+ movs r1, #4
+ ldrsh r0, [r3, r1]
+ cmp r0, #0x14
+ ble _080110D8
+ ldr r2, _080110F4 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r2, #0xd]
+ ldr r1, _080110F8 @ =0x086A96A4
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ strb r0, [r3, #6]
+ movs r0, #0xa
+ strb r0, [r2, #3]
+_080110D8:
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ strh r0, [r3, #4]
+_080110DE:
+ bl sub_1175C
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080110E8: .4byte 0x03000000
+_080110EC: .4byte 0x060101E0
+_080110F0: .4byte 0x02002888
+_080110F4: .4byte 0x0200B0C0
+_080110F8: .4byte 0x086A96A4
+
+ thumb_func_start sub_110FC
+sub_110FC: @ 0x080110FC
+ push {r4, r5, lr}
+ ldr r3, _0801119C @ =0x0200B0C0
+ ldrh r1, [r3, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _080111A0 @ =0x020028A4
+ cmp r0, #0xf
+ bne _0801111A
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _080111A4 @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xa
+ strb r0, [r3, #3]
+_0801111A:
+ movs r4, #0
+ ldrsb r4, [r2, r4]
+ cmp r4, #0
+ bne _08011218
+ ldr r3, _080111A4 @ =0x02002888
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ strh r0, [r3, #4]
+ ldr r5, _080111A8 @ =0x086A9672
+ movs r2, #2
+ ldrsh r1, [r3, r2]
+ lsls r1, r1, #1
+ adds r2, r5, #1
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _08011170
+ strh r4, [r3, #4]
+ ldrh r0, [r3, #2]
+ adds r0, #1
+ strh r0, [r3, #2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #6
+ ble _08011156
+ strh r4, [r3, #2]
+_08011156:
+ movs r1, #2
+ ldrsh r0, [r3, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ strb r0, [r3, #0xc]
+ movs r2, #2
+ ldrsh r0, [r3, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ adds r0, #3
+ strb r0, [r3, #0xe]
+_08011170:
+ ldr r0, _0801119C @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ cmp r4, #0
+ beq _080111AC
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldr r1, _080111A4 @ =0x02002888
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bge _080111CC
+ movs r0, #4
+ strb r0, [r1]
+ b _080111CC
+ .align 2, 0
+_0801119C: .4byte 0x0200B0C0
+_080111A0: .4byte 0x020028A4
+_080111A4: .4byte 0x02002888
+_080111A8: .4byte 0x086A9672
+_080111AC:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080111CC
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldr r1, _080111EC @ =0x02002888
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #4
+ ble _080111CC
+ strb r4, [r1]
+_080111CC:
+ ldr r5, _080111F0 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r4, #9
+ ands r4, r1
+ cmp r4, #0
+ beq _080111F4
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r1, _080111EC @ =0x02002888
+ movs r0, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #2]
+ movs r0, #8
+ b _08011212
+ .align 2, 0
+_080111EC: .4byte 0x02002888
+_080111F0: .4byte 0x0200B0C0
+_080111F4:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08011214
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r1, _08011224 @ =0x02002888
+ movs r2, #0
+ strh r4, [r1, #4]
+ movs r0, #0xc
+ strh r0, [r1, #2]
+ strb r2, [r1, #0xd]
+ strb r2, [r1, #0xf]
+ movs r0, #6
+_08011212:
+ strb r0, [r5, #3]
+_08011214:
+ bl sub_1157C
+_08011218:
+ bl sub_11968
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011224: .4byte 0x02002888
+
+ thumb_func_start sub_11228
+sub_11228: @ 0x08011228
+ push {r4, r5, lr}
+ ldr r3, _08011290 @ =0x0200B0C0
+ ldrh r1, [r3, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _08011294 @ =0x020028A4
+ cmp r0, #0xf
+ bne _08011246
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _08011298 @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xb
+ strb r0, [r3, #3]
+_08011246:
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ bne _0801130C
+ ldr r5, _08011298 @ =0x02002888
+ ldrh r1, [r5, #4]
+ movs r0, #3
+ ands r1, r0
+ cmp r1, #0
+ bne _080112BE
+ movs r2, #2
+ ldrsh r0, [r5, r2]
+ cmp r0, #0
+ bne _080112A8
+ movs r0, #1
+ strh r0, [r5, #2]
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ lsls r0, r0, #0xb
+ ldr r4, _0801129C @ =0x060101E0
+ adds r0, r0, r4
+ ldr r1, _080112A0 @ =0x03000000
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ ldr r0, _080112A4 @ =0x060161E0
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #0xb
+ adds r1, r1, r4
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ b _080112BE
+ .align 2, 0
+_08011290: .4byte 0x0200B0C0
+_08011294: .4byte 0x020028A4
+_08011298: .4byte 0x02002888
+_0801129C: .4byte 0x060101E0
+_080112A0: .4byte 0x03000000
+_080112A4: .4byte 0x060161E0
+_080112A8:
+ strh r1, [r5, #2]
+ ldr r0, _080112DC @ =0x03000000
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #0xb
+ ldr r2, _080112E0 @ =0x060101E0
+ adds r1, r1, r2
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+_080112BE:
+ ldr r0, _080112E4 @ =0x02002888
+ movs r2, #4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, #0
+ cmp r1, #0x14
+ ble _08011306
+ movs r2, #0
+ ldrsb r2, [r3, r2]
+ cmp r2, #1
+ bne _080112EC
+ ldr r0, _080112E8 @ =0x0200B0C0
+ strb r2, [r0, #0xd]
+ adds r2, r0, #0
+ b _080112F4
+ .align 2, 0
+_080112DC: .4byte 0x03000000
+_080112E0: .4byte 0x060101E0
+_080112E4: .4byte 0x02002888
+_080112E8: .4byte 0x0200B0C0
+_080112EC:
+ ldr r1, _08011318 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #0xd]
+ adds r2, r1, #0
+_080112F4:
+ ldr r1, _0801131C @ =0x086A96D4
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ strb r0, [r3, #6]
+ movs r0, #0xa
+ strb r0, [r2, #3]
+_08011306:
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ strh r0, [r3, #4]
+_0801130C:
+ bl sub_11968
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011318: .4byte 0x0200B0C0
+_0801131C: .4byte 0x086A96D4
+
+ thumb_func_start sub_11320
+sub_11320: @ 0x08011320
+ push {r4, r5, r6, r7, lr}
+ ldr r5, _080113A4 @ =0x0200B0C0
+ ldrh r1, [r5, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ ldr r2, _080113A8 @ =0x020028A4
+ cmp r0, #0xf
+ bne _0801133E
+ movs r0, #1
+ strb r0, [r2]
+ ldr r1, _080113AC @ =0x02002888
+ movs r0, #9
+ strb r0, [r1, #6]
+ movs r0, #0xb
+ strb r0, [r5, #3]
+_0801133E:
+ movs r4, #0
+ ldrsb r4, [r2, r4]
+ cmp r4, #0
+ bne _08011410
+ ldr r3, _080113AC @ =0x02002888
+ ldrb r0, [r3, #7]
+ cmp r0, #0
+ bne _080113C0
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ movs r6, #0
+ strh r0, [r3, #4]
+ ldr r2, _080113B0 @ =0x086A9748
+ movs r7, #2
+ ldrsh r1, [r3, r7]
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _0801139C
+ strh r4, [r3, #4]
+ ldrh r0, [r3, #2]
+ subs r0, #1
+ strh r0, [r3, #2]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bge _0801138C
+ strh r4, [r3, #2]
+ strb r6, [r3]
+ ldr r0, _080113B4 @ =0x0202BE24
+ movs r1, #1
+ strb r1, [r0]
+ movs r0, #1
+ strb r0, [r3, #9]
+ strb r6, [r3, #0xb]
+ strb r0, [r5, #3]
+_0801138C:
+ ldr r2, _080113B8 @ =0x0201C190
+ ldr r1, _080113BC @ =0x086A9714
+ movs r4, #2
+ ldrsh r0, [r3, r4]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ str r0, [r2, #0x18]
+_0801139C:
+ bl sub_1175C
+ b _08011410
+ .align 2, 0
+_080113A4: .4byte 0x0200B0C0
+_080113A8: .4byte 0x020028A4
+_080113AC: .4byte 0x02002888
+_080113B0: .4byte 0x086A9748
+_080113B4: .4byte 0x0202BE24
+_080113B8: .4byte 0x0201C190
+_080113BC: .4byte 0x086A9714
+_080113C0:
+ ldrh r0, [r3, #4]
+ adds r0, #1
+ strh r0, [r3, #4]
+ ldr r2, _08011418 @ =0x086A9748
+ movs r6, #2
+ ldrsh r1, [r3, r6]
+ adds r1, r1, r2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ cmp r0, r1
+ blt _0801140C
+ strh r4, [r3, #4]
+ ldrh r0, [r3, #2]
+ subs r0, #1
+ strh r0, [r3, #2]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bge _080113FC
+ strh r4, [r3, #2]
+ movs r0, #1
+ strb r0, [r3]
+ ldr r1, _0801141C @ =0x0202BE24
+ strb r0, [r1]
+ strb r0, [r3, #9]
+ movs r1, #0
+ strb r1, [r3, #0xb]
+ strb r0, [r5, #3]
+_080113FC:
+ ldr r2, _08011420 @ =0x0202BE00
+ ldr r1, _08011424 @ =0x086A9778
+ movs r7, #2
+ ldrsh r0, [r3, r7]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ str r0, [r2, #0x18]
+_0801140C:
+ bl sub_11968
+_08011410:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011418: .4byte 0x086A9748
+_0801141C: .4byte 0x0202BE24
+_08011420: .4byte 0x0202BE00
+_08011424: .4byte 0x086A9778
+
+ thumb_func_start sub_11428
+sub_11428: @ 0x08011428
+ push {lr}
+ ldr r0, _0801143C @ =0x02002888
+ ldrb r0, [r0, #7]
+ cmp r0, #0
+ bne _08011444
+ ldr r0, _08011440 @ =sub_1175C + 1
+ bl sub_FE04
+ b _0801144A
+ .align 2, 0
+_0801143C: .4byte 0x02002888
+_08011440: .4byte sub_1175C + 1
+_08011444:
+ ldr r0, _08011470 @ =sub_11968 + 1
+ bl sub_FE04
+_0801144A:
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08011474 @ =0x086A964C
+ ldr r0, _08011478 @ =0x02002888
+ ldrb r0, [r0, #6]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #8
+ bne _08011480
+ ldr r1, _0801147C @ =0x0202C588
+ movs r0, #0
+ b _08011484
+ .align 2, 0
+_08011470: .4byte sub_11968 + 1
+_08011474: .4byte 0x086A964C
+_08011478: .4byte 0x02002888
+_0801147C: .4byte 0x0202C588
+_08011480:
+ ldr r1, _080114A4 @ =0x0202C588
+ movs r0, #1
+_08011484:
+ strh r0, [r1]
+ ldr r1, _080114A8 @ =0x0201A4B4
+ movs r0, #0
+ strb r0, [r1]
+ ldr r1, _080114AC @ =0x086A964C
+ ldr r0, _080114B0 @ =0x02002888
+ ldrb r0, [r0, #6]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080114A4: .4byte 0x0202C588
+_080114A8: .4byte 0x0201A4B4
+_080114AC: .4byte 0x086A964C
+_080114B0: .4byte 0x02002888
+
+ thumb_func_start sub_114B4
+sub_114B4: @ 0x080114B4
+ push {lr}
+ ldr r0, _080114E8 @ =sub_11640 + 1
+ bl sub_FE04
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _080114EC @ =0x0202C588
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _080114F0 @ =0x0201A4B4
+ movs r0, #0
+ strb r0, [r1]
+ ldr r1, _080114F4 @ =0x086A964C
+ ldr r0, _080114F8 @ =0x02002888
+ ldrb r0, [r0, #6]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080114E8: .4byte sub_11640 + 1
+_080114EC: .4byte 0x0202C588
+_080114F0: .4byte 0x0201A4B4
+_080114F4: .4byte 0x086A964C
+_080114F8: .4byte 0x02002888
+
+ thumb_func_start sub_114FC
+sub_114FC: @ 0x080114FC
+ push {r4, lr}
+ ldr r4, _0801156C @ =0x0200B0C0
+ ldrh r2, [r4, #0x1c]
+ movs r1, #0x88
+ lsls r1, r1, #2
+ adds r0, r1, #0
+ ands r0, r2
+ cmp r0, r1
+ bne _08011546
+ ldrh r1, [r4, #0x18]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08011546
+ ldr r2, _08011570 @ =0x020028A1
+ movs r0, #0x28
+ strb r0, [r2]
+ ldr r1, _08011574 @ =0x020028A0
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #3
+ bne _08011546
+ movs r0, #0
+ strb r0, [r1]
+ strb r0, [r2]
+ movs r0, #0x68
+ bl m4aSongNumStart
+ ldr r1, _08011578 @ =0x02002888
+ movs r0, #1
+ strb r0, [r1, #0x11]
+ movs r0, #9
+ strb r0, [r4, #3]
+_08011546:
+ ldr r2, _08011570 @ =0x020028A1
+ ldrb r1, [r2]
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ ble _08011564
+ subs r0, r1, #1
+ strb r0, [r2]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bgt _08011564
+ movs r1, #0
+ strb r1, [r2]
+ ldr r0, _08011574 @ =0x020028A0
+ strb r1, [r0]
+_08011564:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801156C: .4byte 0x0200B0C0
+_08011570: .4byte 0x020028A1
+_08011574: .4byte 0x020028A0
+_08011578: .4byte 0x02002888
+
+ thumb_func_start sub_1157C
+sub_1157C: @ 0x0801157C
+ push {r4, r5, r6, r7, lr}
+ ldr r6, _080115E4 @ =0x086A97AC
+ ldr r3, _080115E8 @ =0x020028A2
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ ldrh r5, [r0]
+ ldr r2, _080115EC @ =0x0200B0C0
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0x10
+ ands r0, r1
+ adds r4, r2, #0
+ ldr r7, _080115F0 @ =0x020028A3
+ cmp r0, #0
+ beq _080115FC
+ ldrh r1, [r4, #0x18]
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ ands r1, r0
+ cmp r1, r0
+ bne _080115FC
+ movs r0, #0x28
+ strb r0, [r7]
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _080115FC
+ movs r0, #0
+ strb r0, [r3]
+ strb r0, [r7]
+ movs r0, #0x65
+ bl m4aSongNumStart
+ ldr r1, _080115F4 @ =0x02002888
+ movs r0, #5
+ strb r0, [r1, #6]
+ ldrb r0, [r4, #3]
+ cmp r0, #1
+ bne _080115F8
+ movs r0, #0xb
+ b _080115FA
+ .align 2, 0
+_080115E4: .4byte 0x086A97AC
+_080115E8: .4byte 0x020028A2
+_080115EC: .4byte 0x0200B0C0
+_080115F0: .4byte 0x020028A3
+_080115F4: .4byte 0x02002888
+_080115F8:
+ movs r0, #0xa
+_080115FA:
+ strb r0, [r4, #3]
+_080115FC:
+ ldrh r0, [r4, #0x18]
+ ldr r1, _08011638 @ =0x000003FF
+ ands r0, r1
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ bics r0, r1
+ cmp r0, #0
+ beq _08011614
+ movs r1, #0
+ strb r1, [r7]
+ ldr r0, _0801163C @ =0x020028A2
+ strb r1, [r0]
+_08011614:
+ ldrb r1, [r7]
+ movs r0, #0
+ ldrsb r0, [r7, r0]
+ cmp r0, #0
+ ble _08011630
+ subs r0, r1, #1
+ strb r0, [r7]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bgt _08011630
+ movs r1, #0
+ strb r1, [r7]
+ ldr r0, _0801163C @ =0x020028A2
+ strb r1, [r0]
+_08011630:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011638: .4byte 0x000003FF
+_0801163C: .4byte 0x020028A2
+
+ thumb_func_start sub_11640
+sub_11640: @ 0x08011640
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ ldr r4, _08011744 @ =0x02002888
+ movs r0, #8
+ ldrsb r0, [r4, r0]
+ movs r1, #0xb8
+ muls r0, r1, r0
+ ldr r2, _08011748 @ =0x0200B3B8
+ adds r7, r0, r2
+ movs r0, #0x10
+ ldrsb r0, [r4, r0]
+ muls r0, r1, r0
+ adds r6, r0, r2
+ movs r0, #9
+ ldrsb r0, [r4, r0]
+ strh r0, [r7]
+ movs r0, #0x11
+ ldrsb r0, [r4, r0]
+ strh r0, [r6]
+ ldr r5, _0801174C @ =0x086A96E4
+ adds r0, r5, #0
+ movs r1, #5
+ bl sub_358
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _080116DC
+ movs r0, #0x78
+ strh r0, [r7, #2]
+ movs r0, #0x66
+ strh r0, [r7, #4]
+ movs r0, #8
+ ldrsb r0, [r4, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r5
+ ldr r0, [r0]
+ mov ip, r0
+ movs r5, #0
+ ldrh r0, [r0]
+ cmp r5, r0
+ bge _080116DC
+ ldr r1, _08011750 @ =0x03005000
+ mov r8, r1
+ ldr r2, _08011754 @ =0xFFFFFE00
+ mov sb, r2
+ adds r4, r7, #0
+ adds r4, #8
+_080116A2:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, r8
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r2, _08011758 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, r8
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #1
+ mov r0, ip
+ ldrh r0, [r0]
+ cmp r5, r0
+ blt _080116A2
+_080116DC:
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _08011730
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ movs r0, #0x50
+ strh r0, [r6, #4]
+ ldr r1, _08011750 @ =0x03005000
+ mov r8, r1
+ ldr r2, _08011754 @ =0xFFFFFE00
+ mov sb, r2
+ adds r4, r6, #0
+ adds r4, #8
+ ldr r0, _08011758 @ =0x000001FF
+ mov ip, r0
+ movs r5, #1
+_080116FC:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, r8
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ mov r0, ip
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, r8
+ ldrb r0, [r6, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _080116FC
+_08011730:
+ movs r0, #0
+ strh r0, [r7]
+ strh r0, [r6]
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011744: .4byte 0x02002888
+_08011748: .4byte 0x0200B3B8
+_0801174C: .4byte 0x086A96E4
+_08011750: .4byte 0x03005000
+_08011754: .4byte 0xFFFFFE00
+_08011758: .4byte 0x000001FF
+
+ thumb_func_start sub_1175C
+sub_1175C: @ 0x0801175C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r2, _08011810 @ =0x0200B0C0
+ ldrh r0, [r2, #0x38]
+ movs r0, #0x84
+ lsls r0, r0, #2
+ strh r0, [r2, #0x38]
+ ldrh r0, [r2, #0x3a]
+ ldr r0, _08011814 @ =0x00000808
+ strh r0, [r2, #0x3a]
+ ldr r1, _08011818 @ =0x04000050
+ ldrh r0, [r2, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r2, #0x3a]
+ strh r0, [r1]
+ ldr r3, _0801181C @ =0x02002888
+ movs r0, #0xa
+ ldrsb r0, [r3, r0]
+ movs r1, #0xb8
+ muls r0, r1, r0
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ adds r2, r2, r4
+ adds r0, r0, r2
+ mov sl, r0
+ movs r0, #0xc
+ ldrsb r0, [r3, r0]
+ muls r0, r1, r0
+ adds r0, r0, r2
+ mov sb, r0
+ movs r0, #0xe
+ ldrsb r0, [r3, r0]
+ muls r0, r1, r0
+ adds r0, r0, r2
+ mov r8, r0
+ movs r0, #0xb
+ ldrsb r0, [r3, r0]
+ mov r6, sl
+ strh r0, [r6]
+ movs r0, #0xd
+ ldrsb r0, [r3, r0]
+ mov r7, sb
+ strh r0, [r7]
+ movs r0, #0xf
+ ldrsb r0, [r3, r0]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r4, _08011820 @ =0x0201C190
+ adds r0, r4, #0
+ movs r1, #7
+ bl sub_358
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _0801187C
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ movs r0, #0x66
+ strh r0, [r6, #4]
+ ldr r4, [r4, #0x18]
+ mov ip, r4
+ movs r2, #0
+ str r2, [sp]
+ ldrh r3, [r4]
+ cmp r2, r3
+ bge _0801187C
+ ldr r6, _08011824 @ =0x03005000
+ mov r4, sl
+ adds r4, #8
+ mov r5, ip
+_080117F2:
+ ldrh r0, [r5, #8]
+ cmp r0, #1
+ bne _08011828
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #1]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #1]
+ b _08011838
+ .align 2, 0
+_08011810: .4byte 0x0200B0C0
+_08011814: .4byte 0x00000808
+_08011818: .4byte 0x04000050
+_0801181C: .4byte 0x02002888
+_08011820: .4byte 0x0201C190
+_08011824: .4byte 0x03005000
+_08011828:
+ ldrh r0, [r4]
+ lsls r0, r0, #3
+ adds r0, r0, r6
+ ldrb r2, [r0, #1]
+ movs r1, #0xd
+ rsbs r1, r1, #0
+ ands r1, r2
+ strb r1, [r0, #1]
+_08011838:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ mov r2, sl
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08011950 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08011954 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r3, sl
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #8
+ ldr r0, [sp]
+ adds r0, #1
+ str r0, [sp]
+ mov r1, ip
+ ldrh r1, [r1]
+ cmp r0, r1
+ blt _080117F2
+_0801187C:
+ mov r2, sb
+ ldrh r0, [r2]
+ cmp r0, #1
+ bne _080118D8
+ ldr r2, _08011958 @ =0x086A9684
+ ldr r1, _0801195C @ =0x02002888
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ mov r3, sb
+ strh r0, [r3, #2]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0, #2]
+ strh r0, [r3, #4]
+ mov r5, sb
+ adds r5, #8
+ ldr r4, _08011960 @ =0x03005000
+ ldrh r2, [r3, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r6, #2
+ ldrsh r1, [r5, r6]
+ movs r7, #2
+ ldrsh r0, [r3, r7]
+ adds r1, r1, r0
+ ldr r3, _08011950 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08011954 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ mov r6, sb
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_080118D8:
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _08011930
+ ldr r2, _08011964 @ =0x086A9694
+ ldr r1, _0801195C @ =0x02002888
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ strh r0, [r7, #2]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0, #2]
+ strh r0, [r7, #4]
+ mov r5, r8
+ adds r5, #8
+ ldr r4, _08011960 @ =0x03005000
+ ldrh r2, [r7, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r7, r3]
+ adds r1, r1, r0
+ ldr r6, _08011950 @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08011954 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r7, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_08011930:
+ movs r0, #0
+ mov r7, sl
+ strh r0, [r7]
+ mov r1, sb
+ strh r0, [r1]
+ mov r2, r8
+ strh r0, [r2]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011950: .4byte 0x000001FF
+_08011954: .4byte 0xFFFFFE00
+_08011958: .4byte 0x086A9684
+_0801195C: .4byte 0x02002888
+_08011960: .4byte 0x03005000
+_08011964: .4byte 0x086A9694
+
+ thumb_func_start sub_11968
+sub_11968: @ 0x08011968
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r2, _08011A1C @ =0x0200B0C0
+ ldrh r0, [r2, #0x38]
+ movs r0, #0x84
+ lsls r0, r0, #2
+ strh r0, [r2, #0x38]
+ ldrh r0, [r2, #0x3a]
+ ldr r0, _08011A20 @ =0x00000808
+ strh r0, [r2, #0x3a]
+ ldr r1, _08011A24 @ =0x04000050
+ ldrh r0, [r2, #0x38]
+ strh r0, [r1]
+ adds r1, #2
+ ldrh r0, [r2, #0x3a]
+ strh r0, [r1]
+ ldr r3, _08011A28 @ =0x02002888
+ movs r0, #0xa
+ ldrsb r0, [r3, r0]
+ movs r1, #0xb8
+ muls r0, r1, r0
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ adds r2, r2, r4
+ adds r0, r0, r2
+ mov sl, r0
+ movs r0, #0xc
+ ldrsb r0, [r3, r0]
+ muls r0, r1, r0
+ adds r0, r0, r2
+ mov sb, r0
+ movs r0, #0xe
+ ldrsb r0, [r3, r0]
+ muls r0, r1, r0
+ adds r0, r0, r2
+ mov r8, r0
+ movs r0, #0xb
+ ldrsb r0, [r3, r0]
+ mov r6, sl
+ strh r0, [r6]
+ movs r0, #0xd
+ ldrsb r0, [r3, r0]
+ mov r7, sb
+ strh r0, [r7]
+ movs r0, #0xf
+ ldrsb r0, [r3, r0]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r4, _08011A2C @ =0x0202BE00
+ adds r0, r4, #0
+ movs r1, #7
+ bl sub_358
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _08011A88
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ movs r0, #0x66
+ strh r0, [r6, #4]
+ ldr r4, [r4, #0x18]
+ mov ip, r4
+ movs r2, #0
+ str r2, [sp]
+ ldrh r3, [r4]
+ cmp r2, r3
+ bge _08011A88
+ ldr r6, _08011A30 @ =0x03005000
+ mov r4, sl
+ adds r4, #8
+ mov r5, ip
+_080119FE:
+ ldrh r0, [r5, #8]
+ cmp r0, #1
+ bne _08011A34
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrb r1, [r2, #1]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #1]
+ b _08011A44
+ .align 2, 0
+_08011A1C: .4byte 0x0200B0C0
+_08011A20: .4byte 0x00000808
+_08011A24: .4byte 0x04000050
+_08011A28: .4byte 0x02002888
+_08011A2C: .4byte 0x0202BE00
+_08011A30: .4byte 0x03005000
+_08011A34:
+ ldrh r0, [r4]
+ lsls r0, r0, #3
+ adds r0, r0, r6
+ ldrb r2, [r0, #1]
+ movs r1, #0xd
+ rsbs r1, r1, #0
+ ands r1, r2
+ strb r1, [r0, #1]
+_08011A44:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ mov r2, sl
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08011B5C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08011B60 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r3, sl
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #8
+ ldr r0, [sp]
+ adds r0, #1
+ str r0, [sp]
+ mov r1, ip
+ ldrh r1, [r1]
+ cmp r0, r1
+ blt _080119FE
+_08011A88:
+ mov r2, sb
+ ldrh r0, [r2]
+ cmp r0, #1
+ bne _08011AE4
+ ldr r2, _08011B64 @ =0x086A96AC
+ ldr r1, _08011B68 @ =0x02002888
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ mov r3, sb
+ strh r0, [r3, #2]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0, #2]
+ strh r0, [r3, #4]
+ mov r5, sb
+ adds r5, #8
+ ldr r4, _08011B6C @ =0x03005000
+ ldrh r2, [r3, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r6, #2
+ ldrsh r1, [r5, r6]
+ movs r7, #2
+ ldrsh r0, [r3, r7]
+ adds r1, r1, r0
+ ldr r3, _08011B5C @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08011B60 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ mov r6, sb
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_08011AE4:
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #1
+ bne _08011B3C
+ ldr r2, _08011B70 @ =0x086A96C0
+ ldr r1, _08011B68 @ =0x02002888
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ strh r0, [r7, #2]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0, #2]
+ strh r0, [r7, #4]
+ mov r5, r8
+ adds r5, #8
+ ldr r4, _08011B6C @ =0x03005000
+ ldrh r2, [r7, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r7, r3]
+ adds r1, r1, r0
+ ldr r6, _08011B5C @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08011B60 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r7, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_08011B3C:
+ movs r0, #0
+ mov r7, sl
+ strh r0, [r7]
+ mov r1, sb
+ strh r0, [r1]
+ mov r2, r8
+ strh r0, [r2]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011B5C: .4byte 0x000001FF
+_08011B60: .4byte 0xFFFFFE00
+_08011B64: .4byte 0x086A96AC
+_08011B68: .4byte 0x02002888
+_08011B6C: .4byte 0x03005000
+_08011B70: .4byte 0x086A96C0
+
+ thumb_func_start sub_11B74
+sub_11B74: @ 0x08011B74
+ push {lr}
+ bl sub_52C64
+ bl sub_52B30
+ ldr r0, _08011B94 @ =0x0200B0C0
+ movs r1, #0
+ str r1, [r0, #0x40]
+ adds r0, #0x40
+ ldr r1, _08011B98 @ =0x0E000544
+ movs r2, #4
+ bl sub_55654
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011B94: .4byte 0x0200B0C0
+_08011B98: .4byte 0x0E000544
diff --git a/data/rom.s b/data/rom.s
index 90dfa27..0f3cf80 100755
--- a/data/rom.s
+++ b/data/rom.s
@@ -45,7 +45,23 @@ gIntroScene1Sprites_Gfx:: @ 0x080C3CE0
.include "data/graphics/mon_portraits.inc"
-.incbin "baserom.gba", 0x4ECF6C, 0x6B159C - 0x4ECF6C
+.incbin "baserom.gba", 0x4ECF6C, 0x6A4AD8 - 0x4ECF6C
+
+gMainFuncs:: @ 0x086A4AD8
+ .4byte IntroMain
+ .4byte TitlescreenMain
+ .4byte PinballGameMain
+ .4byte sub_19028_Main
+ .4byte OptionsMain
+ .4byte PokedexMain
+ .4byte sub_9BC_Main
+ .4byte EReaderMain
+ .4byte HighScoresMain
+ .4byte sub_CE68_Main
+ .4byte FieldSelectMain
+ .4byte sub_25A4_Main
+
+.incbin "baserom.gba", 0x6A4B08, 0x6B159C - 0x6A4B08
gMonHatchSpriteGroupPals:: @ 0x086B159C
.4byte gMonHatchSpriteGroup0_Pals
diff --git a/ld_script.txt b/ld_script.txt
index c1144b6..fc6e3fc 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -28,7 +28,18 @@ SECTIONS
{
asm/start.o(.text);
src/main.o(.text);
- asm/main.o(.text);
+ asm/rom_24C.o(.text);
+ asm/rom_25A4.o(.text);
+ asm/rom_2C58.o(.text);
+ asm/pokedex.o(.text);
+ asm/field_select.o(.text);
+ asm/intro.o(.text);
+ asm/high_scores.o(.text);
+ asm/rom_1068C.o(.text);
+ asm/titlescreen.o(.text);
+ asm/rom_11B9C.o(.text);
+ asm/options.o(.text);
+ asm/rom_528AC.o(.text);
asm/m4a_1.o(.text);
src/m4a_2.o(.text);
asm/m4a_3.o(.text);