summaryrefslogtreecommitdiff
path: root/asm/sound_check_menu.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/sound_check_menu.s')
-rw-r--r--asm/sound_check_menu.s2444
1 files changed, 2444 insertions, 0 deletions
diff --git a/asm/sound_check_menu.s b/asm/sound_check_menu.s
new file mode 100644
index 000000000..22a8c3410
--- /dev/null
+++ b/asm/sound_check_menu.s
@@ -0,0 +1,2444 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80BA0A8
+sub_80BA0A8: @ 80BA0A8
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA0A8
+
+ thumb_func_start sub_80BA0C0
+sub_80BA0C0: @ 80BA0C0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r0, _080BA0E8 @ =gUnknown_020387B0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BA0E2
+ bl m4aSoundMain
+ bl m4aSoundMain
+ bl m4aSoundMain
+_080BA0E2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0E8: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA0C0
+
+ thumb_func_start unref_sub_80BA0EC
+unref_sub_80BA0EC: @ 80BA0EC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _080BA20C @ =REG_BG2CNT
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x10
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ add r0, sp, 0x4
+ strh r5, [r0]
+ ldr r1, _080BA210 @ =0x040000d4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA214 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA218 @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r1]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA21C @ =0x81000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
+ bl SetUpWindowConfig
+ ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
+ bl InitMenuWindow
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BA228 @ =REG_WIN0H
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ subs r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ ldr r1, _080BA22C @ =REG_WININ
+ ldr r2, _080BA230 @ =0x00001111
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x31
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xE1
+ strh r0, [r1]
+ ldr r0, _080BA234 @ =REG_BLDALPHA
+ strh r4, [r0]
+ adds r1, 0x4
+ movs r0, 0x7
+ strh r0, [r1]
+ ldr r1, _080BA238 @ =0x04000200
+ movs r2, 0x1
+ strh r2, [r1]
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r2, _080BA23C @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080BA240 @ =sub_80BA0C0
+ bl SetVBlankCallback
+ ldr r0, _080BA244 @ =sub_80BA0A8
+ bl SetMainCallback2
+ ldr r1, _080BA248 @ =0x00007140
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _080BA24C @ =sub_80BA258
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BA250 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r4, [r1, 0xE]
+ ldr r0, _080BA254 @ =gUnknown_020387B0
+ strb r5, [r0]
+ strh r4, [r1, 0xE]
+ bl m4aSoundInit
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA20C: .4byte REG_BG2CNT
+_080BA210: .4byte 0x040000d4
+_080BA214: .4byte 0x8100c000
+_080BA218: .4byte 0x85000100
+_080BA21C: .4byte 0x81000200
+_080BA220: .4byte gWindowConfig_81E6C3C
+_080BA224: .4byte gWindowConfig_81E6CE4
+_080BA228: .4byte REG_WIN0H
+_080BA22C: .4byte REG_WININ
+_080BA230: .4byte 0x00001111
+_080BA234: .4byte REG_BLDALPHA
+_080BA238: .4byte 0x04000200
+_080BA23C: .4byte REG_DISPSTAT
+_080BA240: .4byte sub_80BA0C0
+_080BA244: .4byte sub_80BA0A8
+_080BA248: .4byte 0x00007140
+_080BA24C: .4byte sub_80BA258
+_080BA250: .4byte gTasks
+_080BA254: .4byte gUnknown_020387B0
+ thumb_func_end unref_sub_80BA0EC
+
+ thumb_func_start sub_80BA258
+sub_80BA258: @ 80BA258
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x40
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
+ mov r0, sp
+ movs r2, 0x9
+ bl memcpy
+ add r7, sp, 0xC
+ ldr r1, _080BA358 @ =gDebugText_BGM
+ adds r0, r7, 0
+ movs r2, 0x4
+ bl memcpy
+ add r0, sp, 0x10
+ mov r8, r0
+ ldr r1, _080BA35C @ =gDebugText_SE
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x14
+ ldr r1, _080BA360 @ =gUnknown_083D02D9
+ adds r0, r5, 0
+ movs r2, 0xD
+ bl memcpy
+ add r4, sp, 0x24
+ ldr r1, _080BA364 @ =gDebugText_UpDown
+ adds r0, r4, 0
+ movs r2, 0xC
+ bl memcpy
+ add r6, sp, 0x30
+ ldr r1, _080BA368 @ =gDebugText_DriverTest
+ adds r0, r6, 0
+ movs r2, 0xE
+ bl memcpy
+ ldr r0, _080BA36C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA344
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x1B
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0x5
+ movs r2, 0x1B
+ movs r3, 0xA
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0xC
+ movs r2, 0x1B
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x4
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0xE
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x4
+ movs r2, 0x6
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0x6
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xE
+ movs r2, 0x12
+ bl MenuPrint
+ ldr r1, _080BA370 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA374 @ =sub_80BA384
+ str r1, [r0]
+ ldr r1, _080BA378 @ =REG_WIN0H
+ ldr r2, _080BA37C @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA380 @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BA344:
+ add sp, 0x40
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA354: .4byte gDebugText_SoundCheckJap
+_080BA358: .4byte gDebugText_BGM
+_080BA35C: .4byte gDebugText_SE
+_080BA360: .4byte gUnknown_083D02D9
+_080BA364: .4byte gDebugText_UpDown
+_080BA368: .4byte gDebugText_DriverTest
+_080BA36C: .4byte gPaletteFade
+_080BA370: .4byte gTasks
+_080BA374: .4byte sub_80BA384
+_080BA378: .4byte REG_WIN0H
+_080BA37C: .4byte 0x000011df
+_080BA380: .4byte 0x0000011f
+ thumb_func_end sub_80BA258
+
+ thumb_func_start sub_80BA384
+sub_80BA384: @ 80BA384
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BA3EC @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x8]
+ bl sub_80BA6B8
+ ldr r1, _080BA3F0 @ =0x0000015d
+ adds r0, r1, 0
+ ldrh r2, [r4, 0xA]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ movs r2, 0x8
+ bl sub_80BA700
+ ldr r1, _080BA3F4 @ =gBGMNames
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0x8
+ bl sub_80BA79C
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x7
+ movs r2, 0xF
+ bl sub_80BA700
+ ldr r1, _080BA3F8 @ =gSENames
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl sub_80BA79C
+ ldr r0, _080BA3FC @ =Task_HandleMainMenuInput
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA3EC: .4byte gTasks
+_080BA3F0: .4byte 0x0000015d
+_080BA3F4: .4byte gBGMNames
+_080BA3F8: .4byte gSENames
+_080BA3FC: .4byte Task_HandleMainMenuInput
+ thumb_func_end sub_80BA384
+
+ thumb_func_start sub_80BA400
+sub_80BA400: @ 80BA400
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080BA428 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA434
+ ldr r0, _080BA42C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA430 @ =sub_80BA800
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA428: .4byte gMain
+_080BA42C: .4byte gTasks
+_080BA430: .4byte sub_80BA800
+_080BA434:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA458
+ ldr r0, _080BA450 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA454 @ =sub_80BAF84
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA450: .4byte gTasks
+_080BA454: .4byte sub_80BAF84
+_080BA458:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA478
+ ldr r0, _080BA470 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA474 @ =sub_80BB25C
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA470: .4byte gTasks
+_080BA474: .4byte sub_80BB25C
+_080BA478:
+ movs r6, 0x1
+ movs r5, 0x1
+ ands r5, r1
+ cmp r5, 0
+ beq _080BA538
+ ldr r0, _080BA4AC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r5, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BA4D0
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA4BA
+ movs r3, 0xC
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA4B0
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ b _080BA4C4
+ .align 2, 0
+_080BA4AC: .4byte gTasks
+_080BA4B0:
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ strh r4, [r5, 0x10]
+ b _080BA64C
+_080BA4BA:
+ movs r4, 0xC
+ ldrsh r0, [r5, r4]
+ cmp r0, 0
+ bne _080BA4C4
+ b _080BA64C
+_080BA4C4:
+ ldrh r0, [r5, 0xC]
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xC]
+ strh r0, [r5, 0x10]
+ b _080BA64C
+_080BA4D0:
+ ldrh r1, [r5, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA514
+ movs r3, 0xA
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA500
+ ldr r0, _080BA4FC @ =0x0000015d
+ adds r4, r0, 0
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ ldrh r1, [r5, 0xA]
+ adds r4, r1
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ b _080BA528
+ .align 2, 0
+_080BA4FC: .4byte 0x0000015d
+_080BA500:
+ ldr r2, _080BA510 @ =0x0000015d
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ strh r4, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA510: .4byte 0x0000015d
+_080BA514:
+ ldrh r1, [r5, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ bne _080BA520
+ b _080BA64C
+_080BA520:
+ ldr r4, _080BA534 @ =0x0000015d
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+_080BA528:
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xA]
+ strh r0, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA534: .4byte 0x0000015d
+_080BA538:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA570
+ movs r0, 0x5
+ bl m4aSongNumStart
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080BA568 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA56C @ =sub_80BA68C
+ str r1, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA568: .4byte gTasks
+_080BA56C: .4byte sub_80BA68C
+_080BA570:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA582
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA59C
+_080BA582:
+ ldr r0, _080BA598 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ eors r0, r6
+ strh r0, [r1, 0x8]
+_080BA592:
+ movs r0, 0x1
+ b _080BA64E
+ .align 2, 0
+_080BA598: .4byte gTasks
+_080BA59C:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BA5EA
+ ldr r0, _080BA5CC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080BA5D6
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _080BA5D0
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA5CC: .4byte gTasks
+_080BA5D0:
+ movs r0, 0xF7
+ strh r0, [r1, 0xC]
+ b _080BA592
+_080BA5D6:
+ ldrh r2, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ ble _080BA5E4
+ subs r0, r2, 0x1
+ b _080BA5E6
+_080BA5E4:
+ movs r0, 0x75
+_080BA5E6:
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA5EA:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA630
+ ldr r1, _080BA614 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080BA61C
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0xF6
+ bgt _080BA618
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA614: .4byte gTasks
+_080BA618:
+ strh r3, [r1, 0xC]
+ b _080BA592
+_080BA61C:
+ ldrh r3, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x74
+ bgt _080BA62C
+ adds r0, r3, 0x1
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA62C:
+ strh r2, [r1, 0xA]
+ b _080BA592
+_080BA630:
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080BA648
+ ldr r0, _080BA644 @ =gUnknown_020387B0
+ strb r6, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA644: .4byte gUnknown_020387B0
+_080BA648:
+ ldr r0, _080BA658 @ =gUnknown_020387B0
+ strb r1, [r0]
+_080BA64C:
+ movs r0, 0
+_080BA64E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BA658: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA400
+
+ thumb_func_start Task_HandleMainMenuInput
+Task_HandleMainMenuInput: @ 80BA65C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80BA400
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA67C
+ ldr r0, _080BA684 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA688 @ =sub_80BA384
+ str r0, [r1]
+_080BA67C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA684: .4byte gTasks
+_080BA688: .4byte sub_80BA384
+ thumb_func_end Task_HandleMainMenuInput
+
+ thumb_func_start sub_80BA68C
+sub_80BA68C: @ 80BA68C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BA6B0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA6AA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
+ bl SetMainCallback2
+_080BA6AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6B0: .4byte gPaletteFade
+_080BA6B4: .4byte CB2_InitTitleScreen
+ thumb_func_end sub_80BA68C
+
+ thumb_func_start sub_80BA6B8
+sub_80BA6B8: @ 80BA6B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA6C6
+ cmp r0, 0x1
+ beq _080BA6E0
+_080BA6C6:
+ ldr r1, _080BA6D4 @ =REG_WIN1H
+ ldr r2, _080BA6D8 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6DC @ =0x00002957
+ b _080BA6EC
+ .align 2, 0
+_080BA6D4: .4byte REG_WIN1H
+_080BA6D8: .4byte 0x000011df
+_080BA6DC: .4byte 0x00002957
+_080BA6E0:
+ ldr r1, _080BA6F4 @ =REG_WIN1H
+ ldr r2, _080BA6F8 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6FC @ =0x0000618f
+_080BA6EC:
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6F4: .4byte REG_WIN1H
+_080BA6F8: .4byte 0x000011df
+_080BA6FC: .4byte 0x0000618f
+ thumb_func_end sub_80BA6B8
+
+ thumb_func_start sub_80BA700
+sub_80BA700: @ 80BA700
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ movs r1, 0
+ movs r2, 0
+_080BA714:
+ mov r3, sp
+ adds r0, r3, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _080BA714
+ mov r1, sp
+ movs r0, 0xB0
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ movs r4, 0
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA748
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r4, 0x1
+_080BA748:
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080BA766
+ cmp r4, 0
+ beq _080BA76C
+_080BA766:
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1, 0x1]
+_080BA76C:
+ mov r4, sp
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r4, 0x2]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA700
+
+ thumb_func_start sub_80BA79C
+sub_80BA79C: @ 80BA79C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r3, 0
+ movs r1, 0
+_080BA7AE:
+ mov r2, sp
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xA
+ bls _080BA7AE
+ mov r0, sp
+ movs r1, 0xFF
+ strb r1, [r0, 0xA]
+ movs r3, 0
+ ldrb r0, [r4]
+ lsls r2, r6, 24
+ lsls r5, 24
+ cmp r0, 0xFF
+ beq _080BA7EC
+_080BA7D0:
+ mov r0, sp
+ adds r1, r0, r3
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080BA7EC
+ cmp r3, 0x9
+ bls _080BA7D0
+_080BA7EC:
+ lsrs r1, r2, 24
+ lsrs r2, r5, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA79C
+
+ thumb_func_start sub_80BA800
+sub_80BA800: @ 80BA800
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xCC
+ lsls r0, 24
+ str r0, [sp, 0xB0]
+ lsrs r2, r0, 24
+ str r2, [sp, 0xAC]
+ ldr r1, _080BA9E8 @ =gUnknown_083D0312
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0xB4]
+ ldr r1, _080BA9EC @ =gUnknown_083D031C
+ movs r2, 0xB
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x18
+ str r2, [sp, 0xB8]
+ ldr r1, _080BA9F0 @ =gDebugText_Voice
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x24
+ str r0, [sp, 0xBC]
+ ldr r1, _080BA9F4 @ =gDebugText_Volume
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x30
+ str r2, [sp, 0xC0]
+ ldr r1, _080BA9F8 @ =gDebugText_Panpot
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x3C
+ str r0, [sp, 0xC4]
+ ldr r1, _080BA9FC @ =gDebugText_Pitch
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x48
+ str r2, [sp, 0xC8]
+ ldr r1, _080BAA00 @ =gDebugText_Length
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ add r4, sp, 0x54
+ ldr r1, _080BAA04 @ =gDebugText_Release
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl memcpy
+ add r7, sp, 0x60
+ ldr r1, _080BAA08 @ =gDebugText_Progress
+ adds r0, r7, 0
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x6C
+ mov r10, r0
+ ldr r1, _080BAA0C @ =gDebugText_Chorus
+ movs r2, 0xA
+ bl memcpy
+ add r2, sp, 0x78
+ mov r9, r2
+ ldr r1, _080BAA10 @ =gDebugText_Priority
+ mov r0, r9
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x84
+ mov r8, r0
+ ldr r1, _080BAA14 @ =gUnknown_083D0381
+ movs r2, 0x9
+ bl memcpy
+ add r6, sp, 0x90
+ ldr r1, _080BAA18 @ =gUnknown_083D038A
+ adds r0, r6, 0
+ movs r2, 0x9
+ bl memcpy
+ add r5, sp, 0x9C
+ ldr r1, _080BAA1C @ =gUnknown_083D0393
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x13
+ movs r2, 0x4
+ bl MenuPrint
+ ldr r0, [sp, 0xB4]
+ movs r1, 0x13
+ movs r2, 0x2
+ bl MenuPrint
+ ldr r0, [sp, 0xB8]
+ movs r1, 0x2
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, [sp, 0xBC]
+ movs r1, 0x2
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r0, [sp, 0xC0]
+ movs r1, 0x2
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, [sp, 0xC4]
+ movs r1, 0x2
+ movs r2, 0x7
+ bl MenuPrint
+ ldr r0, [sp, 0xC8]
+ movs r1, 0x2
+ movs r2, 0x9
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ mov r0, r10
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ mov r0, r9
+ movs r1, 0x2
+ movs r2, 0x11
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x13
+ movs r2, 0x10
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x13
+ movs r2, 0xE
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x13
+ movs r2, 0xC
+ bl MenuPrint
+ ldr r1, _080BAA20 @ =REG_WIN0H
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080BAA24 @ =gUnknown_020387B3
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080BAA28 @ =gUnknown_020387B1
+ strb r1, [r0]
+ ldr r0, _080BAA2C @ =gUnknown_020387B2
+ strb r1, [r0]
+ ldr r0, _080BAA30 @ =gUnknown_03005D30
+ movs r2, 0
+ str r2, [r0]
+ ldr r0, _080BAA34 @ =gUnknown_020387D8
+ strb r2, [r0]
+ ldr r1, _080BAA38 @ =gUnknown_020387D9
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080BAA3C @ =gUnknown_020387B4
+ str r2, [r0]
+ movs r1, 0x78
+ str r1, [r0, 0x4]
+ str r2, [r0, 0x8]
+ movs r1, 0xF0
+ lsls r1, 6
+ str r1, [r0, 0xC]
+ movs r1, 0xB4
+ str r1, [r0, 0x10]
+ str r2, [r0, 0x18]
+ str r2, [r0, 0x14]
+ str r2, [r0, 0x1C]
+ movs r1, 0x2
+ str r1, [r0, 0x20]
+ bl sub_80BAD5C
+ movs r0, 0
+ movs r1, 0
+ bl sub_80BAE10
+ ldr r1, _080BAA40 @ =gTasks
+ ldr r2, [sp, 0xAC]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAA44 @ =sub_80BAA48
+ str r1, [r0]
+ add sp, 0xCC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA9E8: .4byte gUnknown_083D0312
+_080BA9EC: .4byte gUnknown_083D031C
+_080BA9F0: .4byte gDebugText_Voice
+_080BA9F4: .4byte gDebugText_Volume
+_080BA9F8: .4byte gDebugText_Panpot
+_080BA9FC: .4byte gDebugText_Pitch
+_080BAA00: .4byte gDebugText_Length
+_080BAA04: .4byte gDebugText_Release
+_080BAA08: .4byte gDebugText_Progress
+_080BAA0C: .4byte gDebugText_Chorus
+_080BAA10: .4byte gDebugText_Priority
+_080BAA14: .4byte gUnknown_083D0381
+_080BAA18: .4byte gUnknown_083D038A
+_080BAA1C: .4byte gUnknown_083D0393
+_080BAA20: .4byte REG_WIN0H
+_080BAA24: .4byte gUnknown_020387B3
+_080BAA28: .4byte gUnknown_020387B1
+_080BAA2C: .4byte gUnknown_020387B2
+_080BAA30: .4byte gUnknown_03005D30
+_080BAA34: .4byte gUnknown_020387D8
+_080BAA38: .4byte gUnknown_020387D9
+_080BAA3C: .4byte gUnknown_020387B4
+_080BAA40: .4byte gTasks
+_080BAA44: .4byte sub_80BAA48
+ thumb_func_end sub_80BA800
+
+ thumb_func_start sub_80BAA48
+sub_80BAA48: @ 80BAA48
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BAA90 @ =gMain
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAAA8
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BAA94 @ =0x00007140
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BAA98 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BAA9C @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BAAA0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAAA4 @ =sub_80BA258
+ str r1, [r0]
+ b _080BACC6
+ .align 2, 0
+_080BAA90: .4byte gMain
+_080BAA94: .4byte 0x00007140
+_080BAA98: .4byte 0x000011df
+_080BAA9C: .4byte 0x0000011f
+_080BAAA0: .4byte gTasks
+_080BAAA4: .4byte sub_80BA258
+_080BAAA8:
+ ldrh r1, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BAAD0
+ ldr r1, _080BAACC @ =gUnknown_020387B3
+ ldrb r2, [r1]
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080BAAEA
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080BAAEA
+ .align 2, 0
+_080BAACC: .4byte gUnknown_020387B3
+_080BAAD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAAF8
+ ldr r1, _080BAAF4 @ =gUnknown_020387B3
+ ldrb r2, [r1]
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x8
+ ble _080BAAEA
+ strb r3, [r1]
+_080BAAEA:
+ ldrb r1, [r1]
+ adds r0, r2, 0
+ bl sub_80BAE10
+ b _080BACC6
+ .align 2, 0
+_080BAAF4: .4byte gUnknown_020387B3
+_080BAAF8:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB14
+ ldr r0, _080BAB10 @ =gUnknown_020387D8
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ bl sub_80BAD5C
+ b _080BACC6
+ .align 2, 0
+_080BAB10: .4byte gUnknown_020387D8
+_080BAB14:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB38
+ ldr r4, _080BAB34 @ =gUnknown_020387D9
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ bl sub_80BAD5C
+ ldrb r0, [r4]
+ bl SetPokemonCryStereo
+ b _080BACC6
+ .align 2, 0
+_080BAB34: .4byte gUnknown_020387D9
+_080BAB38:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB46
+ movs r0, 0xA
+ b _080BAB6E
+_080BAB46:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB56
+ movs r0, 0xA
+ negs r0, r0
+ b _080BAB6E
+_080BAB56:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB64
+ movs r0, 0x1
+ negs r0, r0
+ b _080BAB6E
+_080BAB64:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB78
+ movs r0, 0x1
+_080BAB6E:
+ bl sub_80BACDC
+ bl sub_80BAD5C
+ b _080BACC6
+_080BAB78:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080BAB82
+ b _080BACA2
+_080BAB82:
+ ldr r4, _080BABE4 @ =gUnknown_020387B4
+ ldrb r0, [r4, 0x4]
+ bl SetPokemonCryVolume
+ movs r0, 0x8
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryPanpot
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ bl SetPokemonCryPitch
+ ldrh r0, [r4, 0x10]
+ bl SetPokemonCryLength
+ ldr r0, [r4, 0x18]
+ bl SetPokemonCryProgress
+ ldrb r0, [r4, 0x14]
+ bl SetPokemonCryRelease
+ movs r0, 0x1C
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryChorus
+ ldr r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPokemonCryPriority
+ ldr r4, [r4]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080BABC8
+ adds r0, 0x7F
+_080BABC8:
+ asrs r2, r0, 7
+ lsls r0, r2, 7
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BAC1C
+ cmp r0, 0x1
+ bgt _080BABE8
+ cmp r0, 0
+ beq _080BABF2
+ b _080BACA2
+ .align 2, 0
+_080BABE4: .4byte gUnknown_020387B4
+_080BABE8:
+ cmp r0, 0x2
+ beq _080BAC48
+ cmp r0, 0x3
+ beq _080BAC74
+ b _080BACA2
+_080BABF2:
+ ldr r0, _080BAC04 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC0C
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC08 @ =voicegroup_84537C0
+ b _080BAC98
+ .align 2, 0
+_080BAC04: .4byte gUnknown_020387D8
+_080BAC08: .4byte voicegroup_84537C0
+_080BAC0C:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC18 @ =voicegroup_8452590
+ b _080BAC98
+ .align 2, 0
+_080BAC18: .4byte voicegroup_8452590
+_080BAC1C:
+ ldr r0, _080BAC30 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC38
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC34 @ =voicegroup_8453DC0
+ b _080BAC98
+ .align 2, 0
+_080BAC30: .4byte gUnknown_020387D8
+_080BAC34: .4byte voicegroup_8453DC0
+_080BAC38:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC44 @ =voicegroup_8452B90
+ b _080BAC98
+ .align 2, 0
+_080BAC44: .4byte voicegroup_8452B90
+_080BAC48:
+ ldr r0, _080BAC5C @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC64
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC60 @ =voicegroup_84543C0
+ b _080BAC98
+ .align 2, 0
+_080BAC5C: .4byte gUnknown_020387D8
+_080BAC60: .4byte voicegroup_84543C0
+_080BAC64:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC70 @ =voicegroup_8453190
+ b _080BAC98
+ .align 2, 0
+_080BAC70: .4byte voicegroup_8453190
+_080BAC74:
+ ldr r0, _080BAC88 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC90
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC8C @ =voicegroup_84549C0
+ b _080BAC98
+ .align 2, 0
+_080BAC88: .4byte gUnknown_020387D8
+_080BAC8C: .4byte voicegroup_84549C0
+_080BAC90:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BACCC @ =voicegroup_8453790
+_080BAC98:
+ adds r0, r1
+ bl SetPokemonCryTone
+ ldr r1, _080BACD0 @ =gUnknown_03005D30
+ str r0, [r1]
+_080BACA2:
+ ldr r0, _080BACD0 @ =gUnknown_03005D30
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080BACC6
+ ldr r5, _080BACD4 @ =gUnknown_020387B1
+ bl IsPokemonCryPlaying
+ strb r0, [r5]
+ ldr r4, _080BACD8 @ =gUnknown_020387B2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4]
+ cmp r0, r2
+ beq _080BACC2
+ bl sub_80BAD5C
+_080BACC2:
+ ldrb r0, [r5]
+ strb r0, [r4]
+_080BACC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BACCC: .4byte voicegroup_8453790
+_080BACD0: .4byte gUnknown_03005D30
+_080BACD4: .4byte gUnknown_020387B1
+_080BACD8: .4byte gUnknown_020387B2
+ thumb_func_end sub_80BAA48
+
+ thumb_func_start sub_80BACDC
+sub_80BACDC: @ 80BACDC
+ push {r4-r6,lr}
+ sub sp, 0x40
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BAD50 @ =gUnknown_083D039C
+ mov r0, sp
+ movs r2, 0x40
+ bl memcpy
+ ldr r6, _080BAD54 @ =gUnknown_020387B4
+ ldr r5, _080BAD58 @ =gUnknown_020387B3
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r1, 2
+ adds r1, r6
+ lsls r4, 24
+ asrs r4, 24
+ ldr r0, [r1]
+ adds r0, r4
+ str r0, [r1]
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _080BAD26
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD26:
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _080BAD46
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD46:
+ add sp, 0x40
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAD50: .4byte gUnknown_083D039C
+_080BAD54: .4byte gUnknown_020387B4
+_080BAD58: .4byte gUnknown_020387B3
+ thumb_func_end sub_80BACDC
+
+ thumb_func_start sub_80BAD5C
+sub_80BAD5C: @ 80BAD5C
+ push {r4,lr}
+ ldr r4, _080BAE00 @ =gUnknown_020387B4
+ ldr r0, [r4]
+ adds r0, 0x1
+ movs r1, 0xB
+ movs r2, 0x1
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x4]
+ movs r1, 0xB
+ movs r2, 0x3
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x8]
+ movs r1, 0xB
+ movs r2, 0x5
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0xC]
+ movs r1, 0xB
+ movs r2, 0x7
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x10]
+ movs r1, 0xB
+ movs r2, 0x9
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x14]
+ movs r1, 0xB
+ movs r2, 0xB
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x18]
+ movs r1, 0xB
+ movs r2, 0xD
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x1C]
+ movs r1, 0xB
+ movs r2, 0xF
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x20]
+ movs r1, 0xB
+ movs r2, 0x11
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, _080BAE04 @ =gUnknown_020387B1
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE08 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE0C @ =gUnknown_020387D9
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xC
+ movs r3, 0x1
+ bl sub_80BAE78
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE00: .4byte gUnknown_020387B4
+_080BAE04: .4byte gUnknown_020387B1
+_080BAE08: .4byte gUnknown_020387D8
+_080BAE0C: .4byte gUnknown_020387D9
+ thumb_func_end sub_80BAD5C
+
+ thumb_func_start sub_80BAE10
+sub_80BAE10: @ 80BAE10
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080BAE6C @ =gUnknown_083D03DC
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _080BAE70 @ =gUnknown_083D03DE
+ movs r2, 0x2
+ bl memcpy
+ ldr r6, _080BAE74 @ =gUnknown_083D0300
+ lsls r4, 1
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ adds r4, 0x1
+ adds r4, r6
+ ldrb r2, [r4]
+ mov r0, r8
+ bl MenuPrint
+ lsls r5, 1
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r5, 0x1
+ adds r5, r6
+ ldrb r2, [r5]
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE6C: .4byte gUnknown_083D03DC
+_080BAE70: .4byte gUnknown_083D03DE
+_080BAE74: .4byte gUnknown_083D0300
+ thumb_func_end sub_80BAE10
+
+ thumb_func_start sub_80BAE78
+sub_80BAE78: @ 80BAE78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r8, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r1, sp
+ ldr r0, _080BAF80 @ =gUnknown_083D03E0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ movs r5, 0
+ add r0, sp, 0x18
+ mov r9, r0
+ cmp r5, r7
+ bgt _080BAEC0
+ mov r4, r9
+ movs r3, 0
+_080BAEAC:
+ lsls r0, r5, 24
+ asrs r0, 24
+ adds r1, r4, r0
+ strb r3, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, r7
+ ble _080BAEAC
+_080BAEC0:
+ adds r0, r7, 0x1
+ add r0, r9
+ movs r1, 0xFF
+ strb r1, [r0]
+ movs r1, 0
+ mov r3, r8
+ cmp r3, 0
+ bge _080BAED6
+ negs r3, r3
+ mov r8, r3
+ movs r1, 0x1
+_080BAED6:
+ movs r4, 0
+ mov r10, r4
+ cmp r7, 0x1
+ bne _080BAEE2
+ movs r5, 0x1
+ mov r10, r5
+_080BAEE2:
+ subs r0, r7, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 24
+ lsls r6, 24
+ str r6, [sp, 0x24]
+ lsls r2, 24
+ str r2, [sp, 0x28]
+ cmp r0, 0
+ blt _080BAF62
+ str r1, [sp, 0x20]
+_080BAEF8:
+ asrs r6, r0, 24
+ lsls r0, r6, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __divsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r0, 0
+ bne _080BAF1A
+ mov r0, r10
+ cmp r0, 0
+ bne _080BAF1A
+ lsls r4, r5, 24
+ cmp r6, 0
+ bne _080BAF46
+_080BAF1A:
+ lsls r4, r5, 24
+ ldr r3, [sp, 0x20]
+ cmp r3, 0
+ beq _080BAF34
+ mov r5, r10
+ cmp r5, 0
+ bne _080BAF34
+ asrs r0, r4, 24
+ subs r0, r7, r0
+ subs r0, 0x1
+ add r0, r9
+ movs r1, 0xAE
+ strb r1, [r0]
+_080BAF34:
+ asrs r1, r4, 24
+ subs r1, r7, r1
+ add r1, r9
+ lsls r0, r2, 24
+ asrs r0, 24
+ subs r0, 0x5F
+ strb r0, [r1]
+ movs r0, 0x1
+ mov r10, r0
+_080BAF46:
+ asrs r4, 24
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __modsi3
+ mov r8, r0
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r5, r4, 24
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _080BAEF8
+_080BAF62:
+ ldr r3, [sp, 0x24]
+ lsrs r1, r3, 24
+ ldr r4, [sp, 0x28]
+ lsrs r2, r4, 24
+ mov r0, r9
+ bl MenuPrint
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAF80: .4byte gUnknown_083D03E0
+ thumb_func_end sub_80BAE78
+
+ thumb_func_start sub_80BAF84
+sub_80BAF84: @ 80BAF84
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BB01C @ =gOtherText_SE
+ mov r0, sp
+ movs r2, 0x3
+ bl memcpy
+ add r6, sp, 0x4
+ ldr r1, _080BB020 @ =gOtherText_Pan
+ adds r0, r6, 0
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB024 @ =gUnknown_083D0381
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x3
+ movs r2, 0x2
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x3
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x8
+ bl MenuPrint
+ ldr r1, _080BB028 @ =REG_WIN0H
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, _080BB02C @ =gUnknown_020387B4
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ str r0, [r1, 0x1C]
+ str r0, [r1, 0x18]
+ str r0, [r1, 0x14]
+ bl sub_80BB1D4
+ ldr r1, _080BB030 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB034 @ =sub_80BB038
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB01C: .4byte gOtherText_SE
+_080BB020: .4byte gOtherText_Pan
+_080BB024: .4byte gUnknown_083D0381
+_080BB028: .4byte REG_WIN0H
+_080BB02C: .4byte gUnknown_020387B4
+_080BB030: .4byte gTasks
+_080BB034: .4byte sub_80BB038
+ thumb_func_end sub_80BAF84
+
+ thumb_func_start sub_80BB038
+sub_80BB038: @ 80BB038
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80BB1D4
+ ldr r2, _080BB058 @ =gUnknown_020387B4
+ ldr r0, [r2, 0x18]
+ cmp r0, 0
+ beq _080BB0A2
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ beq _080BB05C
+ subs r0, 0x1
+ str r0, [r2, 0x14]
+ b _080BB0A2
+ .align 2, 0
+_080BB058: .4byte gUnknown_020387B4
+_080BB05C:
+ ldr r0, _080BB088 @ =gUnknown_083D03F8
+ ldr r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB08C
+ cmp r1, 0x7F
+ bne _080BB0A2
+ ldr r0, [r2, 0x1C]
+ adds r0, 0x2
+ str r0, [r2, 0x1C]
+ cmp r0, 0x3E
+ bgt _080BB0A2
+ lsls r0, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+ b _080BB0A2
+ .align 2, 0
+_080BB088: .4byte gUnknown_083D03F8
+_080BB08C:
+ ldr r0, [r2, 0x1C]
+ subs r1, r0, 0x2
+ str r1, [r2, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ ble _080BB0A2
+ lsls r0, r1, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+_080BB0A2:
+ ldr r1, _080BB0EC @ =gMain
+ ldrh r3, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, r1, 0
+ cmp r4, 0
+ beq _080BB104
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB0F0 @ =0x00007140
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB0F4 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB0F8 @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB0FC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB100 @ =sub_80BA258
+ str r1, [r0]
+ b _080BB1C8
+ .align 2, 0
+_080BB0EC: .4byte gMain
+_080BB0F0: .4byte 0x00007140
+_080BB0F4: .4byte 0x000011df
+_080BB0F8: .4byte 0x0000011f
+_080BB0FC: .4byte gTasks
+_080BB100: .4byte sub_80BA258
+_080BB104:
+ movs r6, 0x1
+ adds r2, r6, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _080BB15E
+ ldr r0, _080BB138 @ =gUnknown_083D03F8
+ ldr r5, _080BB13C @ =gUnknown_020387B4
+ ldr r1, [r5, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB140
+ cmp r1, 0x7F
+ bne _080BB154
+ ldrh r0, [r5]
+ movs r4, 0x40
+ negs r4, r4
+ adds r1, r4, 0
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x1C]
+ b _080BB14C
+ .align 2, 0
+_080BB138: .4byte gUnknown_083D03F8
+_080BB13C: .4byte gUnknown_020387B4
+_080BB140:
+ ldrh r0, [r5]
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ movs r0, 0x3F
+ str r0, [r5, 0x1C]
+_080BB14C:
+ str r6, [r5, 0x18]
+ movs r0, 0x1E
+ str r0, [r5, 0x14]
+ b _080BB1C8
+_080BB154:
+ ldrh r0, [r5]
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x18]
+ b _080BB1C8
+_080BB15E:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r3
+ cmp r0, 0
+ beq _080BB176
+ ldr r1, _080BB1AC @ =gUnknown_020387B4
+ ldr r0, [r1, 0x8]
+ adds r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0x4
+ ble _080BB176
+ str r2, [r1, 0x8]
+_080BB176:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB192
+ ldr r1, _080BB1AC @ =gUnknown_020387B4
+ ldr r0, [r1, 0x8]
+ subs r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0
+ bge _080BB192
+ movs r0, 0x4
+ str r0, [r1, 0x8]
+_080BB192:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1B0
+ ldr r1, _080BB1AC @ =gUnknown_020387B4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0xF7
+ ble _080BB1C8
+ movs r0, 0
+ b _080BB1C6
+ .align 2, 0
+_080BB1AC: .4byte gUnknown_020387B4
+_080BB1B0:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1C8
+ ldr r1, _080BB1D0 @ =gUnknown_020387B4
+ ldr r0, [r1]
+ subs r0, 0x1
+ str r0, [r1]
+ cmp r0, 0
+ bge _080BB1C8
+ movs r0, 0xF7
+_080BB1C6:
+ str r0, [r1]
+_080BB1C8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB1D0: .4byte gUnknown_020387B4
+ thumb_func_end sub_80BB038
+
+ thumb_func_start sub_80BB1D4
+sub_80BB1D4: @ 80BB1D4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r1, _080BB218 @ =gOtherText_LR
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB21C @ =gOtherText_RL
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl memcpy
+ ldr r4, _080BB220 @ =gUnknown_020387B4
+ ldr r0, [r4]
+ movs r1, 0x7
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80BAE78
+ ldr r1, _080BB224 @ =gUnknown_083D03F8
+ ldr r0, [r4, 0x8]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB228
+ cmp r1, 0x7F
+ bne _080BB234
+ mov r0, sp
+ b _080BB22A
+ .align 2, 0
+_080BB218: .4byte gOtherText_LR
+_080BB21C: .4byte gOtherText_RL
+_080BB220: .4byte gUnknown_020387B4
+_080BB224: .4byte gUnknown_083D03F8
+_080BB228:
+ adds r0, r5, 0
+_080BB22A:
+ movs r1, 0x7
+ movs r2, 0x4
+ bl MenuPrint
+ b _080BB240
+_080BB234:
+ adds r0, r1, 0
+ movs r1, 0x7
+ movs r2, 0x4
+ movs r3, 0x3
+ bl sub_80BAE78
+_080BB240:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80BAE78
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB1D4
+
+ thumb_func_start sub_80BB25C
+sub_80BB25C: @ 80BB25C
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
+ bl SetUpWindowConfig
+ ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
+ bl InitMenuWindow
+ ldr r1, _080BB37C @ =gUnknown_03005D34
+ movs r0, 0x1
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _080BB380 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ ldr r1, _080BB384 @ =0xff00ffff
+ ands r0, r1
+ movs r1, 0xE8
+ lsls r1, 13
+ orrs r0, r1
+ ldr r1, _080BB388 @ =0x00ffffff
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r1, _080BB38C @ =0xffff00ff
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 5
+ orrs r0, r1
+ ldr r1, _080BB390 @ =0xffffff00
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ movs r1, 0
+ ldr r0, _080BB394 @ =gUnknown_03005E98
+ strb r1, [r0]
+ add r4, sp, 0xC
+_080BB2BE:
+ add r0, sp, 0x4
+ movs r1, 0x3
+ bl sub_8119E3C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB2BE
+ ldr r1, _080BB380 @ =0xffff0000
+ ldr r0, [sp, 0xC]
+ ands r0, r1
+ ldr r1, _080BB384 @ =0xff00ffff
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 12
+ orrs r0, r1
+ ldr r1, _080BB388 @ =0x00ffffff
+ ands r0, r1
+ movs r1, 0xD0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r1, _080BB390 @ =0xffffff00
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0xC
+ orrs r0, r1
+ ldr r1, _080BB38C @ =0xffff00ff
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 4
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ movs r1, 0
+ ldr r0, _080BB394 @ =gUnknown_03005E98
+ strb r1, [r0]
+ lsls r5, r6, 2
+_080BB306:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_811A3CC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB306
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ bl sub_80BB494
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BB398 @ =REG_BG2HOFS
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _080BB39C @ =REG_BG2CNT
+ ldr r2, _080BB3A0 @ =0x00000f01
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080BB3A4 @ =0x00001d03
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ adds r2, 0x3D
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080BB3A8 @ =gMPlay_BGM
+ movs r1, 0x2
+ bl m4aMPlayFadeOutTemporarily
+ ldr r1, _080BB3AC @ =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB3B0 @ =sub_80BB3B4
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB374: .4byte gWindowConfig_81E6C3C
+_080BB378: .4byte gWindowConfig_81E6CE4
+_080BB37C: .4byte gUnknown_03005D34
+_080BB380: .4byte 0xffff0000
+_080BB384: .4byte 0xff00ffff
+_080BB388: .4byte 0x00ffffff
+_080BB38C: .4byte 0xffff00ff
+_080BB390: .4byte 0xffffff00
+_080BB394: .4byte gUnknown_03005E98
+_080BB398: .4byte REG_BG2HOFS
+_080BB39C: .4byte REG_BG2CNT
+_080BB3A0: .4byte 0x00000f01
+_080BB3A4: .4byte 0x00001d03
+_080BB3A8: .4byte gMPlay_BGM
+_080BB3AC: .4byte gTasks
+_080BB3B0: .4byte sub_80BB3B4
+ thumb_func_end sub_80BB25C
+
+ thumb_func_start sub_80BB3B4
+sub_80BB3B4: @ 80BB3B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8119F88
+ ldr r4, _080BB478 @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3D4
+ ldr r0, _080BB47C @ =gUnknown_03005D34
+ ldrh r0, [r0]
+ bl sub_811A050
+_080BB3D4:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3E4
+ bl StopCryAndClearCrySongs
+_080BB3E4:
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB408
+ ldr r1, _080BB47C @ =gUnknown_03005D34
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BB404
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BB404:
+ bl sub_80BB494
+_080BB408:
+ ldr r0, _080BB478 @ =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB42E
+ ldr r2, _080BB47C @ =gUnknown_03005D34
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 17
+ cmp r0, r1
+ bls _080BB42A
+ movs r0, 0x1
+ strh r0, [r2]
+_080BB42A:
+ bl sub_80BB494
+_080BB42E:
+ ldr r0, _080BB478 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB472
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB480 @ =0x00007140
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB484 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB488 @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB48C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB490 @ =sub_80BA258
+ str r1, [r0]
+ bl sub_811A4F8
+_080BB472:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB478: .4byte gMain
+_080BB47C: .4byte gUnknown_03005D34
+_080BB480: .4byte 0x00007140
+_080BB484: .4byte 0x000011df
+_080BB488: .4byte 0x0000011f
+_080BB48C: .4byte gTasks
+_080BB490: .4byte sub_80BA258
+ thumb_func_end sub_80BB3B4
+
+ thumb_func_start sub_80BB494
+sub_80BB494: @ 80BB494
+ push {lr}
+ ldr r0, _080BB4A8 @ =gUnknown_03005D34
+ ldrh r0, [r0]
+ movs r1, 0x1
+ movs r2, 0x11
+ movs r3, 0x3
+ bl sub_80BAE78
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB4A8: .4byte gUnknown_03005D34
+ thumb_func_end sub_80BB494
+
+ .align 2, 0 @ Don't pad with nop.