summaryrefslogtreecommitdiff
path: root/asm/intro.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/intro.s')
-rwxr-xr-xasm/intro.s7283
1 files changed, 7283 insertions, 0 deletions
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