mzm/asm/disasm_0x08002a58.s
2023-03-13 23:50:03 +01:00

4521 lines
98 KiB
ArmAsm

.include "asm/macros.inc"
.syntax unified
thumb_func_start SoundPlay
SoundPlay: @ 0x08002a18
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0
bl QueueSound
pop {r0}
bx r0
.align 2, 0
thumb_func_start SoundStop
SoundStop: @ 0x08002a28
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0
bl StopOrFadeSound
pop {r0}
bx r0
.align 2, 0
thumb_func_start unk_2a38
unk_2a38: @ 0x08002a38
push {lr}
adds r2,r0,#0
ldrb r1,[r2,#0x1E]
movs r3,#1
adds r0,r3,#0
ands r0,r1
cmp r0,#0
bne lbl_08002a54
ldrb r1,[r2,#0]
movs r0,#2
ands r0,r1
cmp r0,#0
beq lbl_08002a54
strb r3,[r2,#0]
lbl_08002a54:
pop {r0}
bx r0
.align 2, 0
thumb_func_start StopAllMusicsAndSounds
StopAllMusicsAndSounds: @ 0x08002a58
push {r4,r5,lr}
ldr r0, lbl_08002a84 @ =0x00000009
lsls r0,r0,#0x10
lsrs r0,r0,#0x10
subs r4,r0,#1
cmp r4,#0
blt lbl_08002a7e
ldr r1, lbl_08002a88 @ =0x0808f254
lsls r0,r4,#1
adds r0,r0,r4
lsls r0,r0,#2
adds r5,r0,r1
lbl_08002a70:
ldr r0,[r5,#0]
bl stop_music_or_sound
subs r5,#0xC
subs r4,#1
cmp r4,#0
bge lbl_08002a70
lbl_08002a7e:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
lbl_08002a84: .4byte 0x00000009
lbl_08002a88: .4byte 0x0808f254
thumb_func_start sub_08002a8c
sub_08002a8c: @ 0x08002a8c
push {r4, r5, lr}
ldr r0, lbl_08002ac4 @ =0x00000009
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
subs r4, r0, #1
cmp r4, #0
blt lbl_08002abe
ldr r1, lbl_08002ac8 @ =0x0808f254
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #2
adds r5, r0, r1
lbl_08002aa4:
ldr r2, [r5]
ldrb r1, [r2, #0x1e]
movs r0, #1
ands r0, r1
cmp r0, #0
bne lbl_08002ab6
adds r0, r2, #0
bl stop_music_or_sound
lbl_08002ab6:
subs r5, #0xc
subs r4, #1
cmp r4, #0
bge lbl_08002aa4
lbl_08002abe:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_08002ac4: .4byte 0x00000009
lbl_08002ac8: .4byte 0x0808f254
thumb_func_start FadeAllSounds
FadeAllSounds: @ 0x08002acc
push {r4, r5, lr}
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
ldr r5, lbl_08002b1c @ =0x0808f254
ldr r0, [r5, #0xc]
adds r1, r4, #0
bl sub_08002c94
ldr r0, [r5, #0x18]
adds r1, r4, #0
bl sub_08002c94
ldr r0, [r5, #0x24]
adds r1, r4, #0
bl sub_08002c94
ldr r0, [r5, #0x30]
adds r1, r4, #0
bl sub_08002c94
ldr r0, [r5, #0x3c]
adds r1, r4, #0
bl sub_08002c94
ldr r0, [r5, #0x48]
adds r1, r4, #0
bl sub_08002c94
ldr r0, [r5, #0x54]
adds r1, r4, #0
bl sub_08002c94
ldr r0, [r5, #0x60]
adds r1, r4, #0
bl sub_08002c94
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_08002b1c: .4byte 0x0808f254
thumb_func_start SoundPlayNotAlreadyPlaying
SoundPlayNotAlreadyPlaying: @ 0x08002b20
push {r4, lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r4, r0, #0
ldr r3, lbl_08002b5c @ =0x0808f254
ldr r0, lbl_08002b60 @ =0x0808f2c0
lsls r2, r4, #3
adds r2, r2, r0
ldrh r1, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldr r3, [r0]
ldr r2, [r2]
ldrb r1, [r3]
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_08002b4e
ldr r0, [r3, #0x10]
cmp r2, r0
beq lbl_08002b56
lbl_08002b4e:
adds r0, r4, #0
movs r1, #0
bl QueueSound
lbl_08002b56:
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_08002b5c: .4byte 0x0808f254
lbl_08002b60: .4byte 0x0808f2c0
thumb_func_start sub_08002b64
sub_08002b64: @ 0x08002b64
push {r4, r5, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r5, r4, #0
ldr r2, lbl_08002ba4 @ =0x0808f254
ldr r1, lbl_08002ba8 @ =0x0808f2c0
lsls r0, r4, #3
adds r3, r0, r1
ldrh r1, [r3, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldr r2, [r0]
ldrb r1, [r2]
movs r0, #2
ands r0, r1
cmp r0, #0
bne lbl_08002bac
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_08002bbe
ldr r1, [r3]
ldr r0, [r2, #0x10]
cmp r1, r0
bne lbl_08002bb4
adds r0, r2, #0
bl sub_08002c10
b lbl_08002bcc
.align 2, 0
lbl_08002ba4: .4byte 0x0808f254
lbl_08002ba8: .4byte 0x0808f2c0
lbl_08002bac:
ldr r1, [r3]
ldr r0, [r2, #0x10]
cmp r1, r0
beq lbl_08002bcc
lbl_08002bb4:
adds r0, r4, #0
movs r1, #0
bl QueueSound
b lbl_08002bcc
lbl_08002bbe:
lsls r0, r1, #0x18
cmp r0, #0
bne lbl_08002bcc
adds r0, r5, #0
movs r1, #0
bl QueueSound
lbl_08002bcc:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_08002bd4
sub_08002bd4: @ 0x08002bd4
push {lr}
lsls r0, r0, #0x10
ldr r2, lbl_08002c08 @ =0x0808f254
ldr r1, lbl_08002c0c @ =0x0808f2c0
lsrs r0, r0, #0xd
adds r3, r0, r1
ldrh r1, [r3, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldr r2, [r0]
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_08002c04
ldr r1, [r3]
ldr r0, [r2, #0x10]
cmp r1, r0
bne lbl_08002c04
adds r0, r2, #0
bl sub_08002c10
lbl_08002c04:
pop {r0}
bx r0
.align 2, 0
lbl_08002c08: .4byte 0x0808f254
lbl_08002c0c: .4byte 0x0808f2c0
thumb_func_start sub_08002c10
sub_08002c10: @ 0x08002c10
push {r4, lr}
adds r2, r0, #0
ldrb r0, [r2, #0x1c]
cmp r0, #0
bne lbl_08002c46
movs r0, #1
strb r0, [r2, #0x1c]
ldrb r1, [r2]
ands r0, r1
cmp r0, #0
beq lbl_08002c42
movs r0, #2
strb r0, [r2]
movs r1, #0
ldr r0, [r2, #0x18]
ldrb r3, [r2, #1]
cmp r1, r3
bge lbl_08002c42
movs r3, #0x40
lbl_08002c36:
strb r3, [r0, #5]
adds r1, #1
adds r0, #0x50
ldrb r4, [r2, #1]
cmp r1, r4
blt lbl_08002c36
lbl_08002c42:
movs r0, #0
strb r0, [r2, #0x1c]
lbl_08002c46:
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_08002c4c
sub_08002c4c: @ 0x08002c4c
push {r4, r5, lr}
ldr r0, lbl_08002c78 @ =0x00000009
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
subs r4, r0, #1
cmp r4, #0
blt lbl_08002c72
ldr r1, lbl_08002c7c @ =0x0808f254
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #2
adds r5, r0, r1
lbl_08002c64:
ldr r0, [r5]
bl sub_08002c10
subs r5, #0xc
subs r4, #1
cmp r4, #0
bge lbl_08002c64
lbl_08002c72:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_08002c78: .4byte 0x00000009
lbl_08002c7c: .4byte 0x0808f254
thumb_func_start SoundFade
SoundFade: @ 0x08002c80
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
bl StopOrFadeSound
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_08002c94
sub_08002c94: @ 0x08002c94
push {r4, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
cmp r1, #0
bne lbl_08002ca6
bl stop_music_or_sound
b lbl_08002cde
lbl_08002ca6:
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_08002cde
movs r0, #1
strb r0, [r4, #0x1c]
ldrb r2, [r4]
movs r0, #2
ands r0, r2
cmp r0, #0
beq lbl_08002cda
movs r0, #0xf8
ands r0, r2
cmp r0, #0
beq lbl_08002cca
adds r0, r4, #0
bl reset_track
b lbl_08002cda
lbl_08002cca:
movs r0, #8
orrs r0, r2
strb r0, [r4]
ldr r0, lbl_08002ce4 @ =0x0000ffff
strh r0, [r4, #6]
bl __divsi3
strh r0, [r4, #8]
lbl_08002cda:
movs r0, #0
strb r0, [r4, #0x1c]
lbl_08002cde:
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_08002ce4: .4byte 0x0000ffff
thumb_func_start sub_08002ce8
sub_08002ce8: @ 0x08002ce8
push {r4, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_08002d20
movs r0, #1
strb r0, [r4, #0x1c]
ldrb r2, [r4]
movs r0, #2
ands r0, r2
cmp r0, #0
beq lbl_08002d1c
movs r0, #0xf8
ands r0, r2
cmp r0, #0
bne lbl_08002d1c
movs r0, #0x10
orrs r0, r2
strb r0, [r4]
ldr r0, lbl_08002d28 @ =0x0000ffff
strh r0, [r4, #6]
bl __divsi3
strh r0, [r4, #8]
lbl_08002d1c:
movs r0, #0
strb r0, [r4, #0x1c]
lbl_08002d20:
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_08002d28: .4byte 0x0000ffff
thumb_func_start sub_08002d2c
sub_08002d2c: @ 0x08002d2c
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r3, [r4, #0x18]
ldrh r1, [r4, #6]
ldrh r0, [r4, #8]
subs r1, r1, r0
cmp r1, #0
blt lbl_08002d9c
strh r1, [r4, #6]
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq lbl_08002d72
ldrh r0, [r4, #0x26]
ldrh r1, [r4, #0x24]
adds r0, r0, r1
strh r0, [r4, #0x24]
lsls r0, r0, #0x10
lsrs r0, r0, #0x1c
cmp r0, #0
beq lbl_08002d6a
adds r1, r4, #0
adds r1, #0x22
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
ldrh r1, [r4, #0x24]
ldr r0, lbl_08002d98 @ =0x00000fff
ands r0, r1
strh r0, [r4, #0x24]
lbl_08002d6a:
adds r1, r4, #0
adds r1, #0x23
movs r0, #0
strb r0, [r1]
lbl_08002d72:
ldrb r2, [r4, #1]
cmp r2, #0
ble lbl_08002de2
movs r5, #4
lbl_08002d7a:
ldrb r1, [r3]
cmp r1, #0
beq lbl_08002d8c
ldrh r0, [r4, #6]
lsrs r0, r0, #0xa
strb r0, [r3, #5]
adds r0, r1, #0
orrs r0, r5
strb r0, [r3]
lbl_08002d8c:
subs r2, #1
adds r3, #0x50
cmp r2, #0
bgt lbl_08002d7a
b lbl_08002de2
.align 2, 0
lbl_08002d98: .4byte 0x00000fff
lbl_08002d9c:
adds r0, r4, #0
bl reset_track
ldrb r1, [r4]
movs r0, #8
ands r0, r1
cmp r0, #0
beq lbl_08002db0
movs r0, #0
b lbl_08002dba
lbl_08002db0:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_08002dbc
movs r0, #1
lbl_08002dba:
strb r0, [r4]
lbl_08002dbc:
ldrh r1, [r4, #0x20]
cmp r1, #0
beq lbl_08002de2
movs r0, #0x80
lsls r0, r0, #8
ands r0, r1
cmp r0, #0
beq lbl_08002dd6
adds r2, r4, #0
adds r2, #0x28
ldrb r1, [r2]
movs r0, #4
b lbl_08002dde
lbl_08002dd6:
adds r2, r4, #0
adds r2, #0x28
ldrb r1, [r2]
movs r0, #1
lbl_08002dde:
orrs r0, r1
strb r0, [r2]
lbl_08002de2:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_start sub_08002de8
sub_08002de8: @ 0x08002de8
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
bl QueueSound
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_08002dfc
sub_08002dfc: @ 0x08002dfc
push {r4, r5, r6, lr}
adds r5, r0, #0
lsls r2, r2, #0x10
lsrs r6, r2, #0x10
bl sub_08004b50
cmp r6, #0
beq lbl_08002e2a
ldrb r1, [r5, #0x1c]
cmp r1, #0
bne lbl_08002e2a
movs r0, #1
strb r0, [r5, #0x1c]
movs r0, #0x22
strb r0, [r5]
movs r4, #0
strh r1, [r5, #6]
ldr r0, lbl_08002e30 @ =0x0000ffff
adds r1, r6, #0
bl __divsi3
strh r0, [r5, #8]
strb r4, [r5, #0x1c]
lbl_08002e2a:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08002e30: .4byte 0x0000ffff
thumb_func_start sub_08002e34
sub_08002e34: @ 0x08002e34
push {r4, r5, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
ldrb r5, [r4, #0x1c]
cmp r5, #0
bne lbl_08002e60
movs r0, #1
strb r0, [r4, #0x1c]
ldrb r1, [r4]
ands r0, r1
cmp r0, #0
beq lbl_08002e5e
movs r0, #0x22
strb r0, [r4]
strh r5, [r4, #6]
ldr r0, lbl_08002e68 @ =0x0000ffff
adds r1, r2, #0
bl __divsi3
strh r0, [r4, #8]
lbl_08002e5e:
strb r5, [r4, #0x1c]
lbl_08002e60:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_08002e68: .4byte 0x0000ffff
thumb_func_start sub_08002e6c
sub_08002e6c: @ 0x08002e6c
push {r4, r5, r6, lr}
adds r3, r0, #0
ldr r2, [r3, #0x18]
ldrh r0, [r3, #6]
ldrh r1, [r3, #8]
adds r1, r0, r1
ldr r0, lbl_08002ed4 @ =0x0000ffff
cmp r1, r0
bgt lbl_08002edc
strh r1, [r3, #6]
ldrb r1, [r3]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_08002eb4
ldrh r0, [r3, #0x26]
ldrh r1, [r3, #0x24]
adds r0, r0, r1
strh r0, [r3, #0x24]
lsls r0, r0, #0x10
lsrs r0, r0, #0x1c
cmp r0, #0
beq lbl_08002eac
adds r1, r3, #0
adds r1, #0x22
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldrh r1, [r3, #0x24]
ldr r0, lbl_08002ed8 @ =0x00000fff
ands r0, r1
strh r0, [r3, #0x24]
lbl_08002eac:
adds r1, r3, #0
adds r1, #0x23
movs r0, #0
strb r0, [r1]
lbl_08002eb4:
ldrb r1, [r3, #1]
cmp r1, #0
ble lbl_08002efa
movs r4, #4
lbl_08002ebc:
ldrh r0, [r3, #6]
lsrs r0, r0, #0xa
strb r0, [r2, #5]
ldrb r0, [r2]
orrs r0, r4
strb r0, [r2]
subs r1, #1
adds r2, #0x50
cmp r1, #0
bgt lbl_08002ebc
b lbl_08002efa
.align 2, 0
lbl_08002ed4: .4byte 0x0000ffff
lbl_08002ed8: .4byte 0x00000fff
lbl_08002edc:
ldrb r1, [r3, #1]
cmp r1, #0
ble lbl_08002ef6
movs r5, #0x40
movs r4, #4
lbl_08002ee6:
strb r5, [r2, #5]
ldrb r0, [r2]
orrs r0, r4
strb r0, [r2]
subs r1, #1
adds r2, #0x50
cmp r1, #0
bgt lbl_08002ee6
lbl_08002ef6:
movs r0, #2
strb r0, [r3]
lbl_08002efa:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_start sub_08002f00
sub_08002f00: @ 0x08002f00
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
lsls r1, r1, #0x10
lsrs r7, r1, #0x10
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
mov sb, r2
ldr r0, lbl_08002f88 @ =gMusicInfo
ldrb r1, [r0, #1]
mov sl, r0
cmp r1, #0
bne lbl_08003010
movs r4, #1
strb r4, [r0, #1]
ldr r3, lbl_08002f8c @ =0x0808f254
ldr r2, lbl_08002f90 @ =0x0808f2c0
lsls r0, r5, #3
adds r0, r0, r2
mov ip, r0
ldrh r1, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldr r6, [r0]
lsls r0, r7, #3
adds r0, r0, r2
ldrh r1, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldr r5, [r0]
ldrb r0, [r6, #0x1c]
cmp r0, #0
bne lbl_0800300a
ldrb r0, [r5, #0x1c]
cmp r0, #0
bne lbl_0800300a
strb r4, [r6, #0x1c]
strb r4, [r5, #0x1c]
ldrb r1, [r5]
movs r2, #2
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq lbl_08003000
movs r0, #0xf8
mov r8, r0
ands r0, r1
mov r8, r0
cmp r0, #0
bne lbl_08003000
mov r1, ip
ldr r7, [r1]
ldrb r0, [r7]
cmp r0, #0
bne lbl_08002f94
adds r0, r6, #0
bl reset_track
b lbl_08003000
.align 2, 0
lbl_08002f88: .4byte gMusicInfo
lbl_08002f8c: .4byte 0x0808f254
lbl_08002f90: .4byte 0x0808f2c0
lbl_08002f94:
ldrb r1, [r6]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq lbl_08002fac
ldrb r0, [r6, #3]
ldrb r1, [r7, #2]
cmp r0, r1
bhi lbl_08003000
adds r0, r6, #0
bl reset_track
lbl_08002fac:
ldrb r0, [r5]
movs r1, #0x80
orrs r0, r1
strb r0, [r5]
ldr r0, lbl_08003020 @ =0x0000ffff
strh r0, [r5, #6]
mov r1, sb
bl __divsi3
movs r4, #0
strh r0, [r5, #8]
mov r1, sl
ldrb r0, [r1, #5]
lsls r0, r0, #0xc
mov r1, sb
bl __divsi3
strh r0, [r5, #0x26]
mov r0, r8
strh r0, [r5, #0x24]
mov r1, sl
ldrb r0, [r1, #5]
adds r1, r5, #0
adds r1, #0x22
strb r0, [r1]
adds r0, r6, #0
adds r1, r7, #0
bl sub_08004b50
movs r0, #0x42
strb r0, [r6]
mov r0, r8
strh r0, [r6, #6]
ldrh r0, [r5, #8]
strh r0, [r6, #8]
ldrh r0, [r5, #0x26]
strh r0, [r6, #0x26]
mov r1, r8
strh r1, [r6, #0x24]
adds r0, r6, #0
adds r0, #0x22
strb r4, [r0]
lbl_08003000:
movs r0, #0
strb r0, [r6, #0x1c]
strb r0, [r5, #0x1c]
ldr r0, lbl_08003024 @ =gMusicInfo
mov sl, r0
lbl_0800300a:
movs r0, #0
mov r1, sl
strb r0, [r1, #1]
lbl_08003010:
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
lbl_08003020: .4byte 0x0000ffff
lbl_08003024: .4byte gMusicInfo
thumb_func_start sub_08003028
sub_08003028: @ 0x08003028
push {r4, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_08003052
movs r0, #1
strb r0, [r4, #0x1c]
lsrs r1, r1, #0x18
ldrh r0, [r4, #0xa]
adds r2, r0, #0
muls r2, r1, r2
adds r0, r2, #0
lsls r0, r0, #0x10
lsrs r0, r0, #8
movs r1, #0x96
bl __divsi3
movs r1, #0
strh r0, [r4, #0xc]
strb r1, [r4, #0x1c]
lbl_08003052:
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_08003058
sub_08003058: @ 0x08003058
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r7, r1, #0x10
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_080030ac
movs r0, #1
strb r0, [r4, #0x1c]
ldrb r1, [r4]
movs r0, #0xf8
ands r0, r1
cmp r0, #0
bne lbl_080030a8
ldr r3, [r4, #0x18]
movs r0, #0xff
lsls r0, r0, #2
ands r0, r2
lsrs r2, r0, #2
ldrb r0, [r4, #1]
subs r1, r0, #1
cmp r1, #0
blt lbl_080030a8
movs r6, #1
movs r5, #4
lbl_0800308e:
adds r0, r7, #0
asrs r0, r1
ands r0, r6
cmp r0, #0
beq lbl_080030a0
strb r2, [r3, #5]
ldrb r0, [r3]
orrs r0, r5
strb r0, [r3]
lbl_080030a0:
subs r1, #1
adds r3, #0x50
cmp r1, #0
bge lbl_0800308e
lbl_080030a8:
movs r0, #0
strb r0, [r4, #0x1c]
lbl_080030ac:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_080030b4
sub_080030b4: @ 0x080030b4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sb, r1
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_08003104
movs r0, #1
strb r0, [r4, #0x1c]
ldr r3, [r4, #0x18]
ldrb r1, [r4, #1]
cmp r1, #0
ble lbl_08003100
mov ip, r0
lsls r0, r2, #0x10
asrs r5, r0, #0x18
movs r6, #8
lbl_080030e2:
mov r0, sb
asrs r0, r1
mov r7, ip
ands r0, r7
cmp r0, #0
beq lbl_080030f8
strb r5, [r3, #0x1d]
strb r2, [r3, #0x1f]
ldrb r0, [r3]
orrs r0, r6
strb r0, [r3]
lbl_080030f8:
subs r1, #1
adds r3, #0x50
cmp r1, #0
bgt lbl_080030e2
lbl_08003100:
movs r0, #0
strb r0, [r4, #0x1c]
lbl_08003104:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_08003110
sub_08003110: @ 0x08003110
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_08003154
movs r0, #1
strb r0, [r4, #0x1c]
ldr r3, [r4, #0x18]
ldrb r1, [r4, #1]
cmp r1, #0
ble lbl_08003150
movs r7, #1
lsls r0, r2, #0x18
asrs r2, r0, #0x19
movs r5, #4
lbl_08003136:
adds r0, r6, #0
asrs r0, r1
ands r0, r7
cmp r0, #0
beq lbl_08003148
strb r2, [r3, #7]
ldrb r0, [r3]
orrs r0, r5
strb r0, [r3]
lbl_08003148:
subs r1, #1
adds r3, #0x50
cmp r1, #0
bgt lbl_08003136
lbl_08003150:
movs r0, #0
strb r0, [r4, #0x1c]
lbl_08003154:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_0800315c
sub_0800315c: @ 0x0800315c
push {r4, r5, r6, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_08003198
movs r0, #1
strb r0, [r4, #0x1c]
ldr r1, [r4, #0x18]
movs r0, #0x7f
ands r2, r0
ldrb r3, [r4, #1]
cmp r3, #0
ble lbl_08003194
movs r5, #1
lbl_08003180:
adds r0, r6, #0
asrs r0, r3
ands r0, r5
cmp r0, #0
beq lbl_0800318c
strb r2, [r1, #0x11]
lbl_0800318c:
subs r3, #1
adds r1, #0x50
cmp r3, #0
bgt lbl_08003180
lbl_08003194:
movs r0, #0
strb r0, [r4, #0x1c]
lbl_08003198:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_080031a0
sub_080031a0: @ 0x080031a0
push {r4, r5, r6, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne lbl_080031dc
movs r0, #1
strb r0, [r4, #0x1c]
ldr r1, [r4, #0x18]
movs r0, #0x7f
ands r2, r0
ldrb r3, [r4, #1]
cmp r3, #0
ble lbl_080031d8
movs r5, #1
lbl_080031c4:
adds r0, r6, #0
asrs r0, r3
ands r0, r5
cmp r0, #0
beq lbl_080031d0
strb r2, [r1, #0x10]
lbl_080031d0:
subs r3, #1
adds r1, #0x50
cmp r3, #0
bgt lbl_080031c4
lbl_080031d8:
movs r0, #0
strb r0, [r4, #0x1c]
lbl_080031dc:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
thumb_func_start DMATransfer
DMATransfer: @ 0x080031e4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
adds r5, r1, #0
adds r6, r2, #0
ldr r1, [sp, #0x24]
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #2
ldr r7, lbl_08003214 @ =0x040000b0
adds r2, r0, r7
cmp r1, #0x20
bne lbl_08003218
movs r0, #0x80
lsls r0, r0, #0x13
b lbl_0800321a
.align 2, 0
lbl_08003214: .4byte 0x040000b0
lbl_08003218:
movs r0, #0
lbl_0800321a:
str r0, [sp]
lsls r0, r4, #1
movs r7, #0x80
lsls r7, r7, #4
mov ip, r7
lsrs r1, r1, #4
mov sl, r1
asrs r7, r1
movs r1, #0x80
lsls r1, r1, #0x18
mov r8, r1
orrs r7, r1
adds r0, r0, r4
lsls r0, r0, #2
mov sb, r0
lbl_08003238:
cmp r3, ip
bls lbl_08003274
str r5, [r2]
str r6, [r2, #4]
ldr r0, [sp]
orrs r0, r7
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, lbl_0800326c @ =0x040000b0
add r1, sb
ldr r0, [r1, #8]
mov r4, r8
ands r0, r4
cmp r0, #0
beq lbl_08003262
movs r4, #0x80
lsls r4, r4, #0x18
lbl_0800325a:
ldr r0, [r1, #8]
ands r0, r4
cmp r0, #0
bne lbl_0800325a
lbl_08003262:
ldr r0, lbl_08003270 @ =0xfffff800
adds r3, r3, r0
add r5, ip
add r6, ip
b lbl_08003238
.align 2, 0
lbl_0800326c: .4byte 0x040000b0
lbl_08003270: .4byte 0xfffff800
lbl_08003274:
str r5, [r2]
str r6, [r2, #4]
mov r1, sl
lsrs r3, r1
mov r4, r8
orrs r3, r4
ldr r0, [sp]
orrs r0, r3
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, lbl_080032b0 @ =0x040000b0
add r1, sb
ldr r0, [r1, #8]
ands r0, r4
cmp r0, #0
beq lbl_080032a0
movs r2, #0x80
lsls r2, r2, #0x18
lbl_08003298:
ldr r0, [r1, #8]
ands r0, r2
cmp r0, #0
bne lbl_08003298
lbl_080032a0:
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
lbl_080032b0: .4byte 0x040000b0
thumb_func_start BitFill
BitFill: @ 0x080032b4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
str r1, [sp, #4]
adds r6, r2, #0
ldr r1, [sp, #0x28]
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #2
ldr r5, lbl_080032e4 @ =0x040000b0
adds r2, r0, r5
cmp r1, #0x20
bne lbl_080032e8
movs r0, #0x80
lsls r0, r0, #0x13
b lbl_080032ea
.align 2, 0
lbl_080032e4: .4byte 0x040000b0
lbl_080032e8:
movs r0, #0
lbl_080032ea:
str r0, [sp]
lsls r0, r4, #1
movs r5, #0x80
lsls r5, r5, #4
mov sb, r5
add r7, sp, #4
lsrs r1, r1, #4
mov r8, r1
asrs r5, r1
movs r1, #0x81
lsls r1, r1, #0x18
orrs r5, r1
adds r0, r0, r4
lsls r0, r0, #2
mov ip, r0
ldr r4, lbl_08003328 @ =0x040000b0
mov sl, r4
lbl_0800330c:
cmp r3, sb
bls lbl_08003340
str r7, [r2]
str r6, [r2, #4]
ldr r0, [sp]
orrs r0, r5
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r1, ip
add r1, sl
ldr r0, [r1, #8]
movs r4, #0x80
lsls r4, r4, #0x18
b lbl_0800332e
.align 2, 0
lbl_08003328: .4byte 0x040000b0
lbl_0800332c:
ldr r0, [r1, #8]
lbl_0800332e:
ands r0, r4
cmp r0, #0
bne lbl_0800332c
ldr r0, lbl_0800333c @ =0xfffff800
adds r3, r3, r0
add r6, sb
b lbl_0800330c
.align 2, 0
lbl_0800333c: .4byte 0xfffff800
lbl_08003340:
str r7, [r2]
str r6, [r2, #4]
mov r1, r8
lsrs r3, r1
movs r4, #0x81
lsls r4, r4, #0x18
orrs r3, r4
ldr r0, [sp]
orrs r0, r3
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r1, ip
add r1, sl
ldr r0, [r1, #8]
movs r5, #0x80
lsls r5, r5, #0x18
ands r0, r5
cmp r0, #0
beq lbl_08003370
adds r2, r5, #0
lbl_08003368:
ldr r0, [r1, #8]
ands r0, r2
cmp r0, #0
bne lbl_08003368
lbl_08003370:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start DMA2IntrCode
DMA2IntrCode: @ 0x08003380
push {r4, lr}
ldr r3, lbl_080033c8 @ =gMusicInfo
ldrb r0, [r3, #0x10]
adds r0, #1
strb r0, [r3, #0x10]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldrb r1, [r3, #0xe]
cmp r0, r1
bne lbl_080033c0
ldr r0, lbl_080033cc @ =0x040000c4
ldr r1, lbl_080033d0 @ =0x84400004
str r1, [r0]
adds r0, #0xc
str r1, [r0]
ldr r2, lbl_080033d4 @ =0x040000c6
movs r4, #0xa0
lsls r4, r4, #3
adds r0, r4, #0
strh r0, [r2]
ldr r1, lbl_080033d8 @ =0x040000d2
strh r0, [r1]
movs r4, #0xb6
lsls r4, r4, #8
adds r0, r4, #0
strh r0, [r2]
movs r2, #0xf6
lsls r2, r2, #8
adds r0, r2, #0
strh r0, [r1]
movs r0, #0
strb r0, [r3, #0x10]
lbl_080033c0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_080033c8: .4byte gMusicInfo
lbl_080033cc: .4byte 0x040000c4
lbl_080033d0: .4byte 0x84400004
lbl_080033d4: .4byte 0x040000c6
lbl_080033d8: .4byte 0x040000d2
thumb_func_start unk_33dc
unk_33dc: @ 0x080033dc
push {r4, r5, lr}
sub sp, #4
ldr r5, lbl_08003440 @ =gMusicInfo
ldrb r4, [r5, #1]
cmp r4, #0
bne lbl_08003438
movs r0, #1
strb r0, [r5, #1]
ldr r0, lbl_08003444 @ =0x04000064
movs r2, #0x80
lsls r2, r2, #8
adds r1, r2, #0
strh r1, [r0]
adds r0, #5
movs r2, #8
strb r2, [r0]
adds r0, #3
strh r1, [r0]
adds r0, #4
strb r4, [r0]
adds r0, #9
strb r2, [r0]
adds r0, #3
strh r1, [r0]
adds r0, #0x48
ldr r1, lbl_08003448 @ =0x84400004
str r1, [r0]
adds r0, #0xc
str r1, [r0]
subs r0, #0xa
movs r2, #0xa0
lsls r2, r2, #3
adds r1, r2, #0
strh r1, [r0]
adds r0, #0xc
strh r1, [r0]
str r4, [sp]
ldr r0, lbl_0800344c @ =0x00000c24
adds r1, r5, r0
ldr r2, lbl_08003450 @ =0x05000300
mov r0, sp
bl CpuSet
ldr r0, lbl_08003454 @ =0x04000084
strb r4, [r0]
strb r4, [r5, #1]
lbl_08003438:
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_08003440: .4byte gMusicInfo
lbl_08003444: .4byte 0x04000064
lbl_08003448: .4byte 0x84400004
lbl_0800344c: .4byte 0x00000c24
lbl_08003450: .4byte 0x05000300
lbl_08003454: .4byte 0x04000084
thumb_func_start sub_08003458
sub_08003458: @ 0x08003458
push {r4, r5, lr}
sub sp, #4
ldr r5, lbl_08003498 @ =gMusicInfo
ldrb r4, [r5, #1]
cmp r4, #0
bne lbl_08003490
movs r0, #1
strb r0, [r5, #1]
ldr r0, lbl_0800349c @ =0x040000c4
ldr r1, lbl_080034a0 @ =0x84400004
str r1, [r0]
adds r0, #0xc
str r1, [r0]
subs r0, #0xa
movs r2, #0xa0
lsls r2, r2, #3
adds r1, r2, #0
strh r1, [r0]
adds r0, #0xc
strh r1, [r0]
str r4, [sp]
ldr r0, lbl_080034a4 @ =0x00000c24
adds r1, r5, r0
ldr r2, lbl_080034a8 @ =0x05000300
mov r0, sp
bl CpuSet
strb r4, [r5, #1]
lbl_08003490:
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_08003498: .4byte gMusicInfo
lbl_0800349c: .4byte 0x040000c4
lbl_080034a0: .4byte 0x84400004
lbl_080034a4: .4byte 0x00000c24
lbl_080034a8: .4byte 0x05000300
thumb_func_start sub_080034ac
sub_080034ac: @ 0x080034ac
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp]
movs r3, #0
movs r0, #1
ldr r1, [sp]
cmp r1, #0
bne lbl_080034ca
movs r0, #2
lbl_080034ca:
adds r2, r0, #0
ldr r0, lbl_0800352c @ =0x00000009
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r2, r0
bhs lbl_080035ba
str r0, [sp, #4]
lbl_080034d8:
cmp r2, #2
bne lbl_080034e2
ldr r0, [sp]
cmp r0, #0
beq lbl_080034f4
lbl_080034e2:
movs r1, #0xa5
lsls r1, r1, #1
asrs r1, r2
movs r0, #1
ands r1, r0
adds r0, r2, #1
mov sl, r0
cmp r1, #0
beq lbl_080035ae
lbl_080034f4:
ldr r0, lbl_08003530 @ =0x0808f254
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldr r6, [r1]
ldrb r0, [r6, #0x1c]
adds r2, #1
mov sl, r2
cmp r0, #0
bne lbl_080035ae
movs r2, #1
strb r2, [r6, #0x1c]
ldrb r1, [r6, #0x1e]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne lbl_080035aa
ldrb r1, [r6]
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_080035aa
strb r2, [r6, #0x1e]
movs r1, #0
ldr r4, [r6, #0x18]
b lbl_080035a4
.align 2, 0
lbl_0800352c: .4byte 0x00000009
lbl_08003530: .4byte 0x0808f254
lbl_08003534:
adds r0, r4, #0
adds r0, #0x34
ldrb r2, [r0]
movs r0, #0xc0
ands r0, r2
adds r1, #1
mov r8, r1
movs r1, #0x50
adds r1, r1, r4
mov sb, r1
cmp r0, #0
bne lbl_0800359c
ldr r0, [r4, #0x4c]
cmp r0, #0
beq lbl_08003564
movs r1, #7
ands r1, r2
subs r1, #1
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
str r3, [sp, #8]
bl sub_080024c0
ldr r3, [sp, #8]
lbl_08003564:
ldr r0, [r4, #0x48]
cmp r0, #0
beq lbl_0800359c
adds r4, r0, #0
ldr r7, lbl_080035cc @ =gSoundChannelBackup
movs r5, #0
lbl_08003570:
lsls r0, r3, #3
subs r0, r0, r3
lsls r0, r0, #3
adds r0, r0, r7
stm r0!, {r4}
adds r1, r4, #0
movs r2, #0x34
str r3, [sp, #8]
bl memcpy
ldr r3, [sp, #8]
adds r0, r3, #1
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
strb r5, [r4]
str r5, [r4, #0x28]
ldr r0, [r4, #0x30]
str r5, [r4, #0x30]
str r5, [r4, #0x2c]
adds r4, r0, #0
cmp r4, #0
bne lbl_08003570
lbl_0800359c:
mov r1, r8
lsls r0, r1, #0x18
lsrs r1, r0, #0x18
mov r4, sb
lbl_080035a4:
ldrb r0, [r6, #1]
cmp r1, r0
blo lbl_08003534
lbl_080035aa:
movs r0, #0
strb r0, [r6, #0x1c]
lbl_080035ae:
mov r1, sl
lsls r0, r1, #0x18
lsrs r2, r0, #0x18
ldr r0, [sp, #4]
cmp r2, r0
blo lbl_080034d8
lbl_080035ba:
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_080035cc: .4byte gSoundChannelBackup
thumb_func_start sub_080035d0
sub_080035d0: @ 0x080035d0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp]
movs r0, #0
mov sb, r0
movs r0, #1
ldr r1, [sp]
cmp r1, #0
bne lbl_080035f0
movs r0, #2
lbl_080035f0:
adds r2, r0, #0
ldr r0, lbl_0800364c @ =0x00000009
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r2, r0
bhs lbl_080036ba
str r0, [sp, #4]
lbl_080035fe:
cmp r2, #2
bne lbl_08003608
ldr r0, [sp]
cmp r0, #0
beq lbl_0800361a
lbl_08003608:
movs r0, #0xa5
lsls r0, r0, #1
asrs r0, r2
movs r1, #1
ands r0, r1
adds r1, r2, #1
mov sl, r1
cmp r0, #0
beq lbl_080036ae
lbl_0800361a:
ldr r0, lbl_08003650 @ =0x0808f254
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldr r5, [r1]
ldrb r0, [r5, #0x1c]
adds r2, #1
mov sl, r2
cmp r0, #0
bne lbl_080036ae
movs r0, #1
strb r0, [r5, #0x1c]
ldrb r1, [r5, #0x1e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_080036aa
movs r0, #0xfe
ands r0, r1
strb r0, [r5, #0x1e]
movs r3, #0
ldr r2, [r5, #0x18]
b lbl_080036a4
.align 2, 0
lbl_0800364c: .4byte 0x00000009
lbl_08003650: .4byte 0x0808f254
lbl_08003654:
adds r0, r2, #0
adds r0, #0x34
ldrb r1, [r0]
movs r0, #0xc0
ands r0, r1
adds r6, r3, #1
adds r7, r2, #0
adds r7, #0x50
cmp r0, #0
bne lbl_0800369e
ldr r0, [r2, #0x48]
cmp r0, #0
beq lbl_0800369e
adds r4, r0, #0
ldr r0, lbl_080036cc @ =gSoundChannelBackup
mov r8, r0
lbl_08003674:
adds r0, r4, #0
bl sub_080020a4
mov r0, sb
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #3
add r1, r8
adds r1, #4
adds r0, r4, #0
movs r2, #0x34
bl memcpy
mov r0, sb
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
ldr r4, [r4, #0x30]
cmp r4, #0
bne lbl_08003674
lbl_0800369e:
lsls r0, r6, #0x18
lsrs r3, r0, #0x18
adds r2, r7, #0
lbl_080036a4:
ldrb r1, [r5, #1]
cmp r3, r1
blo lbl_08003654
lbl_080036aa:
movs r0, #0
strb r0, [r5, #0x1c]
lbl_080036ae:
mov r1, sl
lsls r0, r1, #0x18
lsrs r2, r0, #0x18
ldr r0, [sp, #4]
cmp r2, r0
blo lbl_080035fe
lbl_080036ba:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_080036cc: .4byte gSoundChannelBackup
thumb_func_start CheckSetNewMusicTrack
CheckSetNewMusicTrack: @ 0x080036d0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r0, lbl_080036fc @ =gMusicInfo
mov r8, r0
adds r0, #0x21
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
bne lbl_08003776
movs r0, #0x70
ands r0, r1
cmp r0, #0
beq lbl_08003700
adds r0, r4, #0
bl sub_0800378c
b lbl_08003776
.align 2, 0
lbl_080036fc: .4byte gMusicInfo
lbl_08003700:
lsls r0, r1, #0x18
cmp r0, #0
bne lbl_08003776
mov r1, r8
ldrb r5, [r1, #1]
cmp r5, #0
bne lbl_08003776
movs r0, #1
strb r0, [r1, #1]
ldr r6, lbl_08003780 @ =0x0808f254
ldr r0, [r6, #0x48]
movs r1, #0xa
bl sub_08002c94
ldr r0, [r6, #0x60]
movs r1, #0xa
bl sub_08002c94
ldr r3, lbl_08003784 @ =gSoundQueue
adds r2, r3, #0
adds r2, #0x30
ldrb r1, [r2]
movs r7, #3
adds r0, r7, #0
ands r0, r1
cmp r0, #0
beq lbl_08003738
strb r5, [r2]
lbl_08003738:
adds r2, r3, #0
adds r2, #0x40
ldrb r1, [r2]
adds r0, r7, #0
ands r0, r1
cmp r0, #0
beq lbl_08003748
strb r5, [r2]
lbl_08003748:
ldr r6, [r6]
cmp r4, #0
bne lbl_08003750
movs r4, #0xa9
lbl_08003750:
adds r0, r4, #0
bl sub_08003980
adds r4, r0, #0
ldr r1, lbl_08003788 @ =0x0808f2c0
lsls r0, r4, #3
adds r0, r0, r1
ldr r1, [r0]
ldr r0, [r6, #0x10]
cmp r1, r0
beq lbl_08003772
adds r0, r6, #0
movs r1, #0x1e
bl sub_08002c94
mov r0, r8
strh r4, [r0, #0x22]
lbl_08003772:
mov r1, r8
strb r5, [r1, #1]
lbl_08003776:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003780: .4byte 0x0808f254
lbl_08003784: .4byte gSoundQueue
lbl_08003788: .4byte 0x0808f2c0
thumb_func_start sub_0800378c
sub_0800378c: @ 0x0800378c
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r7, lbl_08003808 @ =gMusicInfo
ldrb r6, [r7, #1]
cmp r6, #0
bne lbl_08003866
movs r0, #1
strb r0, [r7, #1]
ldr r4, lbl_0800380c @ =0x0808f254
ldr r0, [r4, #0x48]
movs r1, #0xa
bl sub_08002c94
ldr r0, [r4, #0x60]
movs r1, #0xa
bl sub_08002c94
ldr r3, lbl_08003810 @ =gSoundQueue
adds r2, r3, #0
adds r2, #0x30
ldrb r1, [r2]
movs r4, #3
adds r0, r4, #0
ands r0, r1
cmp r0, #0
beq lbl_080037c4
strb r6, [r2]
lbl_080037c4:
adds r2, r3, #0
adds r2, #0x40
ldrb r1, [r2]
adds r0, r4, #0
ands r0, r1
cmp r0, #0
beq lbl_080037d4
strb r6, [r2]
lbl_080037d4:
adds r0, r7, #0
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x30
ands r0, r1
cmp r0, #0
beq lbl_08003822
ldrh r0, [r7, #0x1c]
subs r0, #0x5a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi lbl_08003814
adds r0, r5, #0
subs r0, #0x5a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bls lbl_0800383a
movs r0, #0x10
ands r0, r1
movs r5, #0x49
cmp r0, #0
beq lbl_0800383a
movs r5, #0x46
b lbl_0800383a
.align 2, 0
lbl_08003808: .4byte gMusicInfo
lbl_0800380c: .4byte 0x0808f254
lbl_08003810: .4byte gSoundQueue
lbl_08003814:
adds r0, r5, #0
subs r0, #0x5a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bls lbl_0800383a
b lbl_08003860
lbl_08003822:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_0800383a
adds r0, r5, #0
subs r0, #0x5a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi lbl_08003860
strh r5, [r7, #0x22]
b lbl_08003860
lbl_0800383a:
ldr r0, lbl_0800386c @ =0x0808f254
ldr r6, [r0]
ldr r4, lbl_08003870 @ =0x0808f2c0
adds r0, r5, #0
bl sub_08003980
lsls r0, r0, #0x10
lsrs r0, r0, #0xd
adds r0, r0, r4
ldr r1, [r0]
ldr r0, [r6, #0x10]
cmp r1, r0
beq lbl_08003860
adds r0, r6, #0
movs r1, #0x1e
bl sub_08002c94
ldr r0, lbl_08003874 @ =gMusicInfo
strh r5, [r0, #0x22]
lbl_08003860:
ldr r1, lbl_08003874 @ =gMusicInfo
movs r0, #0
strb r0, [r1, #1]
lbl_08003866:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0800386c: .4byte 0x0808f254
lbl_08003870: .4byte 0x0808f2c0
lbl_08003874: .4byte gMusicInfo
thumb_func_start CheckPlayTransitionMusicTrack
CheckPlayTransitionMusicTrack: @ 0x08003878
push {r4, r5, lr}
ldr r4, lbl_08003898 @ =gMusicInfo
adds r0, r4, #0
adds r0, #0x21
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
bne lbl_080038c8
movs r0, #0x70
ands r0, r1
cmp r0, #0
beq lbl_0800389c
bl sub_080038d8
b lbl_080038c8
.align 2, 0
lbl_08003898: .4byte gMusicInfo
lbl_0800389c:
lsls r0, r1, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne lbl_080038c8
ldrh r0, [r4, #0x22]
cmp r0, #0
beq lbl_080038c8
ldr r0, lbl_080038d0 @ =0x0808f254
ldr r0, [r0]
ldr r2, lbl_080038d4 @ =0x0808f2c0
ldrh r1, [r4, #0x22]
lsls r1, r1, #3
adds r1, r1, r2
ldr r1, [r1]
bl sub_08004b50
adds r0, r4, #0
adds r0, #0x20
strb r5, [r0]
ldrh r0, [r4, #0x22]
strh r0, [r4, #0x1c]
strh r5, [r4, #0x22]
lbl_080038c8:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_080038d0: .4byte 0x0808f254
lbl_080038d4: .4byte 0x0808f2c0
thumb_func_start sub_080038d8
sub_080038d8: @ 0x080038d8
push {r4, r5, r6, r7, lr}
ldr r6, lbl_08003924 @ =gMusicInfo
adds r0, r6, #0
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
cmp r7, #0
bne lbl_08003918
ldrh r0, [r6, #0x22]
cmp r0, #0
beq lbl_08003918
ldr r0, lbl_08003928 @ =0x0808f254
ldr r5, [r0]
ldr r4, lbl_0800392c @ =0x0808f2c0
ldrh r0, [r6, #0x22]
bl sub_08003980
lsls r0, r0, #0x10
lsrs r0, r0, #0xd
adds r0, r0, r4
ldr r1, [r0]
adds r0, r5, #0
bl sub_08004b50
adds r0, r6, #0
adds r0, #0x20
strb r7, [r0]
ldrh r0, [r6, #0x22]
strh r0, [r6, #0x1c]
lbl_08003918:
ldr r1, lbl_08003924 @ =gMusicInfo
movs r0, #0
strh r0, [r1, #0x22]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003924: .4byte gMusicInfo
lbl_08003928: .4byte 0x0808f254
lbl_0800392c: .4byte 0x0808f2c0
thumb_func_start UpdateMusicAfterAlarmDisable
UpdateMusicAfterAlarmDisable: @ 0x08003930
push {lr}
ldr r1, lbl_08003950 @ =gMusicInfo
adds r2, r1, #0
adds r2, #0x21
movs r0, #0x20
strb r0, [r2]
ldrh r0, [r1, #0x22]
cmp r0, #0
bne lbl_08003954
movs r0, #5
movs r1, #0x49
movs r2, #0x20
bl sub_08003b30
b lbl_0800397a
.align 2, 0
lbl_08003950: .4byte gMusicInfo
lbl_08003954:
subs r0, #0x5a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi lbl_08003970
ldr r0, lbl_0800396c @ =0x0808f254
ldr r0, [r0]
movs r1, #5
bl sub_08002c94
b lbl_0800397a
.align 2, 0
lbl_0800396c: .4byte 0x0808f254
lbl_08003970:
movs r0, #5
movs r1, #0x49
movs r2, #0x20
bl sub_08003b30
lbl_0800397a:
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_08003980
sub_08003980: @ 0x08003980
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r0, #0
subs r1, #0x5a
cmp r1, #4
bhi lbl_080039c2
lsls r0, r1, #2
ldr r1, lbl_08003998 @ =lbl_0800399c
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_08003998: .4byte lbl_0800399c
lbl_0800399c: @ jump table
.4byte lbl_080039b0 @ case 0
.4byte lbl_080039b4 @ case 1
.4byte lbl_080039b8 @ case 2
.4byte lbl_080039bc @ case 3
.4byte lbl_080039c0 @ case 4
lbl_080039b0:
movs r0, #0xe
b lbl_080039c2
lbl_080039b4:
movs r0, #0xc
b lbl_080039c2
lbl_080039b8:
movs r0, #3
b lbl_080039c2
lbl_080039bc:
movs r0, #0x17
b lbl_080039c2
lbl_080039c0:
movs r0, #0x46
lbl_080039c2:
pop {r1}
bx r1
.align 2, 0
thumb_func_start unk_39c8
unk_39c8: @ 0x080039c8
push {r4, lr}
ldr r0, lbl_080039ec @ =gMusicInfo
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne lbl_080039e6
ldr r4, lbl_080039f0 @ =0x0808f254
ldr r0, [r4, #0x48]
movs r1, #0xa
bl sub_08002c94
ldr r0, [r4, #0x60]
movs r1, #0xa
bl sub_08002c94
lbl_080039e6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_080039ec: .4byte gMusicInfo
lbl_080039f0: .4byte 0x0808f254
thumb_func_start PlayMusic
PlayMusic: @ 0x080039f4
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
adds r7, r6, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
ldr r3, lbl_08003a60 @ =gMusicInfo
ldrb r0, [r3, #1]
cmp r0, #0
bne lbl_08003a58
movs r0, #1
strb r0, [r3, #1]
adds r5, r3, #0
adds r5, #0x21
ldrb r2, [r5]
movs r4, #0x84
ands r4, r2
cmp r4, #0
bne lbl_08003a52
movs r0, #0x80
ands r0, r2
orrs r0, r1
strb r0, [r5]
ldr r1, lbl_08003a64 @ =0x0808f2c0
lsls r0, r6, #3
adds r0, r0, r1
ldr r5, [r0]
ldr r0, lbl_08003a68 @ =0x0808f254
ldr r2, [r0]
ldr r0, [r2, #0x10]
cmp r5, r0
bne lbl_08003a3e
ldrb r1, [r2]
movs r0, #2
ands r0, r1
cmp r0, #0
bne lbl_08003a52
lbl_08003a3e:
adds r0, r3, #0
adds r0, #0x20
strb r4, [r0]
movs r0, #0
strh r7, [r3, #0x1c]
strb r0, [r3, #1]
adds r0, r2, #0
adds r1, r5, #0
bl sub_08004b50
lbl_08003a52:
ldr r1, lbl_08003a60 @ =gMusicInfo
movs r0, #0
strb r0, [r1, #1]
lbl_08003a58:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003a60: .4byte gMusicInfo
lbl_08003a64: .4byte 0x0808f2c0
lbl_08003a68: .4byte 0x0808f254
thumb_func_start sub_08003a6c
sub_08003a6c: @ 0x08003a6c
push {lr}
ldr r0, lbl_08003a80 @ =gMusicInfo
adds r0, #0x20
ldrb r0, [r0]
cmp r0, #0
bne lbl_08003a88
ldr r0, lbl_08003a84 @ =0x0808f254
ldr r0, [r0]
b lbl_08003a8c
.align 2, 0
lbl_08003a80: .4byte gMusicInfo
lbl_08003a84: .4byte 0x0808f254
lbl_08003a88:
ldr r0, lbl_08003a94 @ =0x0808f254
ldr r0, [r0, #0xc]
lbl_08003a8c:
bl stop_music_or_sound
pop {r0}
bx r0
.align 2, 0
lbl_08003a94: .4byte 0x0808f254
thumb_func_start FadeMusic
FadeMusic: @ 0x08003a98
push {lr}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r1, lbl_08003ac8 @ =gMusicInfo
ldrb r0, [r1, #1]
cmp r0, #0
bne lbl_08003ada
movs r0, #1
strb r0, [r1, #1]
adds r0, r1, #0
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x84
ands r0, r1
cmp r0, #0
bne lbl_08003ad4
ldr r0, lbl_08003acc @ =0x0808f254
ldr r0, [r0]
cmp r2, #0
beq lbl_08003ad0
adds r1, r2, #0
bl sub_08002c94
b lbl_08003ad4
.align 2, 0
lbl_08003ac8: .4byte gMusicInfo
lbl_08003acc: .4byte 0x0808f254
lbl_08003ad0:
bl stop_music_or_sound
lbl_08003ad4:
ldr r1, lbl_08003ae0 @ =gMusicInfo
movs r0, #0
strb r0, [r1, #1]
lbl_08003ada:
pop {r0}
bx r0
.align 2, 0
lbl_08003ae0: .4byte gMusicInfo
thumb_func_start FadeMusicForDemo
FadeMusicForDemo: @ 0x08003ae4
push {lr}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r1, lbl_08003b14 @ =gMusicInfo
ldrb r0, [r1, #1]
cmp r0, #0
bne lbl_08003b26
movs r0, #1
strb r0, [r1, #1]
adds r0, r1, #0
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne lbl_08003b20
ldr r0, lbl_08003b18 @ =0x0808f254
ldr r0, [r0]
cmp r2, #0
beq lbl_08003b1c
adds r1, r2, #0
bl sub_08002c94
b lbl_08003b20
.align 2, 0
lbl_08003b14: .4byte gMusicInfo
lbl_08003b18: .4byte 0x0808f254
lbl_08003b1c:
bl stop_music_or_sound
lbl_08003b20:
ldr r1, lbl_08003b2c @ =gMusicInfo
movs r0, #0
strb r0, [r1, #1]
lbl_08003b26:
pop {r0}
bx r0
.align 2, 0
lbl_08003b2c: .4byte gMusicInfo
thumb_func_start sub_08003b30
sub_08003b30: @ 0x08003b30
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r7, r4, #0
lsls r1, r1, #0x10
lsrs r3, r1, #0x10
adds r6, r3, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
adds r5, r2, #0
ldr r0, lbl_08003b60 @ =gMusicInfo
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x84
ands r0, r1
cmp r0, #0
bne lbl_08003b72
cmp r4, #0
bne lbl_08003b64
adds r0, r3, #0
adds r1, r2, #0
bl PlayMusic
b lbl_08003b72
.align 2, 0
lbl_08003b60: .4byte gMusicInfo
lbl_08003b64:
ldr r0, lbl_08003b78 @ =0x0808f254
ldr r0, [r0]
strh r6, [r0, #0x20]
strb r5, [r0, #0x1f]
adds r1, r7, #0
bl sub_08002c94
lbl_08003b72:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003b78: .4byte 0x0808f254
thumb_func_start FadeCurrentInsertMusicQueueCurrent
FadeCurrentInsertMusicQueueCurrent: @ 0x08003b7c
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
adds r7, r5, #0
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
adds r3, r4, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
adds r6, r2, #0
ldr r0, lbl_08003bac @ =gMusicInfo
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x84
ands r0, r1
cmp r0, #0
bne lbl_08003bc6
cmp r5, #0
bne lbl_08003bb0
adds r0, r4, #0
adds r1, r2, #0
bl PlayMusic
b lbl_08003bc6
.align 2, 0
lbl_08003bac: .4byte gMusicInfo
lbl_08003bb0:
ldr r0, lbl_08003bcc @ =0x0808f254
ldr r0, [r0]
movs r2, #0x80
lsls r2, r2, #8
adds r1, r2, #0
orrs r3, r1
strh r3, [r0, #0x20]
strb r6, [r0, #0x1f]
adds r1, r7, #0
bl sub_08002ce8
lbl_08003bc6:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003bcc: .4byte 0x0808f254
thumb_func_start sub_08003bd0
sub_08003bd0: @ 0x08003bd0
push {r4, lr}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
ldr r0, lbl_08003c14 @ =gMusicInfo
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x84
ands r0, r1
cmp r0, #0
bne lbl_08003c0c
ldr r3, lbl_08003c18 @ =0x0808f254
ldr r0, lbl_08003c1c @ =0x0808f2c0
lsls r2, r2, #3
adds r2, r2, r0
ldrh r1, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldr r3, [r0]
ldr r1, [r2]
ldr r0, [r3, #0x10]
cmp r1, r0
bne lbl_08003c0c
adds r0, r3, #0
adds r1, r4, #0
bl sub_08002e34
lbl_08003c0c:
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_08003c14: .4byte gMusicInfo
lbl_08003c18: .4byte 0x0808f254
lbl_08003c1c: .4byte 0x0808f2c0
thumb_func_start sub_08003c20
sub_08003c20: @ 0x08003c20
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
adds r7, r6, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov ip, r1
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldr r3, lbl_08003c94 @ =gMusicInfo
ldrb r0, [r3, #1]
cmp r0, #0
bne lbl_08003c8c
movs r0, #1
strb r0, [r3, #1]
adds r5, r3, #0
adds r5, #0x21
ldrb r1, [r5]
movs r4, #0x84
ands r4, r1
cmp r4, #0
bne lbl_08003c86
movs r0, #0x80
ands r0, r1
orrs r0, r2
strb r0, [r5]
ldr r1, lbl_08003c98 @ =0x0808f2c0
lsls r0, r6, #3
adds r0, r0, r1
ldr r5, [r0]
ldr r0, lbl_08003c9c @ =0x0808f254
ldr r2, [r0]
ldrb r1, [r2]
movs r0, #0x1a
ands r0, r1
cmp r0, #2
bne lbl_08003c70
ldr r0, [r2, #0x10]
cmp r5, r0
beq lbl_08003c86
lbl_08003c70:
adds r0, r3, #0
adds r0, #0x20
strb r4, [r0]
movs r0, #0
strh r7, [r3, #0x1c]
strb r0, [r3, #1]
adds r0, r2, #0
adds r1, r5, #0
mov r2, ip
bl sub_08002dfc
lbl_08003c86:
ldr r1, lbl_08003c94 @ =gMusicInfo
movs r0, #0
strb r0, [r1, #1]
lbl_08003c8c:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003c94: .4byte gMusicInfo
lbl_08003c98: .4byte 0x0808f2c0
lbl_08003c9c: .4byte 0x0808f254
thumb_func_start InsertMusicAndQueueCurrent
InsertMusicAndQueueCurrent: @ 0x08003ca0
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
lsls r1, r1, #0x18
lsrs r3, r1, #0x18
adds r6, r3, #0
ldr r1, lbl_08003d00 @ =gMusicInfo
ldrb r0, [r1, #1]
cmp r0, #0
bne lbl_08003d40
movs r7, #0
movs r0, #1
strb r0, [r1, #1]
adds r0, r1, #0
adds r0, #0x21
ldrb r1, [r0]
movs r0, #0x84
ands r0, r1
cmp r0, #0
bne lbl_08003d3a
ldr r1, lbl_08003d04 @ =0x0808f2c0
lsls r0, r2, #3
adds r0, r0, r1
ldr r5, [r0]
ldr r2, lbl_08003d08 @ =0x0808f254
ldr r4, [r2]
ldrb r1, [r4]
movs r0, #0x1a
ands r0, r1
cmp r0, #2
bne lbl_08003ce4
ldr r0, [r4, #0x10]
cmp r5, r0
beq lbl_08003d3a
lbl_08003ce4:
cmp r3, #0
bne lbl_08003d0c
ldr r0, [r2, #0x24]
bl stop_music_or_sound
movs r0, #1
bl sub_080034ac
bl sub_08002a8c
adds r2, r4, #0
adds r2, #0x28
ldrb r0, [r2]
b lbl_08003d1e
.align 2, 0
lbl_08003d00: .4byte gMusicInfo
lbl_08003d04: .4byte 0x0808f2c0
lbl_08003d08: .4byte 0x0808f254
lbl_08003d0c:
cmp r6, #1
bne lbl_08003d24
bl sub_08002a8c
adds r2, r4, #0
adds r2, #0x28
ldrb r0, [r2]
movs r1, #0x40
orrs r0, r1
lbl_08003d1e:
movs r1, #0x80
orrs r0, r1
strb r0, [r2]
lbl_08003d24:
ldr r3, lbl_08003d48 @ =gMusicInfo
adds r1, r3, #0
adds r1, #0x20
movs r2, #0
movs r0, #1
strb r0, [r1]
strb r2, [r3, #1]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08004b50
lbl_08003d3a:
ldr r1, lbl_08003d48 @ =gMusicInfo
movs r0, #0
strb r0, [r1, #1]
lbl_08003d40:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003d48: .4byte gMusicInfo
thumb_func_start sub_08003d4c
sub_08003d4c: @ 0x08003d4c
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
ldr r4, lbl_08003d98 @ =gMusicInfo
ldrb r5, [r4, #1]
cmp r5, #0
bne lbl_08003e02
movs r0, #1
strb r0, [r4, #1]
movs r0, #0x40
mov r1, r8
ands r0, r1
cmp r0, #0
bne lbl_08003d76
movs r0, #1
bl sub_080035d0
lbl_08003d76:
ldr r0, lbl_08003d9c @ =0x0808f254
ldr r6, [r0]
adds r0, r4, #0
adds r0, #0x20
strb r5, [r0]
ldrh r0, [r4, #0x1c]
subs r0, #0x5a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi lbl_08003da0
ldrh r0, [r4, #0x1c]
bl sub_08003980
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b lbl_08003da2
.align 2, 0
lbl_08003d98: .4byte gMusicInfo
lbl_08003d9c: .4byte 0x0808f254
lbl_08003da0:
ldrh r0, [r4, #0x1c]
lbl_08003da2:
ldr r1, lbl_08003e10 @ =0x0808f2c0
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, [r0]
ldr r7, lbl_08003e14 @ =gMusicInfo
movs r0, #0
mov sb, r0
mov r0, sb
strb r0, [r7, #1]
adds r0, r6, #0
bl sub_08004b50
movs r0, #0x40
mov r1, r8
ands r0, r1
cmp r0, #0
beq lbl_08003dcc
adds r0, r6, #0
movs r1, #0x3c
bl sub_080041ec
lbl_08003dcc:
ldrb r1, [r7, #0xb]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq lbl_08003dfe
ldr r5, lbl_08003e18 @ =0x0808f254
ldr r0, [r5]
ldr r6, lbl_08003e1c @ =0x0000ffff
ldr r4, lbl_08003e20 @ =0x00000050
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r1, r6, #0
adds r2, r4, #0
bl sub_08003058
ldr r0, [r5, #0xc]
adds r1, r6, #0
adds r2, r4, #0
bl sub_08003058
ldr r0, [r5, #0x54]
adds r1, r6, #0
adds r2, r4, #0
bl sub_08003058
lbl_08003dfe:
mov r0, sb
strb r0, [r7, #1]
lbl_08003e02:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08003e10: .4byte 0x0808f2c0
lbl_08003e14: .4byte gMusicInfo
lbl_08003e18: .4byte 0x0808f254
lbl_08003e1c: .4byte 0x0000ffff
lbl_08003e20: .4byte 0x00000050
thumb_func_start sub_08003e24
sub_08003e24: @ 0x08003e24
push {lr}
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
ldr r0, lbl_08003e3c @ =gMusicInfo
adds r0, #0x20
ldrb r0, [r0]
cmp r0, #0
bne lbl_08003e44
ldr r0, lbl_08003e40 @ =0x0808f254
ldr r0, [r0]
b lbl_08003e48
.align 2, 0
lbl_08003e3c: .4byte gMusicInfo
lbl_08003e40: .4byte 0x0808f254
lbl_08003e44:
ldr r0, lbl_08003e54 @ =0x0808f254
ldr r0, [r0, #0xc]
lbl_08003e48:
cmp r1, #0
beq lbl_08003e58
bl sub_08002c94
b lbl_08003e5c
.align 2, 0
lbl_08003e54: .4byte 0x0808f254
lbl_08003e58:
bl stop_music_or_sound
lbl_08003e5c:
pop {r0}
bx r0
thumb_func_start UpdateMusicPriority
UpdateMusicPriority: @ 0x08003e60
push {r4, lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
adds r4, r2, #0
ldr r1, lbl_08003e88 @ =gMusicInfo
ldrb r0, [r1, #1]
adds r3, r1, #0
cmp r0, #0
bne lbl_08003eb0
movs r0, #1
strb r0, [r3, #1]
cmp r2, #0x80
bne lbl_08003e8c
adds r4, r3, #0
adds r4, #0x21
ldrb r1, [r4]
adds r0, r2, #0
orrs r0, r1
strb r0, [r4]
b lbl_08003eac
.align 2, 0
lbl_08003e88: .4byte gMusicInfo
lbl_08003e8c:
cmp r2, #0xff
bne lbl_08003e9e
adds r2, r3, #0
adds r2, #0x21
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
strb r0, [r2]
b lbl_08003eac
lbl_08003e9e:
adds r2, r3, #0
adds r2, #0x21
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
orrs r4, r0
strb r4, [r2]
lbl_08003eac:
movs r0, #0
strb r0, [r3, #1]
lbl_08003eb0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_start PlayCurrentMusicTrack
PlayCurrentMusicTrack: @ 0x08003eb8
push {r4, r5, r6, lr}
ldr r1, lbl_08003ef0 @ =gMusicInfo
ldrb r2, [r1, #1]
cmp r2, #0
bne lbl_08003f12
movs r0, #1
strb r0, [r1, #1]
ldr r0, lbl_08003ef4 @ =0x0808f254
ldr r6, [r0]
adds r0, r1, #0
adds r0, #0x20
strb r2, [r0]
ldrh r2, [r1, #0x1c]
adds r0, r2, #0
subs r0, #0x5a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi lbl_08003efc
ldr r4, lbl_08003ef8 @ =0x0808f2c0
adds r0, r2, #0
bl sub_08003980
lsls r0, r0, #0x10
lsrs r0, r0, #0xd
adds r0, r0, r4
b lbl_08003f02
.align 2, 0
lbl_08003ef0: .4byte gMusicInfo
lbl_08003ef4: .4byte 0x0808f254
lbl_08003ef8: .4byte 0x0808f2c0
lbl_08003efc:
ldr r1, lbl_08003f18 @ =0x0808f2c0
lsls r0, r2, #3
adds r0, r0, r1
lbl_08003f02:
ldr r1, [r0]
ldr r5, lbl_08003f1c @ =gMusicInfo
movs r4, #0
strb r4, [r5, #1]
adds r0, r6, #0
bl sub_08004b50
strb r4, [r5, #1]
lbl_08003f12:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08003f18: .4byte 0x0808f2c0
lbl_08003f1c: .4byte gMusicInfo
thumb_func_start DecreaseMusicVolume
DecreaseMusicVolume: @ 0x08003f20
push {r4, r5, r6, lr}
movs r0, #0x63
bl SoundPlay
movs r0, #0
bl sub_080034ac
ldr r2, lbl_08003f5c @ =gMusicInfo
ldrb r1, [r2, #0xb]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0xb]
ldr r5, lbl_08003f60 @ =0x0808f254
ldr r0, [r5]
ldr r6, lbl_08003f64 @ =0x0000ffff
ldr r4, lbl_08003f68 @ =0x00000050
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r1, r6, #0
adds r2, r4, #0
bl sub_08003058
ldr r0, [r5, #0xc]
adds r1, r6, #0
adds r2, r4, #0
bl sub_08003058
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08003f5c: .4byte gMusicInfo
lbl_08003f60: .4byte 0x0808f254
lbl_08003f64: .4byte 0x0000ffff
lbl_08003f68: .4byte 0x00000050
thumb_func_start ResetMusicVolume
ResetMusicVolume: @ 0x08003f6c
push {r4, r5, r6, lr}
ldr r4, lbl_08003fa0 @ =0x0808f254
ldr r0, [r4]
ldr r5, lbl_08003fa4 @ =0x0000ffff
movs r6, #0x80
lsls r6, r6, #1
adds r1, r5, #0
adds r2, r6, #0
bl sub_08003058
ldr r0, [r4, #0xc]
adds r1, r5, #0
adds r2, r6, #0
bl sub_08003058
ldr r2, lbl_08003fa8 @ =gMusicInfo
ldrb r1, [r2, #0xb]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0xb]
movs r0, #0
bl sub_080035d0
lbl_08003f9a:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08003fa0: .4byte 0x0808f254
lbl_08003fa4: .4byte 0x0000ffff
lbl_08003fa8: .4byte gMusicInfo
thumb_func_start QueueSound
QueueSound: @ 0x08003fac
push {r4, r5, r6, lr}
lsls r0, r0, #0x10
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
ldr r1, lbl_08003fec @ =0x0808f2c0
lsrs r0, r0, #0xd
adds r0, r0, r1
ldrb r2, [r0, #4]
ldr r5, [r0]
ldr r0, lbl_08003ff0 @ =0x0808cee2
adds r0, r2, r0
ldrb r0, [r0]
ldr r6, lbl_08003ff4 @ =gSoundQueue
cmp r0, #0
beq lbl_08003fe0
lsls r0, r2, #3
adds r3, r0, r6
ldrb r1, [r3]
movs r0, #3
ands r0, r1
cmp r0, #0
beq lbl_08003fe0
ldrb r0, [r3, #1]
ldrb r1, [r5, #2]
cmp r0, r1
bhi lbl_0800400e
lbl_08003fe0:
cmp r4, #0
bne lbl_08003ff8
lsls r2, r2, #3
adds r1, r2, r6
movs r0, #1
b lbl_08003ffe
.align 2, 0
lbl_08003fec: .4byte 0x0808f2c0
lbl_08003ff0: .4byte 0x0808cee2
lbl_08003ff4: .4byte gSoundQueue
lbl_08003ff8:
lsls r2, r2, #3
adds r1, r2, r6
movs r0, #2
lbl_08003ffe:
strb r0, [r1]
strh r4, [r1, #2]
adds r1, r2, r6
ldrb r0, [r5, #2]
strb r0, [r1, #1]
adds r0, r6, #4
adds r0, r2, r0
str r5, [r0]
lbl_0800400e:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_start StopOrFadeSound
StopOrFadeSound: @ 0x08004014
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsls r1, r1, #0x10
lsrs r7, r1, #0x10
ldr r1, lbl_08004048 @ =0x0808f2c0
lsrs r0, r0, #0xd
adds r0, r0, r1
ldrb r2, [r0, #4]
ldr r6, [r0]
ldr r5, lbl_0800404c @ =gSoundQueue
lsls r3, r2, #3
adds r4, r3, r5
ldrb r1, [r4]
movs r0, #3
ands r0, r1
cmp r0, #0
beq lbl_08004050
adds r0, r5, #4
adds r0, r3, r0
ldr r0, [r0]
cmp r6, r0
bne lbl_08004050
movs r0, #0
strb r0, [r4]
b lbl_0800407c
.align 2, 0
lbl_08004048: .4byte 0x0808f2c0
lbl_0800404c: .4byte gSoundQueue
lbl_08004050:
ldr r0, lbl_08004070 @ =0x0808f254
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
ldr r0, [r1, #0x10]
cmp r6, r0
bne lbl_0800407c
cmp r7, #0
bne lbl_08004074
adds r0, r1, #0
bl stop_music_or_sound
b lbl_0800407c
.align 2, 0
lbl_08004070: .4byte 0x0808f254
lbl_08004074:
adds r0, r1, #0
adds r1, r7, #0
bl sub_08002c94
lbl_0800407c:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08004084:
.byte 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00
thumb_func_start BackupTrackData2SoundChannels
BackupTrackData2SoundChannels: @ 0x0800408c
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
movs r7, #0
ldr r0, lbl_080040c4 @ =0x0808f254
ldr r6, [r0, #0x18]
ldrb r0, [r6, #0x1c]
cmp r0, #0
bne lbl_0800413a
movs r2, #1
strb r2, [r6, #0x1c]
ldrb r1, [r6, #0x1e]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne lbl_0800413a
ldrb r1, [r6]
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0800413a
strb r2, [r6, #0x1e]
movs r1, #0
ldr r4, [r6, #0x18]
b lbl_08004134
.align 2, 0
lbl_080040c4: .4byte 0x0808f254
lbl_080040c8:
adds r0, r4, #0
adds r0, #0x34
ldrb r2, [r0]
movs r0, #0xc0
ands r0, r2
adds r1, #1
mov r8, r1
movs r1, #0x50
adds r1, r1, r4
mov sb, r1
cmp r0, #0
bne lbl_0800412c
ldr r0, [r4, #0x4c]
cmp r0, #0
beq lbl_080040f4
movs r1, #7
ands r1, r2
subs r1, #1
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl sub_080024c0
lbl_080040f4:
ldr r0, [r4, #0x48]
cmp r0, #0
beq lbl_0800412c
adds r4, r0, #0
ldr r3, lbl_0800414c @ =gSoundChannelTrack2Backup
movs r5, #0
lbl_08004100:
lsls r0, r7, #3
subs r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r3
stm r0!, {r4}
adds r1, r4, #0
movs r2, #0x34
str r3, [sp]
bl memcpy
adds r0, r7, #1
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
strb r5, [r4]
str r5, [r4, #0x28]
ldr r0, [r4, #0x30]
str r5, [r4, #0x30]
str r5, [r4, #0x2c]
adds r4, r0, #0
ldr r3, [sp]
cmp r4, #0
bne lbl_08004100
lbl_0800412c:
mov r1, r8
lsls r0, r1, #0x18
lsrs r1, r0, #0x18
mov r4, sb
lbl_08004134:
ldrb r0, [r6, #1]
cmp r1, r0
blo lbl_080040c8
lbl_0800413a:
movs r0, #0
strb r0, [r6, #0x1c]
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0800414c: .4byte gSoundChannelTrack2Backup
thumb_func_start RetrieveTrackData2SoundChannels
RetrieveTrackData2SoundChannels: @ 0x08004150
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r6, #0
ldr r0, lbl_080041e4 @ =0x0808f254
ldr r5, [r0, #0x18]
ldrb r0, [r5, #0x1c]
cmp r0, #0
bne lbl_080041d2
movs r0, #1
strb r0, [r5, #0x1c]
ldrb r1, [r5, #0x1e]
ands r0, r1
cmp r0, #0
beq lbl_080041d2
movs r0, #0xfe
ands r0, r1
strb r0, [r5, #0x1e]
movs r3, #0
ldr r2, [r5, #0x18]
ldrb r0, [r5, #1]
cmp r3, r0
bhs lbl_080041d2
lbl_08004180:
adds r0, r2, #0
adds r0, #0x34
ldrb r1, [r0]
movs r0, #0xc0
ands r0, r1
adds r7, r3, #1
movs r1, #0x50
adds r1, r1, r2
mov r8, r1
cmp r0, #0
bne lbl_080041c6
ldr r0, [r2, #0x48]
cmp r0, #0
beq lbl_080041c6
adds r4, r0, #0
ldr r0, lbl_080041e8 @ =gSoundChannelTrack2Backup
mov sb, r0
lbl_080041a2:
adds r0, r4, #0
bl sub_080020a4
lsls r1, r6, #3
subs r1, r1, r6
lsls r1, r1, #3
add r1, sb
adds r1, #4
adds r0, r4, #0
movs r2, #0x34
bl memcpy
adds r0, r6, #1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
ldr r4, [r4, #0x30]
cmp r4, #0
bne lbl_080041a2
lbl_080041c6:
lsls r0, r7, #0x18
lsrs r3, r0, #0x18
mov r2, r8
ldrb r1, [r5, #1]
cmp r3, r1
blo lbl_08004180
lbl_080041d2:
movs r0, #0
strb r0, [r5, #0x1c]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_080041e4: .4byte 0x0808f254
lbl_080041e8: .4byte gSoundChannelTrack2Backup
thumb_func_start sub_080041ec
sub_080041ec: @ 0x080041ec
push {r4, lr}
adds r3, r0, #0
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
ldrb r0, [r3, #0x1c]
cmp r0, #0
bne lbl_0800421e
movs r0, #1
strb r0, [r3, #0x1c]
movs r1, #0
ldr r2, [r3, #0x18]
b lbl_08004218
lbl_08004204:
ldrb r0, [r2]
cmp r0, #0
beq lbl_08004210
ldrb r0, [r2, #2]
adds r0, r0, r4
strb r0, [r2, #2]
lbl_08004210:
adds r0, r1, #1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
adds r2, #0x50
lbl_08004218:
ldrb r0, [r3, #1]
cmp r1, r0
blo lbl_08004204
lbl_0800421e:
movs r0, #0
strb r0, [r3, #0x1c]
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_08004228
sub_08004228: @ 0x08004228
push {r4, r5, lr}
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, lbl_08004258 @ =gMusicInfo
ldrh r0, [r0, #0x1c]
cmp r5, r0
beq lbl_08004250
ldr r0, lbl_0800425c @ =0x0808f254
ldr r4, [r0]
adds r0, r4, #0
bl stop_music_or_sound
adds r0, r5, #0
movs r1, #8
bl PlayMusic
adds r0, r4, #0
movs r1, #0x1e
bl sub_080041ec
lbl_08004250:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_08004258: .4byte gMusicInfo
lbl_0800425c: .4byte 0x0808f254
thumb_func_start sub_08004260
sub_08004260: @ 0x08004260
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl SoundPlay
ldr r0, lbl_08004278 @ =0x0808f254
ldr r0, [r0]
movs r1, #0x1e
bl sub_080041ec
pop {r0}
bx r0
.align 2, 0
lbl_08004278: .4byte 0x0808f254
thumb_func_start sub_0800427c
sub_0800427c: @ 0x0800427c
push {r4, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r0, lbl_080042a4 @ =0x0808f254
ldr r2, [r0]
ldr r0, lbl_080042a8 @ =0x0808f2c0
ldr r3, [r0, #0x48]
ldrb r1, [r2]
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_080042ac
ldr r0, [r2, #0x10]
cmp r3, r0
bne lbl_080042ac
movs r0, #2
bl UpdateMusicPriority
b lbl_080042b6
.align 2, 0
lbl_080042a4: .4byte 0x0808f254
lbl_080042a8: .4byte 0x0808f2c0
lbl_080042ac:
adds r0, r4, #0
movs r1, #9
movs r2, #2
bl sub_08003b30
lbl_080042b6:
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_080042bc
sub_080042bc: @ 0x080042bc
push {r4, r5, r6, lr}
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r4, lbl_08004300 @ =gMusicInfo
ldrb r6, [r4, #1]
cmp r6, #0
bne lbl_080042f8
movs r0, #1
strb r0, [r4, #1]
adds r2, r4, #0
adds r2, #0x21
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
strb r0, [r2]
cmp r5, #0
bne lbl_080042e0
ldr r5, lbl_08004304 @ =0x0000012b
lbl_080042e0:
ldr r0, lbl_08004308 @ =0x0808f254
ldr r0, [r0]
ldr r2, lbl_0800430c @ =0x0808f2c0
lsls r1, r5, #3
adds r1, r1, r2
ldr r1, [r1]
bl sub_08004b50
adds r0, r4, #0
adds r0, #0x20
strb r6, [r0]
strh r5, [r4, #0x1c]
lbl_080042f8:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08004300: .4byte gMusicInfo
lbl_08004304: .4byte 0x0000012b
lbl_08004308: .4byte 0x0808f254
lbl_0800430c: .4byte 0x0808f2c0
thumb_func_start call_soundcode_b
call_soundcode_b: @ 0x08004310
push {r4, r5, r6, r7}
mov r4, r8
mov r5, sb
mov r6, sl
mov r7, fp
push {r4, r5, r6, r7, lr}
add r4, pc, #0x0
bx r4
thumb_func_start soundcode_b
soundcode_b: @ 0x08004320
.byte 0x88, 0x40, 0x9F, 0xE5
lbl_08004324:
.byte 0x04, 0xC0, 0xD4, 0xE5, 0x06, 0xEC, 0xA0, 0xE3, 0x01, 0x00, 0x00, 0xEA
.byte 0x01, 0x30, 0x53, 0xE2, 0x19, 0x00, 0x00, 0x0A, 0xDE, 0x60, 0x90, 0xE1, 0xDE, 0x70, 0x91, 0xE1
.byte 0xD1, 0x40, 0xD0, 0xE0, 0xD1, 0x50, 0xD1, 0xE0, 0xDE, 0xA0, 0x90, 0xE1, 0xDE, 0xB0, 0x91, 0xE1
.byte 0xD1, 0x80, 0xD0, 0xE0, 0xD1, 0x90, 0xD1, 0xE0, 0x04, 0x60, 0x86, 0xE0, 0x05, 0x60, 0x86, 0xE0
.byte 0x07, 0x60, 0x86, 0xE0, 0x09, 0x80, 0x88, 0xE0, 0x0A, 0x80, 0x88, 0xE0, 0x0B, 0x80, 0x88, 0xE0
.byte 0x9C, 0x06, 0x06, 0xE0, 0x9C, 0x08, 0x08, 0xE0, 0xC6, 0x64, 0xB0, 0xE1, 0x01, 0x60, 0x86, 0x42
.byte 0xC8, 0x84, 0xB0, 0xE1, 0x01, 0x80, 0x88, 0x42, 0x86, 0x63, 0xA0, 0xE1, 0x88, 0x83, 0xA0, 0xE1
.byte 0x06, 0x70, 0xA0, 0xE1, 0x08, 0x90, 0xA0, 0xE1, 0xC0, 0x03, 0xA2, 0xE8, 0xE3, 0xFF, 0xFF, 0xEA
.byte 0x02, 0x00, 0xA0, 0xE1, 0x00, 0x4F, 0xBD, 0xE8, 0xF0, 0x00, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1
.byte 0x00, 0x1D, 0x00, 0x03
thumb_func_start call_soundcode_c
call_soundcode_c: @ 0x080043b4
push {r4, r5, r6, r7}
mov r4, r8
mov r5, sb
mov r6, sl
mov r7, fp
push {r4, r5, r6, r7, lr}
add r4, pc, #0x0
bx r4
thumb_func_start soundcode_c
soundcode_c: @ 0x080043c4
subs r4, #6
b sub_08004b0a
lbl_080043c8:
.byte 0x03, 0x30, 0x80, 0xE0, 0x00, 0xC0, 0xA0, 0xE3
.byte 0x01, 0xC0, 0x4C, 0xE2, 0xAC, 0xCB, 0xA0, 0xE1, 0x80, 0xE0, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xEA
.byte 0x01, 0x20, 0x52, 0xE2, 0x19, 0x00, 0x00, 0x0A, 0xF0, 0x0F, 0xB1, 0xE8, 0xA4, 0x43, 0x0C, 0xE0
.byte 0xA5, 0x53, 0x0C, 0xE0, 0xA6, 0x63, 0x0C, 0xE0, 0xA7, 0x73, 0x0C, 0xE0, 0xA8, 0x83, 0x0C, 0xE0
.byte 0xA9, 0x93, 0x0C, 0xE0, 0xAA, 0xA3, 0x0C, 0xE0, 0xAB, 0xB3, 0x0C, 0xE0, 0x04, 0x40, 0xDE, 0xE7
.byte 0x05, 0x50, 0xDE, 0xE7, 0x06, 0x60, 0xDE, 0xE7, 0x07, 0x70, 0xDE, 0xE7, 0x08, 0x80, 0xDE, 0xE7
.byte 0x09, 0x90, 0xDE, 0xE7, 0x0A, 0xA0, 0xDE, 0xE7, 0x0B, 0xB0, 0xDE, 0xE7, 0x06, 0x44, 0x84, 0xE1
.byte 0x08, 0x48, 0x84, 0xE1, 0x0A, 0x4C, 0x84, 0xE1, 0x04, 0x40, 0x80, 0xE4, 0x07, 0x54, 0x85, 0xE1
.byte 0x09, 0x58, 0x85, 0xE1, 0x0B, 0x5C, 0x85, 0xE1, 0x04, 0x50, 0x83, 0xE4, 0xE3, 0xFF, 0xFF, 0xEA
.byte 0x01, 0x00, 0xA0, 0xE1, 0x00, 0x4F, 0xBD, 0xE8, 0xF0, 0x00, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1
.byte 0xE2, 0xCC, 0x08, 0x08
thumb_func_start call_soundcode_a
call_soundcode_a: @ 0x08004464
push {r4, r5, r6, r7}
mov r3, r8
mov r4, sb
mov r5, sl
mov r6, fp
push {r3, r4, r5, r6, lr}
add r4, pc, #0x0
bx r4
thumb_func_start soundcode_a
soundcode_a: @ 0x08004474
stm r0!, {r3, r4}
b lbl_08003f9a
lbl_08004478:
.byte 0x11, 0xB0, 0xD0, 0xE5, 0x12, 0xA0, 0xD0, 0xE5
.byte 0x24, 0x90, 0x90, 0xE5, 0x20, 0x30, 0x90, 0xE5, 0x0C, 0x80, 0x93, 0xE5, 0x01, 0x40, 0xD0, 0xE5
.byte 0x20, 0x00, 0x54, 0xE3, 0x09, 0x01, 0x00, 0x0A, 0x08, 0x00, 0x54, 0xE3, 0xBC, 0x00, 0x00, 0x0A
.byte 0x00, 0x70, 0xA0, 0xE3, 0x01, 0x70, 0x47, 0xE2, 0x27, 0x79, 0xA0, 0xE1, 0x1C, 0x60, 0x90, 0xE5
.byte 0x01, 0x00, 0x2D, 0xE9, 0xB2, 0x00, 0xD3, 0xE1, 0x08, 0xE0, 0x93, 0xE5, 0x08, 0xE0, 0x4E, 0xE0
.byte 0x01, 0x00, 0x00, 0xEA, 0x01, 0x20, 0x52, 0xE2, 0x76, 0x01, 0x00, 0x0A, 0x06, 0x41, 0x8C, 0xE0
.byte 0x24, 0x47, 0x58, 0xE0, 0x7D, 0x00, 0x00, 0xCA, 0x2C, 0x57, 0xA0, 0xE1, 0x00, 0x00, 0x10, 0xE0
.byte 0x34, 0x00, 0x00, 0x1A, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0
.byte 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8
.byte 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0
.byte 0x2C, 0x57, 0xA0, 0xE1, 0x08, 0x00, 0x55, 0xE1, 0x5E, 0x01, 0x00, 0xAA, 0xD9, 0x30, 0xB5, 0xE1
.byte 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0
.byte 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0
.byte 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1, 0x08, 0x00, 0x55, 0xE1
.byte 0x50, 0x01, 0x00, 0xAA, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0
.byte 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8
.byte 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0
.byte 0x2C, 0x57, 0xA0, 0xE1, 0x08, 0x00, 0x55, 0xE1, 0x42, 0x01, 0x00, 0xAA, 0xD9, 0x30, 0xB5, 0xE1
.byte 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0
.byte 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0
.byte 0x30, 0x00, 0xA1, 0xE8, 0x37, 0x01, 0x00, 0xEA, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1, 0x08, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0xBA
.byte 0x07, 0x30, 0x0C, 0xE0, 0x0E, 0x50, 0x85, 0xE0, 0x05, 0xC7, 0x83, 0xE0, 0x3F, 0x00, 0x00, 0xEA
.byte 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0
.byte 0x95, 0x04, 0x04, 0xE0
lbl_08004614:
adds r7, #0x24
b lbl_08004720
lbl_08004618:
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0
.byte 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1
.byte 0x08, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0xBA, 0x07, 0x30, 0x0C, 0xE0, 0x0E, 0x50, 0x85, 0xE0
.byte 0x05, 0xC7, 0x83, 0xE0, 0x39, 0x00, 0x00, 0xEA, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1, 0x08, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0xBA
.byte 0x07, 0x30, 0x0C, 0xE0, 0x0E, 0x50, 0x85, 0xE0, 0x05, 0xC7, 0x83, 0xE0, 0x33, 0x00, 0x00, 0xEA
.byte 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0
.byte 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0
.byte 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1
.byte 0x07, 0x30, 0x0C, 0xE0, 0x0E, 0x50, 0x85, 0xE0, 0x05, 0xC7, 0x83, 0xE0, 0x7C, 0xFF, 0xFF, 0xEA
.byte 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0
.byte 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8
.byte 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0
.byte 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0
.byte 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8
lbl_08004720:
ldr r3, lbl_08004970 @ =0xe1b530d9
b lbl_0800476e
lbl_08004724:
.byte 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0
.byte 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0
.byte 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8
.byte 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0
.byte 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40
lbl_0800476e:
b lbl_080047fa
lbl_08004770:
.byte 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8
.byte 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0
.byte 0x4B, 0xFF, 0xFF, 0xEA, 0x01, 0x00, 0x2D, 0xE9, 0xB2, 0x70, 0xD3, 0xE1, 0x08, 0x60, 0x93, 0xE5
.byte 0x01, 0x00, 0x00, 0xEA, 0x01, 0x20, 0x52, 0xE2, 0xBE, 0x00, 0x00, 0x0A, 0x04, 0x40, 0x8C, 0xE2
.byte 0x08, 0x00, 0x54, 0xE1, 0x2C, 0x00, 0x00, 0xBA, 0xDC, 0x30, 0x99, 0xE1, 0x30, 0x00, 0x91, 0xE8
.byte 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x01, 0xC0, 0x8C, 0xE2
.byte 0x08, 0x00, 0x5C, 0xE1, 0x02, 0x00, 0x00, 0x1A, 0x07, 0x70, 0x17, 0xE0, 0xAD, 0x00, 0x00, 0x0A
.byte 0x06, 0xC0, 0xA0, 0xE1, 0xDC, 0x30, 0x99, 0xE1, 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0
.byte 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x01, 0xC0
lbl_080047fa:
b lbl_08004d16
lbl_080047fc:
.byte 0x08, 0x00, 0x5C, 0xE1
.byte 0x02, 0x00, 0x00, 0x1A, 0x07, 0x70, 0x17, 0xE0, 0xA2, 0x00, 0x00, 0x0A, 0x06, 0xC0, 0xA0, 0xE1
.byte 0xDC, 0x30, 0x99, 0xE1, 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0
.byte 0x30, 0x00, 0xA1, 0xE8, 0x01, 0xC0, 0x8C, 0xE2, 0x08, 0x00, 0x5C, 0xE1, 0x02, 0x00, 0x00, 0x1A
.byte 0x07, 0x70, 0x17, 0xE0, 0x97, 0x00, 0x00, 0x0A, 0x06, 0xC0, 0xA0, 0xE1, 0xDC, 0x30, 0x99, 0xE1
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x01, 0xC0, 0x8C, 0xE2, 0x08, 0x00, 0x5C, 0xE1, 0xD1, 0xFF, 0xFF, 0x1A, 0x07, 0x70, 0x17, 0xE0
.byte 0x8C, 0x00, 0x00, 0x0A, 0x06, 0xC0, 0xA0, 0xE1, 0xCD, 0xFF, 0xFF, 0xEA, 0x38, 0x40, 0x91, 0xE8
.byte 0xDC, 0x00, 0x99, 0xE1, 0x90, 0x3B, 0x23, 0xE0, 0x90, 0x4A, 0x24, 0xE0, 0x01, 0xC0, 0x8C, 0xE2
.byte 0xDC, 0x00, 0x99, 0xE1, 0x90, 0x5B, 0x25, 0xE0, 0x90, 0xEA, 0x2E, 0xE0, 0x01, 0xC0, 0x8C, 0xE2
.byte 0x38, 0x40, 0xA1, 0xE8, 0x38, 0x40, 0x91, 0xE8, 0xDC, 0x00, 0x99, 0xE1, 0x90, 0x3B, 0x23, 0xE0
.byte 0x90, 0x4A, 0x24, 0xE0, 0x01, 0xC0, 0x8C, 0xE2, 0xDC, 0x00, 0x99, 0xE1, 0x90, 0x5B, 0x25, 0xE0
.byte 0x90, 0xEA, 0x2E, 0xE0, 0x01, 0xC0, 0x8C, 0xE2, 0x38, 0x40, 0xA1, 0xE8, 0xB8, 0xFF, 0xFF, 0xEA
.byte 0x00, 0x70, 0xA0, 0xE3, 0x01, 0x70, 0x47, 0xE2, 0x07, 0x40, 0xA0, 0xE1, 0x27, 0x79, 0xA0, 0xE1
.byte 0x1C, 0x60, 0x90, 0xE5, 0x04, 0x60, 0x26, 0xE0, 0x01, 0x60, 0x86, 0xE2, 0x01, 0x00, 0x2D, 0xE9
.byte 0xB2, 0x00, 0xD3, 0xE1, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x20, 0x52, 0xE2, 0x6D, 0x00, 0x00, 0x0A
.byte 0x06, 0x41, 0x8C, 0xE0, 0x44, 0x47, 0xB0, 0xE1, 0x35, 0x00, 0x00, 0xCA, 0x2C, 0x57, 0xA0, 0xE1
.byte 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0
.byte 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0
.byte 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1
.byte 0x00, 0x00, 0x55, 0xE3, 0x57, 0x00, 0x00, 0xDA, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0x49, 0x00, 0x00, 0xDA
lbl_08004970: .4byte 0xe1b530d9
lbl_08004974:
.byte 0xD1, 0x40, 0xD5, 0xE1, 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0
.byte 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0, 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0
.byte 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8, 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1
.byte 0x00, 0x00, 0x55, 0xE3, 0x3B, 0x00, 0x00, 0xDA, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x30, 0x00, 0x00, 0xEA, 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x06, 0xC0, 0x8C, 0xE0, 0x2C, 0x57, 0xA0, 0xE1, 0xD9, 0x30, 0xB5, 0xE1, 0xD1, 0x40, 0xD5, 0xE1
.byte 0x03, 0x40, 0x44, 0xE0, 0x07, 0x50, 0x0C, 0xE0, 0x95, 0x04, 0x04, 0xE0, 0x24, 0x37, 0x83, 0xE0
.byte 0x30, 0x00, 0x91, 0xE8, 0x93, 0x4B, 0x24, 0xE0, 0x93, 0x5A, 0x25, 0xE0, 0x30, 0x00, 0xA1, 0xE8
.byte 0x06, 0xC0, 0x8C, 0xE0, 0x93, 0xFF, 0xFF, 0xEA, 0x01, 0x00, 0xBD, 0xE8, 0x00, 0x40, 0xA0, 0xE3
.byte 0x00, 0x40, 0xC0, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xBD, 0xE8, 0x18, 0xC0, 0x80, 0xE5
.byte 0x00, 0x4F, 0xBD, 0xE8, 0xF0, 0x00, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1
thumb_func_start sub_08004abc
sub_08004abc: @ 0x08004abc
add r2, pc, #0x0 @ =sub_08004ac0
bx r2
arm_func_start sub_08004ac0
sub_08004ac0: @ 0x08004ac0
umull r2, r3, r0, r1
lsr r2, r2, #0x12
lsl r3, r3, #0xe
add r3, r3, r2
add r0, r3, #0
bx lr
thumb_func_start sub_08004ad8
sub_08004ad8: @ 0x08004ad8
add r0, pc, #0x0 @ =sub_08004adc
bx r0
arm_func_start sub_08004adc
sub_08004adc: @ 0x08004adc
ldr r0, lbl_08004b44 @ =gMusicInfo
ldrb r1, [r0, #0x10]
add r1, r1, #1
ldrb r3, [r0, #0xe]
cmp r1, r3
bne sub_08004b3c
ldr r3, lbl_08004b48 @ =0x0808ceec
ldr r3, [r3]
ldr ip, lbl_08004b4c @ =0x0808cef0
ldr ip, [ip]
str ip, [r3]
lbl_08004b08:
.byte 0x0C, 0xC0
non_word_aligned_thumb_func_start sub_08004b0a
sub_08004b0a: @ 0x08004b0a
b lbl_08004614
lbl_08004b0c:
.byte 0x00, 0x00, 0xA0, 0xE1
.byte 0x50, 0xC0, 0xA0, 0xE3, 0x0C, 0xC2, 0xA0, 0xE1, 0xB2, 0xC0, 0xC3, 0xE1, 0xBE, 0xC0, 0xC3, 0xE1
.byte 0xB6, 0xC0, 0xA0, 0xE3, 0x0C, 0xC4, 0xA0, 0xE1, 0xB2, 0xC0, 0xC3, 0xE1, 0xF6, 0xC0, 0xA0, 0xE3
.byte 0x0C, 0xC4, 0xA0, 0xE1, 0xBE, 0xC0, 0xC3, 0xE1, 0x00, 0x10, 0xA0, 0xE3
arm_func_start sub_08004b3c
sub_08004b3c: @ 0x08004b3c
strb r1, [r0, #0x10]
bx lr
.align 2, 0
lbl_08004b44: .4byte gMusicInfo
lbl_08004b48: .4byte 0x0808ceec
lbl_08004b4c: .4byte 0x0808cef0
thumb_func_start sub_08004b50
sub_08004b50: @ 0x08004b50
push {r4, r5, r6, r7, lr}
sub sp, #4
adds r4, r0, #0
adds r5, r1, #0
ldrb r6, [r4, #0x1c]
cmp r6, #0
bne lbl_08004c04
movs r6, #1
strb r6, [r4, #0x1c]
ldrb r6, [r4, #0x1e]
movs r7, #1
ands r6, r7
bne lbl_08004c00
ldr r6, [r5]
lsls r2, r6, #0x18
lsrs r2, r2, #0x18
bne lbl_08004b7c
bl reset_track
movs r2, #0
strb r2, [r4]
b lbl_08004c00
lbl_08004b7c:
ldr r7, [r4]
movs r3, #2
lsls r2, r7, #0x18
lsrs r2, r2, #0x18
ands r3, r2
beq lbl_08004ba2
movs r3, #0x1d
ldrb r3, [r4, r3]
cmp r3, #0
beq lbl_08004b9c
lsls r1, r6, #8
lsrs r1, r1, #0x18
lsrs r2, r7, #0x18
cmp r2, r1
ble lbl_08004b9c
b lbl_08004c0e
lbl_08004b9c:
adds r0, r4, #0
bl reset_track
lbl_08004ba2:
movs r3, #2
lsls r2, r6, #8
orrs r2, r3
ldr r0, [r5, #4]
str r2, [r4]
str r0, [r4, #0x14]
str r5, [r4, #0x10]
lsls r3, r3, #7
strh r3, [r4, #0xc]
lsrs r2, r6, #0x1f
beq lbl_08004bbe
lsrs r0, r6, #0x18
bl sub_080027f8
lbl_08004bbe:
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
ldr r7, [r4, #0x18]
movs r0, #0x10
str r0, [sp]
movs r0, #3
movs r1, #0
adds r2, r7, #0
movs r3, #0x50
muls r3, r6, r3
bl BitFill
movs r0, #1
movs r2, #0x40
lsls r1, r2, #0x10
lsls r2, r2, #8
orrs r1, r2
movs r3, #0xc
lsls r3, r3, #8
movs r2, #2
orrs r2, r3
adds r5, #8
b lbl_08004bf4
lbl_08004bec:
subs r6, #1
beq lbl_08004c00
adds r7, #0x50
adds r5, #4
lbl_08004bf4:
ldr r3, [r5]
strb r0, [r7]
strh r2, [r7, #0x1a]
str r1, [r7, #4]
str r3, [r7, #0x24]
b lbl_08004bec
lbl_08004c00:
movs r6, #0
strb r6, [r4, #0x1c]
lbl_08004c04:
movs r0, #0
add sp, #4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
lbl_08004c0e:
movs r6, #0
strb r6, [r4, #0x1c]
movs r0, #1
add sp, #4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start stop_music_or_sound
stop_music_or_sound: @ 0x08004c1c
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
ldrb r6, [r7, #0x1c]
cmp r6, #0
bne lbl_08004c8c
movs r6, #1
strb r6, [r7, #0x1c]
ldrb r6, [r7, #0x1e]
movs r5, #1
ands r5, r6
bne lbl_08004c88
ldrb r4, [r7]
movs r5, #2
ands r4, r5
beq lbl_08004c88
movs r4, #1
strb r4, [r7]
movs r4, #0
strb r4, [r7, #4]
ldrb r6, [r7, #1]
ldr r5, [r7, #0x18]
b lbl_08004c4e
lbl_08004c48:
subs r6, #1
beq lbl_08004c88
adds r5, #0x50
lbl_08004c4e:
ldr r4, [r5, #0x4c]
cmp r4, #0
beq lbl_08004c6a
movs r3, #7
movs r2, #0x34
ldrb r1, [r5, r2]
ands r1, r3
subs r1, #1
adds r0, r4, #0
bl sub_080024c0
movs r3, #0
strb r3, [r4]
str r3, [r4, #0x24]
lbl_08004c6a:
ldr r0, [r5, #0x48]
movs r1, #0
lbl_08004c6e:
cmp r0, #0
beq lbl_08004c80
ldr r2, [r0, #0x30]
strb r1, [r0]
str r1, [r0, #0x28]
str r1, [r0, #0x30]
str r1, [r0, #0x2c]
adds r0, r2, #0
b lbl_08004c6e
lbl_08004c80:
movs r0, #0
str r0, [r5, #0x4c]
str r0, [r5, #0x48]
b lbl_08004c48
lbl_08004c88:
movs r6, #0
strb r6, [r7, #0x1c]
lbl_08004c8c:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_start reset_track
reset_track: @ 0x08004c94
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
ldrb r6, [r7, #0x1e]
movs r5, #1
ands r5, r6
bne lbl_08004cf6
ldrb r4, [r7]
movs r5, #2
ands r4, r5
beq lbl_08004cf6
movs r4, #1
strb r4, [r7]
movs r4, #0
strb r4, [r7, #4]
ldrb r6, [r7, #1]
ldr r5, [r7, #0x18]
b lbl_08004cbc
lbl_08004cb6:
subs r6, #1
beq lbl_08004cf6
adds r5, #0x50
lbl_08004cbc:
ldr r4, [r5, #0x4c]
cmp r4, #0
beq lbl_08004cd8
movs r3, #7
movs r2, #0x34
ldrb r1, [r5, r2]
ands r1, r3
subs r1, #1
adds r0, r4, #0
bl sub_080024c0
movs r3, #0
strb r3, [r4]
str r3, [r4, #0x24]
lbl_08004cd8:
ldr r0, [r5, #0x48]
movs r1, #0
lbl_08004cdc:
cmp r0, #0
beq lbl_08004cee
ldr r2, [r0, #0x30]
strb r1, [r0]
str r1, [r0, #0x28]
str r1, [r0, #0x30]
str r1, [r0, #0x2c]
adds r0, r2, #0
b lbl_08004cdc
lbl_08004cee:
movs r0, #0
str r0, [r5, #0x4c]
str r0, [r5, #0x48]
b lbl_08004cb6
lbl_08004cf6:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_08004cfc
sub_08004cfc: @ 0x08004cfc
adds r3, r0, #0
ldr r0, [r3, #0xc]
lsls r1, r0, #0x10
adds r1, r0, r1
lsrs r1, r1, #0x10
movs r2, #0xff
lsls r0, r2, #8
ands r0, r1
beq lbl_08004d14
lsrs r0, r1, #8
ands r1, r2
b lbl_08004d16
lbl_08004d14:
movs r0, #0
lbl_08004d16:
strh r1, [r3, #0xe]
bx lr
.align 2, 0
thumb_func_start sub_08004d1c
sub_08004d1c: @ 0x08004d1c
ldr r2, [r1, #0x24]
ldrb r3, [r2, #1]
adds r2, #2
str r2, [r1, #0x24]
lsls r2, r3, #1
strh r2, [r0, #0xa]
cmp r2, #0x96
beq lbl_08004d3c
movs r1, #0x1b
movs r3, #0x4e
lsls r1, r1, #8
orrs r1, r3
lsls r2, r2, #8
muls r1, r2, r1
lsrs r1, r1, #0x14
b lbl_08004d40
lbl_08004d3c:
movs r1, #1
lsls r1, r1, #8
lbl_08004d40:
movs r3, #0
strh r1, [r0, #0xc]
strh r3, [r0, #0xe]
bx lr
thumb_func_start UpdateAudio
UpdateAudio: @ 0x08004d48
push {r4, r5, r6, lr}
ldr r4, lbl_08004df4 @ =0x0808f254
ldr r5, lbl_08004df8 @ =0x00000009
ldr r6, lbl_08004dfc @ =gSoundQueue
b lbl_08004d5c
lbl_08004d52:
subs r5, #1
cmp r5, #0
beq lbl_08004d72
adds r4, #0xc
adds r6, #8
lbl_08004d5c:
ldrb r3, [r6]
cmp r3, #0
beq lbl_08004d52
ldr r0, [r4]
ldr r1, [r6, #4]
bl sub_08004b50
movs r0, #0
str r0, [r6]
str r0, [r6, #4]
b lbl_08004d52
lbl_08004d72:
ldr r4, lbl_08004e00 @ =0x0808f254
ldr r6, lbl_08004e04 @ =gMusicInfo
movs r0, #0x21
ldrb r0, [r6, r0]
movs r1, #0x80
ands r1, r0
beq lbl_08004d92
movs r1, #0x7f
ands r0, r1
movs r1, #4
cmp r0, r1
beq lbl_08004dd8
adds r4, #0xc
ldr r5, lbl_08004e08 @ =0x00000009
subs r5, #1
b lbl_08004da8
lbl_08004d92:
movs r0, #0x21
ldrb r0, [r6, r0]
movs r1, #4
cmp r0, r1
beq lbl_08004dbc
ldr r5, lbl_08004e0c @ =0x00000009
b lbl_08004da8
lbl_08004da0:
subs r5, #1
cmp r5, #0
beq lbl_08004dd8
adds r4, #0xc
lbl_08004da8:
ldr r0, [r4]
cmp r0, #0
beq lbl_08004da0
ldrb r3, [r0]
movs r1, #2
ands r3, r1
beq lbl_08004da0
bl sub_08001850
b lbl_08004da0
lbl_08004dbc:
movs r0, #0x20
ldrb r0, [r6, r0]
movs r1, #0
cmp r0, r1
beq lbl_08004dc8
movs r1, #0xc
lbl_08004dc8:
adds r4, r4, r1
ldr r0, [r4]
ldrb r3, [r0]
movs r1, #2
ands r3, r1
beq lbl_08004dd8
bl sub_08001850
lbl_08004dd8:
ldrb r5, [r6, #1]
cmp r5, #0
bne lbl_08004dea
movs r5, #1
strb r5, [r6, #1]
bl sub_08001458
bl sub_080010c4
lbl_08004dea:
movs r0, #0
strb r0, [r6, #1]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08004df4: .4byte 0x0808f254
lbl_08004df8: .4byte 0x00000009
lbl_08004dfc: .4byte gSoundQueue
lbl_08004e00: .4byte 0x0808f254
lbl_08004e04: .4byte gMusicInfo
lbl_08004e08: .4byte 0x00000009
lbl_08004e0c: .4byte 0x00000009
thumb_func_start sub_08004e10
sub_08004e10: @ 0x08004e10
push {r4, r5, lr}
ldr r1, [r0, #0x40]
ldrb r2, [r0, #1]
ldrb r3, [r0]
movs r4, #0xf0
ands r3, r4
cmp r3, #0x80
bne lbl_08004e40
movs r3, #0xc
muls r2, r3, r2
adds r1, r1, r2
ldrb r2, [r1, #1]
movs r3, #0x35
strb r2, [r0, r3]
ldrb r2, [r1, #3]
cmp r2, #0
bne lbl_08004e38
movs r2, #0x40
strb r2, [r0, #6]
b lbl_08004e4c
lbl_08004e38:
subs r2, #0x80
bmi lbl_08004e4c
strb r2, [r0, #6]
b lbl_08004e4c
lbl_08004e40:
ldr r3, [r0, #0x44]
adds r3, r3, r2
ldrb r3, [r3]
movs r4, #0xc
muls r3, r4, r3
adds r1, r1, r3
lbl_08004e4c:
ldr r2, [r1]
lsls r3, r2, #0x18
lsrs r3, r3, #0x18
movs r4, #0x34
strb r3, [r0, r4]
lsls r4, r2, #8
lsrs r4, r4, #0x18
movs r5, #0x36
strb r4, [r0, r5]
movs r4, #7
ands r3, r4
bne lbl_08004e6a
ldr r3, [r1, #4]
str r3, [r0, #0x38]
b lbl_08004eaa
lbl_08004e6a:
cmp r3, #2
bgt lbl_08004e88
lsrs r3, r2, #0x18
movs r4, #0x80
ands r4, r3
bne lbl_08004e7e
movs r4, #0x70
ands r4, r3
beq lbl_08004e7e
b lbl_08004e80
lbl_08004e7e:
movs r3, #8
lbl_08004e80:
movs r4, #0x37
strb r3, [r0, r4]
movs r4, #6
b lbl_08004ea2
lbl_08004e88:
cmp r3, #3
bne lbl_08004e9c
adds r4, r0, #0
adds r5, r1, #0
ldr r0, [r5, #4]
bl sub_080050d0
adds r0, r4, #0
adds r1, r5, #0
b lbl_08004eaa
lbl_08004e9c:
cmp r3, #4
bne lbl_08004eaa
movs r4, #3
lbl_08004ea2:
ldr r3, [r1, #4]
lsls r3, r4
movs r4, #0x38
strb r3, [r0, r4]
lbl_08004eaa:
ldr r2, [r1, #8]
str r2, [r0, #0x3c]
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_08004eb4
sub_08004eb4: @ 0x08004eb4
movs r1, #0x19
ldrsb r1, [r0, r1]
cmp r1, #0
ble lbl_08004ebe
adds r1, #1
lbl_08004ebe:
ldr r2, [r0, #0x1c]
ldrb r3, [r0, #0x1a]
muls r1, r3, r1
lsls r1, r1, #2
lsls r3, r2, #0x18
asrs r3, r3, #0x18
lsls r3, r3, #8
adds r1, r1, r3
lsls r3, r2, #0x10
asrs r3, r3, #0x18
lsls r3, r3, #8
adds r1, r1, r3
lsls r3, r2, #8
asrs r3, r3, #0x16
lsls r3, r3, #2
adds r1, r1, r3
lsrs r2, r2, #0x18
adds r1, r1, r2
movs r3, #0x10
ldr r2, [r0, r3]
movs r3, #0xff
ands r3, r2
beq lbl_08004f06
movs r3, #0xff
lsls r3, r3, #8
ands r3, r2
beq lbl_08004f06
lsls r3, r2, #8
lsrs r3, r3, #0x18
cmp r3, #0
bne lbl_08004f06
asrs r2, r2, #0x18
lsls r2, r2, #2
movs r3, #0xc
muls r2, r3, r2
adds r1, r1, r2
lbl_08004f06:
asrs r2, r1, #8
strb r2, [r0, #0x17]
strb r1, [r0, #0x18]
bx lr
.align 2, 0
thumb_func_start sub_08004f10
sub_08004f10: @ 0x08004f10
push {r4}
ldr r1, [r0, #4]
lsls r2, r1, #0x18
lsrs r2, r2, #0x18
lsls r3, r1, #0x10
lsrs r3, r3, #0x18
muls r2, r3, r2
lsrs r2, r2, #5
ldrh r3, [r0, #0x12]
lsls r4, r3, #0x18
lsrs r4, r4, #0x18
cmp r4, #1
bne lbl_08004f3a
lsls r4, r3, #0x10
asrs r4, r4, #0x18
adds r4, #0x41
muls r2, r4, r2
asrs r2, r2, #6
cmp r2, #0xff
blt lbl_08004f3a
movs r2, #0xff
lbl_08004f3a:
lsls r4, r1, #8
lsrs r4, r4, #0x18
asrs r1, r1, #0x18
adds r1, r1, r4
subs r1, #0x40
cmp r1, #0x3f
blt lbl_08004f4c
movs r1, #0x3f
b lbl_08004f56
lbl_08004f4c:
movs r4, #0x40
rsbs r4, r4, #0
cmp r1, r4
bpl lbl_08004f56
rsbs r1, r4, #0
lbl_08004f56:
lsls r4, r3, #0x18
lsrs r4, r4, #0x18
cmp r4, #2
bne lbl_08004f74
lsls r4, r3, #0x10
asrs r4, r4, #0x18
adds r1, r1, r4
cmp r1, #0x3f
blt lbl_08004f6c
movs r1, #0x3f
b lbl_08004f74
lbl_08004f6c:
movs r4, #0x40
adds r3, r1, r4
bpl lbl_08004f74
rsbs r1, r4, #0
lbl_08004f74:
movs r4, #0x40
adds r3, r1, r4
muls r3, r2, r3
lsrs r3, r3, #7
subs r4, r4, r1
muls r4, r2, r4
lsrs r4, r4, #7
lsls r4, r4, #8
orrs r3, r4
strh r3, [r0, #8]
pop {r4}
bx lr
thumb_func_start sub_08004f8c
sub_08004f8c: @ 0x08004f8c
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
ldrb r1, [r4, #0x13]
movs r2, #2
orrs r1, r2
strb r1, [r4, #0x13]
bl sub_080020a4
ldr r0, [r5, #0x48]
cmp r0, #0
beq lbl_08004fa8
str r4, [r0, #0x2c]
lbl_08004fa8:
str r0, [r4, #0x30]
movs r1, #0
str r1, [r4, #0x2c]
str r5, [r4, #0x28]
str r4, [r5, #0x48]
movs r1, #0x34
ldrb r0, [r5, r1]
ldrb r1, [r5, #6]
lsls r0, r0, #8
lsls r6, r6, #0x10
lsls r1, r1, #0x18
movs r2, #1
orrs r0, r1
orrs r0, r2
orrs r0, r6
str r0, [r4]
ldr r0, [r5, #0x3c]
str r0, [r4, #8]
ldr r0, [r5, #0xc]
str r0, [r4, #0xc]
movs r1, #0x10
movs r2, #0xc
ldr r0, [r5, #0x38]
adds r1, r1, r0
adds r2, r2, r0
str r0, [r4, #0x20]
str r1, [r4, #0x24]
str r2, [r4, #0x14]
ldrh r1, [r5]
lsrs r2, r1, #8
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
strb r2, [r4, #6]
movs r3, #0xf0
ands r1, r3
cmp r1, #0x80
bne lbl_08004ff6
movs r3, #0x35
ldrb r2, [r5, r3]
lbl_08004ff6:
strb r2, [r4, #7]
movs r3, #0x17
ldrsb r1, [r5, r3]
adds r1, r1, r2
bmi lbl_08005008
cmp r1, #0x7f
ble lbl_0800500a
movs r1, #0x7f
b lbl_0800500a
lbl_08005008:
movs r1, #0
lbl_0800500a:
ldrb r2, [r5, #0x18]
bl Midikey2Freq
ldr r1, lbl_0800502c @ =gMusicInfo
ldrh r2, [r1, #0x12]
cmp r0, r2
bne lbl_0800501e
movs r0, #0x40
lsls r0, r0, #8
b lbl_08005024
lbl_0800501e:
ldr r1, [r1, #0x18]
bl sub_08004abc
lbl_08005024:
str r0, [r4, #0x1c]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_0800502c: .4byte gMusicInfo
thumb_func_start sub_08005030
sub_08005030: @ 0x08005030
ldr r1, [r0, #0x24]
adds r1, #1
movs r2, #3
ands r2, r1
bne lbl_0800503e
ldr r2, [r1]
b lbl_0800506a
lbl_0800503e:
movs r2, #1
ands r2, r1
bne lbl_08005050
ldrh r2, [r1]
adds r1, #2
ldrh r3, [r1]
lsls r3, r3, #0x10
orrs r2, r3
b lbl_0800506a
lbl_08005050:
ldrb r2, [r1]
adds r1, #1
ldrb r3, [r1]
lsls r3, r3, #8
orrs r2, r3
adds r1, #1
ldrb r3, [r1]
lsls r3, r3, #0x10
orrs r2, r3
adds r1, #1
ldrb r3, [r1]
lsls r3, r3, #0x18
orrs r2, r3
lbl_0800506a:
str r2, [r0, #0x24]
bx lr
.align 2, 0
thumb_func_start sub_08005070
sub_08005070: @ 0x08005070
ldr r1, [r0, #0x24]
adds r1, #1
movs r2, #3
ands r2, r1
bne lbl_08005080
ldr r2, [r1]
adds r1, #4
b lbl_080050b0
lbl_08005080:
movs r2, #1
ands r2, r1
bne lbl_08005094
ldrh r2, [r1]
adds r1, #2
ldrh r3, [r1]
lsls r3, r3, #0x10
orrs r2, r3
adds r1, #2
b lbl_080050b0
lbl_08005094:
ldrb r2, [r1]
adds r1, #1
ldrb r3, [r1]
lsls r3, r3, #8
orrs r2, r3
adds r1, #1
ldrb r3, [r1]
lsls r3, r3, #0x10
orrs r2, r3
adds r1, #1
ldrb r3, [r1]
lsls r3, r3, #0x18
orrs r2, r3
adds r1, #1
lbl_080050b0:
str r2, [r0, #0x24]
adds r0, #0x28
ldr r2, [r0]
cmp r2, #0
beq lbl_080050ca
adds r0, #4
ldr r2, [r0]
cmp r2, #0
beq lbl_080050ca
adds r0, #4
ldr r2, [r0]
cmp r2, #0
bne lbl_080050cc
lbl_080050ca:
str r1, [r0]
lbl_080050cc:
bx lr
.align 2, 0
thumb_func_start sub_080050d0
sub_080050d0: @ 0x080050d0
ldr r3, lbl_080050fc @ =0x04000070
movs r2, #0x40
strb r2, [r3]
ldr r1, lbl_08005100 @ =0x04000090
ldr r2, [r0]
str r2, [r1]
adds r0, #4
adds r1, #4
ldr r2, [r0]
str r2, [r1]
adds r0, #4
adds r1, #4
ldr r2, [r0]
str r2, [r1]
adds r0, #4
adds r1, #4
ldr r2, [r0]
str r2, [r1]
movs r2, #0
strb r2, [r3]
bx lr
.align 2, 0
lbl_080050fc: .4byte 0x04000070
lbl_08005100: .4byte 0x04000090
thumb_func_start sub_08005104
sub_08005104: @ 0x08005104
push {r4, r5}
ldr r4, [r0, #0x10]
ldrh r5, [r0, #0x14]
ldr r1, [r0, #0x24]
movs r2, #0x34
ldrb r1, [r1, r2]
cmp r1, #8
ble lbl_0800513e
movs r2, #4
movs r3, #0x89
lsls r2, r2, #0x18
orrs r2, r3
ldrb r2, [r2]
lsrs r2, r2, #6
lsls r2, r2, #6
movs r3, #0x40
cmp r2, r3
bge lbl_0800512c
adds r5, #2
b lbl_08005134
lbl_0800512c:
movs r3, #0x80
cmp r2, r3
bge lbl_0800513e
adds r5, #1
lbl_08005134:
movs r2, #0xc7
movs r3, #0xfe
lsls r2, r2, #8
orrs r2, r3
ands r5, r2
lbl_0800513e:
movs r2, #4
movs r3, #0x60
lsls r2, r2, #0x18
orrs r2, r3
movs r3, #7
ands r1, r3
lsls r3, r4, #8
lsrs r3, r3, #0x10
cmp r1, #1
beq lbl_08005160
cmp r1, #2
beq lbl_08005172
cmp r1, #3
beq lbl_08005178
cmp r1, #4
beq lbl_08005180
b lbl_08005184
lbl_08005160:
strb r4, [r2]
strh r3, [r2, #2]
strh r5, [r2, #4]
mov r8, r8
mov r8, r8
mov r8, r8
mov r8, r8
strh r5, [r2, #4]
b lbl_08005184
lbl_08005172:
strh r3, [r2, #8]
strh r5, [r2, #0xc]
b lbl_08005184
lbl_08005178:
strb r4, [r2, #0x10]
strh r3, [r2, #0x12]
strh r5, [r2, #0x14]
b lbl_08005184
lbl_08005180:
strh r3, [r2, #0x18]
strh r5, [r2, #0x1c]
lbl_08005184:
lsls r5, r5, #0x11
lsrs r5, r5, #0x11
strh r5, [r0, #0x14]
pop {r4, r5}
bx lr
.align 2, 0