pokepinballrs/asm/rom_3219C.s
2023-06-16 20:18:38 -05:00

59693 lines
1.1 MiB

.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_329F4
sub_329F4: @ 0x080329F4
push {r4, r5, r6, r7, lr}
ldr r6, _08032ABC @ =gUnknown_020314E0
ldr r2, [r6]
ldrh r0, [r2, #0x28]
adds r7, r0, #0
cmp r7, #0x18
bls _08032AD0
ldr r1, _08032AC0 @ =0x0000132C
adds r0, r2, r1
ldr r0, [r0]
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r0, [r6]
strb r2, [r0, #0x1f]
ldr r4, [r6]
ldrh r0, [r4, #0x28]
subs r0, #1
strh r0, [r4, #0x28]
adds r1, r4, r1
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
ldr r2, [r1]
movs r0, #0x3a
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0xb2
strh r0, [r2, #0x12]
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r2, #0x28]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #1
strh r0, [r2, #0x2a]
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r1, [r1]
movs r7, #0x12
ldrsh r0, [r1, r7]
lsls r0, r0, #8
str r0, [r1, #0x38]
ldrh r0, [r4, #0x28]
cmp r0, #0x31
bhi _08032A62
adds r0, #1
strh r0, [r4, #0x28]
_08032A62:
ldr r0, [r6]
ldr r4, _08032AC4 @ =0x000001A5
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_1B140
ldr r0, [r6]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08032B5C
movs r0, #0
adds r4, r6, #0
movs r6, #0
movs r5, #0xdb
lsls r5, r5, #2
_08032A8A:
ldr r1, [r4]
lsls r2, r0, #0x10
asrs r2, r2, #0x10
adds r1, r1, r5
adds r1, r1, r2
movs r0, #0xa
strb r0, [r1]
ldr r1, [r4]
lsls r3, r2, #1
ldr r7, _08032AC8 @ =0x0000036E
adds r0, r1, r7
adds r0, r0, r3
strh r6, [r0]
ldr r0, _08032ACC @ =0x0000036A
adds r1, r1, r0
adds r1, r1, r2
movs r0, #4
strb r0, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #1
ble _08032A8A
b _08032B5C
.align 2, 0
_08032ABC: .4byte gUnknown_020314E0
_08032AC0: .4byte 0x0000132C
_08032AC4: .4byte 0x000001A5
_08032AC8: .4byte 0x0000036E
_08032ACC: .4byte 0x0000036A
_08032AD0:
cmp r7, #0
beq _08032ADA
subs r0, #1
strh r0, [r2, #0x28]
b _08032B5C
_08032ADA:
ldr r4, _08032B64 @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
strb r7, [r0]
ldr r0, [r6]
strb r7, [r0, #0x1f]
ldr r3, [r6]
movs r2, #0
mov ip, r2
movs r5, #0x3c
strh r5, [r3, #0x26]
adds r1, r3, r4
ldr r2, [r1]
movs r0, #0x60
strh r0, [r2, #0x30]
ldr r2, [r1]
movs r0, #0xc0
strh r0, [r2, #0x32]
ldr r0, [r1]
strh r5, [r0, #0x10]
ldr r2, [r1]
movs r0, #0xb4
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r7, [r0, #6]
ldr r7, _08032B68 @ =0x000005F7
adds r3, r3, r7
mov r0, ip
strb r0, [r3]
ldr r2, [r6]
adds r4, r2, r4
ldr r1, [r4]
movs r3, #0x10
ldrsh r0, [r1, r3]
lsls r0, r0, #1
strh r0, [r1, #0x28]
ldr r1, [r4]
movs r7, #0x12
ldrsh r0, [r1, r7]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
adds r2, #0x25
mov r0, ip
strb r0, [r2]
movs r0, #0xc3
bl m4aSongNumStart
ldr r1, [r6]
ldr r2, _08032B6C @ =0x0000072E
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _08032B5C
ldr r3, _08032B70 @ =0x00000281
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08032B5C
movs r0, #6
bl sub_19B64
_08032B5C:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08032B64: .4byte 0x0000132C
_08032B68: .4byte 0x000005F7
_08032B6C: .4byte 0x0000072E
_08032B70: .4byte 0x00000281
thumb_func_start sub_32B74
sub_32B74: @ 0x08032B74
push {r4, r5, lr}
ldr r4, _08032BD0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _08032BD4 @ =0x0000072F
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
ble _08032B8E
movs r0, #4
bl sub_19B64
_08032B8E:
ldr r1, [r4]
movs r3, #0
movs r2, #0
movs r0, #0x64
strh r0, [r1, #0x28]
movs r5, #0xbd
lsls r5, r5, #2
adds r1, r1, r5
movs r0, #2
strb r0, [r1]
ldr r1, [r4]
ldr r5, _08032BD8 @ =0x000005FC
adds r0, r1, r5
strh r2, [r0]
ldr r0, _08032BDC @ =0x000005FE
adds r2, r1, r0
movs r0, #0x1e
strh r0, [r2]
subs r5, #1
adds r1, r1, r5
strb r3, [r1]
ldr r1, [r4]
ldr r0, _08032BE0 @ =0x0000C350
str r0, [r1, #0x3c]
movs r0, #0xd5
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08032BD0: .4byte gUnknown_020314E0
_08032BD4: .4byte 0x0000072F
_08032BD8: .4byte 0x000005FC
_08032BDC: .4byte 0x000005FE
_08032BE0: .4byte 0x0000C350
thumb_func_start sub_32BE4
sub_32BE4: @ 0x08032BE4
push {r4, r5, r6, r7, lr}
ldr r6, _08032C44 @ =gUnknown_020314E0
ldr r0, [r6]
ldrh r7, [r0, #0x28]
mov ip, r6
cmp r7, #0
bne _08032BF4
b _08032D54
_08032BF4:
ldr r1, _08032C48 @ =0x000005F7
adds r0, r0, r1
movs r1, #0
movs r5, #1
strb r5, [r0]
ldr r0, [r6]
strb r5, [r0, #0x1f]
ldr r3, [r6]
ldrh r0, [r3, #0x28]
subs r0, #1
strh r0, [r3, #0x28]
ldr r2, _08032C4C @ =0x0000132C
adds r4, r3, r2
ldr r0, [r4]
strh r1, [r0, #0x30]
ldr r0, [r4]
strh r1, [r0, #0x32]
ldr r0, [r4]
strh r1, [r0, #6]
ldrh r0, [r3, #0x28]
cmp r0, #0x61
bls _08032C54
ldr r2, _08032C50 @ =0x000005FA
adds r0, r3, r2
strb r5, [r0]
ldr r0, [r6]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
ldr r0, [r6]
ldr r1, _08032C4C @ =0x0000132C
adds r0, r0, r1
ldr r2, [r0]
movs r1, #0xb5
strh r1, [r2, #0x10]
ldr r1, [r0]
movs r0, #0xc3
b _08032D1A
.align 2, 0
_08032C44: .4byte gUnknown_020314E0
_08032C48: .4byte 0x000005F7
_08032C4C: .4byte 0x0000132C
_08032C50: .4byte 0x000005FA
_08032C54:
cmp r0, #0x5e
bls _08032C72
movs r0, #0xbd
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #3
strb r0, [r1]
ldr r0, [r6]
adds r0, r0, r2
ldr r2, [r0]
movs r1, #0xb8
strh r1, [r2, #0x10]
ldr r1, [r0]
movs r0, #0xbb
b _08032D1A
_08032C72:
cmp r0, #0x5b
bls _08032C88
ldr r0, [r4]
strb r5, [r0]
ldr r0, [r6]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
b _08032D1C
_08032C88:
cmp r0, #0x53
bls _08032C98
movs r2, #0xbd
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #5
strb r0, [r1]
b _08032D1C
_08032C98:
cmp r0, #0x22
bls _08032CA8
movs r0, #0xbd
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #6
strb r0, [r1]
b _08032D1C
_08032CA8:
cmp r0, #0x1a
bls _08032CB8
movs r2, #0xbd
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #7
strb r0, [r1]
b _08032D1C
_08032CB8:
cmp r0, #0x12
bls _08032CC8
movs r0, #0xbd
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #8
strb r0, [r1]
b _08032D1C
_08032CC8:
cmp r0, #0xa
bls _08032CD8
movs r2, #0xbd
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #9
strb r0, [r1]
b _08032D1C
_08032CD8:
cmp r0, #4
bls _08032CFE
ldr r1, [r4]
movs r0, #0
strb r0, [r1]
ldr r0, [r6]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #0xa
strb r1, [r0]
ldr r0, [r6]
adds r0, r0, r2
ldr r2, [r0]
movs r1, #0xb5
strh r1, [r2, #0x10]
ldr r1, [r0]
movs r0, #0xc3
b _08032D1A
_08032CFE:
ldr r0, [r6]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0xb
strb r1, [r0]
ldr r0, [r6]
ldr r2, _08032D50 @ =0x0000132C
adds r0, r0, r2
ldr r2, [r0]
movs r1, #0xb0
strh r1, [r2, #0x10]
ldr r1, [r0]
movs r0, #0xca
_08032D1A:
strh r0, [r1, #0x12]
_08032D1C:
mov r3, ip
ldr r1, [r3]
ldr r0, _08032D50 @ =0x0000132C
adds r1, r1, r0
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r2, #0x28]
ldr r2, [r1]
movs r3, #0x12
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r2, #0x2a]
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r1, [r1]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #8
str r0, [r1, #0x38]
b _08032DDA
.align 2, 0
_08032D50: .4byte 0x0000132C
_08032D54:
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r0, r3
strb r7, [r0]
ldr r0, [r6]
strb r7, [r0, #0x1f]
ldr r1, [r6]
movs r5, #0
movs r0, #0x3c
strh r0, [r1, #0x26]
ldr r4, _08032DE0 @ =0x0000132C
adds r1, r1, r4
ldr r0, [r1]
strh r7, [r0, #6]
ldr r2, [r1]
ldr r0, _08032DE4 @ =0x0000FF9A
strh r0, [r2, #0x30]
ldr r1, [r1]
movs r0, #0xc8
strh r0, [r1, #0x32]
movs r0, #7
bl sub_11B0
ldr r2, [r6]
adds r4, r2, r4
ldr r0, [r4]
strh r7, [r0, #6]
ldr r1, [r4]
movs r0, #0xab
strh r0, [r1, #0x10]
ldr r1, [r4]
movs r0, #0xd4
strh r0, [r1, #0x12]
ldr r1, [r4]
movs r3, #0x10
ldrsh r0, [r1, r3]
lsls r0, r0, #1
strh r0, [r1, #0x28]
ldr r1, [r4]
movs r3, #0x12
ldrsh r0, [r1, r3]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
ldr r1, [r4]
ldr r0, [r1, #0x28]
str r0, [r1, #0x2c]
adds r2, #0x25
strb r5, [r2]
ldr r0, [r6]
ldr r1, _08032DE8 @ =0x000005F7
adds r0, r0, r1
strb r5, [r0]
movs r0, #0xd6
bl m4aSongNumStart
ldr r0, [r6]
ldr r2, _08032DEC @ =0x000005FE
adds r1, r0, r2
strh r7, [r1]
ldr r3, _08032DF0 @ =0x000005FB
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
ldr r1, _08032DF4 @ =0x000005FA
adds r0, r0, r1
strb r5, [r0]
_08032DDA:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08032DE0: .4byte 0x0000132C
_08032DE4: .4byte 0x0000FF9A
_08032DE8: .4byte 0x000005F7
_08032DEC: .4byte 0x000005FE
_08032DF0: .4byte 0x000005FB
_08032DF4: .4byte 0x000005FA
thumb_func_start sub_32DF8
sub_32DF8: @ 0x08032DF8
push {r4, r5, lr}
ldr r0, _08032F28 @ =gUnknown_020314E0
ldr r2, [r0]
ldrb r1, [r2, #4]
adds r5, r0, #0
cmp r1, #0
beq _08032E90
movs r1, #0xe2
lsls r1, r1, #1
adds r0, r2, r1
ldrh r0, [r0]
cmp r0, #0
bne _08032E3A
movs r3, #0xf1
lsls r3, r3, #1
adds r1, r2, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
beq _08032E3A
subs r3, #0x22
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0
bne _08032E3A
ldr r3, _08032F2C @ =0x0000061C
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08032E3A
strb r0, [r1]
_08032E3A:
ldr r0, [r5]
movs r2, #0xe2
lsls r2, r2, #3
adds r1, r0, r2
movs r4, #0
ldrsb r4, [r1, r4]
adds r2, #1
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1]
ldr r0, [r5]
ldr r3, _08032F30 @ =0x00000712
adds r1, r0, r3
ldrb r1, [r1]
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
adds r2, #2
adds r1, r0, r2
ldrb r1, [r1]
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r3, #6
adds r1, r0, r3
movs r4, #0
ldrsb r4, [r1, r4]
adds r3, #1
adds r0, r0, r3
ldrb r0, [r0]
strb r0, [r1]
ldr r0, [r5]
adds r2, #7
adds r1, r0, r2
ldrb r1, [r1]
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r2
strb r4, [r0]
_08032E90:
ldr r1, [r5]
ldrb r0, [r1, #5]
cmp r0, #0
beq _08032F22
movs r2, #0xe2
lsls r2, r2, #1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0
bne _08032ECE
movs r3, #0xf1
lsls r3, r3, #1
adds r2, r1, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
beq _08032ECE
subs r3, #0x22
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0
bne _08032ECE
ldr r3, _08032F2C @ =0x0000061C
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08032ECE
movs r0, #1
strb r0, [r2]
_08032ECE:
ldr r0, [r5]
ldr r2, _08032F34 @ =0x00000713
adds r1, r0, r2
movs r4, #0
ldrsb r4, [r1, r4]
subs r2, #1
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1]
ldr r0, [r5]
ldr r3, _08032F38 @ =0x00000711
adds r1, r0, r3
ldrb r1, [r1]
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
subs r2, #2
adds r1, r0, r2
ldrb r1, [r1]
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r3, #9
adds r1, r0, r3
movs r4, #0
ldrsb r4, [r1, r4]
subs r3, #1
adds r0, r0, r3
ldrb r0, [r0]
strb r0, [r1]
ldr r0, [r5]
adds r2, #8
adds r1, r0, r2
ldrb r1, [r1]
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r2
strb r4, [r0]
_08032F22:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08032F28: .4byte gUnknown_020314E0
_08032F2C: .4byte 0x0000061C
_08032F30: .4byte 0x00000712
_08032F34: .4byte 0x00000713
_08032F38: .4byte 0x00000711
thumb_func_start sub_32F3C
sub_32F3C: @ 0x08032F3C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r3, _080330F0 @ =gUnknown_020314E0
ldr r0, [r3]
movs r5, #0
movs r6, #0
strh r6, [r0, #0x18]
strb r5, [r0, #0x17]
ldr r0, [r3]
strb r5, [r0, #0x13]
ldr r0, [r3]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #1
mov r8, r2
mov r4, r8
strb r4, [r0]
ldr r2, [r3]
adds r4, r2, #0
adds r4, #0x6c
movs r7, #0xe1
lsls r7, r7, #5
adds r0, r7, #0
ldrh r1, [r4]
adds r0, r0, r1
ldr r7, _080330F4 @ =0x00000296
adds r1, r2, r7
strh r0, [r1]
strh r6, [r4]
ldr r0, _080330F8 @ =0x00000383
adds r2, r2, r0
strb r5, [r2]
ldr r0, [r3]
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r0, [r3]
ldr r2, _080330FC @ =0x0000132C
adds r0, r0, r2
ldr r0, [r0]
mov r4, r8
strb r4, [r0]
ldr r0, [r3]
adds r7, #0xef
adds r0, r0, r7
strb r5, [r0]
ldr r0, [r3]
ldr r1, _08033100 @ =0x00000386
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r3]
ldr r2, _08033104 @ =0x00000387
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r3]
ldr r4, _08033108 @ =0x00000392
adds r1, r0, r4
strh r6, [r1]
adds r7, #0xf
adds r1, r0, r7
strh r6, [r1]
ldr r1, _0803310C @ =0x00000396
adds r0, r0, r1
strb r5, [r0]
movs r1, #0
adds r6, r3, #0
adds r5, r6, #0
movs r4, #0
_08032FCC:
ldr r0, [r5]
lsls r2, r1, #0x10
asrs r2, r2, #0x10
ldr r3, _08033110 @ =0x00000397
adds r0, r0, r3
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
ldr r7, _08033114 @ =0x0000039A
adds r0, r0, r7
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
ldr r1, _08033118 @ =0x0000039D
adds r0, r0, r1
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r3, #9
adds r0, r0, r3
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r7, #9
adds r0, r0, r7
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r1, #9
adds r0, r0, r1
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r3, #9
adds r0, r0, r3
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r7, #9
adds r0, r0, r7
adds r0, r0, r2
strb r4, [r0]
ldr r1, [r5]
lsls r3, r2, #1
adds r7, #4
adds r0, r1, r7
adds r0, r0, r3
strh r4, [r0]
adds r7, #6
adds r0, r1, r7
adds r0, r0, r3
strh r4, [r0]
adds r7, #6
adds r0, r1, r7
adds r0, r0, r3
strh r4, [r0]
lsls r0, r2, #2
adds r1, r1, r0
movs r3, #0xf1
lsls r3, r3, #2
adds r0, r1, r3
strh r4, [r0]
adds r7, #0xa
adds r0, r1, r7
strh r4, [r0]
adds r3, #0xc
adds r0, r1, r3
strh r4, [r0]
adds r7, #0xc
adds r1, r1, r7
strh r4, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #2
ble _08032FCC
ldr r0, [r6]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #0
strb r2, [r0]
ldr r0, [r6]
adds r3, #0xe
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r6]
ldr r4, _0803311C @ =0x000003DF
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
adds r7, #0xe
adds r0, r0, r7
strb r2, [r0]
ldr r1, [r6]
adds r3, #4
adds r0, r1, r3
movs r3, #0
strh r2, [r0]
adds r4, #5
adds r0, r1, r4
strh r2, [r0]
adds r7, #6
adds r0, r1, r7
strh r2, [r0]
adds r4, #4
adds r0, r1, r4
strh r2, [r0]
adds r7, #4
adds r0, r1, r7
strh r2, [r0]
adds r4, #4
adds r0, r1, r4
strh r2, [r0]
adds r7, #4
adds r0, r1, r7
strh r2, [r0]
adds r4, #4
adds r0, r1, r4
strh r2, [r0]
adds r7, #4
adds r0, r1, r7
strh r2, [r0]
strb r3, [r1, #0x1a]
bl sub_336E0
bl sub_340EC
movs r0, #0x25
bl m4aSongNumStart
ldr r1, _08033120 @ =0x040000D4
ldr r0, _08033124 @ =gUnknown_081B36A4
str r0, [r1]
ldr r0, _08033128 @ =0x05000320
str r0, [r1, #4]
ldr r0, _0803312C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080330F0: .4byte gUnknown_020314E0
_080330F4: .4byte 0x00000296
_080330F8: .4byte 0x00000383
_080330FC: .4byte 0x0000132C
_08033100: .4byte 0x00000386
_08033104: .4byte 0x00000387
_08033108: .4byte 0x00000392
_0803310C: .4byte 0x00000396
_08033110: .4byte 0x00000397
_08033114: .4byte 0x0000039A
_08033118: .4byte 0x0000039D
_0803311C: .4byte 0x000003DF
_08033120: .4byte 0x040000D4
_08033124: .4byte gUnknown_081B36A4
_08033128: .4byte 0x05000320
_0803312C: .4byte 0x80000010
thumb_func_start sub_33130
sub_33130: @ 0x08033130
push {r4, r5, r6, r7, lr}
ldr r0, _0803314C @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bls _08033142
b _080333C4
_08033142:
lsls r0, r0, #2
ldr r1, _08033150 @ =_08033154
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803314C: .4byte gUnknown_020314E0
_08033150: .4byte _08033154
_08033154: @ jump table
.4byte _08033170 @ case 0
.4byte _08033208 @ case 1
.4byte _08033254 @ case 2
.4byte _080332A8 @ case 3
.4byte _080332E0 @ case 4
.4byte _08033344 @ case 5
.4byte _080333B4 @ case 6
_08033170:
ldr r5, _080331C4 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r1, _080331C8 @ =0x000005F7
adds r0, r0, r1
movs r6, #0
movs r3, #1
strb r3, [r0]
ldr r4, [r5]
ldrh r0, [r4, #0x18]
cmp r0, #0x77
bhi _080331DC
movs r1, #0x18
bl __udivsi3
ldr r2, _080331CC @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #5
ldr r0, _080331D0 @ =gUnknown_082EE0E0
adds r1, r1, r0
str r1, [r2]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r2, #4]
ldr r0, _080331D4 @ =0x80000050
str r0, [r2, #8]
ldr r0, [r2, #8]
ldrh r0, [r4, #0x18]
movs r1, #5
bl __udivsi3
ldr r2, _080331D8 @ =0x0000FFE8
adds r0, r0, r2
adds r1, r4, #0
adds r1, #0xe6
strh r0, [r1]
ldrh r0, [r4, #0x18]
adds r0, #1
strh r0, [r4, #0x18]
b _080333C4
.align 2, 0
_080331C4: .4byte gUnknown_020314E0
_080331C8: .4byte 0x000005F7
_080331CC: .4byte 0x040000D4
_080331D0: .4byte gUnknown_082EE0E0
_080331D4: .4byte 0x80000050
_080331D8: .4byte 0x0000FFE8
_080331DC:
adds r0, r4, #0
adds r0, #0xe6
strh r6, [r0]
ldr r1, _08033204 @ =gMain
movs r7, #0x80
lsls r7, r7, #4
adds r0, r1, r7
movs r2, #1
strh r3, [r0]
adds r7, #0xb8
adds r0, r1, r7
strh r3, [r0]
movs r0, #0x97
lsls r0, r0, #4
adds r1, r1, r0
strh r3, [r1]
strb r2, [r4, #0x13]
ldr r0, [r5]
strh r6, [r0, #0x18]
b _080333C4
.align 2, 0
_08033204: .4byte gMain
_08033208:
ldr r2, _0803323C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08033240 @ =0x00000386
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08033228
ldr r1, _08033244 @ =gMain
ldrh r0, [r1, #0x38]
ldr r0, _08033248 @ =0x00001C10
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3a]
ldr r0, _0803324C @ =0x0000030D
strh r0, [r1, #0x3a]
_08033228:
ldr r0, [r2]
ldr r2, _08033250 @ =0x00000387
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
bl sub_336E0
bl sub_340EC
b _080333C4
.align 2, 0
_0803323C: .4byte gUnknown_020314E0
_08033240: .4byte 0x00000386
_08033244: .4byte gMain
_08033248: .4byte 0x00001C10
_0803324C: .4byte 0x0000030D
_08033250: .4byte 0x00000387
_08033254:
ldr r3, _08033290 @ =gUnknown_020314E0
ldr r1, [r3]
movs r0, #3
strb r0, [r1, #0x13]
ldr r2, _08033294 @ =gMain
movs r5, #0xc5
lsls r5, r5, #4
adds r0, r2, r5
movs r4, #0
movs r1, #1
strh r1, [r0]
ldr r7, _08033298 @ =0x00000D08
adds r0, r2, r7
strh r1, [r0]
ldr r0, _0803329C @ =0x00000B98
adds r2, r2, r0
strh r1, [r2]
ldr r0, [r3]
ldr r1, _080332A0 @ =0x00000387
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r3]
ldr r2, _080332A4 @ =0x00000385
adds r0, r0, r2
strb r4, [r0]
movs r0, #0x26
bl m4aSongNumStart
b _080333C4
.align 2, 0
_08033290: .4byte gUnknown_020314E0
_08033294: .4byte gMain
_08033298: .4byte 0x00000D08
_0803329C: .4byte 0x00000B98
_080332A0: .4byte 0x00000387
_080332A4: .4byte 0x00000385
_080332A8:
ldr r0, _080332D0 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r5, _080332D4 @ =0x00000386
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080332CA
ldr r1, _080332D8 @ =gMain
ldrh r0, [r1, #0x38]
ldr r0, _080332DC @ =0x00001C10
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3a]
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r1, #0x3a]
_080332CA:
bl sub_34450
b _080333C4
.align 2, 0
_080332D0: .4byte gUnknown_020314E0
_080332D4: .4byte 0x00000386
_080332D8: .4byte gMain
_080332DC: .4byte 0x00001C10
_080332E0:
ldr r3, _080332F0 @ =gUnknown_020314E0
ldr r2, [r3]
ldrh r0, [r2, #0x18]
cmp r0, #0x77
bhi _080332F4
adds r0, #1
strh r0, [r2, #0x18]
b _080333C4
.align 2, 0
_080332F0: .4byte gUnknown_020314E0
_080332F4:
movs r1, #0
movs r0, #5
strb r0, [r2, #0x13]
ldr r3, [r3]
strh r1, [r3, #0x18]
ldr r0, _08033330 @ =gMain
movs r7, #0xe9
lsls r7, r7, #3
adds r1, r0, r7
movs r2, #1
strh r2, [r1]
movs r1, #0xd2
lsls r1, r1, #3
adds r0, r0, r1
strh r2, [r0]
ldr r1, _08033334 @ =0x040000D4
ldr r0, _08033338 @ =gUnknown_08138834
str r0, [r1]
ldr r0, _0803333C @ =0x06015800
str r0, [r1, #4]
ldr r0, _08033340 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r2, #0xe5
lsls r2, r2, #2
adds r3, r3, r2
movs r0, #0x88
strh r0, [r3]
b _080333C4
.align 2, 0
_08033330: .4byte gMain
_08033334: .4byte 0x040000D4
_08033338: .4byte gUnknown_08138834
_0803333C: .4byte 0x06015800
_08033340: .4byte 0x80001000
_08033344:
bl sub_351A8
ldr r4, _0803338C @ =gUnknown_020314E0
ldr r1, [r4]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _08033356
movs r0, #0xb5
strh r0, [r1, #0x18]
_08033356:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _0803336C
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r4]
ldr r0, _08033390 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _08033394 @ =0x01C9C380
str r0, [r1, #0x3c]
_0803336C:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _08033398
cmp r0, #0x14
bne _08033382
bl m4aMPlayAllStop
movs r0, #0x2b
bl m4aSongNumStart
_08033382:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
b _080333C4
.align 2, 0
_0803338C: .4byte gUnknown_020314E0
_08033390: .4byte 0x00061A80
_08033394: .4byte 0x01C9C380
_08033398:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #6
strb r0, [r1, #0x13]
ldr r1, [r4]
ldr r5, _080333B0 @ =0x00000283
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _080333C4
.align 2, 0
_080333B0: .4byte 0x00000283
_080333B4:
bl sub_351A8
ldr r0, _0803341C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r7, _08033420 @ =0x00000386
adds r0, r0, r7
movs r1, #1
strb r1, [r0]
_080333C4:
ldr r0, _0803341C @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0xa5
lsls r2, r2, #2
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080333FC
ldr r5, _08033424 @ =0x00000296
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #1
bhi _080333FC
ldr r4, _08033428 @ =gMain
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _080333FC
bl m4aMPlayAllStop
movs r0, #0x2c
bl m4aSongNumStart
ldrb r1, [r4, #0xf]
movs r0, #0x40
orrs r0, r1
strb r0, [r4, #0xf]
_080333FC:
ldr r0, _0803341C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r7, _08033420 @ =0x00000386
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08033412
bl sub_350F0
_08033412:
bl sub_472E4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0803341C: .4byte gUnknown_020314E0
_08033420: .4byte 0x00000386
_08033424: .4byte 0x00000296
_08033428: .4byte gMain
thumb_func_start sub_3342C
sub_3342C: @ 0x0803342C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x40
ldr r5, _080336B0 @ =gUnknown_020314E0
ldr r3, [r5]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r2, _080336B4 @ =0x00000397
adds r2, r2, r3
mov ip, r2
adds r2, r2, r0
str r2, [sp, #4]
ldrb r4, [r2]
str r4, [sp, #8]
ldr r4, _080336B8 @ =0x0000039A
adds r2, r3, r4
adds r2, r2, r0
ldrb r2, [r2]
str r2, [sp, #0xc]
adds r4, #3
adds r2, r3, r4
adds r2, r2, r0
ldrb r2, [r2]
str r2, [sp, #0x10]
adds r4, #3
adds r2, r3, r4
adds r2, r2, r0
ldrb r2, [r2]
str r2, [sp, #0x14]
adds r4, #3
adds r2, r3, r4
adds r2, r2, r0
ldrb r2, [r2]
str r2, [sp, #0x18]
adds r4, #3
adds r2, r3, r4
adds r2, r2, r0
ldrb r2, [r2]
str r2, [sp, #0x1c]
adds r4, #3
adds r2, r3, r4
adds r2, r2, r0
ldrb r2, [r2]
str r2, [sp, #0x20]
adds r4, #3
adds r2, r3, r4
adds r2, r2, r0
ldrb r2, [r2]
str r2, [sp, #0x24]
lsls r2, r0, #1
mov r8, r2
adds r4, #4
adds r2, r3, r4
add r2, r8
ldrh r2, [r2]
str r2, [sp, #0x28]
adds r4, #6
adds r2, r3, r4
add r2, r8
ldrh r2, [r2]
str r2, [sp, #0x2c]
adds r4, #6
adds r2, r3, r4
add r2, r8
ldrh r2, [r2]
str r2, [sp, #0x30]
lsls r6, r0, #2
adds r3, r3, r6
movs r2, #0xf1
lsls r2, r2, #2
adds r2, r3, r2
str r2, [sp, #0x3c]
ldr r4, _080336BC @ =0xFFFF0000
mov sb, r4
ldr r4, _080336C0 @ =0x000003C6
adds r2, r3, r4
ldrh r2, [r2]
lsls r2, r2, #0x10
ldr r4, _080336C4 @ =0x0000FFFF
mov sl, r4
ldr r4, [sp, #0x3c]
ldrh r4, [r4]
orrs r4, r2
str r4, [sp]
movs r4, #0xf4
lsls r4, r4, #2
adds r2, r3, r4
ldrh r2, [r2]
mov r4, sb
ands r7, r4
orrs r7, r2
ldr r2, _080336C8 @ =0x000003D2
adds r3, r3, r2
ldrh r2, [r3]
lsls r2, r2, #0x10
mov r3, sl
ands r7, r3
orrs r7, r2
lsls r1, r1, #0x10
asrs r1, r1, #0x10
mov r4, ip
adds r2, r4, r1
ldrb r2, [r2]
ldr r3, [sp, #4]
strb r2, [r3]
ldr r2, [r5]
ldr r4, _080336B8 @ =0x0000039A
adds r2, r2, r4
adds r3, r2, r0
adds r2, r2, r1
ldrb r2, [r2]
strb r2, [r3]
ldr r2, [r5]
ldr r3, _080336CC @ =0x0000039D
adds r2, r2, r3
adds r3, r2, r0
adds r2, r2, r1
ldrb r2, [r2]
strb r2, [r3]
ldr r2, [r5]
adds r4, #6
adds r2, r2, r4
adds r3, r2, r0
adds r2, r2, r1
ldrb r2, [r2]
strb r2, [r3]
ldr r2, [r5]
ldr r3, _080336D0 @ =0x000003A3
adds r2, r2, r3
adds r3, r2, r0
adds r2, r2, r1
ldrb r2, [r2]
strb r2, [r3]
ldr r2, [r5]
adds r4, #6
adds r2, r2, r4
adds r3, r2, r0
adds r2, r2, r1
ldrb r2, [r2]
strb r2, [r3]
ldr r2, [r5]
ldr r3, _080336D4 @ =0x000003A9
adds r2, r2, r3
adds r3, r2, r0
adds r2, r2, r1
ldrb r2, [r2]
strb r2, [r3]
ldr r2, [r5]
adds r4, #6
adds r2, r2, r4
adds r0, r2, r0
adds r2, r2, r1
ldrb r2, [r2]
strb r2, [r0]
ldr r4, [r5]
movs r2, #0xec
lsls r2, r2, #2
adds r0, r4, r2
mov r3, r8
adds r2, r0, r3
lsls r3, r1, #1
mov sb, r3
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
ldr r2, _080336D8 @ =0x000003B6
adds r0, r4, r2
mov r3, r8
adds r2, r0, r3
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
movs r2, #0xef
lsls r2, r2, #2
adds r0, r4, r2
add r8, r0
add r0, sb
ldrh r0, [r0]
mov r3, r8
strh r0, [r3]
adds r6, r4, r6
lsls r0, r1, #2
mov r8, r0
adds r2, r4, r0
movs r3, #0xf1
lsls r3, r3, #2
adds r0, r2, r3
ldrh r0, [r0]
mov sl, r0
adds r0, r6, r3
mov r3, sl
strh r3, [r0]
ldr r3, _080336C0 @ =0x000003C6
adds r0, r2, r3
ldrh r0, [r0]
mov sl, r0
adds r0, r6, r3
mov r3, sl
strh r3, [r0]
movs r3, #0xf4
lsls r3, r3, #2
adds r0, r2, r3
ldrh r0, [r0]
mov sl, r0
adds r0, r6, r3
mov r3, sl
strh r3, [r0]
ldr r0, _080336C8 @ =0x000003D2
adds r2, r2, r0
ldrh r0, [r2]
ldr r2, _080336C8 @ =0x000003D2
adds r6, r6, r2
strh r0, [r6]
ldr r3, _080336B4 @ =0x00000397
adds r4, r4, r3
adds r4, r4, r1
mov r0, sp
ldrb r0, [r0, #8]
strb r0, [r4]
ldr r0, [r5]
subs r2, #0x38
adds r0, r0, r2
adds r0, r0, r1
mov r3, sp
ldrb r3, [r3, #0xc]
strb r3, [r0]
ldr r0, [r5]
ldr r4, _080336CC @ =0x0000039D
adds r0, r0, r4
adds r0, r0, r1
mov r2, sp
ldrb r2, [r2, #0x10]
strb r2, [r0]
ldr r0, [r5]
movs r3, #0xe8
lsls r3, r3, #2
adds r0, r0, r3
adds r0, r0, r1
mov r4, sp
ldrb r4, [r4, #0x14]
strb r4, [r0]
ldr r0, [r5]
ldr r2, _080336D0 @ =0x000003A3
adds r0, r0, r2
adds r0, r0, r1
mov r3, sp
ldrb r3, [r3, #0x18]
strb r3, [r0]
ldr r0, [r5]
ldr r4, _080336DC @ =0x000003A6
adds r0, r0, r4
adds r0, r0, r1
mov r2, sp
ldrb r2, [r2, #0x1c]
strb r2, [r0]
ldr r0, [r5]
ldr r3, _080336D4 @ =0x000003A9
adds r0, r0, r3
adds r0, r0, r1
add r4, sp, #0x20
ldrb r4, [r4]
strb r4, [r0]
ldr r0, [r5]
movs r2, #0xeb
lsls r2, r2, #2
adds r0, r0, r2
adds r0, r0, r1
add r3, sp, #0x24
ldrb r3, [r3]
strb r3, [r0]
ldr r0, [r5]
movs r4, #0xec
lsls r4, r4, #2
adds r1, r0, r4
add r1, sb
mov r2, sp
ldrh r2, [r2, #0x28]
strh r2, [r1]
ldr r3, _080336D8 @ =0x000003B6
adds r1, r0, r3
add r1, sb
mov r4, sp
ldrh r4, [r4, #0x2c]
strh r4, [r1]
movs r1, #0xef
lsls r1, r1, #2
adds r1, r0, r1
str r1, [sp, #0x34]
add r1, sb
mov r2, sp
ldrh r2, [r2, #0x30]
strh r2, [r1]
add r0, r8
adds r3, #0xe
adds r1, r0, r3
mov r4, sp
ldrh r4, [r4]
strh r4, [r1]
ldr r2, [sp]
asrs r1, r2, #0x10
adds r3, #2
adds r2, r0, r3
strh r1, [r2]
movs r4, #0xf4
lsls r4, r4, #2
adds r1, r0, r4
strh r7, [r1]
asrs r1, r7, #0x10
ldr r2, _080336C8 @ =0x000003D2
adds r0, r0, r2
strh r1, [r0]
add sp, #0x40
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
_080336B0: .4byte gUnknown_020314E0
_080336B4: .4byte 0x00000397
_080336B8: .4byte 0x0000039A
_080336BC: .4byte 0xFFFF0000
_080336C0: .4byte 0x000003C6
_080336C4: .4byte 0x0000FFFF
_080336C8: .4byte 0x000003D2
_080336CC: .4byte 0x0000039D
_080336D0: .4byte 0x000003A3
_080336D4: .4byte 0x000003A9
_080336D8: .4byte 0x000003B6
_080336DC: .4byte 0x000003A6
thumb_func_start sub_336E0
sub_336E0: @ 0x080336E0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
movs r4, #1
movs r0, #0
str r0, [sp]
movs r7, #0
ldr r0, _0803377C @ =gUnknown_020314E0
ldr r3, [r0]
ldr r2, _08033780 @ =0x00000385
adds r1, r3, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
cmp r1, #0x12
ble _08033750
movs r2, #0
ldr r5, _08033784 @ =0x000003A6
adds r1, r3, r5
_0803370C:
lsls r0, r2, #0x10
asrs r2, r0, #0x10
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803371E
movs r4, #0
_0803371E:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0803370C
cmp r4, #0
beq _08033750
ldr r6, _0803377C @ =gUnknown_020314E0
ldr r1, [r6]
movs r2, #0
movs r0, #2
strb r0, [r1, #0x13]
ldr r0, _08033788 @ =gMain
movs r3, #0x80
lsls r3, r3, #4
adds r1, r0, r3
strh r2, [r1]
ldr r4, _0803378C @ =0x000008B8
adds r1, r0, r4
strh r2, [r1]
movs r5, #0x97
lsls r5, r5, #4
adds r0, r0, r5
strh r2, [r0]
_08033750:
movs r2, #0
_08033752:
ldr r6, _0803377C @ =gUnknown_020314E0
ldr r0, [r6]
lsls r2, r2, #0x10
asrs r1, r2, #0x10
movs r3, #0xe8
lsls r3, r3, #2
adds r0, r0, r3
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
str r2, [sp, #4]
cmp r0, #9
bls _08033772
bl _08033FD8
_08033772:
lsls r0, r0, #2
ldr r1, _08033790 @ =_08033794
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803377C: .4byte gUnknown_020314E0
_08033780: .4byte 0x00000385
_08033784: .4byte 0x000003A6
_08033788: .4byte gMain
_0803378C: .4byte 0x000008B8
_08033790: .4byte _08033794
_08033794: @ jump table
.4byte _080337BC @ case 0
.4byte _0803394C @ case 1
.4byte _08033A20 @ case 2
.4byte _08033B4C @ case 3
.4byte _08033C7C @ case 4
.4byte _08033D28 @ case 5
.4byte _08033DF4 @ case 6
.4byte _08033E70 @ case 7
.4byte _08033EF0 @ case 8
.4byte _08033F90 @ case 9
_080337BC:
ldr r4, _080338E0 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r5, _080338E4 @ =0x00000385
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x12
ble _080337D0
b _08033910
_080337D0:
ldr r6, _080338E8 @ =0x00000396
adds r1, r1, r6
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
ble _080337E0
b _08033910
_080337E0:
adds r0, r2, #1
movs r2, #0
mov sl, r2
strb r0, [r1]
ldr r1, [r4]
ldr r3, [sp, #4]
asrs r6, r3, #0x10
movs r4, #0xe8
lsls r4, r4, #2
adds r1, r1, r4
adds r1, r1, r6
movs r0, #1
strb r0, [r1]
ldr r5, _080338E0 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r1, _080338EC @ =0x000003A3
adds r0, r0, r1
adds r0, r0, r6
mov r2, sl
strb r2, [r0]
ldr r0, [r5]
lsls r3, r6, #1
mov r8, r3
adds r4, #0x10
adds r0, r0, r4
add r0, r8
movs r7, #0
mov r5, sl
strh r5, [r0]
bl Random
ldr r1, _080338E0 @ =gUnknown_020314E0
ldr r4, [r1]
lsls r5, r6, #2
adds r4, r4, r5
movs r1, #0xaf
lsls r1, r1, #3
bl __umodsi3
ldr r2, _080338F0 @ =0xFFFFFD44
adds r0, r0, r2
movs r3, #0xf1
lsls r3, r3, #2
adds r4, r4, r3
strh r0, [r4]
bl Random
ldr r1, _080338E0 @ =gUnknown_020314E0
ldr r4, [r1]
adds r4, r4, r5
movs r1, #9
bl __umodsi3
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #4
ldr r2, _080338F4 @ =0x000003C6
mov sb, r2
add r4, sb
strh r1, [r4]
bl Random
ldr r3, _080338E0 @ =gUnknown_020314E0
ldr r4, [r3]
movs r1, #0xef
lsls r1, r1, #2
adds r5, r4, r1
add r5, r8
adds r1, #0x2c
bl __umodsi3
adds r0, #0xc8
strh r0, [r5]
ldr r2, _080338F8 @ =0x000003A6
adds r4, r4, r2
adds r4, r4, r6
strb r7, [r4]
ldr r3, _080338E0 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _080338FC @ =0x000003A9
adds r0, r0, r4
adds r0, r0, r6
strb r7, [r0]
movs r5, #4
str r5, [sp]
movs r7, #4
ldr r0, [r3]
ldr r6, _08033900 @ =0x000003B6
adds r0, r0, r6
add r0, r8
mov r1, sl
strh r1, [r0]
ldr r0, _08033904 @ =gMPlayInfo_SE1
ldr r1, _08033908 @ =gUnknown_086A1588
bl MPlayStart
movs r5, #2
mov r8, sb
_080338A4:
ldr r0, _080338E0 @ =gUnknown_020314E0
ldr r2, [r0]
lsls r0, r5, #0x10
asrs r4, r0, #0x10
lsls r1, r4, #2
adds r1, r2, r1
add r1, r8
subs r3, r4, #1
lsls r0, r3, #2
adds r2, r2, r0
add r2, r8
movs r6, #0
ldrsh r1, [r1, r6]
movs r6, #0
ldrsh r0, [r2, r6]
cmp r1, r0
ble _080338D2
lsls r1, r3, #0x10
asrs r1, r1, #0x10
adds r0, r4, #0
bl sub_3342C
movs r5, #3
_080338D2:
lsls r0, r5, #0x10
ldr r1, _0803390C @ =0xFFFF0000
adds r0, r0, r1
lsrs r5, r0, #0x10
cmp r0, #0
bgt _080338A4
b _08033FD8
.align 2, 0
_080338E0: .4byte gUnknown_020314E0
_080338E4: .4byte 0x00000385
_080338E8: .4byte 0x00000396
_080338EC: .4byte 0x000003A3
_080338F0: .4byte 0xFFFFFD44
_080338F4: .4byte 0x000003C6
_080338F8: .4byte 0x000003A6
_080338FC: .4byte 0x000003A9
_08033900: .4byte 0x000003B6
_08033904: .4byte gMPlayInfo_SE1
_08033908: .4byte gUnknown_086A1588
_0803390C: .4byte 0xFFFF0000
_08033910:
ldr r0, _08033940 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, [sp, #4]
asrs r4, r3, #0x10
lsls r1, r4, #2
adds r1, r2, r1
movs r5, #0xf1
lsls r5, r5, #2
adds r3, r1, r5
movs r5, #0
movs r0, #0
strh r0, [r3]
ldr r6, _08033944 @ =0x000003C6
adds r1, r1, r6
movs r0, #0x78
strh r0, [r1]
ldr r0, _08033948 @ =0x000003A6
adds r2, r2, r0
adds r2, r2, r4
strb r5, [r2]
bl Random
b _08033FD8
.align 2, 0
_08033940: .4byte gUnknown_020314E0
_08033944: .4byte 0x000003C6
_08033948: .4byte 0x000003A6
_0803394C:
ldr r1, _08033980 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r3, [sp, #4]
asrs r4, r3, #0x10
lsls r1, r4, #1
movs r5, #0xec
lsls r5, r5, #2
adds r0, r2, r5
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #0x13
bhi _08033988
adds r0, #1
strh r0, [r1]
ldr r6, _08033984 @ =0x000003A6
adds r2, r2, r6
adds r2, r2, r4
ldrh r0, [r1]
movs r1, #3
ands r0, r1
lsrs r0, r0, #1
strb r0, [r2]
movs r0, #4
str r0, [sp]
movs r7, #4
b _08033FD8
.align 2, 0
_08033980: .4byte gUnknown_020314E0
_08033984: .4byte 0x000003A6
_08033988:
ldr r0, _080339B0 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _080339BC
movs r3, #0xe8
lsls r3, r3, #2
adds r1, r2, r3
adds r1, r1, r4
movs r2, #0
movs r0, #2
strb r0, [r1]
ldr r5, _080339B4 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _080339B8 @ =0x000003A3
adds r0, r0, r6
adds r0, r0, r4
strb r2, [r0]
b _080339D6
.align 2, 0
_080339B0: .4byte gMain
_080339B4: .4byte gUnknown_020314E0
_080339B8: .4byte 0x000003A3
_080339BC:
movs r1, #0xe8
lsls r1, r1, #2
adds r0, r2, r1
adds r0, r0, r4
movs r1, #3
strb r1, [r0]
ldr r2, _08033A0C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _08033A10 @ =0x000003A3
adds r0, r0, r3
adds r0, r0, r4
movs r1, #7
strb r1, [r0]
_080339D6:
ldr r4, _08033A0C @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, [sp, #4]
asrs r3, r5, #0x10
lsls r1, r3, #1
movs r6, #0xec
lsls r6, r6, #2
adds r0, r2, r6
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
ldr r0, _08033A14 @ =0x000003A6
adds r2, r2, r0
adds r2, r2, r3
movs r1, #1
strb r1, [r2]
ldr r0, [r4]
ldr r2, _08033A18 @ =0x000003A9
adds r0, r0, r2
adds r0, r0, r3
strb r1, [r0]
ldr r2, _08033A1C @ =gUnknown_086AE5EC
ldr r0, [r4]
ldr r4, _08033A10 @ =0x000003A3
adds r0, r0, r4
adds r0, r0, r3
b _08033FC2
.align 2, 0
_08033A0C: .4byte gUnknown_020314E0
_08033A10: .4byte 0x000003A3
_08033A14: .4byte 0x000003A6
_08033A18: .4byte 0x000003A9
_08033A1C: .4byte gUnknown_086AE5EC
_08033A20:
ldr r6, _08033AA4 @ =gUnknown_020314E0
ldr r5, [r6]
ldr r0, [sp, #4]
asrs r4, r0, #0x10
lsls r7, r4, #1
ldr r2, _08033AA8 @ =0x000003B6
adds r1, r5, r2
adds r1, r1, r7
ldrh r0, [r1]
adds r0, #1
movs r3, #0
mov sb, r3
movs r6, #0
mov r8, r6
strh r0, [r1]
lsls r0, r4, #2
adds r0, r5, r0
movs r1, #0xf1
lsls r1, r1, #2
adds r2, r0, r1
ldrh r3, [r2]
movs r6, #0
ldrsh r1, [r2, r6]
ldr r0, _08033AAC @ =0xFFFFFCE0
cmp r1, r0
ble _08033AB8
subs r0, r3, #3
strh r0, [r2]
ldr r2, _08033AB0 @ =gUnknown_086AE5EC
ldr r1, _08033AB4 @ =0x000003A3
adds r0, r5, r1
adds r6, r0, r4
movs r1, #0
ldrsb r1, [r6, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r2, #2
adds r0, r0, r1
movs r3, #0
ldrsh r1, [r0, r3]
movs r3, #0xec
lsls r3, r3, #2
adds r0, r5, r3
adds r5, r0, r7
ldrh r0, [r5]
adds r3, r2, #0
cmp r1, r0
bgt _08033AE2
mov r0, r8
strh r0, [r5]
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
ldr r1, _08033AA4 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08033AB4 @ =0x000003A3
adds r0, r0, r2
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #3
ble _08033B20
mov r4, sb
strb r4, [r1]
b _08033B20
.align 2, 0
_08033AA4: .4byte gUnknown_020314E0
_08033AA8: .4byte 0x000003B6
_08033AAC: .4byte 0xFFFFFCE0
_08033AB0: .4byte gUnknown_086AE5EC
_08033AB4: .4byte 0x000003A3
_08033AB8:
ldr r2, _08033AE8 @ =gUnknown_086AE5EC
ldr r6, _08033AEC @ =0x000003A3
adds r0, r5, r6
adds r6, r0, r4
movs r1, #0
ldrsb r1, [r6, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r2, #2
adds r0, r0, r1
movs r3, #0
ldrsh r1, [r0, r3]
movs r3, #0xec
lsls r3, r3, #2
adds r0, r5, r3
adds r5, r0, r7
ldrh r0, [r5]
adds r3, r2, #0
cmp r1, r0
ble _08033AF0
_08033AE2:
adds r0, #1
strh r0, [r5]
b _08033B20
.align 2, 0
_08033AE8: .4byte gUnknown_086AE5EC
_08033AEC: .4byte 0x000003A3
_08033AF0:
mov r0, r8
strh r0, [r5]
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
ldr r1, _08033B44 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08033B48 @ =0x000003A3
adds r0, r0, r2
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
ble _08033B20
movs r0, #7
strb r0, [r1]
ldr r5, _08033B44 @ =gUnknown_020314E0
ldr r0, [r5]
movs r6, #0xe8
lsls r6, r6, #2
adds r0, r0, r6
adds r0, r0, r4
movs r1, #3
strb r1, [r0]
_08033B20:
ldr r0, _08033B44 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, [sp, #4]
asrs r1, r2, #0x10
ldr r4, _08033B48 @ =0x000003A3
adds r0, r0, r4
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r1, [r1]
str r1, [sp]
adds r1, r3, #4
adds r0, r0, r1
b _08033FD6
.align 2, 0
_08033B44: .4byte gUnknown_020314E0
_08033B48: .4byte 0x000003A3
_08033B4C:
ldr r5, _08033BD4 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, [sp, #4]
asrs r7, r6, #0x10
lsls r0, r7, #1
mov r8, r0
ldr r2, _08033BD8 @ =0x000003B6
adds r1, r4, r2
add r1, r8
ldrh r0, [r1]
adds r0, #1
movs r3, #0
mov sl, r3
movs r5, #0
mov sb, r5
strh r0, [r1]
lsls r0, r7, #2
adds r5, r4, r0
movs r6, #0xf1
lsls r6, r6, #2
adds r2, r5, r6
ldrh r3, [r2]
movs r0, #0
ldrsh r1, [r2, r0]
ldr r0, _08033BDC @ =0x0000031F
cmp r1, r0
bgt _08033BE8
adds r0, r3, #3
strh r0, [r2]
ldr r2, _08033BE0 @ =gUnknown_086AE5EC
ldr r3, _08033BE4 @ =0x000003A3
adds r0, r4, r3
adds r6, r0, r7
movs r1, #0
ldrsb r1, [r6, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r2, #2
adds r0, r0, r1
movs r5, #0
ldrsh r1, [r0, r5]
adds r3, #0xd
adds r0, r4, r3
mov r4, r8
adds r5, r0, r4
ldrh r0, [r5]
adds r3, r2, #0
cmp r1, r0
bgt _08033C12
mov r0, sb
strh r0, [r5]
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
ldr r1, _08033BD4 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08033BE4 @ =0x000003A3
adds r0, r0, r2
adds r1, r0, r7
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xa
ble _08033C50
movs r0, #7
strb r0, [r1]
b _08033C50
.align 2, 0
_08033BD4: .4byte gUnknown_020314E0
_08033BD8: .4byte 0x000003B6
_08033BDC: .4byte 0x0000031F
_08033BE0: .4byte gUnknown_086AE5EC
_08033BE4: .4byte 0x000003A3
_08033BE8:
ldr r2, _08033C18 @ =gUnknown_086AE5EC
ldr r3, _08033C1C @ =0x000003A3
adds r0, r4, r3
adds r6, r0, r7
movs r1, #0
ldrsb r1, [r6, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r2, #2
adds r0, r0, r1
movs r5, #0
ldrsh r1, [r0, r5]
adds r3, #0xd
adds r0, r4, r3
mov r4, r8
adds r5, r0, r4
ldrh r0, [r5]
adds r3, r2, #0
cmp r1, r0
ble _08033C20
_08033C12:
adds r0, #1
strh r0, [r5]
b _08033C50
.align 2, 0
_08033C18: .4byte gUnknown_086AE5EC
_08033C1C: .4byte 0x000003A3
_08033C20:
mov r0, sb
strh r0, [r5]
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
ldr r1, _08033C74 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08033C78 @ =0x000003A3
adds r0, r0, r2
adds r1, r0, r7
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xd
ble _08033C50
mov r4, sl
strb r4, [r1]
ldr r5, _08033C74 @ =gUnknown_020314E0
ldr r0, [r5]
movs r6, #0xe8
lsls r6, r6, #2
adds r0, r0, r6
adds r0, r0, r7
movs r1, #2
strb r1, [r0]
_08033C50:
ldr r0, _08033C74 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, [sp, #4]
asrs r1, r2, #0x10
ldr r4, _08033C78 @ =0x000003A3
adds r0, r0, r4
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r1, [r1]
str r1, [sp]
adds r1, r3, #4
adds r0, r0, r1
b _08033FD6
.align 2, 0
_08033C74: .4byte gUnknown_020314E0
_08033C78: .4byte 0x000003A3
_08033C7C:
ldr r3, _08033D0C @ =gUnknown_086AE5EC
ldr r6, _08033D10 @ =gUnknown_020314E0
ldr r2, [r6]
ldr r5, [sp, #4]
asrs r4, r5, #0x10
ldr r0, _08033D14 @ =0x000003A3
adds r2, r2, r0
adds r2, r2, r4
movs r1, #0
ldrsb r1, [r2, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r1, [r1]
str r1, [sp]
adds r3, #4
adds r0, r0, r3
ldrh r7, [r0]
movs r3, #0
movs r0, #0xe
strb r0, [r2]
ldr r5, [r6]
lsls r1, r4, #1
movs r2, #0xec
lsls r2, r2, #2
adds r0, r5, r2
adds r0, r0, r1
movs r2, #0
strh r3, [r0]
movs r3, #0xe8
lsls r3, r3, #2
adds r0, r5, r3
adds r0, r0, r4
movs r1, #5
strb r1, [r0]
ldr r0, [r6]
movs r5, #0xeb
lsls r5, r5, #2
adds r0, r0, r5
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
ldr r1, _08033D18 @ =0x000003A9
adds r0, r0, r1
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
ldr r2, _08033D1C @ =0x00000396
adds r1, r0, r2
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08033CEE
subs r0, r2, #1
strb r0, [r1]
_08033CEE:
ldr r1, [r6]
ldr r0, _08033D20 @ =0x000186A0
str r0, [r1, #0x3c]
ldr r3, _08033D24 @ =0x00000385
adds r1, r1, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0xf2
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
b _08033FD8
.align 2, 0
_08033D0C: .4byte gUnknown_086AE5EC
_08033D10: .4byte gUnknown_020314E0
_08033D14: .4byte 0x000003A3
_08033D18: .4byte 0x000003A9
_08033D1C: .4byte 0x00000396
_08033D20: .4byte 0x000186A0
_08033D24: .4byte 0x00000385
_08033D28:
ldr r3, _08033D60 @ =gUnknown_086AE5EC
ldr r4, _08033D64 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, [sp, #4]
asrs r4, r5, #0x10
ldr r6, _08033D68 @ =0x000003A3
adds r0, r2, r6
adds r5, r0, r4
movs r1, #0
ldrsb r1, [r5, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r3, #2
adds r0, r0, r1
movs r6, #0
ldrsh r1, [r0, r6]
lsls r0, r4, #1
movs r6, #0xec
lsls r6, r6, #2
adds r2, r2, r6
adds r2, r2, r0
ldrh r0, [r2]
cmp r1, r0
ble _08033D6C
adds r0, #1
strh r0, [r2]
b _08033DA8
.align 2, 0
_08033D60: .4byte gUnknown_086AE5EC
_08033D64: .4byte gUnknown_020314E0
_08033D68: .4byte 0x000003A3
_08033D6C:
movs r6, #0
movs r0, #0
strh r0, [r2]
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
ldr r1, _08033DEC @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08033DF0 @ =0x000003A3
adds r0, r0, r2
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xf
ble _08033DA8
movs r0, #0xf
strb r0, [r1]
ldr r5, _08033DEC @ =gUnknown_020314E0
ldr r0, [r5]
movs r1, #0xe8
lsls r1, r1, #2
adds r0, r0, r1
adds r0, r0, r4
movs r1, #9
strb r1, [r0]
ldr r0, [r5]
adds r2, #3
adds r0, r0, r2
adds r0, r0, r4
strb r6, [r0]
_08033DA8:
ldr r6, _08033DEC @ =gUnknown_020314E0
ldr r1, [r6]
ldr r5, [sp, #4]
asrs r4, r5, #0x10
ldr r5, _08033DF0 @ =0x000003A3
adds r0, r1, r5
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xf
bne _08033DCE
movs r0, #0xeb
lsls r0, r0, #2
adds r1, r1, r0
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08033DCE:
ldr r0, [r6]
adds r0, r0, r5
adds r0, r0, r4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r1, [r1]
str r1, [sp]
adds r1, r3, #4
adds r0, r0, r1
b _08033FD6
.align 2, 0
_08033DEC: .4byte gUnknown_020314E0
_08033DF0: .4byte 0x000003A3
_08033DF4:
ldr r5, _08033E14 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r1, [sp, #4]
asrs r3, r1, #0x10
lsls r1, r3, #1
movs r2, #0xec
lsls r2, r2, #2
adds r0, r4, r2
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #5
bhi _08033E18
adds r0, #1
strh r0, [r1]
movs r3, #3
b _08033E8E
.align 2, 0
_08033E14: .4byte gUnknown_020314E0
_08033E18:
movs r2, #0
movs r0, #0
strh r0, [r1]
ldr r6, _08033E64 @ =0x000003A3
adds r0, r4, r6
adds r0, r0, r3
movs r1, #0x12
strb r1, [r0]
ldr r0, [r5]
movs r1, #0xe8
lsls r1, r1, #2
adds r0, r0, r1
adds r0, r0, r3
movs r1, #8
strb r1, [r0]
ldr r0, [r5]
ldr r4, _08033E68 @ =0x000003A9
adds r0, r0, r4
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r5]
ldr r5, _08033E6C @ =0x00000396
adds r1, r0, r5
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08033E54
subs r0, r2, #1
strb r0, [r1]
_08033E54:
movs r6, #3
str r6, [sp]
movs r7, #3
movs r0, #0xf3
bl m4aSongNumStart
b _08033FD8
.align 2, 0
_08033E64: .4byte 0x000003A3
_08033E68: .4byte 0x000003A9
_08033E6C: .4byte 0x00000396
_08033E70:
ldr r5, _08033E94 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r0, [sp, #4]
asrs r3, r0, #0x10
lsls r1, r3, #1
movs r2, #0xec
lsls r2, r2, #2
adds r0, r4, r2
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #5
bhi _08033E98
adds r0, #1
strh r0, [r1]
movs r3, #9
_08033E8E:
str r3, [sp]
movs r7, #3
b _08033FD8
.align 2, 0
_08033E94: .4byte gUnknown_020314E0
_08033E98:
movs r2, #0
movs r0, #0
strh r0, [r1]
ldr r6, _08033EE4 @ =0x000003A3
adds r0, r4, r6
adds r0, r0, r3
movs r1, #0x12
strb r1, [r0]
ldr r0, [r5]
movs r1, #0xe8
lsls r1, r1, #2
adds r0, r0, r1
adds r0, r0, r3
movs r1, #8
strb r1, [r0]
ldr r0, [r5]
ldr r4, _08033EE8 @ =0x000003A9
adds r0, r0, r4
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r5]
ldr r5, _08033EEC @ =0x00000396
adds r1, r0, r5
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08033ED4
subs r0, r2, #1
strb r0, [r1]
_08033ED4:
movs r0, #0xf3
bl m4aSongNumStart
movs r6, #9
str r6, [sp]
movs r7, #3
b _08033FD8
.align 2, 0
_08033EE4: .4byte 0x000003A3
_08033EE8: .4byte 0x000003A9
_08033EEC: .4byte 0x00000396
_08033EF0:
ldr r3, _08033F28 @ =gUnknown_086AE5EC
ldr r0, _08033F2C @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, [sp, #4]
asrs r4, r1, #0x10
ldr r5, _08033F30 @ =0x000003A3
adds r0, r2, r5
adds r5, r0, r4
movs r1, #0
ldrsb r1, [r5, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r3, #2
adds r0, r0, r1
movs r6, #0
ldrsh r1, [r0, r6]
lsls r0, r4, #1
movs r6, #0xec
lsls r6, r6, #2
adds r2, r2, r6
adds r2, r2, r0
ldrh r0, [r2]
cmp r1, r0
ble _08033F34
adds r0, #1
strh r0, [r2]
b _08033F64
.align 2, 0
_08033F28: .4byte gUnknown_086AE5EC
_08033F2C: .4byte gUnknown_020314E0
_08033F30: .4byte 0x000003A3
_08033F34:
movs r0, #0
strh r0, [r2]
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
ldr r1, _08033F88 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08033F8C @ =0x000003A3
adds r0, r0, r2
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x19
ble _08033F64
movs r0, #0x19
strb r0, [r1]
ldr r5, _08033F88 @ =gUnknown_020314E0
ldr r0, [r5]
movs r6, #0xe8
lsls r6, r6, #2
adds r0, r0, r6
adds r0, r0, r4
movs r1, #9
strb r1, [r0]
_08033F64:
ldr r0, _08033F88 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, [sp, #4]
asrs r1, r2, #0x10
ldr r4, _08033F8C @ =0x000003A3
adds r0, r0, r4
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r1, [r1]
str r1, [sp]
adds r1, r3, #4
adds r0, r0, r1
b _08033FD6
.align 2, 0
_08033F88: .4byte gUnknown_020314E0
_08033F8C: .4byte 0x000003A3
_08033F90:
ldr r3, _0803401C @ =gUnknown_020314E0
ldr r0, [r3]
ldr r5, [sp, #4]
asrs r4, r5, #0x10
ldr r6, _08034020 @ =0x000003A6
adds r0, r0, r6
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r0, [r3]
ldr r2, _08034024 @ =0x000003A9
adds r0, r0, r2
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r3]
movs r5, #0xe8
lsls r5, r5, #2
adds r0, r0, r5
adds r0, r0, r4
strb r1, [r0]
ldr r2, _08034028 @ =gUnknown_086AE5EC
ldr r0, [r3]
subs r6, #3
adds r0, r0, r6
adds r0, r0, r4
_08033FC2:
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r2
ldrh r1, [r1]
str r1, [sp]
adds r2, #4
adds r0, r0, r2
_08033FD6:
ldrh r7, [r0]
_08033FD8:
ldr r2, _0803401C @ =gUnknown_020314E0
ldr r3, [r2]
ldr r0, [sp, #4]
asrs r6, r0, #0x10
lsls r1, r6, #1
ldr r4, _0803402C @ =0x000003B6
adds r0, r3, r4
adds r5, r0, r1
adds r4, #6
adds r0, r3, r4
adds r0, r0, r1
ldrh r1, [r5]
ldrh r0, [r0]
cmp r1, r0
bls _0803404C
ldr r1, _08034030 @ =0x00000385
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x12
bgt _0803404C
movs r0, #0
strh r0, [r5]
movs r2, #0xe8
lsls r2, r2, #2
adds r0, r3, r2
adds r1, r0, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bne _08034034
movs r0, #6
b _08034036
.align 2, 0
_0803401C: .4byte gUnknown_020314E0
_08034020: .4byte 0x000003A6
_08034024: .4byte 0x000003A9
_08034028: .4byte gUnknown_086AE5EC
_0803402C: .4byte 0x000003B6
_08034030: .4byte 0x00000385
_08034034:
movs r0, #7
_08034036:
strb r0, [r1]
ldr r3, _080340D8 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, [sp, #4]
asrs r1, r4, #0xf
movs r5, #0xec
lsls r5, r5, #2
adds r0, r0, r5
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
_0803404C:
ldr r6, _080340D8 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r1, [sp, #4]
asrs r5, r1, #0x10
ldr r2, _080340DC @ =0x00000397
adds r1, r0, r2
adds r1, r1, r5
adds r2, #3
adds r0, r0, r2
adds r0, r0, r5
ldrb r0, [r0]
strb r0, [r1]
ldr r0, [r6]
adds r0, r0, r2
adds r0, r0, r5
strb r7, [r0]
ldr r0, [r6]
ldr r3, _080340E0 @ =0x0000039D
adds r0, r0, r3
adds r0, r0, r5
mov r4, sp
ldrb r4, [r4]
strb r4, [r0]
ldr r4, [r6]
lsls r0, r5, #2
adds r4, r4, r0
movs r6, #0xf1
lsls r6, r6, #2
adds r0, r4, r6
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xd0
movs r2, #0xf4
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
ldr r3, _080340E4 @ =0x000003C6
adds r0, r4, r3
movs r6, #0
ldrsh r0, [r0, r6]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x42
ldr r1, _080340E8 @ =0x000003D2
adds r4, r4, r1
strh r0, [r4]
adds r5, #1
lsls r5, r5, #0x10
lsrs r2, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #2
bgt _080340C8
bl _08033752
_080340C8:
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
_080340D8: .4byte gUnknown_020314E0
_080340DC: .4byte 0x00000397
_080340E0: .4byte 0x0000039D
_080340E4: .4byte 0x000003C6
_080340E8: .4byte 0x000003D2
thumb_func_start sub_340EC
sub_340EC: @ 0x080340EC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
movs r4, #0
_080340FA:
ldr r0, _08034198 @ =gUnknown_020314E0
ldr r5, [r0]
lsls r4, r4, #0x10
asrs r3, r4, #0x10
ldr r1, _0803419C @ =0x00000397
adds r0, r5, r1
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #0x10
ldr r2, _080341A0 @ =0x040000D4
lsrs r7, r1, #0x10
mov r8, r7
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _080341A4 @ =gUnknown_08510E4C
adds r0, r0, r1
str r0, [r2]
lsls r7, r3, #2
adds r0, r7, r3
lsls r0, r0, #7
ldr r1, _080341A8 @ =0x06010920
adds r0, r0, r1
str r0, [r2, #4]
ldr r0, _080341AC @ =0x80000140
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r2, _080341B0 @ =0x0000039D
adds r0, r5, r2
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
movs r0, #0xb8
adds r1, r3, #0
muls r1, r0, r1
ldr r0, _080341B4 @ =gUnknown_0200B8C0
adds r6, r1, r0
ldr r1, _080341B8 @ =0x000003A6
adds r0, r5, r1
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sl, r4
cmp r0, #0
beq _080341C0
adds r4, r5, r7
adds r2, #0x27
adds r0, r4, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x6c
adds r1, r5, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #2]
ldr r7, _080341BC @ =0x000003C6
adds r4, r4, r7
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x1c
adds r1, r5, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
b _080341C6
.align 2, 0
_08034198: .4byte gUnknown_020314E0
_0803419C: .4byte 0x00000397
_080341A0: .4byte 0x040000D4
_080341A4: .4byte gUnknown_08510E4C
_080341A8: .4byte 0x06010920
_080341AC: .4byte 0x80000140
_080341B0: .4byte 0x0000039D
_080341B4: .4byte gUnknown_0200B8C0
_080341B8: .4byte 0x000003A6
_080341BC: .4byte 0x000003C6
_080341C0:
movs r0, #0xf0
strh r0, [r6, #2]
movs r0, #0xb4
_080341C6:
strh r0, [r6, #4]
mov r2, r8
lsls r0, r2, #0x10
asrs r5, r0, #0x10
cmp r5, #6
beq _080341D4
b _08034368
_080341D4:
ldr r3, _0803420C @ =gUnknown_020314E0
ldr r0, [r3]
mov r7, sl
asrs r1, r7, #0x10
movs r2, #0xeb
lsls r2, r2, #2
adds r0, r0, r2
adds r1, r0, r1
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
bgt _08034210
adds r4, r0, #0
lsls r0, r4, #7
movs r1, #6
bl __divsi3
movs r3, #0x80
lsls r3, r3, #1
adds r0, r0, r3
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
subs r4, r5, r4
lsls r4, r4, #7
adds r0, r4, #0
movs r1, #6
b _08034238
.align 2, 0
_0803420C: .4byte gUnknown_020314E0
_08034210:
movs r4, #0
ldrsb r4, [r1, r4]
movs r1, #0x18
subs r1, r1, r4
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
subs r0, r0, r1
lsls r0, r0, #4
movs r1, #0x12
bl __divsi3
adds r0, #0x10
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
subs r4, #6
lsls r0, r4, #3
subs r0, r0, r4
lsls r0, r0, #6
movs r1, #0x12
_08034238:
bl __divsi3
adds r0, #0x80
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r0, r7, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #0x10
asrs r1, r1, #0x10
mov r5, sl
asrs r4, r5, #0x10
adds r5, r4, #2
lsls r2, r5, #0x10
asrs r2, r2, #0x10
bl SetMatrixScale
ldrh r0, [r6, #2]
subs r0, #0x10
strh r0, [r6, #2]
ldrh r0, [r6, #4]
subs r0, #0x10
strh r0, [r6, #4]
movs r2, #0
mov r7, sb
lsls r0, r7, #0x10
ldr r7, _08034350 @ =gOamBuffer
asrs r1, r0, #0x10
mov ip, r4
mov sb, r5
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r8, r0
_0803427A:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
adds r2, r0, r7
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #1
ldr r1, _08034354 @ =gUnknown_086BA0A0
adds r0, r0, r1
mov r3, r8
adds r1, r3, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
str r3, [sp, #0xc]
ldrh r2, [r3, #2]
lsls r0, r2, #0x17
lsrs r0, r0, #0x17
str r0, [sp, #8]
movs r1, #2
ldrsh r0, [r6, r1]
ldr r3, [sp, #8]
adds r0, r3, r0
ldr r1, _08034358 @ =0x000001FF
ands r0, r1
ldr r3, _0803435C @ =0xFFFFFE00
ands r2, r3
orrs r2, r0
ldr r0, [sp, #0xc]
strh r2, [r0, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
str r3, [sp, #0xc]
ldrh r0, [r3, #4]
mov r3, sp
strh r0, [r3, #0x10]
adds r2, r0, #0
lsls r1, r2, #0x16
lsrs r1, r1, #0x16
strh r1, [r3]
mov r3, ip
lsls r0, r3, #2
add r0, ip
lsls r0, r0, #2
str r0, [sp, #8]
mov r0, sp
ldrh r2, [r0]
ldr r0, [sp, #8]
adds r1, r2, r0
ldr r3, _08034360 @ =0x000003FF
ands r1, r3
mov r0, sp
ldrh r2, [r0, #0x10]
ldr r0, _08034364 @ =0xFFFFFC00
ands r2, r0
orrs r2, r1
ldr r1, [sp, #0xc]
strh r2, [r1, #4]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r7
ldrb r1, [r0, #1]
movs r2, #3
orrs r1, r2
strb r1, [r0, #1]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #7
mov r1, sb
ands r1, r0
lsls r1, r1, #1
ldrb r0, [r3, #3]
movs r5, #0xf
rsbs r5, r5, #0
adds r2, r5, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #3]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _0803427A
b _08034416
.align 2, 0
_08034350: .4byte gOamBuffer
_08034354: .4byte gUnknown_086BA0A0
_08034358: .4byte 0x000001FF
_0803435C: .4byte 0xFFFFFE00
_08034360: .4byte 0x000003FF
_08034364: .4byte 0xFFFFFC00
_08034368:
movs r2, #0
mov r7, sb
lsls r0, r7, #0x10
ldr r1, _08034438 @ =gUnknown_086BA0A0
mov sb, r1
ldr r3, _0803443C @ =gOamBuffer
mov ip, r3
asrs r1, r0, #0x10
mov r5, sl
asrs r5, r5, #0x10
str r5, [sp, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r8, r0
_08034386:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r7, ip
adds r2, r0, r7
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #1
add r0, sb
mov r3, r8
adds r1, r3, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r3, [r5]
lsls r3, r3, #3
add r3, ip
ldrh r2, [r3, #2]
lsls r0, r2, #0x17
lsrs r0, r0, #0x17
movs r7, #2
ldrsh r1, [r6, r7]
adds r0, r0, r1
ldr r7, _08034440 @ =0x000001FF
adds r1, r7, #0
ands r0, r1
ldr r7, _08034444 @ =0xFFFFFE00
adds r1, r7, #0
ands r2, r1
orrs r2, r0
strh r2, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, ip
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r3, [r5]
lsls r3, r3, #3
add r3, ip
ldrh r2, [r3, #4]
lsls r1, r2, #0x16
lsrs r1, r1, #0x16
ldr r5, [sp, #4]
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #2
adds r1, r1, r0
ldr r7, _08034448 @ =0x000003FF
adds r0, r7, #0
ands r1, r0
ldr r5, _0803444C @ =0xFFFFFC00
adds r0, r5, #0
ands r2, r0
orrs r2, r1
strh r2, [r3, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08034386
_08034416:
movs r0, #0x80
lsls r0, r0, #9
add r0, sl
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bgt _08034426
b _080340FA
_08034426:
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08034438: .4byte gUnknown_086BA0A0
_0803443C: .4byte gOamBuffer
_08034440: .4byte 0x000001FF
_08034444: .4byte 0xFFFFFE00
_08034448: .4byte 0x000003FF
_0803444C: .4byte 0xFFFFFC00
thumb_func_start sub_34450
sub_34450: @ 0x08034450
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r0, #0
mov sb, r0
ldr r1, _08034488 @ =gUnknown_0200BDC8
str r1, [sp]
ldr r1, _0803448C @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sl, r1
cmp r0, #8
bls _0803447E
bl _08034D7E
_0803447E:
lsls r0, r0, #2
ldr r1, _08034490 @ =_08034494
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08034488: .4byte gUnknown_0200BDC8
_0803448C: .4byte gUnknown_020314E0
_08034490: .4byte _08034494
_08034494: @ jump table
.4byte _080344B8 @ case 0
.4byte _08034510 @ case 1
.4byte _080345F0 @ case 2
.4byte _080346D8 @ case 3
.4byte _080348CA @ case 4
.4byte _08034910 @ case 5
.4byte _08034998 @ case 6
.4byte _08034A7C @ case 7
.4byte _08034CD0 @ case 8
_080344B8:
ldr r3, _08034500 @ =gUnknown_020314E0
ldr r1, [r3]
movs r4, #0xfa
lsls r4, r4, #2
adds r2, r1, r4
movs r0, #0xdc
lsls r0, r0, #2
strh r0, [r2]
ldr r5, _08034504 @ =0x000003EA
adds r2, r1, r5
movs r0, #0x96
lsls r0, r0, #1
strh r0, [r2]
movs r6, #0xf7
lsls r6, r6, #2
adds r1, r1, r6
movs r4, #1
strb r4, [r1]
ldr r1, [r3]
ldr r7, _08034508 @ =0x000003E6
adds r2, r1, r7
movs r0, #0xb8
strh r0, [r2]
ldr r0, _0803450C @ =0x000003E2
adds r2, r1, r0
movs r0, #0x15
strh r0, [r2]
movs r2, #0
mov sb, r2
movs r3, #0xa5
lsls r3, r3, #2
adds r1, r1, r3
strb r4, [r1]
bl _08034D7E
.align 2, 0
_08034500: .4byte gUnknown_020314E0
_08034504: .4byte 0x000003EA
_08034508: .4byte 0x000003E6
_0803450C: .4byte 0x000003E2
_08034510:
ldr r0, _0803453C @ =gUnknown_086AE68E
mov r5, sl
ldr r4, [r5]
ldr r6, _08034540 @ =0x000003E2
adds r3, r4, r6
movs r7, #0
ldrsh r1, [r3, r7]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r2, #0
ldrsh r0, [r1, r2]
movs r5, #0xf9
lsls r5, r5, #2
adds r1, r4, r5
ldrh r2, [r1]
cmp r0, r2
ble _08034544
adds r0, r2, #1
strh r0, [r1]
b _080345DC
.align 2, 0
_0803453C: .4byte gUnknown_086AE68E
_08034540: .4byte 0x000003E2
_08034544:
movs r0, #0
strh r0, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1c
ble _08034582
movs r0, #0x15
strh r0, [r3]
movs r6, #0xf8
lsls r6, r6, #2
adds r1, r4, r6
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _08034570
adds r0, r2, #1
strb r0, [r1]
b _08034582
_08034570:
movs r0, #0
strb r0, [r1]
mov r7, sl
ldr r0, [r7]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
_08034582:
ldr r4, _080345E4 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r5, _080345E8 @ =0x000003E2
adds r0, r1, r5
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0x17
bne _080345B2
ldr r3, _080345EC @ =0x00000129
adds r1, r1, r3
movs r0, #0
strb r0, [r1]
ldr r0, [r4]
movs r6, #0x94
lsls r6, r6, #1
adds r0, r0, r6
movs r1, #1
strb r1, [r0]
movs r0, #0xf4
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_080345B2:
ldr r1, [r4]
adds r0, r1, r5
movs r7, #0
ldrsh r0, [r0, r7]
cmp r0, #0x1b
bne _080345DC
ldr r2, _080345EC @ =0x00000129
adds r0, r1, r2
movs r1, #1
strb r1, [r0]
ldr r0, [r4]
movs r3, #0x94
lsls r3, r3, #1
adds r0, r0, r3
strb r1, [r0]
movs r0, #0xf4
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_080345DC:
movs r4, #0
mov sb, r4
b _08034D7E
.align 2, 0
_080345E4: .4byte gUnknown_020314E0
_080345E8: .4byte 0x000003E2
_080345EC: .4byte 0x00000129
_080345F0:
mov r5, sl
ldr r4, [r5]
movs r6, #0xf9
lsls r6, r6, #2
adds r3, r4, r6
ldrh r0, [r3]
cmp r0, #0xff
bhi _08034670
ldr r2, _08034660 @ =gUnknown_08137D40
adds r1, r0, #0
movs r0, #0x3f
ands r0, r1
lsrs r0, r0, #4
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
mov sb, r0
adds r1, #1
movs r5, #0
strh r1, [r3]
lsls r1, r1, #0x10
movs r0, #0x80
lsls r0, r0, #0x11
cmp r1, r0
bne _08034670
movs r7, #0xf7
lsls r7, r7, #2
adds r1, r4, r7
movs r0, #3
strb r0, [r1]
mov r0, sl
ldr r1, [r0]
adds r0, r1, r6
strh r5, [r0]
movs r2, #0xf8
lsls r2, r2, #2
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #3
ble _08034646
movs r0, #0
strb r0, [r1]
_08034646:
mov r3, sl
ldr r1, [r3]
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _08034668
ldr r4, _08034664 @ =0x000003E2
adds r0, r1, r4
strh r5, [r0]
b _08034670
.align 2, 0
_08034660: .4byte gUnknown_08137D40
_08034664: .4byte 0x000003E2
_08034668:
ldr r5, _0803468C @ =0x000003E2
adds r1, r1, r5
movs r0, #7
strh r0, [r1]
_08034670:
mov r6, sl
ldr r3, [r6]
ldr r7, _08034690 @ =0x000003E6
adds r1, r3, r7
ldrh r0, [r1]
movs r4, #0
ldrsh r2, [r1, r4]
cmp r2, #0
ble _080346BC
cmp r2, #0x40
ble _08034694
subs r0, #1
b _08034696
.align 2, 0
_0803468C: .4byte 0x000003E2
_08034690: .4byte 0x000003E6
_08034694:
subs r0, #2
_08034696:
strh r0, [r1]
ldr r0, _080346B4 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r5, _080346B8 @ =0x000003E6
adds r0, r0, r5
movs r6, #0
ldrsh r0, [r0, r6]
cmp r0, #0x9a
beq _080346AA
b _08034D7E
_080346AA:
movs r0, #0xf5
bl m4aSongNumStart
b _08034D7E
.align 2, 0
_080346B4: .4byte gUnknown_020314E0
_080346B8: .4byte 0x000003E6
_080346BC:
ldr r7, _080346D4 @ =0x00000387
adds r0, r3, r7
movs r1, #2
strb r1, [r0]
mov r2, sl
ldr r0, [r2]
movs r3, #0xa5
lsls r3, r3, #2
adds r0, r0, r3
strb r1, [r0]
b _08034D7E
.align 2, 0
_080346D4: .4byte 0x00000387
_080346D8:
ldr r0, _08034704 @ =gUnknown_086AE68E
mov r4, sl
ldr r3, [r4]
ldr r4, _08034708 @ =0x000003E2
adds r6, r3, r4
movs r5, #0
ldrsh r1, [r6, r5]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r7, #0
ldrsh r0, [r1, r7]
movs r5, #0xf9
lsls r5, r5, #2
adds r1, r3, r5
ldrh r2, [r1]
cmp r0, r2
ble _0803470C
adds r0, r2, #1
strh r0, [r1]
b _080347F0
.align 2, 0
_08034704: .4byte gUnknown_086AE68E
_08034708: .4byte 0x000003E2
_0803470C:
movs r7, #0
strh r7, [r1]
movs r2, #0xf8
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _08034758
ldrh r0, [r6]
adds r0, #1
strh r0, [r6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #7
ble _08034796
strh r7, [r6]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
mov r0, sl
ldr r1, [r0]
adds r0, r1, r2
ldrb r0, [r0]
movs r2, #1
ands r2, r0
cmp r2, #0
bne _08034796
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r1, r3
movs r0, #2
strb r0, [r1]
mov r4, sl
ldr r0, [r4]
adds r0, r0, r5
strh r2, [r0]
b _08034796
_08034758:
ldrh r0, [r6]
subs r0, #1
strh r0, [r6]
lsls r0, r0, #0x10
cmp r0, #0
bge _08034796
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
mov r6, sl
ldr r1, [r6]
adds r0, r1, r2
ldrb r0, [r0]
movs r2, #1
ands r2, r0
cmp r2, #0
bne _08034790
movs r7, #0xf7
lsls r7, r7, #2
adds r1, r1, r7
movs r0, #2
strb r0, [r1]
ldr r0, [r6]
adds r1, r0, r5
strh r2, [r1]
adds r0, r0, r4
strh r2, [r0]
b _08034796
_08034790:
adds r1, r1, r4
movs r0, #7
strh r0, [r1]
_08034796:
ldr r4, _08034840 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r5, _08034844 @ =0x000003E2
adds r0, r1, r5
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #2
bne _080347C6
ldr r3, _08034848 @ =0x00000129
adds r1, r1, r3
movs r0, #0
strb r0, [r1]
ldr r0, [r4]
movs r6, #0x94
lsls r6, r6, #1
adds r0, r0, r6
movs r1, #1
strb r1, [r0]
movs r0, #0xf4
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_080347C6:
ldr r1, [r4]
adds r0, r1, r5
movs r7, #0
ldrsh r0, [r0, r7]
cmp r0, #6
bne _080347F0
ldr r2, _08034848 @ =0x00000129
adds r0, r1, r2
movs r1, #1
strb r1, [r0]
ldr r0, [r4]
movs r3, #0x94
lsls r3, r3, #1
adds r0, r0, r3
strb r1, [r0]
movs r0, #0xf4
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_080347F0:
ldr r1, _0803484C @ =gUnknown_086AE68E
ldr r7, _08034840 @ =gUnknown_020314E0
ldr r4, [r7]
ldr r5, _08034844 @ =0x000003E2
mov r8, r5
adds r3, r4, r5
movs r6, #0
ldrsh r0, [r3, r6]
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0]
mov sb, r0
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0
bne _08034812
b _08034D7E
_08034812:
cmp r0, #4
bne _08034818
b _08034D7E
_08034818:
movs r6, #0xf8
lsls r6, r6, #2
adds r0, r4, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _08034880
adds r5, #8
adds r2, r4, r5
ldrh r5, [r2]
movs r0, #0
ldrsh r1, [r2, r0]
ldr r0, _08034850 @ =0x00000247
cmp r1, r0
bgt _08034854
adds r0, r5, #1
strh r0, [r2]
b _08034D7E
.align 2, 0
_08034840: .4byte gUnknown_020314E0
_08034844: .4byte 0x000003E2
_08034848: .4byte 0x00000129
_0803484C: .4byte gUnknown_086AE68E
_08034850: .4byte 0x00000247
_08034854:
ldrh r3, [r3]
movs r0, #3
ands r3, r0
cmp r3, #0
beq _08034860
b _08034D7E
_08034860:
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #2
strb r2, [r0]
ldr r0, [r7]
movs r4, #0xf9
lsls r4, r4, #2
adds r1, r0, r4
strh r3, [r1]
mov r5, r8
adds r1, r0, r5
strh r3, [r1]
adds r0, r0, r6
strb r2, [r0]
b _08034D7E
_08034880:
ldr r0, _08034898 @ =0x000003EA
adds r2, r4, r0
ldrh r5, [r2]
movs r0, #0
ldrsh r1, [r2, r0]
movs r0, #0x96
lsls r0, r0, #1
cmp r1, r0
ble _0803489C
subs r0, r5, #1
strh r0, [r2]
b _08034D7E
.align 2, 0
_08034898: .4byte 0x000003EA
_0803489C:
ldrh r2, [r3]
movs r0, #3
ands r2, r0
cmp r2, #0
beq _080348A8
b _08034D7E
_080348A8:
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r4, r3
movs r0, #2
strb r0, [r1]
ldr r1, [r7]
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r1, r4
strh r2, [r0]
mov r5, r8
adds r0, r1, r5
strh r2, [r0]
adds r1, r1, r6
movs r0, #4
strb r0, [r1]
b _08034D7E
_080348CA:
ldr r4, _08034904 @ =gUnknown_020314E0
ldr r1, [r4]
movs r6, #0xf9
lsls r6, r6, #2
adds r0, r1, r6
movs r5, #0
movs r2, #0
strh r2, [r0]
ldr r7, _08034908 @ =0x000003E2
adds r0, r1, r7
strh r2, [r0]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #5
strb r0, [r1]
movs r1, #7
mov sb, r1
movs r0, #0xf6
bl m4aSongNumStart
ldr r0, [r4]
ldr r2, _0803490C @ =0x00000387
adds r0, r0, r2
strb r5, [r0]
movs r0, #7
bl sub_11B0
b _08034D7E
.align 2, 0
_08034904: .4byte gUnknown_020314E0
_08034908: .4byte 0x000003E2
_0803490C: .4byte 0x00000387
_08034910:
mov r4, sl
ldr r3, [r4]
movs r5, #0xf9
lsls r5, r5, #2
adds r4, r3, r5
ldrh r0, [r4]
cmp r0, #0x1b
bhi _0803492A
movs r6, #7
mov sb, r6
adds r0, #1
strh r0, [r4]
b _08034D7E
_0803492A:
ldr r7, _08034960 @ =0x00000385
adds r0, r3, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bgt _08034968
movs r2, #0
movs r1, #0
movs r0, #0x80
strh r0, [r4]
ldr r4, _08034964 @ =0x000003E2
adds r0, r3, r4
strh r1, [r0]
movs r5, #0xf7
lsls r5, r5, #2
adds r1, r3, r5
movs r0, #2
strb r0, [r1]
mov r6, sl
ldr r0, [r6]
adds r7, #2
adds r0, r0, r7
strb r2, [r0]
movs r0, #7
mov sb, r0
b _08034976
.align 2, 0
_08034960: .4byte 0x00000385
_08034964: .4byte 0x000003E2
_08034968:
movs r2, #0xf7
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #8
strb r0, [r1]
movs r3, #7
mov sb, r3
_08034976:
ldr r2, _0803498C @ =gUnknown_020314E0
ldr r1, [r2]
ldr r4, _08034990 @ =0x00000385
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r2]
ldr r0, _08034994 @ =0x000493E0
str r0, [r1, #0x3c]
b _08034D7E
.align 2, 0
_0803498C: .4byte gUnknown_020314E0
_08034990: .4byte 0x00000385
_08034994: .4byte 0x000493E0
_08034998:
ldr r5, _08034A64 @ =gUnknown_020314E0
mov r8, r5
ldr r1, [r5]
ldr r6, _08034A68 @ =0x000003E2
adds r2, r1, r6
movs r3, #0
movs r0, #9
strh r0, [r2]
movs r7, #0xf9
lsls r7, r7, #2
adds r0, r1, r7
strh r3, [r0]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #7
strb r0, [r1]
ldr r0, [r5]
ldr r1, _08034A6C @ =0x000005A6
adds r0, r0, r1
strh r3, [r0]
movs r2, #8
mov sb, r2
movs r0, #0xf7
bl m4aSongNumStart
ldr r4, [r5]
movs r3, #0xfa
lsls r3, r3, #2
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r0, #0x20
movs r6, #0xa2
lsls r6, r6, #2
adds r5, r4, r6
strh r0, [r5]
adds r7, #6
adds r0, r4, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x24
ldr r2, _08034A70 @ =0x0000028A
adds r1, r4, r2
strh r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #8
ldr r3, _08034A74 @ =0x0000132C
adds r2, r4, r3
ldr r3, [r2]
ldr r2, [r3, #0x34]
subs r1, r1, r2
lsls r1, r1, #0x10
lsls r0, r0, #8
ldr r2, [r3, #0x38]
subs r0, r0, r2
lsls r0, r0, #0x10
lsrs r7, r1, #0x10
orrs r7, r0
ldr r6, _08034A78 @ =0x000005AC
adds r4, r4, r6
lsls r0, r7, #0x10
asrs r0, r0, #0x10
adds r5, r0, #0
muls r5, r0, r5
adds r0, r5, #0
asrs r5, r7, #0x10
adds r1, r5, #0
muls r1, r5, r1
adds r0, r0, r1
str r0, [r4]
lsls r0, r0, #2
bl Sqrt
mov r2, r8
ldr r1, [r2]
adds r1, r1, r6
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
str r0, [r1]
rsbs r0, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r5, #0
bl ArcTan2
mov r3, r8
ldr r1, [r3]
movs r4, #0xb6
lsls r4, r4, #3
adds r1, r1, r4
strh r0, [r1]
movs r0, #0xd
bl sub_11B0
b _08034D7E
.align 2, 0
_08034A64: .4byte gUnknown_020314E0
_08034A68: .4byte 0x000003E2
_08034A6C: .4byte 0x000005A6
_08034A70: .4byte 0x0000028A
_08034A74: .4byte 0x0000132C
_08034A78: .4byte 0x000005AC
_08034A7C:
ldr r0, _08034AA8 @ =gUnknown_086AE68E
mov r5, sl
ldr r2, [r5]
ldr r5, _08034AAC @ =0x000003E2
adds r4, r2, r5
movs r6, #0
ldrsh r1, [r4, r6]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r7, #0
ldrsh r0, [r1, r7]
movs r1, #0xf9
lsls r1, r1, #2
mov r8, r1
adds r1, r2, r1
ldrh r3, [r1]
cmp r0, r3
ble _08034AB0
adds r0, r3, #1
strh r0, [r1]
b _08034B2C
.align 2, 0
_08034AA8: .4byte gUnknown_086AE68E
_08034AAC: .4byte 0x000003E2
_08034AB0:
movs r6, #0
movs r7, #0
strh r7, [r1]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xf
bne _08034AFA
ldr r3, _08034B58 @ =0x0000132C
adds r2, r2, r3
ldr r3, [r2]
ldr r0, _08034B5C @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #1
ands r0, r1
lsls r1, r0, #2
adds r1, r1, r0
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
ldr r4, _08034B60 @ =0x0000FF6A
adds r0, r0, r4
strh r0, [r3, #0x30]
ldr r1, [r2]
movs r0, #0x96
lsls r0, r0, #1
strh r0, [r1, #0x32]
ldr r0, [r2]
strb r6, [r0]
movs r0, #0xf8
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_08034AFA:
mov r0, sl
ldr r1, [r0]
adds r0, r1, r5
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0x10
bne _08034B0A
strb r6, [r1, #0x1f]
_08034B0A:
mov r3, sl
ldr r2, [r3]
adds r3, r2, r5
movs r4, #0
ldrsh r0, [r3, r4]
cmp r0, #0x10
ble _08034B2C
mov r5, r8
adds r1, r2, r5
movs r0, #0x80
strh r0, [r1]
strh r7, [r3]
movs r6, #0xf7
lsls r6, r6, #2
adds r1, r2, r6
movs r0, #2
strb r0, [r1]
_08034B2C:
mov r7, sl
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x31
ldrb r0, [r0]
cmp r0, #0
beq _08034B6C
ldr r2, _08034B64 @ =0x000003E2
adds r0, r1, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x10
bne _08034B8C
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #4
bls _08034B8C
ldr r5, _08034B68 @ =0x00000387
adds r1, r1, r5
b _08034B88
.align 2, 0
_08034B58: .4byte 0x0000132C
_08034B5C: .4byte gMain
_08034B60: .4byte 0x0000FF6A
_08034B64: .4byte 0x000003E2
_08034B68: .4byte 0x00000387
_08034B6C:
ldr r6, _08034CA8 @ =0x000003E2
adds r0, r1, r6
movs r7, #0
ldrsh r0, [r0, r7]
cmp r0, #0x10
bne _08034B8C
movs r2, #0xf9
lsls r2, r2, #2
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0
beq _08034B8C
ldr r3, _08034CAC @ =0x00000387
adds r1, r1, r3
_08034B88:
movs r0, #2
strb r0, [r1]
_08034B8C:
ldr r4, _08034CB0 @ =gUnknown_020314E0
ldr r7, [r4]
ldr r5, _08034CB4 @ =0x000005A6
adds r0, r7, r5
ldrh r0, [r0]
cmp r0, #0x1d
bhi _08034C60
movs r4, #0x1d
subs r4, r4, r0
movs r6, #0xb6
lsls r6, r6, #3
adds r5, r7, r6
lsls r4, r4, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #0xd
movs r1, #0x1e
bl __divsi3
ldr r1, _08034CB8 @ =0xFFFFE000
adds r2, r1, #0
adds r0, r0, r2
ldrh r1, [r5]
subs r1, r1, r0
strh r1, [r5]
ldr r6, _08034CBC @ =0x0000132C
adds r0, r7, r6
ldr r0, [r0]
ldrh r3, [r0, #0xa]
adds r2, r2, r3
strh r2, [r0, #0xa]
ldr r1, _08034CC0 @ =0x000005AC
adds r0, r7, r1
ldr r0, [r0]
muls r0, r4, r0
movs r1, #0x1e
bl __divsi3
mov sl, r0
ldrh r0, [r5]
bl sub_C74
ldr r2, _08034CB0 @ =gUnknown_020314E0
ldr r5, [r2]
adds r1, r5, r6
ldr r1, [r1]
mov r8, r1
movs r3, #0xa2
lsls r3, r3, #2
adds r1, r5, r3
movs r7, #0
ldrsh r4, [r1, r7]
lsls r4, r4, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, sl
muls r1, r0, r1
adds r0, r1, #0
ldr r2, _08034CC4 @ =0x00004E20
mov sb, r2
mov r1, sb
bl __divsi3
adds r4, r4, r0
mov r3, r8
str r4, [r3, #0x34]
movs r4, #0xb6
lsls r4, r4, #3
adds r5, r5, r4
ldrh r0, [r5]
bl sub_C24
ldr r5, _08034CB0 @ =gUnknown_020314E0
ldr r1, [r5]
adds r6, r1, r6
ldr r5, [r6]
ldr r7, _08034CC8 @ =0x0000028A
adds r1, r1, r7
movs r2, #0
ldrsh r4, [r1, r2]
lsls r4, r4, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r3, sl
muls r3, r0, r3
adds r0, r3, #0
mov r1, sb
bl __divsi3
subs r4, r4, r0
str r4, [r5, #0x38]
ldr r4, [r6]
movs r5, #0x30
ldrsh r0, [r4, r5]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x30]
ldr r4, [r6]
movs r6, #0x32
ldrsh r0, [r4, r6]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x32]
_08034C60:
ldr r7, _08034CB0 @ =gUnknown_020314E0
ldr r1, [r7]
ldr r2, _08034CB4 @ =0x000005A6
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0x28
bne _08034C86
ldr r2, _08034CBC @ =0x0000132C
adds r0, r1, r2
ldr r1, [r0]
movs r3, #0
movs r0, #1
strb r0, [r1]
ldr r0, [r7]
adds r0, r0, r2
ldr r1, [r0]
strh r3, [r1, #0x30]
ldr r0, [r0]
strh r3, [r0, #0x32]
_08034C86:
ldr r3, _08034CB0 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _08034CB4 @ =0x000005A6
adds r2, r1, r4
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
ldr r2, _08034CCC @ =gUnknown_086AE68E
ldr r5, _08034CA8 @ =0x000003E2
adds r1, r1, r5
movs r6, #0
ldrsh r0, [r1, r6]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0]
mov sb, r0
b _08034D7E
.align 2, 0
_08034CA8: .4byte 0x000003E2
_08034CAC: .4byte 0x00000387
_08034CB0: .4byte gUnknown_020314E0
_08034CB4: .4byte 0x000005A6
_08034CB8: .4byte 0xFFFFE000
_08034CBC: .4byte 0x0000132C
_08034CC0: .4byte 0x000005AC
_08034CC4: .4byte 0x00004E20
_08034CC8: .4byte 0x0000028A
_08034CCC: .4byte gUnknown_086AE68E
_08034CD0:
mov r7, sl
ldr r0, [r7]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r5, #0
movs r1, #3
strb r1, [r0]
ldr r4, _08034D24 @ =gMain
movs r0, #0x80
strb r0, [r4, #0xf]
ldr r1, [r7]
ldr r2, _08034D28 @ =0x000003E6
adds r0, r1, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0
bne _08034D06
movs r6, #0xe2
lsls r6, r6, #2
adds r1, r1, r6
movs r0, #2
strb r0, [r1]
ldr r0, [r7]
ldr r7, _08034D2C @ =0x00000392
adds r0, r0, r7
strh r5, [r0]
_08034D06:
movs r0, #0xf
mov sb, r0
mov r1, sl
ldr r3, [r1]
adds r1, r3, r2
ldrh r0, [r1]
movs r6, #0
ldrsh r2, [r1, r6]
cmp r2, #0xb7
bgt _08034D60
cmp r2, #0x3f
bgt _08034D30
adds r0, #1
b _08034D32
.align 2, 0
_08034D24: .4byte gMain
_08034D28: .4byte 0x000003E6
_08034D2C: .4byte 0x00000392
_08034D30:
adds r0, #2
_08034D32:
strh r0, [r1]
ldr r0, _08034D50 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r7, _08034D54 @ =0x000003E6
adds r0, r0, r7
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x1e
bne _08034D7E
ldr r0, _08034D58 @ =gMPlayInfo_SE1
ldr r1, _08034D5C @ =gUnknown_086A17D8
bl MPlayStart
b _08034D7E
.align 2, 0
_08034D50: .4byte gUnknown_020314E0
_08034D54: .4byte 0x000003E6
_08034D58: .4byte gMPlayInfo_SE1
_08034D5C: .4byte gUnknown_086A17D8
_08034D60:
movs r2, #0xc5
lsls r2, r2, #4
adds r0, r4, r2
strh r5, [r0]
ldr r6, _08034E38 @ =0x00000D08
adds r0, r4, r6
strh r5, [r0]
ldr r7, _08034E3C @ =0x00000B98
adds r0, r4, r7
strh r5, [r0]
movs r0, #4
strb r0, [r3, #0x13]
mov r1, sl
ldr r0, [r1]
strh r5, [r0, #0x18]
_08034D7E:
ldr r2, _08034E40 @ =0x040000D4
mov r3, sb
lsls r0, r3, #0x10
asrs r5, r0, #0x10
lsls r0, r5, #0xb
ldr r1, _08034E44 @ =gUnknown_084EDACC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08034E48 @ =0x060110A0
str r0, [r2, #4]
ldr r0, _08034E4C @ =0x80000400
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r4, _08034E50 @ =gUnknown_020314E0
ldr r6, [r4]
mov r8, r6
movs r7, #0xfa
lsls r7, r7, #2
add r7, r8
movs r1, #0
ldrsh r0, [r7, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x10
movs r1, #0xfc
lsls r1, r1, #2
add r1, r8
strh r0, [r1]
ldr r6, _08034E54 @ =0x000003EA
add r6, r8
movs r2, #0
ldrsh r0, [r6, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x10
ldr r1, _08034E58 @ =0x000003F2
add r1, r8
strh r0, [r1]
ldr r3, [sp]
ldrh r0, [r3]
mov sl, r4
cmp r0, #0
beq _08034EB4
mov r0, r8
adds r0, #0x58
ldrh r4, [r0]
rsbs r4, r4, #0
movs r1, #0
ldrsh r0, [r7, r1]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
ldr r2, [sp]
strh r4, [r2, #2]
mov r0, r8
adds r0, #0x5a
ldrh r4, [r0]
rsbs r4, r4, #0
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
ldr r6, [sp]
strh r4, [r6, #4]
adds r6, #8
cmp r5, #7
bne _08034E6C
movs r0, #0xf9
lsls r0, r0, #2
add r0, r8
ldrh r0, [r0]
cmp r0, #5
bhi _08034E60
ldr r3, _08034E5C @ =gOamBuffer
ldr r7, [sp]
ldrh r2, [r7, #8]
lsls r2, r2, #3
adds r2, r2, r3
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0x40
b _08034E7E
.align 2, 0
_08034E38: .4byte 0x00000D08
_08034E3C: .4byte 0x00000B98
_08034E40: .4byte 0x040000D4
_08034E44: .4byte gUnknown_084EDACC
_08034E48: .4byte 0x060110A0
_08034E4C: .4byte 0x80000400
_08034E50: .4byte gUnknown_020314E0
_08034E54: .4byte 0x000003EA
_08034E58: .4byte 0x000003F2
_08034E5C: .4byte gOamBuffer
_08034E60:
ldr r3, _08034E68 @ =gOamBuffer
ldr r0, [sp]
ldrh r2, [r0, #8]
b _08034E72
.align 2, 0
_08034E68: .4byte gOamBuffer
_08034E6C:
ldr r3, _08034F28 @ =gOamBuffer
ldr r1, [sp]
ldrh r2, [r1, #8]
_08034E72:
lsls r2, r2, #3
adds r2, r2, r3
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0x30
_08034E7E:
orrs r0, r1
strb r0, [r2, #5]
adds r4, r3, #0
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r6, r3]
ldr r5, [sp]
movs r7, #2
ldrsh r0, [r5, r7]
adds r1, r1, r0
ldr r3, _08034F2C @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08034F30 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r5, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
_08034EB4:
ldr r4, _08034F34 @ =gUnknown_0200BC58
str r4, [sp]
ldrh r0, [r4]
adds r4, #0xb8
mov r8, r4
cmp r0, #0
bne _08034EC4
b _08034FC4
_08034EC4:
mov r5, sl
ldr r1, [r5]
ldr r6, _08034F38 @ =0x00000386
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08034F40
adds r0, r1, #0
adds r0, #0x58
ldrh r4, [r0]
rsbs r4, r4, #0
movs r7, #0xfa
lsls r7, r7, #2
adds r0, r1, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
ldr r2, [sp]
strh r4, [r2, #2]
ldr r5, [r5]
adds r0, r5, #0
adds r0, #0x5a
ldrh r4, [r0]
rsbs r4, r4, #0
ldr r3, _08034F3C @ =0x000003EA
adds r0, r5, r3
movs r6, #0
ldrsh r0, [r0, r6]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
subs r7, #2
adds r5, r5, r7
movs r1, #0
ldrsh r0, [r5, r1]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
subs r0, #0x5c
adds r4, r4, r0
ldr r2, [sp]
strh r4, [r2, #4]
b _08034F4A
.align 2, 0
_08034F28: .4byte gOamBuffer
_08034F2C: .4byte 0x000001FF
_08034F30: .4byte 0xFFFFFE00
_08034F34: .4byte gUnknown_0200BC58
_08034F38: .4byte 0x00000386
_08034F3C: .4byte 0x000003EA
_08034F40:
movs r0, #0xf0
ldr r3, [sp]
strh r0, [r3, #2]
movs r0, #0xa0
strh r0, [r3, #4]
_08034F4A:
ldr r3, _08035060 @ =gMain
ldr r1, [r3, #0x4c]
movs r0, #3
ands r1, r0
ldr r2, _08035064 @ =0x040000D4
lsrs r1, r1, #1
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #0xa
ldr r1, _08035068 @ =gUnknown_08494E4C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0803506C @ =0x06011AA0
str r0, [r2, #4]
ldr r0, _08035070 @ =0x80000600
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
movs r4, #0xc5
lsls r4, r4, #4
adds r4, r4, r3
mov r8, r4
ldr r5, _08035074 @ =gOamBuffer
ldr r6, _08035078 @ =0xFFFFFE00
mov sb, r6
_08034F7C:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r7, [sp]
adds r6, r7, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r6, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r7, _0803507C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sb
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp]
ldrb r0, [r2, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08034F7C
_08034FC4:
mov r3, r8
str r3, [sp]
ldrh r0, [r3]
cmp r0, #0
bne _08034FD0
b _080350D4
_08034FD0:
mov r5, sl
ldr r4, [r5]
movs r6, #0xfa
lsls r6, r6, #2
adds r0, r4, r6
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
adds r0, #0x10
adds r4, #0x58
ldrh r1, [r4]
subs r0, r0, r1
ldr r1, [sp]
strh r0, [r1, #2]
ldr r4, [r5]
ldr r2, _08035080 @ =0x000003E2
adds r0, r4, r2
ldrh r0, [r0]
subs r0, #0xa
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bhi _08035098
ldr r3, _08035084 @ =0x000003EA
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r0, #0x14
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
ldr r6, [sp]
strh r0, [r6, #4]
mov r7, sl
ldr r0, [r7]
ldr r1, _08035088 @ =0x000005A6
adds r0, r0, r1
ldrh r0, [r0]
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0
mov sb, r2
cmp r0, #0xa
ble _08035046
movs r3, #2
mov sb, r3
cmp r0, #0x11
bgt _08035046
movs r4, #1
mov sb, r4
_08035046:
ldr r2, _08035064 @ =0x040000D4
mov r5, sb
lsls r0, r5, #0x10
asrs r0, r0, #7
ldr r1, _0803508C @ =gUnknown_084FF30C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08035090 @ =0x060118A0
str r0, [r2, #4]
ldr r0, _08035094 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0803509E
.align 2, 0
_08035060: .4byte gMain
_08035064: .4byte 0x040000D4
_08035068: .4byte gUnknown_08494E4C
_0803506C: .4byte 0x06011AA0
_08035070: .4byte 0x80000600
_08035074: .4byte gOamBuffer
_08035078: .4byte 0xFFFFFE00
_0803507C: .4byte 0x000001FF
_08035080: .4byte 0x000003E2
_08035084: .4byte 0x000003EA
_08035088: .4byte 0x000005A6
_0803508C: .4byte gUnknown_084FF30C
_08035090: .4byte 0x060118A0
_08035094: .4byte 0x80000100
_08035098:
movs r0, #0xb4
ldr r6, [sp]
strh r0, [r6, #4]
_0803509E:
ldr r6, [sp]
adds r6, #8
ldr r4, _080350E4 @ =gOamBuffer
ldr r7, [sp]
ldrh r2, [r7, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #2
ldrsh r1, [r6, r0]
movs r3, #2
ldrsh r0, [r7, r3]
adds r1, r1, r0
ldr r5, _080350E8 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _080350EC @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
_080350D4:
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
_080350E4: .4byte gOamBuffer
_080350E8: .4byte 0x000001FF
_080350EC: .4byte 0xFFFFFE00
thumb_func_start sub_350F0
sub_350F0: @ 0x080350F0
push {r4, r5, lr}
ldr r5, _08035118 @ =gUnknown_020314E0
ldr r0, [r5]
movs r1, #0x88
lsls r1, r1, #5
adds r0, r0, r1
movs r2, #0
movs r1, #1
strb r1, [r0]
ldr r3, [r5]
movs r4, #0x17
ldrsb r4, [r3, r4]
cmp r4, #1
beq _08035138
cmp r4, #1
bgt _0803511C
cmp r4, #0
beq _08035122
b _080351A0
.align 2, 0
_08035118: .4byte gUnknown_020314E0
_0803511C:
cmp r4, #2
beq _08035164
b _080351A0
_08035122:
movs r0, #0x41
strh r0, [r3, #0x18]
strb r1, [r3, #0x17]
ldr r1, _08035134 @ =gMain
ldrh r0, [r1, #0x38]
movs r0, #0x9f
strh r0, [r1, #0x38]
b _080351A0
.align 2, 0
_08035134: .4byte gMain
_08035138:
ldrh r0, [r3, #0x18]
cmp r0, #0
beq _080351A0
subs r0, #1
strh r0, [r3, #0x18]
ldr r2, _08035160 @ =gMain
ldrh r0, [r3, #0x18]
lsrs r0, r0, #2
movs r1, #0x10
subs r1, r1, r0
ldrh r0, [r2, #0x3c]
strh r1, [r2, #0x3c]
ldrh r0, [r3, #0x18]
cmp r0, #0
bne _080351A0
ldrb r0, [r3, #0x17]
adds r0, #1
strb r0, [r3, #0x17]
b _080351A0
.align 2, 0
_08035160: .4byte gMain
_08035164:
ldrh r0, [r3, #0x18]
cmp r0, #0x1d
bhi _08035170
adds r0, #1
strh r0, [r3, #0x18]
b _080351A0
_08035170:
movs r0, #0
strh r2, [r3, #0x18]
strb r0, [r3, #0x17]
ldr r1, _08035194 @ =gMain
movs r3, #0xe9
lsls r3, r3, #3
adds r0, r1, r3
strh r2, [r0]
subs r3, #0xb8
adds r0, r1, r3
strh r2, [r0]
ldrb r0, [r1, #5]
ldrb r1, [r1, #4]
cmp r0, r1
beq _08035198
bl sub_357B8
b _080351A0
.align 2, 0
_08035194: .4byte gMain
_08035198:
bl ResetSomeGraphicsRelatedStuff
ldr r0, [r5]
strb r4, [r0, #0x1d]
_080351A0:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_351A8
sub_351A8: @ 0x080351A8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
movs r4, #8
movs r0, #0
mov r8, r0
ldr r7, _080351F8 @ =gUnknown_0200B808
ldr r0, _080351FC @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0xe5
lsls r3, r3, #2
adds r2, r1, r3
ldrh r3, [r2]
movs r5, #0
ldrsh r1, [r2, r5]
mov sb, r0
cmp r1, #0
ble _080351E0
subs r0, r3, #6
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bge _080351E0
mov r6, r8
strh r6, [r2]
_080351E0:
ldr r1, _08035200 @ =gMain
ldrb r0, [r1, #4]
subs r0, #2
cmp r0, #4
bls _080351EC
b _08035314
_080351EC:
lsls r0, r0, #2
ldr r1, _08035204 @ =_08035208
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080351F8: .4byte gUnknown_0200B808
_080351FC: .4byte gUnknown_020314E0
_08035200: .4byte gMain
_08035204: .4byte _08035208
_08035208: @ jump table
.4byte _0803521C @ case 0
.4byte _08035250 @ case 1
.4byte _08035280 @ case 2
.4byte _080352B4 @ case 3
.4byte _080352E8 @ case 4
_0803521C:
mov r0, sb
ldr r1, [r0]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #5
bne _08035244
ldrh r0, [r1, #0x18]
cmp r0, #0xb3
bhi _08035244
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xc
bl __udivsi3
adds r0, #8
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_08035244:
ldr r1, _0803524C @ =0x01C9C380
mov r8, r1
b _08035314
.align 2, 0
_0803524C: .4byte 0x01C9C380
_08035250:
mov r2, sb
ldr r1, [r2]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #3
bne _08035278
ldrh r0, [r1, #0x18]
cmp r0, #0xb3
bhi _08035278
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xc
bl __udivsi3
adds r0, #8
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_08035278:
ldr r3, _0803527C @ =0x01C9C380
b _08035312
.align 2, 0
_0803527C: .4byte 0x01C9C380
_08035280:
mov r5, sb
ldr r1, [r5]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #3
bne _080352A8
ldrh r0, [r1, #0x18]
cmp r0, #0xb3
bhi _080352A8
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xc
bl __udivsi3
adds r0, #8
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_080352A8:
ldr r6, _080352B0 @ =gUnknown_02FAF080
mov r8, r6
b _08035314
.align 2, 0
_080352B0: .4byte gUnknown_02FAF080
_080352B4:
mov r0, sb
ldr r1, [r0]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #3
bne _080352DC
ldrh r0, [r1, #0x18]
cmp r0, #0xb3
bhi _080352DC
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xc
bl __udivsi3
adds r0, #8
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_080352DC:
ldr r1, _080352E4 @ =gUnknown_02FAF080
mov r8, r1
b _08035314
.align 2, 0
_080352E4: .4byte gUnknown_02FAF080
_080352E8:
mov r2, sb
ldr r1, [r2]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #3
bne _08035310
ldrh r0, [r1, #0x18]
cmp r0, #0xb3
bhi _08035310
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xc
bl __udivsi3
adds r0, #8
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_08035310:
ldr r3, _080354A0 @ =0x05F5E0FF
_08035312:
mov r8, r3
_08035314:
ldr r2, _080354A4 @ =0x040000D4
ldr r0, _080354A8 @ =gUnknown_02031520
lsls r1, r4, #0x10
asrs r1, r1, #0xb
ldr r0, [r0, #0x2c]
adds r0, r0, r1
str r0, [r2]
ldr r0, _080354AC @ =0x05000300
str r0, [r2, #4]
ldr r0, _080354B0 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldrh r0, [r7]
cmp r0, #0
beq _080353F8
movs r0, #0x78
strh r0, [r7, #2]
mov r5, sb
ldr r0, [r5]
movs r6, #0xe5
lsls r6, r6, #2
adds r0, r0, r6
ldrh r0, [r0]
adds r0, #0x32
strh r0, [r7, #4]
movs r0, #0
ldr r1, _080354B4 @ =gUnknown_0200B750
mov sl, r1
ldr r6, _080354B8 @ =gOamBuffer
ldr r2, _080354BC @ =0xFFFFFE00
mov ip, r2
_08035352:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r7, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r6
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _080354C0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #2
ble _08035352
mov r7, sl
movs r0, #0x78
strh r0, [r7, #2]
mov r3, sb
ldr r0, [r3]
movs r5, #0xe5
lsls r5, r5, #2
adds r0, r0, r5
ldrh r0, [r0]
adds r0, #0x32
strh r0, [r7, #4]
movs r0, #0
ldr r6, _080354B8 @ =gOamBuffer
ldr r1, _080354BC @ =0xFFFFFE00
mov ip, r1
_080353B4:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r7, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r6
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _080354C0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0x11
ble _080353B4
_080353F8:
mov r5, sp
ldr r4, _080354C4 @ =0x00989680
mov r0, r8
adds r1, r4, #0
bl __divsi3
strh r0, [r5]
mov r5, sp
mov r0, r8
adds r1, r4, #0
bl __modsi3
ldr r4, _080354C8 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #2]
mov r5, sp
mov r0, r8
adds r1, r4, #0
bl __modsi3
ldr r4, _080354CC @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #4]
mov r5, sp
mov r0, r8
adds r1, r4, #0
bl __modsi3
ldr r4, _080354D0 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #6]
mov r5, sp
mov r0, r8
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #8]
mov r5, sp
mov r0, r8
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strh r0, [r5, #0xa]
mov r4, sp
mov r0, r8
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strh r0, [r4, #0xc]
mov r4, sp
mov r0, r8
movs r1, #0xa
bl __modsi3
strh r0, [r4, #0xe]
ldr r3, _080354D4 @ =gMain
ldrb r0, [r3, #4]
subs r0, #2
cmp r0, #4
bls _08035494
b _08035678
_08035494:
lsls r0, r0, #2
ldr r1, _080354D8 @ =_080354DC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080354A0: .4byte 0x05F5E0FF
_080354A4: .4byte 0x040000D4
_080354A8: .4byte gUnknown_02031520
_080354AC: .4byte 0x05000300
_080354B0: .4byte 0x80000010
_080354B4: .4byte gUnknown_0200B750
_080354B8: .4byte gOamBuffer
_080354BC: .4byte 0xFFFFFE00
_080354C0: .4byte 0x000001FF
_080354C4: .4byte 0x00989680
_080354C8: .4byte 0x000F4240
_080354CC: .4byte 0x000186A0
_080354D0: .4byte 0x00002710
_080354D4: .4byte gMain
_080354D8: .4byte _080354DC
_080354DC: @ jump table
.4byte _080354F0 @ case 0
.4byte _0803553C @ case 1
.4byte _08035588 @ case 2
.4byte _080355D4 @ case 3
.4byte _08035620 @ case 4
_080354F0:
movs r0, #0
ldr r5, _0803552C @ =gUnknown_08138834
ldr r3, _08035530 @ =0x040000D4
adds r4, r5, #0
_080354F8:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #1
mov r6, sp
adds r0, r6, r2
movs r6, #0
ldrsh r0, [r0, r6]
adds r0, #0x70
lsls r0, r0, #6
adds r0, r0, r4
str r0, [r3]
lsls r2, r2, #5
ldr r0, _08035534 @ =0x06017180
adds r2, r2, r0
str r2, [r3, #4]
ldr r2, _08035538 @ =0x80000020
str r2, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #7
ble _080354F8
b _08035658
.align 2, 0
_0803552C: .4byte gUnknown_08138834
_08035530: .4byte 0x040000D4
_08035534: .4byte 0x06017180
_08035538: .4byte 0x80000020
_0803553C:
movs r0, #0
ldr r5, _08035578 @ =gUnknown_0813A854
ldr r3, _0803557C @ =0x040000D4
adds r4, r5, #0
_08035544:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #1
mov r6, sp
adds r0, r6, r2
movs r6, #0
ldrsh r0, [r0, r6]
adds r0, #0x70
lsls r0, r0, #6
adds r0, r0, r4
str r0, [r3]
lsls r2, r2, #5
ldr r0, _08035580 @ =0x06017180
adds r2, r2, r0
str r2, [r3, #4]
ldr r2, _08035584 @ =0x80000020
str r2, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #7
ble _08035544
b _08035658
.align 2, 0
_08035578: .4byte gUnknown_0813A854
_0803557C: .4byte 0x040000D4
_08035580: .4byte 0x06017180
_08035584: .4byte 0x80000020
_08035588:
movs r0, #0
ldr r5, _080355C4 @ =gUnknown_0813C874
ldr r3, _080355C8 @ =0x040000D4
adds r4, r5, #0
_08035590:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #1
mov r6, sp
adds r0, r6, r2
movs r6, #0
ldrsh r0, [r0, r6]
adds r0, #0x70
lsls r0, r0, #6
adds r0, r0, r4
str r0, [r3]
lsls r2, r2, #5
ldr r0, _080355CC @ =0x06017180
adds r2, r2, r0
str r2, [r3, #4]
ldr r2, _080355D0 @ =0x80000020
str r2, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #7
ble _08035590
b _08035658
.align 2, 0
_080355C4: .4byte gUnknown_0813C874
_080355C8: .4byte 0x040000D4
_080355CC: .4byte 0x06017180
_080355D0: .4byte 0x80000020
_080355D4:
movs r0, #0
ldr r5, _08035610 @ =gUnknown_0813E894
ldr r3, _08035614 @ =0x040000D4
adds r4, r5, #0
_080355DC:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #1
mov r6, sp
adds r0, r6, r2
movs r6, #0
ldrsh r0, [r0, r6]
adds r0, #0x70
lsls r0, r0, #6
adds r0, r0, r4
str r0, [r3]
lsls r2, r2, #5
ldr r0, _08035618 @ =0x06017180
adds r2, r2, r0
str r2, [r3, #4]
ldr r2, _0803561C @ =0x80000020
str r2, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #7
ble _080355DC
b _08035658
.align 2, 0
_08035610: .4byte gUnknown_0813E894
_08035614: .4byte 0x040000D4
_08035618: .4byte 0x06017180
_0803561C: .4byte 0x80000020
_08035620:
movs r0, #0
ldr r5, _08035688 @ =gUnknown_081408B4
ldr r3, _0803568C @ =0x040000D4
adds r4, r5, #0
_08035628:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #1
mov r6, sp
adds r0, r6, r2
movs r6, #0
ldrsh r0, [r0, r6]
adds r0, #0x70
lsls r0, r0, #6
adds r0, r0, r4
str r0, [r3]
lsls r2, r2, #5
ldr r0, _08035690 @ =0x06017180
adds r2, r2, r0
str r2, [r3, #4]
ldr r2, _08035694 @ =0x80000020
str r2, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #7
ble _08035628
_08035658:
mov r1, sb
ldr r0, [r1]
ldr r3, _08035698 @ =0x000005F6
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r1, _0803568C @ =0x040000D4
adds r0, #0x71
lsls r0, r0, #6
adds r0, r0, r5
str r0, [r1]
ldr r0, _0803569C @ =0x06017380
str r0, [r1, #4]
str r2, [r1, #8]
ldr r0, [r1, #8]
_08035678:
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08035688: .4byte gUnknown_081408B4
_0803568C: .4byte 0x040000D4
_08035690: .4byte 0x06017180
_08035694: .4byte 0x80000020
_08035698: .4byte 0x000005F6
_0803569C: .4byte 0x06017380
thumb_func_start sub_356A0
sub_356A0: @ 0x080356A0
push {r4, r5, r6, r7, lr}
ldr r6, _080356C4 @ =gUnknown_0200BDC8
ldr r1, _080356C8 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r2, r1, #0
cmp r0, #8
bhi _08035740
lsls r0, r0, #2
ldr r1, _080356CC @ =_080356D0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080356C4: .4byte gUnknown_0200BDC8
_080356C8: .4byte gUnknown_020314E0
_080356CC: .4byte _080356D0
_080356D0: @ jump table
.4byte _08035702 @ case 0
.4byte _08035702 @ case 1
.4byte _080356F4 @ case 2
.4byte _08035740 @ case 3
.4byte _08035740 @ case 4
.4byte _08035740 @ case 5
.4byte _08035740 @ case 6
.4byte _08035740 @ case 7
.4byte _08035702 @ case 8
_080356F4:
ldr r0, [r2]
ldr r1, _080357A4 @ =0x000003E6
adds r0, r0, r1
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0
ble _08035740
_08035702:
ldrh r0, [r6]
cmp r0, #0
beq _08035740
movs r0, #0xf0
strh r0, [r6, #2]
movs r0, #0xa0
strh r0, [r6, #4]
adds r5, r6, #0
adds r5, #8
ldr r4, _080357A8 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
adds r1, #0xf0
ldr r3, _080357AC @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _080357B0 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_08035740:
ldr r6, _080357B4 @ =gUnknown_0200BC58
ldrh r0, [r6]
cmp r0, #0
beq _0803579C
movs r0, #0xf0
strh r0, [r6, #2]
movs r0, #0xa0
strh r0, [r6, #4]
movs r0, #0
ldr r7, _080357A8 @ =gOamBuffer
ldr r1, _080357B0 @ =0xFFFFFE00
mov ip, r1
_08035758:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _080357AC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08035758
_0803579C:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080357A4: .4byte 0x000003E6
_080357A8: .4byte gOamBuffer
_080357AC: .4byte 0x000001FF
_080357B0: .4byte 0xFFFFFE00
_080357B4: .4byte gUnknown_0200BC58
thumb_func_start sub_357B8
sub_357B8: @ 0x080357B8
push {r4, r5, lr}
bl m4aMPlayAllStop
bl sub_D10
ldr r2, _08035844 @ =gMain
ldrb r1, [r2, #5]
ldrb r0, [r2, #4]
movs r3, #0
strb r0, [r2, #5]
strb r1, [r2, #4]
strb r3, [r2, #6]
strb r3, [r2, #0xf]
ldr r4, _08035848 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _0803584C @ =0x00000296
adds r1, r0, r5
movs r5, #0
strh r3, [r1]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r4]
subs r1, #0x11
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #4
bls _080357F6
movs r0, #1
strb r0, [r2, #8]
_080357F6:
strb r5, [r2, #3]
ldr r1, [r4]
movs r0, #3
strb r0, [r1, #0x15]
ldr r1, [r4]
movs r0, #1
strb r0, [r1, #0x13]
ldr r0, [r4]
strb r5, [r0, #0x16]
ldr r0, [r4]
ldr r2, _08035850 @ =0x000005FA
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r4]
adds r0, #0xe6
strh r3, [r0]
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r4]
ldr r1, _08035854 @ =0x000006C4
adds r0, r0, r1
strb r5, [r0]
ldr r1, [r4]
ldr r2, _08035858 @ =0x00000714
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803583E
ldr r5, _0803585C @ =0x000006EE
adds r1, r1, r5
movs r0, #0x78
strh r0, [r1]
_0803583E:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08035844: .4byte gMain
_08035848: .4byte gUnknown_020314E0
_0803584C: .4byte 0x00000296
_08035850: .4byte 0x000005FA
_08035854: .4byte 0x000006C4
_08035858: .4byte 0x00000714
_0803585C: .4byte 0x000006EE
thumb_func_start sub_35860
sub_35860: @ 0x08035860
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r3, _08035A5C @ =gUnknown_020314E0
ldr r0, [r3]
movs r4, #0
movs r6, #0
strh r6, [r0, #0x18]
strb r4, [r0, #0x17]
ldr r0, [r3]
strb r4, [r0, #0x13]
ldr r0, [r3]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #1
mov r8, r2
mov r7, r8
strb r7, [r0]
ldr r2, [r3]
adds r5, r2, #0
adds r5, #0x6c
movs r1, #0xe1
lsls r1, r1, #5
adds r0, r1, #0
ldrh r7, [r5]
adds r0, r0, r7
ldr r7, _08035A60 @ =0x00000296
adds r1, r2, r7
strh r0, [r1]
strh r6, [r5]
ldr r0, _08035A64 @ =0x00000383
adds r2, r2, r0
strb r4, [r2]
ldr r0, [r3]
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r0, r1
movs r5, #3
strb r5, [r0]
ldr r0, [r3]
ldr r2, _08035A68 @ =0x00000392
adds r1, r0, r2
strh r6, [r1]
ldr r7, _08035A6C @ =0x0000132C
adds r0, r0, r7
ldr r0, [r0]
mov r1, r8
strb r1, [r0]
ldr r0, [r3]
subs r2, #0xc
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r3]
ldr r7, _08035A70 @ =0x000003F7
adds r0, r0, r7
strb r1, [r0]
ldr r0, [r3]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
strb r4, [r0]
ldr r1, [r3]
subs r7, #0xf
adds r2, r1, r7
ldr r0, _08035A74 @ =0x000002EE
strh r0, [r2]
adds r0, #0xfc
adds r2, r1, r0
movs r0, #0xb4
lsls r0, r0, #1
strh r0, [r2]
ldr r2, _08035A78 @ =0x000003DF
adds r1, r1, r2
strb r5, [r1]
ldr r0, [r3]
subs r7, #0x63
adds r0, r0, r7
strb r4, [r0]
ldr r0, [r3]
ldr r1, _08035A7C @ =0x00000387
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r3]
subs r2, #0x4b
adds r1, r0, r2
strh r6, [r1]
adds r7, #0x59
adds r0, r0, r7
strb r4, [r0]
ldr r0, [r3]
movs r1, #0xf8
lsls r1, r1, #2
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r3]
adds r2, #0x4e
adds r1, r0, r2
strh r6, [r1]
adds r7, #6
adds r1, r0, r7
strh r6, [r1]
movs r1, #0xfd
lsls r1, r1, #2
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r3]
adds r2, #0x13
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r3]
adds r7, #0x12
adds r0, r0, r7
strb r4, [r0]
ldr r0, [r3]
adds r1, #4
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r3]
adds r2, #5
adds r1, r0, r2
strh r6, [r1]
adds r7, #6
adds r1, r0, r7
strh r6, [r1]
ldr r1, _08035A80 @ =0x00000404
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r3]
adds r2, #0xb
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r3]
adds r7, #0xa
adds r0, r0, r7
strb r4, [r0]
ldr r0, [r3]
adds r2, #3
adds r1, r0, r2
strh r6, [r1]
adds r7, #4
adds r1, r0, r7
strh r6, [r1]
adds r2, #4
adds r1, r0, r2
strh r6, [r1]
adds r7, #4
adds r1, r0, r7
strh r6, [r1]
adds r2, #4
adds r1, r0, r2
strh r6, [r1]
adds r7, #4
adds r0, r0, r7
strh r6, [r0]
movs r2, #0
adds r6, r3, #0
adds r5, r6, #0
ldr r4, _08035A84 @ =0x0000041C
movs r3, #0
_080359A0:
ldr r1, [r5]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r4
adds r1, r1, r0
strb r3, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _080359A0
movs r2, #0
ldr r5, _08035A5C @ =gUnknown_020314E0
movs r4, #0x84
lsls r4, r4, #3
movs r3, #0
_080359C2:
ldr r1, [r5]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r4
adds r1, r1, r0
strb r3, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _080359C2
movs r2, #0
ldr r5, _08035A5C @ =gUnknown_020314E0
ldr r4, _08035A88 @ =0x0000042A
movs r3, #0
_080359E2:
ldr r1, [r5]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r4
adds r1, r1, r0
strb r3, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #6
ble _080359E2
ldr r1, [r6]
movs r0, #0
strb r0, [r1, #0x1a]
ldr r4, [r6]
ldr r1, _08035A8C @ =0x000003EA
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x3a
ldr r7, _08035A90 @ =0x00000402
adds r4, r4, r7
strh r0, [r4]
bl sub_38218
ldr r0, [r6]
ldr r1, _08035A7C @ =0x00000387
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
bl sub_35D54
bl sub_36CB4
movs r0, #0x24
bl m4aSongNumStart
bl sub_372B4
bl sub_3751C
bl sub_37850
ldr r1, _08035A94 @ =0x040000D4
ldr r0, _08035A98 @ =gUnknown_081B36A4
str r0, [r1]
ldr r0, _08035A9C @ =0x05000320
str r0, [r1, #4]
ldr r0, _08035AA0 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08035A5C: .4byte gUnknown_020314E0
_08035A60: .4byte 0x00000296
_08035A64: .4byte 0x00000383
_08035A68: .4byte 0x00000392
_08035A6C: .4byte 0x0000132C
_08035A70: .4byte 0x000003F7
_08035A74: .4byte 0x000002EE
_08035A78: .4byte 0x000003DF
_08035A7C: .4byte 0x00000387
_08035A80: .4byte 0x00000404
_08035A84: .4byte 0x0000041C
_08035A88: .4byte 0x0000042A
_08035A8C: .4byte 0x000003EA
_08035A90: .4byte 0x00000402
_08035A94: .4byte 0x040000D4
_08035A98: .4byte gUnknown_081B36A4
_08035A9C: .4byte 0x05000320
_08035AA0: .4byte 0x80000010
thumb_func_start sub_35AA4
sub_35AA4: @ 0x08035AA4
push {r4, r5, r6, lr}
bl sub_38218
ldr r0, _08035AC4 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bls _08035ABA
b _08035CB4
_08035ABA:
lsls r0, r0, #2
ldr r1, _08035AC8 @ =_08035ACC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035AC4: .4byte gUnknown_020314E0
_08035AC8: .4byte _08035ACC
_08035ACC: @ jump table
.4byte _08035AE0 @ case 0
.4byte _08035B5C @ case 1
.4byte _08035BCC @ case 2
.4byte _08035C34 @ case 3
.4byte _08035CA4 @ case 4
_08035AE0:
ldr r1, _08035B10 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08035B14 @ =0x000005F7
adds r0, r0, r2
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r4, [r1]
ldrh r0, [r4, #0x18]
cmp r0, #0x77
bhi _08035B1C
movs r1, #5
bl __udivsi3
ldr r1, _08035B18 @ =0x0000FFE8
adds r0, r0, r1
adds r1, r4, #0
adds r1, #0xe6
strh r0, [r1]
ldrh r0, [r4, #0x18]
adds r0, #1
strh r0, [r4, #0x18]
b _08035B28
.align 2, 0
_08035B10: .4byte gUnknown_020314E0
_08035B14: .4byte 0x000005F7
_08035B18: .4byte 0x0000FFE8
_08035B1C:
adds r0, r4, #0
adds r0, #0xe6
strh r3, [r0]
strb r2, [r4, #0x13]
ldr r0, [r1]
strh r3, [r0, #0x18]
_08035B28:
ldr r0, _08035B4C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _08035B50 @ =0x00000386
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08035B3C
b _08035CB4
_08035B3C:
ldr r1, _08035B54 @ =gMain
ldrh r0, [r1, #0x38]
ldr r0, _08035B58 @ =0x00001C10
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3a]
movs r0, #0x10
strh r0, [r1, #0x3a]
b _08035CB4
.align 2, 0
_08035B4C: .4byte gUnknown_020314E0
_08035B50: .4byte 0x00000386
_08035B54: .4byte gMain
_08035B58: .4byte 0x00001C10
_08035B5C:
ldr r0, _08035B9C @ =gUnknown_020314E0
ldr r2, [r0]
ldr r4, _08035BA0 @ =0x00000386
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08035B70
b _08035CB4
_08035B70:
ldr r1, _08035BA4 @ =0x0000040E
adds r0, r2, r1
ldrh r0, [r0]
cmp r0, #0
bne _08035BB0
adds r4, #0x74
adds r2, r2, r4
ldrh r1, [r2]
movs r0, #0x10
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldrh r3, [r2]
ldr r2, _08035BA8 @ =gMain
ldrh r1, [r2, #0x38]
ldr r1, _08035BAC @ =0x00001C10
strh r1, [r2, #0x38]
lsls r3, r3, #8
orrs r0, r3
ldrh r1, [r2, #0x3a]
strh r0, [r2, #0x3a]
b _08035CB4
.align 2, 0
_08035B9C: .4byte gUnknown_020314E0
_08035BA0: .4byte 0x00000386
_08035BA4: .4byte 0x0000040E
_08035BA8: .4byte gMain
_08035BAC: .4byte 0x00001C10
_08035BB0:
ldr r1, _08035BC0 @ =gMain
ldrh r0, [r1, #0x38]
ldr r0, _08035BC4 @ =0x00001C42
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3a]
ldr r0, _08035BC8 @ =0x00000907
strh r0, [r1, #0x3a]
b _08035CB4
.align 2, 0
_08035BC0: .4byte gMain
_08035BC4: .4byte 0x00001C42
_08035BC8: .4byte 0x00000907
_08035BCC:
ldr r2, _08035BDC @ =gUnknown_020314E0
ldr r3, [r2]
ldrh r0, [r3, #0x18]
cmp r0, #9
bhi _08035BE0
adds r0, #1
strh r0, [r3, #0x18]
b _08035CB4
.align 2, 0
_08035BDC: .4byte gUnknown_020314E0
_08035BE0:
movs r1, #0
movs r0, #3
strb r0, [r3, #0x13]
ldr r2, [r2]
strh r1, [r2, #0x18]
ldr r3, _08035C20 @ =gMain
movs r1, #0xe9
lsls r1, r1, #3
adds r0, r3, r1
movs r1, #1
strh r1, [r0]
movs r4, #0xd2
lsls r4, r4, #3
adds r0, r3, r4
strh r1, [r0]
ldr r1, _08035C24 @ =0x040000D4
ldr r0, _08035C28 @ =gUnknown_0813A854
str r0, [r1]
ldr r0, _08035C2C @ =0x06015800
str r0, [r1, #4]
ldr r0, _08035C30 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xe5
lsls r0, r0, #2
adds r2, r2, r0
movs r0, #0x88
strh r0, [r2]
movs r0, #0x80
strb r0, [r3, #0xf]
b _08035CB4
.align 2, 0
_08035C20: .4byte gMain
_08035C24: .4byte 0x040000D4
_08035C28: .4byte gUnknown_0813A854
_08035C2C: .4byte 0x06015800
_08035C30: .4byte 0x80001000
_08035C34:
bl sub_351A8
ldr r4, _08035C7C @ =gUnknown_020314E0
ldr r1, [r4]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _08035C46
movs r0, #0xb5
strh r0, [r1, #0x18]
_08035C46:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _08035C5C
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r4]
ldr r0, _08035C80 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _08035C84 @ =0x01C9C380
str r0, [r1, #0x3c]
_08035C5C:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _08035C88
cmp r0, #0x14
bne _08035C72
bl m4aMPlayAllStop
movs r0, #0x2b
bl m4aSongNumStart
_08035C72:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
b _08035CB4
.align 2, 0
_08035C7C: .4byte gUnknown_020314E0
_08035C80: .4byte 0x00061A80
_08035C84: .4byte 0x01C9C380
_08035C88:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #4
strb r0, [r1, #0x13]
ldr r1, [r4]
ldr r2, _08035CA0 @ =0x00000283
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08035CB4
.align 2, 0
_08035CA0: .4byte 0x00000283
_08035CA4:
bl sub_351A8
ldr r0, _08035D3C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r4, _08035D40 @ =0x00000386
adds r0, r0, r4
movs r1, #1
strb r1, [r0]
_08035CB4:
bl sub_35D54
bl sub_36CB4
bl sub_372B4
bl sub_3751C
ldr r6, _08035D3C @ =gUnknown_020314E0
ldr r1, [r6]
movs r2, #0xa5
lsls r2, r2, #2
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08035D16
ldr r4, _08035D44 @ =0x00000296
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #1
bhi _08035D16
ldr r5, _08035D48 @ =gMain
ldrb r4, [r5, #0xf]
cmp r4, #0
bne _08035D16
bl m4aMPlayAllStop
movs r0, #0x2c
bl m4aSongNumStart
ldr r0, [r6]
ldr r1, _08035D4C @ =0x00000404
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
movs r2, #0x81
lsls r2, r2, #3
adds r1, r0, r2
movs r2, #0
strh r4, [r1]
ldr r4, _08035D50 @ =0x00000406
adds r0, r0, r4
strb r2, [r0]
ldrb r1, [r5, #0xf]
movs r0, #0x40
orrs r0, r1
strb r0, [r5, #0xf]
_08035D16:
ldr r0, _08035D3C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _08035D40 @ =0x00000386
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08035D2C
bl sub_350F0
_08035D2C:
bl sub_472E4
bl sub_37850
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08035D3C: .4byte gUnknown_020314E0
_08035D40: .4byte 0x00000386
_08035D44: .4byte 0x00000296
_08035D48: .4byte gMain
_08035D4C: .4byte 0x00000404
_08035D50: .4byte 0x00000406
thumb_func_start sub_35D54
sub_35D54: @ 0x08035D54
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
ldr r1, _08035D84 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r1
cmp r0, #0xf
bls _08035D78
bl _08036C9E
_08035D78:
lsls r0, r0, #2
ldr r1, _08035D88 @ =_08035D8C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035D84: .4byte gUnknown_020314E0
_08035D88: .4byte _08035D8C
_08035D8C: @ jump table
.4byte _08035DCC @ case 0
.4byte _08035E34 @ case 1
.4byte _08035EDC @ case 2
.4byte _08036008 @ case 3
.4byte _080360B8 @ case 4
.4byte _08036218 @ case 5
.4byte _0803631C @ case 6
.4byte _08036544 @ case 7
.4byte _0803662C @ case 8
.4byte _0803671C @ case 9
.4byte _08036808 @ case 10
.4byte _0803689C @ case 11
.4byte _08036908 @ case 12
.4byte _080369E4 @ case 13
.4byte _08036BA2 @ case 14
.4byte _08036C60 @ case 15
_08035DCC:
mov r3, r8
ldr r0, [r3]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r0, r4
movs r2, #0
movs r1, #1
strb r1, [r0]
ldr r1, [r3]
ldr r5, _08035E24 @ =0x000003E2
adds r0, r1, r5
movs r4, #3
strh r4, [r0]
movs r3, #0xf9
lsls r3, r3, #2
adds r0, r1, r3
strh r2, [r0]
adds r5, #6
adds r2, r1, r5
ldr r0, _08035E28 @ =0x000002EE
strh r0, [r2]
adds r0, #0xfc
adds r1, r1, r0
movs r0, #0xb4
lsls r0, r0, #1
strh r0, [r1]
bl Random
mov r1, r8
ldr r3, [r1]
ldr r2, _08035E2C @ =gUnknown_086AE9E4
ldr r1, _08035E30 @ =gMain
ldr r1, [r1, #0x4c]
muls r0, r1, r0
ands r0, r4
adds r2, #0x50
adds r0, r0, r2
ldrb r0, [r0]
movs r2, #0xfd
lsls r2, r2, #2
adds r3, r3, r2
strb r0, [r3]
bl _08036C9E
.align 2, 0
_08035E24: .4byte 0x000003E2
_08035E28: .4byte 0x000002EE
_08035E2C: .4byte gUnknown_086AE9E4
_08035E30: .4byte gMain
_08035E34:
ldr r2, _08035E60 @ =gUnknown_086AE718
mov r4, r8
ldr r3, [r4]
ldr r5, _08035E64 @ =0x000003E2
adds r4, r3, r5
movs r0, #0
ldrsh r1, [r4, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r3, r3, r1
ldrh r1, [r3]
ldrh r0, [r0]
cmp r0, r1
bls _08035E68
adds r0, r1, #1
strh r0, [r3]
b _08035E7E
.align 2, 0
_08035E60: .4byte gUnknown_086AE718
_08035E64: .4byte 0x000003E2
_08035E68:
movs r0, #0
strh r0, [r3]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
bne _08035E7E
movs r0, #3
strh r0, [r4]
_08035E7E:
mov r2, r8
ldr r3, [r2]
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r3, r4
ldrh r2, [r1]
movs r5, #0
ldrsh r0, [r1, r5]
cmp r0, #0
ble _08035E98
subs r0, r2, #6
strh r0, [r1]
b _08035EB8
_08035E98:
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r3, r0
movs r3, #0
movs r0, #2
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
ldr r4, _08035ED4 @ =0x000003E2
adds r2, r0, r4
movs r1, #0x3b
strh r1, [r2]
movs r5, #0xf9
lsls r5, r5, #2
adds r0, r0, r5
strh r3, [r0]
_08035EB8:
mov r1, r8
ldr r0, [r1]
ldr r2, _08035ED8 @ =0x00000392
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #2
bhi _08035ECA
bl _08036C9E
_08035ECA:
subs r0, #1
strh r0, [r1]
bl _08036C9E
.align 2, 0
_08035ED4: .4byte 0x000003E2
_08035ED8: .4byte 0x00000392
_08035EDC:
ldr r2, _08035F08 @ =gUnknown_086AE718
mov r4, r8
ldr r3, [r4]
ldr r5, _08035F0C @ =0x000003E2
adds r4, r3, r5
movs r0, #0
ldrsh r1, [r4, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r2, r3, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _08035F10
adds r0, r1, #1
strh r0, [r2]
b _08035FAE
.align 2, 0
_08035F08: .4byte gUnknown_086AE718
_08035F0C: .4byte 0x000003E2
_08035F10:
movs r0, #0
strh r0, [r2]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x42
bne _08035F92
movs r0, #0x41
strh r0, [r4]
ldr r4, _08035F3C @ =0x0000040E
adds r0, r3, r4
ldrh r0, [r0]
cmp r0, #7
bhi _08035F40
movs r5, #0xf7
lsls r5, r5, #2
adds r1, r3, r5
movs r0, #3
strb r0, [r1]
b _08035F92
.align 2, 0
_08035F3C: .4byte 0x0000040E
_08035F40:
ldr r0, _08035F54 @ =0x000003F5
adds r1, r3, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08035F58
movs r0, #0x14
strh r0, [r2]
b _08035F5E
.align 2, 0
_08035F54: .4byte 0x000003F5
_08035F58:
strh r0, [r2]
movs r0, #1
strb r0, [r1]
_08035F5E:
ldr r4, _08035FE8 @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
bl Random
ldr r1, _08035FEC @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #3
ldr r2, [r4]
ldr r3, _08035FF0 @ =gUnknown_086AE9E4
ands r0, r1
movs r4, #0xfd
lsls r4, r4, #2
adds r2, r2, r4
movs r1, #0
ldrsb r1, [r2, r1]
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
ldrb r0, [r0]
strb r0, [r2]
_08035F92:
ldr r0, _08035FE8 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r5, _08035FF4 @ =0x000003E2
adds r0, r0, r5
ldrh r0, [r0]
subs r0, #0x3c
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #1
bhi _08035FAE
ldr r0, _08035FF8 @ =gMPlayInfo_SE1
ldr r1, _08035FFC @ =gUnknown_086A1ABC
bl MPlayStart
_08035FAE:
ldr r0, _08035FE8 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08035FF4 @ =0x000003E2
adds r0, r1, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x40
beq _08035FC2
bl _08036C9E
_08035FC2:
movs r4, #0xf9
lsls r4, r4, #2
adds r2, r1, r4
ldrh r0, [r2]
lsrs r0, r0, #1
ldr r5, _08036000 @ =0x000003FA
adds r1, r1, r5
strh r0, [r1]
ldrh r0, [r2]
cmp r0, #4
beq _08035FDC
bl _08036C9E
_08035FDC:
ldr r0, _08035FF8 @ =gMPlayInfo_SE1
ldr r1, _08036004 @ =gUnknown_086A1B9C
bl MPlayStart
bl _08036C9E
.align 2, 0
_08035FE8: .4byte gUnknown_020314E0
_08035FEC: .4byte gMain
_08035FF0: .4byte gUnknown_086AE9E4
_08035FF4: .4byte 0x000003E2
_08035FF8: .4byte gMPlayInfo_SE1
_08035FFC: .4byte gUnknown_086A1ABC
_08036000: .4byte 0x000003FA
_08036004: .4byte gUnknown_086A1B9C
_08036008:
mov r0, r8
ldr r1, [r0]
ldr r3, _080360A0 @ =gUnknown_086AE9E4
movs r4, #0xfd
lsls r4, r4, #2
adds r2, r1, r4
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #3
adds r0, r0, r3
ldrh r0, [r0, #4]
movs r5, #0xfb
lsls r5, r5, #2
adds r4, r1, r5
movs r5, #0
strh r0, [r4]
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #3
adds r0, r0, r3
ldrh r0, [r0, #6]
ldr r2, _080360A4 @ =0x000003EE
adds r3, r1, r2
strh r0, [r3]
movs r0, #0
ldrsh r2, [r4, r0]
movs r4, #0xfa
lsls r4, r4, #2
adds r0, r1, r4
movs r4, #0
ldrsh r0, [r0, r4]
subs r6, r2, r0
movs r0, #0
ldrsh r2, [r3, r0]
ldr r3, _080360A8 @ =0x000003EA
adds r1, r1, r3
movs r4, #0
ldrsh r0, [r1, r4]
subs r7, r2, r0
lsls r0, r6, #0x10
asrs r0, r0, #0x10
rsbs r1, r7, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
mov r2, r8
ldr r1, [r2]
ldr r2, _080360AC @ =gUnknown_086AE9C4
lsrs r0, r0, #0x1d
lsls r0, r0, #1
adds r0, r0, r2
ldrh r2, [r0]
ldr r0, _080360B0 @ =0x000003DE
adds r1, r1, r0
strb r2, [r1]
mov r3, r8
ldr r1, [r3]
adds r0, r1, r0
movs r2, #0
ldrsb r2, [r0, r2]
ldr r4, _080360B4 @ =0x000003E2
adds r0, r1, r4
strh r2, [r0]
movs r2, #0xf9
lsls r2, r2, #2
adds r0, r1, r2
strh r5, [r0]
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r1, r3
movs r0, #4
strb r0, [r1]
bl _08036C9E
.align 2, 0
_080360A0: .4byte gUnknown_086AE9E4
_080360A4: .4byte 0x000003EE
_080360A8: .4byte 0x000003EA
_080360AC: .4byte gUnknown_086AE9C4
_080360B0: .4byte 0x000003DE
_080360B4: .4byte 0x000003E2
_080360B8:
ldr r4, _08036180 @ =gUnknown_020314E0
mov sb, r4
ldr r1, [r4]
movs r5, #0xfb
lsls r5, r5, #2
adds r0, r1, r5
movs r3, #0
ldrsh r2, [r0, r3]
subs r5, #4
adds r0, r1, r5
movs r4, #0
ldrsh r0, [r0, r4]
subs r6, r2, r0
ldr r2, _08036184 @ =0x000003EE
adds r0, r1, r2
movs r3, #0
ldrsh r2, [r0, r3]
ldr r4, _08036188 @ =0x000003EA
adds r1, r1, r4
movs r3, #0
ldrsh r0, [r1, r3]
subs r7, r2, r0
adds r1, r6, #0
muls r1, r6, r1
adds r0, r7, #0
muls r0, r7, r0
adds r1, r1, r0
mov r8, r1
lsls r0, r6, #0x10
asrs r0, r0, #0x10
rsbs r1, r7, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
adds r0, r7, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #1
ldr r6, _0803618C @ =0x00004E20
adds r0, r1, #0
adds r1, r6, #0
bl __divsi3
str r0, [sp]
adds r0, r7, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
rsbs r0, r0, #0
adds r1, r6, #0
bl __divsi3
str r0, [sp, #4]
mov r0, sb
ldr r1, [r0]
adds r5, r1, r5
ldrh r0, [r5]
ldr r2, [sp]
adds r0, r2, r0
strh r0, [r5]
adds r4, r1, r4
ldrh r0, [r4]
ldr r3, [sp, #4]
adds r0, r3, r0
strh r0, [r4]
ldr r0, _08036190 @ =0x000009C3
cmp r8, r0
bgt _080361B8
movs r4, #0xf7
lsls r4, r4, #2
adds r1, r1, r4
movs r0, #8
strb r0, [r1]
mov r5, sb
ldr r0, [r5]
ldr r1, _08036194 @ =0x000003DE
adds r2, r0, r1
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #3
bne _0803619C
movs r1, #0x42
strb r1, [r2]
ldr r0, [r5]
ldr r2, _08036198 @ =0x000003E2
adds r0, r0, r2
b _080361A8
.align 2, 0
_08036180: .4byte gUnknown_020314E0
_08036184: .4byte 0x000003EE
_08036188: .4byte 0x000003EA
_0803618C: .4byte 0x00004E20
_08036190: .4byte 0x000009C3
_08036194: .4byte 0x000003DE
_08036198: .4byte 0x000003E2
_0803619C:
movs r1, #0x45
strb r1, [r2]
mov r3, sb
ldr r0, [r3]
ldr r4, _08036208 @ =0x000003E2
adds r0, r0, r4
_080361A8:
strh r1, [r0]
ldr r0, _0803620C @ =gUnknown_020314E0
ldr r0, [r0]
movs r5, #0xf9
lsls r5, r5, #2
adds r0, r0, r5
movs r1, #0
strh r1, [r0]
_080361B8:
ldr r2, _08036210 @ =gUnknown_086AE718
ldr r0, _0803620C @ =gUnknown_020314E0
ldr r4, [r0]
ldr r0, _08036208 @ =0x000003E2
adds r3, r4, r0
movs r5, #0
ldrsh r1, [r3, r5]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _080361E2
bl _08036BD0
_080361E2:
movs r0, #0
strh r0, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
movs r5, #0
ldrsh r1, [r3, r5]
ldr r2, _08036214 @ =0x000003DE
adds r0, r4, r2
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r2, #6
cmp r1, r0
beq _08036202
bl _08036C9E
_08036202:
strh r2, [r3]
bl _08036C9E
.align 2, 0
_08036208: .4byte 0x000003E2
_0803620C: .4byte gUnknown_020314E0
_08036210: .4byte gUnknown_086AE718
_08036214: .4byte 0x000003DE
_08036218:
mov r3, r8
ldr r4, [r3]
movs r5, #0xf9
lsls r5, r5, #2
adds r0, r4, r5
ldrh r0, [r0]
cmp r0, #0x11
bhi _0803627C
cmp r0, #0
bne _08036234
ldr r0, _0803625C @ =gMPlayInfo_SE1
ldr r1, _08036260 @ =gUnknown_086A1BC8
bl MPlayStart
_08036234:
mov r4, r8
ldr r2, [r4]
adds r1, r2, r5
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r5, _08036264 @ =0x000003DE
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x42
bne _0803626C
ldr r0, _08036268 @ =0x000003E2
adds r1, r2, r0
movs r0, #0x25
strh r0, [r1]
bl _08036C9E
.align 2, 0
_0803625C: .4byte gMPlayInfo_SE1
_08036260: .4byte gUnknown_086A1BC8
_08036264: .4byte 0x000003DE
_08036268: .4byte 0x000003E2
_0803626C:
ldr r3, _08036278 @ =0x000003E2
adds r1, r2, r3
movs r0, #0x30
strh r0, [r1]
bl _08036C9E
.align 2, 0
_08036278: .4byte 0x000003E2
_0803627C:
ldr r2, _08036304 @ =gUnknown_086AE9E4
movs r5, #0xfd
lsls r5, r5, #2
adds r1, r4, r5
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #3
adds r0, r0, r2
ldrh r0, [r0, #4]
subs r5, #8
adds r3, r4, r5
strh r0, [r3]
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #3
adds r0, r0, r2
ldrh r0, [r0, #6]
ldr r1, _08036308 @ =0x000003EE
adds r2, r4, r1
strh r0, [r2]
movs r5, #0
ldrsh r1, [r3, r5]
movs r3, #0xfa
lsls r3, r3, #2
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
subs r6, r1, r0
movs r0, #0
ldrsh r1, [r2, r0]
ldr r2, _0803630C @ =0x000003EA
adds r0, r4, r2
movs r3, #0
ldrsh r0, [r0, r3]
subs r7, r1, r0
lsls r0, r6, #0x10
asrs r0, r0, #0x10
rsbs r1, r7, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
mov r4, r8
ldr r1, [r4]
ldr r2, _08036310 @ =gUnknown_086AE9D4
lsrs r0, r0, #0x1d
lsls r0, r0, #1
adds r0, r0, r2
ldrh r2, [r0]
ldr r0, _08036314 @ =0x000003DE
adds r1, r1, r0
strb r2, [r1]
ldr r1, [r4]
adds r0, r1, r0
movs r2, #0
ldrsb r2, [r0, r2]
ldr r5, _08036318 @ =0x000003E2
adds r0, r1, r5
strh r2, [r0]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #6
strb r0, [r1]
bl _08036C9E
.align 2, 0
_08036304: .4byte gUnknown_086AE9E4
_08036308: .4byte 0x000003EE
_0803630C: .4byte 0x000003EA
_08036310: .4byte gUnknown_086AE9D4
_08036314: .4byte 0x000003DE
_08036318: .4byte 0x000003E2
_0803631C:
ldr r5, _080363E0 @ =gUnknown_020314E0
ldr r1, [r5]
movs r2, #0xfb
lsls r2, r2, #2
adds r0, r1, r2
movs r3, #0
ldrsh r2, [r0, r3]
movs r4, #0xfa
lsls r4, r4, #2
mov sb, r4
adds r0, r1, r4
movs r3, #0
ldrsh r0, [r0, r3]
subs r6, r2, r0
adds r4, #6
adds r0, r1, r4
movs r3, #0
ldrsh r2, [r0, r3]
subs r4, #4
adds r1, r1, r4
movs r3, #0
ldrsh r0, [r1, r3]
subs r7, r2, r0
adds r1, r6, #0
muls r1, r6, r1
adds r0, r7, #0
muls r0, r7, r0
adds r1, r1, r0
mov r8, r1
lsls r0, r6, #0x10
asrs r0, r0, #0x10
rsbs r1, r7, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
adds r0, r7, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0xfa
lsls r1, r1, #3
bl __divsi3
str r0, [sp]
adds r0, r7, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
rsbs r0, r0, #0
ldr r1, _080363E4 @ =0x00004E20
bl __divsi3
str r0, [sp, #4]
ldr r2, [r5]
mov r0, sb
adds r1, r2, r0
ldrh r0, [r1]
ldr r3, [sp]
adds r0, r3, r0
strh r0, [r1]
adds r4, r2, r4
ldrh r0, [r4]
ldr r1, [sp, #4]
adds r0, r1, r0
strh r0, [r4]
ldr r0, _080363E8 @ =0x000009C3
cmp r8, r0
ble _080363B8
b _080364A6
_080363B8:
ldr r3, _080363EC @ =0x00000385
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
ble _08036430
ldr r4, _080363F0 @ =0x000003DE
adds r1, r2, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x42
bne _080363F4
movs r0, #0x4b
strb r0, [r1]
ldr r1, [r5]
add r1, sb
ldrh r0, [r1]
adds r0, #0xf0
b _08036400
.align 2, 0
_080363E0: .4byte gUnknown_020314E0
_080363E4: .4byte 0x00004E20
_080363E8: .4byte 0x000009C3
_080363EC: .4byte 0x00000385
_080363F0: .4byte 0x000003DE
_080363F4:
movs r0, #0x5f
strb r0, [r1]
ldr r1, [r5]
add r1, sb
ldrh r0, [r1]
subs r0, #0xf0
_08036400:
strh r0, [r1]
ldr r2, _08036424 @ =gUnknown_020314E0
ldr r0, [r2]
movs r5, #0xf7
lsls r5, r5, #2
adds r0, r0, r5
movs r1, #0xe
strb r1, [r0]
ldr r0, [r2]
ldr r2, _08036428 @ =0x000003DE
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
ldr r3, _0803642C @ =0x000003E2
adds r0, r0, r3
b _080364A4
.align 2, 0
_08036424: .4byte gUnknown_020314E0
_08036428: .4byte 0x000003DE
_0803642C: .4byte 0x000003E2
_08036430:
ldr r4, _0803645C @ =0x000003FA
adds r0, r2, r4
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xf
bgt _08036460
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r2, r3
movs r0, #2
strb r0, [r1]
ldr r1, [r5]
subs r4, #0x18
adds r2, r1, r4
movs r0, #0x3e
strh r0, [r2]
movs r5, #0xf9
lsls r5, r5, #2
adds r1, r1, r5
movs r0, #0
strh r0, [r1]
b _080364A6
.align 2, 0
_0803645C: .4byte 0x000003FA
_08036460:
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #7
strb r0, [r1]
ldr r0, [r5]
ldr r1, _08036484 @ =0x000003DE
adds r2, r0, r1
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0x26
bne _0803648C
movs r1, #0x2a
strb r1, [r2]
ldr r0, [r5]
ldr r2, _08036488 @ =0x000003E2
adds r0, r0, r2
b _08036496
.align 2, 0
_08036484: .4byte 0x000003DE
_08036488: .4byte 0x000003E2
_0803648C:
movs r1, #0x35
strb r1, [r2]
ldr r0, [r5]
ldr r3, _0803652C @ =0x000003E2
adds r0, r0, r3
_08036496:
strh r1, [r0]
ldr r0, _08036530 @ =gUnknown_020314E0
ldr r0, [r0]
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0
_080364A4:
strh r1, [r0]
_080364A6:
ldr r2, _08036534 @ =gUnknown_086AE718
ldr r7, _08036530 @ =gUnknown_020314E0
ldr r4, [r7]
ldr r6, _0803652C @ =0x000003E2
adds r3, r4, r6
movs r5, #0
ldrsh r1, [r3, r5]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _080364CE
b _08036BD0
_080364CE:
movs r0, #0
strh r0, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
movs r5, #0
ldrsh r1, [r3, r5]
ldr r5, _08036538 @ =0x000003DE
adds r0, r4, r5
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r2, #4
cmp r1, r0
bne _080364EC
strh r2, [r3]
_080364EC:
ldr r0, [r7]
adds r1, r0, r6
movs r2, #0
ldrsh r1, [r1, r2]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
cmp r1, r0
bne _0803650A
ldr r0, _0803653C @ =gMPlayInfo_SE1
ldr r1, _08036540 @ =gUnknown_086A1C00
bl MPlayStart
_0803650A:
ldr r0, [r7]
adds r1, r0, r6
movs r3, #0
ldrsh r1, [r1, r3]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #3
cmp r1, r0
beq _08036522
b _08036C9E
_08036522:
ldr r0, _0803653C @ =gMPlayInfo_SE1
ldr r1, _08036540 @ =gUnknown_086A1C00
bl MPlayStart
b _08036C9E
.align 2, 0
_0803652C: .4byte 0x000003E2
_08036530: .4byte gUnknown_020314E0
_08036534: .4byte gUnknown_086AE718
_08036538: .4byte 0x000003DE
_0803653C: .4byte gMPlayInfo_SE1
_08036540: .4byte gUnknown_086A1C00
_08036544:
ldr r2, _080365A0 @ =gUnknown_086AE718
mov r5, r8
ldr r4, [r5]
ldr r0, _080365A4 @ =0x000003E2
adds r3, r4, r0
movs r5, #0
ldrsh r1, [r3, r5]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r2, r4, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bhi _08036652
movs r0, #0
strh r0, [r2]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
movs r5, #0
ldrsh r1, [r3, r5]
ldr r3, _080365A8 @ =0x000003DE
adds r0, r4, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #6
cmp r1, r0
beq _0803658A
b _08036C9E
_0803658A:
ldr r5, _080365AC @ =0x0000040E
adds r0, r4, r5
ldrh r0, [r0]
cmp r0, #7
bhi _080365B0
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #3
strb r0, [r1]
b _080365DC
.align 2, 0
_080365A0: .4byte gUnknown_086AE718
_080365A4: .4byte 0x000003E2
_080365A8: .4byte 0x000003DE
_080365AC: .4byte 0x0000040E
_080365B0:
ldr r3, _080365C4 @ =0x000003F5
adds r1, r4, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _080365C8
movs r0, #0x14
strh r0, [r2]
b _080365CE
.align 2, 0
_080365C4: .4byte 0x000003F5
_080365C8:
strh r0, [r2]
movs r0, #1
strb r0, [r1]
_080365CE:
mov r4, r8
ldr r0, [r4]
movs r5, #0xf7
lsls r5, r5, #2
adds r0, r0, r5
movs r1, #5
strb r1, [r0]
_080365DC:
bl Random
ldr r1, _08036618 @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #3
ldr r4, _0803661C @ =gUnknown_020314E0
ldr r2, [r4]
ldr r3, _08036620 @ =gUnknown_086AE9E4
ands r0, r1
movs r1, #0xfd
lsls r1, r1, #2
adds r2, r2, r1
movs r1, #0
ldrsb r1, [r2, r1]
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
ldrb r0, [r0]
strb r0, [r2]
ldr r1, [r4]
ldr r2, _08036624 @ =0x000003DE
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #5
ldr r3, _08036628 @ =0x000003E2
b _0803688A
.align 2, 0
_08036618: .4byte gMain
_0803661C: .4byte gUnknown_020314E0
_08036620: .4byte gUnknown_086AE9E4
_08036624: .4byte 0x000003DE
_08036628: .4byte 0x000003E2
_0803662C:
ldr r2, _08036658 @ =gUnknown_086AE718
mov r5, r8
ldr r4, [r5]
ldr r0, _0803665C @ =0x000003E2
adds r3, r4, r0
movs r5, #0
ldrsh r1, [r3, r5]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r2, r4, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _08036660
_08036652:
adds r0, r1, #1
strh r0, [r2]
b _08036C9E
.align 2, 0
_08036658: .4byte gUnknown_086AE718
_0803665C: .4byte 0x000003E2
_08036660:
movs r0, #0
strh r0, [r2]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
movs r5, #0
ldrsh r1, [r3, r5]
ldr r3, _08036698 @ =0x000003DE
adds r0, r4, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #2
cmp r1, r0
beq _08036680
b _08036C9E
_08036680:
ldr r5, _0803669C @ =0x0000040E
adds r0, r4, r5
ldrh r0, [r0]
cmp r0, #7
bhi _080366A0
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #3
strb r0, [r1]
b _080366CC
.align 2, 0
_08036698: .4byte 0x000003DE
_0803669C: .4byte 0x0000040E
_080366A0:
ldr r3, _080366B4 @ =0x000003F5
adds r1, r4, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _080366B8
movs r0, #0x14
strh r0, [r2]
b _080366BE
.align 2, 0
_080366B4: .4byte 0x000003F5
_080366B8:
strh r0, [r2]
movs r0, #1
strb r0, [r1]
_080366BE:
mov r4, r8
ldr r0, [r4]
movs r5, #0xf7
lsls r5, r5, #2
adds r0, r0, r5
movs r1, #5
strb r1, [r0]
_080366CC:
bl Random
ldr r1, _08036708 @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #3
ldr r4, _0803670C @ =gUnknown_020314E0
ldr r2, [r4]
ldr r3, _08036710 @ =gUnknown_086AE9E4
ands r0, r1
movs r1, #0xfd
lsls r1, r1, #2
adds r2, r2, r1
movs r1, #0
ldrsb r1, [r2, r1]
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
ldrb r0, [r0]
strb r0, [r2]
ldr r1, [r4]
ldr r2, _08036714 @ =0x000003DE
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
ldr r3, _08036718 @ =0x000003E2
b _0803688A
.align 2, 0
_08036708: .4byte gMain
_0803670C: .4byte gUnknown_020314E0
_08036710: .4byte gUnknown_086AE9E4
_08036714: .4byte 0x000003DE
_08036718: .4byte 0x000003E2
_0803671C:
mov r4, r8
ldr r0, [r4]
movs r5, #0xf7
lsls r5, r5, #2
adds r0, r0, r5
movs r1, #0xa
strb r1, [r0]
ldr r0, _08036750 @ =gMain
ldr r3, [r0, #0x4c]
movs r4, #1
ands r3, r4
cmp r3, #0
beq _08036774
mov r0, r8
ldr r2, [r0]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r2, r1
movs r3, #0
ldrsh r1, [r0, r3]
ldr r0, _08036754 @ =0xFFFFFD80
cmp r1, r0
bge _08036758
adds r5, #0x1a
b _080367A6
.align 2, 0
_08036750: .4byte gMain
_08036754: .4byte 0xFFFFFD80
_08036758:
ldr r3, _0803676C @ =0x000003F6
adds r1, r2, r3
movs r0, #0
strb r0, [r1]
mov r4, r8
ldr r0, [r4]
ldr r5, _08036770 @ =0x000003DE
adds r0, r0, r5
movs r1, #0x1b
b _080367B4
.align 2, 0
_0803676C: .4byte 0x000003F6
_08036770: .4byte 0x000003DE
_08036774:
mov r0, r8
ldr r2, [r0]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r2, r1
movs r5, #0
ldrsh r1, [r0, r5]
movs r0, #0xa0
lsls r0, r0, #2
cmp r1, r0
ble _080367A4
ldr r1, _0803679C @ =0x000003F6
adds r0, r2, r1
strb r3, [r0]
mov r2, r8
ldr r0, [r2]
ldr r3, _080367A0 @ =0x000003DE
adds r0, r0, r3
movs r1, #0x1b
b _080367B4
.align 2, 0
_0803679C: .4byte 0x000003F6
_080367A0: .4byte 0x000003DE
_080367A4:
ldr r5, _080367F0 @ =0x000003F6
_080367A6:
adds r0, r2, r5
strb r4, [r0]
mov r1, r8
ldr r0, [r1]
ldr r2, _080367F4 @ =0x000003DE
adds r0, r0, r2
movs r1, #0x20
_080367B4:
strb r1, [r0]
mov r3, r8
ldr r0, [r3]
ldr r4, _080367F8 @ =0x000003FA
adds r1, r0, r4
movs r5, #0
ldrsh r0, [r1, r5]
cmp r0, #0xf
bgt _080367CA
movs r0, #0
strh r0, [r1]
_080367CA:
mov r0, r8
ldr r1, [r0]
ldr r2, _080367F4 @ =0x000003DE
adds r0, r1, r2
movs r2, #0
ldrsb r2, [r0, r2]
ldr r3, _080367FC @ =0x000003E2
adds r0, r1, r3
movs r3, #0
strh r2, [r0]
movs r4, #0xf9
lsls r4, r4, #2
adds r1, r1, r4
strh r3, [r1]
ldr r0, _08036800 @ =gMPlayInfo_SE1
ldr r1, _08036804 @ =gUnknown_086A1C64
bl MPlayStart
b _08036C9E
.align 2, 0
_080367F0: .4byte 0x000003F6
_080367F4: .4byte 0x000003DE
_080367F8: .4byte 0x000003FA
_080367FC: .4byte 0x000003E2
_08036800: .4byte gMPlayInfo_SE1
_08036804: .4byte gUnknown_086A1C64
_08036808:
ldr r2, _08036890 @ =gUnknown_086AE718
mov r0, r8
ldr r5, [r0]
ldr r3, _08036894 @ =0x000003E2
adds r4, r5, r3
movs r0, #0
ldrsh r1, [r4, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r5, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08036830
b _08036BD0
_08036830:
movs r0, #0
strh r0, [r1]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
movs r0, #0
ldrsh r1, [r4, r0]
ldr r4, _08036898 @ =0x000003DE
adds r0, r5, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
cmp r1, r0
bne _08036858
movs r2, #0xff
lsls r2, r2, #2
adds r1, r5, r2
movs r0, #0x17
strh r0, [r1]
_08036858:
mov r5, r8
ldr r2, [r5]
adds r0, r2, r3
movs r5, #0
ldrsh r1, [r0, r5]
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #2
cmp r1, r0
beq _08036872
b _08036C9E
_08036872:
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #0xd
strb r0, [r1]
mov r2, r8
ldr r1, [r2]
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
_0803688A:
adds r1, r1, r3
strh r0, [r1]
b _08036C9E
.align 2, 0
_08036890: .4byte gUnknown_086AE718
_08036894: .4byte 0x000003E2
_08036898: .4byte 0x000003DE
_0803689C:
mov r3, r8
ldr r0, [r3]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r0, r4
movs r3, #0
movs r1, #0xc
strb r1, [r0]
mov r5, r8
ldr r1, [r5]
ldr r2, _080368F0 @ =0x000003DE
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #2
adds r4, #6
adds r2, r1, r4
strh r0, [r2]
movs r5, #0xf9
lsls r5, r5, #2
adds r0, r1, r5
strh r3, [r0]
ldr r2, _080368F4 @ =0x000003FA
adds r0, r1, r2
strh r3, [r0]
ldr r0, _080368F8 @ =0x0007A120
str r0, [r1, #0x3c]
ldr r3, _080368FC @ =0x00000385
adds r1, r1, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, _08036900 @ =gMPlayInfo_SE1
ldr r1, _08036904 @ =gUnknown_086A1C88
bl MPlayStart
movs r0, #7
bl sub_11B0
b _08036C9E
.align 2, 0
_080368F0: .4byte 0x000003DE
_080368F4: .4byte 0x000003FA
_080368F8: .4byte 0x0007A120
_080368FC: .4byte 0x00000385
_08036900: .4byte gMPlayInfo_SE1
_08036904: .4byte gUnknown_086A1C88
_08036908:
ldr r2, _08036970 @ =gUnknown_086AE718
mov r5, r8
ldr r4, [r5]
ldr r0, _08036974 @ =0x000003E2
adds r3, r4, r0
movs r5, #0
ldrsh r1, [r3, r5]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08036930
b _08036BD0
_08036930:
movs r6, #0
movs r5, #0
strh r5, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
movs r0, #0
ldrsh r1, [r3, r0]
ldr r2, _08036978 @ =0x000003DE
adds r0, r4, r2
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r2, #4
cmp r1, r0
beq _08036950
b _08036C9E
_08036950:
adds r0, r2, #3
strh r0, [r3]
ldr r3, _0803697C @ =0x00000385
adds r0, r4, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bgt _08036980
movs r5, #0xf7
lsls r5, r5, #2
adds r1, r4, r5
movs r0, #0xd
strb r0, [r1]
b _08036C9E
.align 2, 0
_08036970: .4byte gUnknown_086AE718
_08036974: .4byte 0x000003E2
_08036978: .4byte 0x000003DE
_0803697C: .4byte 0x00000385
_08036980:
movs r0, #0xa5
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #3
strb r0, [r1]
ldr r1, _080369D8 @ =gMain
movs r0, #0x80
strb r0, [r1, #0xf]
mov r1, r8
ldr r0, [r1]
movs r2, #0xe2
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #2
strb r1, [r0]
mov r3, r8
ldr r0, [r3]
ldr r4, _080369DC @ =0x00000392
adds r1, r0, r4
strh r5, [r1]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0xd
strb r1, [r0]
ldr r0, [r3]
adds r2, #0x7c
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r3]
movs r3, #0x81
lsls r3, r3, #3
adds r1, r0, r3
strh r5, [r1]
adds r4, #0x74
adds r0, r0, r4
strb r6, [r0]
mov r5, r8
ldr r0, [r5]
ldr r1, _080369E0 @ =0x00000387
adds r0, r0, r1
strb r6, [r0]
b _08036C9E
.align 2, 0
_080369D8: .4byte gMain
_080369DC: .4byte 0x00000392
_080369E0: .4byte 0x00000387
_080369E4:
mov r2, r8
ldr r1, [r2]
ldr r3, _08036A0C @ =0x000003DE
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #4
ldr r4, _08036A10 @ =0x000003E2
adds r2, r1, r4
strh r0, [r2]
movs r5, #0xf9
lsls r5, r5, #2
adds r3, r1, r5
ldrh r0, [r3]
cmp r0, #7
bhi _08036A14
adds r0, #1
strh r0, [r3]
b _08036C9E
.align 2, 0
_08036A0C: .4byte 0x000003DE
_08036A10: .4byte 0x000003E2
_08036A14:
ldr r3, _08036A40 @ =0x00000385
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
ble _08036A98
ldr r4, _08036A44 @ =0x000003F6
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08036A48
movs r0, #0x48
strh r0, [r2]
movs r5, #0xfa
lsls r5, r5, #2
adds r1, r1, r5
ldrh r0, [r1]
subs r0, #0xf0
b _08036A56
.align 2, 0
_08036A40: .4byte 0x00000385
_08036A44: .4byte 0x000003F6
_08036A48:
movs r0, #0x49
strh r0, [r2]
movs r0, #0xfa
lsls r0, r0, #2
adds r1, r1, r0
ldrh r0, [r1]
adds r0, #0xf0
_08036A56:
strh r0, [r1]
mov r1, r8
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #5
strb r1, [r0]
mov r3, r8
ldr r0, [r3]
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0x14
strh r1, [r0]
bl Random
mov r5, r8
ldr r2, [r5]
ldr r1, _08036A94 @ =gMain
ldr r1, [r1, #0x4c]
muls r0, r1, r0
movs r1, #3
ands r0, r1
adds r0, #3
movs r1, #0xfd
lsls r1, r1, #2
adds r2, r2, r1
strb r0, [r2]
b _08036C9E
.align 2, 0
_08036A94: .4byte gMain
_08036A98:
ldr r3, _08036AC4 @ =0x000003FA
adds r0, r1, r3
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0xf
bgt _08036B18
ldr r5, _08036AC8 @ =0x000003F6
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08036ACC
movs r0, #0x48
strh r0, [r2]
movs r0, #0xfa
lsls r0, r0, #2
adds r1, r1, r0
ldrh r0, [r1]
subs r0, #0xf0
b _08036ADA
.align 2, 0
_08036AC4: .4byte 0x000003FA
_08036AC8: .4byte 0x000003F6
_08036ACC:
movs r0, #0x49
strh r0, [r2]
movs r2, #0xfa
lsls r2, r2, #2
adds r1, r1, r2
ldrh r0, [r1]
adds r0, #0xf0
_08036ADA:
strh r0, [r1]
mov r3, r8
ldr r0, [r3]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #5
strb r1, [r0]
ldr r0, [r3]
movs r5, #0xf9
lsls r5, r5, #2
adds r0, r0, r5
movs r1, #0x14
strh r1, [r0]
bl Random
mov r1, r8
ldr r2, [r1]
ldr r1, _08036B14 @ =gMain
ldr r1, [r1, #0x4c]
muls r0, r1, r0
movs r1, #3
ands r0, r1
adds r0, #3
movs r3, #0xfd
lsls r3, r3, #2
adds r2, r2, r3
strb r0, [r2]
b _08036C9E
.align 2, 0
_08036B14: .4byte gMain
_08036B18:
ldr r4, _08036B38 @ =0x000003F6
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08036B3C
movs r0, #0x48
strh r0, [r2]
movs r5, #0xfa
lsls r5, r5, #2
adds r1, r1, r5
ldrh r0, [r1]
subs r0, #0xf0
b _08036B4A
.align 2, 0
_08036B38: .4byte 0x000003F6
_08036B3C:
movs r0, #0x49
strh r0, [r2]
movs r0, #0xfa
lsls r0, r0, #2
adds r1, r1, r0
ldrh r0, [r1]
adds r0, #0xf0
_08036B4A:
strh r0, [r1]
mov r2, r8
ldr r1, [r2]
movs r3, #0xf9
lsls r3, r3, #2
adds r2, r1, r3
movs r0, #0
strh r0, [r2]
ldr r4, _08036B70 @ =0x0000040E
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #7
bhi _08036B74
movs r5, #0xf7
lsls r5, r5, #2
adds r1, r1, r5
movs r0, #3
strb r0, [r1]
b _08036C9E
.align 2, 0
_08036B70: .4byte 0x0000040E
_08036B74:
ldr r0, _08036B88 @ =0x000003F5
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08036B8C
movs r0, #0x14
strh r0, [r2]
b _08036B92
.align 2, 0
_08036B88: .4byte 0x000003F5
_08036B8C:
strh r0, [r2]
movs r0, #1
strb r0, [r1]
_08036B92:
mov r1, r8
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #5
strb r1, [r0]
b _08036C9E
_08036BA2:
mov r3, r8
ldr r4, [r3]
ldr r5, _08036BD8 @ =0x000003FA
adds r0, r4, r5
movs r5, #0
strh r5, [r0]
ldr r2, _08036BDC @ =gUnknown_086AE718
ldr r6, _08036BE0 @ =0x000003E2
adds r3, r4, r6
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08036BE4
_08036BD0:
adds r0, r2, #1
strh r0, [r1]
b _08036C9E
.align 2, 0
_08036BD8: .4byte 0x000003FA
_08036BDC: .4byte gUnknown_086AE718
_08036BE0: .4byte 0x000003E2
_08036BE4:
strh r5, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
movs r5, #0
ldrsh r1, [r3, r5]
ldr r5, _08036C50 @ =0x000003DE
adds r0, r4, r5
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r2, #0
adds r0, #0x13
cmp r1, r0
bne _08036C0E
subs r0, #1
strh r0, [r3]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #0xf
strb r0, [r1]
_08036C0E:
mov r1, r8
ldr r0, [r1]
adds r1, r0, r6
movs r2, #0
ldrsh r1, [r1, r2]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #6
cmp r1, r0
bne _08036C2E
ldr r0, _08036C54 @ =gMPlayInfo_SE1
ldr r1, _08036C58 @ =gUnknown_086A1CCC
bl MPlayStart
_08036C2E:
mov r3, r8
ldr r0, [r3]
adds r1, r0, r6
movs r4, #0
ldrsh r1, [r1, r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #8
cmp r1, r0
bne _08036C9E
ldr r0, _08036C54 @ =gMPlayInfo_SE1
ldr r1, _08036C5C @ =gUnknown_086A1D64
bl MPlayStart
b _08036C9E
.align 2, 0
_08036C50: .4byte 0x000003DE
_08036C54: .4byte gMPlayInfo_SE1
_08036C58: .4byte gUnknown_086A1CCC
_08036C5C: .4byte gUnknown_086A1D64
_08036C60:
mov r5, r8
ldr r2, [r5]
movs r3, #0xf9
lsls r3, r3, #2
adds r0, r2, r3
ldrh r1, [r0]
cmp r1, #0x63
bhi _08036C88
cmp r1, #0
bne _08036C7C
movs r0, #2
strb r0, [r2, #0x13]
ldr r0, [r5]
strh r1, [r0, #0x18]
_08036C7C:
mov r0, r8
ldr r1, [r0]
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_08036C88:
mov r1, r8
ldr r0, [r1]
ldr r2, _08036CAC @ =0x000003DE
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r1, #0xf
ldr r3, _08036CB0 @ =0x000003E2
adds r0, r0, r3
strh r1, [r0]
_08036C9E:
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08036CAC: .4byte 0x000003DE
_08036CB0: .4byte 0x000003E2
thumb_func_start sub_36CB4
sub_36CB4: @ 0x08036CB4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r0, _08036DBC @ =gUnknown_02031590
ldrb r1, [r0, #0x17]
movs r0, #0xb8
muls r1, r0, r1
ldr r0, _08036DC0 @ =gUnknown_0200B3B8
adds r5, r1, r0
ldrh r0, [r5]
cmp r0, #0
bne _08036CD4
b _080372A2
_08036CD4:
ldr r0, _08036DC4 @ =gUnknown_020314E0
mov sb, r0
ldr r0, [r0]
ldr r1, _08036DC8 @ =0x000003DF
adds r3, r0, r1
movs r2, #0
ldrsb r2, [r3, r2]
lsls r2, r2, #0x10
ldr r6, _08036DCC @ =gUnknown_086AE718
ldr r4, _08036DD0 @ =0x000003E2
adds r0, r0, r4
movs r7, #0
ldrsh r1, [r0, r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r6, #4
adds r0, r0, r1
ldrh r0, [r0]
strb r0, [r3]
ldr r3, _08036DD4 @ =0x040000D4
lsrs r0, r2, #0x10
str r0, [sp]
asrs r2, r2, #0x10
lsls r0, r2, #2
adds r0, r0, r2
lsls r0, r0, #7
ldr r1, _08036DD8 @ =gUnknown_0844F98C
adds r0, r0, r1
str r0, [r3]
ldr r0, _08036DDC @ =0x06010920
str r0, [r3, #4]
ldr r0, _08036DE0 @ =0x80000140
str r0, [r3, #8]
ldr r0, [r3, #8]
mov r1, sb
ldr r7, [r1]
adds r4, r7, r4
movs r2, #0
ldrsh r1, [r4, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r6
ldrh r0, [r0]
mov sl, r0
movs r3, #0xfa
lsls r3, r3, #2
adds r6, r7, r3
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x68
adds r1, r7, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r5, #2]
ldr r2, _08036DE4 @ =0x000003EA
adds r2, r2, r7
mov r8, r2
movs r3, #0
ldrsh r0, [r2, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x1c
adds r1, r7, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r5, #4]
ldrh r4, [r4]
adds r0, r4, #0
subs r0, #0x1c
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bhi _08036DF4
movs r4, #0
ldrsh r0, [r6, r4]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x90
movs r2, #0xfc
lsls r2, r2, #2
adds r1, r7, r2
strh r0, [r1]
mov r3, r8
movs r4, #0
ldrsh r0, [r3, r4]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x54
ldr r2, _08036DE8 @ =0x000003F2
adds r1, r7, r2
strh r0, [r1]
ldr r3, _08036DEC @ =0x00000385
adds r0, r7, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bgt _08036E9A
ldr r4, _08036DF0 @ =0x00000387
adds r1, r7, r4
movs r0, #2
b _08036E98
.align 2, 0
_08036DBC: .4byte gUnknown_02031590
_08036DC0: .4byte gUnknown_0200B3B8
_08036DC4: .4byte gUnknown_020314E0
_08036DC8: .4byte 0x000003DF
_08036DCC: .4byte gUnknown_086AE718
_08036DD0: .4byte 0x000003E2
_08036DD4: .4byte 0x040000D4
_08036DD8: .4byte gUnknown_0844F98C
_08036DDC: .4byte 0x06010920
_08036DE0: .4byte 0x80000140
_08036DE4: .4byte 0x000003EA
_08036DE8: .4byte 0x000003F2
_08036DEC: .4byte 0x00000385
_08036DF0: .4byte 0x00000387
_08036DF4:
adds r0, r4, #0
subs r0, #0x21
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bhi _08036E54
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xf0
movs r2, #0xfc
lsls r2, r2, #2
adds r1, r7, r2
strh r0, [r1]
mov r3, r8
movs r4, #0
ldrsh r0, [r3, r4]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x54
ldr r2, _08036E48 @ =0x000003F2
adds r1, r7, r2
strh r0, [r1]
ldr r3, _08036E4C @ =0x00000385
adds r0, r7, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bgt _08036E9A
ldr r4, _08036E50 @ =0x00000387
adds r1, r7, r4
movs r0, #2
b _08036E98
.align 2, 0
_08036E48: .4byte 0x000003F2
_08036E4C: .4byte 0x00000385
_08036E50: .4byte 0x00000387
_08036E54:
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xd0
movs r2, #0xfc
lsls r2, r2, #2
adds r1, r7, r2
strh r0, [r1]
mov r3, r8
movs r4, #0
ldrsh r0, [r3, r4]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x38
ldr r2, _08036EDC @ =0x000003F2
adds r1, r7, r2
strh r0, [r1]
ldr r3, _08036EE0 @ =0x00000385
adds r0, r7, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bgt _08036E9A
ldr r4, _08036EE4 @ =0x00000387
adds r1, r7, r4
movs r0, #1
_08036E98:
strb r0, [r1]
_08036E9A:
ldr r7, _08036EE8 @ =gUnknown_020314E0
ldr r4, [r7]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x78
movs r3, #0x80
lsls r3, r3, #3
adds r1, r4, r3
strh r0, [r1]
ldr r7, _08036EEC @ =0x000003EA
adds r0, r4, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x3a
ldr r2, _08036EF0 @ =0x00000402
adds r1, r4, r2
strh r0, [r1]
ldr r3, _08036EF4 @ =0x0000040E
adds r0, r4, r3
ldrh r0, [r0]
cmp r0, #7
bls _08036EF8
adds r7, #0xd
b _08036F16
.align 2, 0
_08036EDC: .4byte 0x000003F2
_08036EE0: .4byte 0x00000385
_08036EE4: .4byte 0x00000387
_08036EE8: .4byte gUnknown_020314E0
_08036EEC: .4byte 0x000003EA
_08036EF0: .4byte 0x00000402
_08036EF4: .4byte 0x0000040E
_08036EF8:
ldr r1, _08036F0C @ =0x000003FA
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xf
ble _08036F14
ldr r3, _08036F10 @ =0x000003F7
adds r1, r4, r3
movs r0, #0
b _08036F1A
.align 2, 0
_08036F0C: .4byte 0x000003FA
_08036F10: .4byte 0x000003F7
_08036F14:
ldr r7, _08036FD8 @ =0x000003F7
_08036F16:
adds r1, r4, r7
movs r0, #1
_08036F1A:
strb r0, [r1]
movs r7, #0
ldr r0, _08036FDC @ =gOamBuffer
mov r8, r0
mov r1, sl
lsls r1, r1, #0x10
str r1, [sp, #4]
mov ip, r8
asrs r1, r1, #0x10
mov sb, r1
movs r2, #0xf
mov sl, r2
_08036F32:
lsls r2, r7, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r6, r5, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r3, ip
adds r4, r0, r3
mov r0, sb
lsls r1, r0, #1
add r1, sb
lsls r1, r1, #2
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #1
ldr r2, _08036FE0 @ =gUnknown_086B9DAC
adds r0, r0, r2
adds r1, r1, r0
ldrh r0, [r1]
strh r0, [r4]
adds r1, #2
adds r4, #2
ldrh r0, [r1]
strh r0, [r4]
ldrh r0, [r1, #2]
strh r0, [r4, #2]
ldr r3, _08036FE4 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _08036FD8 @ =0x000003F7
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08037008
ldrh r2, [r6]
lsls r2, r2, #3
add r2, r8
ldrh r3, [r2, #2]
lsls r1, r3, #0x17
lsrs r1, r1, #0x17
movs r4, #2
ldrsh r0, [r5, r4]
adds r1, r1, r0
ldr r4, _08036FE8 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldr r0, _08036FEC @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r5, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldr r3, _08036FE4 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _08036FF0 @ =0x000003DF
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
bne _08036FF4
movs r2, #0xf9
lsls r2, r2, #2
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #9
bhi _08036FF4
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r2, #5]
mov r0, sl
ands r0, r1
movs r1, #0xa0
b _08037002
.align 2, 0
_08036FD8: .4byte 0x000003F7
_08036FDC: .4byte gOamBuffer
_08036FE0: .4byte gUnknown_086B9DAC
_08036FE4: .4byte gUnknown_020314E0
_08036FE8: .4byte 0x000001FF
_08036FEC: .4byte 0xFFFFFE00
_08036FF0: .4byte 0x000003DF
_08036FF4:
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r2, #5]
mov r0, sl
ands r0, r1
movs r1, #0x20
_08037002:
orrs r0, r1
strb r0, [r2, #5]
b _08037024
_08037008:
ldrh r2, [r6]
lsls r2, r2, #3
add r2, r8
ldrh r1, [r2, #2]
ldr r0, _08037120 @ =0xFFFFFE00
ands r0, r1
movs r1, #0xf0
orrs r0, r1
strh r0, [r2, #2]
ldrh r0, [r6]
lsls r0, r0, #3
add r0, r8
movs r1, #0xb4
strb r1, [r0]
_08037024:
lsls r0, r7, #0x10
movs r3, #0x80
lsls r3, r3, #9
adds r0, r0, r3
lsrs r7, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _08037036
b _08036F32
_08037036:
ldr r5, _08037124 @ =gUnknown_0200CA00
ldr r7, _08037128 @ =gUnknown_020314E0
ldr r4, [r7]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x68
adds r4, #0x58
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r5, #2]
ldr r4, [r7]
ldr r3, _0803712C @ =0x000003EA
adds r0, r4, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
adds r0, #0x3c
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r5, #4]
movs r7, #0
ldr r0, _08037130 @ =gOamBuffer
mov ip, r0
ldr r1, [sp, #4]
asrs r1, r1, #0x10
mov sb, r1
movs r2, #0xf
mov sl, r2
_08037080:
lsls r3, r7, #0x10
asrs r2, r3, #0x10
lsls r0, r2, #3
adds r0, #8
adds r6, r5, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r7, ip
adds r4, r0, r7
mov r0, sb
lsls r1, r0, #1
add r1, sb
lsls r1, r1, #2
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #1
ldr r2, _08037134 @ =gUnknown_086B9AB8
adds r0, r0, r2
adds r1, r1, r0
ldrh r0, [r1]
strh r0, [r4]
adds r1, #2
adds r4, #2
ldrh r0, [r1]
strh r0, [r4]
ldrh r0, [r1, #2]
strh r0, [r4, #2]
ldr r4, _08037128 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _08037138 @ =0x000003F7
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r4, r3, #0
cmp r0, #0
beq _08037154
ldrh r2, [r6]
lsls r2, r2, #3
add r2, r8
ldrh r3, [r2, #2]
lsls r1, r3, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r5, r7]
adds r1, r1, r0
ldr r7, _0803713C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldr r0, _08037120 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r5, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldr r3, [sp]
cmp r3, #0x14
bne _08037140
ldr r7, _08037128 @ =gUnknown_020314E0
ldr r0, [r7]
movs r1, #0xf9
lsls r1, r1, #2
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #9
bhi _08037140
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r2, #5]
mov r0, sl
ands r0, r1
movs r1, #0xb0
b _0803714E
.align 2, 0
_08037120: .4byte 0xFFFFFE00
_08037124: .4byte gUnknown_0200CA00
_08037128: .4byte gUnknown_020314E0
_0803712C: .4byte 0x000003EA
_08037130: .4byte gOamBuffer
_08037134: .4byte gUnknown_086B9AB8
_08037138: .4byte 0x000003F7
_0803713C: .4byte 0x000001FF
_08037140:
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r2, #5]
mov r0, sl
ands r0, r1
movs r1, #0x40
_0803714E:
orrs r0, r1
strb r0, [r2, #5]
b _08037170
_08037154:
ldrh r2, [r6]
lsls r2, r2, #3
add r2, r8
ldrh r1, [r2, #2]
ldr r0, _08037208 @ =0xFFFFFE00
ands r0, r1
movs r1, #0xf0
orrs r0, r1
strh r0, [r2, #2]
ldrh r0, [r6]
lsls r0, r0, #3
add r0, r8
movs r1, #0xb4
strb r1, [r0]
_08037170:
movs r2, #0x80
lsls r2, r2, #9
adds r0, r4, r2
lsrs r7, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _08037180
b _08037080
_08037180:
ldr r5, _0803720C @ =gUnknown_0200BA30
ldr r3, _08037210 @ =gUnknown_020314E0
ldr r2, [r3]
movs r4, #0xfe
lsls r4, r4, #2
adds r0, r2, r4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r3, r0, r1
movs r6, #0xff
lsls r6, r6, #2
adds r2, r2, r6
movs r7, #0
ldrsh r0, [r2, r7]
cmp r0, #0
bge _080371A4
adds r0, #7
_080371A4:
asrs r0, r0, #3
subs r0, #2
ldr r1, _08037214 @ =0x040000D4
subs r0, r3, r0
lsls r0, r0, #8
ldr r2, _08037218 @ =gUnknown_0845588C
adds r0, r0, r2
str r0, [r1]
ldr r0, _0803721C @ =0x06010BA0
str r0, [r1, #4]
ldr r0, _08037220 @ =0x80000080
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r3, _08037210 @ =gUnknown_020314E0
ldr r4, [r3]
adds r1, r4, r6
ldrh r2, [r1]
movs r7, #0
ldrsh r0, [r1, r7]
cmp r0, #0
ble _08037228
subs r0, r2, #1
strh r0, [r1]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x68
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r5, #2]
ldr r3, _08037224 @ =0x000003EA
adds r0, r4, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
adds r0, #0x1a
b _0803722E
.align 2, 0
_08037208: .4byte 0xFFFFFE00
_0803720C: .4byte gUnknown_0200BA30
_08037210: .4byte gUnknown_020314E0
_08037214: .4byte 0x040000D4
_08037218: .4byte gUnknown_0845588C
_0803721C: .4byte 0x06010BA0
_08037220: .4byte 0x80000080
_08037224: .4byte 0x000003EA
_08037228:
movs r0, #0
strh r0, [r5, #2]
movs r0, #0xb4
_0803722E:
strh r0, [r5, #4]
adds r6, r5, #0
adds r6, #8
ldrh r2, [r5, #8]
lsls r2, r2, #3
add r2, r8
movs r0, #2
ldrsh r1, [r6, r0]
movs r3, #2
ldrsh r0, [r5, r3]
adds r1, r1, r0
ldr r4, _08037284 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08037288 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5, #8]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r5, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
ldr r7, _0803728C @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _08037290 @ =0x000003F6
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08037294
ldrh r0, [r5, #8]
lsls r0, r0, #3
add r0, r8
ldrb r2, [r0, #3]
movs r1, #0x11
rsbs r1, r1, #0
ands r1, r2
b _080372A0
.align 2, 0
_08037284: .4byte 0x000001FF
_08037288: .4byte 0xFFFFFE00
_0803728C: .4byte gUnknown_020314E0
_08037290: .4byte 0x000003F6
_08037294:
ldrh r0, [r5, #8]
lsls r0, r0, #3
add r0, r8
ldrb r1, [r0, #3]
movs r2, #0x10
orrs r1, r2
_080372A0:
strb r1, [r0, #3]
_080372A2:
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 sub_372B4
sub_372B4: @ 0x080372B4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _08037478 @ =gUnknown_0200C4F8
mov sl, r0
ldrh r0, [r0]
cmp r0, #0
bne _080372CA
b _08037500
_080372CA:
ldr r1, _0803747C @ =gUnknown_020314E0
mov sb, r1
ldr r1, [r1]
ldr r2, _08037480 @ =0x00000404
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080372E0
b _080374C0
_080372E0:
ldr r3, _08037484 @ =0x0000040A
mov r8, r3
adds r0, r1, r3
ldrh r5, [r0]
cmp r5, #0
bne _08037318
bl Random
mov r1, sb
ldr r4, [r1]
ldr r1, _08037488 @ =0xFFFFEBC8
add r1, sl
ldr r1, [r1, #0x4c]
muls r0, r1, r0
movs r1, #5
bl __umodsi3
ldr r2, _0803748C @ =0x00000405
adds r4, r4, r2
strb r0, [r4]
mov r3, sb
ldr r0, [r3]
adds r2, #0x11
adds r1, r0, r2
strh r5, [r1]
ldr r3, _08037490 @ =0x0000041A
adds r0, r0, r3
strh r5, [r0]
_08037318:
mov r1, sb
ldr r0, [r1]
mov r2, r8
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0x27
bhi _0803732A
adds r0, #1
strh r0, [r1]
_0803732A:
mov r3, sb
ldr r0, [r3]
add r0, r8
ldrh r0, [r0]
cmp r0, #0x14
bne _0803733C
ldr r0, _08037494 @ =gMPlayInfo_SE2
bl m4aMPlayStop
_0803733C:
mov r1, sb
ldr r0, [r1]
add r0, r8
ldrh r0, [r0]
cmp r0, #0x16
bne _0803734E
ldr r0, _08037498 @ =0x00000105
bl m4aSongNumStart
_0803734E:
mov r2, sb
ldr r4, [r2]
mov r3, r8
adds r0, r4, r3
ldrh r0, [r0]
cmp r0, #0x14
bhi _0803735E
b _080374B4
_0803735E:
ldr r0, _0803749C @ =0x00000414
adds r1, r4, r0
movs r0, #4
strh r0, [r1]
ldr r1, _080374A0 @ =0x00000416
adds r5, r4, r1
ldrh r0, [r5]
adds r0, #3
strh r0, [r5]
ldr r3, _080374A4 @ =gUnknown_086AEA3C
ldr r0, _0803748C @ =0x00000405
adds r2, r4, r0
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #2
adds r0, r0, r3
ldrh r0, [r0]
mov r8, r0
adds r1, #2
adds r0, r4, r1
mov r1, r8
strh r1, [r0]
ldr r0, _08037490 @ =0x0000041A
adds r4, r4, r0
ldrh r0, [r5]
ldrh r1, [r4]
adds r0, r0, r1
strh r0, [r4]
movs r1, #0
ldrsb r1, [r2, r1]
lsls r1, r1, #2
adds r1, r1, r3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldrh r2, [r1, #2]
movs r3, #2
ldrsh r1, [r1, r3]
cmp r0, r1
ble _080373BC
strh r2, [r4]
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #6
bl __divsi3
rsbs r0, r0, #0
strh r0, [r5]
_080373BC:
mov r2, sb
ldr r2, [r2]
mov r8, r2
ldr r0, _080374A8 @ =0x0000132C
add r0, r8
ldr r5, [r0]
movs r3, #0x10
ldrsh r4, [r5, r3]
subs r4, #8
movs r0, #0x83
lsls r0, r0, #3
add r0, r8
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r6, r4, r0
movs r2, #0x12
ldrsh r4, [r5, r2]
subs r4, #8
ldr r0, _08037490 @ =0x0000041A
add r0, r8
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r7, r4, r0
adds r0, r6, #0
muls r0, r6, r0
adds r1, r7, #0
muls r1, r7, r1
adds r0, r0, r1
cmp r0, #0x78
bgt _08037438
ldr r1, _08037480 @ =0x00000404
add r1, r8
movs r0, #0
strb r0, [r1]
mov r6, sb
ldr r0, [r6]
ldr r1, _080374AC @ =0x00000406
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r2, [r6]
movs r3, #0x81
lsls r3, r3, #3
adds r1, r2, r3
movs r0, #0
strh r0, [r1]
ldr r0, _080374B0 @ =0x00002710
str r0, [r2, #0x3c]
movs r0, #0x83
lsls r0, r0, #1
bl m4aSongNumStart
_08037438:
mov r6, sb
ldr r5, [r6]
adds r0, r5, #0
adds r0, #0x58
ldrh r4, [r0]
rsbs r4, r4, #0
movs r1, #0x83
lsls r1, r1, #3
adds r0, r5, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
mov r3, sl
strh r4, [r3, #2]
adds r0, r5, #0
adds r0, #0x5a
ldrh r4, [r0]
rsbs r4, r4, #0
ldr r6, _08037490 @ =0x0000041A
adds r5, r5, r6
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
mov r2, sl
strh r4, [r2, #4]
b _080374C8
.align 2, 0
_08037478: .4byte gUnknown_0200C4F8
_0803747C: .4byte gUnknown_020314E0
_08037480: .4byte 0x00000404
_08037484: .4byte 0x0000040A
_08037488: .4byte 0xFFFFEBC8
_0803748C: .4byte 0x00000405
_08037490: .4byte 0x0000041A
_08037494: .4byte gMPlayInfo_SE2
_08037498: .4byte 0x00000105
_0803749C: .4byte 0x00000414
_080374A0: .4byte 0x00000416
_080374A4: .4byte gUnknown_086AEA3C
_080374A8: .4byte 0x0000132C
_080374AC: .4byte 0x00000406
_080374B0: .4byte 0x00002710
_080374B4:
movs r0, #0
mov r3, sl
strh r0, [r3, #2]
movs r0, #0xb4
strh r0, [r3, #4]
b _080374C8
_080374C0:
mov r6, sl
strh r0, [r6, #2]
movs r0, #0xb4
strh r0, [r6, #4]
_080374C8:
mov r5, sl
adds r5, #8
ldr r4, _08037510 @ =gOamBuffer
mov r0, sl
ldrh r2, [r0, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
movs r6, #2
ldrsh r0, [r0, r6]
adds r1, r1, r0
ldr r3, _08037514 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08037518 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
mov r6, sl
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_08037500:
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
_08037510: .4byte gOamBuffer
_08037514: .4byte 0x000001FF
_08037518: .4byte 0xFFFFFE00
thumb_func_start sub_3751C
sub_3751C: @ 0x0803751C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r1, _08037550 @ =gUnknown_020314E0
ldr r3, [r1]
ldr r0, _08037554 @ =0x00000406
adds r4, r3, r0
movs r0, #0
ldrsb r0, [r4, r0]
mov sb, r1
cmp r0, #0
beq _08037564
movs r1, #0x81
lsls r1, r1, #3
adds r2, r3, r1
ldrh r1, [r2]
ldr r0, _08037558 @ =0x00000257
cmp r1, r0
bhi _0803755C
adds r0, r1, #1
strh r0, [r2]
b _08037564
.align 2, 0
_08037550: .4byte gUnknown_020314E0
_08037554: .4byte 0x00000406
_08037558: .4byte 0x00000257
_0803755C:
movs r1, #0
movs r0, #0
strh r0, [r2]
strb r1, [r4]
_08037564:
mov r2, sb
ldr r1, [r2]
ldr r3, _08037588 @ =0x00000406
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08037590
ldr r0, _0803758C @ =0x0000040E
adds r1, r1, r0
ldrh r0, [r1]
cmp r0, #9
bhi _080375AE
adds r0, #1
strh r0, [r1]
b _080375AE
.align 2, 0
_08037588: .4byte 0x00000406
_0803758C: .4byte 0x0000040E
_08037590:
ldr r2, _080375A4 @ =0x0000040E
adds r3, r1, r2
ldrh r0, [r3]
adds r2, r0, #0
cmp r2, #0
beq _080375A8
subs r0, #1
strh r0, [r3]
b _080375AE
.align 2, 0
_080375A4: .4byte 0x0000040E
_080375A8:
ldr r3, _08037804 @ =0x000003F5
adds r0, r1, r3
strb r2, [r0]
_080375AE:
ldr r3, _08037808 @ =gMain
mov r0, sb
ldr r2, [r0]
ldr r0, _0803780C @ =0x0000040E
adds r1, r2, r0
ldrh r0, [r1]
lsls r0, r0, #4
strh r0, [r3, #0x2e]
ldrh r1, [r1]
lsls r0, r1, #0x16
lsrs r0, r0, #0x10
mov r8, r0
lsls r1, r1, #1
movs r0, #0x14
subs r0, r0, r1
lsls r0, r0, #0x15
lsrs r4, r0, #0x10
movs r1, #0x81
lsls r1, r1, #3
adds r2, r2, r1
ldrh r0, [r2]
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #9
bl __udivsi3
ldr r2, _08037810 @ =gUnknown_086AEA60
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r2
ldrh r1, [r1]
str r1, [sp]
ldr r1, _08037814 @ =gUnknown_086AEA50
lsls r0, r0, #2
adds r0, r0, r1
ldr r5, [r0]
movs r2, #0
mov r3, r8
lsls r0, r3, #0x10
asrs r1, r0, #0x10
cmp r2, r1
bge _0803763A
ldr r0, _08037818 @ =gUnknown_03006400
ldr r3, _0803781C @ =0xFFFFF800
adds r7, r0, r3
movs r6, #0x80
lsls r6, r6, #3
lsls r0, r4, #0x10
asrs r4, r0, #0x10
adds r3, r1, #0
_0803761A:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r2, r1, r6
lsls r2, r2, #1
adds r2, r2, r7
adds r0, r4, r1
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
strh r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r3
blt _0803761A
_0803763A:
mov r0, r8
lsls r1, r0, #0x10
asrs r0, r1, #0x10
ldr r2, _08037820 @ =0x0000027F
cmp r0, r2
bgt _08037662
ldr r5, _08037824 @ =gUnknown_03005C00
movs r4, #0x80
lsls r4, r4, #3
ldr r3, _08037828 @ =0x000003FF
_0803764E:
asrs r0, r1, #0x10
adds r1, r0, r4
lsls r1, r1, #1
adds r1, r1, r5
strh r3, [r1]
adds r0, #1
lsls r1, r0, #0x10
asrs r0, r1, #0x10
cmp r0, r2
ble _0803764E
_08037662:
mov r1, sb
ldr r0, [r1]
movs r4, #0x81
lsls r4, r4, #3
adds r0, r0, r4
ldrh r0, [r0]
movs r1, #0x96
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
lsls r1, r0, #0x10
ldr r2, _0803782C @ =0xFFF60000
adds r0, r1, r2
lsrs r0, r0, #0x10
cmp r0, #0x45
bhi _08037726
movs r3, #0
mov sb, r1
ldr r0, [sp]
lsls r1, r0, #0x10
ldr r2, _08037824 @ =gUnknown_03005C00
mov r8, r2
ldr r0, _08037830 @ =gUnknown_08327994
mov ip, r0
asrs r6, r1, #0xe
adds r7, r4, #0
_0803769A:
movs r2, #0
lsls r3, r3, #0x10
asrs r1, r3, #0x10
adds r0, r1, #6
lsls r5, r0, #5
adds r1, #0x15
lsls r4, r1, #5
_080376A8:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r2, r1, r7
adds r2, r5, r2
lsls r2, r2, #1
add r2, r8
adds r0, r1, r6
adds r0, r4, r0
lsls r0, r0, #1
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #3
ble _080376A8
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0803769A
mov r2, sb
asrs r0, r2, #0x10
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _080376F0
movs r1, #5
_080376F0:
movs r2, #0
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r2, r0
bge _08037726
ldr r7, _08037824 @ =gUnknown_03005C00
ldr r6, _08037834 @ =0x000004C3
ldr r5, _08037830 @ =gUnknown_08327994
movs r4, #0xbb
lsls r4, r4, #2
adds r3, r0, #0
_08037706:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r2, r1, r6
lsls r2, r2, #1
adds r2, r2, r7
adds r0, r1, r4
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
strh r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r3
blt _08037706
_08037726:
mov r3, sl
lsls r1, r3, #0x10
ldr r2, _08037838 @ =0xFFB00000
adds r0, r1, r2
lsrs r0, r0, #0x10
mov sb, r1
cmp r0, #0x45
bhi _080377E2
movs r3, #0
ldr r0, [sp]
lsls r1, r0, #0x10
ldr r2, _08037824 @ =gUnknown_03005C00
mov ip, r2
ldr r0, _08037830 @ =gUnknown_08327994
mov r8, r0
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r6, r0, #0
adds r6, #0xc
ldr r7, _0803783C @ =0x00000411
_08037752:
movs r2, #0
lsls r3, r3, #0x10
asrs r1, r3, #0x10
adds r0, r1, #0
adds r0, #0xe
lsls r5, r0, #5
adds r1, #0x15
lsls r4, r1, #5
_08037762:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r2, r1, r7
adds r2, r5, r2
lsls r2, r2, #1
add r2, ip
adds r0, r1, r6
adds r0, r4, r0
lsls r0, r0, #1
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #5
ble _08037762
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _08037752
mov r2, sb
asrs r0, r2, #0x10
subs r0, #0x46
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _080377AC
movs r1, #5
_080377AC:
movs r2, #0
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r2, r0
bge _080377E2
ldr r7, _08037824 @ =gUnknown_03005C00
ldr r6, _08037840 @ =0x000005F7
ldr r5, _08037830 @ =gUnknown_08327994
movs r4, #0xbb
lsls r4, r4, #2
adds r3, r0, #0
_080377C2:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r2, r1, r6
lsls r2, r2, #1
adds r2, r2, r7
adds r0, r1, r4
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
strh r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r3
blt _080377C2
_080377E2:
ldr r1, _08037844 @ =0x040000D4
ldr r3, _08037818 @ =gUnknown_03006400
str r3, [r1]
ldr r0, _08037848 @ =0x06001000
str r0, [r1, #4]
ldr r0, _0803784C @ =0x80000280
str r0, [r1, #8]
ldr r0, [r1, #8]
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
_08037804: .4byte 0x000003F5
_08037808: .4byte gMain
_0803780C: .4byte 0x0000040E
_08037810: .4byte gUnknown_086AEA60
_08037814: .4byte gUnknown_086AEA50
_08037818: .4byte gUnknown_03006400
_0803781C: .4byte 0xFFFFF800
_08037820: .4byte 0x0000027F
_08037824: .4byte gUnknown_03005C00
_08037828: .4byte 0x000003FF
_0803782C: .4byte 0xFFF60000
_08037830: .4byte gUnknown_08327994
_08037834: .4byte 0x000004C3
_08037838: .4byte 0xFFB00000
_0803783C: .4byte 0x00000411
_08037840: .4byte 0x000005F7
_08037844: .4byte 0x040000D4
_08037848: .4byte 0x06001000
_0803784C: .4byte 0x80000280
thumb_func_start sub_37850
sub_37850: @ 0x08037850
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r4, _08037C18 @ =gUnknown_020314E0
ldr r3, [r4]
movs r1, #0x80
lsls r1, r1, #3
adds r0, r3, r1
movs r2, #0
ldrsh r1, [r0, r2]
lsls r1, r1, #0x11
lsrs r1, r1, #0x10
ldr r2, _08037C1C @ =0xFFFF0000
ldr r0, [sp]
ands r0, r2
orrs r0, r1
str r0, [sp]
ldr r5, _08037C20 @ =0x00000402
adds r3, r3, r5
movs r2, #0
ldrsh r1, [r3, r2]
lsls r1, r1, #0x11
ldr r2, _08037C24 @ =0x0000FFFF
ands r0, r2
orrs r0, r1
str r0, [sp]
mov r0, sp
bl sub_17C1C
ldr r0, _08037C28 @ =gUnknown_02031590
ldrb r1, [r0, #0x10]
movs r0, #0xb8
muls r1, r0, r1
ldr r0, _08037C2C @ =gUnknown_0200B3B8
adds r6, r1, r0
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x78
subs r0, r0, r2
strh r0, [r6, #2]
adds r1, #0x5a
ldrh r0, [r1]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
movs r2, #0
ldr r5, _08037C30 @ =gOamBuffer
ldr r3, _08037C34 @ =0xFFFFFE00
mov sb, r3
_080378BC:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r7, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r0, _08037C38 @ =0x000001FF
mov r8, r0
mov r2, r8
ands r1, r2
ldrh r2, [r3, #2]
mov r0, sb
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _080378BC
ldr r0, _08037C28 @ =gUnknown_02031590
ldrb r1, [r0, #0x11]
movs r0, #0xb8
muls r0, r1, r0
ldr r3, _08037C2C @ =gUnknown_0200B3B8
mov sb, r3
adds r6, r0, r3
ldr r5, _08037C18 @ =gUnknown_020314E0
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x78
subs r0, r0, r2
strh r0, [r6, #2]
adds r1, #0x5a
ldrh r0, [r1]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
adds r7, r6, #0
adds r7, #8
ldr r4, _08037C30 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #2
ldrsh r1, [r7, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
mov r0, r8
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08037C34 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
movs r6, #0xa1
lsls r6, r6, #3
add r6, sb
ldr r0, [r5]
ldr r1, _08037C3C @ =0x0000040C
adds r0, r0, r1
ldrh r4, [r0]
adds r0, r4, #0
movs r1, #0xa
bl __umodsi3
movs r1, #5
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
movs r7, #0x14
cmp r4, #0x1e
bhi _08037988
movs r7, #5
cmp r4, #0xa
bls _08037988
movs r7, #0xa
_08037988:
ldr r4, _08037C18 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _08037C3C @ =0x0000040C
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #0x28
bne _080379A4
movs r0, #0x82
lsls r0, r0, #1
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_080379A4:
lsls r0, r5, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _080379B2
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
_080379B2:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
movs r0, #5
subs r0, r0, r1
muls r0, r7, r0
movs r1, #0xa
bl __divsi3
adds r0, #0x78
ldr r2, [r4]
adds r1, r2, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #2]
adds r2, #0x5a
ldrh r0, [r2]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
movs r2, #0
ldr r5, _08037C30 @ =gOamBuffer
ldr r3, _08037C34 @ =0xFFFFFE00
mov r8, r3
_080379E2:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r7, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08037C38 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #4
ble _080379E2
ldr r3, _08037C18 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r5, _08037C3C @ =0x0000040C
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, #0
beq _08037A38
subs r0, #1
strh r0, [r1]
_08037A38:
movs r0, #0
mov r8, r0
_08037A3C:
mov r1, r8
lsls r3, r1, #0x10
asrs r3, r3, #0x10
adds r0, r3, #0
adds r0, #0xa
ldr r2, _08037C28 @ =gUnknown_02031590
adds r0, r0, r2
ldrb r1, [r0]
movs r0, #0xb8
muls r0, r1, r0
ldr r5, _08037C2C @ =gUnknown_0200B3B8
adds r6, r0, r5
ldr r0, _08037C18 @ =gUnknown_020314E0
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x78
subs r0, r0, r1
strh r0, [r6, #2]
adds r0, r2, #0
adds r0, #0x5a
ldrh r0, [r0]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
movs r1, #0
mov sb, r1
movs r5, #0x84
lsls r5, r5, #3
adds r2, r2, r5
adds r4, r2, r3
ldrb r5, [r4]
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
beq _08037AA6
movs r1, #0x18
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #6
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
ldr r1, _08037C40 @ =gUnknown_086AEA68
adds r0, r0, r1
ldrh r0, [r0]
mov sb, r0
subs r0, r5, #1
strb r0, [r4]
_08037AA6:
movs r2, #0
mov r3, sb
lsls r0, r3, #0x10
ldr r5, _08037C30 @ =gOamBuffer
mov ip, r5
ldr r1, _08037C34 @ =0xFFFFFE00
mov sl, r1
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, #0xd2
mov sb, r0
_08037AC0:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r5, r4, #3
adds r0, r5, #0
adds r0, #8
adds r7, r6, r0
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
movs r3, #2
ldrsh r1, [r7, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08037C38 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
mov r0, sl
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7]
lsls r1, r1, #3
add r1, ip
ldrb r0, [r6, #4]
ldrb r2, [r7, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
add r5, sb
ldr r3, _08037C44 @ =0x000003FF
adds r0, r3, #0
ands r5, r0
ldrh r0, [r2, #4]
ldr r3, _08037C48 @ =0xFFFFFC00
adds r1, r3, #0
ands r0, r1
orrs r0, r5
strh r0, [r2, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08037AC0
mov r5, r8
lsls r0, r5, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r2, r0, #0x10
mov r8, r2
asrs r0, r0, #0x10
cmp r0, #5
ble _08037A3C
movs r3, #6
mov r8, r3
_08037B38:
mov r5, r8
lsls r4, r5, #0x10
asrs r3, r4, #0x10
adds r0, r3, #0
adds r0, #0xc
ldr r1, _08037C28 @ =gUnknown_02031590
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0xb8
muls r0, r1, r0
ldr r2, _08037C2C @ =gUnknown_0200B3B8
adds r6, r0, r2
ldr r5, _08037C18 @ =gUnknown_020314E0
ldr r2, [r5]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x78
subs r0, r0, r1
strh r0, [r6, #2]
adds r0, r2, #0
adds r0, #0x5a
ldrh r0, [r0]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
movs r0, #0
mov sb, r0
movs r1, #0x84
lsls r1, r1, #3
adds r2, r2, r1
adds r5, r2, r3
ldrb r7, [r5]
movs r0, #0
ldrsb r0, [r5, r0]
mov sl, r4
cmp r0, #0
beq _08037BA4
movs r1, #0x18
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #6
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
ldr r2, _08037C40 @ =gUnknown_086AEA68
adds r0, r0, r2
ldrh r0, [r0]
mov sb, r0
subs r0, r7, #1
strb r0, [r5]
_08037BA4:
movs r2, #0
mov r3, sb
lsls r0, r3, #0x10
ldr r5, _08037C30 @ =gOamBuffer
mov ip, r5
ldr r1, _08037C34 @ =0xFFFFFE00
mov sb, r1
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, #0xd2
mov r8, r0
_08037BBE:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r5, r4, #3
adds r0, r5, #0
adds r0, #8
adds r7, r6, r0
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
movs r3, #2
ldrsh r1, [r7, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08037C38 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
mov r0, sb
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7]
lsls r1, r1, #3
add r1, ip
ldrb r0, [r6, #4]
ldrb r2, [r7, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
add r5, r8
ldr r3, _08037C44 @ =0x000003FF
adds r0, r3, #0
ands r5, r0
ldrh r0, [r2, #4]
ldr r3, _08037C48 @ =0xFFFFFC00
adds r1, r3, #0
ands r0, r1
orrs r0, r5
strh r0, [r2, #4]
adds r4, #1
b _08037C4C
.align 2, 0
_08037C18: .4byte gUnknown_020314E0
_08037C1C: .4byte 0xFFFF0000
_08037C20: .4byte 0x00000402
_08037C24: .4byte 0x0000FFFF
_08037C28: .4byte gUnknown_02031590
_08037C2C: .4byte gUnknown_0200B3B8
_08037C30: .4byte gOamBuffer
_08037C34: .4byte 0xFFFFFE00
_08037C38: .4byte 0x000001FF
_08037C3C: .4byte 0x0000040C
_08037C40: .4byte gUnknown_086AEA68
_08037C44: .4byte 0x000003FF
_08037C48: .4byte 0xFFFFFC00
_08037C4C:
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08037BBE
movs r0, #0x80
lsls r0, r0, #9
add r0, sl
lsrs r5, r0, #0x10
mov r8, r5
asrs r0, r0, #0x10
cmp r0, #9
bgt _08037C68
b _08037B38
_08037C68:
ldr r6, _08037F58 @ =gUnknown_0200C5B0
ldr r1, _08037F5C @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x78
subs r0, r0, r1
strh r0, [r6, #2]
ldr r2, _08037F5C @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x5a
ldrh r0, [r0]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
movs r3, #0
mov sb, r3
ldr r0, [r2]
ldr r1, _08037F60 @ =0x0000041C
adds r5, r0, r1
ldrb r7, [r5]
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08037CBA
ldr r4, _08037F64 @ =gUnknown_086AEA68
movs r1, #0x18
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #6
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
adds r0, r0, r4
ldrh r0, [r0]
mov sb, r0
subs r0, r7, #1
strb r0, [r5]
_08037CBA:
movs r2, #0
mov r3, sb
lsls r0, r3, #0x10
ldr r5, _08037F68 @ =gOamBuffer
mov r8, r5
ldr r1, _08037F6C @ =0xFFFFFE00
mov ip, r1
asrs r0, r0, #0xd
adds r0, #0xf6
mov sb, r0
ldr r3, _08037F70 @ =0xFFFFFC00
mov sl, r3
_08037CD2:
lsls r4, r2, #0x10
asrs r5, r4, #0x10
lsls r0, r5, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
add r3, r8
movs r0, #2
ldrsh r1, [r7, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08037F74 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #4]
ldrb r3, [r7, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r3, [r7]
lsls r3, r3, #3
add r3, r8
lsls r1, r5, #2
lsrs r4, r4, #0x1f
adds r4, r5, r4
asrs r4, r4, #1
lsls r4, r4, #1
subs r1, r1, r4
add r1, sb
ldr r2, _08037F78 @ =0x000003FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #4]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
adds r5, #1
lsls r5, r5, #0x10
lsrs r2, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #2
ble _08037CD2
movs r3, #0
mov r8, r3
_08037D3E:
mov r5, r8
lsls r4, r5, #0x10
asrs r3, r4, #0x10
movs r0, #0xb8
muls r0, r3, r0
ldr r1, _08037F7C @ =gUnknown_0200C668
adds r6, r0, r1
ldr r5, _08037F5C @ =gUnknown_020314E0
ldr r2, [r5]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x78
subs r0, r0, r1
strh r0, [r6, #2]
adds r0, r2, #0
adds r0, #0x5a
ldrh r0, [r0]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
movs r0, #0
mov sb, r0
adds r2, r2, r3
ldr r1, _08037F80 @ =0x0000041D
adds r5, r2, r1
ldrb r7, [r5]
movs r0, #0
ldrsb r0, [r5, r0]
mov sl, r4
cmp r0, #0
beq _08037D9E
movs r1, #0x18
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #6
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
ldr r2, _08037F64 @ =gUnknown_086AEA68
adds r0, r0, r2
ldrh r0, [r0]
mov sb, r0
subs r0, r7, #1
strb r0, [r5]
_08037D9E:
movs r2, #0
mov r3, sb
lsls r0, r3, #0x10
ldr r5, _08037F68 @ =gOamBuffer
mov ip, r5
ldr r1, _08037F6C @ =0xFFFFFE00
mov sb, r1
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
movs r3, #0x87
lsls r3, r3, #1
adds r3, r3, r0
mov r8, r3
_08037DBC:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r5, r4, #3
adds r0, r5, #0
adds r0, #8
adds r7, r6, r0
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
movs r0, #2
ldrsh r1, [r7, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08037F74 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
mov r0, sb
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7]
lsls r1, r1, #3
add r1, ip
ldrb r0, [r6, #4]
ldrb r2, [r7, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
add r5, r8
ldr r3, _08037F78 @ =0x000003FF
adds r0, r3, #0
ands r5, r0
ldrh r0, [r2, #4]
ldr r3, _08037F70 @ =0xFFFFFC00
adds r1, r3, #0
ands r0, r1
orrs r0, r5
strh r0, [r2, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08037DBC
movs r0, #0x80
lsls r0, r0, #9
add r0, sl
lsrs r5, r0, #0x10
mov r8, r5
asrs r0, r0, #0x10
cmp r0, #1
ble _08037D3E
ldr r6, _08037F84 @ =gUnknown_0200C7D8
ldr r1, _08037F5C @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x78
subs r0, r0, r1
strh r0, [r6, #2]
ldr r2, _08037F5C @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x5a
ldrh r0, [r0]
rsbs r0, r0, #0
subs r0, #0x80
strh r0, [r6, #4]
movs r3, #0
mov sb, r3
ldr r0, [r2]
ldr r1, _08037F88 @ =0x0000041F
adds r5, r0, r1
ldrb r7, [r5]
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08037E7E
ldr r4, _08037F64 @ =gUnknown_086AEA68
movs r1, #0x18
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #6
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
adds r0, r0, r4
ldrh r0, [r0]
mov sb, r0
subs r0, r7, #1
strb r0, [r5]
_08037E7E:
movs r2, #0
mov r3, sb
lsls r0, r3, #0x10
ldr r5, _08037F68 @ =gOamBuffer
mov r8, r5
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
movs r1, #0x99
lsls r1, r1, #1
adds r1, r1, r0
mov ip, r1
_08037E98:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r5, r4, #3
adds r0, r5, #0
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
add r3, r8
movs r2, #2
ldrsh r1, [r7, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r0, _08037F74 @ =0x000001FF
mov sl, r0
mov r2, sl
ands r1, r2
ldrh r2, [r3, #2]
ldr r0, _08037F6C @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #4]
ldrb r3, [r7, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r1, [r7]
lsls r1, r1, #3
add r1, r8
add r5, ip
ldr r2, _08037F78 @ =0x000003FF
adds r0, r2, #0
ands r5, r0
ldrh r2, [r1, #4]
ldr r0, _08037F70 @ =0xFFFFFC00
ands r0, r2
orrs r0, r5
strh r0, [r1, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08037E98
ldr r6, _08037F8C @ =gUnknown_0200CAB8
ldr r3, _08037F5C @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _08037F90 @ =0x0000132C
adds r0, r0, r4
ldr r0, [r0]
ldrh r0, [r0, #0x24]
strh r0, [r6, #2]
ldr r0, [r3]
adds r0, r0, r4
ldr r0, [r0]
ldrh r0, [r0, #0x26]
adds r0, #0xe
strh r0, [r6, #4]
adds r7, r6, #0
adds r7, #8
ldrh r2, [r6, #8]
lsls r2, r2, #3
ldr r5, _08037F68 @ =gOamBuffer
adds r2, r2, r5
movs r0, #2
ldrsh r1, [r7, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
mov r5, sl
ands r1, r5
ldrh r3, [r2, #2]
ldr r0, _08037F6C @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldr r1, _08037F5C @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r4
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08037F94
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r2, _08037F68 @ =gOamBuffer
adds r0, r0, r2
movs r1, #0xc8
strb r1, [r0]
b _08037FA4
.align 2, 0
_08037F58: .4byte gUnknown_0200C5B0
_08037F5C: .4byte gUnknown_020314E0
_08037F60: .4byte 0x0000041C
_08037F64: .4byte gUnknown_086AEA68
_08037F68: .4byte gOamBuffer
_08037F6C: .4byte 0xFFFFFE00
_08037F70: .4byte 0xFFFFFC00
_08037F74: .4byte 0x000001FF
_08037F78: .4byte 0x000003FF
_08037F7C: .4byte gUnknown_0200C668
_08037F80: .4byte 0x0000041D
_08037F84: .4byte gUnknown_0200C7D8
_08037F88: .4byte 0x0000041F
_08037F8C: .4byte gUnknown_0200CAB8
_08037F90: .4byte 0x0000132C
_08037F94:
ldrh r1, [r6, #8]
lsls r1, r1, #3
ldr r3, _08037FC0 @ =gOamBuffer
adds r1, r1, r3
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
_08037FA4:
ldr r6, _08037FC4 @ =gUnknown_0200C890
ldr r5, _08037FC8 @ =gUnknown_020314E0
ldr r0, [r5]
movs r2, #0x82
lsls r2, r2, #3
adds r1, r0, r2
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0xb
bgt _08037FCC
adds r0, r2, #1
b _08037FCE
.align 2, 0
_08037FC0: .4byte gOamBuffer
_08037FC4: .4byte gUnknown_0200C890
_08037FC8: .4byte gUnknown_020314E0
_08037FCC:
movs r0, #0
_08037FCE:
strh r0, [r1]
movs r5, #0
mov r8, r5
ldr r0, _08038048 @ =gUnknown_020314E0
mov sl, r0
ldr r5, _0803804C @ =gOamBuffer
ldr r1, _08038050 @ =0xFFFFFE00
mov ip, r1
_08037FDE:
mov r2, sl
ldr r0, [r2]
mov r3, r8
lsls r1, r3, #0x10
asrs r2, r1, #0x10
ldr r1, _08038054 @ =0x0000042A
adds r0, r0, r1
adds r3, r0, r2
ldrb r4, [r3]
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _0803805C
adds r1, r0, #0
cmp r1, #0
bge _08038000
adds r1, #3
_08038000:
asrs r1, r1, #2
movs r0, #2
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
subs r0, r4, #1
strb r0, [r3]
mov r0, sl
ldr r3, [r0]
lsls r2, r2, #2
adds r2, r3, r2
adds r0, r2, #0
adds r0, #0xd0
adds r1, r3, #0
adds r1, #0x4c
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
adds r0, #4
strh r0, [r6, #2]
adds r2, #0xd2
adds r1, r3, #0
adds r1, #0x4e
ldrh r0, [r2]
ldrh r1, [r1]
subs r0, r0, r1
ldr r2, _08038058 @ =0x000005FC
adds r1, r3, r2
ldrh r1, [r1]
subs r0, r0, r1
adds r3, #0xe6
ldrh r1, [r3]
subs r0, r0, r1
adds r0, #4
b _08038062
.align 2, 0
_08038048: .4byte gUnknown_020314E0
_0803804C: .4byte gOamBuffer
_08038050: .4byte 0xFFFFFE00
_08038054: .4byte 0x0000042A
_08038058: .4byte 0x000005FC
_0803805C:
movs r0, #0xf0
strh r0, [r6, #2]
movs r0, #0xb4
_08038062:
strh r0, [r6, #4]
mov r3, r8
lsls r4, r3, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r7, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _080380E8 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r6, #4]
ldrb r3, [r7, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r3, [r7]
lsls r3, r3, #3
adds r3, r3, r5
mov r0, sb
lsls r1, r0, #0x10
asrs r1, r1, #0x10
movs r2, #0xb7
lsls r2, r2, #1
adds r1, r1, r2
ldr r2, _080380EC @ =0x000003FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #4]
ldr r0, _080380F0 @ =0xFFFFFC00
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r3, r4, #0x10
mov r8, r3
asrs r4, r4, #0x10
cmp r4, #3
ble _08037FDE
ldr r6, _080380F4 @ =gUnknown_0200C948
ldr r5, _080380F8 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r2, _080380FC @ =0x00000412
adds r1, r0, r2
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0x17
bgt _08038100
adds r0, r2, #1
b _08038102
.align 2, 0
_080380E8: .4byte 0x000001FF
_080380EC: .4byte 0x000003FF
_080380F0: .4byte 0xFFFFFC00
_080380F4: .4byte gUnknown_0200C948
_080380F8: .4byte gUnknown_020314E0
_080380FC: .4byte 0x00000412
_08038100:
movs r0, #0
_08038102:
strh r0, [r1]
movs r5, #0
mov r8, r5
_08038108:
ldr r1, _08038168 @ =gUnknown_020314E0
ldr r0, [r1]
mov r2, r8
lsls r1, r2, #0x10
asrs r4, r1, #0x10
adds r0, r0, r4
ldr r3, _0803816C @ =0x0000042E
adds r5, r0, r3
ldrb r7, [r5]
movs r0, #0
ldrsb r0, [r5, r0]
mov sl, r1
cmp r0, #0
beq _08038178
movs r1, #6
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #2
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sb, r1
subs r0, r7, #1
strb r0, [r5]
ldr r5, _08038168 @ =gUnknown_020314E0
ldr r3, [r5]
lsls r2, r4, #2
adds r2, r3, r2
ldr r1, _08038170 @ =0x00000434
adds r0, r2, r1
adds r1, r3, #0
adds r1, #0x58
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
subs r0, #4
strh r0, [r6, #2]
ldr r5, _08038174 @ =0x00000436
adds r2, r2, r5
adds r3, #0x5a
ldrh r0, [r2]
ldrh r1, [r3]
subs r0, r0, r1
adds r0, #2
b _0803817E
.align 2, 0
_08038168: .4byte gUnknown_020314E0
_0803816C: .4byte 0x0000042E
_08038170: .4byte 0x00000434
_08038174: .4byte 0x00000436
_08038178:
movs r0, #0xf0
strh r0, [r6, #2]
movs r0, #0xb4
_0803817E:
strh r0, [r6, #4]
mov r0, sl
asrs r4, r0, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
ldr r1, _08038204 @ =gOamBuffer
adds r3, r3, r1
movs r5, #2
ldrsh r2, [r7, r5]
movs r1, #2
ldrsh r0, [r6, r1]
adds r2, r2, r0
ldr r5, _08038208 @ =0x000001FF
adds r0, r5, #0
ands r2, r0
ldrh r0, [r3, #2]
ldr r5, _0803820C @ =0xFFFFFE00
adds r1, r5, #0
ands r0, r1
orrs r0, r2
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
ldr r0, _08038204 @ =gOamBuffer
adds r1, r1, r0
ldrb r0, [r6, #4]
ldrb r2, [r7, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r3, [r7]
lsls r3, r3, #3
ldr r5, _08038204 @ =gOamBuffer
adds r3, r3, r5
mov r0, sb
lsls r1, r0, #0x10
asrs r1, r1, #0x10
movs r2, #0xb7
lsls r2, r2, #1
adds r1, r1, r2
ldr r5, _08038210 @ =0x000003FF
adds r0, r5, #0
ands r1, r0
ldrh r0, [r3, #4]
ldr r5, _08038214 @ =0xFFFFFC00
adds r2, r5, #0
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
mov r8, r0
asrs r4, r4, #0x10
cmp r4, #2
ble _08038108
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
_08038204: .4byte gOamBuffer
_08038208: .4byte 0x000001FF
_0803820C: .4byte 0xFFFFFE00
_08038210: .4byte 0x000003FF
_08038214: .4byte 0xFFFFFC00
thumb_func_start sub_38218
sub_38218: @ 0x08038218
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x74
movs r5, #0
ldr r0, _080382D8 @ =gUnknown_086AEA70
mov sl, r0
ldr r1, _080382DC @ =gUnknown_020314E0
mov r8, r1
add r6, sp, #0x64
ldr r4, _080382E0 @ =gUnknown_0202D880
ldr r3, _080382E4 @ =gUnknown_086BB420
_08038234:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r2, r0, r4
adds r0, r0, r3
ldr r0, [r0]
str r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x20
ble _08038234
mov r2, sl
ldr r0, [r2, #0x60]
ldr r1, [r2, #0x64]
str r0, [sp, #0x60]
str r1, [sp, #0x64]
mov r3, r8
ldr r0, [r3]
ldr r1, _080382E8 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
ldrh r0, [r0, #0x12]
strb r0, [r6]
movs r5, #0
mov r7, sl
mov r4, r8
ldr r0, [r4]
mov ip, r1
add r0, ip
str r0, [sp, #0x70]
mov sb, sl
_08038276:
lsls r0, r5, #0x10
asrs r3, r0, #0x10
lsls r2, r3, #3
adds r4, r2, r7
ldrb r1, [r4, #4]
ldr r6, [sp, #0x70]
ldr r0, [r6]
movs r6, #0x12
ldrsh r0, [r0, r6]
cmp r1, r0
bge _080382EC
movs r0, #0xb
cmp r0, r3
blt _080382BA
mov r6, sb
adds r4, r3, #0
_08038296:
lsls r2, r0, #0x10
asrs r2, r2, #0x10
adds r0, r2, #1
lsls r0, r0, #3
mov r1, sp
adds r3, r1, r0
lsls r0, r2, #3
adds r0, r0, r6
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r3]
str r1, [r3, #4]
subs r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
asrs r2, r2, #0x10
cmp r2, r4
bge _08038296
_080382BA:
lsls r0, r5, #0x10
asrs r0, r0, #0xd
mov r3, sp
adds r2, r3, r0
ldr r0, [r7, #0x60]
ldr r1, [r7, #0x64]
str r0, [r2]
str r1, [r2, #4]
mov r4, r8
ldr r0, [r4]
add r0, ip
ldr r0, [r0]
ldrh r0, [r0, #0x12]
strb r0, [r2, #4]
b _08038304
.align 2, 0
_080382D8: .4byte gUnknown_086AEA70
_080382DC: .4byte gUnknown_020314E0
_080382E0: .4byte gUnknown_0202D880
_080382E4: .4byte gUnknown_086BB420
_080382E8: .4byte 0x0000132C
_080382EC:
mov r6, sp
adds r0, r6, r2
ldr r1, [r4]
ldr r2, [r4, #4]
str r1, [r0]
str r2, [r0, #4]
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb
ble _08038276
_08038304:
mov r2, sl
ldr r0, [r2, #0x68]
ldr r1, [r2, #0x6c]
str r0, [sp, #0x68]
str r1, [sp, #0x6c]
movs r5, #0
ldr r7, _08038374 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r6, _08038378 @ =0x00000402
adds r3, r0, r6
_08038318:
lsls r0, r5, #0x10
asrs r2, r0, #0x10
lsls r0, r2, #3
add r0, sp
ldrb r1, [r0, #4]
movs r4, #0
ldrsh r0, [r3, r4]
cmp r1, r0
bge _0803837C
movs r0, #0xc
cmp r0, r2
blt _08038356
adds r4, r2, #0
_08038332:
lsls r2, r0, #0x10
asrs r2, r2, #0x10
adds r0, r2, #1
lsls r0, r0, #3
mov r1, sp
adds r3, r1, r0
lsls r0, r2, #3
add r0, sp
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r3]
str r1, [r3, #4]
subs r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
asrs r2, r2, #0x10
cmp r2, r4
bge _08038332
_08038356:
lsls r0, r5, #0x10
asrs r0, r0, #0xd
mov r3, sp
adds r2, r3, r0
mov r4, sl
ldr r0, [r4, #0x68]
ldr r1, [r4, #0x6c]
str r0, [r2]
str r1, [r2, #4]
ldr r0, [r7]
adds r0, r0, r6
ldrh r0, [r0]
strb r0, [r2, #4]
b _08038388
.align 2, 0
_08038374: .4byte gUnknown_020314E0
_08038378: .4byte 0x00000402
_0803837C:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc
ble _08038318
_08038388:
movs r5, #0
ldr r6, _080383D8 @ =gUnknown_02031590
ldr r4, _080383DC @ =gUnknown_0202D880
_0803838E:
lsls r2, r5, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
mov r1, sp
adds r3, r1, r0
ldrb r0, [r3, #5]
adds r0, #0xa
adds r0, r0, r6
adds r1, r5, #0
adds r1, #0xa
strb r1, [r0]
adds r0, r2, #0
adds r0, #0xa
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, [r3]
str r1, [r0]
adds r2, #1
lsls r2, r2, #0x10
lsrs r5, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #0xd
ble _0803838E
ldr r0, _080383DC @ =gUnknown_0202D880
movs r1, #0x21
ldr r2, _080383E0 @ =gUnknown_0200B3B8
bl LoadSpriteSets
add sp, #0x74
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
_080383D8: .4byte gUnknown_02031590
_080383DC: .4byte gUnknown_0202D880
_080383E0: .4byte gUnknown_0200B3B8
thumb_func_start sub_383E4
sub_383E4: @ 0x080383E4
push {r4, r5, r6, r7, lr}
ldr r4, _08038438 @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0
movs r3, #0
strh r3, [r0, #0x18]
strb r1, [r0, #0x17]
ldr r0, [r4]
strb r1, [r0, #0x13]
ldr r0, [r4]
movs r2, #0xa5
lsls r2, r2, #2
adds r0, r0, r2
strb r1, [r0]
ldr r5, [r4]
adds r2, r5, #0
adds r2, #0x6c
ldr r6, _0803843C @ =0x00002A30
adds r0, r6, #0
ldrh r7, [r2]
adds r0, r0, r7
ldr r6, _08038440 @ =0x00000296
adds r1, r5, r6
strh r0, [r1]
strh r3, [r2]
ldr r7, _08038444 @ =0x00000283
adds r0, r5, r7
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r6, r4, #0
cmp r0, #3
bne _08038448
movs r0, #0xe1
lsls r0, r0, #2
adds r1, r5, r0
movs r0, #0x12
b _08038450
.align 2, 0
_08038438: .4byte gUnknown_020314E0
_0803843C: .4byte 0x00002A30
_08038440: .4byte 0x00000296
_08038444: .4byte 0x00000283
_08038448:
movs r2, #0xe1
lsls r2, r2, #2
adds r1, r5, r2
movs r0, #0xf
_08038450:
strb r0, [r1]
ldr r0, [r6]
movs r3, #0xe4
lsls r3, r3, #2
adds r1, r0, r3
movs r2, #0
movs r3, #0
strh r3, [r1]
ldr r4, _08038634 @ =0x00000389
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
ldr r5, _08038638 @ =0x00000383
adds r0, r0, r5
strb r2, [r0]
ldr r0, [r6]
ldr r7, _0803863C @ =0x00000382
adds r0, r0, r7
strb r2, [r0]
ldr r0, [r6]
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r0, r1
movs r4, #3
strb r4, [r0]
ldr r0, [r6]
adds r5, #0xf
adds r1, r0, r5
strh r3, [r1]
ldr r7, _08038640 @ =0x0000132C
adds r0, r0, r7
ldr r1, [r0]
movs r0, #1
strb r0, [r1]
ldr r0, [r6]
ldr r1, _08038644 @ =0x00000386
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
adds r5, #2
adds r1, r0, r5
strh r3, [r1]
ldr r7, _08038648 @ =0x0000038E
adds r1, r0, r7
strh r3, [r1]
ldr r1, _0803864C @ =0x00000385
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
subs r5, #0xd
adds r0, r0, r5
strb r2, [r0]
ldr r0, [r6]
ldr r7, _08038650 @ =0x000006C4
adds r0, r0, r7
strb r4, [r0]
ldr r0, [r6]
adds r1, #0x5a
adds r0, r0, r1
movs r1, #0xe
strb r1, [r0]
ldr r0, [r6]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
adds r5, #0x61
adds r1, r0, r5
strh r3, [r1]
ldr r7, _08038654 @ =0x000003EA
adds r1, r0, r7
strh r3, [r1]
ldr r1, _08038658 @ =0x000003DE
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
adds r4, #4
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
subs r5, #6
adds r1, r0, r5
strh r3, [r1]
subs r7, #6
adds r1, r0, r7
strh r3, [r1]
movs r1, #0x88
lsls r1, r1, #3
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
adds r4, #0x65
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
adds r5, #0x64
adds r0, r0, r5
strb r2, [r0]
ldr r0, [r6]
adds r7, #0x63
adds r0, r0, r7
strb r2, [r0]
ldr r0, [r6]
adds r1, #8
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
adds r4, #4
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
adds r5, #4
adds r0, r0, r5
strb r2, [r0]
ldr r0, [r6]
adds r7, #7
adds r1, r0, r7
strh r3, [r1]
ldr r2, _0803865C @ =0x00000452
adds r1, r0, r2
strh r3, [r1]
adds r4, #0xb
adds r1, r0, r4
strh r3, [r1]
adds r5, #0xc
adds r1, r0, r5
strh r3, [r1]
adds r7, #2
adds r0, r0, r7
strh r3, [r0]
movs r1, #0
adds r5, r6, #0
movs r4, #0
_0803855C:
ldr r0, [r5]
lsls r2, r1, #0x10
asrs r2, r2, #0x10
ldr r1, _08038660 @ =0x00000441
adds r0, r0, r1
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
ldr r3, _08038664 @ =0x00000443
adds r0, r0, r3
adds r0, r0, r2
strb r4, [r0]
ldr r1, [r5]
lsls r3, r2, #1
movs r7, #0x8b
lsls r7, r7, #3
adds r0, r1, r7
adds r0, r0, r3
strh r4, [r0]
lsls r0, r2, #2
adds r1, r1, r0
ldr r3, _08038668 @ =0x0000045C
adds r0, r1, r3
strh r4, [r0]
adds r7, #6
adds r0, r1, r7
strh r4, [r0]
adds r3, #8
adds r0, r1, r3
strh r4, [r0]
adds r7, #8
adds r1, r1, r7
strh r4, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #1
ble _0803855C
movs r1, #0
ldr r7, _0803866C @ =gUnknown_020314E0
ldr r5, _08038670 @ =0x0000046C
movs r3, #0
ldr r4, _08038674 @ =0x0000046E
_080385B4:
ldr r2, [r7]
lsls r0, r1, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #2
adds r2, r2, r1
adds r1, r2, r5
strh r3, [r1]
adds r2, r2, r4
strh r3, [r2]
adds r0, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _080385B4
ldr r1, [r6]
movs r0, #1
strb r0, [r1, #0x1a]
bl sub_38A20
bl sub_395D8
bl sub_39A40
bl sub_3AE14
movs r0, #0x29
bl m4aSongNumStart
ldr r2, _08038678 @ =0x040000D4
ldr r0, [r6]
ldr r1, _0803867C @ =0x000005F6
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _08038680 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _08038684 @ =0x05000220
str r0, [r2, #4]
ldr r1, _08038688 @ =0x80000010
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _0803868C @ =gUnknown_086AEAE0
ldr r0, [r0]
str r0, [r2]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r2, #4]
ldr r0, _08038690 @ =0x80000080
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _08038694 @ =gUnknown_081B36A4
str r0, [r2]
ldr r0, _08038698 @ =0x05000320
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08038634: .4byte 0x00000389
_08038638: .4byte 0x00000383
_0803863C: .4byte 0x00000382
_08038640: .4byte 0x0000132C
_08038644: .4byte 0x00000386
_08038648: .4byte 0x0000038E
_0803864C: .4byte 0x00000385
_08038650: .4byte 0x000006C4
_08038654: .4byte 0x000003EA
_08038658: .4byte 0x000003DE
_0803865C: .4byte 0x00000452
_08038660: .4byte 0x00000441
_08038664: .4byte 0x00000443
_08038668: .4byte 0x0000045C
_0803866C: .4byte gUnknown_020314E0
_08038670: .4byte 0x0000046C
_08038674: .4byte 0x0000046E
_08038678: .4byte 0x040000D4
_0803867C: .4byte 0x000005F6
_08038680: .4byte gUnknown_08137E14
_08038684: .4byte 0x05000220
_08038688: .4byte 0x80000010
_0803868C: .4byte gUnknown_086AEAE0
_08038690: .4byte 0x80000080
_08038694: .4byte gUnknown_081B36A4
_08038698: .4byte 0x05000320
thumb_func_start sub_3869C
sub_3869C: @ 0x0803869C
push {r4, r5, r6, lr}
ldr r0, _080386B8 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bls _080386AE
b _0803899C
_080386AE:
lsls r0, r0, #2
ldr r1, _080386BC @ =_080386C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080386B8: .4byte gUnknown_020314E0
_080386BC: .4byte _080386C0
_080386C0: @ jump table
.4byte _080386DC @ case 0
.4byte _0803899C @ case 1
.4byte _080387D2 @ case 2
.4byte _08038848 @ case 3
.4byte _080388C8 @ case 4
.4byte _08038924 @ case 5
.4byte _08038984 @ case 6
_080386DC:
ldr r6, _08038704 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r1, _08038708 @ =0x000005F7
adds r0, r0, r1
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r5, [r6]
ldrh r1, [r5, #0x18]
ldr r0, _0803870C @ =0x000001F3
cmp r1, r0
bhi _08038714
adds r1, r5, #0
adds r1, #0xe6
ldr r0, _08038710 @ =0x0000FFC0
strh r0, [r1]
ldrh r0, [r5, #0x18]
adds r0, #1
strh r0, [r5, #0x18]
b _0803899C
.align 2, 0
_08038704: .4byte gUnknown_020314E0
_08038708: .4byte 0x000005F7
_0803870C: .4byte 0x000001F3
_08038710: .4byte 0x0000FFC0
_08038714:
ldr r0, _080387A4 @ =0x00000333
cmp r1, r0
bhi _080387C4
ldrh r0, [r5, #0x18]
ldr r4, _080387A8 @ =0xFFFFFE0C
adds r0, r0, r4
movs r1, #5
bl __divsi3
subs r0, #0x40
adds r1, r5, #0
adds r1, #0xe6
strh r0, [r1]
ldrh r0, [r5, #0x18]
adds r0, r0, r4
movs r1, #0x18
bl __divsi3
ldr r2, _080387AC @ =0x00000382
adds r1, r5, r2
strb r0, [r1]
ldr r0, [r6]
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
ble _0803874E
movs r0, #5
strb r0, [r1]
_0803874E:
ldr r4, [r6]
ldrh r0, [r4, #0x18]
adds r0, #1
strh r0, [r4, #0x18]
ldr r1, _080387B0 @ =0x040000D4
ldr r3, _080387B4 @ =gUnknown_086AEAE0
adds r2, r4, r2
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #2
adds r0, r0, r3
ldr r0, [r0]
str r0, [r1]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, _080387B8 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #2
adds r0, r0, r3
ldr r0, [r0]
adds r0, #0x80
str r0, [r1]
ldr r0, _080387BC @ =0x05000080
str r0, [r1, #4]
ldr r0, _080387C0 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
adds r0, r4, #0
adds r0, #0xe6
movs r2, #0
ldrsh r1, [r0, r2]
movs r0, #0x20
rsbs r0, r0, #0
cmp r1, r0
bge _0803879E
b _0803899C
_0803879E:
movs r0, #0
strb r0, [r4, #0x1a]
b _0803899C
.align 2, 0
_080387A4: .4byte 0x00000333
_080387A8: .4byte 0xFFFFFE0C
_080387AC: .4byte 0x00000382
_080387B0: .4byte 0x040000D4
_080387B4: .4byte gUnknown_086AEAE0
_080387B8: .4byte 0x80000030
_080387BC: .4byte 0x05000080
_080387C0: .4byte 0x80000040
_080387C4:
adds r0, r5, #0
adds r0, #0xe6
strh r3, [r0]
strb r2, [r5, #0x13]
ldr r0, [r6]
strh r3, [r0, #0x18]
b _0803899C
_080387D2:
ldr r2, _080387E4 @ =gUnknown_020314E0
ldr r3, [r2]
ldrh r0, [r3, #0x18]
cmp r0, #0x77
bhi _080387E8
adds r0, #1
strh r0, [r3, #0x18]
b _0803899C
.align 2, 0
_080387E4: .4byte gUnknown_020314E0
_080387E8:
movs r1, #0
movs r0, #3
strb r0, [r3, #0x13]
ldr r2, [r2]
strh r1, [r2, #0x18]
ldr r3, _08038830 @ =gMain
movs r4, #0xe9
lsls r4, r4, #3
adds r0, r3, r4
movs r4, #1
movs r1, #1
strh r1, [r0]
movs r5, #0xd2
lsls r5, r5, #3
adds r0, r3, r5
strh r1, [r0]
ldr r1, _08038834 @ =0x040000D4
ldr r0, _08038838 @ =gUnknown_0813C874
str r0, [r1]
ldr r0, _0803883C @ =0x06015800
str r0, [r1, #4]
ldr r0, _08038840 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xe5
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #0x88
strh r0, [r1]
movs r0, #0x80
strb r0, [r3, #0xf]
ldr r1, _08038844 @ =0x000005FA
adds r2, r2, r1
strb r4, [r2]
b _0803899C
.align 2, 0
_08038830: .4byte gMain
_08038834: .4byte 0x040000D4
_08038838: .4byte gUnknown_0813C874
_0803883C: .4byte 0x06015800
_08038840: .4byte 0x80001000
_08038844: .4byte 0x000005FA
_08038848:
bl sub_351A8
ldr r4, _08038890 @ =gUnknown_020314E0
ldr r1, [r4]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0803885A
movs r0, #0xb5
strh r0, [r1, #0x18]
_0803885A:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _08038870
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r4]
ldr r0, _08038894 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _08038898 @ =gUnknown_02FAF080
str r0, [r1, #0x3c]
_08038870:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _0803889C
cmp r0, #0x14
bne _08038886
bl m4aMPlayAllStop
movs r0, #0x2b
bl m4aSongNumStart
_08038886:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
b _080388B0
.align 2, 0
_08038890: .4byte gUnknown_020314E0
_08038894: .4byte 0x00061A80
_08038898: .4byte gUnknown_02FAF080
_0803889C:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #6
strb r0, [r1, #0x13]
ldr r1, [r4]
ldr r2, _080388BC @ =0x00000283
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_080388B0:
ldr r0, _080388C0 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r4, _080388C4 @ =0x000005FA
adds r0, r0, r4
movs r1, #1
b _0803899A
.align 2, 0
_080388BC: .4byte 0x00000283
_080388C0: .4byte gUnknown_020314E0
_080388C4: .4byte 0x000005FA
_080388C8:
ldr r2, _0803890C @ =gUnknown_020314E0
ldr r1, [r2]
movs r0, #5
strb r0, [r1, #0x13]
ldr r2, [r2]
movs r0, #0x8c
strh r0, [r2, #0x18]
ldr r3, _08038910 @ =gMain
movs r5, #0xe9
lsls r5, r5, #3
adds r0, r3, r5
movs r1, #1
strh r1, [r0]
movs r4, #0xd2
lsls r4, r4, #3
adds r0, r3, r4
strh r1, [r0]
ldr r1, _08038914 @ =0x040000D4
ldr r0, _08038918 @ =gUnknown_0813C874
str r0, [r1]
ldr r0, _0803891C @ =0x06015800
str r0, [r1, #4]
ldr r0, _08038920 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r5, #0xe5
lsls r5, r5, #2
adds r2, r2, r5
movs r0, #0x88
strh r0, [r2]
movs r0, #0x80
strb r0, [r3, #0xf]
b _0803899C
.align 2, 0
_0803890C: .4byte gUnknown_020314E0
_08038910: .4byte gMain
_08038914: .4byte 0x040000D4
_08038918: .4byte gUnknown_0813C874
_0803891C: .4byte 0x06015800
_08038920: .4byte 0x80001000
_08038924:
bl sub_351A8
ldr r2, _0803895C @ =gUnknown_020314E0
ldr r1, [r2]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _08038936
movs r0, #0xb5
strh r0, [r1, #0x18]
_08038936:
ldr r1, [r2]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _0803894C
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r2]
ldr r0, _08038960 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _08038964 @ =gUnknown_02FAF080
str r0, [r1, #0x3c]
_0803894C:
ldr r1, [r2]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _08038968
adds r0, #1
strh r0, [r1, #0x18]
b _0803899C
.align 2, 0
_0803895C: .4byte gUnknown_020314E0
_08038960: .4byte 0x00061A80
_08038964: .4byte gUnknown_02FAF080
_08038968:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #6
strb r0, [r1, #0x13]
ldr r1, [r2]
ldr r0, _08038980 @ =0x00000283
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803899C
.align 2, 0
_08038980: .4byte 0x00000283
_08038984:
bl sub_351A8
ldr r2, _08038A0C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08038A10 @ =0x00000386
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
ldr r2, _08038A14 @ =0x000005FA
adds r0, r0, r2
_0803899A:
strb r1, [r0]
_0803899C:
bl sub_39A40
bl sub_38A20
bl sub_395D8
bl sub_3AE14
ldr r0, _08038A0C @ =gUnknown_020314E0
ldr r1, [r0]
movs r4, #0xa5
lsls r4, r4, #2
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080389E4
ldr r5, _08038A18 @ =0x00000296
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #1
bhi _080389E4
ldr r4, _08038A1C @ =gMain
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _080389E4
bl m4aMPlayAllStop
movs r0, #0x2c
bl m4aSongNumStart
ldrb r1, [r4, #0xf]
movs r0, #0x40
orrs r0, r1
strb r0, [r4, #0xf]
_080389E4:
ldr r0, _08038A0C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08038A10 @ =0x00000386
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08038A02
ldr r4, _08038A14 @ =0x000005FA
adds r1, r1, r4
movs r0, #1
strb r0, [r1]
bl sub_350F0
_08038A02:
bl sub_472E4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08038A0C: .4byte gUnknown_020314E0
_08038A10: .4byte 0x00000386
_08038A14: .4byte 0x000005FA
_08038A18: .4byte 0x00000296
_08038A1C: .4byte gMain
thumb_func_start sub_38A20
sub_38A20: @ 0x08038A20
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _08038AE8 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08038AEC @ =0x00000452
adds r5, r1, r2
ldrh r4, [r5]
mov r8, r0
cmp r4, #0
beq _08038AC6
subs r0, r4, #1
strh r0, [r5]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
beq _08038AB0
ldr r0, _08038AF0 @ =0x00000389
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #4
bne _08038AB0
ldr r0, _08038AF4 @ =gMPlayInfo_SE1
ldr r1, _08038AF8 @ =gUnknown_086A1E74
bl MPlayStart
movs r0, #7
bl sub_11B0
mov r2, r8
ldr r1, [r2]
ldr r0, _08038AFC @ =0x0007A120
str r0, [r1, #0x3c]
ldr r2, _08038B00 @ =0x00000385
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
mov r6, r8
ldr r3, [r6]
adds r2, r3, r2
movs r1, #0xe1
lsls r1, r1, #2
adds r0, r3, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
blt _08038AB0
ldr r2, _08038B04 @ =0x00000387
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08038AB0
adds r1, r3, r4
movs r0, #7
strb r0, [r1]
_08038AB0:
ldr r1, _08038AE8 @ =gUnknown_020314E0
ldr r5, [r1]
ldr r3, _08038AEC @ =0x00000452
adds r0, r5, r3
ldrh r4, [r0]
mov r8, r1
cmp r4, #0
bne _08038AC6
ldr r6, _08038AF0 @ =0x00000389
adds r0, r5, r6
strb r4, [r0]
_08038AC6:
mov r1, r8
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xd
bls _08038ADE
bl _08039562
_08038ADE:
lsls r0, r0, #2
ldr r1, _08038B08 @ =_08038B0C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08038AE8: .4byte gUnknown_020314E0
_08038AEC: .4byte 0x00000452
_08038AF0: .4byte 0x00000389
_08038AF4: .4byte gMPlayInfo_SE1
_08038AF8: .4byte gUnknown_086A1E74
_08038AFC: .4byte 0x0007A120
_08038B00: .4byte 0x00000385
_08038B04: .4byte 0x00000387
_08038B08: .4byte _08038B0C
_08038B0C: @ jump table
.4byte _08038B44 @ case 0
.4byte _08038B88 @ case 1
.4byte _08038CE0 @ case 2
.4byte _08038D80 @ case 3
.4byte _08038E0C @ case 4
.4byte _08038EF2 @ case 5
.4byte _08038FE4 @ case 6
.4byte _080390D8 @ case 7
.4byte _08039562 @ case 8
.4byte _080391F0 @ case 9
.4byte _0803927C @ case 10
.4byte _08039350 @ case 11
.4byte _08039480 @ case 12
.4byte _08039562 @ case 13
_08038B44:
ldr r2, _08038B80 @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xf7
lsls r3, r3, #2
adds r0, r0, r3
movs r3, #0
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
ldr r4, _08038B84 @ =0x000003E2
adds r2, r0, r4
movs r1, #0xc
strh r1, [r2]
movs r6, #0xf9
lsls r6, r6, #2
adds r1, r0, r6
strh r3, [r1]
movs r2, #0xfa
lsls r2, r2, #2
adds r1, r0, r2
strh r3, [r1]
adds r4, #8
adds r1, r0, r4
strh r3, [r1]
adds r6, #0x6c
adds r0, r0, r6
strh r3, [r0]
bl _08039562
.align 2, 0
_08038B80: .4byte gUnknown_020314E0
_08038B84: .4byte 0x000003E2
_08038B88:
ldr r5, _08038C00 @ =gUnknown_086AEDA4
ldr r7, _08038C04 @ =gUnknown_020314E0
ldr r6, [r7]
movs r0, #0x8a
lsls r0, r0, #3
adds r4, r6, r0
ldrh r0, [r4]
movs r1, #0x8c
lsls r1, r1, #1
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xe
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r5
ldr r5, _08038C08 @ =0x040000D4
movs r1, #0
ldrsh r0, [r0, r1]
lsls r0, r0, #5
ldr r2, _08038C0C @ =gUnknown_081B0DE4
adds r0, r0, r2
str r0, [r5]
ldr r3, _08038C10 @ =0x050003E0
mov ip, r3
str r3, [r5, #4]
ldr r0, _08038C14 @ =0x80000010
mov sl, r0
str r0, [r5, #8]
ldr r0, [r5, #8]
adds r3, r6, #0
ldrh r0, [r4]
adds r0, #1
movs r1, #0
mov sb, r1
strh r0, [r4]
ldr r2, _08038C18 @ =gUnknown_086AEAF8
ldr r4, _08038C1C @ =0x000003E2
mov r8, r4
adds r4, r3, r4
movs r0, #0
ldrsh r1, [r4, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r3, r3, r1
ldrh r1, [r3]
ldrh r0, [r0]
cmp r0, r1
bls _08038C20
adds r0, r1, #1
strh r0, [r3]
b _08038CA4
.align 2, 0
_08038C00: .4byte gUnknown_086AEDA4
_08038C04: .4byte gUnknown_020314E0
_08038C08: .4byte 0x040000D4
_08038C0C: .4byte gUnknown_081B0DE4
_08038C10: .4byte 0x050003E0
_08038C14: .4byte 0x80000010
_08038C18: .4byte gUnknown_086AEAF8
_08038C1C: .4byte 0x000003E2
_08038C20:
mov r2, sb
strh r2, [r3]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x22
bne _08038C6E
strh r2, [r4]
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r6, r3
movs r0, #4
strb r0, [r1]
ldr r0, [r7]
ldr r4, _08038CC0 @ =0x000003DD
adds r0, r0, r4
movs r1, #6
strb r1, [r0]
ldr r0, [r7]
ldr r6, _08038CC4 @ =0x000003E1
adds r0, r0, r6
movs r1, #0
strb r1, [r0]
ldr r0, [r7]
movs r1, #0xe4
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0x3c
strh r1, [r0]
ldr r0, _08038CC8 @ =gUnknown_081B0DE4
adds r0, #0xa0
str r0, [r5]
mov r2, ip
str r2, [r5, #4]
mov r3, sl
str r3, [r5, #8]
ldr r0, [r5, #8]
_08038C6E:
ldr r1, [r7]
mov r4, r8
adds r0, r1, r4
movs r6, #0
ldrsh r0, [r0, r6]
cmp r0, #0x20
bne _08038C86
movs r0, #0xa5
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
_08038C86:
ldr r0, [r7]
add r0, r8
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x21
bne _08038CA4
ldr r0, _08038CCC @ =gMPlayInfo_SE1
ldr r1, _08038CD0 @ =gUnknown_086A1F10
bl MPlayStart
ldr r0, [r7]
ldr r2, _08038CD4 @ =0x00000387
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
_08038CA4:
ldr r0, _08038CD8 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r3, _08038CDC @ =0x00000392
adds r1, r0, r3
ldrh r0, [r1]
cmp r0, #2
bhi _08038CB6
bl _08039562
_08038CB6:
subs r0, #1
strh r0, [r1]
bl _08039562
.align 2, 0
_08038CC0: .4byte 0x000003DD
_08038CC4: .4byte 0x000003E1
_08038CC8: .4byte gUnknown_081B0DE4
_08038CCC: .4byte gMPlayInfo_SE1
_08038CD0: .4byte gUnknown_086A1F10
_08038CD4: .4byte 0x00000387
_08038CD8: .4byte gUnknown_020314E0
_08038CDC: .4byte 0x00000392
_08038CE0:
ldr r2, _08038D60 @ =gUnknown_086AEAF8
ldr r5, _08038D64 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, _08038D68 @ =0x000003E2
adds r3, r4, r6
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08038D08
b _080394A6
_08038D08:
movs r2, #0
strh r2, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc
bne _08038D3A
strh r2, [r3]
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r4, r3
movs r0, #4
strb r0, [r1]
ldr r0, [r5]
ldr r4, _08038D6C @ =0x000003DD
adds r0, r0, r4
movs r1, #6
strb r1, [r0]
ldr r0, [r5]
ldr r1, _08038D70 @ =0x000003E1
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
_08038D3A:
ldr r1, [r5]
adds r0, r1, r6
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xb
beq _08038D4A
bl _08039562
_08038D4A:
ldr r3, _08038D74 @ =0x00000387
adds r1, r1, r3
movs r0, #1
strb r0, [r1]
ldr r0, _08038D78 @ =gMPlayInfo_SE1
ldr r1, _08038D7C @ =gUnknown_086A1F10
bl MPlayStart
bl _08039562
.align 2, 0
_08038D60: .4byte gUnknown_086AEAF8
_08038D64: .4byte gUnknown_020314E0
_08038D68: .4byte 0x000003E2
_08038D6C: .4byte 0x000003DD
_08038D70: .4byte 0x000003E1
_08038D74: .4byte 0x00000387
_08038D78: .4byte gMPlayInfo_SE1
_08038D7C: .4byte gUnknown_086A1F10
_08038D80:
ldr r2, _08038DF0 @ =gUnknown_086AEAF8
ldr r5, _08038DF4 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, _08038DF8 @ =0x000003E2
adds r3, r4, r6
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08038DA8
b _080394A6
_08038DA8:
movs r2, #0
movs r0, #0
strh r0, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
bne _08038DD0
strh r0, [r3]
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r4, r3
movs r0, #0xb
strb r0, [r1]
ldr r0, [r5]
ldr r4, _08038DFC @ =0x000003E1
adds r0, r0, r4
strb r2, [r0]
_08038DD0:
ldr r1, [r5]
adds r0, r1, r6
movs r6, #0
ldrsh r0, [r0, r6]
cmp r0, #5
beq _08038DDE
b _08039562
_08038DDE:
ldr r3, _08038E00 @ =0x00000387
adds r0, r1, r3
strb r2, [r0]
ldr r0, _08038E04 @ =gMPlayInfo_SE1
ldr r1, _08038E08 @ =gUnknown_086A1FC4
bl MPlayStart
b _08039562
.align 2, 0
_08038DF0: .4byte gUnknown_086AEAF8
_08038DF4: .4byte gUnknown_020314E0
_08038DF8: .4byte 0x000003E2
_08038DFC: .4byte 0x000003E1
_08038E00: .4byte 0x00000387
_08038E04: .4byte gMPlayInfo_SE1
_08038E08: .4byte gUnknown_086A1FC4
_08038E0C:
ldr r2, _08038E68 @ =gUnknown_086AEAF8
ldr r4, _08038E6C @ =gUnknown_020314E0
mov r8, r4
ldr r3, [r4]
ldr r6, _08038E70 @ =0x000003E2
adds r4, r3, r6
movs r0, #0
ldrsh r1, [r4, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r3, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08038E36
b _080394A6
_08038E36:
movs r6, #0
mov sb, r6
movs r7, #0
strh r7, [r1]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r6, r0, #0x10
cmp r6, #4
beq _08038E4E
b _08039562
_08038E4E:
ldr r0, _08038E74 @ =0x000003E1
mov ip, r0
adds r1, r3, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08038E78
strh r7, [r4]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08039562
.align 2, 0
_08038E68: .4byte gUnknown_086AEAF8
_08038E6C: .4byte gUnknown_020314E0
_08038E70: .4byte 0x000003E2
_08038E74: .4byte 0x000003E1
_08038E78:
ldr r1, _08038EB8 @ =0x000003DD
mov sl, r1
adds r5, r3, r1
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #3
bne _08038ECE
ldr r2, _08038EBC @ =0x00000385
adds r0, r3, r2
subs r2, #1
adds r1, r3, r2
movs r2, #0
ldrsb r2, [r0, r2]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
blt _08038EC0
strh r7, [r4]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r3, r4
strb r6, [r0]
mov r6, r8
ldr r0, [r6]
add r0, ip
mov r1, sb
strb r1, [r0]
ldr r0, [r6]
add r0, sl
movs r1, #6
strb r1, [r0]
b _08039562
.align 2, 0
_08038EB8: .4byte 0x000003DD
_08038EBC: .4byte 0x00000385
_08038EC0:
strh r6, [r4]
ldrb r1, [r5]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r3, r2
strb r1, [r0]
b _08039562
_08038ECE:
movs r0, #0x22
strh r0, [r4]
ldrb r1, [r5]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r3, r4
strb r1, [r0]
mov r6, r8
ldr r0, [r6]
movs r1, #0x88
lsls r1, r1, #3
adds r0, r0, r1
mov r2, sb
strb r2, [r0]
ldr r0, [r6]
add r0, ip
strb r2, [r0]
b _08039562
_08038EF2:
ldr r2, _08038F44 @ =gUnknown_086AEAF8
mov r3, r8
ldr r4, [r3]
ldr r6, _08038F48 @ =0x000003E2
adds r3, r4, r6
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08038F1A
b _080394A6
_08038F1A:
movs r2, #0
strh r2, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x43
bne _08038F74
ldr r6, _08038F4C @ =0x000003E1
adds r1, r4, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _08038F50
movs r0, #0x2d
strh r0, [r3]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08038F74
.align 2, 0
_08038F44: .4byte gUnknown_086AEAF8
_08038F48: .4byte 0x000003E2
_08038F4C: .4byte 0x000003E1
_08038F50:
strh r2, [r3]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #4
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
ldr r2, _08038FC8 @ =0x000003E1
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
mov r3, r8
ldr r0, [r3]
ldr r4, _08038FCC @ =0x000003DD
adds r0, r0, r4
movs r1, #3
strb r1, [r0]
_08038F74:
ldr r5, _08038FD0 @ =gUnknown_020314E0
ldr r3, [r5]
ldr r4, _08038FD4 @ =0x000003E2
adds r0, r3, r4
movs r6, #0
ldrsh r0, [r0, r6]
cmp r0, #0x34
bne _08038FA8
ldr r0, _08038FC8 @ =0x000003E1
adds r2, r3, r0
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #1
movs r6, #0x8b
lsls r6, r6, #3
adds r1, r3, r6
adds r1, r1, r0
movs r0, #0
strh r0, [r1]
movs r1, #0
ldrsb r1, [r2, r1]
ldr r2, _08038FD8 @ =0x00000441
adds r0, r3, r2
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
_08038FA8:
ldr r0, [r5]
adds r0, r0, r4
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x32
beq _08038FBE
cmp r0, #0x38
beq _08038FBE
cmp r0, #0x3e
beq _08038FBE
b _08039562
_08038FBE:
ldr r0, _08038FDC @ =gMPlayInfo_SE1
ldr r1, _08038FE0 @ =gUnknown_086A1FE4
bl MPlayStart
b _08039562
.align 2, 0
_08038FC8: .4byte 0x000003E1
_08038FCC: .4byte 0x000003DD
_08038FD0: .4byte gUnknown_020314E0
_08038FD4: .4byte 0x000003E2
_08038FD8: .4byte 0x00000441
_08038FDC: .4byte gMPlayInfo_SE1
_08038FE0: .4byte gUnknown_086A1FE4
_08038FE4:
ldr r2, _08039010 @ =gUnknown_086AEAF8
mov r4, r8
ldr r3, [r4]
ldr r6, _08039014 @ =0x000003E2
adds r4, r3, r6
movs r0, #0
ldrsh r1, [r4, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r3, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08039018
adds r0, r2, #1
strh r0, [r1]
b _08039098
.align 2, 0
_08039010: .4byte gUnknown_086AEAF8
_08039014: .4byte 0x000003E2
_08039018:
movs r0, #0
strh r0, [r1]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x28
bne _08039040
ldr r6, _080390B4 @ =0x000003E1
adds r1, r3, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _08039040
movs r0, #0x22
strh r0, [r4]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08039040:
ldr r4, _080390B8 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r5, _080390BC @ =0x000003E2
adds r3, r1, r5
movs r2, #0
ldrsh r0, [r3, r2]
cmp r0, #0x2d
bne _08039066
movs r2, #0
strh r0, [r3]
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r1, r3
movs r0, #5
strb r0, [r1]
ldr r0, [r4]
ldr r6, _080390B4 @ =0x000003E1
adds r0, r0, r6
strb r2, [r0]
_08039066:
ldr r2, [r4]
movs r1, #0x88
lsls r1, r1, #3
adds r0, r2, r1
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
bne _08039098
adds r0, r2, r5
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x2a
bne _08039098
ldr r0, _080390C0 @ =gMain
ldr r6, _080390C4 @ =0x00001438
adds r0, r0, r6
movs r1, #1
strh r1, [r0]
ldr r1, _080390C8 @ =0x00000456
adds r0, r2, r1
strh r3, [r0]
ldr r0, _080390CC @ =gMPlayInfo_SE1
ldr r1, _080390D0 @ =gUnknown_086A2038
bl MPlayStart
_08039098:
ldr r0, _080390B8 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _080390D4 @ =0x00000452
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #6
bhi _080390A8
b _08039562
_080390A8:
movs r3, #0x88
lsls r3, r3, #3
adds r1, r1, r3
movs r0, #1
strb r0, [r1]
b _08039562
.align 2, 0
_080390B4: .4byte 0x000003E1
_080390B8: .4byte gUnknown_020314E0
_080390BC: .4byte 0x000003E2
_080390C0: .4byte gMain
_080390C4: .4byte 0x00001438
_080390C8: .4byte 0x00000456
_080390CC: .4byte gMPlayInfo_SE1
_080390D0: .4byte gUnknown_086A2038
_080390D4: .4byte 0x00000452
_080390D8:
mov r4, r8
ldr r0, [r4]
movs r6, #0xa5
lsls r6, r6, #2
adds r0, r0, r6
movs r5, #0
movs r1, #3
strb r1, [r0]
ldr r4, [r4]
ldr r1, _08039158 @ =0x00000283
adds r0, r4, r1
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bne _08039174
movs r2, #0xf7
lsls r2, r2, #2
adds r1, r4, r2
movs r0, #0xa
strb r0, [r1]
mov r3, r8
ldr r0, [r3]
ldr r4, _0803915C @ =0x000003E2
adds r0, r0, r4
movs r4, #0
strh r5, [r0]
ldr r3, _08039160 @ =gMain
ldr r6, _08039164 @ =0x00000A28
adds r0, r3, r6
movs r1, #1
strh r1, [r0]
movs r2, #0x97
lsls r2, r2, #4
adds r0, r3, r2
strh r1, [r0]
mov r6, r8
ldr r1, [r6]
movs r0, #0xb3
lsls r0, r0, #3
adds r2, r1, r0
movs r0, #0xc5
strh r0, [r2]
ldr r2, _08039168 @ =0x0000038E
adds r0, r1, r2
strh r5, [r0]
movs r6, #0xb5
lsls r6, r6, #3
adds r1, r1, r6
strb r4, [r1]
mov r1, r8
ldr r0, [r1]
ldr r2, _0803916C @ =0x000005A6
adds r1, r0, r2
strh r5, [r1]
ldr r4, _08039170 @ =0x000005A4
adds r0, r0, r4
movs r1, #2
strb r1, [r0]
adds r2, r3, #0
b _080391A4
.align 2, 0
_08039158: .4byte 0x00000283
_0803915C: .4byte 0x000003E2
_08039160: .4byte gMain
_08039164: .4byte 0x00000A28
_08039168: .4byte 0x0000038E
_0803916C: .4byte 0x000005A6
_08039170: .4byte 0x000005A4
_08039174:
movs r6, #0xf7
lsls r6, r6, #2
adds r1, r4, r6
movs r0, #9
strb r0, [r1]
mov r0, r8
ldr r1, [r0]
ldr r3, _080391D4 @ =0x000003E2
adds r2, r1, r3
movs r0, #0x4f
strh r0, [r2]
ldr r2, _080391D8 @ =gMain
movs r0, #0x80
strb r0, [r2, #0xf]
movs r4, #0xe2
lsls r4, r4, #2
adds r1, r1, r4
movs r0, #2
strb r0, [r1]
mov r6, r8
ldr r0, [r6]
ldr r1, _080391DC @ =0x00000392
adds r0, r0, r1
strh r5, [r0]
_080391A4:
ldr r3, _080391E0 @ =0x00000E78
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0
beq _080391C4
mov r4, r8
ldr r0, [r4]
ldr r6, _080391E4 @ =0x00000445
adds r0, r0, r6
movs r1, #7
strb r1, [r0]
ldr r0, [r4]
ldr r1, _080391E8 @ =0x0000044E
adds r0, r0, r1
movs r1, #1
strh r1, [r0]
_080391C4:
ldr r0, _080391EC @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xf9
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #0
strh r1, [r0]
b _08039562
.align 2, 0
_080391D4: .4byte 0x000003E2
_080391D8: .4byte gMain
_080391DC: .4byte 0x00000392
_080391E0: .4byte 0x00000E78
_080391E4: .4byte 0x00000445
_080391E8: .4byte 0x0000044E
_080391EC: .4byte gUnknown_020314E0
_080391F0:
ldr r2, _08039264 @ =gUnknown_086AEAF8
ldr r5, _08039268 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, _0803926C @ =0x000003E2
adds r3, r4, r6
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _08039218
b _080394A6
_08039218:
movs r2, #0
strh r2, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x6c
bne _08039242
movs r0, #0x6b
strh r0, [r3]
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r4, r3
movs r0, #0xd
strb r0, [r1]
ldr r1, [r5]
movs r0, #2
strb r0, [r1, #0x13]
ldr r0, [r5]
strh r2, [r0, #0x18]
_08039242:
ldr r1, [r5]
adds r0, r1, r6
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x61
beq _08039250
b _08039562
_08039250:
ldr r6, _08039270 @ =0x00000387
adds r1, r1, r6
movs r0, #0
strb r0, [r1]
ldr r0, _08039274 @ =gMPlayInfo_SE1
ldr r1, _08039278 @ =gUnknown_086A20F8
bl MPlayStart
b _08039562
.align 2, 0
_08039264: .4byte gUnknown_086AEAF8
_08039268: .4byte gUnknown_020314E0
_0803926C: .4byte 0x000003E2
_08039270: .4byte 0x00000387
_08039274: .4byte gMPlayInfo_SE1
_08039278: .4byte gUnknown_086A20F8
_0803927C:
ldr r2, _080392A8 @ =gUnknown_086AEAF8
mov r0, r8
ldr r3, [r0]
ldr r1, _080392AC @ =0x000003E2
adds r4, r3, r1
movs r6, #0
ldrsh r1, [r4, r6]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r3, r3, r1
ldrh r1, [r3]
ldrh r0, [r0]
cmp r0, r1
bls _080392B0
adds r0, r1, #1
strh r0, [r3]
b _080392C4
.align 2, 0
_080392A8: .4byte gUnknown_086AEAF8
_080392AC: .4byte 0x000003E2
_080392B0:
movs r1, #0
strh r1, [r3]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
bne _080392C4
strh r1, [r4]
_080392C4:
mov r2, r8
ldr r6, [r2]
ldr r3, _0803933C @ =0x0000038E
adds r4, r6, r3
ldrh r5, [r4]
movs r1, #0
ldrsh r0, [r4, r1]
ldr r1, _08039340 @ =0xFFFFFE0C
cmp r0, r1
ble _08039304
subs r0, r1, r0
movs r1, #0x1e
bl __divsi3
adds r0, r5, r0
strh r0, [r4]
movs r3, #0
ldrsh r0, [r4, r3]
movs r1, #0xa
bl __divsi3
adds r2, r6, #0
adds r2, #0xe6
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x32
rsbs r1, r1, #0
cmp r0, r1
bge _08039304
ldr r0, _08039344 @ =0x0000FFCE
strh r0, [r2]
_08039304:
ldr r3, _08039348 @ =gUnknown_020314E0
ldr r1, [r3]
movs r2, #0xb5
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x15
bne _08039320
ldr r4, _0803934C @ =0x000003E2
adds r1, r1, r4
movs r0, #0x72
strh r0, [r1]
_08039320:
ldr r1, [r3]
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x16
beq _08039330
b _08039562
_08039330:
ldr r6, _0803934C @ =0x000003E2
adds r1, r1, r6
movs r0, #0x73
strh r0, [r1]
b _08039562
.align 2, 0
_0803933C: .4byte 0x0000038E
_08039340: .4byte 0xFFFFFE0C
_08039344: .4byte 0x0000FFCE
_08039348: .4byte gUnknown_020314E0
_0803934C: .4byte 0x000003E2
_08039350:
ldr r5, _08039428 @ =gUnknown_020314E0
ldr r2, [r5]
movs r6, #0xf9
lsls r6, r6, #2
adds r1, r2, r6
ldrh r3, [r1]
ldr r0, _0803942C @ =0x0000012B
cmp r3, r0
bhi _08039440
adds r0, r3, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xda
bne _080393AE
ldr r0, _08039430 @ =0x00000456
adds r1, r2, r0
movs r0, #0
strh r0, [r1]
bl Random
ldr r4, [r5]
movs r1, #0x64
bl __umodsi3
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
movs r2, #0xfa
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
movs r3, #0xfa
lsls r3, r3, #2
adds r4, r4, r3
strh r0, [r4]
bl Random
ldr r4, [r5]
movs r1, #0x64
bl __umodsi3
lsls r0, r0, #2
adds r0, #0xc8
ldr r1, _08039434 @ =0x000003EA
adds r4, r4, r1
strh r0, [r4]
_080393AE:
ldr r0, [r5]
adds r0, r0, r6
ldrh r1, [r0]
movs r0, #0x82
lsls r0, r0, #1
cmp r1, r0
beq _080393BE
b _08039562
_080393BE:
movs r1, #0
mov r8, r5
mov ip, r8
ldr r7, _08039438 @ =0x00000441
movs r6, #0x8b
lsls r6, r6, #3
movs r5, #0
_080393CC:
mov r3, ip
ldr r2, [r3]
lsls r0, r1, #0x10
asrs r4, r0, #0x10
adds r0, r2, r7
adds r3, r0, r4
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #3
bne _080393FE
lsls r1, r4, #1
adds r0, r2, r6
adds r0, r0, r1
strh r5, [r0]
movs r0, #4
strb r0, [r3]
mov r0, r8
ldr r2, [r0]
ldr r1, _0803943C @ =0x000005AC
adds r2, r2, r1
ldr r0, [r2]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
str r0, [r2]
_080393FE:
mov r2, ip
ldr r1, [r2]
adds r0, r1, r7
adds r2, r0, r4
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
bne _0803941A
lsls r0, r4, #1
adds r1, r1, r6
adds r1, r1, r0
strh r5, [r1]
movs r0, #5
strb r0, [r2]
_0803941A:
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _080393CC
b _08039562
.align 2, 0
_08039428: .4byte gUnknown_020314E0
_0803942C: .4byte 0x0000012B
_08039430: .4byte 0x00000456
_08039434: .4byte 0x000003EA
_08039438: .4byte 0x00000441
_0803943C: .4byte 0x000005AC
_08039440:
movs r0, #0
strh r0, [r1]
ldr r3, _08039470 @ =0x000003E2
adds r1, r2, r3
movs r0, #0x43
strh r0, [r1]
movs r4, #0xf7
lsls r4, r4, #2
adds r1, r2, r4
movs r0, #0xc
strb r0, [r1]
ldr r0, [r5]
ldr r6, _08039474 @ =0x00000387
adds r0, r0, r6
movs r1, #2
strb r1, [r0]
ldr r0, _08039478 @ =gMPlayInfo_SE1
ldr r1, _0803947C @ =gUnknown_086A1F10
bl MPlayStart
movs r0, #8
bl sub_11B0
b _08039562
.align 2, 0
_08039470: .4byte 0x000003E2
_08039474: .4byte 0x00000387
_08039478: .4byte gMPlayInfo_SE1
_0803947C: .4byte gUnknown_086A1F10
_08039480:
ldr r2, _080394AC @ =gUnknown_086AEAF8
mov r7, r8
ldr r4, [r7]
ldr r6, _080394B0 @ =0x000003E2
adds r3, r4, r6
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _080394B4
_080394A6:
adds r0, r2, #1
strh r0, [r1]
b _08039562
.align 2, 0
_080394AC: .4byte gUnknown_086AEAF8
_080394B0: .4byte 0x000003E2
_080394B4:
movs r5, #0
strh r5, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x4f
bne _0803951C
ldr r0, _080394F0 @ =0x000003E1
adds r1, r4, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _080394F4
movs r0, #0x4e
strh r0, [r3]
movs r2, #0xf7
lsls r2, r2, #2
adds r1, r4, r2
movs r0, #0xb
strb r0, [r1]
ldr r1, [r7]
ldr r3, _080394F0 @ =0x000003E1
adds r1, r1, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803951C
.align 2, 0
_080394F0: .4byte 0x000003E1
_080394F4:
movs r0, #0
strb r0, [r1]
mov r4, r8
ldr r1, [r4]
adds r2, r1, r6
movs r0, #8
strh r0, [r2]
movs r6, #0xf7
lsls r6, r6, #2
adds r1, r1, r6
movs r0, #2
strb r0, [r1]
ldr r0, [r4]
movs r2, #0xfa
lsls r2, r2, #2
adds r1, r0, r2
strh r5, [r1]
ldr r3, _080395B0 @ =0x000003EA
adds r0, r0, r3
strh r5, [r0]
_0803951C:
ldr r3, _080395B4 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r2, _080395B8 @ =0x000003E2
adds r0, r1, r2
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x46
bne _08039534
ldr r6, _080395BC @ =0x00000387
adds r1, r1, r6
movs r0, #3
strb r0, [r1]
_08039534:
ldr r1, [r3]
adds r0, r1, r2
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x49
bne _08039548
ldr r6, _080395BC @ =0x00000387
adds r1, r1, r6
movs r0, #0
strb r0, [r1]
_08039548:
ldr r0, [r3]
adds r0, r0, r2
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x48
bne _08039562
ldr r0, _080395C0 @ =gMPlayInfo_SE1
ldr r1, _080395C4 @ =gUnknown_086A1FC4
bl MPlayStart
movs r0, #8
bl sub_11B0
_08039562:
ldr r5, _080395B4 @ =gUnknown_020314E0
ldr r0, [r5]
movs r4, #0xe4
lsls r4, r4, #2
adds r1, r0, r4
ldrh r0, [r1]
cmp r0, #0
beq _080395A2
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x14
bne _0803958C
ldr r0, _080395C8 @ =gUnknown_086A3700
ldr r2, _080395CC @ =0x00001278
adds r0, r0, r2
ldrh r0, [r0]
movs r1, #0
bl sub_528DC
_0803958C:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _080395A2
ldr r0, _080395D0 @ =gMPlayInfo_BGM
ldr r1, _080395D4 @ =0x0000FFFF
movs r2, #0x80
lsls r2, r2, #1
bl m4aMPlayVolumeControl
_080395A2:
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
_080395B0: .4byte 0x000003EA
_080395B4: .4byte gUnknown_020314E0
_080395B8: .4byte 0x000003E2
_080395BC: .4byte 0x00000387
_080395C0: .4byte gMPlayInfo_SE1
_080395C4: .4byte gUnknown_086A1FC4
_080395C8: .4byte gUnknown_086A3700
_080395CC: .4byte 0x00001278
_080395D0: .4byte gMPlayInfo_BGM
_080395D4: .4byte 0x0000FFFF
thumb_func_start sub_395D8
sub_395D8: @ 0x080395D8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r7, _08039648 @ =gUnknown_0200C2D0
ldrh r0, [r7]
cmp r0, #0
bne _080395EE
b _080398D0
_080395EE:
ldr r1, _0803964C @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08039650 @ =0x000003DF
adds r3, r0, r2
movs r5, #0
ldrsb r5, [r3, r5]
ldr r4, _08039654 @ =gUnknown_086AEAF8
adds r2, #3
adds r0, r0, r2
movs r6, #0
ldrsh r1, [r0, r6]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r4, #4
adds r0, r0, r1
ldrh r0, [r0]
strb r0, [r3]
ldr r1, _0803964C @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r2
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
mov r8, r0
cmp r5, #0xe
bgt _08039668
ldr r2, _08039658 @ =0x040000D4
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #2
subs r0, r0, r5
lsls r0, r0, #7
ldr r1, _0803965C @ =gUnknown_0849664C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08039660 @ =0x06010FA0
str r0, [r2, #4]
ldr r0, _08039664 @ =0x800002C0
b _08039684
.align 2, 0
_08039648: .4byte gUnknown_0200C2D0
_0803964C: .4byte gUnknown_020314E0
_08039650: .4byte 0x000003DF
_08039654: .4byte gUnknown_086AEAF8
_08039658: .4byte 0x040000D4
_0803965C: .4byte gUnknown_0849664C
_08039660: .4byte 0x06010FA0
_08039664: .4byte 0x800002C0
_08039668:
ldr r2, _08039720 @ =0x040000D4
adds r1, r5, #0
subs r1, #0xf
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
subs r0, r0, r1
lsls r0, r0, #6
ldr r1, _08039724 @ =gUnknown_0849B8CC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08039728 @ =0x06010FA0
str r0, [r2, #4]
ldr r0, _0803972C @ =0x80000260
_08039684:
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r3, _08039730 @ =gUnknown_020314E0
ldr r4, [r3]
movs r6, #0xfa
lsls r6, r6, #2
adds r5, r4, r6
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x48
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #2]
ldr r2, _08039734 @ =0x000003EA
adds r6, r4, r2
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x42
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #4]
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x78
movs r2, #0xa2
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x32
ldr r2, _08039738 @ =0x0000028A
adds r1, r4, r2
strh r0, [r1]
ldr r3, _0803973C @ =0x00000387
adds r0, r4, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08039740
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xc0
movs r2, #0xfc
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x86
b _08039796
.align 2, 0
_08039720: .4byte 0x040000D4
_08039724: .4byte gUnknown_0849B8CC
_08039728: .4byte 0x06010FA0
_0803972C: .4byte 0x80000260
_08039730: .4byte gUnknown_020314E0
_08039734: .4byte 0x000003EA
_08039738: .4byte 0x0000028A
_0803973C: .4byte 0x00000387
_08039740:
cmp r0, #3
bne _0803976E
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xc0
movs r2, #0xfc
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x96
b _08039796
_0803976E:
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xb4
movs r2, #0xfc
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x74
_08039796:
ldr r6, _080397FC @ =0x000003F2
adds r1, r4, r6
strh r0, [r1]
ldr r1, _08039800 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08039804 @ =0x00000389
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
ble _08039810
movs r2, #0
ldr r4, _08039808 @ =gOamBuffer
ldr r3, _0803980C @ =0xFFFFFE00
mov r8, r3
movs r6, #0xb0
_080397B8:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r4
ldrh r1, [r2, #2]
mov r0, r8
ands r0, r1
movs r1, #0xf0
orrs r0, r1
strh r0, [r2, #2]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0xb4
strb r1, [r0]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r6
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #9
ble _080397B8
b _080398D0
.align 2, 0
_080397FC: .4byte 0x000003F2
_08039800: .4byte gUnknown_020314E0
_08039804: .4byte 0x00000389
_08039808: .4byte gOamBuffer
_0803980C: .4byte 0xFFFFFE00
_08039810:
cmp r0, #1
bne _0803981C
movs r3, #0xe
mov r4, r8
lsls r0, r4, #0x10
b _0803983C
_0803981C:
cmp r0, #3
bne _08039828
movs r3, #0xb
mov r6, r8
lsls r0, r6, #0x10
b _0803983C
_08039828:
mov r1, r8
lsls r0, r1, #0x10
asrs r1, r0, #0x10
movs r3, #4
cmp r1, #0x14
beq _0803983C
movs r3, #0xf
cmp r1, #0x15
bne _0803983C
movs r3, #3
_0803983C:
movs r2, #0
lsls r3, r3, #4
mov r8, r3
ldr r3, _080399BC @ =gUnknown_086B92FC
mov sl, r3
ldr r6, _080399C0 @ =gOamBuffer
asrs r1, r0, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
mov ip, r0
ldr r4, _080399C4 @ =0xFFFFFE00
mov sb, r4
_08039856:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r6
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sl
add r0, ip
ldrh r1, [r0]
strh r1, [r2]
adds r0, #2
adds r2, #2
ldrh r1, [r0]
strh r1, [r2]
ldrh r0, [r0, #2]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r6
ldrh r0, [r2, #2]
lsls r1, r0, #0x17
lsrs r1, r1, #0x17
str r1, [sp]
movs r4, #2
ldrsh r1, [r7, r4]
ldr r0, [sp]
adds r1, r0, r1
ldr r4, _080399C8 @ =0x000001FF
ands r1, r4
mov r0, sb
ldrh r4, [r2, #2]
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
mov r4, r8
orrs r0, r4
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #9
ble _08039856
_080398D0:
ldr r7, _080399CC @ =gUnknown_0200C668
ldrh r0, [r7]
cmp r0, #0
bne _080398DA
b _08039A08
_080398DA:
ldr r6, _080399D0 @ =gUnknown_020314E0
ldr r4, [r6]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
subs r1, #0x6c
subs r0, r0, r1
strh r0, [r7, #2]
ldr r4, [r6]
ldr r3, _080399D4 @ =0x000003EA
adds r0, r4, r3
movs r6, #0
ldrsh r0, [r0, r6]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x52
subs r0, r0, r1
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _0803991E
movs r0, #0xc8
strh r0, [r7, #4]
_0803991E:
ldr r4, _080399D8 @ =gUnknown_086AEDCC
ldr r1, _080399D0 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080399DC @ =0x00000456
adds r0, r0, r2
ldrh r0, [r0]
movs r1, #0x54
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #6
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r4
ldr r2, _080399E0 @ =0x040000D4
movs r3, #0
ldrsh r1, [r0, r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #6
ldr r1, _080399E4 @ =gUnknown_083C13AC
adds r0, r0, r1
str r0, [r2]
ldr r0, _080399E8 @ =0x06012420
str r0, [r2, #4]
ldr r0, _080399EC @ =0x80000060
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0
ldr r6, _080399C0 @ =gOamBuffer
ldr r4, _080399C4 @ =0xFFFFFE00
mov r8, r4
_08039964:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r7, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r6
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _080399C8 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08039964
ldr r3, _080399D0 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r6, _080399DC @ =0x00000456
adds r4, r0, r6
ldrh r0, [r4]
cmp r0, #0x52
bhi _080399F0
adds r0, #1
strh r0, [r4]
b _08039A2C
.align 2, 0
_080399BC: .4byte gUnknown_086B92FC
_080399C0: .4byte gOamBuffer
_080399C4: .4byte 0xFFFFFE00
_080399C8: .4byte 0x000001FF
_080399CC: .4byte gUnknown_0200C668
_080399D0: .4byte gUnknown_020314E0
_080399D4: .4byte 0x000003EA
_080399D8: .4byte gUnknown_086AEDCC
_080399DC: .4byte 0x00000456
_080399E0: .4byte 0x040000D4
_080399E4: .4byte gUnknown_083C13AC
_080399E8: .4byte 0x06012420
_080399EC: .4byte 0x80000060
_080399F0:
movs r1, #0
strh r1, [r4]
ldr r0, _08039A00 @ =gMain
ldr r2, _08039A04 @ =0x000015A8
adds r0, r0, r2
strh r1, [r0]
b _08039A2C
.align 2, 0
_08039A00: .4byte gMain
_08039A04: .4byte 0x000015A8
_08039A08:
ldr r3, _08039A3C @ =gUnknown_020314E0
ldr r1, [r3]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xb
bne _08039A2C
movs r6, #0xf9
lsls r6, r6, #2
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0xda
bne _08039A2C
movs r0, #1
strh r0, [r7]
_08039A2C:
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
_08039A3C: .4byte gUnknown_020314E0
thumb_func_start sub_39A40
sub_39A40: @ 0x08039A40
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x40
movs r0, #0
str r0, [sp, #4]
ldr r1, _08039A84 @ =gUnknown_0200BAE8
str r1, [sp]
ldrh r0, [r1]
movs r2, #0x8a
lsls r2, r2, #3
adds r1, r1, r2
mov ip, r1
cmp r0, #0
bne _08039A64
b _08039BF8
_08039A64:
ldr r0, _08039A88 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _08039A8C @ =0x000006C4
adds r1, r1, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
cmp r1, #3
bne _08039A90
movs r0, #0xf0
ldr r4, [sp]
strh r0, [r4, #2]
movs r0, #0xb4
strh r0, [r4, #4]
b _08039A9A
.align 2, 0
_08039A84: .4byte gUnknown_0200BAE8
_08039A88: .4byte gUnknown_020314E0
_08039A8C: .4byte 0x000006C4
_08039A90:
movs r0, #0x60
ldr r5, [sp]
strh r0, [r5, #2]
movs r0, #0x37
strh r0, [r5, #4]
_08039A9A:
ldr r6, _08039C24 @ =gUnknown_020314E0
ldr r1, [r6]
ldr r7, [sp]
ldrh r2, [r7, #2]
ldr r3, _08039C28 @ =0x000006E4
adds r0, r1, r3
strh r2, [r0]
ldrh r0, [r7, #4]
ldr r4, _08039C2C @ =0x000006E6
adds r1, r1, r4
strh r0, [r1]
movs r5, #4
ldrsh r0, [r7, r5]
cmp r0, #0xc7
ble _08039ABC
movs r0, #0xc8
strh r0, [r7, #4]
_08039ABC:
movs r2, #0
ldr r6, _08039C30 @ =gUnknown_0200BA30
mov sl, r6
movs r7, #0xa1
lsls r7, r7, #3
add r7, sl
mov ip, r7
ldr r5, _08039C34 @ =gOamBuffer
movs r0, #3
mov r8, r0
movs r1, #0xd
rsbs r1, r1, #0
mov sb, r1
_08039AD6:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r2, [sp]
adds r6, r2, r0
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0xd0
orrs r0, r1
strb r0, [r2, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
ldr r7, _08039C24 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _08039C38 @ =0x000006DB
adds r0, r0, r1
ldrb r1, [r0]
mov r2, r8
ands r1, r2
lsls r1, r1, #2
ldrb r2, [r3, #5]
mov r0, sb
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r7, #2
ldrsh r1, [r6, r7]
ldr r2, [sp]
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _08039C3C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _08039C40 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r3, [sp]
ldrb r0, [r3, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _08039AD6
mov r4, sl
str r4, [sp]
ldr r5, _08039C24 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _08039C28 @ =0x000006E4
adds r0, r0, r6
ldrh r0, [r0]
subs r0, #8
strh r0, [r4, #2]
ldr r0, [r5]
ldr r7, _08039C2C @ =0x000006E6
adds r0, r0, r7
ldrh r0, [r0]
subs r0, #8
strh r0, [r4, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _08039B7C
movs r0, #0xc8
strh r0, [r4, #4]
_08039B7C:
movs r2, #0
ldr r5, _08039C34 @ =gOamBuffer
movs r0, #3
mov r8, r0
movs r1, #0xd
rsbs r1, r1, #0
mov sb, r1
ldr r3, _08039C40 @ =0xFFFFFE00
mov sl, r3
_08039B8E:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r7, [sp]
adds r6, r7, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
ldr r1, _08039C24 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08039C38 @ =0x000006DB
adds r0, r0, r2
ldrb r1, [r0]
mov r7, r8
ands r1, r7
lsls r1, r1, #2
ldrb r2, [r3, #5]
mov r0, sb
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r6, r0]
ldr r2, [sp]
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _08039C3C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r3, [sp]
ldrb r0, [r3, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _08039B8E
_08039BF8:
mov r4, ip
str r4, [sp]
ldrh r0, [r4]
cmp r0, #0
bne _08039C04
b _0803A14E
_08039C04:
ldr r1, _08039C24 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r5, _08039C44 @ =0x00000445
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bls _08039C18
b _08039EBA
_08039C18:
lsls r0, r0, #2
ldr r1, _08039C48 @ =_08039C4C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08039C24: .4byte gUnknown_020314E0
_08039C28: .4byte 0x000006E4
_08039C2C: .4byte 0x000006E6
_08039C30: .4byte gUnknown_0200BA30
_08039C34: .4byte gOamBuffer
_08039C38: .4byte 0x000006DB
_08039C3C: .4byte 0x000001FF
_08039C40: .4byte 0xFFFFFE00
_08039C44: .4byte 0x00000445
_08039C48: .4byte _08039C4C
_08039C4C: @ jump table
.4byte _08039C6C @ case 0
.4byte _08039CFC @ case 1
.4byte _08039D30 @ case 2
.4byte _08039D90 @ case 3
.4byte _08039DC0 @ case 4
.4byte _08039E20 @ case 5
.4byte _08039E50 @ case 6
.4byte _08039EB0 @ case 7
_08039C6C:
ldr r6, _08039CD0 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r7, _08039CD4 @ =0x00000449
adds r0, r0, r7
movs r2, #0
strb r2, [r0]
ldr r0, [r6]
ldr r1, _08039CD8 @ =0x00000446
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
ldr r0, [r6]
ldr r3, _08039CDC @ =0x00000447
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
ldr r4, _08039CE0 @ =0x0000044A
adds r0, r0, r4
strb r2, [r0]
ldr r1, [r6]
ldr r5, _08039CE4 @ =0x0000044E
adds r0, r1, r5
strh r2, [r0]
movs r6, #0x89
lsls r6, r6, #3
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _08039CAE
b _08039EBA
_08039CAE:
ldr r2, _08039CE8 @ =0x040000D4
ldr r7, _08039CEC @ =0x000005F6
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #8
lsls r0, r0, #5
ldr r1, _08039CF0 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _08039CF4 @ =0x05000220
str r0, [r2, #4]
ldr r0, _08039CF8 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
b _08039EBA
.align 2, 0
_08039CD0: .4byte gUnknown_020314E0
_08039CD4: .4byte 0x00000449
_08039CD8: .4byte 0x00000446
_08039CDC: .4byte 0x00000447
_08039CE0: .4byte 0x0000044A
_08039CE4: .4byte 0x0000044E
_08039CE8: .4byte 0x040000D4
_08039CEC: .4byte 0x000005F6
_08039CF0: .4byte gUnknown_08137E14
_08039CF4: .4byte 0x05000220
_08039CF8: .4byte 0x80000010
_08039CFC:
ldr r1, _08039D20 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08039D24 @ =0x0000044A
adds r0, r0, r2
movs r1, #4
strb r1, [r0]
ldr r3, _08039D20 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _08039D28 @ =0x0000044E
adds r2, r1, r4
movs r0, #0x5a
strh r0, [r2]
ldr r5, _08039D2C @ =0x00000445
adds r1, r1, r5
movs r0, #2
strb r0, [r1]
b _08039EBA
.align 2, 0
_08039D20: .4byte gUnknown_020314E0
_08039D24: .4byte 0x0000044A
_08039D28: .4byte 0x0000044E
_08039D2C: .4byte 0x00000445
_08039D30:
ldr r0, _08039D78 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #4]
cmp r0, #0
beq _08039D54
ldr r6, _08039D7C @ =0x0000044E
adds r1, r1, r6
ldrh r0, [r1]
subs r0, #0x5a
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bge _08039D4E
movs r0, #0
strh r0, [r1]
_08039D4E:
ldr r0, _08039D80 @ =0x00000111
bl m4aSongNumStart
_08039D54:
ldr r2, _08039D78 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r7, _08039D84 @ =0x00000449
adds r0, r0, r7
movs r1, #5
strb r1, [r0]
ldr r0, [r2]
ldr r1, _08039D88 @ =0x00000446
adds r0, r0, r1
movs r1, #9
strb r1, [r0]
ldr r0, [r2]
ldr r3, _08039D8C @ =0x00000447
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
b _08039EBA
.align 2, 0
_08039D78: .4byte gUnknown_020314E0
_08039D7C: .4byte 0x0000044E
_08039D80: .4byte 0x00000111
_08039D84: .4byte 0x00000449
_08039D88: .4byte 0x00000446
_08039D8C: .4byte 0x00000447
_08039D90:
ldr r4, _08039DB0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _08039DB4 @ =0x0000044A
adds r0, r0, r5
movs r3, #4
strb r3, [r0]
ldr r0, [r4]
ldr r6, _08039DB8 @ =0x0000044E
adds r2, r0, r6
movs r1, #0x5a
strh r1, [r2]
ldr r7, _08039DBC @ =0x00000445
adds r0, r0, r7
strb r3, [r0]
b _08039EBA
.align 2, 0
_08039DB0: .4byte gUnknown_020314E0
_08039DB4: .4byte 0x0000044A
_08039DB8: .4byte 0x0000044E
_08039DBC: .4byte 0x00000445
_08039DC0:
ldr r0, _08039E08 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #4]
cmp r0, #0
beq _08039DE4
ldr r0, _08039E0C @ =0x0000044E
adds r1, r1, r0
ldrh r0, [r1]
subs r0, #0x5a
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bge _08039DDE
movs r0, #0
strh r0, [r1]
_08039DDE:
ldr r0, _08039E10 @ =0x00000111
bl m4aSongNumStart
_08039DE4:
ldr r2, _08039E08 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08039E14 @ =0x00000449
adds r0, r0, r1
movs r1, #9
strb r1, [r0]
ldr r0, [r2]
ldr r3, _08039E18 @ =0x00000446
adds r0, r0, r3
movs r1, #0xd
strb r1, [r0]
ldr r0, [r2]
ldr r4, _08039E1C @ =0x00000447
adds r0, r0, r4
movs r1, #5
strb r1, [r0]
b _08039EBA
.align 2, 0
_08039E08: .4byte gUnknown_020314E0
_08039E0C: .4byte 0x0000044E
_08039E10: .4byte 0x00000111
_08039E14: .4byte 0x00000449
_08039E18: .4byte 0x00000446
_08039E1C: .4byte 0x00000447
_08039E20:
ldr r5, _08039E40 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _08039E44 @ =0x0000044A
adds r0, r0, r6
movs r1, #0
strb r1, [r0]
ldr r1, [r5]
ldr r7, _08039E48 @ =0x0000044E
adds r2, r1, r7
movs r0, #0x5a
strh r0, [r2]
ldr r0, _08039E4C @ =0x00000445
adds r1, r1, r0
movs r0, #6
strb r0, [r1]
b _08039EBA
.align 2, 0
_08039E40: .4byte gUnknown_020314E0
_08039E44: .4byte 0x0000044A
_08039E48: .4byte 0x0000044E
_08039E4C: .4byte 0x00000445
_08039E50:
ldr r0, _08039E98 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #4]
cmp r0, #0
beq _08039E74
ldr r2, _08039E9C @ =0x0000044E
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #0x5a
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bge _08039E6E
movs r0, #0
strh r0, [r1]
_08039E6E:
ldr r0, _08039EA0 @ =0x00000111
bl m4aSongNumStart
_08039E74:
ldr r2, _08039E98 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _08039EA4 @ =0x00000449
adds r0, r0, r3
movs r1, #0xd
strb r1, [r0]
ldr r0, [r2]
ldr r4, _08039EA8 @ =0x00000446
adds r0, r0, r4
movs r1, #0x13
strb r1, [r0]
ldr r0, [r2]
ldr r5, _08039EAC @ =0x00000447
adds r0, r0, r5
movs r1, #7
strb r1, [r0]
b _08039EBA
.align 2, 0
_08039E98: .4byte gUnknown_020314E0
_08039E9C: .4byte 0x0000044E
_08039EA0: .4byte 0x00000111
_08039EA4: .4byte 0x00000449
_08039EA8: .4byte 0x00000446
_08039EAC: .4byte 0x00000447
_08039EB0:
ldr r0, _08039EE0 @ =gMain
ldr r6, _08039EE4 @ =0x00000E78
adds r0, r0, r6
movs r1, #0
strh r1, [r0]
_08039EBA:
ldr r7, _08039EE8 @ =gUnknown_020314E0
ldr r4, [r7]
ldr r0, _08039EEC @ =0x0000044E
adds r1, r4, r0
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
ble _08039EF4
subs r0, r2, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
beq _08039ED8
b _08039FF4
_08039ED8:
ldr r0, _08039EF0 @ =0x00000111
bl m4aSongNumStart
b _08039FF4
.align 2, 0
_08039EE0: .4byte gMain
_08039EE4: .4byte 0x00000E78
_08039EE8: .4byte gUnknown_020314E0
_08039EEC: .4byte 0x0000044E
_08039EF0: .4byte 0x00000111
_08039EF4:
ldr r2, _08039F20 @ =gUnknown_086AEE5E
movs r5, #0x89
lsls r5, r5, #3
adds r3, r4, r5
movs r1, #0
ldrsb r1, [r3, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r6, #0
ldrsh r0, [r0, r6]
ldr r7, _08039F24 @ =0x00000454
adds r1, r4, r7
ldrh r2, [r1]
cmp r0, r2
ble _08039F28
adds r0, r2, #1
strh r0, [r1]
b _08039FF4
.align 2, 0
_08039F20: .4byte gUnknown_086AEE5E
_08039F24: .4byte 0x00000454
_08039F28:
movs r0, #0
strh r0, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, _08039F74 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x89
lsls r1, r1, #3
adds r3, r2, r1
ldr r4, _08039F78 @ =0x00000446
adds r0, r2, r4
movs r1, #0
ldrsb r1, [r3, r1]
ldrb r4, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bne _08039FA4
ldr r5, _08039F7C @ =0x0000044A
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08039F84
ldr r6, _08039F80 @ =0x00000449
adds r0, r2, r6
ldrb r0, [r0]
strb r0, [r3]
ldr r7, _08039F74 @ =gUnknown_020314E0
ldr r1, [r7]
adds r1, r1, r5
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _08039F98
.align 2, 0
_08039F74: .4byte gUnknown_020314E0
_08039F78: .4byte 0x00000446
_08039F7C: .4byte 0x0000044A
_08039F80: .4byte 0x00000449
_08039F84:
subs r0, r4, #1
strb r0, [r3]
ldr r1, _0803A028 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0803A02C @ =0x00000447
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0803A030 @ =0x00000445
adds r0, r0, r3
strb r1, [r0]
_08039F98:
ldr r4, _0803A028 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _0803A034 @ =0x0000044E
adds r0, r0, r5
movs r1, #0x5a
strh r1, [r0]
_08039FA4:
ldr r5, _0803A028 @ =gUnknown_020314E0
ldr r0, [r5]
movs r4, #0x89
lsls r4, r4, #3
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08039FC0
movs r0, #0x88
lsls r0, r0, #1
bl m4aSongNumStart
_08039FC0:
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xf
bne _08039FF4
ldr r2, _0803A038 @ =0x040000D4
ldr r6, _0803A03C @ =0x000005F6
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _0803A040 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0803A044 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0803A048 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0x89
lsls r0, r0, #1
bl m4aSongNumStart
_08039FF4:
ldr r0, _0803A028 @ =gUnknown_020314E0
ldr r3, [r0]
movs r7, #0x89
lsls r7, r7, #3
adds r1, r3, r7
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
cmp r1, #0x11
bgt _0803A054
ldr r0, _0803A04C @ =0x00000383
adds r1, r3, r0
movs r2, #0
movs r0, #1
strb r0, [r1]
ldr r1, _0803A028 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _0803A050 @ =0x0000132C
adds r0, r0, r3
ldr r1, [r0]
strh r2, [r1, #0x30]
ldr r1, [r0]
strh r2, [r1, #0x32]
ldr r0, [r0]
strh r2, [r0, #6]
b _0803A05C
.align 2, 0
_0803A028: .4byte gUnknown_020314E0
_0803A02C: .4byte 0x00000447
_0803A030: .4byte 0x00000445
_0803A034: .4byte 0x0000044E
_0803A038: .4byte 0x040000D4
_0803A03C: .4byte 0x000005F6
_0803A040: .4byte gUnknown_08137E14
_0803A044: .4byte 0x05000220
_0803A048: .4byte 0x80000010
_0803A04C: .4byte 0x00000383
_0803A050: .4byte 0x0000132C
_0803A054:
ldr r4, _0803A194 @ =0x00000383
adds r1, r3, r4
movs r0, #0
strb r0, [r1]
_0803A05C:
ldr r5, _0803A198 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _0803A19C @ =0x0000132C
adds r0, r0, r6
ldr r1, [r0]
ldrh r1, [r1, #0x24]
ldr r7, [sp]
strh r1, [r7, #2]
ldr r0, [r0]
ldrh r0, [r0, #0x26]
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _0803A07E
movs r0, #0xc8
strh r0, [r7, #4]
_0803A07E:
ldr r4, _0803A1A0 @ =gUnknown_086AEE5E
ldr r1, _0803A198 @ =gUnknown_020314E0
ldr r0, [r1]
movs r3, #0x89
lsls r3, r3, #3
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r4, #4
adds r0, r0, r1
ldr r2, _0803A1A4 @ =0x040000D4
ldrh r5, [r0]
str r5, [sp, #4]
movs r6, #0
ldrsh r1, [r0, r6]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #6
ldr r1, _0803A1A8 @ =gUnknown_083C1A6C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0803A1AC @ =0x060124E0
str r0, [r2, #4]
ldr r0, _0803A1B0 @ =0x800001E0
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r7, _0803A198 @ =gUnknown_020314E0
ldr r0, [r7]
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r4
movs r2, #0
ldr r1, _0803A1B4 @ =gUnknown_086B91AC
mov sb, r1
ldr r5, _0803A1B8 @ =gOamBuffer
movs r3, #0
ldrsh r1, [r0, r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
mov sl, r0
ldr r4, _0803A1BC @ =0xFFFFFE00
mov r8, r4
_0803A0E2:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r7, [sp]
adds r6, r7, r0
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
add r0, sl
ldrh r1, [r0]
strh r1, [r2]
adds r0, #2
adds r2, #2
ldrh r1, [r0]
strh r1, [r2]
ldrh r0, [r0, #2]
strh r0, [r2, #2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
mov ip, r1
movs r1, #2
ldrsh r0, [r7, r1]
mov r7, ip
adds r1, r7, r0
ldr r7, _0803A1C0 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp]
ldrb r0, [r2, #4]
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _0803A0E2
_0803A14E:
movs r2, #0
thumb_func_start sub_3A150
sub_3A150: @ 0x0803A150
lsls r2, r2, #0x10
asrs r3, r2, #0x10
movs r0, #0xb8
adds r1, r3, #0
muls r1, r0, r1
ldr r0, _0803A1C4 @ =gUnknown_0200C388
adds r1, r1, r0
str r1, [sp]
ldr r5, _0803A1C8 @ =0xFFFFED38
adds r0, r0, r5
ldrb r1, [r0, #0xf]
movs r0, #0x80
ands r0, r1
str r2, [sp, #0x3c]
cmp r0, #0
beq _0803A174
bl _0803A9A6
_0803A174:
ldr r0, _0803A198 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r6, _0803A1CC @ =0x00000441
adds r0, r0, r6
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bls _0803A18A
b _0803A8A2
_0803A18A:
lsls r0, r0, #2
ldr r1, _0803A1D0 @ =_0803A1D4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803A194: .4byte 0x00000383
_0803A198: .4byte gUnknown_020314E0
_0803A19C: .4byte 0x0000132C
_0803A1A0: .4byte gUnknown_086AEE5E
_0803A1A4: .4byte 0x040000D4
_0803A1A8: .4byte gUnknown_083C1A6C
_0803A1AC: .4byte 0x060124E0
_0803A1B0: .4byte 0x800001E0
_0803A1B4: .4byte gUnknown_086B91AC
_0803A1B8: .4byte gOamBuffer
_0803A1BC: .4byte 0xFFFFFE00
_0803A1C0: .4byte 0x000001FF
_0803A1C4: .4byte gUnknown_0200C388
_0803A1C8: .4byte 0xFFFFED38
_0803A1CC: .4byte 0x00000441
_0803A1D0: .4byte _0803A1D4
_0803A1D4: @ jump table
.4byte _0803A1EC @ case 0
.4byte _0803A218 @ case 1
.4byte _0803A2E4 @ case 2
.4byte _0803A4F0 @ case 3
.4byte _0803A6B8 @ case 4
.4byte _0803A860 @ case 5
_0803A1EC:
movs r7, #0
str r7, [sp, #4]
ldr r0, _0803A20C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, [sp, #0x3c]
asrs r0, r2, #0xe
adds r1, r1, r0
ldr r3, _0803A210 @ =0x0000045C
adds r0, r1, r3
strh r7, [r0]
ldr r5, _0803A214 @ =0x0000045E
adds r1, r1, r5
mov r6, sp
ldrh r6, [r6, #4]
strh r6, [r1]
b _0803A8A2
.align 2, 0
_0803A20C: .4byte gUnknown_020314E0
_0803A210: .4byte 0x0000045C
_0803A214: .4byte 0x0000045E
_0803A218:
ldr r7, _0803A248 @ =gUnknown_020314E0
mov r8, r7
mov r0, r8
ldr r6, [r0]
ldr r1, [sp, #0x3c]
asrs r7, r1, #0x10
lsls r1, r7, #1
movs r2, #0x8b
lsls r2, r2, #3
adds r0, r6, r2
adds r5, r0, r1
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #9
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
cmp r4, #0x61
bhi _0803A24C
adds r0, r4, #1
strh r0, [r5]
b _0803A2AA
.align 2, 0
_0803A248: .4byte gUnknown_020314E0
_0803A24C:
movs r0, #0
strh r0, [r5]
ldr r3, _0803A2C4 @ =0x00000441
adds r0, r6, r3
adds r0, r0, r7
movs r1, #2
strb r1, [r0]
bl Random
mov r4, r8
ldr r5, [r4]
ldr r6, _0803A2C8 @ =0x00000443
adds r5, r5, r6
adds r5, r5, r7
lsls r4, r7, #3
subs r4, r4, r7
ldr r1, _0803A2CC @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #7
bl __umodsi3
adds r4, r4, r0
strb r4, [r5]
mov r5, r8
ldr r1, [r5]
lsls r3, r7, #2
adds r3, r1, r3
ldr r4, _0803A2D0 @ =gUnknown_086AEDE8
adds r1, r1, r6
adds r1, r1, r7
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #2
adds r0, r0, r4
ldrh r2, [r0]
adds r6, #0x21
adds r0, r3, r6
strh r2, [r0]
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #2
adds r0, r0, r4
ldrh r0, [r0, #2]
ldr r7, _0803A2D4 @ =0x00000466
adds r3, r3, r7
strh r0, [r3]
_0803A2AA:
ldr r0, _0803A2D8 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, [sp, #0x3c]
asrs r0, r2, #0xe
adds r1, r1, r0
ldr r3, _0803A2DC @ =0x0000045C
adds r0, r1, r3
movs r2, #0
strh r2, [r0]
ldr r4, _0803A2E0 @ =0x0000045E
adds r1, r1, r4
strh r2, [r1]
b _0803A8A2
.align 2, 0
_0803A2C4: .4byte 0x00000441
_0803A2C8: .4byte 0x00000443
_0803A2CC: .4byte gMain
_0803A2D0: .4byte gUnknown_086AEDE8
_0803A2D4: .4byte 0x00000466
_0803A2D8: .4byte gUnknown_020314E0
_0803A2DC: .4byte 0x0000045C
_0803A2E0: .4byte 0x0000045E
_0803A2E4:
ldr r5, _0803A4AC @ =gUnknown_020314E0
mov sl, r5
ldr r7, [r5]
ldr r6, [sp, #0x3c]
asrs r6, r6, #0x10
mov sb, r6
lsls r6, r6, #1
str r6, [sp, #0x20]
movs r1, #0x8b
lsls r1, r1, #3
adds r0, r7, r1
adds r0, r0, r6
ldrh r0, [r0]
movs r1, #0x28
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x13
adds r0, #6
str r0, [sp, #4]
ldr r2, _0803A4B0 @ =0x00000441
adds r0, r7, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _0803A31C
b _0803A48A
_0803A31C:
ldr r3, _0803A4B4 @ =0x00000442
adds r0, r7, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _0803A32C
b _0803A48A
_0803A32C:
ldr r4, _0803A4B8 @ =0x0000132C
adds r0, r7, r4
ldr r6, [r0]
movs r5, #0x10
ldrsh r4, [r6, r5]
subs r4, #0x78
mov r0, sb
lsls r0, r0, #2
str r0, [sp, #0x24]
adds r5, r7, r0
ldr r1, _0803A4BC @ =0x0000045C
adds r0, r5, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r0, r4, r0
str r0, [sp, #0x10]
movs r3, #0x12
ldrsh r4, [r6, r3]
subs r4, #0x90
ldr r6, _0803A4C0 @ =0x0000045E
adds r5, r5, r6
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r0, r4, r0
str r0, [sp, #0x14]
ldr r2, [sp, #0x10]
adds r1, r2, #0
muls r1, r2, r1
adds r3, r0, #0
adds r0, r3, #0
muls r0, r3, r0
adds r1, r1, r0
mov r8, r1
ldr r4, _0803A4C4 @ =0x00000383
adds r0, r7, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803A48A
movs r5, #0xe2
lsls r5, r5, #2
adds r0, r7, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803A48A
ldr r1, _0803A4C8 @ =0x00000385
adds r0, r7, r1
movs r2, #0xe1
lsls r2, r2, #2
adds r1, r7, r2
movs r2, #0
ldrsb r2, [r0, r2]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
bge _0803A48A
ldr r3, _0803A4CC @ =0x00000452
adds r0, r7, r3
ldrh r5, [r0]
cmp r5, #0
bne _0803A48A
ldr r0, _0803A4D0 @ =0x0000018F
cmp r8, r0
bgt _0803A48A
subs r0, #0x7c
bl m4aSongNumStart
movs r0, #0xc
bl sub_11B0
mov r4, sl
ldr r0, [r4]
movs r2, #1
strb r2, [r0, #0x1f]
ldr r1, [r4]
movs r7, #0x8b
lsls r7, r7, #3
adds r0, r1, r7
ldr r3, [sp, #0x20]
adds r0, r0, r3
strh r5, [r0]
ldr r4, _0803A4B0 @ =0x00000441
adds r1, r1, r4
add r1, sb
movs r0, #3
strb r0, [r1]
mov r5, sl
ldr r0, [r5]
ldr r7, _0803A4D4 @ =0x000005FA
adds r0, r0, r7
strb r2, [r0]
ldr r5, [r5]
ldr r0, [sp, #0x24]
adds r4, r5, r0
ldr r1, _0803A4BC @ =0x0000045C
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x78
str r0, [sp, #8]
adds r4, r4, r6
movs r3, #0
ldrsh r0, [r4, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x90
str r0, [sp, #0xc]
ldr r4, [sp, #8]
lsls r1, r4, #8
ldr r6, _0803A4B8 @ =0x0000132C
adds r0, r5, r6
ldr r2, [r0]
ldr r0, [r2, #0x34]
subs r0, r1, r0
str r0, [sp, #0x10]
ldr r7, [sp, #0xc]
lsls r1, r7, #8
ldr r0, [r2, #0x38]
subs r0, r1, r0
str r0, [sp, #0x14]
ldr r4, _0803A4D8 @ =0x000005AC
adds r5, r5, r4
ldr r1, [sp, #0x10]
adds r0, r1, #0
muls r0, r1, r0
ldr r2, [sp, #0x14]
adds r1, r2, #0
muls r1, r2, r1
adds r0, r0, r1
str r0, [r5]
lsls r0, r0, #2
bl Sqrt
mov r3, sl
ldr r1, [r3]
adds r1, r1, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
str r0, [r1]
ldr r4, [sp, #0x10]
rsbs r0, r4, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r5, [sp, #0x14]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
bl ArcTan2
mov r6, sl
ldr r1, [r6]
movs r7, #0xb6
lsls r7, r7, #3
adds r1, r1, r7
strh r0, [r1]
_0803A48A:
ldr r0, _0803A4AC @ =gUnknown_020314E0
ldr r3, [r0]
ldr r0, [sp, #0x3c]
asrs r4, r0, #0x10
lsls r1, r4, #1
movs r2, #0x8b
lsls r2, r2, #3
adds r0, r3, r2
adds r1, r0, r1
ldrh r2, [r1]
ldr r0, _0803A4C4 @ =0x00000383
cmp r2, r0
bhi _0803A4DC
adds r0, r2, #1
strh r0, [r1]
b _0803A8A2
.align 2, 0
_0803A4AC: .4byte gUnknown_020314E0
_0803A4B0: .4byte 0x00000441
_0803A4B4: .4byte 0x00000442
_0803A4B8: .4byte 0x0000132C
_0803A4BC: .4byte 0x0000045C
_0803A4C0: .4byte 0x0000045E
_0803A4C4: .4byte 0x00000383
_0803A4C8: .4byte 0x00000385
_0803A4CC: .4byte 0x00000452
_0803A4D0: .4byte 0x0000018F
_0803A4D4: .4byte 0x000005FA
_0803A4D8: .4byte 0x000005AC
_0803A4DC:
movs r0, #0
strh r0, [r1]
ldr r5, _0803A4EC @ =0x00000441
adds r0, r3, r5
adds r0, r0, r4
movs r1, #5
b _0803A8A0
.align 2, 0
_0803A4EC: .4byte 0x00000441
_0803A4F0:
ldr r6, _0803A668 @ =gUnknown_020314E0
ldr r4, [r6]
ldr r7, [sp, #0x3c]
asrs r7, r7, #0x10
str r7, [sp, #0x28]
lsls r0, r7, #1
str r0, [sp, #0x2c]
movs r1, #0x8b
lsls r1, r1, #3
adds r0, r4, r1
ldr r2, [sp, #0x2c]
adds r6, r0, r2
ldrh r5, [r6]
adds r0, r5, #0
movs r1, #0x28
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x13
adds r0, #6
str r0, [sp, #4]
ldrh r0, [r4, #4]
cmp r0, #0
beq _0803A526
adds r0, r5, #0
adds r0, #8
strh r0, [r6]
_0803A526:
ldr r3, _0803A668 @ =gUnknown_020314E0
ldr r7, [r3]
movs r4, #0x8b
lsls r4, r4, #3
adds r0, r7, r4
ldr r5, [sp, #0x2c]
adds r0, r0, r5
ldrh r1, [r0]
movs r0, #0x1d
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
bgt _0803A546
movs r4, #0xa
_0803A546:
movs r6, #0xb6
lsls r6, r6, #3
adds r5, r7, r6
lsls r4, r4, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #0xd
movs r1, #0x1e
bl __divsi3
adds r1, r0, #0
movs r0, #0x80
lsls r0, r0, #6
subs r0, r0, r1
lsls r0, r0, #1
movs r1, #5
bl __divsi3
ldrh r1, [r5]
subs r1, r1, r0
strh r1, [r5]
ldr r6, _0803A66C @ =0x0000132C
adds r0, r7, r6
ldr r1, [r0]
ldr r2, _0803A670 @ =0xFFFFE000
adds r0, r2, #0
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r1, #0xa]
ldr r1, _0803A674 @ =0x000005AC
adds r0, r7, r1
ldr r0, [r0]
muls r0, r4, r0
movs r1, #0x1e
bl __divsi3
mov sl, r0
ldr r2, [sp, #0x28]
lsls r4, r2, #2
adds r4, r7, r4
ldr r3, _0803A678 @ =0x0000045C
adds r0, r4, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x78
str r0, [sp, #8]
ldr r0, _0803A67C @ =0x0000045E
adds r4, r4, r0
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x90
str r0, [sp, #0xc]
ldrh r0, [r5]
bl sub_C74
ldr r2, _0803A668 @ =gUnknown_020314E0
ldr r5, [r2]
adds r1, r5, r6
ldr r1, [r1]
mov r8, r1
ldr r3, [sp, #8]
lsls r4, r3, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r7, sl
muls r7, r0, r7
adds r0, r7, #0
ldr r1, _0803A680 @ =0x00004E20
mov sb, r1
bl __divsi3
adds r4, r4, r0
mov r2, r8
str r4, [r2, #0x34]
movs r3, #0xb6
lsls r3, r3, #3
adds r5, r5, r3
ldrh r0, [r5]
bl sub_C24
ldr r4, _0803A668 @ =gUnknown_020314E0
ldr r7, [r4]
adds r6, r7, r6
ldr r5, [r6]
ldr r1, [sp, #0xc]
lsls r4, r1, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r2, sl
muls r2, r0, r2
adds r0, r2, #0
mov r1, sb
bl __divsi3
subs r4, r4, r0
str r4, [r5, #0x38]
ldr r4, [r6]
movs r3, #0x30
ldrsh r0, [r4, r3]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x30]
ldr r4, [r6]
movs r5, #0x32
ldrsh r0, [r4, r5]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x32]
movs r6, #0x8b
lsls r6, r6, #3
adds r0, r7, r6
ldr r2, [sp, #0x2c]
adds r1, r0, r2
ldrh r2, [r1]
ldr r0, _0803A684 @ =0x000001DF
cmp r2, r0
bhi _0803A688
adds r0, r2, #1
strh r0, [r1]
ldrh r0, [r1]
movs r1, #9
bl __umodsi3
lsls r0, r0, #0x10
cmp r0, #0
beq _0803A65E
b _0803A8A2
_0803A65E:
movs r0, #0xc
bl sub_11B0
b _0803A8A2
.align 2, 0
_0803A668: .4byte gUnknown_020314E0
_0803A66C: .4byte 0x0000132C
_0803A670: .4byte 0xFFFFE000
_0803A674: .4byte 0x000005AC
_0803A678: .4byte 0x0000045C
_0803A67C: .4byte 0x0000045E
_0803A680: .4byte 0x00004E20
_0803A684: .4byte 0x000001DF
_0803A688:
movs r3, #0
strh r3, [r1]
ldr r4, _0803A6AC @ =0x00000441
adds r0, r7, r4
ldr r5, [sp, #0x28]
adds r0, r0, r5
movs r1, #4
strb r1, [r0]
ldr r6, _0803A6B0 @ =gUnknown_020314E0
ldr r2, [r6]
ldr r7, _0803A6B4 @ =0x000005AC
adds r2, r2, r7
ldr r0, [r2]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
str r0, [r2]
b _0803A8A2
.align 2, 0
_0803A6AC: .4byte 0x00000441
_0803A6B0: .4byte gUnknown_020314E0
_0803A6B4: .4byte 0x000005AC
_0803A6B8:
ldr r0, _0803A7EC @ =gUnknown_020314E0
ldr r5, [r0]
ldr r1, [sp, #0x3c]
asrs r1, r1, #0x10
str r1, [sp, #0x30]
lsls r2, r1, #1
str r2, [sp, #0x34]
movs r3, #0x8b
lsls r3, r3, #3
adds r0, r5, r3
adds r0, r0, r2
ldrh r2, [r0]
lsrs r1, r2, #3
movs r0, #5
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
movs r4, #0x2f
subs r4, r4, r2
movs r7, #0xb6
lsls r7, r7, #3
adds r6, r5, r7
lsls r4, r4, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #0xc
movs r1, #0x2f
bl __divsi3
adds r1, r0, #0
movs r0, #0x80
lsls r0, r0, #6
subs r0, r0, r1
lsls r0, r0, #1
movs r1, #5
bl __divsi3
ldrh r1, [r6]
subs r1, r1, r0
strh r1, [r6]
ldr r0, _0803A7F0 @ =0x0000132C
mov sb, r0
adds r0, r5, r0
ldr r1, [r0]
ldr r2, _0803A7F4 @ =0xFFFFE000
adds r0, r2, #0
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r1, #0xa]
ldr r1, _0803A7F8 @ =0x000005AC
adds r0, r5, r1
ldr r0, [r0]
muls r0, r4, r0
movs r1, #0x2f
bl __divsi3
mov sl, r0
ldr r2, [sp, #0x30]
lsls r0, r2, #2
adds r5, r5, r0
ldr r3, _0803A7FC @ =0x0000045C
adds r0, r5, r3
movs r4, #0
ldrsh r0, [r0, r4]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x78
str r0, [sp, #8]
ldr r0, _0803A800 @ =0x0000045E
adds r5, r5, r0
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x90
str r0, [sp, #0xc]
ldrh r0, [r6]
bl sub_C74
ldr r2, _0803A7EC @ =gUnknown_020314E0
ldr r5, [r2]
mov r3, sb
adds r1, r5, r3
ldr r6, [r1]
ldr r1, [sp, #8]
lsls r4, r1, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r2, sl
muls r2, r0, r2
adds r0, r2, #0
ldr r3, _0803A804 @ =0x00004E20
mov r8, r3
mov r1, r8
bl __divsi3
adds r4, r4, r0
str r4, [r6, #0x34]
adds r5, r5, r7
ldrh r0, [r5]
bl sub_C24
ldr r4, _0803A7EC @ =gUnknown_020314E0
ldr r7, [r4]
mov r5, sb
adds r6, r7, r5
ldr r5, [r6]
ldr r1, [sp, #0xc]
lsls r4, r1, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r2, sl
muls r2, r0, r2
adds r0, r2, #0
mov r1, r8
bl __divsi3
subs r4, r4, r0
str r4, [r5, #0x38]
ldr r4, [r6]
movs r3, #0x30
ldrsh r0, [r4, r3]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x30]
ldr r4, [r6]
movs r5, #0x32
ldrsh r0, [r4, r5]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x32]
movs r0, #0x8b
lsls r0, r0, #3
adds r0, r7, r0
str r0, [sp, #0x38]
ldr r2, [sp, #0x34]
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0x2e
bhi _0803A808
adds r0, #1
strh r0, [r1]
b _0803A8A2
.align 2, 0
_0803A7EC: .4byte gUnknown_020314E0
_0803A7F0: .4byte 0x0000132C
_0803A7F4: .4byte 0xFFFFE000
_0803A7F8: .4byte 0x000005AC
_0803A7FC: .4byte 0x0000045C
_0803A800: .4byte 0x0000045E
_0803A804: .4byte 0x00004E20
_0803A808:
movs r3, #0
strh r3, [r1]
ldr r3, [r6]
ldr r0, _0803A84C @ =gMain
ldr r2, [r0, #0x4c]
movs r0, #1
ands r2, r0
lsls r1, r2, #2
adds r1, r1, r2
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
ldr r4, _0803A850 @ =0x0000FF6A
adds r0, r0, r4
strh r0, [r3, #0x30]
ldr r1, [r6]
movs r0, #0x96
lsls r0, r0, #1
strh r0, [r1, #0x32]
movs r5, #0
strb r5, [r7, #0x1f]
ldr r6, _0803A854 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r7, _0803A858 @ =0x00000441
adds r0, r0, r7
ldr r1, [sp, #0x30]
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r6]
ldr r2, _0803A85C @ =0x000005FA
adds r0, r0, r2
strb r5, [r0]
b _0803A8A2
.align 2, 0
_0803A84C: .4byte gMain
_0803A850: .4byte 0x0000FF6A
_0803A854: .4byte gUnknown_020314E0
_0803A858: .4byte 0x00000441
_0803A85C: .4byte 0x000005FA
_0803A860:
ldr r0, _0803A890 @ =gUnknown_020314E0
ldr r6, [r0]
ldr r3, [sp, #0x3c]
asrs r7, r3, #0x10
lsls r1, r7, #1
movs r4, #0x8b
lsls r4, r4, #3
adds r0, r6, r4
adds r5, r0, r1
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #6
bl __udivsi3
movs r1, #5
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
str r1, [sp, #4]
cmp r4, #0x23
bhi _0803A894
adds r0, r4, #1
strh r0, [r5]
b _0803A8A2
.align 2, 0
_0803A890: .4byte gUnknown_020314E0
_0803A894:
movs r1, #0
movs r0, #0
strh r0, [r5]
ldr r5, _0803AA20 @ =0x00000441
adds r0, r6, r5
adds r0, r0, r7
_0803A8A0:
strb r1, [r0]
_0803A8A2:
ldr r6, _0803AA24 @ =gUnknown_020314E0
mov sl, r6
ldr r1, [r6]
ldr r0, [sp, #0x3c]
asrs r7, r0, #0x10
ldr r2, _0803AA20 @ =0x00000441
adds r0, r1, r2
adds r0, r0, r7
ldrb r0, [r0]
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _0803A9A6
lsls r3, r7, #2
mov sb, r3
add r1, sb
ldr r4, _0803AA28 @ =0x00000464
adds r0, r1, r4
movs r5, #0
ldrsh r2, [r0, r5]
ldr r5, _0803AA2C @ =0x0000045C
adds r0, r1, r5
movs r6, #0
ldrsh r0, [r0, r6]
subs r0, r2, r0
str r0, [sp, #0x10]
ldr r2, _0803AA30 @ =0x00000466
adds r0, r1, r2
movs r3, #0
ldrsh r2, [r0, r3]
ldr r6, _0803AA34 @ =0x0000045E
adds r1, r1, r6
movs r4, #0
ldrsh r0, [r1, r4]
subs r0, r2, r0
str r0, [sp, #0x14]
ldr r0, [sp, #0x10]
adds r1, r0, #0
muls r1, r0, r1
ldr r2, [sp, #0x14]
adds r0, r2, #0
muls r0, r2, r0
adds r1, r1, r0
mov r8, r1
ldr r3, [sp, #0x10]
lsls r0, r3, #0x10
asrs r0, r0, #0x10
rsbs r1, r2, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r1, _0803AA38 @ =0x00001388
bl __divsi3
str r0, [sp, #0x18]
adds r0, r4, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0xe
rsbs r0, r0, #0
ldr r1, _0803AA3C @ =0x00004E20
bl __divsi3
str r0, [sp, #0x1c]
mov r4, sl
ldr r1, [r4]
add r1, sb
adds r5, r1, r5
ldrh r0, [r5]
ldr r2, [sp, #0x18]
adds r0, r2, r0
strh r0, [r5]
adds r1, r1, r6
ldrh r0, [r1]
ldr r3, [sp, #0x1c]
adds r0, r3, r0
strh r0, [r1]
ldr r0, _0803AA40 @ =0x000009C3
cmp r8, r0
bgt _0803A9A6
bl Random
ldr r5, [r4]
subs r6, #0x1b
adds r5, r5, r6
adds r5, r5, r7
lsls r4, r7, #3
subs r4, r4, r7
ldr r1, _0803AA44 @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #7
bl __umodsi3
adds r4, r4, r0
strb r4, [r5]
mov r4, sl
ldr r1, [r4]
mov r5, sb
adds r3, r1, r5
ldr r4, _0803AA48 @ =gUnknown_086AEDE8
adds r1, r1, r6
adds r1, r1, r7
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #2
adds r0, r0, r4
ldrh r2, [r0]
adds r6, #0x21
adds r0, r3, r6
strh r2, [r0]
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #2
adds r0, r0, r4
ldrh r0, [r0, #2]
ldr r7, _0803AA30 @ =0x00000466
adds r3, r3, r7
strh r0, [r3]
_0803A9A6:
ldr r2, _0803AA4C @ =0x040000D4
ldr r1, [sp, #4]
lsls r0, r1, #0x10
asrs r0, r0, #7
ldr r1, _0803AA50 @ =gUnknown_084FF90C
adds r0, r0, r1
str r0, [r2]
ldr r3, [sp, #0x3c]
asrs r4, r3, #0x10
lsls r0, r4, #9
ldr r5, _0803AA54 @ =0x06011520
adds r0, r0, r5
str r0, [r2, #4]
ldr r0, _0803AA58 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r6, [sp]
ldrh r0, [r6]
cmp r0, #0
beq _0803AA9E
ldr r0, _0803AA24 @ =gUnknown_020314E0
ldr r5, [r0]
ldr r7, _0803AA20 @ =0x00000441
adds r0, r5, r7
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0803AA5C
lsls r4, r4, #2
adds r4, r5, r4
ldr r1, _0803AA2C @ =0x0000045C
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r1, r5, #0
adds r1, #0x58
ldrh r1, [r1]
subs r1, #0x68
subs r0, r0, r1
strh r0, [r6, #2]
ldr r3, _0803AA34 @ =0x0000045E
adds r4, r4, r3
movs r6, #0
ldrsh r0, [r4, r6]
movs r1, #0xa
bl __divsi3
adds r1, r5, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r1, #0x80
subs r0, r0, r1
ldr r7, [sp]
strh r0, [r7, #4]
b _0803AA66
.align 2, 0
_0803AA20: .4byte 0x00000441
_0803AA24: .4byte gUnknown_020314E0
_0803AA28: .4byte 0x00000464
_0803AA2C: .4byte 0x0000045C
_0803AA30: .4byte 0x00000466
_0803AA34: .4byte 0x0000045E
_0803AA38: .4byte 0x00001388
_0803AA3C: .4byte 0x00004E20
_0803AA40: .4byte 0x000009C3
_0803AA44: .4byte gMain
_0803AA48: .4byte gUnknown_086AEDE8
_0803AA4C: .4byte 0x040000D4
_0803AA50: .4byte gUnknown_084FF90C
_0803AA54: .4byte 0x06011520
_0803AA58: .4byte 0x80000100
_0803AA5C:
movs r0, #0xf0
ldr r1, [sp]
strh r0, [r1, #2]
movs r0, #0xb4
strh r0, [r1, #4]
_0803AA66:
ldr r6, [sp]
adds r6, #8
ldr r4, _0803AB38 @ =gOamBuffer
ldr r2, [sp]
ldrh r3, [r2, #8]
lsls r3, r3, #3
adds r3, r3, r4
movs r5, #2
ldrsh r1, [r6, r5]
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _0803AB3C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _0803AB40 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldr r3, [sp]
ldrh r1, [r3, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r3, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
_0803AA9E:
ldr r4, [sp, #0x3c]
movs r5, #0x80
lsls r5, r5, #9
adds r0, r4, r5
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _0803AAB2
bl sub_3A150
_0803AAB2:
ldr r6, _0803AB44 @ =gUnknown_0200C4F8
str r6, [sp]
ldrh r0, [r6]
cmp r0, #0
bne _0803AABE
b _0803AD44
_0803AABE:
ldr r0, _0803AB48 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r7, _0803AB4C @ =0x00000456
adds r3, r1, r7
ldrh r1, [r3]
cmp r1, #0x23
bhi _0803AB7C
adds r0, r1, #0
lsls r0, r0, #9
movs r1, #0x23
bl __divsi3
adds r0, #0x10
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x80
lsls r1, r1, #2
cmp r0, r1
ble _0803AAE8
adds r6, r1, #0
_0803AAE8:
lsls r5, r6, #0x10
asrs r5, r5, #0x10
adds r0, r5, #0
adds r1, r5, #0
movs r2, #1
bl SetMatrixScale
rsbs r4, r5, #0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
adds r1, r5, #0
movs r2, #2
bl SetMatrixScale
adds r0, r5, #0
adds r1, r4, #0
movs r2, #3
bl SetMatrixScale
adds r0, r4, #0
adds r1, r4, #0
movs r2, #4
bl SetMatrixScale
ldr r1, _0803AB48 @ =gUnknown_020314E0
ldr r0, [r1]
adds r1, r0, r7
ldrh r0, [r1]
cmp r0, #0x1e
bls _0803AB50
subs r0, #0x1e
movs r1, #0xb
muls r0, r1, r0
movs r1, #5
bl __divsi3
movs r1, #0xc
b _0803AB5C
.align 2, 0
_0803AB38: .4byte gOamBuffer
_0803AB3C: .4byte 0x000001FF
_0803AB40: .4byte 0xFFFFFE00
_0803AB44: .4byte gUnknown_0200C4F8
_0803AB48: .4byte gUnknown_020314E0
_0803AB4C: .4byte 0x00000456
_0803AB50:
ldrh r0, [r1]
lsls r0, r0, #2
movs r1, #0x1e
bl __divsi3
movs r1, #0x10
_0803AB5C:
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
ldr r2, _0803AB74 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0803AB78 @ =0x00000456
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0803AB86
.align 2, 0
_0803AB74: .4byte gUnknown_020314E0
_0803AB78: .4byte 0x00000456
_0803AB7C:
movs r6, #0x80
lsls r6, r6, #1
movs r4, #0
ldr r5, [sp]
strh r4, [r5]
_0803AB86:
ldr r7, _0803AD54 @ =gUnknown_020314E0
ldr r1, [r7]
lsls r0, r6, #0x10
asrs r5, r0, #0x10
adds r0, r5, #0
cmp r5, #0
bge _0803AB96
adds r0, r5, #7
_0803AB96:
asrs r3, r0, #3
movs r0, #0x20
subs r2, r0, r3
ldr r6, _0803AD58 @ =0x0000046C
adds r0, r1, r6
strh r2, [r0]
adds r3, #0x20
movs r7, #0x8e
lsls r7, r7, #3
adds r0, r1, r7
strh r3, [r0]
ldr r6, _0803AD5C @ =0x00000474
adds r0, r1, r6
strh r2, [r0]
movs r7, #0x8f
lsls r7, r7, #3
adds r0, r1, r7
strh r3, [r0]
ldr r6, _0803AD60 @ =0x0000046E
adds r0, r1, r6
strh r2, [r0]
ldr r7, _0803AD64 @ =0x00000472
adds r0, r1, r7
strh r2, [r0]
ldr r2, _0803AD68 @ =0x00000476
adds r0, r1, r2
strh r3, [r0]
ldr r5, _0803AD6C @ =0x0000047A
adds r0, r1, r5
strh r3, [r0]
ldr r2, _0803AD70 @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #0xc0
ands r0, r1
mov sb, r2
cmp r0, #0
bne _0803ABF6
ldrh r0, [r2, #0x38]
ldr r0, _0803AD74 @ =0x00001E10
strh r0, [r2, #0x38]
movs r0, #0x10
lsls r1, r4, #0x10
asrs r1, r1, #0x10
subs r0, r0, r1
lsls r0, r0, #8
orrs r0, r1
ldrh r1, [r2, #0x3a]
strh r0, [r2, #0x3a]
_0803ABF6:
ldr r6, [sp]
ldrh r0, [r6]
cmp r0, #0
beq _0803ACAE
ldr r7, _0803AD54 @ =gUnknown_020314E0
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x17
subs r0, r0, r2
strh r0, [r6, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r0, #0x1e
subs r0, r0, r1
strh r0, [r6, #4]
movs r2, #0
ldr r7, _0803AD78 @ =gOamBuffer
ldr r0, _0803AD7C @ =0xFFFFFE00
mov sl, r0
movs r1, #0xf
rsbs r1, r1, #0
mov r8, r1
_0803AC26:
lsls r5, r2, #0x10
asrs r5, r5, #0x10
lsls r0, r5, #3
adds r0, #8
ldr r2, [sp]
adds r6, r2, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r7
movs r4, #2
ldrsh r1, [r6, r4]
movs r4, #2
ldrsh r0, [r2, r4]
adds r1, r1, r0
ldr r0, _0803AD54 @ =gUnknown_020314E0
ldr r4, [r0]
lsls r0, r5, #2
adds r4, r4, r0
ldr r2, _0803AD58 @ =0x0000046C
adds r0, r4, r2
movs r2, #0
ldrsh r0, [r0, r2]
adds r1, r1, r0
ldr r2, _0803AD80 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r7
ldr r3, [sp]
ldrb r1, [r3, #4]
ldrb r0, [r6, #4]
adds r1, r1, r0
ldr r3, _0803AD60 @ =0x0000046E
adds r4, r4, r3
ldrb r0, [r4]
adds r0, r0, r1
strb r0, [r2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r7
ldrb r0, [r2, #1]
movs r1, #3
orrs r0, r1
strb r0, [r2, #1]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r7
adds r5, #1
movs r0, #7
adds r1, r5, #0
ands r1, r0
lsls r1, r1, #1
ldrb r2, [r3, #3]
mov r0, r8
ands r0, r2
orrs r0, r1
strb r0, [r3, #3]
lsls r5, r5, #0x10
lsrs r2, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _0803AC26
_0803ACAE:
ldr r4, _0803AD54 @ =gUnknown_020314E0
ldr r3, [r4]
ldr r5, _0803AD84 @ =0x00000456
adds r4, r3, r5
ldrh r0, [r4]
cmp r0, #0x1d
bhi _0803AD30
ldr r6, _0803AD88 @ =0x0000132C
adds r0, r3, r6
ldr r1, [r0]
movs r7, #0x10
ldrsh r0, [r1, r7]
subs r0, #0x77
str r0, [sp, #0x10]
movs r2, #0x12
ldrsh r0, [r1, r2]
subs r0, #0x7f
str r0, [sp, #0x14]
ldr r5, [sp, #0x10]
adds r1, r5, #0
muls r1, r5, r1
adds r6, r0, #0
adds r0, r6, #0
muls r0, r6, r0
adds r1, r1, r0
mov r8, r1
movs r7, #0xe2
lsls r7, r7, #2
adds r0, r3, r7
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
bne _0803AD30
ldr r0, _0803AD8C @ =gUnknown_086AEE20
ldrh r1, [r4]
lsls r1, r1, #1
adds r1, r1, r0
movs r4, #0
ldrsh r0, [r1, r4]
cmp r8, r0
bge _0803AD30
ldr r5, _0803AD90 @ =0x00000445
adds r0, r3, r5
strb r2, [r0]
ldr r6, _0803AD54 @ =gUnknown_020314E0
ldr r0, [r6]
adds r7, #0xc0
adds r0, r0, r7
strb r2, [r0]
ldr r0, [r6]
ldr r1, _0803AD94 @ =0x00000454
adds r0, r0, r1
strh r2, [r0]
ldr r5, _0803AD70 @ =gMain
ldr r2, _0803AD98 @ =0x00000E78
adds r4, r5, r2
ldrh r0, [r4]
cmp r0, #0
bne _0803AD2A
movs r0, #8
bl sub_11B0
_0803AD2A:
movs r0, #1
strh r0, [r4]
mov sb, r5
_0803AD30:
mov r3, sb
ldrb r1, [r3, #0xf]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
beq _0803AD44
ldr r1, _0803AD9C @ =0x00001438
add r1, sb
movs r0, #0
strh r0, [r1]
_0803AD44:
add sp, #0x40
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
_0803AD54: .4byte gUnknown_020314E0
_0803AD58: .4byte 0x0000046C
_0803AD5C: .4byte 0x00000474
_0803AD60: .4byte 0x0000046E
_0803AD64: .4byte 0x00000472
_0803AD68: .4byte 0x00000476
_0803AD6C: .4byte 0x0000047A
_0803AD70: .4byte gMain
_0803AD74: .4byte 0x00001E10
_0803AD78: .4byte gOamBuffer
_0803AD7C: .4byte 0xFFFFFE00
_0803AD80: .4byte 0x000001FF
_0803AD84: .4byte 0x00000456
_0803AD88: .4byte 0x0000132C
_0803AD8C: .4byte gUnknown_086AEE20
_0803AD90: .4byte 0x00000445
_0803AD94: .4byte 0x00000454
_0803AD98: .4byte 0x00000E78
_0803AD9C: .4byte 0x00001438
thumb_func_start sub_3ADA0
sub_3ADA0: @ 0x0803ADA0
push {r4, r5, r6, r7, lr}
ldr r6, _0803AE04 @ =gUnknown_0200C4F8
ldrh r0, [r6]
cmp r0, #0
beq _0803ADFE
movs r0, #0xf0
strh r0, [r6, #2]
movs r0, #0xa0
strh r0, [r6, #4]
movs r0, #0
ldr r7, _0803AE08 @ =gOamBuffer
ldr r1, _0803AE0C @ =0xFFFFFE00
mov ip, r1
_0803ADBA:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r3, r5, #3
adds r3, #8
adds r3, r6, r3
ldrh r4, [r3]
lsls r4, r4, #3
adds r4, r4, r7
movs r2, #2
ldrsh r1, [r3, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _0803AE10 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r4, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r4, #2]
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _0803ADBA
_0803ADFE:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0803AE04: .4byte gUnknown_0200C4F8
_0803AE08: .4byte gOamBuffer
_0803AE0C: .4byte 0xFFFFFE00
_0803AE10: .4byte 0x000001FF
thumb_func_start sub_3AE14
sub_3AE14: @ 0x0803AE14
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _0803AE80 @ =gUnknown_020314E0
ldr r5, [r0]
movs r1, #0x13
ldrsb r1, [r5, r1]
cmp r1, #0
bne _0803AEA8
ldrh r1, [r5, #0x18]
ldr r0, _0803AE84 @ =0x00000257
cmp r1, r0
bhi _0803AEA8
ldr r4, _0803AE88 @ =gUnknown_086AEF04
adds r0, r1, #0
movs r1, #0xf0
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r4
ldr r1, _0803AE8C @ =0x040000D4
movs r3, #0
ldrsh r2, [r0, r3]
lsls r2, r2, #5
ldr r0, _0803AE90 @ =gUnknown_083529D8
adds r0, r2, r0
str r0, [r1]
ldr r0, _0803AE94 @ =0x05000340
str r0, [r1, #4]
ldr r3, _0803AE98 @ =0x80000010
str r3, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0803AE9C @ =gUnknown_0833FF58
adds r2, r2, r0
str r2, [r1]
ldr r0, _0803AEA0 @ =0x050002A0
str r0, [r1, #4]
str r3, [r1, #8]
ldr r0, [r1, #8]
movs r6, #2
ldr r0, _0803AEA4 @ =0x0000044C
adds r1, r5, r0
movs r0, #0
strh r0, [r1]
b _0803AED2
.align 2, 0
_0803AE80: .4byte gUnknown_020314E0
_0803AE84: .4byte 0x00000257
_0803AE88: .4byte gUnknown_086AEF04
_0803AE8C: .4byte 0x040000D4
_0803AE90: .4byte gUnknown_083529D8
_0803AE94: .4byte 0x05000340
_0803AE98: .4byte 0x80000010
_0803AE9C: .4byte gUnknown_0833FF58
_0803AEA0: .4byte 0x050002A0
_0803AEA4: .4byte 0x0000044C
_0803AEA8:
ldr r6, _0803B0C4 @ =gUnknown_086AEEE6
ldr r1, _0803B0C8 @ =gUnknown_020314E0
ldr r5, [r1]
ldr r2, _0803B0CC @ =0x0000044C
adds r5, r5, r2
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #0x60
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r6
ldrh r6, [r0]
adds r4, #1
strh r4, [r5]
_0803AED2:
ldr r4, _0803B0D0 @ =gUnknown_086AEED6
ldr r3, _0803B0C8 @ =gUnknown_020314E0
ldr r0, [r3]
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
movs r1, #0x60
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r4
movs r2, #0
ldr r3, _0803B0D4 @ =gUnknown_03006C00
mov r8, r3
ldr r1, _0803B0D8 @ =gUnknown_086AEEDE
mov sl, r1
lsls r6, r6, #0x10
mov sb, r6
ldr r7, _0803B0DC @ =0xFFFFF000
add r7, r8
ldr r6, _0803B0E0 @ =gUnknown_08333004
movs r3, #0
ldrsh r0, [r0, r3]
lsls r3, r0, #2
ldr r5, _0803B0E4 @ =0x000003FF
movs r4, #0x80
lsls r4, r4, #4
_0803AF10:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r2, r1, r4
lsls r2, r2, #1
adds r2, r2, r7
lsls r0, r1, #1
adds r0, r0, r6
ldrh r0, [r0]
adds r0, r0, r3
strh r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r5
ble _0803AF10
ldr r4, _0803B0E8 @ =0x040000D4
mov r0, r8
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _0803B0EC @ =0x80000400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r1, _0803B0F0 @ =gMain
ldr r0, [r1, #0x4c]
movs r1, #0x60
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
add r0, sl
ldr r2, _0803B0C8 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0803B0F4 @ =0x00000382
adds r1, r1, r3
movs r2, #0
ldrsb r2, [r1, r2]
lsls r2, r2, #2
ldr r1, _0803B0F8 @ =gUnknown_086AEAE0
adds r2, r2, r1
movs r3, #0
ldrsh r1, [r0, r3]
lsls r1, r1, #5
ldr r0, [r2]
adds r0, r0, r1
str r0, [r4]
ldr r0, _0803B0FC @ =0x05000060
str r0, [r4, #4]
ldr r0, _0803B100 @ =0x80000010
str r0, [r4, #8]
ldr r0, [r4, #8]
movs r3, #0
ldr r7, _0803B104 @ =gOamBuffer
mov r0, sb
asrs r0, r0, #0xd
mov r8, r0
ldr r1, _0803B108 @ =gUnknown_086AEEFE
mov sb, r1
ldr r2, _0803B10C @ =0xFFFFFC00
mov sl, r2
_0803AF90:
lsls r3, r3, #0x10
asrs r1, r3, #0x10
movs r0, #0xb8
muls r0, r1, r0
ldr r1, _0803B110 @ =gUnknown_0200BBA0
adds r6, r0, r1
ldr r2, _0803B0C8 @ =gUnknown_020314E0
ldr r1, [r2]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x78
subs r0, r0, r2
strh r0, [r6, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r0, #0x80
subs r0, r0, r1
strh r0, [r6, #4]
movs r2, #0
mov ip, r3
_0803AFBA:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
movs r3, #2
ldrsh r1, [r5, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _0803B114 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0803B118 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r2, [r5, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
lsls r0, r4, #1
add r0, sb
ldrh r1, [r0]
add r1, r8
ldr r3, _0803B0E4 @ =0x000003FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #4]
mov r0, sl
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #2
ble _0803AFBA
movs r0, #0x80
lsls r0, r0, #9
add r0, ip
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0803AF90
ldr r6, _0803B11C @ =gUnknown_0200BE80
ldrh r0, [r6]
cmp r0, #0
beq _0803B0B4
ldr r1, _0803B0C8 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x78
subs r0, r0, r1
strh r0, [r6, #2]
ldr r2, _0803B0C8 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x80
subs r0, r0, r1
strh r0, [r6, #4]
movs r2, #0
ldr r7, _0803B104 @ =gOamBuffer
ldr r3, _0803B118 @ =0xFFFFFE00
mov r8, r3
_0803B056:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _0803B114 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #7
ble _0803B056
ldr r3, _0803B0C8 @ =gUnknown_020314E0
ldr r0, [r3]
ldrh r1, [r0, #0x18]
movs r0, #0xf0
lsls r0, r0, #1
cmp r1, r0
bne _0803B0B4
ldr r0, _0803B0F0 @ =gMain
movs r2, #0xdc
lsls r2, r2, #4
adds r1, r0, r2
movs r0, #0
strh r0, [r1]
_0803B0B4:
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
_0803B0C4: .4byte gUnknown_086AEEE6
_0803B0C8: .4byte gUnknown_020314E0
_0803B0CC: .4byte 0x0000044C
_0803B0D0: .4byte gUnknown_086AEED6
_0803B0D4: .4byte gUnknown_03006C00
_0803B0D8: .4byte gUnknown_086AEEDE
_0803B0DC: .4byte 0xFFFFF000
_0803B0E0: .4byte gUnknown_08333004
_0803B0E4: .4byte 0x000003FF
_0803B0E8: .4byte 0x040000D4
_0803B0EC: .4byte 0x80000400
_0803B0F0: .4byte gMain
_0803B0F4: .4byte 0x00000382
_0803B0F8: .4byte gUnknown_086AEAE0
_0803B0FC: .4byte 0x05000060
_0803B100: .4byte 0x80000010
_0803B104: .4byte gOamBuffer
_0803B108: .4byte gUnknown_086AEEFE
_0803B10C: .4byte 0xFFFFFC00
_0803B110: .4byte gUnknown_0200BBA0
_0803B114: .4byte 0x000001FF
_0803B118: .4byte 0xFFFFFE00
_0803B11C: .4byte gUnknown_0200BE80
thumb_func_start sub_3B120
sub_3B120: @ 0x0803B120
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r4, _0803B158 @ =gUnknown_020314E0
ldr r1, [r4]
movs r2, #0
movs r0, #0
strh r0, [r1, #0x18]
strb r2, [r1, #0x17]
ldr r0, [r4]
strb r2, [r0, #0x13]
ldr r5, [r4]
ldr r1, _0803B15C @ =0x00000283
adds r0, r5, r1
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov ip, r4
cmp r0, #3
bne _0803B160
movs r2, #0xe1
lsls r2, r2, #2
adds r1, r5, r2
movs r0, #0x12
b _0803B168
.align 2, 0
_0803B158: .4byte gUnknown_020314E0
_0803B15C: .4byte 0x00000283
_0803B160:
movs r3, #0xe1
lsls r3, r3, #2
adds r1, r5, r3
movs r0, #0xf
_0803B168:
strb r0, [r1]
mov r4, ip
ldr r0, [r4]
movs r5, #0xa5
lsls r5, r5, #2
adds r0, r0, r5
movs r3, #0
strb r3, [r0]
ldr r1, [r4]
adds r5, r1, #0
adds r5, #0x6c
ldr r6, _0803B42C @ =0x00002A30
adds r0, r6, #0
ldrh r2, [r5]
adds r0, r0, r2
ldr r4, _0803B430 @ =0x00000296
adds r2, r1, r4
movs r4, #0
strh r0, [r2]
strh r3, [r5]
movs r5, #0xe2
lsls r5, r5, #2
adds r1, r1, r5
movs r2, #3
strb r2, [r1]
mov r6, ip
ldr r0, [r6]
adds r5, #0xa
adds r1, r0, r5
strh r3, [r1]
ldr r6, _0803B434 @ =0x0000132C
adds r0, r0, r6
ldr r0, [r0]
movs r1, #1
strb r1, [r0]
mov r5, ip
ldr r0, [r5]
ldr r6, _0803B438 @ =0x00000386
adds r0, r0, r6
strb r4, [r0]
ldr r0, [r5]
ldr r5, _0803B43C @ =0x00000387
adds r0, r0, r5
strb r1, [r0]
mov r6, ip
ldr r0, [r6]
ldr r1, _0803B440 @ =0x000006C4
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
ldr r2, _0803B444 @ =0x00000382
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r6]
subs r5, #4
adds r0, r0, r5
strb r4, [r0]
ldr r0, [r6]
ldr r6, _0803B448 @ =0x00000385
adds r0, r0, r6
strb r4, [r0]
mov r1, ip
ldr r0, [r1]
adds r2, #7
adds r0, r0, r2
strb r4, [r0]
ldr r1, [r1]
adds r5, #0xb
adds r0, r1, r5
strh r3, [r0]
adds r6, #0xb
adds r0, r1, r6
strh r3, [r0]
adds r2, #0xb
adds r0, r1, r2
strh r3, [r0]
adds r5, #0x4e
adds r0, r1, r5
strb r4, [r0]
mov r6, ip
ldr r0, [r6]
ldr r1, _0803B44C @ =0x000003DD
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
adds r2, #0x4a
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r6]
adds r5, #3
adds r0, r0, r5
strb r4, [r0]
ldr r0, [r6]
movs r6, #0xf8
lsls r6, r6, #2
adds r0, r0, r6
strb r4, [r0]
mov r1, ip
ldr r0, [r1]
adds r2, #4
adds r1, r0, r2
strh r3, [r1]
adds r5, #2
adds r0, r0, r5
strb r4, [r0]
mov r6, ip
ldr r1, [r6]
adds r2, #2
adds r0, r1, r2
strh r3, [r0]
adds r5, #5
adds r0, r1, r5
strh r3, [r0]
movs r6, #0xfa
lsls r6, r6, #2
adds r0, r1, r6
strh r3, [r0]
adds r2, #6
adds r0, r1, r2
strh r3, [r0]
adds r5, #6
adds r0, r1, r5
strh r3, [r0]
adds r6, #6
adds r0, r1, r6
strh r3, [r0]
adds r2, #6
adds r0, r1, r2
strh r3, [r0]
adds r5, #6
adds r0, r1, r5
strh r3, [r0]
adds r6, #0x64
adds r0, r1, r6
strh r3, [r0]
adds r2, #0x66
adds r0, r1, r2
strh r3, [r0]
adds r5, #0x8a
adds r1, r1, r5
strb r4, [r1]
mov r6, ip
ldr r0, [r6]
ldr r1, _0803B450 @ =0x0000047D
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
adds r2, #0x28
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r6]
adds r5, #3
adds r0, r0, r5
strb r4, [r0]
ldr r0, [r6]
movs r6, #0x90
lsls r6, r6, #3
adds r1, r0, r6
strh r3, [r1]
adds r2, #4
adds r1, r0, r2
strh r3, [r1]
adds r5, #5
adds r1, r0, r5
strh r3, [r1]
adds r6, #6
adds r1, r0, r6
strh r3, [r1]
adds r2, #6
adds r1, r0, r2
strh r3, [r1]
adds r5, #6
adds r1, r0, r5
strh r3, [r1]
adds r6, #0x3e
adds r1, r0, r6
strh r3, [r1]
adds r2, #0x3e
adds r1, r0, r2
strh r3, [r1]
adds r5, #0x3e
adds r0, r0, r5
strb r4, [r0]
mov r6, ip
ldr r0, [r6]
adds r2, #4
adds r1, r0, r2
strh r3, [r1]
ldr r3, _0803B454 @ =0x000004C9
adds r0, r0, r3
strb r4, [r0]
movs r1, #0
mov r5, ip
movs r6, #0
movs r7, #0
_0803B2EE:
ldr r3, [r5]
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r4, r2, #2
adds r1, r3, r4
ldr r0, _0803B458 @ =0x0000046C
strh r7, [r0, r1]
adds r0, #2
adds r1, r1, r0
strh r7, [r1]
ldr r1, _0803B45C @ =0x0000048C
adds r3, r3, r1
adds r3, r3, r2
strb r6, [r3]
ldr r0, [r5]
movs r3, #0x92
lsls r3, r3, #3
adds r0, r0, r3
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
adds r1, #8
adds r0, r0, r1
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
adds r3, #8
adds r0, r0, r3
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
adds r1, #8
adds r0, r0, r1
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
adds r3, #8
adds r0, r0, r3
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
adds r1, #8
adds r0, r0, r1
adds r0, r0, r2
strb r6, [r0]
ldr r1, [r5]
lsls r3, r2, #1
mov r8, r3
ldr r3, _0803B460 @ =0x000004AC
adds r0, r1, r3
add r0, r8
strh r7, [r0]
adds r1, r1, r4
ldr r4, _0803B464 @ =0x000004B4
adds r0, r1, r4
strh r7, [r0]
ldr r0, _0803B468 @ =0x000004B6
adds r1, r1, r0
strh r7, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #3
ble _0803B2EE
movs r1, #0
ldr r5, _0803B46C @ =gUnknown_020314E0
movs r4, #0
_0803B376:
ldr r0, [r5]
lsls r2, r1, #0x10
asrs r2, r2, #0x10
ldr r1, _0803B470 @ =0x000004CC
adds r0, r0, r1
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
ldr r3, _0803B474 @ =0x000004CF
adds r0, r0, r3
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
ldr r6, _0803B478 @ =0x000004D2
adds r0, r0, r6
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r1, #9
adds r0, r0, r1
adds r0, r0, r2
strb r4, [r0]
ldr r1, [r5]
lsls r3, r2, #1
adds r6, #6
adds r0, r1, r6
adds r0, r0, r3
strh r4, [r0]
adds r6, #6
adds r0, r1, r6
adds r0, r0, r3
strh r4, [r0]
adds r6, #6
adds r0, r1, r6
adds r0, r0, r3
strh r4, [r0]
lsls r0, r2, #2
adds r1, r1, r0
ldr r3, _0803B47C @ =0x000004EC
adds r0, r1, r3
strh r4, [r0]
adds r6, #0xa
adds r0, r1, r6
strh r4, [r0]
adds r3, #0xc
adds r0, r1, r3
strh r4, [r0]
adds r6, #0xc
adds r1, r1, r6
strh r4, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #2
ble _0803B376
mov r0, ip
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #0x1a]
bl sub_3CBC4
bl sub_3B7C4
bl sub_3C6E0
ldr r4, _0803B480 @ =0x040000D4
ldr r0, _0803B484 @ =gUnknown_0849F1CC
str r0, [r4]
ldr r0, _0803B488 @ =0x06015800
str r0, [r4, #4]
ldr r0, _0803B48C @ =0x80001000
str r0, [r4, #8]
ldr r0, [r4, #8]
bl sub_3E644
movs r0, #0x28
bl m4aSongNumStart
ldr r0, _0803B490 @ =gUnknown_081B36A4
str r0, [r4]
ldr r0, _0803B494 @ =0x05000320
str r0, [r4, #4]
ldr r0, _0803B498 @ =0x80000010
str r0, [r4, #8]
ldr r0, [r4, #8]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0803B42C: .4byte 0x00002A30
_0803B430: .4byte 0x00000296
_0803B434: .4byte 0x0000132C
_0803B438: .4byte 0x00000386
_0803B43C: .4byte 0x00000387
_0803B440: .4byte 0x000006C4
_0803B444: .4byte 0x00000382
_0803B448: .4byte 0x00000385
_0803B44C: .4byte 0x000003DD
_0803B450: .4byte 0x0000047D
_0803B454: .4byte 0x000004C9
_0803B458: .4byte 0x0000046C
_0803B45C: .4byte 0x0000048C
_0803B460: .4byte 0x000004AC
_0803B464: .4byte 0x000004B4
_0803B468: .4byte 0x000004B6
_0803B46C: .4byte gUnknown_020314E0
_0803B470: .4byte 0x000004CC
_0803B474: .4byte 0x000004CF
_0803B478: .4byte 0x000004D2
_0803B47C: .4byte 0x000004EC
_0803B480: .4byte 0x040000D4
_0803B484: .4byte gUnknown_0849F1CC
_0803B488: .4byte 0x06015800
_0803B48C: .4byte 0x80001000
_0803B490: .4byte gUnknown_081B36A4
_0803B494: .4byte 0x05000320
_0803B498: .4byte 0x80000010
thumb_func_start sub_3B49C
sub_3B49C: @ 0x0803B49C
push {r4, r5, r6, lr}
ldr r0, _0803B4B8 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bls _0803B4AE
b _0803B740
_0803B4AE:
lsls r0, r0, #2
ldr r1, _0803B4BC @ =_0803B4C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803B4B8: .4byte gUnknown_020314E0
_0803B4BC: .4byte _0803B4C0
_0803B4C0: @ jump table
.4byte _0803B4DC @ case 0
.4byte _0803B740 @ case 1
.4byte _0803B576 @ case 2
.4byte _0803B5EC @ case 3
.4byte _0803B66C @ case 4
.4byte _0803B6C8 @ case 5
.4byte _0803B728 @ case 6
_0803B4DC:
ldr r5, _0803B504 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r1, _0803B508 @ =0x000005F7
adds r0, r0, r1
movs r2, #0
movs r6, #1
strb r6, [r0]
ldr r4, [r5]
ldrh r1, [r4, #0x18]
ldr r0, _0803B50C @ =0x000001F3
cmp r1, r0
bhi _0803B514
adds r1, r4, #0
adds r1, #0xe6
ldr r0, _0803B510 @ =0x0000FFC0
strh r0, [r1]
ldrh r0, [r4, #0x18]
adds r0, #1
strh r0, [r4, #0x18]
b _0803B740
.align 2, 0
_0803B504: .4byte gUnknown_020314E0
_0803B508: .4byte 0x000005F7
_0803B50C: .4byte 0x000001F3
_0803B510: .4byte 0x0000FFC0
_0803B514:
ldr r0, _0803B55C @ =0x00000333
cmp r1, r0
bhi _0803B568
ldrh r0, [r4, #0x18]
ldr r2, _0803B560 @ =0xFFFFFE0C
adds r0, r0, r2
movs r1, #5
bl __divsi3
subs r0, #0x40
adds r1, r4, #0
adds r1, #0xe6
strh r0, [r1]
ldrh r0, [r4, #0x18]
adds r0, #1
strh r0, [r4, #0x18]
movs r0, #0
ldrsh r1, [r1, r0]
movs r0, #0x20
rsbs r0, r0, #0
cmp r1, r0
blt _0803B544
movs r0, #0
strb r0, [r4, #0x1a]
_0803B544:
ldr r2, [r5]
ldrh r1, [r2, #0x18]
ldr r0, _0803B564 @ =0x0000028A
cmp r1, r0
beq _0803B550
b _0803B740
_0803B550:
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r2, r1
strb r6, [r0]
b _0803B740
.align 2, 0
_0803B55C: .4byte 0x00000333
_0803B560: .4byte 0xFFFFFE0C
_0803B564: .4byte 0x0000028A
_0803B568:
adds r0, r4, #0
adds r0, #0xe6
strh r2, [r0]
strb r6, [r4, #0x13]
ldr r0, [r5]
strh r2, [r0, #0x18]
b _0803B740
_0803B576:
ldr r2, _0803B588 @ =gUnknown_020314E0
ldr r3, [r2]
ldrh r0, [r3, #0x18]
cmp r0, #0x77
bhi _0803B58C
adds r0, #1
strh r0, [r3, #0x18]
b _0803B740
.align 2, 0
_0803B588: .4byte gUnknown_020314E0
_0803B58C:
movs r1, #0
movs r0, #3
strb r0, [r3, #0x13]
ldr r2, [r2]
strh r1, [r2, #0x18]
ldr r3, _0803B5D4 @ =gMain
movs r4, #0xe9
lsls r4, r4, #3
adds r0, r3, r4
movs r4, #1
movs r1, #1
strh r1, [r0]
movs r5, #0xd2
lsls r5, r5, #3
adds r0, r3, r5
strh r1, [r0]
ldr r1, _0803B5D8 @ =0x040000D4
ldr r0, _0803B5DC @ =gUnknown_0813E894
str r0, [r1]
ldr r0, _0803B5E0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0803B5E4 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xe5
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #0x88
strh r0, [r1]
movs r0, #0x80
strb r0, [r3, #0xf]
ldr r1, _0803B5E8 @ =0x000005FA
adds r2, r2, r1
strb r4, [r2]
b _0803B740
.align 2, 0
_0803B5D4: .4byte gMain
_0803B5D8: .4byte 0x040000D4
_0803B5DC: .4byte gUnknown_0813E894
_0803B5E0: .4byte 0x06015800
_0803B5E4: .4byte 0x80001000
_0803B5E8: .4byte 0x000005FA
_0803B5EC:
bl sub_351A8
ldr r4, _0803B634 @ =gUnknown_020314E0
ldr r1, [r4]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0803B5FE
movs r0, #0xb5
strh r0, [r1, #0x18]
_0803B5FE:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _0803B614
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r4]
ldr r0, _0803B638 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _0803B63C @ =gUnknown_02FAF080
str r0, [r1, #0x3c]
_0803B614:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _0803B640
cmp r0, #0x14
bne _0803B62A
bl m4aMPlayAllStop
movs r0, #0x2b
bl m4aSongNumStart
_0803B62A:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
b _0803B654
.align 2, 0
_0803B634: .4byte gUnknown_020314E0
_0803B638: .4byte 0x00061A80
_0803B63C: .4byte gUnknown_02FAF080
_0803B640:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #6
strb r0, [r1, #0x13]
ldr r1, [r4]
ldr r2, _0803B660 @ =0x00000283
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0803B654:
ldr r0, _0803B664 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r4, _0803B668 @ =0x000005FA
adds r0, r0, r4
movs r1, #1
b _0803B73E
.align 2, 0
_0803B660: .4byte 0x00000283
_0803B664: .4byte gUnknown_020314E0
_0803B668: .4byte 0x000005FA
_0803B66C:
ldr r2, _0803B6B0 @ =gUnknown_020314E0
ldr r1, [r2]
movs r0, #5
strb r0, [r1, #0x13]
ldr r2, [r2]
movs r0, #0x8c
strh r0, [r2, #0x18]
ldr r3, _0803B6B4 @ =gMain
movs r5, #0xe9
lsls r5, r5, #3
adds r0, r3, r5
movs r1, #1
strh r1, [r0]
movs r4, #0xd2
lsls r4, r4, #3
adds r0, r3, r4
strh r1, [r0]
ldr r1, _0803B6B8 @ =0x040000D4
ldr r0, _0803B6BC @ =gUnknown_0813E894
str r0, [r1]
ldr r0, _0803B6C0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0803B6C4 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r5, #0xe5
lsls r5, r5, #2
adds r2, r2, r5
movs r0, #0x88
strh r0, [r2]
movs r0, #0x80
strb r0, [r3, #0xf]
b _0803B740
.align 2, 0
_0803B6B0: .4byte gUnknown_020314E0
_0803B6B4: .4byte gMain
_0803B6B8: .4byte 0x040000D4
_0803B6BC: .4byte gUnknown_0813E894
_0803B6C0: .4byte 0x06015800
_0803B6C4: .4byte 0x80001000
_0803B6C8:
bl sub_351A8
ldr r2, _0803B700 @ =gUnknown_020314E0
ldr r1, [r2]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0803B6DA
movs r0, #0xb5
strh r0, [r1, #0x18]
_0803B6DA:
ldr r1, [r2]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _0803B6F0
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r2]
ldr r0, _0803B704 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _0803B708 @ =gUnknown_02FAF080
str r0, [r1, #0x3c]
_0803B6F0:
ldr r1, [r2]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _0803B70C
adds r0, #1
strh r0, [r1, #0x18]
b _0803B740
.align 2, 0
_0803B700: .4byte gUnknown_020314E0
_0803B704: .4byte 0x00061A80
_0803B708: .4byte gUnknown_02FAF080
_0803B70C:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #6
strb r0, [r1, #0x13]
ldr r1, [r2]
ldr r0, _0803B724 @ =0x00000283
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803B740
.align 2, 0
_0803B724: .4byte 0x00000283
_0803B728:
bl sub_351A8
ldr r2, _0803B7B0 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _0803B7B4 @ =0x00000386
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
ldr r2, _0803B7B8 @ =0x000005FA
adds r0, r0, r2
_0803B73E:
strb r1, [r0]
_0803B740:
bl sub_3CBC4
bl sub_3B7C4
bl sub_3C6E0
bl sub_3E644
ldr r0, _0803B7B0 @ =gUnknown_020314E0
ldr r1, [r0]
movs r4, #0xa5
lsls r4, r4, #2
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803B788
ldr r5, _0803B7BC @ =0x00000296
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #1
bhi _0803B788
ldr r4, _0803B7C0 @ =gMain
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _0803B788
bl m4aMPlayAllStop
movs r0, #0x2c
bl m4aSongNumStart
ldrb r1, [r4, #0xf]
movs r0, #0x40
orrs r0, r1
strb r0, [r4, #0xf]
_0803B788:
ldr r0, _0803B7B0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0803B7B4 @ =0x00000386
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803B7A6
ldr r4, _0803B7B8 @ =0x000005FA
adds r1, r1, r4
movs r0, #1
strb r0, [r1]
bl sub_350F0
_0803B7A6:
bl sub_472E4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0803B7B0: .4byte gUnknown_020314E0
_0803B7B4: .4byte 0x00000386
_0803B7B8: .4byte 0x000005FA
_0803B7BC: .4byte 0x00000296
_0803B7C0: .4byte gMain
thumb_func_start sub_3B7C4
sub_3B7C4: @ 0x0803B7C4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _0803B874 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0803B878 @ =0x00000452
adds r4, r1, r2
ldrh r3, [r4]
mov r8, r0
cmp r3, #0
beq _0803B850
subs r0, r3, #1
strh r0, [r4]
ldr r3, _0803B87C @ =0x00000389
adds r1, r1, r3
movs r0, #1
strb r0, [r1]
mov r4, r8
ldr r0, [r4]
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #0x23
bne _0803B838
ldr r0, _0803B880 @ =gMPlayInfo_SE1
ldr r1, _0803B884 @ =gUnknown_086A22D8
bl MPlayStart
ldr r1, [r4]
ldr r0, _0803B888 @ =0x0007A120
str r0, [r1, #0x3c]
movs r0, #7
bl sub_11B0
ldr r1, [r4]
ldr r2, _0803B88C @ =0x00000385
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r3, [r4]
adds r2, r3, r2
movs r1, #0xe1
lsls r1, r1, #2
adds r0, r3, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
blt _0803B838
movs r2, #0xf7
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #6
strb r0, [r1]
_0803B838:
ldr r0, _0803B874 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r4, _0803B878 @ =0x00000452
adds r1, r3, r4
ldrh r1, [r1]
mov r8, r0
cmp r1, #0x1e
bhi _0803B850
ldr r0, _0803B87C @ =0x00000389
adds r1, r3, r0
movs r0, #0
strb r0, [r1]
_0803B850:
mov r1, r8
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bls _0803B868
bl _0803C476
_0803B868:
lsls r0, r0, #2
ldr r1, _0803B890 @ =_0803B894
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803B874: .4byte gUnknown_020314E0
_0803B878: .4byte 0x00000452
_0803B87C: .4byte 0x00000389
_0803B880: .4byte gMPlayInfo_SE1
_0803B884: .4byte gUnknown_086A22D8
_0803B888: .4byte 0x0007A120
_0803B88C: .4byte 0x00000385
_0803B890: .4byte _0803B894
_0803B894: @ jump table
.4byte _0803B8C0 @ case 0
.4byte _0803B91C @ case 1
.4byte _0803BB2C @ case 2
.4byte _0803BC74 @ case 3
.4byte _0803BEF8 @ case 4
.4byte _0803BFD4 @ case 5
.4byte _0803C098 @ case 6
.4byte _0803C1BC @ case 7
.4byte _0803C26C @ case 8
.4byte _0803C3C0 @ case 9
.4byte _0803C476 @ case 10
_0803B8C0:
ldr r3, _0803B904 @ =gUnknown_020314E0
ldr r0, [r3]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r0, r4
movs r4, #0
movs r1, #1
strb r1, [r0]
ldr r1, [r3]
ldr r0, _0803B908 @ =0x000003E2
adds r2, r1, r0
movs r5, #0
movs r0, #0x16
strh r0, [r2]
movs r2, #0xf9
lsls r2, r2, #2
adds r0, r1, r2
strh r4, [r0]
ldr r0, _0803B90C @ =0x000003E1
adds r1, r1, r0
strb r5, [r1]
ldr r1, [r3]
adds r2, #4
adds r0, r1, r2
strh r4, [r0]
ldr r3, _0803B910 @ =0x000003EA
adds r2, r1, r3
ldr r0, _0803B914 @ =0x0000FB50
strh r0, [r2]
ldr r0, _0803B918 @ =0x000004C6
adds r1, r1, r0
strh r4, [r1]
bl _0803C476
.align 2, 0
_0803B904: .4byte gUnknown_020314E0
_0803B908: .4byte 0x000003E2
_0803B90C: .4byte 0x000003E1
_0803B910: .4byte 0x000003EA
_0803B914: .4byte 0x0000FB50
_0803B918: .4byte 0x000004C6
_0803B91C:
ldr r0, _0803B944 @ =gUnknown_086AF140
mov r1, r8
ldr r5, [r1]
ldr r2, _0803B948 @ =0x000003E2
adds r4, r5, r2
movs r3, #0
ldrsh r1, [r4, r3]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r0, #0xf9
lsls r0, r0, #2
adds r2, r5, r0
ldrh r3, [r2]
ldrh r0, [r1]
cmp r0, r3
bls _0803B94C
adds r0, r3, #1
strh r0, [r2]
b _0803B99E
.align 2, 0
_0803B944: .4byte gUnknown_086AF140
_0803B948: .4byte 0x000003E2
_0803B94C:
movs r3, #0
strh r3, [r2]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x24
bne _0803B99E
ldr r2, _0803B978 @ =0x000003E1
adds r1, r5, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x11
bgt _0803B97C
movs r0, #0x22
strh r0, [r4]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803B99E
.align 2, 0
_0803B978: .4byte 0x000003E1
_0803B97C:
strh r3, [r4]
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r5, r3
movs r0, #2
strb r0, [r1]
mov r4, r8
ldr r0, [r4]
ldr r1, _0803BAF8 @ =0x000003DD
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
ldr r0, [r4]
ldr r2, _0803BAFC @ =0x000003E1
adds r0, r0, r2
movs r1, #9
strb r1, [r0]
_0803B99E:
ldr r0, _0803BB00 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r3, _0803BB04 @ =0x000003E2
adds r0, r4, r3
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x16
beq _0803B9B0
b _0803BABA
_0803B9B0:
adds r3, #2
adds r2, r4, r3
ldrh r1, [r2]
ldr r0, _0803BB08 @ =0x000001F3
cmp r1, r0
bhi _0803BA54
cmp r1, #0x32
beq _0803B9C6
subs r0, #0xe5
cmp r1, r0
bne _0803B9E8
_0803B9C6:
ldr r0, _0803BB0C @ =0x000004CA
adds r1, r4, r0
movs r0, #0x1f
strh r0, [r1]
ldrh r0, [r2]
movs r1, #0x6e
bl __udivsi3
ldr r2, _0803BB10 @ =0x000004C9
adds r1, r4, r2
strb r0, [r1]
ldr r0, _0803BB14 @ =0x00000119
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_0803B9E8:
ldr r0, _0803BB00 @ =gUnknown_020314E0
ldr r4, [r0]
movs r3, #0xf9
lsls r3, r3, #2
adds r2, r4, r3
ldrh r1, [r2]
cmp r1, #0xa0
beq _0803BA00
movs r0, #0xbe
lsls r0, r0, #1
cmp r1, r0
bne _0803BA22
_0803BA00:
ldr r0, _0803BB0C @ =0x000004CA
adds r1, r4, r0
movs r0, #0x1f
strh r0, [r1]
ldrh r0, [r2]
movs r1, #0x6e
bl __udivsi3
ldr r2, _0803BB10 @ =0x000004C9
adds r1, r4, r2
strb r0, [r1]
ldr r0, _0803BB14 @ =0x00000119
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_0803BA22:
ldr r0, _0803BB00 @ =gUnknown_020314E0
ldr r2, [r0]
movs r3, #0xf9
lsls r3, r3, #2
adds r0, r2, r3
ldrh r1, [r0]
movs r0, #0xf5
lsls r0, r0, #1
cmp r1, r0
bne _0803BA54
ldr r4, _0803BB0C @ =0x000004CA
adds r1, r2, r4
movs r0, #0x1f
strh r0, [r1]
ldr r0, _0803BB10 @ =0x000004C9
adds r1, r2, r0
movs r0, #4
strb r0, [r1]
movs r0, #0x8d
lsls r0, r0, #1
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_0803BA54:
ldr r2, _0803BB00 @ =gUnknown_020314E0
ldr r3, [r2]
movs r1, #0xf9
lsls r1, r1, #2
adds r0, r3, r1
ldrh r1, [r0]
ldr r0, _0803BB18 @ =0x00000275
mov r8, r2
cmp r1, r0
bls _0803BA8E
ldr r4, _0803BB1C @ =0x000003EA
adds r2, r3, r4
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0
bge _0803BA9E
adds r4, #0xdc
adds r0, r3, r4
ldrh r1, [r0]
adds r1, #4
strh r1, [r0]
ldrh r0, [r2]
adds r0, r0, r1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
ble _0803BA8E
movs r0, #0
strh r0, [r2]
_0803BA8E:
mov r1, r8
ldr r0, [r1]
ldr r2, _0803BB1C @ =0x000003EA
adds r0, r0, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0
blt _0803BABA
_0803BA9E:
ldr r0, _0803BB00 @ =gUnknown_020314E0
ldr r0, [r0]
movs r4, #0x99
lsls r4, r4, #3
adds r0, r0, r4
movs r1, #0x3c
strb r1, [r0]
ldr r0, _0803BB20 @ =gMPlayInfo_SE1
ldr r1, _0803BB24 @ =gUnknown_086A2454
bl MPlayStart
movs r0, #0xd
bl sub_11B0
_0803BABA:
ldr r0, _0803BB00 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0803BB04 @ =0x000003E2
adds r0, r1, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x21
bne _0803BAE0
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0
bne _0803BAE0
movs r0, #0xe4
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #0x29
strh r0, [r1]
_0803BAE0:
ldr r0, _0803BB00 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _0803BB28 @ =0x00000392
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0x78
bhi _0803BAF2
bl _0803C476
_0803BAF2:
subs r0, #1
bl _0803C474
.align 2, 0
_0803BAF8: .4byte 0x000003DD
_0803BAFC: .4byte 0x000003E1
_0803BB00: .4byte gUnknown_020314E0
_0803BB04: .4byte 0x000003E2
_0803BB08: .4byte 0x000001F3
_0803BB0C: .4byte 0x000004CA
_0803BB10: .4byte 0x000004C9
_0803BB14: .4byte 0x00000119
_0803BB18: .4byte 0x00000275
_0803BB1C: .4byte 0x000003EA
_0803BB20: .4byte gMPlayInfo_SE1
_0803BB24: .4byte gUnknown_086A2454
_0803BB28: .4byte 0x00000392
_0803BB2C:
mov r3, r8
ldr r4, [r3]
ldr r1, _0803BB50 @ =0x00000452
adds r0, r4, r1
ldrh r0, [r0]
cmp r0, #0x1e
bls _0803BB58
ldr r2, _0803BB54 @ =0x000003E2
adds r1, r4, r2
movs r2, #0
movs r0, #0x15
strh r0, [r1]
movs r3, #0xf9
lsls r3, r3, #2
adds r0, r4, r3
strh r2, [r0]
bl _0803C476
.align 2, 0
_0803BB50: .4byte 0x00000452
_0803BB54: .4byte 0x000003E2
_0803BB58:
ldr r0, _0803BB7C @ =gUnknown_086AF140
ldr r1, _0803BB80 @ =0x000003E2
adds r3, r4, r1
movs r2, #0
ldrsh r1, [r3, r2]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r0, #0xf9
lsls r0, r0, #2
adds r2, r4, r0
ldrh r5, [r2]
ldrh r0, [r1]
cmp r0, r5
bls _0803BB84
adds r0, r5, #1
strh r0, [r2]
b _0803BC50
.align 2, 0
_0803BB7C: .4byte gUnknown_086AF140
_0803BB80: .4byte 0x000003E2
_0803BB84:
movs r6, #0
movs r5, #0
strh r5, [r2]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bne _0803BC50
ldr r2, _0803BBF4 @ =0x000003E1
adds r1, r4, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xb
bgt _0803BC00
strh r5, [r3]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
mov r2, r8
ldr r1, [r2]
ldr r3, _0803BBF4 @ =0x000003E1
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bne _0803BC50
ldr r4, _0803BBF8 @ =0x000003DD
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0803BC50
movs r3, #0
ldr r5, _0803BBFC @ =0x0000048C
movs r4, #9
_0803BBD2:
ldr r0, [r2]
lsls r1, r3, #0x10
asrs r1, r1, #0x10
adds r0, r0, r5
adds r3, r0, r1
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #8
bgt _0803BBE6
strb r4, [r3]
_0803BBE6:
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0803BBD2
b _0803BC50
.align 2, 0
_0803BBF4: .4byte 0x000003E1
_0803BBF8: .4byte 0x000003DD
_0803BBFC: .4byte 0x0000048C
_0803BC00:
ldr r1, _0803BC20 @ =0x000003DD
adds r0, r4, r1
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #4
bne _0803BC24
movs r0, #0x24
strh r0, [r3]
movs r3, #0xf7
lsls r3, r3, #2
adds r0, r4, r3
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
b _0803BC4C
.align 2, 0
_0803BC20: .4byte 0x000003DD
_0803BC24:
cmp r1, #3
bne _0803BC3A
movs r0, #0x4c
strh r0, [r3]
movs r3, #0xf7
lsls r3, r3, #2
adds r0, r4, r3
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
b _0803BC4C
_0803BC3A:
movs r0, #0x3a
strh r0, [r3]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #5
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
_0803BC4C:
adds r0, r0, r2
strb r6, [r0]
_0803BC50:
ldr r0, _0803BC6C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _0803BC70 @ =0x000003E2
adds r1, r0, r2
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0x15
beq _0803BC64
bl _0803C476
_0803BC64:
movs r0, #0
bl _0803C474
.align 2, 0
_0803BC6C: .4byte gUnknown_020314E0
_0803BC70: .4byte 0x000003E2
_0803BC74:
ldr r1, _0803BCA0 @ =gUnknown_086AF140
mov r4, r8
ldr r2, [r4]
ldr r0, _0803BCA4 @ =0x000003E2
adds r3, r2, r0
movs r4, #0
ldrsh r0, [r3, r4]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0xf9
lsls r1, r1, #2
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _0803BCA8
adds r0, r1, #1
strh r0, [r2]
bl _0803C476
.align 2, 0
_0803BCA0: .4byte gUnknown_086AF140
_0803BCA4: .4byte 0x000003E2
_0803BCA8:
movs r0, #0
strh r0, [r2]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x5d
beq _0803BCC2
cmp r0, #0x60
beq _0803BCC2
cmp r0, #0x63
bne _0803BD1E
_0803BCC2:
mov r2, r8
ldr r1, [r2]
ldr r3, _0803BCF4 @ =0x000003E2
adds r2, r1, r3
movs r0, #0
strh r0, [r2]
movs r4, #0xf7
lsls r4, r4, #2
adds r1, r1, r4
movs r0, #2
strb r0, [r1]
mov r0, r8
ldr r2, [r0]
ldr r1, _0803BCF8 @ =0x0000047C
adds r0, r2, r1
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0803BCFC
subs r3, #5
adds r1, r2, r3
movs r0, #4
b _0803BD02
.align 2, 0
_0803BCF4: .4byte 0x000003E2
_0803BCF8: .4byte 0x0000047C
_0803BCFC:
ldr r3, _0803BDF8 @ =0x000003DD
adds r1, r2, r3
movs r0, #5
_0803BD02:
strb r0, [r1]
mov r4, r8
ldr r0, [r4]
ldr r1, _0803BDFC @ =0x000003E1
adds r0, r0, r1
movs r1, #8
strb r1, [r0]
mov r2, r8
ldr r1, [r2]
ldr r3, _0803BE00 @ =0x0000047C
adds r1, r1, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0803BD1E:
ldr r5, _0803BE04 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r4, _0803BE08 @ =0x000003E2
adds r0, r0, r4
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x5a
beq _0803BD30
b _0803C476
_0803BD30:
ldr r0, _0803BE0C @ =gMPlayInfo_SE1
ldr r1, _0803BE10 @ =gUnknown_086A24F0
bl MPlayStart
ldr r0, [r5]
ldr r2, _0803BE14 @ =0x0000047E
adds r0, r0, r2
movs r1, #8
strb r1, [r0]
ldr r4, [r5]
ldr r3, _0803BE18 @ =0x00000482
adds r1, r4, r3
movs r0, #0
mov sb, r0
movs r0, #0x23
strh r0, [r1]
ldr r1, _0803BE1C @ =gMain
mov sl, r1
ldr r1, _0803BE20 @ =0x000012C8
add r1, sl
movs r0, #1
strh r0, [r1]
adds r2, #0xa
mov r8, r2
adds r2, r4, r2
movs r0, #0x96
lsls r0, r0, #3
strh r0, [r2]
adds r3, #8
adds r1, r4, r3
adds r0, #0x28
strh r0, [r1]
movs r1, #0
ldrsh r0, [r2, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r2, _0803BE24 @ =0x0000132C
adds r4, r4, r2
ldr r2, [r4]
movs r3, #0x10
ldrsh r1, [r2, r3]
subs r6, r0, r1
movs r1, #0x7c
movs r4, #0x12
ldrsh r0, [r2, r4]
subs r7, r1, r0
rsbs r0, r6, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r7, #0x10
asrs r1, r1, #0x10
bl ArcTan2
ldr r1, [r5]
ldr r6, _0803BE28 @ =0x00000484
adds r2, r1, r6
strh r0, [r2]
movs r0, #0xe2
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0803BDE0
bl Random
ldr r4, [r5]
mov r2, sl
ldr r1, [r2, #0x4c]
muls r0, r1, r0
movs r1, #0x64
bl __umodsi3
adds r1, r0, #0
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #0xc
movs r1, #0x64
bl __udivsi3
movs r3, #0x98
lsls r3, r3, #8
adds r0, r0, r3
adds r4, r4, r6
strh r0, [r4]
_0803BDE0:
ldr r1, [r5]
adds r3, r1, r6
ldrh r2, [r3]
ldr r0, _0803BE2C @ =0x00003FFF
cmp r2, r0
bhi _0803BE34
movs r0, #0xe8
lsls r0, r0, #8
strh r0, [r3]
ldr r4, _0803BE30 @ =0x0000047D
adds r1, r1, r4
b _0803BEB6
.align 2, 0
_0803BDF8: .4byte 0x000003DD
_0803BDFC: .4byte 0x000003E1
_0803BE00: .4byte 0x0000047C
_0803BE04: .4byte gUnknown_020314E0
_0803BE08: .4byte 0x000003E2
_0803BE0C: .4byte gMPlayInfo_SE1
_0803BE10: .4byte gUnknown_086A24F0
_0803BE14: .4byte 0x0000047E
_0803BE18: .4byte 0x00000482
_0803BE1C: .4byte gMain
_0803BE20: .4byte 0x000012C8
_0803BE24: .4byte 0x0000132C
_0803BE28: .4byte 0x00000484
_0803BE2C: .4byte 0x00003FFF
_0803BE30: .4byte 0x0000047D
_0803BE34:
ldr r0, _0803BE50 @ =0x000097FF
cmp r2, r0
bhi _0803BE5C
adds r0, #1
strh r0, [r3]
ldr r2, _0803BE54 @ =0x0000047D
adds r0, r1, r2
movs r3, #1
strb r3, [r0]
ldr r0, [r5]
add r0, r8
ldr r1, _0803BE58 @ =0x00000424
b _0803BEC0
.align 2, 0
_0803BE50: .4byte 0x000097FF
_0803BE54: .4byte 0x0000047D
_0803BE58: .4byte 0x00000424
_0803BE5C:
ldr r0, _0803BE74 @ =0x0000AFFF
cmp r2, r0
bhi _0803BE80
ldr r4, _0803BE78 @ =0x0000047D
adds r0, r1, r4
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
add r0, r8
ldr r1, _0803BE7C @ =0x00000424
b _0803BEC0
.align 2, 0
_0803BE74: .4byte 0x0000AFFF
_0803BE78: .4byte 0x0000047D
_0803BE7C: .4byte 0x00000424
_0803BE80:
ldr r0, _0803BE90 @ =0x0000CFFF
cmp r2, r0
bhi _0803BE98
ldr r2, _0803BE94 @ =0x0000047D
adds r0, r1, r2
mov r3, sb
strb r3, [r0]
b _0803BEC2
.align 2, 0
_0803BE90: .4byte 0x0000CFFF
_0803BE94: .4byte 0x0000047D
_0803BE98:
ldr r0, _0803BEA4 @ =0x0000E7FF
cmp r2, r0
bhi _0803BEAC
ldr r4, _0803BEA8 @ =0x0000047D
adds r1, r1, r4
b _0803BEB6
.align 2, 0
_0803BEA4: .4byte 0x0000E7FF
_0803BEA8: .4byte 0x0000047D
_0803BEAC:
movs r0, #0xe8
lsls r0, r0, #8
strh r0, [r3]
ldr r0, _0803BEE8 @ =0x0000047D
adds r1, r1, r0
_0803BEB6:
movs r0, #2
strb r0, [r1]
ldr r0, [r5]
add r0, r8
ldr r1, _0803BEEC @ =0x0000053C
_0803BEC0:
strh r1, [r0]
_0803BEC2:
ldr r0, _0803BEF0 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _0803BEF4 @ =0x000003E2
adds r3, r2, r1
ldr r4, _0803BEE8 @ =0x0000047D
adds r0, r2, r4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
ldrh r1, [r3]
adds r0, r0, r1
strh r0, [r3]
movs r3, #0xe2
lsls r3, r3, #2
adds r2, r2, r3
movs r0, #0
ldrsb r0, [r2, r0]
b _0803C476
.align 2, 0
_0803BEE8: .4byte 0x0000047D
_0803BEEC: .4byte 0x0000053C
_0803BEF0: .4byte gUnknown_020314E0
_0803BEF4: .4byte 0x000003E2
_0803BEF8:
ldr r0, _0803BF48 @ =gUnknown_086AF140
mov r4, r8
ldr r5, [r4]
ldr r1, _0803BF4C @ =0x000003E2
adds r4, r5, r1
movs r2, #0
ldrsh r1, [r4, r2]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r3, #0xf9
lsls r3, r3, #2
adds r2, r5, r3
ldrh r3, [r2]
ldrh r0, [r1]
cmp r0, r3
bls _0803BF1C
b _0803C28E
_0803BF1C:
movs r3, #0
strh r3, [r2]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x38
bne _0803BF76
ldr r0, _0803BF50 @ =0x000003E1
adds r1, r5, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bgt _0803BF54
movs r0, #0x36
strh r0, [r4]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803BF76
.align 2, 0
_0803BF48: .4byte gUnknown_086AF140
_0803BF4C: .4byte 0x000003E2
_0803BF50: .4byte 0x000003E1
_0803BF54:
strh r3, [r4]
movs r2, #0xf7
lsls r2, r2, #2
adds r1, r5, r2
movs r0, #2
strb r0, [r1]
mov r3, r8
ldr r0, [r3]
ldr r4, _0803BFB0 @ =0x000003DD
adds r0, r0, r4
movs r1, #3
strb r1, [r0]
ldr r0, [r3]
ldr r1, _0803BFB4 @ =0x000003E1
adds r0, r0, r1
movs r1, #6
strb r1, [r0]
_0803BF76:
ldr r0, _0803BFB8 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0803BFBC @ =0x000003E2
adds r0, r2, r3
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x32
beq _0803BF88
b _0803C476
_0803BF88:
movs r1, #0xf9
lsls r1, r1, #2
adds r0, r2, r1
ldrh r3, [r0]
cmp r3, #0
beq _0803BF96
b _0803C476
_0803BF96:
ldr r0, _0803BFC0 @ =gMain
ldr r4, _0803BFC4 @ =0x00001888
adds r0, r0, r4
movs r1, #1
strh r1, [r0]
ldr r1, _0803BFC8 @ =0x00000456
adds r0, r2, r1
strh r3, [r0]
ldr r0, _0803BFCC @ =gMPlayInfo_SE1
ldr r1, _0803BFD0 @ =gUnknown_086A2548
bl MPlayStart
b _0803C476
.align 2, 0
_0803BFB0: .4byte 0x000003DD
_0803BFB4: .4byte 0x000003E1
_0803BFB8: .4byte gUnknown_020314E0
_0803BFBC: .4byte 0x000003E2
_0803BFC0: .4byte gMain
_0803BFC4: .4byte 0x00001888
_0803BFC8: .4byte 0x00000456
_0803BFCC: .4byte gMPlayInfo_SE1
_0803BFD0: .4byte gUnknown_086A2548
_0803BFD4:
ldr r1, _0803BFFC @ =gUnknown_086AF140
ldr r5, _0803C000 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, _0803C004 @ =0x000003E2
adds r2, r4, r6
movs r3, #0
ldrsh r0, [r2, r3]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r7, #0xf9
lsls r7, r7, #2
adds r1, r4, r7
ldrh r3, [r1]
ldrh r0, [r0]
cmp r0, r3
bls _0803C008
adds r0, r3, #1
b _0803C474
.align 2, 0
_0803BFFC: .4byte gUnknown_086AF140
_0803C000: .4byte gUnknown_020314E0
_0803C004: .4byte 0x000003E2
_0803C008:
movs r3, #0
strh r3, [r1]
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x4a
bne _0803C03A
strh r3, [r2]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #2
strb r0, [r1]
ldr r0, [r5]
ldr r1, _0803C084 @ =0x000003DD
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
ldr r2, _0803C088 @ =0x000003E1
adds r0, r0, r2
movs r1, #8
strb r1, [r0]
_0803C03A:
ldr r1, [r5]
adds r0, r1, r6
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x47
beq _0803C048
b _0803C476
_0803C048:
adds r0, r1, r7
ldrh r0, [r0]
cmp r0, #0
beq _0803C052
b _0803C476
_0803C052:
ldr r4, _0803C08C @ =0x00000129
adds r1, r1, r4
movs r0, #0
strb r0, [r1]
ldr r0, [r5]
movs r1, #0x94
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
movs r2, #0x99
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0x3c
strb r1, [r0]
movs r0, #0xd
bl sub_11B0
ldr r0, _0803C090 @ =gMPlayInfo_SE1
ldr r1, _0803C094 @ =gUnknown_086A2454
bl MPlayStart
b _0803C476
.align 2, 0
_0803C084: .4byte 0x000003DD
_0803C088: .4byte 0x000003E1
_0803C08C: .4byte 0x00000129
_0803C090: .4byte gMPlayInfo_SE1
_0803C094: .4byte gUnknown_086A2454
_0803C098:
mov r3, r8
ldr r0, [r3]
movs r4, #0xa5
lsls r4, r4, #2
adds r0, r0, r4
movs r5, #0
movs r1, #3
strb r1, [r0]
ldr r4, [r3]
ldr r1, _0803C118 @ =0x00000283
adds r0, r4, r1
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bne _0803C134
movs r2, #0xf7
lsls r2, r2, #2
adds r1, r4, r2
movs r0, #9
strb r0, [r1]
mov r3, r8
ldr r0, [r3]
ldr r4, _0803C11C @ =0x000003E2
adds r0, r0, r4
movs r4, #0
strh r5, [r0]
ldr r3, _0803C120 @ =gMain
ldr r1, _0803C124 @ =0x00000A28
adds r0, r3, r1
movs r1, #1
strh r1, [r0]
movs r2, #0x97
lsls r2, r2, #4
adds r0, r3, r2
strh r1, [r0]
mov r0, r8
ldr r1, [r0]
movs r0, #0xb3
lsls r0, r0, #3
adds r2, r1, r0
movs r0, #0xc6
strh r0, [r2]
ldr r2, _0803C128 @ =0x0000038E
adds r0, r1, r2
strh r5, [r0]
movs r0, #0xb5
lsls r0, r0, #3
adds r1, r1, r0
strb r4, [r1]
mov r1, r8
ldr r0, [r1]
ldr r2, _0803C12C @ =0x000005A6
adds r1, r0, r2
strh r5, [r1]
ldr r4, _0803C130 @ =0x000005A4
adds r0, r0, r4
movs r1, #2
strb r1, [r0]
b _0803C172
.align 2, 0
_0803C118: .4byte 0x00000283
_0803C11C: .4byte 0x000003E2
_0803C120: .4byte gMain
_0803C124: .4byte 0x00000A28
_0803C128: .4byte 0x0000038E
_0803C12C: .4byte 0x000005A6
_0803C130: .4byte 0x000005A4
_0803C134:
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #7
strb r0, [r1]
mov r2, r8
ldr r1, [r2]
ldr r3, _0803C19C @ =0x000003E2
adds r2, r1, r3
movs r3, #0
movs r0, #0x20
strh r0, [r2]
ldr r4, _0803C1A0 @ =0x00000387
adds r1, r1, r4
strb r3, [r1]
ldr r2, _0803C1A4 @ =gMain
movs r0, #0x80
strb r0, [r2, #0xf]
mov r1, r8
ldr r0, [r1]
movs r3, #0xe2
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
ldr r1, _0803C1A8 @ =0x00000392
adds r0, r0, r1
strh r5, [r0]
adds r3, r2, #0
_0803C172:
ldr r2, _0803C1AC @ =gUnknown_020314E0
ldr r0, [r2]
ldr r4, _0803C1B0 @ =0x000003E1
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r2, [r2]
adds r4, #3
adds r0, r2, r4
strh r1, [r0]
ldr r1, _0803C1B4 @ =0x00001438
adds r0, r3, r1
ldrh r0, [r0]
cmp r0, #0
bne _0803C192
b _0803C476
_0803C192:
ldr r3, _0803C1B8 @ =0x00000486
adds r1, r2, r3
movs r0, #1
b _0803C474
.align 2, 0
_0803C19C: .4byte 0x000003E2
_0803C1A0: .4byte 0x00000387
_0803C1A4: .4byte gMain
_0803C1A8: .4byte 0x00000392
_0803C1AC: .4byte gUnknown_020314E0
_0803C1B0: .4byte 0x000003E1
_0803C1B4: .4byte 0x00001438
_0803C1B8: .4byte 0x00000486
_0803C1BC:
ldr r0, _0803C1E4 @ =gUnknown_086AF140
mov r4, r8
ldr r5, [r4]
ldr r1, _0803C1E8 @ =0x000003E2
adds r4, r5, r1
movs r2, #0
ldrsh r1, [r4, r2]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r3, #0xf9
lsls r3, r3, #2
adds r2, r5, r3
ldrh r3, [r2]
ldrh r0, [r1]
cmp r0, r3
bls _0803C1EC
adds r0, r3, #1
strh r0, [r2]
b _0803C236
.align 2, 0
_0803C1E4: .4byte gUnknown_086AF140
_0803C1E8: .4byte 0x000003E2
_0803C1EC:
movs r0, #0
strh r0, [r2]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x24
bne _0803C236
ldr r0, _0803C218 @ =0x000003E1
adds r1, r5, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x11
bgt _0803C21C
movs r0, #0x22
strh r0, [r4]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803C236
.align 2, 0
_0803C218: .4byte 0x000003E1
_0803C21C:
movs r0, #2
strh r0, [r4]
movs r2, #0xf7
lsls r2, r2, #2
adds r1, r5, r2
movs r0, #8
strb r0, [r1]
mov r3, r8
ldr r0, [r3]
ldr r4, _0803C260 @ =0x000003E1
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
_0803C236:
ldr r0, _0803C264 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0803C268 @ =0x000003E2
adds r0, r1, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x21
beq _0803C248
b _0803C476
_0803C248:
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0
beq _0803C256
b _0803C476
_0803C256:
movs r0, #0xe4
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #0x29
b _0803C474
.align 2, 0
_0803C260: .4byte 0x000003E1
_0803C264: .4byte gUnknown_020314E0
_0803C268: .4byte 0x000003E2
_0803C26C:
ldr r0, _0803C294 @ =gUnknown_086AF140
mov r1, r8
ldr r5, [r1]
ldr r2, _0803C298 @ =0x000003E2
adds r4, r5, r2
movs r3, #0
ldrsh r1, [r4, r3]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r0, #0xf9
lsls r0, r0, #2
adds r2, r5, r0
ldrh r3, [r2]
ldrh r0, [r1]
cmp r0, r3
bls _0803C29C
_0803C28E:
adds r0, r3, #1
strh r0, [r2]
b _0803C476
.align 2, 0
_0803C294: .4byte gUnknown_086AF140
_0803C298: .4byte 0x000003E2
_0803C29C:
movs r3, #0
strh r3, [r2]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
bne _0803C2E8
ldr r2, _0803C2C8 @ =0x000003E1
adds r1, r5, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
bgt _0803C2CC
movs r0, #3
strh r0, [r4]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803C2E8
.align 2, 0
_0803C2C8: .4byte 0x000003E1
_0803C2CC:
movs r0, #3
strh r0, [r4]
movs r4, #0xf7
lsls r4, r4, #2
adds r1, r5, r4
movs r0, #0xa
strb r0, [r1]
mov r0, r8
ldr r1, [r0]
movs r0, #2
strb r0, [r1, #0x13]
mov r1, r8
ldr r0, [r1]
strh r3, [r0, #0x18]
_0803C2E8:
mov r2, r8
ldr r1, [r2]
ldr r3, _0803C3A8 @ =0x000003E2
adds r0, r1, r3
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #3
beq _0803C2FC
cmp r0, #0xc
bne _0803C306
_0803C2FC:
ldr r0, _0803C3AC @ =0x000003EA
adds r1, r1, r0
ldrh r0, [r1]
subs r0, #0xa
strh r0, [r1]
_0803C306:
mov r1, r8
ldr r0, [r1]
ldr r2, _0803C3A8 @ =0x000003E2
adds r0, r0, r2
ldrh r1, [r0]
subs r0, r1, #4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #1
bls _0803C326
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r0, #0xd
beq _0803C326
cmp r0, #0xe
bne _0803C334
_0803C326:
mov r3, r8
ldr r1, [r3]
ldr r4, _0803C3AC @ =0x000003EA
adds r1, r1, r4
ldrh r0, [r1]
subs r0, #0x14
strh r0, [r1]
_0803C334:
ldr r0, _0803C3B0 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _0803C3A8 @ =0x000003E2
adds r0, r2, r1
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #5
bne _0803C36C
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r2, r4
ldrh r0, [r0]
cmp r0, #0
bne _0803C36C
ldr r0, _0803C3B4 @ =0x000004CA
adds r1, r2, r0
movs r0, #0x1f
strh r0, [r1]
ldr r3, _0803C3B8 @ =0x000004C9
adds r1, r2, r3
movs r0, #6
strb r0, [r1]
ldr r0, _0803C3BC @ =0x00000119
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_0803C36C:
ldr r0, _0803C3B0 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r4, _0803C3A8 @ =0x000003E2
adds r0, r2, r4
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xe
beq _0803C37E
b _0803C476
_0803C37E:
movs r3, #0xf9
lsls r3, r3, #2
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0
bne _0803C476
adds r4, #0xe8
adds r1, r2, r4
movs r0, #0x1f
strh r0, [r1]
ldr r0, _0803C3B8 @ =0x000004C9
adds r1, r2, r0
movs r0, #5
strb r0, [r1]
ldr r0, _0803C3BC @ =0x00000119
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
b _0803C476
.align 2, 0
_0803C3A8: .4byte 0x000003E2
_0803C3AC: .4byte 0x000003EA
_0803C3B0: .4byte gUnknown_020314E0
_0803C3B4: .4byte 0x000004CA
_0803C3B8: .4byte 0x000004C9
_0803C3BC: .4byte 0x00000119
_0803C3C0:
ldr r1, _0803C3E8 @ =gUnknown_086AF140
mov r3, r8
ldr r2, [r3]
ldr r4, _0803C3EC @ =0x000003E2
adds r3, r2, r4
movs r4, #0
ldrsh r0, [r3, r4]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0xf9
lsls r1, r1, #2
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _0803C3F0
adds r0, r1, #1
strh r0, [r2]
b _0803C404
.align 2, 0
_0803C3E8: .4byte gUnknown_086AF140
_0803C3EC: .4byte 0x000003E2
_0803C3F0:
movs r1, #0
strh r1, [r2]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bne _0803C404
strh r1, [r3]
_0803C404:
mov r2, r8
ldr r6, [r2]
ldr r3, _0803C4BC @ =0x0000038E
adds r4, r6, r3
ldrh r5, [r4]
movs r1, #0
ldrsh r0, [r4, r1]
ldr r1, _0803C4C0 @ =0xFFFFFE0C
cmp r0, r1
ble _0803C444
subs r0, r1, r0
movs r1, #0x1e
bl __divsi3
adds r0, r5, r0
strh r0, [r4]
movs r3, #0
ldrsh r0, [r4, r3]
movs r1, #0xa
bl __divsi3
adds r2, r6, #0
adds r2, #0xe6
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x26
rsbs r1, r1, #0
cmp r0, r1
bge _0803C444
ldr r0, _0803C4C4 @ =0x0000FFDA
strh r0, [r2]
_0803C444:
ldr r3, _0803C4C8 @ =gUnknown_020314E0
ldr r1, [r3]
movs r2, #0xb5
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x15
bne _0803C460
ldr r4, _0803C4CC @ =0x000003E2
adds r1, r1, r4
movs r0, #0x4a
strh r0, [r1]
_0803C460:
ldr r1, [r3]
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x16
bne _0803C476
ldr r0, _0803C4CC @ =0x000003E2
adds r1, r1, r0
movs r0, #0x4b
_0803C474:
strh r0, [r1]
_0803C476:
ldr r0, _0803C4C8 @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0x99
lsls r2, r2, #3
adds r3, r1, r2
ldrb r4, [r3]
movs r1, #0
ldrsb r1, [r3, r1]
mov r8, r0
cmp r1, #0
bgt _0803C48E
b _0803C5BC
_0803C48E:
subs r0, r4, #1
strb r0, [r3]
mov r3, r8
ldr r5, [r3]
adds r1, r5, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x13
bgt _0803C4D4
ldr r4, _0803C4D0 @ =gUnknown_086AEF28
movs r1, #0xc
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
adds r0, r0, r4
movs r4, #0
ldrsh r0, [r0, r4]
lsls r0, r0, #1
movs r2, #0xab
lsls r2, r2, #2
adds r1, r5, r2
b _0803C4F2
.align 2, 0
_0803C4BC: .4byte 0x0000038E
_0803C4C0: .4byte 0xFFFFFE0C
_0803C4C4: .4byte 0x0000FFDA
_0803C4C8: .4byte gUnknown_020314E0
_0803C4CC: .4byte 0x000003E2
_0803C4D0: .4byte gUnknown_086AEF28
_0803C4D4:
ldr r4, _0803C600 @ =gUnknown_086AEF28
movs r0, #0
ldrsb r0, [r1, r0]
movs r1, #0xc
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
adds r0, r0, r4
movs r3, #0
ldrsh r0, [r0, r3]
lsls r0, r0, #2
movs r4, #0xab
lsls r4, r4, #2
adds r1, r5, r4
_0803C4F2:
strh r0, [r1]
mov r0, r8
ldr r2, [r0]
movs r5, #0x99
lsls r5, r5, #3
adds r0, r2, r5
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _0803C50E
movs r3, #0xab
lsls r3, r3, #2
adds r0, r2, r3
strh r1, [r0]
_0803C50E:
mov r0, r8
ldr r4, [r0]
adds r0, r4, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
bne _0803C548
movs r3, #0
ldr r0, _0803C604 @ =gMain
movs r2, #0
movs r1, #0xdc
lsls r1, r1, #4
adds r0, r0, r1
movs r1, #1
strh r1, [r0]
ldr r1, _0803C608 @ =0x000004CF
adds r0, r4, r1
strb r2, [r0]
mov r4, r8
ldr r0, [r4]
adds r1, #3
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r4]
movs r2, #0x9b
lsls r2, r2, #3
adds r0, r0, r2
strh r3, [r0]
_0803C548:
mov r3, r8
ldr r4, [r3]
adds r0, r4, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
bne _0803C582
movs r3, #1
ldr r0, _0803C604 @ =gMain
ldr r1, _0803C60C @ =0x00000E78
adds r0, r0, r1
movs r1, #0
movs r2, #0
strh r3, [r0]
movs r3, #0x9a
lsls r3, r3, #3
adds r0, r4, r3
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
ldr r1, _0803C610 @ =0x000004D3
adds r0, r0, r1
movs r1, #0xd
strb r1, [r0]
ldr r0, [r4]
adds r3, #0xa
adds r0, r0, r3
strh r2, [r0]
_0803C582:
mov r0, r8
ldr r4, [r0]
adds r0, r4, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x35
bne _0803C5BC
ldr r1, _0803C604 @ =gMain
movs r2, #0xf3
lsls r2, r2, #4
adds r1, r1, r2
movs r2, #0
movs r3, #0
movs r0, #1
strh r0, [r1]
ldr r1, _0803C614 @ =0x000004D1
adds r0, r4, r1
strb r2, [r0]
mov r2, r8
ldr r0, [r2]
ldr r4, _0803C618 @ =0x000004D4
adds r0, r0, r4
movs r1, #0x16
strb r1, [r0]
ldr r0, [r2]
ldr r1, _0803C61C @ =0x000004DC
adds r0, r0, r1
strh r3, [r0]
_0803C5BC:
mov r2, r8
ldr r5, [r2]
ldr r3, _0803C620 @ =0x000004CA
adds r1, r5, r3
ldrh r0, [r1]
cmp r0, #0
beq _0803C662
subs r0, #1
strh r0, [r1]
ldr r4, _0803C624 @ =0x000004C9
adds r6, r5, r4
ldrb r0, [r6]
cmp r0, #5
bhi _0803C62C
ldr r4, _0803C628 @ =gUnknown_086AEF40
ldrh r0, [r1]
movs r1, #0x1f
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x1e
subs r1, r1, r0
ldrb r2, [r6]
lsls r0, r2, #5
subs r0, r0, r2
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r4
ldrh r1, [r0]
movs r2, #0xab
lsls r2, r2, #2
adds r0, r5, r2
b _0803C64A
.align 2, 0
_0803C600: .4byte gUnknown_086AEF28
_0803C604: .4byte gMain
_0803C608: .4byte 0x000004CF
_0803C60C: .4byte 0x00000E78
_0803C610: .4byte 0x000004D3
_0803C614: .4byte 0x000004D1
_0803C618: .4byte 0x000004D4
_0803C61C: .4byte 0x000004DC
_0803C620: .4byte 0x000004CA
_0803C624: .4byte 0x000004C9
_0803C628: .4byte gUnknown_086AEF40
_0803C62C:
ldr r4, _0803C6C4 @ =gUnknown_086AF0B4
ldrh r0, [r1]
movs r1, #0x46
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x45
subs r1, r1, r0
lsls r1, r1, #1
adds r1, r1, r4
ldrh r1, [r1]
movs r3, #0xab
lsls r3, r3, #2
adds r0, r5, r3
_0803C64A:
strh r1, [r0]
mov r4, r8
ldr r2, [r4]
ldr r1, _0803C6C8 @ =0x000004CA
adds r0, r2, r1
ldrh r1, [r0]
cmp r1, #0
bne _0803C662
movs r3, #0xab
lsls r3, r3, #2
adds r0, r2, r3
strh r1, [r0]
_0803C662:
mov r4, r8
ldr r0, [r4]
movs r5, #0xe4
lsls r5, r5, #2
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, #0
beq _0803C6B6
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x14
bne _0803C69E
ldr r0, _0803C6CC @ =gUnknown_086A3700
ldr r1, _0803C6D0 @ =0x00001290
adds r0, r0, r1
ldrh r0, [r0]
movs r1, #0
bl sub_528DC
ldr r1, [r4]
ldr r3, _0803C6C8 @ =0x000004CA
adds r2, r1, r3
movs r0, #0x46
strh r0, [r2]
ldr r4, _0803C6D4 @ =0x000004C9
adds r1, r1, r4
movs r0, #6
strb r0, [r1]
_0803C69E:
mov r1, r8
ldr r0, [r1]
adds r0, r0, r5
ldrh r0, [r0]
cmp r0, #0
bne _0803C6B6
ldr r0, _0803C6D8 @ =gMPlayInfo_BGM
ldr r1, _0803C6DC @ =0x0000FFFF
movs r2, #0x80
lsls r2, r2, #1
bl m4aMPlayVolumeControl
_0803C6B6:
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
_0803C6C4: .4byte gUnknown_086AF0B4
_0803C6C8: .4byte 0x000004CA
_0803C6CC: .4byte gUnknown_086A3700
_0803C6D0: .4byte 0x00001290
_0803C6D4: .4byte 0x000004C9
_0803C6D8: .4byte gMPlayInfo_BGM
_0803C6DC: .4byte 0x0000FFFF
thumb_func_start sub_3C6E0
sub_3C6E0: @ 0x0803C6E0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r7, _0803C820 @ =gUnknown_0200C890
ldrh r0, [r7]
ldr r1, _0803C824 @ =gUnknown_020314E0
mov sl, r1
cmp r0, #0
bne _0803C6FA
b _0803CA2E
_0803C6FA:
ldr r1, _0803C828 @ =gUnknown_086AF140
mov r2, sl
ldr r4, [r2]
ldr r3, _0803C82C @ =0x000003E2
adds r0, r4, r3
movs r6, #0
ldrsh r0, [r0, r6]
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0]
mov r8, r0
movs r6, #0xfa
lsls r6, r6, #2
adds r0, r4, r6
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x64
adds r4, #0x58
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r7, #2]
mov r2, sl
ldr r4, [r2]
ldr r5, _0803C830 @ =0x000003EA
adds r0, r4, r5
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x54
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r7, #4]
mov r0, sl
ldr r4, [r0]
adds r6, r4, r6
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x76
movs r2, #0xa2
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
adds r5, r4, r5
movs r3, #0
ldrsh r0, [r5, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x3c
ldr r2, _0803C834 @ =0x0000028A
adds r1, r4, r2
strh r0, [r1]
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xb8
movs r6, #0xfc
lsls r6, r6, #2
adds r1, r4, r6
strh r0, [r1]
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0x9c
ldr r2, _0803C838 @ =0x000003F2
adds r4, r4, r2
strh r0, [r4]
movs r3, #4
ldrsh r1, [r7, r3]
movs r0, #0x3c
rsbs r0, r0, #0
cmp r1, r0
bge _0803C7B2
ldr r0, _0803C83C @ =0x0000FFC4
strh r0, [r7, #4]
_0803C7B2:
movs r4, #4
ldrsh r0, [r7, r4]
cmp r0, #0xb4
ble _0803C7BE
movs r0, #0xb4
strh r0, [r7, #4]
_0803C7BE:
mov r6, sl
ldr r0, [r6]
ldr r1, _0803C840 @ =0x00000389
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
ble _0803C84C
movs r2, #0
ldr r4, _0803C844 @ =gOamBuffer
ldr r3, _0803C848 @ =0xFFFFFE00
mov r8, r3
movs r6, #0xb0
_0803C7DA:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r4
ldrh r1, [r2, #2]
mov r0, r8
ands r0, r1
movs r1, #0xf0
orrs r0, r1
strh r0, [r2, #2]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0xb4
strb r1, [r0]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r6
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0x12
ble _0803C7DA
b _0803CA2E
.align 2, 0
_0803C820: .4byte gUnknown_0200C890
_0803C824: .4byte gUnknown_020314E0
_0803C828: .4byte gUnknown_086AF140
_0803C82C: .4byte 0x000003E2
_0803C830: .4byte 0x000003EA
_0803C834: .4byte 0x0000028A
_0803C838: .4byte 0x000003F2
_0803C83C: .4byte 0x0000FFC4
_0803C840: .4byte 0x00000389
_0803C844: .4byte gOamBuffer
_0803C848: .4byte 0xFFFFFE00
_0803C84C:
cmp r0, #1
bne _0803C8FC
movs r2, #0
mov r4, r8
lsls r0, r4, #0x10
ldr r6, _0803C8EC @ =gOamBuffer
asrs r1, r0, #0x10
movs r0, #0x72
adds r3, r1, #0
muls r3, r0, r3
mov r8, r3
ldr r4, _0803C8F0 @ =0xFFFFFE00
mov ip, r4
movs r0, #0xe0
mov sb, r0
_0803C86A:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r0, [r5]
lsls r0, r0, #3
adds r2, r0, r6
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
ldr r1, _0803C8F4 @ =gUnknown_086B65EA
adds r0, r0, r1
mov r4, r8
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r6
ldrh r0, [r2, #2]
lsls r1, r0, #0x17
lsrs r1, r1, #0x17
str r1, [sp]
movs r4, #2
ldrsh r1, [r7, r4]
ldr r0, [sp]
adds r1, r0, r1
ldr r4, _0803C8F8 @ =0x000001FF
ands r1, r4
mov r0, ip
ldrh r4, [r2, #2]
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
mov r4, sb
orrs r0, r4
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0x12
ble _0803C86A
b _0803CA2E
.align 2, 0
_0803C8EC: .4byte gOamBuffer
_0803C8F0: .4byte 0xFFFFFE00
_0803C8F4: .4byte gUnknown_086B65EA
_0803C8F8: .4byte 0x000001FF
_0803C8FC:
cmp r0, #3
bne _0803C9AC
movs r2, #0
mov r6, r8
lsls r0, r6, #0x10
ldr r6, _0803C99C @ =gOamBuffer
asrs r1, r0, #0x10
movs r0, #0x72
adds r3, r1, #0
muls r3, r0, r3
mov r8, r3
ldr r4, _0803C9A0 @ =0xFFFFFE00
mov ip, r4
movs r0, #0xb0
mov sb, r0
_0803C91A:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r0, [r5]
lsls r0, r0, #3
adds r2, r0, r6
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
ldr r1, _0803C9A4 @ =gUnknown_086B65EA
adds r0, r0, r1
mov r4, r8
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r6
ldrh r0, [r2, #2]
lsls r1, r0, #0x17
lsrs r1, r1, #0x17
str r1, [sp]
movs r4, #2
ldrsh r1, [r7, r4]
ldr r0, [sp]
adds r1, r0, r1
ldr r4, _0803C9A8 @ =0x000001FF
ands r1, r4
mov r0, ip
ldrh r4, [r2, #2]
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
mov r4, sb
orrs r0, r4
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0x12
ble _0803C91A
b _0803CA2E
.align 2, 0
_0803C99C: .4byte gOamBuffer
_0803C9A0: .4byte 0xFFFFFE00
_0803C9A4: .4byte gUnknown_086B65EA
_0803C9A8: .4byte 0x000001FF
_0803C9AC:
movs r2, #0
mov r6, r8
lsls r0, r6, #0x10
ldr r1, _0803CB6C @ =gOamBuffer
mov sb, r1
asrs r1, r0, #0x10
movs r0, #0x72
adds r3, r1, #0
muls r3, r0, r3
mov r8, r3
ldr r4, _0803CB70 @ =0xFFFFFE00
mov ip, r4
_0803C9C4:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r6, sb
adds r2, r0, r6
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
ldr r1, _0803CB74 @ =gUnknown_086B65EA
adds r0, r0, r1
mov r4, r8
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, sb
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r6, #2
ldrsh r0, [r7, r6]
adds r1, r1, r0
ldr r6, _0803CB78 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
mov r0, ip
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0x12
ble _0803C9C4
_0803CA2E:
ldr r7, _0803CB7C @ =gUnknown_0200C440
ldrh r0, [r7]
cmp r0, #0
bne _0803CA38
b _0803CB98
_0803CA38:
mov r3, sl
ldr r0, [r3]
ldr r4, _0803CB80 @ =0x0000047E
adds r1, r0, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0803CA5E
subs r0, r2, #1
strb r0, [r1]
ldr r0, [r3]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803CA5E
strh r0, [r7]
_0803CA5E:
mov r6, sl
ldr r4, [r6]
ldr r1, _0803CB84 @ =0x0000047D
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r1, r0, #1
ldr r2, _0803CB80 @ =0x0000047E
adds r0, r4, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bge _0803CA80
adds r0, #3
_0803CA80:
asrs r0, r0, #2
subs r0, r1, r0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
movs r3, #0xfa
lsls r3, r3, #2
adds r0, r4, r3
movs r6, #0
ldrsh r0, [r0, r6]
movs r1, #0xa
bl __divsi3
adds r0, #0x64
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #2]
ldr r1, _0803CB88 @ =0x000003EA
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x54
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #4]
movs r2, #0
ldr r3, _0803CB8C @ =gUnknown_086B6512
mov sb, r3
mov r4, r8
lsls r1, r4, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
mov r8, r0
ldr r6, _0803CB70 @ =0xFFFFFE00
mov ip, r6
_0803CAD8:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r0, [r5]
lsls r0, r0, #3
ldr r1, _0803CB6C @ =gOamBuffer
adds r2, r0, r1
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
mov r4, r8
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
ldr r6, _0803CB6C @ =gOamBuffer
adds r2, r2, r6
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r6, #2
ldrsh r0, [r7, r6]
adds r1, r1, r0
ldr r6, _0803CB78 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
mov r0, ip
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
ldr r0, _0803CB6C @ =gOamBuffer
adds r1, r1, r0
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #5
ble _0803CAD8
mov r3, sl
ldr r0, [r3]
ldr r4, _0803CB90 @ =0x000005A4
adds r0, r0, r4
ldrb r0, [r0]
cmp r0, #2
bne _0803CBAE
ldr r0, _0803CB94 @ =gMain
movs r6, #0x9c
lsls r6, r6, #5
adds r0, r0, r6
movs r2, #0
movs r1, #0
strh r1, [r0]
ldr r0, [r3]
ldr r1, _0803CB80 @ =0x0000047E
adds r0, r0, r1
strb r2, [r0]
b _0803CBAE
.align 2, 0
_0803CB6C: .4byte gOamBuffer
_0803CB70: .4byte 0xFFFFFE00
_0803CB74: .4byte gUnknown_086B65EA
_0803CB78: .4byte 0x000001FF
_0803CB7C: .4byte gUnknown_0200C440
_0803CB80: .4byte 0x0000047E
_0803CB84: .4byte 0x0000047D
_0803CB88: .4byte 0x000003EA
_0803CB8C: .4byte gUnknown_086B6512
_0803CB90: .4byte 0x000005A4
_0803CB94: .4byte gMain
_0803CB98:
mov r2, sl
ldr r0, [r2]
ldr r3, _0803CBC0 @ =0x0000047E
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
bne _0803CBAE
movs r0, #1
strh r0, [r7]
_0803CBAE:
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
_0803CBC0: .4byte 0x0000047E
thumb_func_start sub_3CBC4
sub_3CBC4: @ 0x0803CBC4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x1c
movs r0, #0
mov sl, r0
ldr r1, _0803CBFC @ =gUnknown_0200BAE8
str r1, [sp, #4]
ldrh r0, [r1]
cmp r0, #0
bne _0803CBE0
b _0803CD68
_0803CBE0:
ldr r2, _0803CC00 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _0803CC04 @ =0x000006C4
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _0803CC08
movs r0, #0xf0
strh r0, [r1, #2]
movs r0, #0xb4
strh r0, [r1, #4]
b _0803CC12
.align 2, 0
_0803CBFC: .4byte gUnknown_0200BAE8
_0803CC00: .4byte gUnknown_020314E0
_0803CC04: .4byte 0x000006C4
_0803CC08:
movs r0, #0x60
ldr r4, [sp, #4]
strh r0, [r4, #2]
movs r0, #0x37
strh r0, [r4, #4]
_0803CC12:
ldr r5, _0803CD94 @ =gUnknown_020314E0
ldr r1, [r5]
ldr r6, [sp, #4]
ldrh r2, [r6, #2]
ldr r7, _0803CD98 @ =0x000006E4
adds r0, r1, r7
strh r2, [r0]
ldrh r0, [r6, #4]
ldr r2, _0803CD9C @ =0x000006E6
adds r1, r1, r2
strh r0, [r1]
movs r3, #4
ldrsh r0, [r6, r3]
cmp r0, #0xc7
ble _0803CC34
movs r0, #0xc8
strh r0, [r6, #4]
_0803CC34:
movs r2, #0
ldr r4, _0803CDA0 @ =gUnknown_0200BA30
mov ip, r4
ldr r5, _0803CDA4 @ =gOamBuffer
movs r6, #3
mov r8, r6
movs r7, #0xd
rsbs r7, r7, #0
mov sb, r7
_0803CC46:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r1, [sp, #4]
adds r6, r1, r0
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0xd0
orrs r0, r1
strb r0, [r2, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
ldr r2, _0803CD94 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r7, _0803CDA8 @ =0x000006DB
adds r0, r0, r7
ldrb r1, [r0]
mov r0, r8
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r3, #5]
mov r0, sb
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r2, #2
ldrsh r1, [r6, r2]
ldr r7, [sp, #4]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r7, _0803CDAC @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _0803CDB0 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #4]
ldrb r0, [r2, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _0803CC46
mov r3, ip
str r3, [sp, #4]
ldr r4, _0803CD94 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _0803CD98 @ =0x000006E4
adds r0, r0, r5
ldrh r0, [r0]
subs r0, #8
strh r0, [r3, #2]
ldr r0, [r4]
ldr r6, _0803CD9C @ =0x000006E6
adds r0, r0, r6
ldrh r0, [r0]
subs r0, #8
strh r0, [r3, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _0803CCEC
movs r0, #0xc8
strh r0, [r3, #4]
_0803CCEC:
movs r2, #0
ldr r5, _0803CDA4 @ =gOamBuffer
movs r7, #3
mov r8, r7
movs r0, #0xd
rsbs r0, r0, #0
mov sb, r0
ldr r1, _0803CDB0 @ =0xFFFFFE00
mov ip, r1
_0803CCFE:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r2, [sp, #4]
adds r6, r2, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
ldr r7, _0803CD94 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0803CDA8 @ =0x000006DB
adds r0, r0, r1
ldrb r1, [r0]
mov r2, r8
ands r1, r2
lsls r1, r1, #2
ldrb r2, [r3, #5]
mov r0, sb
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r7, #2
ldrsh r1, [r6, r7]
ldr r2, [sp, #4]
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _0803CDAC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r3, [sp, #4]
ldrb r0, [r3, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _0803CCFE
_0803CD68:
ldr r4, _0803CDB4 @ =gUnknown_0200C4F8
str r4, [sp, #4]
ldrh r0, [r4]
cmp r0, #0
bne _0803CD74
b _0803CFD4
_0803CD74:
ldr r5, _0803CD94 @ =gUnknown_020314E0
ldr r7, [r5]
ldr r6, _0803CDB8 @ =0x00000486
adds r4, r7, r6
ldrh r5, [r4]
subs r0, r5, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r1, r0, #0x10
ldr r0, _0803CDBC @ =0x00000257
cmp r1, r0
ble _0803CDC0
movs r7, #0
mov sl, r7
b _0803CEC2
.align 2, 0
_0803CD94: .4byte gUnknown_020314E0
_0803CD98: .4byte 0x000006E4
_0803CD9C: .4byte 0x000006E6
_0803CDA0: .4byte gUnknown_0200BA30
_0803CDA4: .4byte gOamBuffer
_0803CDA8: .4byte 0x000006DB
_0803CDAC: .4byte 0x000001FF
_0803CDB0: .4byte 0xFFFFFE00
_0803CDB4: .4byte gUnknown_0200C4F8
_0803CDB8: .4byte 0x00000486
_0803CDBC: .4byte 0x00000257
_0803CDC0:
cmp r1, #5
bgt _0803CDC6
b _0803CEBE
_0803CDC6:
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xf
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #5
bl __divsi3
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
ldr r1, _0803CE04 @ =0x0000047F
adds r0, r7, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0803CE58
cmp r0, #7
bne _0803CE0C
ldr r2, _0803CE08 @ =0x0000132C
adds r0, r7, r2
ldr r1, [r0]
ldr r0, [r1, #0x34]
movs r3, #0x80
lsls r3, r3, #1
adds r0, r0, r3
b _0803CE3A
.align 2, 0
_0803CE04: .4byte 0x0000047F
_0803CE08: .4byte 0x0000132C
_0803CE0C:
cmp r0, #4
bne _0803CE28
ldr r4, _0803CE20 @ =0x0000132C
adds r0, r7, r4
ldr r1, [r0]
ldr r0, [r1, #0x34]
ldr r5, _0803CE24 @ =0xFFFFFE00
adds r0, r0, r5
b _0803CE3A
.align 2, 0
_0803CE20: .4byte 0x0000132C
_0803CE24: .4byte 0xFFFFFE00
_0803CE28:
cmp r0, #1
bne _0803CE3C
ldr r6, _0803CE4C @ =0x0000132C
adds r0, r7, r6
ldr r1, [r0]
ldr r0, [r1, #0x34]
movs r7, #0x80
lsls r7, r7, #1
adds r0, r0, r7
_0803CE3A:
str r0, [r1, #0x34]
_0803CE3C:
ldr r0, _0803CE50 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _0803CE54 @ =0x0000047F
adds r1, r1, r0
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _0803CE82
.align 2, 0
_0803CE4C: .4byte 0x0000132C
_0803CE50: .4byte gUnknown_020314E0
_0803CE54: .4byte 0x0000047F
_0803CE58:
ldrh r0, [r7, #4]
cmp r0, #0
beq _0803CE82
adds r0, r5, #0
subs r0, #0x1f
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
bgt _0803CE70
movs r0, #5
strh r0, [r4]
_0803CE70:
ldr r2, _0803CEA4 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, r0, r1
movs r1, #7
strb r1, [r0]
movs r0, #0x8f
lsls r0, r0, #1
bl m4aSongNumStart
_0803CE82:
ldr r0, _0803CEA4 @ =gUnknown_020314E0
ldr r2, [r0]
movs r3, #0x90
lsls r3, r3, #3
adds r1, r2, r3
ldrh r7, [r1]
cmp r7, #0
beq _0803CEB2
subs r0, r7, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x32
bls _0803CEA8
movs r4, #4
mov sl, r4
b _0803CEC2
.align 2, 0
_0803CEA4: .4byte gUnknown_020314E0
_0803CEA8:
cmp r0, #0x28
bls _0803CEC2
movs r5, #5
mov sl, r5
b _0803CEC2
_0803CEB2:
ldrh r0, [r2, #4]
cmp r0, #0
beq _0803CEC2
movs r0, #0x3c
strh r0, [r1]
b _0803CEC2
_0803CEBE:
movs r6, #4
mov sl, r6
_0803CEC2:
ldr r7, _0803CEF0 @ =gUnknown_020314E0
ldr r1, [r7]
ldr r2, _0803CEF4 @ =0x00000486
adds r0, r1, r2
movs r4, #0
ldrsh r3, [r0, r4]
cmp r3, #0
bne _0803CF04
ldr r0, _0803CEF8 @ =gMain
ldr r5, _0803CEFC @ =0x00001438
adds r0, r0, r5
movs r2, #0
strh r3, [r0]
ldr r0, [r7]
movs r6, #0x90
lsls r6, r6, #3
adds r1, r0, r6
strh r3, [r1]
ldr r7, _0803CF00 @ =0x00000383
adds r0, r0, r7
strb r2, [r0]
b _0803CF22
.align 2, 0
_0803CEF0: .4byte gUnknown_020314E0
_0803CEF4: .4byte 0x00000486
_0803CEF8: .4byte gMain
_0803CEFC: .4byte 0x00001438
_0803CF00: .4byte 0x00000383
_0803CF04:
ldr r0, _0803D10C @ =0x00000383
adds r1, r1, r0
movs r2, #0
movs r0, #1
strb r0, [r1]
ldr r1, _0803D110 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _0803D114 @ =0x0000132C
adds r0, r0, r3
ldr r1, [r0]
strh r2, [r1, #0x30]
ldr r1, [r0]
strh r2, [r1, #0x32]
ldr r0, [r0]
strh r2, [r0, #6]
_0803CF22:
ldr r4, _0803D110 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0803D114 @ =0x0000132C
adds r3, r2, r5
ldr r0, [r3]
adds r1, r2, #0
adds r1, #0x58
ldrh r0, [r0, #0x10]
ldrh r1, [r1]
subs r0, r0, r1
subs r0, #8
ldr r6, [sp, #4]
strh r0, [r6, #2]
ldr r0, [r3]
adds r2, #0x5a
ldrh r0, [r0, #0x12]
ldrh r1, [r2]
subs r0, r0, r1
subs r0, #8
strh r0, [r6, #4]
movs r2, #0
mov r7, sl
lsls r1, r7, #0x10
ldr r0, _0803D118 @ =gUnknown_086B63AA
mov sb, r0
ldr r5, _0803D11C @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov ip, r0
ldr r1, _0803D120 @ =0xFFFFFE00
mov r8, r1
_0803CF64:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r2, [sp, #4]
adds r6, r2, r0
ldrh r0, [r6]
lsls r0, r0, #3
adds r2, r0, r5
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
mov r4, ip
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
str r1, [sp, #0x18]
ldr r7, [sp, #4]
movs r1, #2
ldrsh r0, [r7, r1]
ldr r7, [sp, #0x18]
adds r1, r7, r0
ldr r7, _0803D124 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #4]
ldrb r0, [r2, #4]
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _0803CF64
_0803CFD4:
ldr r5, _0803D128 @ =gUnknown_0200C388
str r5, [sp, #4]
ldrh r0, [r5]
cmp r0, #0
bne _0803CFE0
b _0803D2C6
_0803CFE0:
ldr r6, _0803D110 @ =gUnknown_020314E0
ldr r5, [r6]
movs r7, #0x91
lsls r7, r7, #3
adds r6, r5, r7
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r2, _0803D114 @ =0x0000132C
adds r2, r2, r5
mov sb, r2
ldr r4, [r2]
movs r3, #0x10
ldrsh r1, [r4, r3]
subs r1, r0, r1
str r1, [sp, #8]
ldr r0, _0803D12C @ =0x0000048A
adds r7, r5, r0
movs r1, #0
ldrsh r0, [r7, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0x12
ldrsh r1, [r4, r2]
subs r1, r0, r1
str r1, [sp, #0xc]
ldr r3, [sp, #8]
adds r1, r3, #0
muls r1, r3, r1
ldr r4, [sp, #0xc]
adds r0, r4, #0
muls r0, r4, r0
adds r3, r1, r0
ldr r4, _0803D130 @ =0x00000482
adds r1, r5, r4
ldrh r0, [r1]
cmp r0, #0
bne _0803D03C
b _0803D1E2
_0803D03C:
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi _0803D04A
b _0803D150
_0803D04A:
ldrh r1, [r1]
movs r0, #7
ands r1, r0
lsrs r1, r1, #2
ldr r6, _0803D134 @ =0x0000047D
adds r0, r5, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r1, r1, r0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sl, r1
cmp r3, #0xf0
bgt _0803D0B6
movs r7, #0xe2
lsls r7, r7, #2
adds r0, r5, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803D0B6
ldr r1, _0803D138 @ =0x00000486
adds r0, r5, r1
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _0803D13C @ =0x00000257
cmp r1, r0
bgt _0803D0B6
ldr r0, _0803D140 @ =gMPlayInfo_SE1
ldr r1, _0803D144 @ =gUnknown_086A26A0
bl MPlayStart
ldr r3, _0803D110 @ =gUnknown_020314E0
ldr r1, [r3]
adds r2, r1, r4
movs r0, #0xa
strh r0, [r2]
ldr r4, [sp, #4]
movs r5, #0xb8
lsls r5, r5, #1
adds r2, r4, r5
movs r0, #1
strh r0, [r2]
adds r6, #9
adds r1, r1, r6
movs r0, #0x99
lsls r0, r0, #2
strh r0, [r1]
movs r0, #9
bl sub_11B0
_0803D0B6:
ldr r5, _0803D110 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r7, _0803D148 @ =0x00000484
mov r8, r7
add r0, r8
ldrh r0, [r0]
bl sub_C74
ldr r4, [r5]
movs r1, #0x91
lsls r1, r1, #3
adds r6, r4, r1
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0xfa
lsls r1, r1, #1
bl __divsi3
ldrh r1, [r6]
adds r1, r1, r0
strh r1, [r6]
add r4, r8
ldrh r0, [r4]
bl sub_C24
adds r1, r0, #0
ldr r4, [r5]
ldr r2, _0803D12C @ =0x0000048A
adds r4, r4, r2
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
rsbs r0, r0, #0
ldr r1, _0803D14C @ =0x00004E20
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
strh r1, [r4]
b _0803D1CC
.align 2, 0
_0803D10C: .4byte 0x00000383
_0803D110: .4byte gUnknown_020314E0
_0803D114: .4byte 0x0000132C
_0803D118: .4byte gUnknown_086B63AA
_0803D11C: .4byte gOamBuffer
_0803D120: .4byte 0xFFFFFE00
_0803D124: .4byte 0x000001FF
_0803D128: .4byte gUnknown_0200C388
_0803D12C: .4byte 0x0000048A
_0803D130: .4byte 0x00000482
_0803D134: .4byte 0x0000047D
_0803D138: .4byte 0x00000486
_0803D13C: .4byte 0x00000257
_0803D140: .4byte gMPlayInfo_SE1
_0803D144: .4byte gUnknown_086A26A0
_0803D148: .4byte 0x00000484
_0803D14C: .4byte 0x00004E20
_0803D150:
ldr r4, _0803D1A0 @ =0x0000047D
adds r4, r4, r5
mov r8, r4
ldrb r4, [r4]
lsls r4, r4, #0x18
asrs r4, r4, #0x18
lsls r4, r4, #1
ldrh r5, [r1]
adds r0, r5, #0
movs r1, #5
str r3, [sp, #0x14]
bl __udivsi3
subs r0, #7
subs r4, r4, r0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
mov sl, r4
ldr r3, [sp, #0x14]
cmp r5, #9
bne _0803D1CC
cmp r3, #0xf0
bgt _0803D1A4
mov r5, sb
ldr r0, [r5]
movs r2, #0x10
ldrsh r1, [r0, r2]
adds r1, #4
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
strh r0, [r6]
ldr r0, [r5]
movs r3, #0x12
ldrsh r1, [r0, r3]
adds r1, #0xe
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
b _0803D1C2
.align 2, 0
_0803D1A0: .4byte 0x0000047D
_0803D1A4:
mov r4, r8
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
beq _0803D1BE
cmp r0, #1
bne _0803D1B8
ldrh r0, [r6]
subs r0, #0x78
b _0803D1BC
_0803D1B8:
ldrh r0, [r6]
adds r0, #0x78
_0803D1BC:
strh r0, [r6]
_0803D1BE:
ldrh r0, [r7]
adds r0, #0xf0
_0803D1C2:
strh r0, [r7]
movs r0, #0x90
lsls r0, r0, #1
bl m4aSongNumStart
_0803D1CC:
ldr r1, _0803D308 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r5, _0803D30C @ =0x00000482
adds r0, r0, r5
ldrh r7, [r0]
cmp r7, #0
bne _0803D1E2
ldr r0, _0803D310 @ =gMain
ldr r6, _0803D314 @ =0x000012C8
adds r0, r0, r6
strh r7, [r0]
_0803D1E2:
ldr r7, _0803D308 @ =gUnknown_020314E0
ldr r4, [r7]
movs r1, #0x91
lsls r1, r1, #3
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
subs r0, #0xc
ldr r3, [sp, #4]
strh r0, [r3, #2]
ldr r5, _0803D318 @ =0x0000048A
adds r0, r4, r5
movs r6, #0
ldrsh r0, [r0, r6]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
subs r0, #0x16
ldr r7, [sp, #4]
strh r0, [r7, #4]
movs r2, #0
mov r0, sl
lsls r1, r0, #0x10
ldr r3, _0803D31C @ =gUnknown_086B63F2
mov sb, r3
ldr r5, _0803D320 @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
mov sl, r0
ldr r4, _0803D324 @ =0xFFFFFE00
mov r8, r4
_0803D238:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r7, [sp, #4]
adds r6, r7, r0
ldrh r0, [r6]
lsls r0, r0, #3
adds r2, r0, r5
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
mov r4, sl
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
mov ip, r1
movs r1, #2
ldrsh r0, [r7, r1]
mov r7, ip
adds r1, r7, r0
ldr r7, _0803D328 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #4]
ldrb r0, [r2, #4]
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _0803D238
ldr r5, _0803D308 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _0803D32C @ =0x000005A4
adds r0, r0, r6
ldrb r0, [r0]
cmp r0, #2
bne _0803D2C6
ldr r0, _0803D310 @ =gMain
ldr r7, _0803D314 @ =0x000012C8
adds r0, r0, r7
movs r1, #0
strh r1, [r0]
ldr r0, [r5]
ldr r2, _0803D30C @ =0x00000482
adds r0, r0, r2
strh r1, [r0]
_0803D2C6:
movs r3, #0
str r3, [sp]
_0803D2CA:
ldr r4, [sp]
lsls r2, r4, #0x10
asrs r3, r2, #0x10
movs r0, #0xb8
adds r1, r3, #0
muls r1, r0, r1
ldr r0, _0803D330 @ =gUnknown_0200BE80
adds r1, r1, r0
str r1, [sp, #4]
ldrh r0, [r1]
str r2, [sp, #0x10]
cmp r0, #0
bne _0803D2E8
bl _0803DABA
_0803D2E8:
ldr r5, _0803D308 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _0803D334 @ =0x000004CF
adds r0, r0, r6
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bls _0803D2FE
b _0803D982
_0803D2FE:
lsls r0, r0, #2
ldr r1, _0803D338 @ =_0803D33C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803D308: .4byte gUnknown_020314E0
_0803D30C: .4byte 0x00000482
_0803D310: .4byte gMain
_0803D314: .4byte 0x000012C8
_0803D318: .4byte 0x0000048A
_0803D31C: .4byte gUnknown_086B63F2
_0803D320: .4byte gOamBuffer
_0803D324: .4byte 0xFFFFFE00
_0803D328: .4byte 0x000001FF
_0803D32C: .4byte 0x000005A4
_0803D330: .4byte gUnknown_0200BE80
_0803D334: .4byte 0x000004CF
_0803D338: .4byte _0803D33C
_0803D33C: @ jump table
.4byte _0803D354 @ case 0
.4byte _0803D4E4 @ case 1
.4byte _0803D600 @ case 2
.4byte _0803D710 @ case 3
.4byte _0803D824 @ case 4
.4byte _0803D954 @ case 5
_0803D354:
ldr r6, _0803D4B4 @ =gUnknown_020314E0
ldr r1, [r6]
ldr r7, [sp, #0x10]
asrs r5, r7, #0x10
ldr r0, _0803D4B8 @ =0x000004D2
adds r1, r1, r0
adds r1, r1, r5
ldr r2, _0803D4BC @ =gUnknown_086AF3AC
lsls r0, r5, #1
adds r0, r0, r2
ldrh r0, [r0]
strb r0, [r1]
bl Random
ldr r4, [r6]
lsls r1, r5, #2
adds r4, r4, r1
movs r1, #0x65
bl __umodsi3
adds r1, r0, #0
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #4
adds r0, r0, r1
movs r1, #0x64
bl __udivsi3
adds r0, #0x1e
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
ldr r2, _0803D4C0 @ =0x000004EC
adds r4, r4, r2
strh r1, [r4]
bl Random
ldr r2, [r6]
ldr r3, _0803D4C4 @ =0x000004CC
adds r2, r2, r3
adds r2, r2, r5
movs r1, #0xf
ands r1, r0
strb r1, [r2]
ldr r4, [r6]
adds r4, r4, r3
adds r6, r4, r5
adds r5, #1
adds r0, r5, #0
movs r1, #3
bl __modsi3
adds r4, r4, r0
movs r1, #0
ldrsb r1, [r6, r1]
movs r0, #0
ldrsb r0, [r4, r0]
cmp r1, r0
bne _0803D3E0
adds r2, r1, #0
adds r1, r2, #1
adds r0, r1, #0
cmp r1, #0
bge _0803D3D8
adds r0, r2, #0
adds r0, #0x10
_0803D3D8:
asrs r0, r0, #4
lsls r0, r0, #4
subs r0, r1, r0
strb r0, [r6]
_0803D3E0:
ldr r5, _0803D4B4 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r3, [sp, #0x10]
asrs r0, r3, #0x10
ldr r6, _0803D4C4 @ =0x000004CC
adds r4, r4, r6
adds r7, r4, r0
adds r0, #2
movs r1, #3
bl __modsi3
adds r4, r4, r0
movs r1, #0
ldrsb r1, [r7, r1]
movs r0, #0
ldrsb r0, [r4, r0]
cmp r1, r0
bne _0803D41A
adds r2, r1, #0
adds r1, r2, #1
adds r0, r1, #0
cmp r1, #0
bge _0803D412
adds r0, r2, #0
adds r0, #0x10
_0803D412:
asrs r0, r0, #4
lsls r0, r0, #4
subs r0, r1, r0
strb r0, [r7]
_0803D41A:
ldr r7, _0803D4B4 @ =gUnknown_020314E0
ldr r3, [r7]
ldr r0, [sp, #0x10]
asrs r0, r0, #0x10
mov sb, r0
lsls r5, r0, #2
adds r6, r3, r5
ldr r4, _0803D4C8 @ =gUnknown_086AF34C
ldr r1, _0803D4C4 @ =0x000004CC
adds r2, r3, r1
add r2, sb
movs r1, #0
ldrsb r1, [r2, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r4
movs r7, #0
ldrsh r0, [r0, r7]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
ldr r7, _0803D4C0 @ =0x000004EC
adds r0, r6, r7
movs r7, #0
mov sl, r7
movs r7, #0
mov r8, r7
strh r1, [r0]
movs r1, #0
ldrsb r1, [r2, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r4, #2
adds r0, r0, r4
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
ldr r4, _0803D4CC @ =0x000004EE
adds r6, r6, r4
strh r0, [r6]
mov r6, sb
lsls r2, r6, #1
ldr r7, _0803D4D0 @ =0x000004E4
adds r0, r3, r7
adds r0, r0, r2
ldr r1, _0803D4D4 @ =0x0000FB50
strh r1, [r0]
ldr r1, _0803D4D8 @ =0x000004DE
adds r0, r3, r1
adds r0, r0, r2
mov r2, r8
strh r2, [r0]
subs r4, #0x1f
adds r3, r3, r4
add r3, sb
movs r0, #1
strb r0, [r3]
ldr r6, _0803D4B4 @ =gUnknown_020314E0
ldr r1, [r6]
adds r5, r1, r5
adds r7, #0x14
adds r0, r5, r7
strh r2, [r0]
ldr r0, _0803D4DC @ =0x000004FA
adds r5, r5, r0
strh r2, [r5]
ldr r2, _0803D4E0 @ =0x000004D5
adds r1, r1, r2
add r1, sb
mov r3, sl
strb r3, [r1]
b _0803D982
.align 2, 0
_0803D4B4: .4byte gUnknown_020314E0
_0803D4B8: .4byte 0x000004D2
_0803D4BC: .4byte gUnknown_086AF3AC
_0803D4C0: .4byte 0x000004EC
_0803D4C4: .4byte 0x000004CC
_0803D4C8: .4byte gUnknown_086AF34C
_0803D4CC: .4byte 0x000004EE
_0803D4D0: .4byte 0x000004E4
_0803D4D4: .4byte 0x0000FB50
_0803D4D8: .4byte 0x000004DE
_0803D4DC: .4byte 0x000004FA
_0803D4E0: .4byte 0x000004D5
_0803D4E4:
ldr r4, _0803D568 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r5, [sp, #0x10]
asrs r3, r5, #0xf
ldr r5, _0803D56C @ =0x000004E4
adds r0, r1, r5
adds r2, r0, r3
movs r6, #0
ldrsh r0, [r2, r6]
cmp r0, #0
bge _0803D526
ldr r7, _0803D570 @ =0x000004DE
adds r0, r1, r7
adds r0, r0, r3
ldrh r1, [r0]
adds r1, #3
movs r4, #0
strh r1, [r0]
ldrh r0, [r2]
adds r0, r0, r1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
ble _0803D516
strh r4, [r2]
_0803D516:
ldr r1, _0803D568 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r5
adds r0, r0, r3
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0
blt _0803D5D0
_0803D526:
ldr r7, _0803D568 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r3, [sp, #0x10]
asrs r5, r3, #0x10
lsls r4, r5, #1
movs r6, #0x9b
lsls r6, r6, #3
adds r0, r0, r6
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _0803D54A
ldr r0, _0803D574 @ =0x00000121
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_0803D54A:
ldr r1, [r7]
adds r0, r1, r6
adds r2, r0, r4
ldrh r0, [r2]
cmp r0, #4
bhi _0803D580
ldr r6, _0803D578 @ =0x000004D2
adds r0, r1, r6
adds r0, r0, r5
ldr r1, _0803D57C @ =gUnknown_086AF3AC
adds r1, r4, r1
ldrb r1, [r1]
adds r1, #1
b _0803D5B8
.align 2, 0
_0803D568: .4byte gUnknown_020314E0
_0803D56C: .4byte 0x000004E4
_0803D570: .4byte 0x000004DE
_0803D574: .4byte 0x00000121
_0803D578: .4byte 0x000004D2
_0803D57C: .4byte gUnknown_086AF3AC
_0803D580:
cmp r0, #9
bhi _0803D59C
ldr r7, _0803D594 @ =0x000004D2
adds r0, r1, r7
adds r0, r0, r5
ldr r1, _0803D598 @ =gUnknown_086AF3AC
adds r1, r4, r1
ldrb r1, [r1]
adds r1, #2
b _0803D5B8
.align 2, 0
_0803D594: .4byte 0x000004D2
_0803D598: .4byte gUnknown_086AF3AC
_0803D59C:
movs r0, #0
strh r0, [r2]
ldr r0, _0803D5EC @ =0x000004D2
adds r1, r1, r0
adds r1, r1, r5
ldr r0, _0803D5F0 @ =gUnknown_086AF3AC
adds r0, r4, r0
ldrh r0, [r0]
strb r0, [r1]
ldr r0, [r7]
ldr r1, _0803D5F4 @ =0x000004CF
adds r0, r0, r1
adds r0, r0, r5
movs r1, #2
_0803D5B8:
strb r1, [r0]
ldr r2, _0803D5F8 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, [sp, #0x10]
asrs r0, r3, #0xf
movs r4, #0x9b
lsls r4, r4, #3
adds r1, r1, r4
adds r1, r1, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0803D5D0:
ldr r5, _0803D5F8 @ =gUnknown_020314E0
ldr r1, [r5]
ldr r6, [sp, #0x10]
asrs r0, r6, #0xe
adds r1, r1, r0
movs r7, #0x9f
lsls r7, r7, #3
adds r0, r1, r7
movs r2, #0
strh r2, [r0]
ldr r0, _0803D5FC @ =0x000004FA
adds r1, r1, r0
strh r2, [r1]
b _0803D982
.align 2, 0
_0803D5EC: .4byte 0x000004D2
_0803D5F0: .4byte gUnknown_086AF3AC
_0803D5F4: .4byte 0x000004CF
_0803D5F8: .4byte gUnknown_020314E0
_0803D5FC: .4byte 0x000004FA
_0803D600:
ldr r1, _0803D694 @ =gUnknown_020314E0
ldr r6, [r1]
ldr r2, [sp, #0x10]
asrs r5, r2, #0x10
lsls r4, r5, #2
adds r4, r6, r4
ldr r3, _0803D698 @ =0x000004EC
adds r0, r4, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #1
movs r2, #0x9f
lsls r2, r2, #3
adds r1, r4, r2
movs r3, #0
mov sl, r3
movs r7, #0
mov sb, r7
strh r0, [r1]
ldr r1, _0803D69C @ =0x000004EE
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #8
ldr r3, _0803D6A0 @ =0x000004FA
adds r4, r4, r3
strh r0, [r4]
ldr r4, _0803D6A4 @ =0x000004D5
mov r8, r4
adds r0, r6, r4
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803D65A
b _0803D982
_0803D65A:
lsls r7, r5, #1
adds r4, #3
adds r0, r6, r4
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #1
bne _0803D674
ldr r0, _0803D6A8 @ =0x00000121
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_0803D674:
ldr r6, _0803D694 @ =gUnknown_020314E0
ldr r1, [r6]
adds r0, r1, r4
adds r0, r0, r7
ldrh r2, [r0]
cmp r2, #4
bhi _0803D6B4
ldr r2, _0803D6AC @ =0x000004D2
adds r0, r1, r2
adds r0, r0, r5
ldr r1, _0803D6B0 @ =gUnknown_086AF3AC
adds r1, r7, r1
ldrb r1, [r1]
adds r1, #3
strb r1, [r0]
b _0803D92E
.align 2, 0
_0803D694: .4byte gUnknown_020314E0
_0803D698: .4byte 0x000004EC
_0803D69C: .4byte 0x000004EE
_0803D6A0: .4byte 0x000004FA
_0803D6A4: .4byte 0x000004D5
_0803D6A8: .4byte 0x00000121
_0803D6AC: .4byte 0x000004D2
_0803D6B0: .4byte gUnknown_086AF3AC
_0803D6B4:
cmp r2, #9
bhi _0803D6D4
ldr r3, _0803D6CC @ =0x000004D2
adds r0, r1, r3
adds r0, r0, r5
ldr r1, _0803D6D0 @ =gUnknown_086AF3AC
adds r1, r7, r1
ldrb r1, [r1]
adds r1, #4
strb r1, [r0]
b _0803D92E
.align 2, 0
_0803D6CC: .4byte 0x000004D2
_0803D6D0: .4byte gUnknown_086AF3AC
_0803D6D4:
mov r4, sb
strh r4, [r0]
ldr r6, _0803D700 @ =0x000004D2
adds r1, r1, r6
adds r1, r1, r5
ldr r0, _0803D704 @ =gUnknown_086AF3AC
adds r0, r7, r0
ldrb r0, [r0]
adds r0, #5
strb r0, [r1]
ldr r7, _0803D708 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0803D70C @ =0x000004CF
adds r0, r0, r1
adds r0, r0, r5
movs r1, #3
strb r1, [r0]
ldr r0, [r7]
add r0, r8
adds r0, r0, r5
mov r2, sl
b _0803D92C
.align 2, 0
_0803D700: .4byte 0x000004D2
_0803D704: .4byte gUnknown_086AF3AC
_0803D708: .4byte gUnknown_020314E0
_0803D70C: .4byte 0x000004CF
_0803D710:
ldr r5, _0803D7A8 @ =gUnknown_020314E0
ldr r6, [r5]
ldr r7, [sp, #0x10]
asrs r5, r7, #0x10
lsls r4, r5, #2
adds r4, r6, r4
ldr r1, _0803D7AC @ =0x000004EC
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #1
movs r3, #0x9f
lsls r3, r3, #3
adds r1, r4, r3
movs r7, #0
mov sl, r7
movs r2, #0
mov sb, r2
strh r0, [r1]
subs r3, #0xa
adds r0, r4, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #8
ldr r1, _0803D7B0 @ =0x000004FA
adds r4, r4, r1
strh r0, [r4]
ldr r2, _0803D7B4 @ =0x000004D5
mov r8, r2
adds r0, r6, r2
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803D76A
b _0803D982
_0803D76A:
lsls r7, r5, #1
movs r4, #0x9b
lsls r4, r4, #3
adds r0, r6, r4
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #1
bne _0803D786
ldr r0, _0803D7B8 @ =0x00000121
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_0803D786:
ldr r3, _0803D7A8 @ =gUnknown_020314E0
ldr r1, [r3]
adds r0, r1, r4
adds r0, r0, r7
ldrh r2, [r0]
cmp r2, #4
bhi _0803D7C4
ldr r4, _0803D7BC @ =0x000004D2
adds r0, r1, r4
adds r0, r0, r5
ldr r1, _0803D7C0 @ =gUnknown_086AF3AC
adds r1, r7, r1
ldrb r1, [r1]
adds r1, #6
strb r1, [r0]
b _0803D92E
.align 2, 0
_0803D7A8: .4byte gUnknown_020314E0
_0803D7AC: .4byte 0x000004EC
_0803D7B0: .4byte 0x000004FA
_0803D7B4: .4byte 0x000004D5
_0803D7B8: .4byte 0x00000121
_0803D7BC: .4byte 0x000004D2
_0803D7C0: .4byte gUnknown_086AF3AC
_0803D7C4:
cmp r2, #9
bhi _0803D7E4
ldr r6, _0803D7DC @ =0x000004D2
adds r0, r1, r6
adds r0, r0, r5
ldr r1, _0803D7E0 @ =gUnknown_086AF3AC
adds r1, r7, r1
ldrb r1, [r1]
adds r1, #7
strb r1, [r0]
b _0803D92E
.align 2, 0
_0803D7DC: .4byte 0x000004D2
_0803D7E0: .4byte gUnknown_086AF3AC
_0803D7E4:
mov r2, sb
strh r2, [r0]
ldr r3, _0803D814 @ =0x000004D2
adds r1, r1, r3
adds r1, r1, r5
ldr r0, _0803D818 @ =gUnknown_086AF3AC
adds r0, r7, r0
ldrb r0, [r0]
adds r0, #8
strb r0, [r1]
ldr r4, _0803D81C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r6, _0803D820 @ =0x000004CF
adds r0, r0, r6
adds r0, r0, r5
movs r1, #4
strb r1, [r0]
ldr r0, [r4]
add r0, r8
_0803D80A:
adds r0, r0, r5
mov r7, sl
strb r7, [r0]
b _0803D92E
.align 2, 0
_0803D814: .4byte 0x000004D2
_0803D818: .4byte gUnknown_086AF3AC
_0803D81C: .4byte gUnknown_020314E0
_0803D820: .4byte 0x000004CF
_0803D824:
ldr r5, _0803D8B4 @ =gUnknown_020314E0
ldr r6, [r5]
ldr r7, [sp, #0x10]
asrs r5, r7, #0x10
lsls r4, r5, #2
adds r4, r6, r4
ldr r1, _0803D8B8 @ =0x000004EC
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r3, #0xa
mov sl, r3
movs r1, #0xa
bl __divsi3
lsls r0, r0, #1
movs r7, #0x9f
lsls r7, r7, #3
adds r1, r4, r7
movs r2, #0
mov sb, r2
strh r0, [r1]
ldr r3, _0803D8BC @ =0x000004EE
adds r0, r4, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #8
ldr r1, _0803D8C0 @ =0x000004FA
adds r4, r4, r1
strh r0, [r4]
ldr r2, _0803D8C4 @ =0x000004D5
mov r8, r2
adds r0, r6, r2
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803D87E
b _0803D982
_0803D87E:
lsls r7, r5, #1
movs r4, #0x9b
lsls r4, r4, #3
adds r0, r6, r4
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #1
bne _0803D89A
ldr r0, _0803D8C8 @ =0x00000121
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_0803D89A:
ldr r3, _0803D8B4 @ =gUnknown_020314E0
ldr r2, [r3]
adds r0, r2, r4
adds r0, r0, r7
ldrh r1, [r0]
cmp r1, #2
bhi _0803D8D0
ldr r4, _0803D8CC @ =0x000004D2
adds r0, r2, r4
adds r0, r0, r5
movs r1, #9
strb r1, [r0]
b _0803D92E
.align 2, 0
_0803D8B4: .4byte gUnknown_020314E0
_0803D8B8: .4byte 0x000004EC
_0803D8BC: .4byte 0x000004EE
_0803D8C0: .4byte 0x000004FA
_0803D8C4: .4byte 0x000004D5
_0803D8C8: .4byte 0x00000121
_0803D8CC: .4byte 0x000004D2
_0803D8D0:
cmp r1, #7
bhi _0803D8E0
ldr r6, _0803D8DC @ =0x000004D2
adds r0, r2, r6
b _0803D80A
.align 2, 0
_0803D8DC: .4byte 0x000004D2
_0803D8E0:
cmp r1, #0xd
bhi _0803D8F4
ldr r1, _0803D8F0 @ =0x000004D2
adds r0, r2, r1
adds r0, r0, r5
movs r1, #0xb
strb r1, [r0]
b _0803D92E
.align 2, 0
_0803D8F0: .4byte 0x000004D2
_0803D8F4:
cmp r1, #0x16
bhi _0803D908
ldr r3, _0803D904 @ =0x000004D2
adds r0, r2, r3
adds r0, r0, r5
movs r1, #0xc
strb r1, [r0]
b _0803D92E
.align 2, 0
_0803D904: .4byte 0x000004D2
_0803D908:
mov r4, sb
strh r4, [r0]
ldr r6, _0803D948 @ =0x000004D2
adds r0, r2, r6
adds r0, r0, r5
movs r1, #0xc
strb r1, [r0]
ldr r7, _0803D94C @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0803D950 @ =0x000004CF
adds r0, r0, r1
adds r0, r0, r5
movs r1, #5
strb r1, [r0]
ldr r0, [r7]
add r0, r8
adds r0, r0, r5
movs r2, #0
_0803D92C:
strb r2, [r0]
_0803D92E:
ldr r2, _0803D94C @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, [sp, #0x10]
asrs r0, r3, #0xf
movs r4, #0x9b
lsls r4, r4, #3
adds r1, r1, r4
adds r1, r1, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0803D982
.align 2, 0
_0803D948: .4byte 0x000004D2
_0803D94C: .4byte gUnknown_020314E0
_0803D950: .4byte 0x000004CF
_0803D954:
ldr r5, _0803DB14 @ =gUnknown_020314E0
ldr r1, [r5]
ldr r6, [sp, #0x10]
asrs r2, r6, #0x10
lsls r0, r2, #2
adds r1, r1, r0
movs r7, #0x9f
lsls r7, r7, #3
adds r0, r1, r7
movs r3, #0
strh r3, [r0]
ldr r0, _0803DB18 @ =0x000004FA
adds r1, r1, r0
strh r3, [r1]
ldr r1, _0803DB1C @ =gMain
adds r2, #0xf
movs r0, #0xb8
muls r0, r2, r0
adds r0, r0, r1
movs r1, #0xbe
lsls r1, r1, #2
adds r0, r0, r1
strh r3, [r0]
_0803D982:
ldr r2, _0803DB14 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, [sp, #0x10]
asrs r4, r3, #0x10
ldr r5, _0803DB20 @ =0x000004D2
adds r0, r0, r5
adds r0, r0, r4
ldr r2, _0803DB24 @ =0x040000D4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0803DB28 @ =gUnknown_084A11EC
adds r0, r0, r1
str r0, [r2]
lsls r3, r4, #1
adds r0, r3, r4
lsls r0, r0, #8
ldr r6, _0803DB2C @ =0x06010FA0
adds r0, r0, r6
str r0, [r2, #4]
ldr r0, _0803DB30 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r7, _0803DB14 @ =gUnknown_020314E0
ldr r6, [r7]
lsls r5, r4, #2
adds r5, r6, r5
ldr r1, _0803DB34 @ =0x000004EC
adds r0, r5, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
str r3, [sp, #0x14]
bl __divsi3
adds r4, r4, r0
adds r0, r6, #0
adds r0, #0x58
ldrh r0, [r0]
subs r4, r4, r0
ldr r7, [sp, #4]
strh r4, [r7, #2]
ldr r1, _0803DB38 @ =0x000004E4
adds r0, r6, r1
ldr r3, [sp, #0x14]
adds r0, r0, r3
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, r0, #0
ldr r3, _0803DB3C @ =0x000004EE
adds r5, r5, r3
movs r7, #0
ldrsh r0, [r5, r7]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
adds r6, #0x5a
ldrh r0, [r6]
subs r4, r4, r0
ldr r0, [sp, #4]
strh r4, [r0, #4]
movs r2, #0
ldr r5, _0803DB40 @ =gOamBuffer
ldr r1, _0803DB44 @ =0xFFFFFE00
mov r8, r1
_0803DA10:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r2, [sp, #4]
adds r6, r2, r0
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
movs r4, #2
ldrsh r1, [r6, r4]
ldr r7, [sp, #4]
movs r4, #2
ldrsh r0, [r7, r4]
adds r1, r1, r0
ldr r7, _0803DB48 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldrh r4, [r2, #2]
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #4]
ldrb r0, [r2, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _0803DA10
ldr r3, _0803DB14 @ =gUnknown_020314E0
ldr r6, [r3]
ldr r4, [sp, #0x10]
asrs r3, r4, #0x10
ldr r5, _0803DB4C @ =0x000004CF
adds r0, r6, r5
adds r4, r0, r3
ldrb r0, [r4]
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #2
bhi _0803DABA
ldr r2, _0803DB50 @ =gUnknown_086AF34C
ldr r7, _0803DB54 @ =0x000004CC
adds r0, r6, r7
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #4
adds r0, r0, r2
movs r2, #0
ldrsh r1, [r0, r2]
subs r5, #0x79
adds r0, r6, r5
ldrh r0, [r0]
cmp r1, r0
bne _0803DABA
movs r2, #0
movs r0, #4
strb r0, [r4]
ldr r6, _0803DB14 @ =gUnknown_020314E0
ldr r0, [r6]
adds r7, #9
adds r0, r0, r7
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
lsls r1, r3, #1
movs r3, #0x9b
lsls r3, r3, #3
adds r0, r0, r3
adds r0, r0, r1
strh r2, [r0]
_0803DABA:
ldr r4, [sp]
lsls r0, r4, #0x10
movs r5, #0x80
lsls r5, r5, #9
adds r0, r0, r5
lsrs r6, r0, #0x10
str r6, [sp]
asrs r0, r0, #0x10
cmp r0, #2
bgt _0803DAD2
bl _0803D2CA
_0803DAD2:
movs r7, #0
str r7, [sp]
_0803DAD6:
ldr r0, [sp]
lsls r2, r0, #0x10
asrs r4, r2, #0x10
movs r0, #0xb8
adds r1, r4, #0
muls r1, r0, r1
ldr r0, _0803DB58 @ =gUnknown_0200C0A8
adds r1, r1, r0
str r1, [sp, #4]
ldrh r3, [r1]
str r2, [sp, #0x10]
cmp r3, #0
bne _0803DAF2
b _0803E1B0
_0803DAF2:
ldr r1, _0803DB14 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0803DB5C @ =0x0000048C
adds r0, r0, r2
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bls _0803DB08
b _0803DF08
_0803DB08:
lsls r0, r0, #2
ldr r1, _0803DB60 @ =_0803DB64
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803DB14: .4byte gUnknown_020314E0
_0803DB18: .4byte 0x000004FA
_0803DB1C: .4byte gMain
_0803DB20: .4byte 0x000004D2
_0803DB24: .4byte 0x040000D4
_0803DB28: .4byte gUnknown_084A11EC
_0803DB2C: .4byte 0x06010FA0
_0803DB30: .4byte 0x80000180
_0803DB34: .4byte 0x000004EC
_0803DB38: .4byte 0x000004E4
_0803DB3C: .4byte 0x000004EE
_0803DB40: .4byte gOamBuffer
_0803DB44: .4byte 0xFFFFFE00
_0803DB48: .4byte 0x000001FF
_0803DB4C: .4byte 0x000004CF
_0803DB50: .4byte gUnknown_086AF34C
_0803DB54: .4byte 0x000004CC
_0803DB58: .4byte gUnknown_0200C0A8
_0803DB5C: .4byte 0x0000048C
_0803DB60: .4byte _0803DB64
_0803DB64: @ jump table
.4byte _0803DB90 @ case 0
.4byte _0803DBD4 @ case 1
.4byte _0803DC2C @ case 2
.4byte _0803DC80 @ case 3
.4byte _0803DCD8 @ case 4
.4byte _0803DD2C @ case 5
.4byte _0803DD84 @ case 6
.4byte _0803DDD8 @ case 7
.4byte _0803DE34 @ case 8
.4byte _0803DEA8 @ case 9
.4byte _0803DEF0 @ case 10
_0803DB90:
ldr r2, _0803DBC8 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r4, [sp, #0x10]
asrs r3, r4, #0x10
ldr r5, _0803DBCC @ =0x0000049C
adds r0, r0, r5
adds r0, r0, r3
movs r4, #0
strb r4, [r0]
ldr r0, [r2]
movs r6, #0x92
lsls r6, r6, #3
adds r0, r0, r6
adds r0, r0, r3
movs r1, #8
strb r1, [r0]
ldr r0, [r2]
ldr r7, _0803DBD0 @ =0x00000494
adds r0, r0, r7
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
movs r1, #0x94
lsls r1, r1, #3
adds r0, r0, r1
b _0803DEDE
.align 2, 0
_0803DBC8: .4byte gUnknown_020314E0
_0803DBCC: .4byte 0x0000049C
_0803DBD0: .4byte 0x00000494
_0803DBD4:
ldr r2, _0803DC1C @ =gUnknown_020314E0
ldr r1, [r2]
ldr r4, [sp, #0x10]
asrs r3, r4, #0x10
ldr r5, _0803DC20 @ =0x0000049C
adds r1, r1, r5
adds r1, r1, r3
movs r0, #8
strb r0, [r1]
ldr r0, [r2]
movs r6, #0x92
lsls r6, r6, #3
adds r0, r0, r6
adds r0, r0, r3
movs r1, #0xc
strb r1, [r0]
ldr r0, [r2]
ldr r7, _0803DC24 @ =0x00000494
adds r0, r0, r7
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
ldr r0, [r2]
movs r1, #0x94
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
movs r1, #0xe
strb r1, [r0]
ldr r0, [r2]
ldr r2, _0803DC28 @ =0x0000048C
adds r0, r0, r2
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
b _0803DF08
.align 2, 0
_0803DC1C: .4byte gUnknown_020314E0
_0803DC20: .4byte 0x0000049C
_0803DC24: .4byte 0x00000494
_0803DC28: .4byte 0x0000048C
_0803DC2C:
ldr r5, _0803DC70 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r3, [sp, #0x10]
asrs r4, r3, #0x10
ldr r6, _0803DC74 @ =0x000004A4
adds r0, r0, r6
adds r1, r0, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _0803DC46
b _0803DF08
_0803DC46:
subs r0, r2, #1
strb r0, [r1]
ldr r0, [r5]
adds r0, r0, r6
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
beq _0803DC5C
b _0803DF08
_0803DC5C:
ldr r0, _0803DC78 @ =0x00000123
bl m4aSongNumStart
ldr r0, [r5]
ldr r7, _0803DC7C @ =0x0000048C
adds r0, r0, r7
adds r0, r0, r4
movs r1, #3
strb r1, [r0]
b _0803DE98
.align 2, 0
_0803DC70: .4byte gUnknown_020314E0
_0803DC74: .4byte 0x000004A4
_0803DC78: .4byte 0x00000123
_0803DC7C: .4byte 0x0000048C
_0803DC80:
ldr r2, _0803DCC8 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r0, [sp, #0x10]
asrs r3, r0, #0x10
ldr r4, _0803DCCC @ =0x0000049C
adds r1, r1, r4
adds r1, r1, r3
movs r0, #0xc
strb r0, [r1]
ldr r0, [r2]
movs r5, #0x92
lsls r5, r5, #3
adds r0, r0, r5
adds r0, r0, r3
movs r1, #0x10
strb r1, [r0]
ldr r0, [r2]
ldr r6, _0803DCD0 @ =0x00000494
adds r0, r0, r6
adds r0, r0, r3
movs r1, #5
strb r1, [r0]
ldr r0, [r2]
movs r7, #0x94
lsls r7, r7, #3
adds r0, r0, r7
adds r0, r0, r3
movs r1, #0xe
strb r1, [r0]
ldr r0, [r2]
ldr r1, _0803DCD4 @ =0x0000048C
adds r0, r0, r1
adds r0, r0, r3
movs r1, #4
strb r1, [r0]
b _0803DF08
.align 2, 0
_0803DCC8: .4byte gUnknown_020314E0
_0803DCCC: .4byte 0x0000049C
_0803DCD0: .4byte 0x00000494
_0803DCD4: .4byte 0x0000048C
_0803DCD8:
ldr r5, _0803DD1C @ =gUnknown_020314E0
ldr r0, [r5]
ldr r2, [sp, #0x10]
asrs r4, r2, #0x10
ldr r3, _0803DD20 @ =0x000004A4
adds r0, r0, r3
adds r1, r0, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _0803DCF2
b _0803DF08
_0803DCF2:
subs r0, r2, #1
strb r0, [r1]
ldr r0, [r5]
adds r0, r0, r3
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
beq _0803DD08
b _0803DF08
_0803DD08:
ldr r0, _0803DD24 @ =0x00000123
bl m4aSongNumStart
ldr r0, [r5]
ldr r5, _0803DD28 @ =0x0000048C
adds r0, r0, r5
adds r0, r0, r4
movs r1, #5
strb r1, [r0]
b _0803DE98
.align 2, 0
_0803DD1C: .4byte gUnknown_020314E0
_0803DD20: .4byte 0x000004A4
_0803DD24: .4byte 0x00000123
_0803DD28: .4byte 0x0000048C
_0803DD2C:
ldr r2, _0803DD74 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r6, [sp, #0x10]
asrs r3, r6, #0x10
ldr r7, _0803DD78 @ =0x0000049C
adds r1, r1, r7
adds r1, r1, r3
movs r0, #0x10
strb r0, [r1]
ldr r0, [r2]
movs r1, #0x92
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
movs r1, #0x14
strb r1, [r0]
ldr r0, [r2]
ldr r4, _0803DD7C @ =0x00000494
adds r0, r0, r4
adds r0, r0, r3
movs r1, #7
strb r1, [r0]
ldr r0, [r2]
movs r5, #0x94
lsls r5, r5, #3
adds r0, r0, r5
adds r0, r0, r3
movs r1, #0xe
strb r1, [r0]
ldr r0, [r2]
ldr r6, _0803DD80 @ =0x0000048C
adds r0, r0, r6
adds r0, r0, r3
movs r1, #6
strb r1, [r0]
b _0803DF08
.align 2, 0
_0803DD74: .4byte gUnknown_020314E0
_0803DD78: .4byte 0x0000049C
_0803DD7C: .4byte 0x00000494
_0803DD80: .4byte 0x0000048C
_0803DD84:
ldr r6, _0803DDC8 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r7, [sp, #0x10]
asrs r5, r7, #0x10
ldr r1, _0803DDCC @ =0x000004A4
adds r0, r0, r1
adds r1, r0, r5
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _0803DD9E
b _0803DF08
_0803DD9E:
subs r0, r2, #1
strb r0, [r1]
ldr r0, [r6]
ldr r2, _0803DDCC @ =0x000004A4
adds r0, r0, r2
adds r0, r0, r5
movs r4, #0
ldrsb r4, [r0, r4]
cmp r4, #7
beq _0803DDB4
b _0803DF08
_0803DDB4:
ldr r0, _0803DDD0 @ =0x00000123
bl m4aSongNumStart
ldr r0, [r6]
ldr r3, _0803DDD4 @ =0x0000048C
adds r0, r0, r3
adds r0, r0, r5
strb r4, [r0]
b _0803DE98
.align 2, 0
_0803DDC8: .4byte gUnknown_020314E0
_0803DDCC: .4byte 0x000004A4
_0803DDD0: .4byte 0x00000123
_0803DDD4: .4byte 0x0000048C
_0803DDD8:
ldr r2, _0803DE28 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r4, [sp, #0x10]
asrs r3, r4, #0x10
ldr r5, _0803DE2C @ =0x0000049C
adds r1, r1, r5
adds r1, r1, r3
movs r4, #0
movs r0, #0x14
strb r0, [r1]
ldr r0, [r2]
movs r6, #0x92
lsls r6, r6, #3
adds r0, r0, r6
adds r0, r0, r3
movs r1, #0x18
strb r1, [r0]
ldr r0, [r2]
ldr r7, _0803DE30 @ =0x00000494
adds r0, r0, r7
adds r0, r0, r3
movs r1, #9
strb r1, [r0]
ldr r0, [r2]
movs r1, #0x94
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
movs r1, #0xe
strb r1, [r0]
ldr r0, [r2]
subs r5, #0x10
adds r0, r0, r5
adds r0, r0, r3
movs r1, #8
strb r1, [r0]
ldr r0, [r2]
adds r6, #0x18
adds r0, r0, r6
b _0803DEDE
.align 2, 0
_0803DE28: .4byte gUnknown_020314E0
_0803DE2C: .4byte 0x0000049C
_0803DE30: .4byte 0x00000494
_0803DE34:
ldr r4, _0803DE7C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, [sp, #0x10]
asrs r3, r7, #0x10
ldr r1, _0803DE80 @ =0x000004A4
adds r0, r0, r1
adds r1, r0, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0803DF08
subs r0, r2, #1
movs r5, #0
strb r0, [r1]
ldr r1, [r4]
ldr r2, _0803DE80 @ =0x000004A4
adds r0, r1, r2
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _0803DF08
movs r6, #0x95
lsls r6, r6, #3
adds r0, r1, r6
adds r1, r0, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _0803DE84
adds r0, r2, #1
strb r0, [r1]
b _0803DE92
.align 2, 0
_0803DE7C: .4byte gUnknown_020314E0
_0803DE80: .4byte 0x000004A4
_0803DE84:
strb r5, [r1]
ldr r0, [r4]
ldr r7, _0803DEA0 @ =0x0000048C
adds r0, r0, r7
adds r0, r0, r3
movs r1, #9
strb r1, [r0]
_0803DE92:
ldr r0, _0803DEA4 @ =0x00000123
bl m4aSongNumStart
_0803DE98:
movs r0, #7
bl sub_11B0
b _0803DF08
.align 2, 0
_0803DEA0: .4byte 0x0000048C
_0803DEA4: .4byte 0x00000123
_0803DEA8:
ldr r2, _0803DEE4 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r0, [sp, #0x10]
asrs r3, r0, #0x10
ldr r4, _0803DEE8 @ =0x0000049C
adds r1, r1, r4
adds r1, r1, r3
movs r4, #0
movs r0, #0x18
strb r0, [r1]
ldr r0, [r2]
movs r5, #0x92
lsls r5, r5, #3
adds r0, r0, r5
adds r0, r0, r3
movs r1, #0x1b
strb r1, [r0]
ldr r0, [r2]
ldr r6, _0803DEEC @ =0x00000494
adds r0, r0, r6
adds r0, r0, r3
movs r1, #0xa
strb r1, [r0]
ldr r0, [r2]
movs r7, #0x94
lsls r7, r7, #3
adds r0, r0, r7
_0803DEDE:
adds r0, r0, r3
strb r4, [r0]
b _0803DF08
.align 2, 0
_0803DEE4: .4byte gUnknown_020314E0
_0803DEE8: .4byte 0x0000049C
_0803DEEC: .4byte 0x00000494
_0803DEF0:
ldr r2, _0803DF3C @ =gMain
ldr r1, [sp, #0x10]
asrs r0, r1, #0x10
adds r0, #0x12
movs r1, #0xb8
muls r0, r1, r0
adds r0, r0, r2
movs r2, #0xbe
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #0
strh r1, [r0]
_0803DF08:
ldr r4, _0803DF40 @ =gUnknown_086AF2DC
ldr r3, _0803DF44 @ =gUnknown_020314E0
ldr r2, [r3]
ldr r6, [sp, #0x10]
asrs r5, r6, #0x10
movs r7, #0x93
lsls r7, r7, #3
adds r0, r2, r7
adds r7, r0, r5
movs r1, #0
ldrsb r1, [r7, r1]
lsls r1, r1, #2
adds r0, r4, #2
adds r1, r1, r0
lsls r0, r5, #1
ldr r6, _0803DF48 @ =0x000004AC
adds r2, r2, r6
adds r2, r2, r0
ldrh r6, [r2]
ldrh r0, [r1]
cmp r0, r6
bls _0803DF4C
adds r0, r6, #1
strh r0, [r2]
b _0803DFC8
.align 2, 0
_0803DF3C: .4byte gMain
_0803DF40: .4byte gUnknown_086AF2DC
_0803DF44: .4byte gUnknown_020314E0
_0803DF48: .4byte 0x000004AC
_0803DF4C:
movs r0, #0
strh r0, [r2]
ldrb r0, [r7]
adds r0, #1
strb r0, [r7]
ldr r7, _0803DFA8 @ =gUnknown_020314E0
ldr r2, [r7]
movs r1, #0x93
lsls r1, r1, #3
adds r0, r2, r1
adds r3, r0, r5
movs r6, #0x92
lsls r6, r6, #3
adds r0, r2, r6
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r3, r1]
ldrb r6, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bne _0803DFC8
movs r7, #0x94
lsls r7, r7, #3
adds r0, r2, r7
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0803DFB0
ldr r1, _0803DFAC @ =0x0000049C
adds r0, r2, r1
adds r0, r0, r5
ldrb r0, [r0]
strb r0, [r3]
ldr r2, _0803DFA8 @ =gUnknown_020314E0
ldr r1, [r2]
adds r3, r7, #0
adds r1, r1, r3
adds r1, r1, r5
ldrb r0, [r1]
subs r0, #1
b _0803DFC6
.align 2, 0
_0803DFA8: .4byte gUnknown_020314E0
_0803DFAC: .4byte 0x0000049C
_0803DFB0:
subs r0, r6, #1
strb r0, [r3]
ldr r6, _0803E0EC @ =gUnknown_020314E0
ldr r0, [r6]
ldr r7, _0803E0F0 @ =0x0000048C
adds r1, r0, r7
adds r1, r1, r5
ldr r2, _0803E0F4 @ =0x00000494
adds r0, r0, r2
adds r0, r0, r5
ldrb r0, [r0]
_0803DFC6:
strb r0, [r1]
_0803DFC8:
ldr r3, _0803E0EC @ =gUnknown_020314E0
ldr r2, [r3]
ldr r6, [sp, #0x10]
asrs r5, r6, #0x10
movs r7, #0x93
lsls r7, r7, #3
adds r0, r2, r7
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r4
ldrh r0, [r0]
mov sl, r0
ldr r0, _0803E0F8 @ =gUnknown_086AF2CC
lsls r4, r5, #2
adds r3, r4, r0
ldrh r1, [r3]
adds r1, #0x41
adds r0, r2, #0
adds r0, #0x58
ldrh r0, [r0]
subs r1, r1, r0
ldr r0, [sp, #4]
strh r1, [r0, #2]
ldrh r1, [r3, #2]
adds r1, #0x3c
adds r0, r2, #0
adds r0, #0x5a
ldrh r0, [r0]
subs r1, r1, r0
ldr r6, [sp, #4]
strh r1, [r6, #4]
subs r7, #0xc
adds r0, r2, r7
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
bgt _0803E03A
adds r2, r2, r4
movs r1, #0
ldrsh r0, [r3, r1]
adds r0, #0x3d
lsls r0, r0, #1
ldr r4, _0803E0FC @ =0x000004B4
adds r1, r2, r4
strh r0, [r1]
movs r6, #2
ldrsh r0, [r3, r6]
adds r0, #0x60
lsls r0, r0, #1
adds r7, #0x2a
adds r2, r2, r7
strh r0, [r2]
_0803E03A:
ldr r1, _0803E0EC @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0803E100 @ =0x000004A4
adds r0, r0, r2
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0803E114
movs r2, #0
mov r3, sl
lsls r1, r3, #0x10
ldr r4, _0803E104 @ =gUnknown_086B8AE0
mov sb, r4
ldr r5, _0803E108 @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
mov sl, r0
ldr r6, _0803E10C @ =0xFFFFFE00
mov r8, r6
_0803E068:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r7, [sp, #4]
adds r6, r7, r0
ldrh r0, [r6]
lsls r0, r0, #3
adds r2, r0, r5
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
mov r4, sl
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
mov ip, r1
movs r1, #2
ldrsh r0, [r7, r1]
mov r7, ip
adds r1, r7, r0
ldr r7, _0803E110 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #4]
ldrb r0, [r2, #4]
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0x20
orrs r0, r1
strb r0, [r2, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #9
ble _0803E068
b _0803E1C4
.align 2, 0
_0803E0EC: .4byte gUnknown_020314E0
_0803E0F0: .4byte 0x0000048C
_0803E0F4: .4byte 0x00000494
_0803E0F8: .4byte gUnknown_086AF2CC
_0803E0FC: .4byte 0x000004B4
_0803E100: .4byte 0x000004A4
_0803E104: .4byte gUnknown_086B8AE0
_0803E108: .4byte gOamBuffer
_0803E10C: .4byte 0xFFFFFE00
_0803E110: .4byte 0x000001FF
_0803E114:
movs r2, #0
mov r5, sl
lsls r1, r5, #0x10
ldr r6, _0803E1A0 @ =gUnknown_086B8AE0
mov sb, r6
ldr r5, _0803E1A4 @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
mov sl, r0
ldr r7, _0803E1A8 @ =0xFFFFFE00
mov r8, r7
_0803E12E:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r1, [sp, #4]
adds r6, r1, r0
ldrh r0, [r6]
lsls r0, r0, #3
adds r2, r0, r5
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
mov r4, sl
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
mov ip, r1
ldr r7, [sp, #4]
movs r1, #2
ldrsh r0, [r7, r1]
mov r7, ip
adds r1, r7, r0
ldr r7, _0803E1AC @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #4]
ldrb r0, [r2, #4]
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #9
ble _0803E12E
b _0803E1C4
.align 2, 0
_0803E1A0: .4byte gUnknown_086B8AE0
_0803E1A4: .4byte gOamBuffer
_0803E1A8: .4byte 0xFFFFFE00
_0803E1AC: .4byte 0x000001FF
_0803E1B0:
ldr r5, _0803E2BC @ =gUnknown_020314E0
ldr r0, [r5]
lsls r1, r4, #2
adds r0, r0, r1
ldr r6, _0803E2C0 @ =0x000004B4
adds r1, r0, r6
strh r3, [r1]
ldr r7, _0803E2C4 @ =0x000004B6
adds r0, r0, r7
strh r3, [r0]
_0803E1C4:
ldr r1, [sp, #0x10]
movs r2, #0x80
lsls r2, r2, #9
adds r0, r1, r2
lsrs r3, r0, #0x10
str r3, [sp]
asrs r0, r0, #0x10
cmp r0, #3
bgt _0803E1D8
b _0803DAD6
_0803E1D8:
ldr r4, _0803E2BC @ =gUnknown_020314E0
ldr r0, [r4]
ldr r4, _0803E2C8 @ =0x000004C4
adds r1, r0, r4
ldrh r0, [r1]
cmp r0, #0
beq _0803E236
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x24
bne _0803E1FA
movs r0, #0x91
lsls r0, r0, #1
bl m4aSongNumStart
_0803E1FA:
ldr r5, _0803E2BC @ =gUnknown_020314E0
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x18
bne _0803E20E
movs r0, #0x91
lsls r0, r0, #1
bl m4aSongNumStart
_0803E20E:
ldr r6, _0803E2BC @ =gUnknown_020314E0
ldr r0, [r6]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0xc
bne _0803E222
movs r0, #0x91
lsls r0, r0, #1
bl m4aSongNumStart
_0803E222:
ldr r7, _0803E2BC @ =gUnknown_020314E0
ldr r0, [r7]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _0803E236
movs r0, #0x91
lsls r0, r0, #1
bl m4aSongNumStart
_0803E236:
ldr r0, _0803E2CC @ =gUnknown_0200C948
str r0, [sp, #4]
ldrh r0, [r0]
cmp r0, #0
bne _0803E242
b _0803E574
_0803E242:
ldr r0, _0803E2BC @ =gUnknown_020314E0
ldr r1, [r0]
ldr r6, _0803E2D0 @ =0x00000456
adds r7, r1, r6
ldrh r1, [r7]
cmp r1, #0x23
bhi _0803E300
adds r0, r1, #0
lsls r0, r0, #9
movs r1, #0x23
bl __divsi3
adds r0, #0x10
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x80
lsls r1, r1, #2
cmp r0, r1
ble _0803E26C
adds r7, r1, #0
_0803E26C:
lsls r5, r7, #0x10
asrs r5, r5, #0x10
adds r0, r5, #0
adds r1, r5, #0
movs r2, #1
bl SetMatrixScale
rsbs r4, r5, #0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
adds r1, r5, #0
movs r2, #2
bl SetMatrixScale
adds r0, r5, #0
adds r1, r4, #0
movs r2, #3
bl SetMatrixScale
adds r0, r4, #0
adds r1, r4, #0
movs r2, #4
bl SetMatrixScale
ldr r1, _0803E2BC @ =gUnknown_020314E0
ldr r0, [r1]
adds r1, r0, r6
ldrh r0, [r1]
cmp r0, #0x1e
bls _0803E2D4
subs r0, #0x1e
movs r1, #0xb
muls r0, r1, r0
movs r1, #5
bl __divsi3
movs r1, #0xc
b _0803E2E0
.align 2, 0
_0803E2BC: .4byte gUnknown_020314E0
_0803E2C0: .4byte 0x000004B4
_0803E2C4: .4byte 0x000004B6
_0803E2C8: .4byte 0x000004C4
_0803E2CC: .4byte gUnknown_0200C948
_0803E2D0: .4byte 0x00000456
_0803E2D4:
ldrh r0, [r1]
lsls r0, r0, #2
movs r1, #0x1e
bl __divsi3
movs r1, #0x10
_0803E2E0:
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
ldr r2, _0803E2F8 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0803E2FC @ =0x00000456
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0803E30A
.align 2, 0
_0803E2F8: .4byte gUnknown_020314E0
_0803E2FC: .4byte 0x00000456
_0803E300:
movs r7, #0x80
lsls r7, r7, #1
movs r6, #0
ldr r4, [sp, #4]
strh r6, [r4]
_0803E30A:
ldr r5, _0803E584 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r1, _0803E588 @ =0x00000456
adds r0, r0, r1
ldrh r0, [r0]
ldr r2, _0803E58C @ =gMain
mov r8, r2
lsls r7, r7, #0x10
mov sl, r7
cmp r0, #0x22
bne _0803E382
movs r3, #0
str r3, [sp]
mov sb, r8
movs r4, #0
movs r7, #0
adds r3, r5, #0
_0803E32C:
ldr r5, [sp]
lsls r2, r5, #0x10
asrs r2, r2, #0x10
adds r1, r2, #0
adds r1, #0x12
movs r0, #0xb8
muls r0, r1, r0
add r0, sb
movs r1, #0xbe
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #1
strh r1, [r0]
ldr r0, [r3]
ldr r5, _0803E590 @ =0x0000048C
adds r0, r0, r5
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r3]
movs r1, #0x93
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r3]
lsls r1, r2, #1
adds r5, #0x20
adds r0, r0, r5
adds r0, r0, r1
strh r7, [r0]
adds r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
str r0, [sp]
asrs r2, r2, #0x10
cmp r2, #3
ble _0803E32C
ldr r1, _0803E584 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0803E594 @ =0x000004C4
adds r0, r0, r2
movs r1, #0x25
strh r1, [r0]
_0803E382:
ldr r3, _0803E584 @ =gUnknown_020314E0
ldr r1, [r3]
mov r4, sl
asrs r5, r4, #0x10
adds r0, r5, #0
cmp r5, #0
bge _0803E392
adds r0, r5, #7
_0803E392:
asrs r3, r0, #3
movs r0, #0x20
subs r2, r0, r3
ldr r7, _0803E598 @ =0x0000046C
adds r0, r1, r7
strh r2, [r0]
adds r3, #0x20
movs r4, #0x8e
lsls r4, r4, #3
adds r0, r1, r4
strh r3, [r0]
ldr r7, _0803E59C @ =0x00000474
adds r0, r1, r7
strh r2, [r0]
movs r4, #0x8f
lsls r4, r4, #3
adds r0, r1, r4
strh r3, [r0]
ldr r7, _0803E5A0 @ =0x0000046E
adds r0, r1, r7
strh r2, [r0]
ldr r4, _0803E5A4 @ =0x00000472
adds r0, r1, r4
strh r2, [r0]
ldr r7, _0803E5A8 @ =0x00000476
adds r0, r1, r7
strh r3, [r0]
ldr r2, _0803E5AC @ =0x0000047A
adds r0, r1, r2
strh r3, [r0]
mov r3, r8
ldrb r1, [r3, #0xf]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne _0803E3F0
ldrh r0, [r3, #0x38]
ldr r0, _0803E5B0 @ =0x00001E10
strh r0, [r3, #0x38]
movs r0, #0x10
lsls r1, r6, #0x10
asrs r1, r1, #0x10
subs r0, r0, r1
lsls r0, r0, #8
orrs r0, r1
ldrh r1, [r3, #0x3a]
strh r0, [r3, #0x3a]
_0803E3F0:
ldr r4, [sp, #4]
ldrh r0, [r4]
cmp r0, #0
beq _0803E4AA
ldr r5, _0803E584 @ =gUnknown_020314E0
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x17
subs r0, r0, r2
strh r0, [r4, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r0, #0x32
subs r0, r0, r1
strh r0, [r4, #4]
movs r2, #0
ldr r7, _0803E5B4 @ =gOamBuffer
ldr r6, _0803E5B8 @ =0xFFFFFE00
mov sb, r6
movs r0, #0xf
rsbs r0, r0, #0
mov r8, r0
_0803E420:
lsls r5, r2, #0x10
asrs r5, r5, #0x10
lsls r0, r5, #3
adds r0, #8
ldr r1, [sp, #4]
adds r6, r1, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r6, r2]
ldr r4, [sp, #4]
movs r2, #2
ldrsh r0, [r4, r2]
adds r1, r1, r0
ldr r0, _0803E584 @ =gUnknown_020314E0
ldr r4, [r0]
lsls r0, r5, #2
adds r4, r4, r0
ldr r2, _0803E598 @ =0x0000046C
adds r0, r4, r2
movs r2, #0
ldrsh r0, [r0, r2]
adds r1, r1, r0
ldr r2, _0803E5BC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sb
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r7
ldr r3, [sp, #4]
ldrb r1, [r3, #4]
ldrb r0, [r6, #4]
adds r1, r1, r0
ldr r3, _0803E5A0 @ =0x0000046E
adds r4, r4, r3
ldrb r0, [r4]
adds r0, r0, r1
strb r0, [r2]
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r7
ldrb r0, [r2, #1]
movs r1, #3
orrs r0, r1
strb r0, [r2, #1]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r7
adds r5, #1
movs r0, #7
adds r1, r5, #0
ands r1, r0
lsls r1, r1, #1
ldrb r2, [r3, #3]
mov r0, r8
ands r0, r2
orrs r0, r1
strb r0, [r3, #3]
lsls r5, r5, #0x10
lsrs r2, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _0803E420
_0803E4AA:
ldr r4, _0803E584 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0803E588 @ =0x00000456
adds r4, r2, r5
ldrh r0, [r4]
cmp r0, #0x1d
bhi _0803E560
ldr r7, _0803E5C0 @ =0x0000132C
adds r0, r2, r7
ldr r1, [r0]
movs r6, #0x10
ldrsh r0, [r1, r6]
subs r0, #0x77
str r0, [sp, #8]
movs r3, #0x12
ldrsh r0, [r1, r3]
subs r0, #0x93
str r0, [sp, #0xc]
ldr r5, [sp, #8]
adds r1, r5, #0
muls r1, r5, r1
adds r6, r0, #0
adds r0, r6, #0
muls r0, r6, r0
adds r3, r1, r0
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803E560
ldr r0, _0803E5C4 @ =gUnknown_086AEE20
ldrh r1, [r4]
lsls r1, r1, #1
adds r1, r1, r0
movs r2, #0
ldrsh r0, [r1, r2]
cmp r3, r0
bge _0803E560
rsbs r0, r5, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r3, r6, #0
lsls r1, r3, #0x10
asrs r1, r1, #0x10
bl ArcTan2
ldr r4, _0803E584 @ =gUnknown_020314E0
ldr r1, [r4]
movs r6, #0xb6
lsls r6, r6, #3
adds r1, r1, r6
strh r0, [r1]
ldrh r0, [r1]
bl sub_C74
adds r1, r0, #0
ldr r4, [r4]
adds r0, r4, r7
ldr r5, [r0]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r1
lsls r0, r0, #4
rsbs r0, r0, #0
ldr r1, _0803E5C8 @ =0x00004E20
bl __divsi3
strh r0, [r5, #0x30]
adds r4, r4, r6
ldrh r0, [r4]
bl sub_C24
ldr r5, _0803E584 @ =gUnknown_020314E0
ldr r1, [r5]
adds r1, r1, r7
ldr r4, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x32
bl __divsi3
strh r0, [r4, #0x32]
movs r0, #9
bl sub_11B0
_0803E560:
ldr r2, _0803E58C @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
beq _0803E574
ldr r6, _0803E5CC @ =0x00001888
adds r1, r2, r6
movs r0, #0
strh r0, [r1]
_0803E574:
add sp, #0x1c
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
_0803E584: .4byte gUnknown_020314E0
_0803E588: .4byte 0x00000456
_0803E58C: .4byte gMain
_0803E590: .4byte 0x0000048C
_0803E594: .4byte 0x000004C4
_0803E598: .4byte 0x0000046C
_0803E59C: .4byte 0x00000474
_0803E5A0: .4byte 0x0000046E
_0803E5A4: .4byte 0x00000472
_0803E5A8: .4byte 0x00000476
_0803E5AC: .4byte 0x0000047A
_0803E5B0: .4byte 0x00001E10
_0803E5B4: .4byte gOamBuffer
_0803E5B8: .4byte 0xFFFFFE00
_0803E5BC: .4byte 0x000001FF
_0803E5C0: .4byte 0x0000132C
_0803E5C4: .4byte gUnknown_086AEE20
_0803E5C8: .4byte 0x00004E20
_0803E5CC: .4byte 0x00001888
thumb_func_start sub_3E5D0
sub_3E5D0: @ 0x0803E5D0
push {r4, r5, r6, r7, lr}
ldr r6, _0803E634 @ =gUnknown_0200C948
ldrh r0, [r6]
cmp r0, #0
beq _0803E62E
movs r0, #0xf0
strh r0, [r6, #2]
movs r0, #0xa0
strh r0, [r6, #4]
movs r0, #0
ldr r7, _0803E638 @ =gOamBuffer
ldr r1, _0803E63C @ =0xFFFFFE00
mov ip, r1
_0803E5EA:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r3, r5, #3
adds r3, #8
adds r3, r6, r3
ldrh r4, [r3]
lsls r4, r4, #3
adds r4, r4, r7
movs r2, #2
ldrsh r1, [r3, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _0803E640 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r4, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r4, #2]
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _0803E5EA
_0803E62E:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0803E634: .4byte gUnknown_0200C948
_0803E638: .4byte gOamBuffer
_0803E63C: .4byte 0xFFFFFE00
_0803E640: .4byte 0x000001FF
thumb_func_start sub_3E644
sub_3E644: @ 0x0803E644
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, _0803E760 @ =gUnknown_086AF3B2
ldr r6, _0803E764 @ =gMain
ldr r5, [r6, #0x4c]
adds r0, r5, #0
movs r1, #0x90
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r4
ldr r2, _0803E768 @ =0x040000D4
movs r3, #0
ldrsh r1, [r0, r3]
lsls r0, r1, #5
ldr r4, _0803E76C @ =gUnknown_08352BD8
adds r0, r0, r4
str r0, [r2]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r2, #4]
ldr r3, _0803E770 @ =0x80000010
str r3, [r2, #8]
ldr r0, [r2, #8]
adds r1, #4
lsls r1, r1, #5
adds r1, r1, r4
str r1, [r2]
ldr r0, _0803E774 @ =0x05000080
str r0, [r2, #4]
str r3, [r2, #8]
ldr r0, [r2, #8]
ldr r4, _0803E778 @ =gUnknown_086AF3BE
adds r0, r5, #0
movs r1, #0x60
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r4
movs r3, #0
ldr r7, _0803E77C @ =gOamBuffer
movs r1, #0
ldrsh r0, [r0, r1]
lsls r0, r0, #3
mov r8, r0
ldr r2, _0803E780 @ =gUnknown_086AF3C6
mov sb, r2
ldr r0, _0803E784 @ =0xFFFFFC00
mov sl, r0
_0803E6B8:
lsls r3, r3, #0x10
asrs r1, r3, #0x10
movs r0, #0xb8
muls r0, r1, r0
ldr r1, _0803E788 @ =gUnknown_0200BBA0
adds r6, r0, r1
ldr r2, _0803E78C @ =gUnknown_020314E0
ldr r1, [r2]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x78
subs r0, r0, r2
strh r0, [r6, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r0, #0x80
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
mov ip, r3
_0803E6E2:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r4, r5, #3
adds r4, #8
adds r4, r6, r4
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r7
movs r3, #2
ldrsh r1, [r4, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _0803E790 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0803E794 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r7
lsls r0, r5, #1
add r0, sb
ldrh r1, [r0]
add r1, r8
ldr r3, _0803E798 @ =0x000003FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #4]
mov r0, sl
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #2
ble _0803E6E2
movs r0, #0x80
lsls r0, r0, #9
add r0, ip
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0803E6B8
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
_0803E760: .4byte gUnknown_086AF3B2
_0803E764: .4byte gMain
_0803E768: .4byte 0x040000D4
_0803E76C: .4byte gUnknown_08352BD8
_0803E770: .4byte 0x80000010
_0803E774: .4byte 0x05000080
_0803E778: .4byte gUnknown_086AF3BE
_0803E77C: .4byte gOamBuffer
_0803E780: .4byte gUnknown_086AF3C6
_0803E784: .4byte 0xFFFFFC00
_0803E788: .4byte gUnknown_0200BBA0
_0803E78C: .4byte gUnknown_020314E0
_0803E790: .4byte 0x000001FF
_0803E794: .4byte 0xFFFFFE00
_0803E798: .4byte 0x000003FF
thumb_func_start sub_3E79C
sub_3E79C: @ 0x0803E79C
push {r4, r5, r6, r7, lr}
ldr r0, _0803E7FC @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0xa
bl __umodsi3
movs r4, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r4, r0
bge _0803E7C8
adds r5, r0, #0
_0803E7B4:
bl Random
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r5
blt _0803E7B4
_0803E7C8:
ldr r4, _0803E800 @ =gUnknown_020314E0
ldr r1, [r4]
movs r2, #0
movs r0, #0
strh r0, [r1, #0x18]
strb r2, [r1, #0x17]
ldr r0, [r4]
strb r2, [r0, #0x13]
ldr r5, [r4]
ldr r2, _0803E804 @ =0x00000283
adds r0, r5, r2
ldrb r0, [r0]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r6, r4, #0
cmp r0, #9
bne _0803E808
movs r3, #0xe1
lsls r3, r3, #2
adds r1, r5, r3
movs r0, #0x12
b _0803E810
.align 2, 0
_0803E7FC: .4byte gMain
_0803E800: .4byte gUnknown_020314E0
_0803E804: .4byte 0x00000283
_0803E808:
movs r4, #0xe1
lsls r4, r4, #2
adds r1, r5, r4
movs r0, #0xf
_0803E810:
strb r0, [r1]
ldr r0, [r6]
movs r5, #0xa5
lsls r5, r5, #2
adds r0, r0, r5
movs r3, #0
strb r3, [r0]
ldr r1, [r6]
adds r4, r1, #0
adds r4, #0x6c
ldr r7, _0803EAB4 @ =0x00002A30
adds r0, r7, #0
ldrh r2, [r4]
adds r0, r0, r2
adds r5, #2
adds r2, r1, r5
movs r5, #0
strh r0, [r2]
strh r3, [r4]
movs r7, #0xe2
lsls r7, r7, #2
adds r1, r1, r7
movs r4, #3
strb r4, [r1]
ldr r0, [r6]
ldr r2, _0803EAB8 @ =0x00000392
adds r1, r0, r2
strh r3, [r1]
ldr r7, _0803EABC @ =0x0000132C
adds r0, r0, r7
ldr r0, [r0]
movs r2, #1
strb r2, [r0]
ldr r0, [r6]
movs r1, #0xe6
adds r1, r1, r0
mov ip, r1
ldr r1, _0803EAC0 @ =0x0000FFA8
mov r7, ip
strh r1, [r7]
ldr r1, _0803EAC4 @ =0x00000387
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
ldr r2, _0803EAC8 @ =0x000006C4
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r6]
ldr r4, _0803EACC @ =0x00000382
adds r0, r0, r4
strb r5, [r0]
ldr r0, [r6]
ldr r7, _0803EAD0 @ =0x00000383
adds r0, r0, r7
strb r5, [r0]
ldr r0, [r6]
subs r1, #2
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r6]
ldr r2, _0803EAD4 @ =0x00000386
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r6]
adds r4, #7
adds r0, r0, r4
strb r5, [r0]
ldr r0, [r6]
ldr r5, _0803EAD8 @ =0x0000038A
adds r1, r0, r5
strh r3, [r1]
adds r7, #9
adds r1, r0, r7
strh r3, [r1]
adds r2, #8
adds r1, r0, r2
strh r3, [r1]
adds r4, #7
adds r1, r0, r4
strh r3, [r1]
adds r5, #0xa
adds r0, r0, r5
strh r3, [r0]
movs r4, #0
mov ip, r6
adds r7, #0x38
adds r5, #0x32
_0803E8BE:
mov r0, ip
ldr r2, [r0]
lsls r0, r4, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #2
adds r2, r2, r1
adds r1, r2, r7
strh r3, [r1]
adds r2, r2, r5
strh r3, [r2]
adds r0, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0803E8BE
ldr r0, [r6]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #0
strb r2, [r0]
ldr r0, [r6]
ldr r3, _0803EADC @ =0x000003DD
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r6]
ldr r4, _0803EAE0 @ =0x000003DE
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r6]
ldr r5, _0803EAE4 @ =0x000003DF
adds r0, r0, r5
strb r2, [r0]
ldr r0, [r6]
movs r7, #0xf8
lsls r7, r7, #2
adds r0, r0, r7
strb r2, [r0]
ldr r0, [r6]
adds r3, #5
adds r1, r0, r3
movs r3, #0
strh r2, [r1]
adds r4, #3
adds r0, r0, r4
strb r3, [r0]
ldr r0, [r6]
adds r5, #5
adds r1, r0, r5
strh r2, [r1]
adds r7, #6
adds r1, r0, r7
strh r2, [r1]
movs r3, #0xfa
lsls r3, r3, #2
adds r1, r0, r3
strh r2, [r1]
adds r4, #9
adds r1, r0, r4
strh r2, [r1]
adds r5, #8
adds r1, r0, r5
strh r2, [r1]
adds r7, #8
adds r1, r0, r7
strh r2, [r1]
adds r3, #8
adds r1, r0, r3
strh r2, [r1]
adds r4, #8
adds r1, r0, r4
strh r2, [r1]
adds r5, #0x28
adds r1, r0, r5
strh r2, [r1]
adds r7, #0x28
adds r1, r0, r7
strh r2, [r1]
adds r3, #0x28
adds r1, r0, r3
strh r2, [r1]
adds r4, #0x28
adds r1, r0, r4
strh r2, [r1]
adds r5, #0x3e
adds r0, r0, r5
strh r2, [r0]
movs r4, #0
adds r7, r6, #0
movs r5, #0
_0803E974:
ldr r0, [r7]
lsls r2, r4, #0x10
asrs r2, r2, #0x10
ldr r1, _0803EAE8 @ =0x00000441
adds r0, r0, r1
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r7]
ldr r3, _0803EAEC @ =0x00000443
adds r0, r0, r3
adds r0, r0, r2
strb r5, [r0]
ldr r1, [r7]
lsls r3, r2, #1
movs r4, #0x8b
lsls r4, r4, #3
adds r0, r1, r4
adds r0, r0, r3
strh r5, [r0]
lsls r0, r2, #2
adds r1, r1, r0
ldr r3, _0803EAF0 @ =0x0000045C
adds r0, r1, r3
strh r5, [r0]
adds r4, #6
adds r0, r1, r4
strh r5, [r0]
adds r3, #8
adds r0, r1, r3
strh r5, [r0]
adds r4, #8
adds r1, r1, r4
strh r5, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r4, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #1
ble _0803E974
ldr r0, [r6]
movs r5, #0x99
lsls r5, r5, #3
adds r0, r0, r5
movs r2, #0
strb r2, [r0]
ldr r0, [r6]
ldr r7, _0803EAF4 @ =0x0000047F
adds r0, r0, r7
strb r2, [r0]
ldr r1, [r6]
adds r3, #0x1c
adds r0, r1, r3
movs r3, #0
strh r2, [r0]
ldr r4, _0803EAF8 @ =0x00000486
adds r0, r1, r4
strh r2, [r0]
adds r5, #0x3c
adds r1, r1, r5
strb r3, [r1]
ldr r0, [r6]
adds r7, #0x86
adds r0, r0, r7
strb r3, [r0]
ldr r0, [r6]
ldr r1, _0803EAFC @ =0x00000506
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r6]
adds r4, #0x81
adds r0, r0, r4
strb r3, [r0]
ldr r0, [r6]
adds r5, #4
adds r1, r0, r5
strh r2, [r1]
adds r7, #5
adds r1, r0, r7
strh r2, [r1]
ldr r3, _0803EB00 @ =0x0000050C
adds r1, r0, r3
strh r2, [r1]
adds r4, #7
adds r1, r0, r4
strh r2, [r1]
adds r5, #8
adds r1, r0, r5
strh r2, [r1]
adds r7, #8
adds r1, r0, r7
strh r2, [r1]
adds r3, #8
adds r1, r0, r3
strh r2, [r1]
adds r4, #8
adds r1, r0, r4
strh r2, [r1]
adds r5, #8
adds r1, r0, r5
strh r2, [r1]
adds r7, #8
adds r1, r0, r7
strh r2, [r1]
adds r3, #8
adds r1, r0, r3
strh r2, [r1]
adds r4, #8
adds r1, r0, r4
strh r2, [r1]
adds r5, #8
adds r1, r0, r5
strh r2, [r1]
adds r7, #8
adds r1, r0, r7
strh r2, [r1]
adds r3, #8
adds r1, r0, r3
strh r2, [r1]
adds r4, #8
adds r1, r0, r4
strh r2, [r1]
adds r5, #8
adds r1, r0, r5
strh r2, [r1]
adds r7, #8
adds r1, r0, r7
strh r2, [r1]
movs r1, #1
strb r1, [r0, #0x1a]
bl sub_423D8
ldr r4, _0803EB04 @ =0x040000D4
ldr r0, _0803EB08 @ =gUnknown_083C5A2C
str r0, [r4]
ldr r0, _0803EB0C @ =0x06015800
str r0, [r4, #4]
ldr r0, _0803EB10 @ =0x80001400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0803EB14 @ =gUnknown_084AA18C
str r0, [r4]
ldr r0, _0803EB18 @ =0x06011620
str r0, [r4, #4]
ldr r0, _0803EB1C @ =0x80000430
str r0, [r4, #8]
ldr r0, [r4, #8]
bl sub_3EDF0
bl sub_3FAE0
ldr r0, _0803EB20 @ =gUnknown_081B36A4
str r0, [r4]
ldr r0, _0803EB24 @ =0x05000320
str r0, [r4, #4]
ldr r0, _0803EB28 @ =0x80000010
str r0, [r4, #8]
ldr r0, [r4, #8]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0803EAB4: .4byte 0x00002A30
_0803EAB8: .4byte 0x00000392
_0803EABC: .4byte 0x0000132C
_0803EAC0: .4byte 0x0000FFA8
_0803EAC4: .4byte 0x00000387
_0803EAC8: .4byte 0x000006C4
_0803EACC: .4byte 0x00000382
_0803EAD0: .4byte 0x00000383
_0803EAD4: .4byte 0x00000386
_0803EAD8: .4byte 0x0000038A
_0803EADC: .4byte 0x000003DD
_0803EAE0: .4byte 0x000003DE
_0803EAE4: .4byte 0x000003DF
_0803EAE8: .4byte 0x00000441
_0803EAEC: .4byte 0x00000443
_0803EAF0: .4byte 0x0000045C
_0803EAF4: .4byte 0x0000047F
_0803EAF8: .4byte 0x00000486
_0803EAFC: .4byte 0x00000506
_0803EB00: .4byte 0x0000050C
_0803EB04: .4byte 0x040000D4
_0803EB08: .4byte gUnknown_083C5A2C
_0803EB0C: .4byte 0x06015800
_0803EB10: .4byte 0x80001400
_0803EB14: .4byte gUnknown_084AA18C
_0803EB18: .4byte 0x06011620
_0803EB1C: .4byte 0x80000430
_0803EB20: .4byte gUnknown_081B36A4
_0803EB24: .4byte 0x05000320
_0803EB28: .4byte 0x80000010
thumb_func_start sub_3EB2C
sub_3EB2C: @ 0x0803EB2C
push {r4, r5, lr}
ldr r0, _0803EB48 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bls _0803EB3E
b _0803ED6C
_0803EB3E:
lsls r0, r0, #2
ldr r1, _0803EB4C @ =_0803EB50
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803EB48: .4byte gUnknown_020314E0
_0803EB4C: .4byte _0803EB50
_0803EB50: @ jump table
.4byte _0803EB6C @ case 0
.4byte _0803ED6C @ case 1
.4byte _0803EBA4 @ case 2
.4byte _0803EC0C @ case 3
.4byte _0803EC8C @ case 4
.4byte _0803ECE8 @ case 5
.4byte _0803ED54 @ case 6
_0803EB6C:
ldr r3, _0803EB98 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r1, _0803EB9C @ =0x000005F7
adds r0, r0, r1
movs r4, #0
movs r1, #1
strb r1, [r0]
ldr r1, [r3]
ldr r2, _0803EBA0 @ =0x00000506
adds r0, r1, r2
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #1
beq _0803EB8A
b _0803ED6C
_0803EB8A:
adds r0, r1, #0
adds r0, #0xe6
strh r4, [r0]
strb r2, [r1, #0x13]
ldr r0, [r3]
strh r4, [r0, #0x18]
b _0803ED6C
.align 2, 0
_0803EB98: .4byte gUnknown_020314E0
_0803EB9C: .4byte 0x000005F7
_0803EBA0: .4byte 0x00000506
_0803EBA4:
ldr r2, _0803EBF0 @ =gUnknown_020314E0
ldr r1, [r2]
movs r3, #0
movs r0, #3
strb r0, [r1, #0x13]
ldr r2, [r2]
strh r3, [r2, #0x18]
ldr r3, _0803EBF4 @ =gMain
movs r4, #0xe9
lsls r4, r4, #3
adds r0, r3, r4
movs r4, #1
movs r1, #1
strh r1, [r0]
movs r5, #0xd2
lsls r5, r5, #3
adds r0, r3, r5
strh r1, [r0]
ldr r1, _0803EBF8 @ =0x040000D4
ldr r0, _0803EBFC @ =gUnknown_081408B4
str r0, [r1]
ldr r0, _0803EC00 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0803EC04 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xe5
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #0x88
strh r0, [r1]
movs r0, #0x80
strb r0, [r3, #0xf]
ldr r1, _0803EC08 @ =0x000005FA
adds r2, r2, r1
strb r4, [r2]
b _0803ED6C
.align 2, 0
_0803EBF0: .4byte gUnknown_020314E0
_0803EBF4: .4byte gMain
_0803EBF8: .4byte 0x040000D4
_0803EBFC: .4byte gUnknown_081408B4
_0803EC00: .4byte 0x06015800
_0803EC04: .4byte 0x80001000
_0803EC08: .4byte 0x000005FA
_0803EC0C:
bl sub_351A8
ldr r4, _0803EC54 @ =gUnknown_020314E0
ldr r1, [r4]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0803EC1E
movs r0, #0xb5
strh r0, [r1, #0x18]
_0803EC1E:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _0803EC34
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r4]
ldr r0, _0803EC58 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _0803EC5C @ =0x05F5E0FF
str r0, [r1, #0x3c]
_0803EC34:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _0803EC60
cmp r0, #0x14
bne _0803EC4A
bl m4aMPlayAllStop
movs r0, #0x2b
bl m4aSongNumStart
_0803EC4A:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
b _0803EC74
.align 2, 0
_0803EC54: .4byte gUnknown_020314E0
_0803EC58: .4byte 0x00061A80
_0803EC5C: .4byte 0x05F5E0FF
_0803EC60:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #6
strb r0, [r1, #0x13]
ldr r1, [r4]
ldr r2, _0803EC80 @ =0x00000283
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0803EC74:
ldr r0, _0803EC84 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r4, _0803EC88 @ =0x000005FA
adds r0, r0, r4
movs r1, #1
b _0803ED6A
.align 2, 0
_0803EC80: .4byte 0x00000283
_0803EC84: .4byte gUnknown_020314E0
_0803EC88: .4byte 0x000005FA
_0803EC8C:
ldr r2, _0803ECD0 @ =gUnknown_020314E0
ldr r1, [r2]
movs r0, #5
strb r0, [r1, #0x13]
ldr r2, [r2]
movs r0, #0x8c
strh r0, [r2, #0x18]
ldr r3, _0803ECD4 @ =gMain
movs r5, #0xe9
lsls r5, r5, #3
adds r0, r3, r5
movs r1, #1
strh r1, [r0]
movs r4, #0xd2
lsls r4, r4, #3
adds r0, r3, r4
strh r1, [r0]
ldr r1, _0803ECD8 @ =0x040000D4
ldr r0, _0803ECDC @ =gUnknown_081408B4
str r0, [r1]
ldr r0, _0803ECE0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0803ECE4 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r5, #0xe5
lsls r5, r5, #2
adds r2, r2, r5
movs r0, #0x88
strh r0, [r2]
movs r0, #0x80
strb r0, [r3, #0xf]
b _0803ED6C
.align 2, 0
_0803ECD0: .4byte gUnknown_020314E0
_0803ECD4: .4byte gMain
_0803ECD8: .4byte 0x040000D4
_0803ECDC: .4byte gUnknown_081408B4
_0803ECE0: .4byte 0x06015800
_0803ECE4: .4byte 0x80001000
_0803ECE8:
bl sub_351A8
ldr r3, _0803ED20 @ =gUnknown_020314E0
ldr r1, [r3]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0803ECFA
movs r0, #0xb5
strh r0, [r1, #0x18]
_0803ECFA:
ldr r1, [r3]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _0803ED10
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r3]
ldr r0, _0803ED24 @ =0x00061A80
str r0, [r1, #0x38]
ldr r0, _0803ED28 @ =0x05F5E0FF
str r0, [r1, #0x3c]
_0803ED10:
ldr r1, [r3]
ldrh r0, [r1, #0x18]
cmp r0, #0xef
bhi _0803ED2C
adds r0, #1
strh r0, [r1, #0x18]
b _0803ED6C
.align 2, 0
_0803ED20: .4byte gUnknown_020314E0
_0803ED24: .4byte 0x00061A80
_0803ED28: .4byte 0x05F5E0FF
_0803ED2C:
movs r2, #0
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #6
strb r0, [r1, #0x13]
ldr r1, [r3]
ldr r0, _0803ED4C @ =0x00000283
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r3]
ldr r1, _0803ED50 @ =0x000001AF
adds r0, r0, r1
strb r2, [r0]
b _0803ED6C
.align 2, 0
_0803ED4C: .4byte 0x00000283
_0803ED50: .4byte 0x000001AF
_0803ED54:
bl sub_351A8
ldr r2, _0803EDDC @ =gUnknown_020314E0
ldr r0, [r2]
ldr r4, _0803EDE0 @ =0x00000386
adds r0, r0, r4
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
ldr r5, _0803EDE4 @ =0x000005FA
adds r0, r0, r5
_0803ED6A:
strb r1, [r0]
_0803ED6C:
bl sub_423D8
bl sub_40288
bl sub_3EDF0
bl sub_3FAE0
ldr r0, _0803EDDC @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0xa5
lsls r2, r2, #2
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803EDB4
ldr r4, _0803EDE8 @ =0x00000296
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #1
bhi _0803EDB4
ldr r4, _0803EDEC @ =gMain
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _0803EDB4
bl m4aMPlayAllStop
movs r0, #0x2c
bl m4aSongNumStart
ldrb r1, [r4, #0xf]
movs r0, #0x40
orrs r0, r1
strb r0, [r4, #0xf]
_0803EDB4:
ldr r0, _0803EDDC @ =gUnknown_020314E0
ldr r1, [r0]
ldr r5, _0803EDE0 @ =0x00000386
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803EDD2
ldr r0, _0803EDE4 @ =0x000005FA
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
bl sub_350F0
_0803EDD2:
bl sub_472E4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0803EDDC: .4byte gUnknown_020314E0
_0803EDE0: .4byte 0x00000386
_0803EDE4: .4byte 0x000005FA
_0803EDE8: .4byte 0x00000296
_0803EDEC: .4byte gMain
thumb_func_start sub_3EDF0
sub_3EDF0: @ 0x0803EDF0
push {r4, r5, r6, r7, lr}
ldr r0, _0803EE9C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0803EEA0 @ =0x00000452
adds r5, r1, r2
ldrh r4, [r5]
adds r6, r0, #0
cmp r4, #0
beq _0803EE80
subs r0, r4, #1
strh r0, [r5]
ldr r3, _0803EEA4 @ =0x00000389
adds r1, r1, r3
movs r0, #1
strb r0, [r1]
ldr r0, [r6]
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #5
bne _0803EE60
movs r0, #0x93
lsls r0, r0, #1
bl m4aSongNumStart
ldr r1, [r6]
ldr r0, _0803EEA8 @ =0x000F4240
str r0, [r1, #0x3c]
ldr r4, _0803EEAC @ =0x00000385
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #7
bl sub_11B0
ldr r2, [r6]
adds r4, r2, r4
movs r5, #0xe1
lsls r5, r5, #2
adds r0, r2, r5
movs r1, #0
ldrsb r1, [r4, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
blt _0803EE60
movs r7, #0xf7
lsls r7, r7, #2
adds r1, r2, r7
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
beq _0803EE60
movs r0, #9
strb r0, [r1]
_0803EE60:
ldr r2, _0803EE9C @ =gUnknown_020314E0
ldr r5, [r2]
ldr r0, _0803EEB0 @ =0x0000050C
adds r1, r5, r0
movs r0, #0x14
strh r0, [r1]
ldr r1, _0803EEA0 @ =0x00000452
adds r0, r5, r1
ldrh r0, [r0]
adds r6, r2, #0
cmp r0, #0
bne _0803EE80
ldr r2, _0803EEA4 @ =0x00000389
adds r1, r5, r2
movs r0, #0
strb r0, [r1]
_0803EE80:
ldr r2, [r6]
ldr r4, _0803EEB0 @ =0x0000050C
adds r3, r2, r4
ldrh r0, [r3]
cmp r0, #0
beq _0803EEB8
subs r0, #1
movs r1, #0
strh r0, [r3]
ldr r5, _0803EEB4 @ =0x00000387
adds r0, r2, r5
strb r1, [r0]
b _0803EEC0
.align 2, 0
_0803EE9C: .4byte gUnknown_020314E0
_0803EEA0: .4byte 0x00000452
_0803EEA4: .4byte 0x00000389
_0803EEA8: .4byte 0x000F4240
_0803EEAC: .4byte 0x00000385
_0803EEB0: .4byte 0x0000050C
_0803EEB4: .4byte 0x00000387
_0803EEB8:
ldr r7, _0803EEE0 @ =0x00000387
adds r1, r2, r7
movs r0, #1
strb r0, [r1]
_0803EEC0:
ldr r0, [r6]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xf
bls _0803EED6
bl _0803FA78
_0803EED6:
lsls r0, r0, #2
ldr r1, _0803EEE4 @ =_0803EEE8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803EEE0: .4byte 0x00000387
_0803EEE4: .4byte _0803EEE8
_0803EEE8: @ jump table
.4byte _0803EF28 @ case 0
.4byte _0803EF84 @ case 1
.4byte _0803F00C @ case 2
.4byte _0803F0A4 @ case 3
.4byte _0803F154 @ case 4
.4byte _0803F210 @ case 5
.4byte _0803F334 @ case 6
.4byte _0803F460 @ case 7
.4byte _0803F550 @ case 8
.4byte _0803F68C @ case 9
.4byte _0803F788 @ case 10
.4byte _0803F814 @ case 11
.4byte _0803F8DC @ case 12
.4byte _0803F9D0 @ case 13
.4byte _0803FA2E @ case 14
.4byte _0803FA78 @ case 15
_0803EF28:
ldr r3, _0803EF74 @ =gUnknown_020314E0
ldr r1, [r3]
movs r4, #0xfa
lsls r4, r4, #2
adds r2, r1, r4
movs r5, #0
movs r4, #0
ldr r0, _0803EF78 @ =0x00000474
strh r0, [r2]
ldr r7, _0803EF7C @ =0x000003EA
adds r2, r1, r7
movs r0, #0x96
lsls r0, r0, #4
strh r0, [r2]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
ldr r1, [r3]
subs r7, #8
adds r2, r1, r7
movs r0, #0xd
strh r0, [r2]
movs r2, #0xf9
lsls r2, r2, #2
adds r0, r1, r2
strh r4, [r0]
subs r7, #1
adds r1, r1, r7
strb r5, [r1]
ldr r0, [r3]
ldr r1, _0803EF80 @ =0x0000051A
adds r0, r0, r1
strh r4, [r0]
bl _0803FA78
.align 2, 0
_0803EF74: .4byte gUnknown_020314E0
_0803EF78: .4byte 0x00000474
_0803EF7C: .4byte 0x000003EA
_0803EF80: .4byte 0x0000051A
_0803EF84:
ldr r2, [r6]
ldr r7, _0803EFF4 @ =0x00000516
adds r0, r2, r7
ldrh r1, [r0]
ldr r0, _0803EFF8 @ =0x00000212
cmp r1, r0
bls _0803EFD2
ldr r3, _0803EFFC @ =0x000003EA
adds r2, r2, r3
ldrh r5, [r2]
movs r4, #0
ldrsh r1, [r2, r4]
ldr r0, _0803F000 @ =0xFFFFFB50
cmp r1, r0
ble _0803EFA8
adds r0, r5, #0
subs r0, #0x46
strh r0, [r2]
_0803EFA8:
ldr r2, [r6]
adds r0, r2, r7
ldrh r1, [r0]
movs r0, #0xa8
lsls r0, r0, #2
cmp r1, r0
bne _0803EFD2
movs r5, #0xf7
lsls r5, r5, #2
adds r1, r2, r5
movs r2, #0
movs r0, #2
strb r0, [r1]
ldr r0, [r6]
movs r7, #0xfa
lsls r7, r7, #2
adds r1, r0, r7
strh r2, [r1]
adds r0, r0, r3
ldr r1, _0803F004 @ =0x0000FD80
strh r1, [r0]
_0803EFD2:
ldr r0, _0803F008 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _0803EFF4 @ =0x00000516
adds r0, r2, r1
ldrh r1, [r0]
ldr r0, _0803EFF8 @ =0x00000212
cmp r1, r0
beq _0803EFE6
bl _0803FA78
_0803EFE6:
movs r3, #0xe4
lsls r3, r3, #2
adds r1, r2, r3
movs r0, #0x19
strh r0, [r1]
bl _0803FA78
.align 2, 0
_0803EFF4: .4byte 0x00000516
_0803EFF8: .4byte 0x00000212
_0803EFFC: .4byte 0x000003EA
_0803F000: .4byte 0xFFFFFB50
_0803F004: .4byte 0x0000FD80
_0803F008: .4byte gUnknown_020314E0
_0803F00C:
ldr r2, _0803F038 @ =gUnknown_086AF3CC
ldr r3, [r6]
ldr r4, _0803F03C @ =0x000003E2
adds r5, r3, r4
movs r7, #0
ldrsh r1, [r5, r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r3, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _0803F040
adds r0, r2, #1
strh r0, [r1]
b _0803F056
.align 2, 0
_0803F038: .4byte gUnknown_086AF3CC
_0803F03C: .4byte 0x000003E2
_0803F040:
movs r0, #0
strh r0, [r1]
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x3f
bne _0803F056
movs r0, #0xd
strh r0, [r5]
_0803F056:
ldr r0, _0803F09C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r3, _0803F0A0 @ =0x000003EA
adds r1, r0, r3
ldrh r2, [r1]
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0
bge _0803F07E
adds r0, r2, #0
adds r0, #0x12
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
ble _0803F07E
movs r0, #0
strh r0, [r1]
movs r0, #0x2a
bl m4aSongNumStart
_0803F07E:
ldr r3, _0803F09C @ =gUnknown_020314E0
ldr r1, [r3]
ldr r5, _0803F0A0 @ =0x000003EA
adds r0, r1, r5
movs r7, #0
ldrsh r2, [r0, r7]
cmp r2, #0
beq _0803F092
bl _0803FA78
_0803F092:
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r1, r0
b _0803F128
.align 2, 0
_0803F09C: .4byte gUnknown_020314E0
_0803F0A0: .4byte 0x000003EA
_0803F0A4:
ldr r2, _0803F0D0 @ =gUnknown_086AF3CC
ldr r3, [r6]
ldr r5, _0803F0D4 @ =0x000003E2
adds r4, r3, r5
movs r7, #0
ldrsh r1, [r4, r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r3, r3, r1
ldrh r1, [r3]
ldrh r0, [r0]
cmp r0, r1
bls _0803F0D8
adds r0, r1, #1
strh r0, [r3]
b _0803F0EE
.align 2, 0
_0803F0D0: .4byte gUnknown_086AF3CC
_0803F0D4: .4byte 0x000003E2
_0803F0D8:
movs r0, #0
strh r0, [r3]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x3f
bne _0803F0EE
movs r0, #0xd
strh r0, [r4]
_0803F0EE:
ldr r0, [r6]
ldr r2, _0803F144 @ =0x000003EA
adds r1, r0, r2
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
bge _0803F10E
adds r0, r2, #0
adds r0, #0x12
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
ble _0803F10E
movs r0, #0
strh r0, [r1]
_0803F10E:
ldr r3, _0803F148 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _0803F144 @ =0x000003EA
adds r0, r1, r4
movs r5, #0
ldrsh r2, [r0, r5]
cmp r2, #0
beq _0803F122
bl _0803FA78
_0803F122:
movs r7, #0xf7
lsls r7, r7, #2
adds r1, r1, r7
_0803F128:
movs r0, #5
strb r0, [r1]
ldr r0, [r3]
ldr r1, _0803F14C @ =0x000003E1
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r3]
ldr r2, _0803F150 @ =0x000003DD
adds r0, r0, r2
movs r1, #6
strb r1, [r0]
bl _0803FA78
.align 2, 0
_0803F144: .4byte 0x000003EA
_0803F148: .4byte gUnknown_020314E0
_0803F14C: .4byte 0x000003E1
_0803F150: .4byte 0x000003DD
_0803F154:
ldr r2, _0803F180 @ =gUnknown_086AF3CC
ldr r3, [r6]
ldr r5, _0803F184 @ =0x000003E2
adds r4, r3, r5
movs r7, #0
ldrsh r1, [r4, r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r3, r3, r1
ldrh r1, [r3]
ldrh r0, [r0]
cmp r0, r1
bls _0803F188
adds r0, r1, #1
strh r0, [r3]
b _0803F19E
.align 2, 0
_0803F180: .4byte gUnknown_086AF3CC
_0803F184: .4byte 0x000003E2
_0803F188:
movs r0, #0
strh r0, [r3]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x22
bne _0803F19E
movs r0, #0x21
strh r0, [r4]
_0803F19E:
ldr r1, [r6]
ldr r2, _0803F200 @ =0x000003E2
adds r0, r1, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x21
bne _0803F1D0
ldr r4, _0803F204 @ =0x000003EA
adds r1, r1, r4
ldrh r2, [r1]
movs r5, #0
ldrsh r0, [r1, r5]
ldr r3, _0803F208 @ =0xFFFFFD00
cmp r0, r3
ble _0803F1D0
adds r0, r2, #0
subs r0, #0x18
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r3
bge _0803F1D0
movs r0, #0xfd
lsls r0, r0, #8
strh r0, [r1]
_0803F1D0:
ldr r4, _0803F20C @ =gUnknown_020314E0
ldr r3, [r4]
ldr r7, _0803F204 @ =0x000003EA
adds r0, r3, r7
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _0803F208 @ =0xFFFFFD00
cmp r1, r0
beq _0803F1E6
bl _0803FA78
_0803F1E6:
ldr r5, _0803F200 @ =0x000003E2
adds r0, r3, r5
movs r2, #0
movs r1, #0
strh r1, [r0]
subs r7, #6
adds r0, r3, r7
strh r1, [r0]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #7
b _0803F8BC
.align 2, 0
_0803F200: .4byte 0x000003E2
_0803F204: .4byte 0x000003EA
_0803F208: .4byte 0xFFFFFD00
_0803F20C: .4byte gUnknown_020314E0
_0803F210:
ldr r2, _0803F23C @ =gUnknown_086AF3CC
ldr r5, [r6]
ldr r4, _0803F240 @ =0x000003E2
adds r3, r5, r4
movs r7, #0
ldrsh r1, [r3, r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r5, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _0803F244
adds r0, r2, #1
strh r0, [r1]
b _0803F2DC
.align 2, 0
_0803F23C: .4byte gUnknown_086AF3CC
_0803F240: .4byte 0x000003E2
_0803F244:
movs r4, #0
mov ip, r4
movs r0, #0
strh r0, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x3f
bne _0803F2DC
ldr r4, _0803F274 @ =0x000003E1
adds r1, r5, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bgt _0803F278
movs r0, #0xd
strh r0, [r3]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0803F2DC
.align 2, 0
_0803F274: .4byte 0x000003E1
_0803F278:
ldr r7, _0803F2A8 @ =0x000003DD
adds r0, r5, r7
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #6
bne _0803F2C6
ldr r1, _0803F2AC @ =0x00000385
adds r0, r5, r1
movs r1, #0
ldrsb r1, [r0, r1]
subs r7, #0x59
adds r0, r5, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
cmp r1, r0
blt _0803F2B0
movs r0, #0xd
strh r0, [r3]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r5, r0
b _0803F2D0
.align 2, 0
_0803F2A8: .4byte 0x000003DD
_0803F2AC: .4byte 0x00000385
_0803F2B0:
movs r0, #0x62
strh r0, [r3]
movs r3, #0xf7
lsls r3, r3, #2
adds r0, r5, r3
strb r2, [r0]
ldr r0, [r6]
adds r0, r0, r4
mov r4, ip
strb r4, [r0]
b _0803F2DC
_0803F2C6:
movs r0, #0xd
strh r0, [r3]
movs r7, #0xf7
lsls r7, r7, #2
adds r1, r5, r7
_0803F2D0:
movs r0, #4
strb r0, [r1]
ldr r0, [r6]
adds r0, r0, r4
mov r1, ip
strb r1, [r0]
_0803F2DC:
ldr r4, _0803F324 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r2, _0803F328 @ =0x000003E1
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _0803F2F0
b _0803FA78
_0803F2F0:
ldr r3, _0803F32C @ =0x00000512
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #0x80
strh r0, [r1]
ldrh r0, [r1]
bl sub_C24
adds r1, r0, #0
ldr r4, [r4]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #5
subs r0, r0, r1
lsls r0, r0, #1
ldr r1, _0803F330 @ =0x00004E20
bl __divsi3
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
movs r5, #0xfa
lsls r5, r5, #2
adds r4, r4, r5
strh r1, [r4]
b _0803FA78
.align 2, 0
_0803F324: .4byte gUnknown_020314E0
_0803F328: .4byte 0x000003E1
_0803F32C: .4byte 0x00000512
_0803F330: .4byte 0x00004E20
_0803F334:
ldr r0, [r6]
ldr r7, _0803F438 @ =0x00000389
adds r0, r0, r7
movs r1, #2
strb r1, [r0]
ldr r2, _0803F43C @ =gUnknown_086AF3CC
ldr r4, [r6]
ldr r5, _0803F440 @ =0x000003E2
adds r3, r4, r5
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _0803F364
b _0803F7AE
_0803F364:
movs r0, #0
strh r0, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x74
bne _0803F390
ldr r3, _0803F444 @ =0x000003E1
adds r1, r4, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xe
bgt _0803F390
adds r0, r2, #1
strb r0, [r1]
ldr r0, [r6]
adds r0, r0, r5
movs r1, #0x72
strh r1, [r0]
_0803F390:
ldr r3, [r6]
ldr r5, _0803F440 @ =0x000003E2
adds r1, r3, r5
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0x83
bne _0803F3C8
movs r2, #0
movs r0, #0x1d
strh r0, [r1]
ldr r7, _0803F444 @ =0x000003E1
adds r0, r3, r7
strb r2, [r0]
ldr r0, [r6]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
ldr r0, [r6]
ldr r3, _0803F448 @ =0x000003DD
adds r0, r0, r3
movs r1, #4
strb r1, [r0]
ldr r0, [r6]
ldr r4, _0803F438 @ =0x00000389
adds r0, r0, r4
strb r2, [r0]
_0803F3C8:
ldr r4, [r6]
adds r0, r4, r5
movs r5, #0
ldrsh r0, [r0, r5]
cmp r0, #0x72
bne _0803F404
ldr r7, _0803F444 @ =0x000003E1
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0803F404
ldr r2, _0803F44C @ =gMain
movs r1, #0xf3
lsls r1, r1, #4
adds r0, r2, r1
movs r3, #1
movs r1, #1
strh r1, [r0]
ldr r5, _0803F450 @ =0x00000FE8
adds r0, r2, r5
strh r1, [r0]
movs r7, #0x85
lsls r7, r7, #5
adds r2, r2, r7
strh r1, [r2]
ldr r1, _0803F454 @ =0x00000507
adds r0, r4, r1
strb r3, [r0]
_0803F404:
ldr r3, _0803F458 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r2, _0803F440 @ =0x000003E2
adds r0, r1, r2
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x78
bne _0803F41E
movs r5, #0xe4
lsls r5, r5, #2
adds r1, r1, r5
movs r0, #0x15
strh r0, [r1]
_0803F41E:
ldr r1, [r3]
adds r0, r1, r2
movs r7, #0
ldrsh r0, [r0, r7]
cmp r0, #0x7c
beq _0803F42C
b _0803FA78
_0803F42C:
ldr r0, _0803F45C @ =0x0000050A
adds r1, r1, r0
movs r0, #0x10
strh r0, [r1]
b _0803FA78
.align 2, 0
_0803F438: .4byte 0x00000389
_0803F43C: .4byte gUnknown_086AF3CC
_0803F440: .4byte 0x000003E2
_0803F444: .4byte 0x000003E1
_0803F448: .4byte 0x000003DD
_0803F44C: .4byte gMain
_0803F450: .4byte 0x00000FE8
_0803F454: .4byte 0x00000507
_0803F458: .4byte gUnknown_020314E0
_0803F45C: .4byte 0x0000050A
_0803F460:
ldr r2, [r6]
movs r3, #0xf9
lsls r3, r3, #2
adds r1, r2, r3
ldrh r0, [r1]
cmp r0, #0x77
bhi _0803F470
b _0803F9EA
_0803F470:
movs r4, #0xf7
lsls r4, r4, #2
adds r1, r2, r4
movs r0, #8
strb r0, [r1]
ldr r1, _0803F4B0 @ =0x040000D4
ldr r0, _0803F4B4 @ =gUnknown_084A856C
str r0, [r1]
ldr r0, _0803F4B8 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0803F4BC @ =0x80000E00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r6]
ldr r5, _0803F4C0 @ =0x00000504
adds r0, r0, r5
ldrb r1, [r0]
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0803F4D4
ldr r0, _0803F4C4 @ =gMain
ldr r7, _0803F4C8 @ =0x000012C8
adds r1, r0, r7
strh r2, [r1]
ldr r3, _0803F4CC @ =0x00001438
adds r1, r0, r3
strh r2, [r1]
ldr r4, _0803F4D0 @ =0x000014F0
adds r0, r0, r4
b _0803F4EA
.align 2, 0
_0803F4B0: .4byte 0x040000D4
_0803F4B4: .4byte gUnknown_084A856C
_0803F4B8: .4byte 0x06015800
_0803F4BC: .4byte 0x80000E00
_0803F4C0: .4byte 0x00000504
_0803F4C4: .4byte gMain
_0803F4C8: .4byte 0x000012C8
_0803F4CC: .4byte 0x00001438
_0803F4D0: .4byte 0x000014F0
_0803F4D4:
ldr r0, _0803F530 @ =gMain
movs r5, #0x9c
lsls r5, r5, #5
adds r1, r0, r5
strh r2, [r1]
ldr r7, _0803F534 @ =0x00001888
adds r1, r0, r7
strh r2, [r1]
movs r1, #0xca
lsls r1, r1, #5
adds r0, r0, r1
_0803F4EA:
strh r2, [r0]
ldr r3, _0803F538 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r2, _0803F53C @ =0x00000504
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r0, [r3]
ldr r3, _0803F540 @ =0x00000524
adds r1, r0, r3
strh r2, [r1]
ldr r4, _0803F544 @ =0x00000526
adds r1, r0, r4
strh r2, [r1]
movs r5, #0xa5
lsls r5, r5, #3
adds r1, r0, r5
strh r2, [r1]
ldr r7, _0803F548 @ =0x0000052A
adds r1, r0, r7
strh r2, [r1]
subs r3, #0x10
adds r1, r0, r3
strh r2, [r1]
movs r4, #0xf9
lsls r4, r4, #2
adds r0, r0, r4
strh r2, [r0]
ldr r0, _0803F54C @ =0x00000127
bl m4aSongNumStart
b _0803FA78
.align 2, 0
_0803F530: .4byte gMain
_0803F534: .4byte 0x00001888
_0803F538: .4byte gUnknown_020314E0
_0803F53C: .4byte 0x00000504
_0803F540: .4byte 0x00000524
_0803F544: .4byte 0x00000526
_0803F548: .4byte 0x0000052A
_0803F54C: .4byte 0x00000127
_0803F550:
ldr r7, _0803F578 @ =gMain
ldr r0, _0803F57C @ =0x000012C8
adds r5, r7, r0
ldrh r4, [r5]
cmp r4, #0
beq _0803F5CC
ldr r0, [r6]
ldr r1, _0803F580 @ =0x00000524
adds r2, r0, r1
ldrh r3, [r2]
movs r4, #0
ldrsh r1, [r2, r4]
ldr r0, _0803F584 @ =0x000012BF
cmp r1, r0
bgt _0803F588
adds r0, r3, #0
adds r0, #0x8c
strh r0, [r2]
b _0803F58C
.align 2, 0
_0803F578: .4byte gMain
_0803F57C: .4byte 0x000012C8
_0803F580: .4byte 0x00000524
_0803F584: .4byte 0x000012BF
_0803F588:
movs r0, #0
strh r0, [r5]
_0803F58C:
ldr r2, [r6]
ldr r5, _0803F5C0 @ =0x00000524
adds r0, r2, r5
movs r7, #0
ldrsh r1, [r0, r7]
movs r0, #0x96
lsls r0, r0, #4
cmp r1, r0
ble _0803F62C
movs r0, #0xa5
lsls r0, r0, #3
adds r2, r2, r0
ldrh r3, [r2]
movs r4, #0
ldrsh r1, [r2, r4]
ldr r0, _0803F5C4 @ =0x0000135F
cmp r1, r0
bgt _0803F5B6
adds r0, r3, #0
adds r0, #0xc8
strh r0, [r2]
_0803F5B6:
ldr r1, [r6]
ldr r5, _0803F5C8 @ =0x00000514
adds r1, r1, r5
b _0803F626
.align 2, 0
_0803F5C0: .4byte 0x00000524
_0803F5C4: .4byte 0x0000135F
_0803F5C8: .4byte 0x00000514
_0803F5CC:
ldr r0, [r6]
ldr r1, _0803F5E8 @ =0x00000524
adds r2, r0, r1
ldrh r3, [r2]
movs r5, #0
ldrsh r1, [r2, r5]
ldr r0, _0803F5EC @ =0xFFFFED40
cmp r1, r0
ble _0803F5F0
adds r0, r3, #0
subs r0, #0x8c
strh r0, [r2]
b _0803F5F8
.align 2, 0
_0803F5E8: .4byte 0x00000524
_0803F5EC: .4byte 0xFFFFED40
_0803F5F0:
movs r1, #0x9c
lsls r1, r1, #5
adds r0, r7, r1
strh r4, [r0]
_0803F5F8:
ldr r2, [r6]
ldr r3, _0803F674 @ =0x00000524
adds r0, r2, r3
movs r4, #0
ldrsh r1, [r0, r4]
ldr r0, _0803F678 @ =0xFFFFF6A0
cmp r1, r0
bge _0803F62C
movs r5, #0xa5
lsls r5, r5, #3
adds r2, r2, r5
ldrh r3, [r2]
movs r7, #0
ldrsh r1, [r2, r7]
ldr r0, _0803F67C @ =0xFFFFECA0
cmp r1, r0
ble _0803F620
adds r0, r3, #0
subs r0, #0xc8
strh r0, [r2]
_0803F620:
ldr r1, [r6]
ldr r0, _0803F680 @ =0x00000514
adds r1, r1, r0
_0803F626:
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0803F62C:
ldr r2, _0803F684 @ =gUnknown_020314E0
ldr r1, [r2]
movs r3, #0xf9
lsls r3, r3, #2
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0x14
bne _0803F646
movs r4, #0x99
lsls r4, r4, #3
adds r1, r1, r4
movs r0, #0x3c
strb r0, [r1]
_0803F646:
ldr r2, [r2]
adds r1, r2, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xc7
bhi _0803F65A
b _0803FA78
_0803F65A:
movs r0, #0
strh r0, [r1]
ldr r5, _0803F688 @ =0x000003E2
adds r1, r2, r5
movs r0, #0xd
strh r0, [r1]
movs r7, #0xf7
lsls r7, r7, #2
adds r1, r2, r7
movs r0, #3
strb r0, [r1]
b _0803FA78
.align 2, 0
_0803F674: .4byte 0x00000524
_0803F678: .4byte 0xFFFFF6A0
_0803F67C: .4byte 0xFFFFECA0
_0803F680: .4byte 0x00000514
_0803F684: .4byte gUnknown_020314E0
_0803F688: .4byte 0x000003E2
_0803F68C:
ldr r0, [r6]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r5, #0
movs r1, #3
strb r1, [r0]
ldr r4, [r6]
ldr r2, _0803F704 @ =0x00000283
adds r0, r4, r2
ldrb r0, [r0]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #9
bne _0803F720
movs r3, #0xf7
lsls r3, r3, #2
adds r1, r4, r3
movs r0, #0xe
strb r0, [r1]
ldr r0, [r6]
ldr r4, _0803F708 @ =0x000003E2
adds r0, r0, r4
movs r4, #0
strh r5, [r0]
ldr r3, _0803F70C @ =gMain
ldr r7, _0803F710 @ =0x00000A28
adds r0, r3, r7
movs r1, #1
strh r1, [r0]
movs r2, #0x97
lsls r2, r2, #4
adds r0, r3, r2
strh r1, [r0]
ldr r1, [r6]
movs r7, #0xb3
lsls r7, r7, #3
adds r2, r1, r7
movs r0, #0xc7
strh r0, [r2]
ldr r2, _0803F714 @ =0x0000038E
adds r0, r1, r2
strh r5, [r0]
adds r7, #0x10
adds r1, r1, r7
strb r4, [r1]
ldr r0, [r6]
ldr r2, _0803F718 @ =0x000005A6
adds r1, r0, r2
strh r5, [r1]
ldr r4, _0803F71C @ =0x000005A4
adds r0, r0, r4
movs r1, #2
strb r1, [r0]
adds r2, r3, #0
b _0803F74C
.align 2, 0
_0803F704: .4byte 0x00000283
_0803F708: .4byte 0x000003E2
_0803F70C: .4byte gMain
_0803F710: .4byte 0x00000A28
_0803F714: .4byte 0x0000038E
_0803F718: .4byte 0x000005A6
_0803F71C: .4byte 0x000005A4
_0803F720:
movs r7, #0xf7
lsls r7, r7, #2
adds r1, r4, r7
movs r0, #0xa
strb r0, [r1]
ldr r1, [r6]
ldr r0, _0803F770 @ =0x000003E2
adds r2, r1, r0
movs r0, #0x62
strh r0, [r2]
ldr r2, _0803F774 @ =gMain
movs r0, #0x80
strb r0, [r2, #0xf]
movs r3, #0xe2
lsls r3, r3, #2
adds r1, r1, r3
movs r0, #2
strb r0, [r1]
ldr r0, [r6]
ldr r4, _0803F778 @ =0x00000392
adds r0, r0, r4
strh r5, [r0]
_0803F74C:
ldr r0, _0803F77C @ =gUnknown_020314E0
ldr r4, [r0]
movs r5, #0xf9
lsls r5, r5, #2
adds r1, r4, r5
movs r0, #0
strh r0, [r1]
ldr r7, _0803F780 @ =0x00001CD8
adds r0, r2, r7
ldrh r0, [r0]
cmp r0, #0
bne _0803F766
b _0803FA78
_0803F766:
ldr r0, _0803F784 @ =0x00000486
adds r1, r4, r0
movs r0, #1
strh r0, [r1]
b _0803FA78
.align 2, 0
_0803F770: .4byte 0x000003E2
_0803F774: .4byte gMain
_0803F778: .4byte 0x00000392
_0803F77C: .4byte gUnknown_020314E0
_0803F780: .4byte 0x00001CD8
_0803F784: .4byte 0x00000486
_0803F788:
ldr r2, _0803F7B4 @ =gUnknown_086AF3CC
ldr r5, _0803F7B8 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, _0803F7BC @ =0x000003E2
adds r3, r4, r6
movs r7, #0
ldrsh r1, [r3, r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r2, #0xf9
lsls r2, r2, #2
adds r1, r4, r2
ldrh r2, [r1]
ldrh r0, [r0]
cmp r0, r2
bls _0803F7C0
_0803F7AE:
adds r0, r2, #1
strh r0, [r1]
b _0803FA78
.align 2, 0
_0803F7B4: .4byte gUnknown_086AF3CC
_0803F7B8: .4byte gUnknown_020314E0
_0803F7BC: .4byte 0x000003E2
_0803F7C0:
movs r2, #0
movs r0, #0
strh r0, [r1]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x83
bne _0803F7F2
movs r0, #0xd
strh r0, [r3]
ldr r3, _0803F80C @ =0x000003E1
adds r0, r4, r3
strb r2, [r0]
ldr r0, [r5]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0xb
strb r1, [r0]
ldr r0, [r5]
ldr r7, _0803F810 @ =0x00000389
adds r0, r0, r7
strb r2, [r0]
_0803F7F2:
ldr r1, [r5]
adds r0, r1, r6
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0x78
beq _0803F800
b _0803FA78
_0803F800:
movs r3, #0xe4
lsls r3, r3, #2
adds r1, r1, r3
movs r0, #0x15
strh r0, [r1]
b _0803FA78
.align 2, 0
_0803F80C: .4byte 0x000003E1
_0803F810: .4byte 0x00000389
_0803F814:
ldr r2, _0803F840 @ =gUnknown_086AF3CC
ldr r3, [r6]
ldr r5, _0803F844 @ =0x000003E2
adds r4, r3, r5
movs r7, #0
ldrsh r1, [r4, r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0xf9
lsls r1, r1, #2
adds r3, r3, r1
ldrh r1, [r3]
ldrh r0, [r0]
cmp r0, r1
bls _0803F848
adds r0, r1, #1
strh r0, [r3]
b _0803F85E
.align 2, 0
_0803F840: .4byte gUnknown_086AF3CC
_0803F844: .4byte 0x000003E2
_0803F848:
movs r0, #0
strh r0, [r3]
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x22
bne _0803F85E
movs r0, #0x21
strh r0, [r4]
_0803F85E:
ldr r1, [r6]
ldr r2, _0803F8C8 @ =0x000003E2
adds r0, r1, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x21
bne _0803F890
ldr r4, _0803F8CC @ =0x000003EA
adds r1, r1, r4
ldrh r2, [r1]
movs r5, #0
ldrsh r0, [r1, r5]
ldr r3, _0803F8D0 @ =0xFFFFFD00
cmp r0, r3
ble _0803F890
adds r0, r2, #0
subs r0, #0x18
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r3
bge _0803F890
movs r0, #0xfd
lsls r0, r0, #8
strh r0, [r1]
_0803F890:
ldr r4, _0803F8D4 @ =gUnknown_020314E0
ldr r3, [r4]
ldr r7, _0803F8CC @ =0x000003EA
adds r0, r3, r7
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _0803F8D0 @ =0xFFFFFD00
cmp r1, r0
beq _0803F8A4
b _0803FA78
_0803F8A4:
ldr r5, _0803F8C8 @ =0x000003E2
adds r0, r3, r5
movs r2, #0
movs r1, #0
strh r1, [r0]
subs r7, #6
adds r0, r3, r7
strh r1, [r0]
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #0xc
_0803F8BC:
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0803F8D8 @ =0x000003E1
adds r0, r0, r1
strb r2, [r0]
b _0803FA78
.align 2, 0
_0803F8C8: .4byte 0x000003E2
_0803F8CC: .4byte 0x000003EA
_0803F8D0: .4byte 0xFFFFFD00
_0803F8D4: .4byte gUnknown_020314E0
_0803F8D8: .4byte 0x000003E1
_0803F8DC:
ldr r1, _0803F980 @ =0x040000D4
ldr r0, _0803F984 @ =gUnknown_084AA18C
str r0, [r1]
ldr r0, _0803F988 @ =0x06011620
str r0, [r1, #4]
ldr r0, _0803F98C @ =0x80000430
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r3, _0803F990 @ =gUnknown_020314E0
ldr r0, [r3]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
movs r4, #0
movs r1, #0xd
strb r1, [r0]
ldr r1, [r3]
movs r5, #0xfa
lsls r5, r5, #2
adds r2, r1, r5
ldr r0, _0803F994 @ =0x00000474
strh r0, [r2]
ldr r7, _0803F998 @ =0x000003EA
adds r2, r1, r7
ldr r0, _0803F99C @ =0x0000FB50
strh r0, [r2]
ldr r0, _0803F9A0 @ =0x00000506
adds r1, r1, r0
movs r0, #2
strb r0, [r1]
ldr r0, [r3]
ldr r2, _0803F9A4 @ =0x00000516
adds r1, r0, r2
strh r4, [r1]
ldr r5, _0803F9A8 @ =0x000005FA
adds r0, r0, r5
movs r2, #1
strb r2, [r0]
ldr r0, _0803F9AC @ =gMain
movs r1, #0x80
strb r1, [r0, #0xf]
ldr r7, _0803F9B0 @ =0x00000D08
adds r0, r0, r7
strh r2, [r0]
ldr r1, [r3]
movs r2, #0xf1
lsls r2, r2, #2
adds r0, r1, r2
strh r4, [r0]
ldr r3, _0803F9B4 @ =0x000003C6
adds r2, r1, r3
ldr r0, _0803F9B8 @ =0x0000EC78
strh r0, [r2]
movs r4, #0xf2
lsls r4, r4, #2
adds r2, r1, r4
movs r0, #0xaf
lsls r0, r0, #3
strh r0, [r2]
ldr r5, _0803F9BC @ =0x000003CA
adds r2, r1, r5
ldr r0, _0803F9C0 @ =0x0000F830
strh r0, [r2]
movs r7, #0x83
lsls r7, r7, #3
adds r2, r1, r7
ldr r0, _0803F9C4 @ =0x0000FF38
strh r0, [r2]
ldr r0, _0803F9C8 @ =0x0000041A
adds r2, r1, r0
subs r0, #0xfa
strh r0, [r2]
adds r3, #0x4e
adds r2, r1, r3
movs r0, #0x18
strh r0, [r2]
adds r4, #0x4e
adds r1, r1, r4
ldr r0, _0803F9CC @ =0x0000FFF0
strh r0, [r1]
b _0803FA78
.align 2, 0
_0803F980: .4byte 0x040000D4
_0803F984: .4byte gUnknown_084AA18C
_0803F988: .4byte 0x06011620
_0803F98C: .4byte 0x80000430
_0803F990: .4byte gUnknown_020314E0
_0803F994: .4byte 0x00000474
_0803F998: .4byte 0x000003EA
_0803F99C: .4byte 0x0000FB50
_0803F9A0: .4byte 0x00000506
_0803F9A4: .4byte 0x00000516
_0803F9A8: .4byte 0x000005FA
_0803F9AC: .4byte gMain
_0803F9B0: .4byte 0x00000D08
_0803F9B4: .4byte 0x000003C6
_0803F9B8: .4byte 0x0000EC78
_0803F9BC: .4byte 0x000003CA
_0803F9C0: .4byte 0x0000F830
_0803F9C4: .4byte 0x0000FF38
_0803F9C8: .4byte 0x0000041A
_0803F9CC: .4byte 0x0000FFF0
_0803F9D0:
ldr r3, _0803F9F0 @ =gUnknown_020314E0
ldr r2, [r3]
ldr r5, _0803F9F4 @ =0x00000516
adds r0, r2, r5
ldrh r0, [r0]
cmp r0, #0xff
bhi _0803FA18
movs r7, #0xf9
lsls r7, r7, #2
adds r1, r2, r7
ldrh r0, [r1]
cmp r0, #0x4f
bhi _0803F9F8
_0803F9EA:
adds r0, #1
strh r0, [r1]
b _0803FA78
.align 2, 0
_0803F9F0: .4byte gUnknown_020314E0
_0803F9F4: .4byte 0x00000516
_0803F9F8:
ldr r0, _0803FA10 @ =0x000003EA
adds r2, r2, r0
ldrh r3, [r2]
movs r4, #0
ldrsh r1, [r2, r4]
ldr r0, _0803FA14 @ =0x0000095F
cmp r1, r0
bgt _0803FA78
adds r0, r3, #0
adds r0, #0x50
b _0803FA76
.align 2, 0
_0803FA10: .4byte 0x000003EA
_0803FA14: .4byte 0x0000095F
_0803FA18:
movs r1, #0
movs r0, #2
strb r0, [r2, #0x13]
ldr r0, [r3]
strh r1, [r0, #0x18]
movs r5, #0xf7
lsls r5, r5, #2
adds r0, r0, r5
movs r1, #0xf
strb r1, [r0]
b _0803FA78
_0803FA2E:
ldr r0, _0803FAC0 @ =gUnknown_020314E0
ldr r5, [r0]
movs r7, #0xe3
lsls r7, r7, #2
adds r1, r5, r7
movs r0, #1
strh r0, [r1]
ldr r0, _0803FAC4 @ =0x0000038E
adds r4, r5, r0
ldrh r6, [r4]
movs r1, #0
ldrsh r0, [r4, r1]
ldr r1, _0803FAC8 @ =0xFFFFFE0C
cmp r0, r1
ble _0803FA78
subs r0, r1, r0
movs r1, #0x1e
bl __divsi3
adds r0, r6, r0
strh r0, [r4]
movs r3, #0
ldrsh r0, [r4, r3]
movs r1, #0xa
bl __divsi3
adds r2, r5, #0
adds r2, #0xe6
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x26
rsbs r1, r1, #0
cmp r0, r1
bge _0803FA78
ldr r0, _0803FACC @ =0x0000FFDA
_0803FA76:
strh r0, [r2]
_0803FA78:
ldr r5, _0803FAC0 @ =gUnknown_020314E0
ldr r0, [r5]
movs r4, #0xe4
lsls r4, r4, #2
adds r1, r0, r4
ldrh r0, [r1]
cmp r0, #0
beq _0803FAB8
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x14
bne _0803FAA2
ldr r0, _0803FAD0 @ =gUnknown_086A3700
ldr r7, _0803FAD4 @ =0x000012A8
adds r0, r0, r7
ldrh r0, [r0]
movs r1, #0
bl sub_528DC
_0803FAA2:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _0803FAB8
ldr r0, _0803FAD8 @ =gMPlayInfo_BGM
ldr r1, _0803FADC @ =0x0000FFFF
movs r2, #0x80
lsls r2, r2, #1
bl m4aMPlayVolumeControl
_0803FAB8:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0803FAC0: .4byte gUnknown_020314E0
_0803FAC4: .4byte 0x0000038E
_0803FAC8: .4byte 0xFFFFFE0C
_0803FACC: .4byte 0x0000FFDA
_0803FAD0: .4byte gUnknown_086A3700
_0803FAD4: .4byte 0x000012A8
_0803FAD8: .4byte gMPlayInfo_BGM
_0803FADC: .4byte 0x0000FFFF
thumb_func_start sub_3FAE0
sub_3FAE0: @ 0x0803FAE0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r0, #0
mov sl, r0
movs r1, #0
str r1, [sp]
ldr r7, _0803FB74 @ =gUnknown_0200D2A0
ldrh r0, [r7]
movs r2, #0xb8
rsbs r2, r2, #0
adds r2, r2, r7
mov sb, r2
cmp r0, #0
beq _0803FBC4
ldr r4, _0803FB78 @ =gUnknown_020314E0
ldr r0, [r4]
movs r3, #0xfa
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r7, #2]
ldr r0, [r4]
ldr r2, _0803FB7C @ =0x000003EA
adds r0, r0, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
strh r0, [r7, #4]
movs r2, #0
ldr r4, _0803FB80 @ =gOamBuffer
ldr r0, _0803FB84 @ =0xFFFFFE00
mov r8, r0
_0803FB34:
lsls r1, r2, #0x10
asrs r0, r1, #0xd
adds r0, #8
adds r6, r7, r0
movs r0, #4
ldrsb r0, [r6, r0]
ldrh r2, [r7, #4]
adds r0, r0, r2
lsls r0, r0, #0x10
movs r3, #0xf0
lsls r3, r3, #0xe
adds r0, r0, r3
lsrs r0, r0, #0x10
adds r5, r1, #0
cmp r0, #0xf0
bls _0803FB88
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r4
ldrh r1, [r2, #2]
mov r0, r8
ands r0, r1
movs r1, #0xf0
orrs r0, r1
strh r0, [r2, #2]
ldrh r0, [r6]
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0xb4
strb r1, [r0]
b _0803FBB6
.align 2, 0
_0803FB74: .4byte gUnknown_0200D2A0
_0803FB78: .4byte gUnknown_020314E0
_0803FB7C: .4byte 0x000003EA
_0803FB80: .4byte gOamBuffer
_0803FB84: .4byte 0xFFFFFE00
_0803FB88:
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r4
movs r0, #2
ldrsh r1, [r6, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _0803FC40 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
_0803FBB6:
movs r3, #0x80
lsls r3, r3, #9
adds r0, r5, r3
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xd
ble _0803FB34
_0803FBC4:
mov r7, sb
ldrh r4, [r7]
mov sb, r4
cmp r4, #0
bne _0803FBD0
b _0803FCD4
_0803FBD0:
ldr r4, _0803FC44 @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
strh r0, [r7, #2]
ldr r0, [r4]
ldr r3, _0803FC48 @ =0x000003EA
adds r0, r0, r3
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r7, #4]
movs r2, #0
ldr r4, _0803FC4C @ =gOamBuffer
ldr r3, _0803FC50 @ =0xFFFFFE00
mov r8, r3
_0803FC00:
lsls r1, r2, #0x10
asrs r0, r1, #0xd
adds r0, #8
adds r6, r7, r0
movs r0, #4
ldrsb r0, [r6, r0]
ldrh r2, [r7, #4]
adds r0, r0, r2
lsls r0, r0, #0x10
movs r3, #0xf0
lsls r3, r3, #0xe
adds r0, r0, r3
lsrs r0, r0, #0x10
adds r5, r1, #0
cmp r0, #0xf0
bls _0803FC54
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r4
ldrh r1, [r2, #2]
mov r0, r8
ands r0, r1
movs r1, #0xf0
orrs r0, r1
strh r0, [r2, #2]
ldrh r0, [r6]
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0xb4
strb r1, [r0]
b _0803FC82
.align 2, 0
_0803FC40: .4byte 0x000001FF
_0803FC44: .4byte gUnknown_020314E0
_0803FC48: .4byte 0x000003EA
_0803FC4C: .4byte gOamBuffer
_0803FC50: .4byte 0xFFFFFE00
_0803FC54:
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r4
movs r0, #2
ldrsh r1, [r6, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _0803FCB8 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
_0803FC82:
movs r3, #0x80
lsls r3, r3, #9
adds r0, r5, r3
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xd
ble _0803FC00
ldr r4, _0803FCBC @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _0803FCC0 @ =0x00000516
adds r0, r0, r1
ldrh r1, [r0]
ldr r0, _0803FCC4 @ =0x0000029F
cmp r1, r0
beq _0803FCA2
b _0804024A
_0803FCA2:
movs r0, #0
strh r0, [r7]
ldr r0, _0803FCC8 @ =gMain
ldr r2, _0803FCCC @ =0x00002070
adds r1, r0, r2
movs r2, #1
strh r2, [r1]
ldr r3, _0803FCD0 @ =0x00002350
adds r0, r0, r3
strh r2, [r0]
b _0804024A
.align 2, 0
_0803FCB8: .4byte 0x000001FF
_0803FCBC: .4byte gUnknown_020314E0
_0803FCC0: .4byte 0x00000516
_0803FCC4: .4byte 0x0000029F
_0803FCC8: .4byte gMain
_0803FCCC: .4byte 0x00002070
_0803FCD0: .4byte 0x00002350
_0803FCD4:
subs r7, #0xb8
ldrh r0, [r7]
cmp r0, #0
bne _0803FCDE
b _0803FF98
_0803FCDE:
ldr r5, _0803FD84 @ =gUnknown_020314E0
ldr r4, [r5]
movs r0, #0xfa
lsls r0, r0, #2
mov r8, r0
adds r0, r4, r0
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
subs r1, #0x58
subs r0, r0, r1
strh r0, [r7, #2]
ldr r4, [r5]
ldr r6, _0803FD88 @ =0x000003EA
adds r0, r4, r6
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x4e
subs r0, r0, r1
strh r0, [r7, #4]
ldr r4, [r5]
add r8, r4
mov r3, r8
movs r1, #0
ldrsh r0, [r3, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x74
movs r2, #0xa2
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
adds r6, r4, r6
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x3c
ldr r2, _0803FD8C @ =0x0000028A
adds r1, r4, r2
strh r0, [r1]
ldr r3, _0803FD90 @ =0x0000051A
adds r0, r4, r3
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x5b
ble _0803FD98
mov r2, r8
movs r3, #0
ldrsh r0, [r2, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xac
movs r2, #0xfc
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, #0xb8
ldr r2, _0803FD94 @ =0x000003F2
adds r1, r4, r2
b _0803FDA8
.align 2, 0
_0803FD84: .4byte gUnknown_020314E0
_0803FD88: .4byte 0x000003EA
_0803FD8C: .4byte 0x0000028A
_0803FD90: .4byte 0x0000051A
_0803FD94: .4byte 0x000003F2
_0803FD98:
movs r3, #0xfc
lsls r3, r3, #2
adds r0, r4, r3
mov r1, sb
strh r1, [r0]
ldr r2, _0803FE1C @ =0x000003F2
adds r1, r4, r2
ldr r0, _0803FE20 @ =0x0000FF60
_0803FDA8:
strh r0, [r1]
movs r3, #4
ldrsh r1, [r7, r3]
movs r0, #0x46
rsbs r0, r0, #0
cmp r1, r0
bge _0803FDBA
ldr r0, _0803FE24 @ =0x0000FFBA
strh r0, [r7, #4]
_0803FDBA:
movs r4, #4
ldrsh r0, [r7, r4]
cmp r0, #0xb4
ble _0803FDC6
movs r0, #0xb4
strh r0, [r7, #4]
_0803FDC6:
ldr r2, _0803FE28 @ =gUnknown_086AF3CC
ldr r0, _0803FE2C @ =gUnknown_020314E0
ldr r3, [r0]
ldr r1, _0803FE30 @ =0x000003E2
adds r0, r3, r1
movs r4, #0
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r1, [r0]
ldr r4, _0803FE34 @ =0x00000389
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r2
cmp r0, #9
ble _0803FE40
movs r0, #0xb
str r0, [sp]
ldr r3, _0803FE38 @ =gOamBuffer
ldrh r2, [r7, #8]
lsls r2, r2, #3
adds r2, r2, r3
ldrh r1, [r2, #2]
ldr r0, _0803FE3C @ =0xFFFFFE00
ands r0, r1
movs r1, #0xf0
orrs r0, r1
strh r0, [r2, #2]
ldrh r0, [r7, #8]
lsls r0, r0, #3
adds r0, r0, r3
movs r1, #0xb4
strb r1, [r0]
ldrh r1, [r7, #8]
lsls r1, r1, #3
adds r1, r1, r3
movs r3, #0xb0
b _0803FF24
.align 2, 0
_0803FE1C: .4byte 0x000003F2
_0803FE20: .4byte 0x0000FF60
_0803FE24: .4byte 0x0000FFBA
_0803FE28: .4byte gUnknown_086AF3CC
_0803FE2C: .4byte gUnknown_020314E0
_0803FE30: .4byte 0x000003E2
_0803FE34: .4byte 0x00000389
_0803FE38: .4byte gOamBuffer
_0803FE3C: .4byte 0xFFFFFE00
_0803FE40:
cmp r0, #1
bne _0803FE4C
movs r2, #2
mov sl, r2
movs r3, #0xe
b _0803FE6C
_0803FE4C:
cmp r0, #3
bne _0803FE5A
movs r4, #2
mov sl, r4
movs r0, #0xb
str r0, [sp]
b _0803FE6E
_0803FE5A:
ldr r2, _0803FF30 @ =0x000003DF
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
movs r3, #0xf
_0803FE6C:
str r3, [sp]
_0803FE6E:
ldr r4, _0803FF34 @ =gUnknown_020314E0
ldr r0, [r4]
movs r2, #0xb5
lsls r2, r2, #3
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x15
bne _0803FE86
movs r3, #8
mov sl, r3
_0803FE86:
cmp r0, #0x16
bne _0803FE8E
movs r4, #9
mov sl, r4
_0803FE8E:
ldrh r2, [r7, #8]
lsls r2, r2, #3
ldr r6, _0803FF38 @ =gOamBuffer
adds r2, r2, r6
lsls r0, r1, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #1
ldr r0, _0803FF3C @ =gUnknown_086B612E
adds r1, r1, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldrh r0, [r7, #8]
lsls r0, r0, #3
adds r0, r0, r6
ldr r1, _0803FF34 @ =gUnknown_020314E0
ldr r5, [r1]
movs r4, #0
ldrsb r4, [r0, r4]
adds r4, #0x4e
ldr r2, _0803FF40 @ =0x000003EA
adds r0, r5, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
ldr r0, _0803FF44 @ =0x0000051A
adds r5, r5, r0
strh r4, [r5]
ldrh r2, [r7, #8]
lsls r2, r2, #3
adds r2, r2, r6
ldrh r3, [r2, #2]
lsls r1, r3, #0x17
lsrs r1, r1, #0x17
movs r4, #2
ldrsh r0, [r7, r4]
adds r1, r1, r0
ldr r4, _0803FF48 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldr r0, _0803FF4C @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7, #8]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldr r3, _0803FF34 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _0803FF50 @ =0x00000389
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _0803FF54
ldrh r1, [r7, #8]
lsls r1, r1, #3
adds r1, r1, r6
ldr r0, [sp]
lsls r3, r0, #4
_0803FF24:
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r3
strb r0, [r1, #5]
b _0803FF60
.align 2, 0
_0803FF30: .4byte 0x000003DF
_0803FF34: .4byte gUnknown_020314E0
_0803FF38: .4byte gOamBuffer
_0803FF3C: .4byte gUnknown_086B612E
_0803FF40: .4byte 0x000003EA
_0803FF44: .4byte 0x0000051A
_0803FF48: .4byte 0x000001FF
_0803FF4C: .4byte 0xFFFFFE00
_0803FF50: .4byte 0x00000389
_0803FF54:
ldrh r0, [r7, #8]
lsls r0, r0, #3
adds r0, r0, r6
ldrb r0, [r0, #5]
lsrs r0, r0, #4
str r0, [sp]
_0803FF60:
ldr r1, _0803FFB8 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r3, _0803FFBC @ =0x000003E2
adds r0, r2, r3
movs r4, #0
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
mov r1, r8
adds r1, #4
adds r0, r0, r1
ldrh r0, [r0]
ldr r1, _0803FFC0 @ =0x000003DF
adds r2, r2, r1
strb r0, [r2]
ldr r2, _0803FFC4 @ =0x040000D4
mov r3, sl
lsls r0, r3, #0x10
asrs r0, r0, #5
ldr r1, _0803FFC8 @ =gUnknown_084AA9EC
adds r0, r0, r1
str r0, [r2]
ldr r0, _0803FFCC @ =0x06011620
str r0, [r2, #4]
ldr r0, _0803FFD0 @ =0x80000400
str r0, [r2, #8]
ldr r0, [r2, #8]
_0803FF98:
ldr r7, _0803FFD4 @ =gUnknown_0200C2D0
ldrh r0, [r7]
cmp r0, #0
bne _0803FFA2
b _080400C0
_0803FFA2:
mov r4, sl
lsls r0, r4, #0x10
asrs r5, r0, #0x10
cmp r5, #7
ble _0803FFD8
movs r0, #0
strh r0, [r7, #2]
strh r0, [r7, #4]
mov sl, r0
b _0804002E
.align 2, 0
_0803FFB8: .4byte gUnknown_020314E0
_0803FFBC: .4byte 0x000003E2
_0803FFC0: .4byte 0x000003DF
_0803FFC4: .4byte 0x040000D4
_0803FFC8: .4byte gUnknown_084AA9EC
_0803FFCC: .4byte 0x06011620
_0803FFD0: .4byte 0x80000400
_0803FFD4: .4byte gUnknown_0200C2D0
_0803FFD8:
cmp r5, #5
ble _08040028
ldr r0, _08040020 @ =gUnknown_020314E0
ldr r4, [r0]
movs r1, #0xfa
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r1, #0x58
subs r0, r0, r1
strh r0, [r7, #2]
ldr r3, _08040024 @ =0x000003EA
adds r0, r4, r3
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
adds r0, #0x60
strh r0, [r7, #4]
subs r0, r5, #6
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
b _0804002E
.align 2, 0
_08040020: .4byte gUnknown_020314E0
_08040024: .4byte 0x000003EA
_08040028:
movs r0, #0
strh r0, [r7, #2]
strh r0, [r7, #4]
_0804002E:
movs r2, #0
ldr r3, [sp]
lsls r3, r3, #4
mov sb, r3
mov r4, sl
lsls r1, r4, #0x10
ldr r0, _080400F0 @ =gOamBuffer
mov r8, r0
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov ip, r0
ldr r1, _080400F4 @ =0xFFFFFC00
mov sl, r1
_0804004C:
lsls r5, r2, #0x10
asrs r5, r5, #0x10
lsls r4, r5, #3
adds r0, r4, #0
adds r0, #8
adds r6, r7, r0
ldrh r3, [r6]
lsls r3, r3, #3
add r3, r8
movs r2, #2
ldrsh r1, [r6, r2]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _080400F8 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _080400FC @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r7, #4]
ldrb r3, [r6, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, r8
add r4, ip
ldr r0, _08040100 @ =0x00000109
adds r4, r4, r0
ldr r1, _08040104 @ =0x000003FF
adds r0, r1, #0
ands r4, r0
ldrh r1, [r2, #4]
mov r0, sl
ands r0, r1
orrs r0, r4
strh r0, [r2, #4]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, r8
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
mov r2, sb
orrs r0, r2
strb r0, [r1, #5]
adds r5, #1
lsls r5, r5, #0x10
lsrs r2, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #1
ble _0804004C
_080400C0:
ldr r7, _08040108 @ =gUnknown_0200D410
ldrh r0, [r7]
cmp r0, #0
bne _080400CA
b _0804024A
_080400CA:
ldr r4, _0804010C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r3, _08040110 @ =0x0000051A
adds r0, r0, r3
movs r1, #0
ldrsh r0, [r0, r1]
subs r0, #0x46
movs r1, #3
bl __divsi3
adds r0, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _08040114
movs r1, #0
b _0804011A
.align 2, 0
_080400F0: .4byte gOamBuffer
_080400F4: .4byte 0xFFFFFC00
_080400F8: .4byte 0x000001FF
_080400FC: .4byte 0xFFFFFE00
_08040100: .4byte 0x00000109
_08040104: .4byte 0x000003FF
_08040108: .4byte gUnknown_0200D410
_0804010C: .4byte gUnknown_020314E0
_08040110: .4byte 0x0000051A
_08040114:
cmp r0, #9
ble _0804011A
movs r1, #9
_0804011A:
ldr r3, _08040154 @ =gUnknown_020314E0
ldr r2, [r3]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r6, r1, #0x10
cmp r0, #0xe
beq _08040180
ldr r0, _08040158 @ =0x0000050A
adds r3, r2, r0
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0
ble _08040160
ldr r1, _0804015C @ =gMain
ldrh r0, [r1, #0x38]
movs r0, #0x9e
strh r0, [r1, #0x38]
ldrh r0, [r3]
ldrh r2, [r1, #0x3c]
strh r0, [r1, #0x3c]
ldrh r0, [r3]
subs r0, #1
strh r0, [r3]
b _08040180
.align 2, 0
_08040154: .4byte gUnknown_020314E0
_08040158: .4byte 0x0000050A
_0804015C: .4byte gMain
_08040160:
ldr r2, _0804025C @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne _08040180
ldrh r0, [r2, #0x38]
ldr r0, _08040260 @ =0x00001E10
strh r0, [r2, #0x38]
movs r0, #0x10
asrs r1, r6, #0x10
subs r0, r0, r1
lsls r0, r0, #8
orrs r0, r1
ldrh r1, [r2, #0x3a]
strh r0, [r2, #0x3a]
_08040180:
ldr r5, _08040264 @ =gUnknown_020314E0
ldr r4, [r5]
movs r2, #0xfa
lsls r2, r2, #2
adds r0, r4, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r1, #0x58
subs r0, r0, r1
movs r1, #0
mov r8, r1
strh r0, [r7, #2]
ldr r2, _08040268 @ =0x000003EA
adds r0, r4, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x4e
subs r0, r0, r1
asrs r1, r6, #0x10
adds r1, #0x24
adds r0, r0, r1
strh r0, [r7, #4]
adds r6, r7, #0
adds r6, #8
ldr r4, _0804026C @ =gOamBuffer
ldrh r2, [r7, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #2
ldrsh r1, [r6, r0]
movs r3, #2
ldrsh r0, [r7, r3]
adds r1, r1, r0
ldr r3, _08040270 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08040274 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
ldr r0, [r5]
movs r4, #0xf7
lsls r4, r4, #2
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bne _08040226
ldr r1, _0804025C @ =gMain
ldr r0, _08040278 @ =0x000021E0
adds r2, r1, r0
movs r0, #1
strh r0, [r2]
ldr r2, _0804027C @ =0x00002070
adds r0, r1, r2
mov r3, r8
strh r3, [r0]
ldr r4, _08040280 @ =0x00002350
adds r0, r1, r4
strh r3, [r0]
ldr r0, _08040284 @ =0x00001210
adds r1, r1, r0
strh r3, [r1]
_08040226:
ldr r1, _08040264 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xb5
lsls r2, r2, #3
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x15
bne _0804024A
ldr r0, _0804025C @ =gMain
ldr r3, _08040280 @ =0x00002350
adds r1, r0, r3
mov r4, r8
strh r4, [r1]
ldr r1, _08040284 @ =0x00001210
adds r0, r0, r1
strh r4, [r0]
_0804024A:
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
_0804025C: .4byte gMain
_08040260: .4byte 0x00001E10
_08040264: .4byte gUnknown_020314E0
_08040268: .4byte 0x000003EA
_0804026C: .4byte gOamBuffer
_08040270: .4byte 0x000001FF
_08040274: .4byte 0xFFFFFE00
_08040278: .4byte 0x000021E0
_0804027C: .4byte 0x00002070
_08040280: .4byte 0x00002350
_08040284: .4byte 0x00001210
thumb_func_start sub_40288
sub_40288: @ 0x08040288
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x44
movs r0, #0
str r0, [sp, #8]
movs r1, #0
str r1, [sp, #4]
movs r7, #0
movs r2, #0
str r2, [sp]
ldr r3, _080402CC @ =gUnknown_0200BAE8
str r3, [sp, #0x10]
ldrh r0, [r3]
cmp r0, #0
bne _080402AE
b _08040444
_080402AE:
ldr r0, _080402D0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r4, _080402D4 @ =0x000006C4
adds r1, r1, r4
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
cmp r1, #3
bne _080402D8
movs r0, #0xf0
strh r0, [r3, #2]
movs r0, #0xb4
strh r0, [r3, #4]
b _080402E2
.align 2, 0
_080402CC: .4byte gUnknown_0200BAE8
_080402D0: .4byte gUnknown_020314E0
_080402D4: .4byte 0x000006C4
_080402D8:
movs r0, #0x60
ldr r5, [sp, #0x10]
strh r0, [r5, #2]
movs r0, #0x37
strh r0, [r5, #4]
_080402E2:
ldr r0, _08040468 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, [sp, #0x10]
ldrh r2, [r3, #2]
ldr r4, _0804046C @ =0x000006E4
adds r0, r1, r4
strh r2, [r0]
ldrh r0, [r3, #4]
ldr r5, _08040470 @ =0x000006E6
adds r1, r1, r5
strh r0, [r1]
movs r1, #4
ldrsh r0, [r3, r1]
cmp r0, #0xc7
ble _08040304
movs r0, #0xc8
strh r0, [r3, #4]
_08040304:
movs r2, #0
ldr r3, _08040474 @ =gUnknown_0200BA30
mov ip, r3
ldr r5, _08040478 @ =gOamBuffer
movs r4, #3
mov sb, r4
movs r0, #0xd
rsbs r0, r0, #0
mov sl, r0
ldr r1, _0804047C @ =0xFFFFFE00
mov r8, r1
_0804031A:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r2, [sp, #0x10]
adds r6, r2, r0
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0xd0
orrs r0, r1
strb r0, [r2, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
ldr r1, _08040468 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08040480 @ =0x000006DB
adds r0, r0, r2
ldrb r1, [r0]
mov r0, sb
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r3, #5]
mov r0, sl
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r2, #2
ldrsh r1, [r6, r2]
str r1, [sp, #0x3c]
ldr r1, [sp, #0x10]
movs r2, #2
ldrsh r0, [r1, r2]
ldr r2, [sp, #0x3c]
adds r1, r2, r0
ldr r2, _08040484 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r3, [sp, #0x10]
ldrb r0, [r3, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _0804031A
mov r4, ip
str r4, [sp, #0x10]
ldr r5, _08040468 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r1, _0804046C @ =0x000006E4
adds r0, r0, r1
ldrh r0, [r0]
subs r0, #8
strh r0, [r4, #2]
ldr r0, [r5]
ldr r2, _08040470 @ =0x000006E6
adds r0, r0, r2
ldrh r0, [r0]
subs r0, #8
strh r0, [r4, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _080403C4
movs r0, #0xc8
strh r0, [r4, #4]
_080403C4:
movs r2, #0
ldr r5, _08040478 @ =gOamBuffer
movs r3, #3
mov sb, r3
movs r4, #0xd
rsbs r4, r4, #0
mov sl, r4
ldr r0, _0804047C @ =0xFFFFFE00
mov r8, r0
_080403D6:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r1, [sp, #0x10]
adds r6, r1, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
ldr r2, _08040468 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08040480 @ =0x000006DB
adds r0, r0, r1
ldrb r1, [r0]
mov r2, sb
ands r1, r2
lsls r1, r1, #2
ldrb r2, [r3, #5]
mov r0, sl
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r1, #2
ldrsh r0, [r6, r1]
mov ip, r0
ldr r2, [sp, #0x10]
movs r1, #2
ldrsh r0, [r2, r1]
mov r2, ip
adds r1, r2, r0
ldr r2, _08040484 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r3, [sp, #0x10]
ldrb r0, [r3, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _080403D6
_08040444:
bl sub_41580
ldr r0, _08040468 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r4, _08040488 @ =0x00000507
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bls _0804045C
b _08040802
_0804045C:
lsls r0, r0, #2
ldr r1, _0804048C @ =_08040490
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08040468: .4byte gUnknown_020314E0
_0804046C: .4byte 0x000006E4
_08040470: .4byte 0x000006E6
_08040474: .4byte gUnknown_0200BA30
_08040478: .4byte gOamBuffer
_0804047C: .4byte 0xFFFFFE00
_08040480: .4byte 0x000006DB
_08040484: .4byte 0x000001FF
_08040488: .4byte 0x00000507
_0804048C: .4byte _08040490
_08040490: @ jump table
.4byte _080404A4 @ case 0
.4byte _080404C4 @ case 1
.4byte _080405E8 @ case 2
.4byte _080406C0 @ case 3
.4byte _080407EC @ case 4
_080404A4:
ldr r0, _080404C0 @ =gUnknown_020314E0
ldr r0, [r0]
movs r5, #0xa2
lsls r5, r5, #3
adds r0, r0, r5
movs r1, #0
strh r1, [r0]
movs r7, #7
movs r0, #0xc
str r0, [sp, #4]
movs r1, #5
str r1, [sp, #8]
b _08040802
.align 2, 0
_080404C0: .4byte gUnknown_020314E0
_080404C4:
ldr r5, _08040548 @ =gUnknown_020314E0
ldr r0, [r5]
movs r4, #0xa2
lsls r4, r4, #3
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _080404DC
movs r0, #0x94
lsls r0, r0, #1
bl m4aSongNumStart
_080404DC:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #8
bne _080404EE
movs r0, #0x94
lsls r0, r0, #1
bl m4aSongNumStop
_080404EE:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x18
bne _08040500
movs r0, #0x94
lsls r0, r0, #1
bl m4aSongNumStart
_08040500:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x24
bne _08040512
movs r0, #0x94
lsls r0, r0, #1
bl m4aSongNumStop
_08040512:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x32
bne _08040524
movs r0, #0x94
lsls r0, r0, #1
bl m4aSongNumStart
_08040524:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x38
bne _08040536
movs r0, #0x94
lsls r0, r0, #1
bl m4aSongNumStop
_08040536:
ldr r0, [r5]
adds r0, r0, r4
ldrh r1, [r0]
cmp r1, #0xd
bhi _0804054C
adds r0, r1, #0
lsrs r7, r0, #1
b _0804056E
.align 2, 0
_08040548: .4byte gUnknown_020314E0
_0804054C:
cmp r1, #0x29
bls _0804055E
cmp r1, #0x37
bhi _0804055A
ldrh r0, [r0]
subs r0, #0x2a
b _08040566
_0804055A:
cmp r1, #0x3c
bhi _08040562
_0804055E:
movs r7, #7
b _0804056E
_08040562:
ldrh r0, [r0]
subs r0, #0x3d
_08040566:
lsrs r1, r0, #0x1f
adds r0, r0, r1
lsls r0, r0, #0xf
lsrs r7, r0, #0x10
_0804056E:
ldr r0, _08040588 @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xa2
lsls r2, r2, #3
adds r0, r0, r2
ldrh r1, [r0]
cmp r1, #7
bhi _0804058C
adds r0, r1, #0
lsrs r0, r0, #1
str r0, [sp, #4]
b _080405B2
.align 2, 0
_08040588: .4byte gUnknown_020314E0
_0804058C:
cmp r1, #0x2f
bhi _08040596
movs r3, #0xc
str r3, [sp, #4]
b _080405B2
_08040596:
cmp r1, #0x3f
bhi _080405AE
ldrh r0, [r0]
subs r0, #0x30
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r0, #4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
b _080405B2
_080405AE:
movs r4, #0xc
str r4, [sp, #4]
_080405B2:
movs r5, #5
str r5, [sp, #8]
ldr r0, _080405E0 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0xa2
lsls r0, r0, #3
adds r2, r1, r0
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x4b
beq _080405D0
b _08040802
_080405D0:
movs r0, #0
strh r0, [r2]
ldr r2, _080405E4 @ =0x00000507
adds r1, r1, r2
movs r0, #2
strb r0, [r1]
b _08040802
.align 2, 0
_080405E0: .4byte gUnknown_020314E0
_080405E4: .4byte 0x00000507
_080405E8:
movs r7, #7
movs r3, #0xc
str r3, [sp, #4]
movs r4, #5
str r4, [sp, #8]
ldr r5, _0804065C @ =gUnknown_020314E0
ldr r3, [r5]
movs r0, #0xa2
lsls r0, r0, #3
adds r1, r3, r0
ldrh r0, [r1]
cmp r0, #0x21
bhi _080406A4
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1c
beq _08040610
b _08040802
_08040610:
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08040670
bl Random
ldr r4, [r5]
movs r1, #0xa0
bl __umodsi3
movs r1, #0xc8
subs r1, r1, r0
ldr r2, _08040660 @ =0x0000051C
adds r4, r4, r2
strh r1, [r4]
bl Random
ldr r5, [r5]
ldr r3, _08040664 @ =0x0000132C
adds r1, r5, r3
ldr r1, [r1]
ldr r2, _08040668 @ =0xFFFFFEA5
adds r4, r2, #0
ldrh r1, [r1, #0x12]
adds r4, r4, r1
movs r1, #0x50
bl __umodsi3
subs r4, r4, r0
ldr r3, _0804066C @ =0x0000051E
adds r5, r5, r3
strh r4, [r5]
b _08040802
.align 2, 0
_0804065C: .4byte gUnknown_020314E0
_08040660: .4byte 0x0000051C
_08040664: .4byte 0x0000132C
_08040668: .4byte 0xFFFFFEA5
_0804066C: .4byte 0x0000051E
_08040670:
ldr r4, _08040694 @ =0x0000132C
adds r2, r3, r4
ldr r0, [r2]
ldrh r0, [r0, #0x10]
subs r0, #0xd
ldr r5, _08040698 @ =0x0000051C
adds r1, r3, r5
strh r0, [r1]
ldr r1, [r2]
ldr r2, _0804069C @ =0xFFFFFEA5
adds r0, r2, #0
ldrh r1, [r1, #0x12]
adds r0, r0, r1
ldr r4, _080406A0 @ =0x0000051E
adds r1, r3, r4
strh r0, [r1]
b _08040802
.align 2, 0
_08040694: .4byte 0x0000132C
_08040698: .4byte 0x0000051C
_0804069C: .4byte 0xFFFFFEA5
_080406A0: .4byte 0x0000051E
_080406A4:
movs r0, #0
strh r0, [r1]
ldr r5, _080406B8 @ =0x00000507
adds r1, r3, r5
movs r0, #3
strb r0, [r1]
ldr r0, _080406BC @ =0x00000129
bl m4aSongNumStart
b _08040802
.align 2, 0
_080406B8: .4byte 0x00000507
_080406BC: .4byte 0x00000129
_080406C0:
movs r7, #7
movs r0, #0xc
str r0, [sp, #4]
ldr r4, _080406DC @ =gUnknown_020314E0
ldr r3, [r4]
movs r1, #0xa2
lsls r1, r1, #3
adds r0, r3, r1
ldrh r1, [r0]
cmp r1, #1
bhi _080406E0
adds r0, r1, #0
str r0, [sp, #8]
b _080407D0
.align 2, 0
_080406DC: .4byte gUnknown_020314E0
_080406E0:
cmp r1, #9
bhi _080407C4
ldrh r0, [r0]
subs r0, #2
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r0, #2
lsls r0, r0, #0x10
movs r2, #0xa1
lsls r2, r2, #3
adds r1, r3, r2
mov r5, sp
ldrh r5, [r5, #4]
strh r5, [r1]
lsrs r1, r0, #0x10
str r1, [sp, #8]
asrs r0, r0, #0x10
cmp r0, #2
bne _080407D0
ldr r2, _080407A0 @ =0x0000132C
adds r0, r3, r2
ldr r2, [r0]
movs r5, #0x10
ldrsh r0, [r2, r5]
subs r0, #0xd
ldr r5, _080407A4 @ =0x0000051C
adds r1, r3, r5
movs r5, #0
ldrsh r1, [r1, r5]
subs r1, r0, r1
str r1, [sp, #0x1c]
movs r1, #0x12
ldrsh r0, [r2, r1]
ldr r2, _080407A8 @ =0xFFFFFEA5
adds r0, r0, r2
ldr r5, _080407AC @ =0x0000051E
adds r1, r3, r5
movs r2, #0
ldrsh r1, [r1, r2]
subs r1, r0, r1
str r1, [sp, #0x20]
ldr r3, [sp, #0x1c]
adds r1, r3, #0
muls r1, r3, r1
ldr r5, [sp, #0x20]
adds r0, r5, #0
muls r0, r5, r0
adds r5, r1, r0
movs r0, #8
bl sub_11B0
ldr r2, [r4]
ldr r1, _080407B0 @ =0x00000441
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _080407D0
ldr r3, _080407B4 @ =0x00000442
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _080407D0
movs r4, #0xe2
lsls r4, r4, #2
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080407D0
cmp r5, #0xc7
bgt _080407D0
ldr r0, _080407B8 @ =gMain
ldr r5, _080407BC @ =0x00001CD8
adds r0, r0, r5
movs r1, #1
strh r1, [r0]
ldr r0, _080407C0 @ =0x00000486
adds r1, r2, r0
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
movs r0, #0x95
lsls r0, r0, #1
bl m4aSongNumStart
movs r0, #9
bl sub_11B0
b _080407D0
.align 2, 0
_080407A0: .4byte 0x0000132C
_080407A4: .4byte 0x0000051C
_080407A8: .4byte 0xFFFFFEA5
_080407AC: .4byte 0x0000051E
_080407B0: .4byte 0x00000441
_080407B4: .4byte 0x00000442
_080407B8: .4byte gMain
_080407BC: .4byte 0x00001CD8
_080407C0: .4byte 0x00000486
_080407C4:
movs r1, #5
str r1, [sp, #8]
ldr r2, _080407E4 @ =0x00000507
adds r1, r3, r2
movs r0, #4
strb r0, [r1]
_080407D0:
ldr r0, _080407E8 @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0xa2
lsls r3, r3, #3
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _08040802
.align 2, 0
_080407E4: .4byte 0x00000507
_080407E8: .4byte gUnknown_020314E0
_080407EC:
ldr r0, _08040A88 @ =gUnknown_020314E0
ldr r1, [r0]
movs r4, #0xa2
lsls r4, r4, #3
adds r2, r1, r4
movs r3, #0
movs r0, #0
strh r0, [r2]
ldr r5, _08040A8C @ =0x00000507
adds r1, r1, r5
strb r3, [r1]
_08040802:
ldr r0, _08040A90 @ =gUnknown_0200BFF0
str r0, [sp, #0x10]
ldrh r0, [r0]
cmp r0, #0
beq _080408F0
ldr r1, _08040A88 @ =gUnknown_020314E0
ldr r4, [r1]
movs r2, #0xfa
lsls r2, r2, #2
adds r0, r4, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
subs r1, #0x58
subs r0, r0, r1
ldr r4, [sp, #0x10]
strh r0, [r4, #2]
ldr r5, _08040A88 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r1, _08040A94 @ =0x000003EA
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
adds r0, #0x60
ldr r3, [sp, #0x10]
strh r0, [r3, #4]
movs r2, #0
lsls r1, r7, #0x10
ldr r4, _08040A98 @ =gUnknown_086B609E
mov sl, r4
ldr r5, _08040A9C @ =gOamBuffer
mov ip, r5
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #1
mov r8, r0
ldr r7, _08040AA0 @ =0xFFFFFE00
mov sb, r7
_08040864:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r1, [sp, #0x10]
adds r6, r1, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r2, ip
adds r5, r0, r2
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sl
mov r4, r8
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r5]
adds r1, #2
adds r5, #2
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
ldr r5, [sp, #0x10]
movs r7, #2
ldrsh r0, [r5, r7]
adds r1, r1, r0
ldr r5, _08040AA4 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, ip
ldr r7, [sp, #0x10]
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _08040864
ldr r3, _08040A88 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _08040A8C @ =0x00000507
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _080408F0
ldr r0, _08040AA8 @ =gMain
movs r5, #0xf3
lsls r5, r5, #4
adds r0, r0, r5
movs r1, #0
strh r1, [r0]
_080408F0:
ldr r7, _08040AAC @ =gUnknown_0200C0A8
str r7, [sp, #0x10]
adds r1, r7, #0
ldrh r0, [r1]
cmp r0, #0
beq _080409DC
ldr r2, _08040A88 @ =gUnknown_020314E0
ldr r4, [r2]
movs r3, #0xfa
lsls r3, r3, #2
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
subs r1, #0x58
subs r0, r0, r1
strh r0, [r7, #2]
ldr r0, _08040A88 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r1, _08040A94 @ =0x000003EA
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
adds r0, #0x60
strh r0, [r7, #4]
movs r2, #0
ldr r3, [sp, #4]
lsls r1, r3, #0x10
ldr r4, _08040AB0 @ =gUnknown_086B5ECA
mov sl, r4
ldr r5, _08040A9C @ =gOamBuffer
mov ip, r5
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
mov r8, r0
ldr r7, _08040AA0 @ =0xFFFFFE00
mov sb, r7
_08040952:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r1, [sp, #0x10]
adds r6, r1, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r2, ip
adds r5, r0, r2
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sl
mov r4, r8
adds r1, r4, r0
ldrh r0, [r1]
strh r0, [r5]
adds r1, #2
adds r5, #2
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
ldr r5, [sp, #0x10]
movs r7, #2
ldrsh r0, [r5, r7]
adds r1, r1, r0
ldr r5, _08040AA4 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, ip
ldr r7, [sp, #0x10]
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #5
ble _08040952
ldr r3, _08040A88 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _08040A8C @ =0x00000507
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _080409DC
ldr r0, _08040AA8 @ =gMain
ldr r5, _08040AB4 @ =0x00000FE8
adds r0, r0, r5
movs r1, #0
strh r1, [r0]
_080409DC:
ldr r7, _08040AB8 @ =gUnknown_0200C160
str r7, [sp, #0x10]
adds r1, r7, #0
ldrh r0, [r1]
cmp r0, #0
bne _080409EA
b _08040B26
_080409EA:
ldr r2, _08040A88 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _08040ABC @ =0x0000051C
adds r0, r1, r3
adds r1, #0x58
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
adds r4, r7, #0
strh r0, [r4, #2]
ldr r1, [r2]
ldr r5, _08040AC0 @ =0x0000051E
adds r0, r1, r5
adds r1, #0x5a
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r4, #4]
movs r2, #0
ldr r7, _08040A9C @ =gOamBuffer
mov r8, r7
ldr r0, [sp, #8]
lsls r1, r0, #0x10
ldr r3, _08040AC4 @ =gUnknown_086B5DCE
mov sl, r3
mov ip, r8
asrs r1, r1, #0x10
movs r0, #0x2a
adds r4, r1, #0
muls r4, r0, r4
mov sb, r4
ldr r4, _08040AA0 @ =0xFFFFFE00
_08040A2A:
lsls r2, r2, #0x10
asrs r1, r2, #0x10
lsls r0, r1, #3
adds r0, #8
ldr r5, [sp, #0x10]
adds r6, r5, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r7, ip
adds r5, r0, r7
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
add r0, sl
mov r3, sb
adds r1, r3, r0
ldrh r0, [r1]
strh r0, [r5]
adds r1, #2
adds r5, #2
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r0, [r6]
lsls r0, r0, #3
adds r5, r0, r7
movs r1, #0
ldrsb r1, [r5, r1]
ldr r7, [sp, #0x10]
movs r3, #4
ldrsh r0, [r7, r3]
adds r1, r1, r0
ldr r0, _08040AC8 @ =0xFFFFFED4
str r2, [sp, #0x40]
cmp r1, r0
bge _08040ACC
ldrh r1, [r5, #2]
adds r0, r4, #0
ands r0, r1
strh r0, [r5, #2]
ldrh r0, [r6]
lsls r0, r0, #3
add r0, r8
movs r1, #0xb4
strb r1, [r0]
b _08040AF8
.align 2, 0
_08040A88: .4byte gUnknown_020314E0
_08040A8C: .4byte 0x00000507
_08040A90: .4byte gUnknown_0200BFF0
_08040A94: .4byte 0x000003EA
_08040A98: .4byte gUnknown_086B609E
_08040A9C: .4byte gOamBuffer
_08040AA0: .4byte 0xFFFFFE00
_08040AA4: .4byte 0x000001FF
_08040AA8: .4byte gMain
_08040AAC: .4byte gUnknown_0200C0A8
_08040AB0: .4byte gUnknown_086B5ECA
_08040AB4: .4byte 0x00000FE8
_08040AB8: .4byte gUnknown_0200C160
_08040ABC: .4byte 0x0000051C
_08040AC0: .4byte 0x0000051E
_08040AC4: .4byte gUnknown_086B5DCE
_08040AC8: .4byte 0xFFFFFED4
_08040ACC:
ldrh r2, [r5, #2]
lsls r1, r2, #0x17
lsrs r1, r1, #0x17
ldr r7, [sp, #0x10]
movs r3, #2
ldrsh r0, [r7, r3]
adds r1, r1, r0
ldr r7, _08040C70 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
adds r0, r4, #0
ands r0, r2
orrs r0, r1
strh r0, [r5, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, r8
ldr r2, [sp, #0x10]
ldrb r0, [r2, #4]
ldrb r3, [r1]
adds r0, r0, r3
strb r0, [r1]
_08040AF8:
ldr r5, [sp, #0x40]
movs r7, #0x80
lsls r7, r7, #9
adds r0, r5, r7
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #6
ble _08040A2A
ldr r1, _08040C74 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08040C78 @ =0x00000507
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _08040B26
ldr r0, _08040C7C @ =gMain
movs r3, #0x85
lsls r3, r3, #5
adds r0, r0, r3
movs r1, #0
strh r1, [r0]
_08040B26:
ldr r4, _08040C80 @ =gUnknown_0200C388
str r4, [sp, #0x10]
ldrh r0, [r4]
cmp r0, #0
beq _08040BBC
ldr r5, _08040C74 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r7, _08040C84 @ =0x00000524
adds r0, r4, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
adds r1, #0x78
subs r0, r0, r1
ldr r2, [sp, #0x10]
strh r0, [r2, #2]
ldr r4, [r5]
ldr r3, _08040C88 @ =0x00000526
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x80
subs r0, r0, r1
ldr r7, [sp, #0x10]
strh r0, [r7, #4]
movs r2, #0
ldr r5, _08040C8C @ =gOamBuffer
ldr r0, _08040C90 @ =0xFFFFFE00
mov r8, r0
_08040B72:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r1, [sp, #0x10]
adds r6, r1, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r2, #2
ldrsh r1, [r6, r2]
ldr r7, [sp, #0x10]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r7, _08040C70 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #0x10]
ldrb r0, [r2, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0x11
ble _08040B72
_08040BBC:
ldr r3, _08040C94 @ =gUnknown_0200C440
str r3, [sp, #0x10]
ldrh r0, [r3]
cmp r0, #0
beq _08040C54
ldr r5, _08040C74 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r7, _08040C84 @ =0x00000524
adds r0, r4, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldr r2, _08040C98 @ =0xFFFFFE98
adds r1, r2, #0
ldrh r4, [r4]
adds r1, r1, r4
subs r0, r0, r1
ldr r3, [sp, #0x10]
strh r0, [r3, #2]
ldr r4, [r5]
ldr r5, _08040C88 @ =0x00000526
adds r0, r4, r5
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x80
subs r0, r0, r1
ldr r1, [sp, #0x10]
strh r0, [r1, #4]
movs r2, #0
ldr r5, _08040C8C @ =gOamBuffer
ldr r3, _08040C90 @ =0xFFFFFE00
mov r8, r3
_08040C0C:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
ldr r7, [sp, #0x10]
adds r6, r7, r0
ldrh r3, [r6]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r6, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r7, _08040C70 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #0x10]
ldrb r0, [r2, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0x11
ble _08040C0C
_08040C54:
ldr r0, _08040C74 @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0xe3
lsls r3, r3, #2
adds r0, r1, r3
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0
ble _08040CA0
ldr r5, _08040C9C @ =0x0000132C
adds r0, r1, r5
ldr r1, [r0]
movs r0, #1
b _08040CA8
.align 2, 0
_08040C70: .4byte 0x000001FF
_08040C74: .4byte gUnknown_020314E0
_08040C78: .4byte 0x00000507
_08040C7C: .4byte gMain
_08040C80: .4byte gUnknown_0200C388
_08040C84: .4byte 0x00000524
_08040C88: .4byte 0x00000526
_08040C8C: .4byte gOamBuffer
_08040C90: .4byte 0xFFFFFE00
_08040C94: .4byte gUnknown_0200C440
_08040C98: .4byte 0xFFFFFE98
_08040C9C: .4byte 0x0000132C
_08040CA0:
ldr r7, _08040CE4 @ =0x0000132C
adds r0, r1, r7
ldr r1, [r0]
movs r0, #2
_08040CA8:
strb r0, [r1, #1]
movs r0, #0
str r0, [sp, #0xc]
_08040CAE:
ldr r1, [sp, #0xc]
lsls r3, r1, #0x10
asrs r2, r3, #0x10
movs r0, #0xb8
adds r1, r2, #0
muls r1, r0, r1
ldr r0, _08040CE8 @ =gUnknown_0200BE80
adds r1, r1, r0
str r1, [sp, #0x10]
ldr r1, _08040CEC @ =gUnknown_020314E0
ldr r0, [r1]
ldr r4, _08040CF0 @ =0x00000441
adds r0, r0, r4
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
str r3, [sp, #0x34]
cmp r0, #5
bls _08040CD8
b _0804131A
_08040CD8:
lsls r0, r0, #2
ldr r1, _08040CF4 @ =_08040CF8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08040CE4: .4byte 0x0000132C
_08040CE8: .4byte gUnknown_0200BE80
_08040CEC: .4byte gUnknown_020314E0
_08040CF0: .4byte 0x00000441
_08040CF4: .4byte _08040CF8
_08040CF8: @ jump table
.4byte _08040D10 @ case 0
.4byte _08040D3C @ case 1
.4byte _08040D7C @ case 2
.4byte _0804103C @ case 3
.4byte _0804120C @ case 4
.4byte _080412D8 @ case 5
_08040D10:
movs r5, #0
str r5, [sp]
ldr r0, _08040D30 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r7, [sp, #0x34]
asrs r0, r7, #0xe
adds r1, r1, r0
ldr r2, _08040D34 @ =0x0000045C
adds r0, r1, r2
strh r5, [r0]
ldr r4, _08040D38 @ =0x0000045E
adds r1, r1, r4
mov r5, sp
ldrh r5, [r5]
strh r5, [r1]
b _0804131A
.align 2, 0
_08040D30: .4byte gUnknown_020314E0
_08040D34: .4byte 0x0000045C
_08040D38: .4byte 0x0000045E
_08040D3C:
ldr r0, _08040D74 @ =gUnknown_020314E0
ldr r6, [r0]
ldr r0, [sp, #0x34]
asrs r7, r0, #0x10
lsls r1, r7, #1
movs r2, #0x8b
lsls r2, r2, #3
adds r0, r6, r2
adds r5, r0, r1
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #5
bl __udivsi3
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
cmp r4, #0xd
bhi _08040D66
b _08041300
_08040D66:
movs r0, #0
strh r0, [r5]
ldr r3, _08040D78 @ =0x00000441
adds r0, r6, r3
adds r0, r0, r7
movs r1, #2
b _08041318
.align 2, 0
_08040D74: .4byte gUnknown_020314E0
_08040D78: .4byte 0x00000441
_08040D7C:
ldr r4, _08040FE0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, [sp, #0x34]
asrs r1, r5, #0xf
movs r7, #0x8b
lsls r7, r7, #3
adds r0, r0, r7
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0xf
ands r1, r0
movs r0, #4
str r0, [sp]
cmp r1, #3
ble _08040DA6
movs r2, #6
str r2, [sp]
cmp r1, #9
bgt _08040DA6
movs r3, #5
str r3, [sp]
_08040DA6:
ldr r4, _08040FE0 @ =gUnknown_020314E0
mov sl, r4
ldr r0, [r4]
ldr r5, [sp, #0x34]
asrs r5, r5, #0x10
mov sb, r5
ldr r7, _08040FE4 @ =0x00000441
adds r0, r0, r7
add r0, sb
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _08040DC4
b _08040FC0
_08040DC4:
ldr r0, _08040FE8 @ =gMain
lsls r1, r5, #4
subs r1, r1, r5
lsls r1, r1, #3
ldr r0, [r0, #0x4c]
adds r0, r0, r1
movs r1, #0xf0
bl __umodsi3
lsls r0, r0, #0x10
movs r1, #0xf0
bl __udivsi3
adds r5, r0, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
adds r0, r5, #0
bl sub_C74
ldr r4, [r4]
mov r1, sb
lsls r1, r1, #2
str r1, [sp, #0x24]
adds r4, r4, r1
ldr r2, _08040FEC @ =0x00000464
adds r6, r4, r2
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r3, #0xfa
lsls r3, r3, #1
mov r8, r3
mov r1, r8
bl __divsi3
ldrh r1, [r6]
adds r1, r1, r0
adds r7, #0x1b
adds r4, r4, r7
strh r1, [r4]
adds r0, r5, #0
bl sub_C24
mov r1, sl
ldr r7, [r1]
ldr r2, [sp, #0x24]
adds r5, r7, r2
ldr r3, _08040FF0 @ =0x00000466
adds r4, r5, r3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, r8
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
ldr r4, _08040FF4 @ =0x0000045E
mov r8, r4
adds r2, r5, r4
strh r1, [r2]
ldr r1, _08040FF8 @ =0x0000132C
adds r0, r7, r1
ldr r6, [r0]
movs r3, #0x10
ldrsh r4, [r6, r3]
ldr r0, _08040FFC @ =0x0000045C
adds r5, r5, r0
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
str r2, [sp, #0x38]
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r4, r4, r0
subs r4, #0x10
str r4, [sp, #0x1c]
movs r3, #0x12
ldrsh r4, [r6, r3]
ldr r2, [sp, #0x38]
movs r5, #0
ldrsh r0, [r2, r5]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r4, r4, r0
subs r4, #0x20
str r4, [sp, #0x20]
ldr r0, [sp, #0x1c]
adds r1, r0, #0
muls r1, r0, r1
adds r0, r4, #0
muls r0, r4, r0
adds r5, r1, r0
ldr r1, _08041000 @ =0x00000383
adds r0, r7, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08040E94
b _08040FC0
_08040E94:
movs r2, #0xe2
lsls r2, r2, #2
adds r0, r7, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08040EA6
b _08040FC0
_08040EA6:
ldr r3, _08041004 @ =0x00000385
adds r0, r7, r3
movs r4, #0xe1
lsls r4, r4, #2
adds r1, r7, r4
movs r2, #0
ldrsb r2, [r0, r2]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
blt _08040EBE
b _08040FC0
_08040EBE:
ldr r1, _08041008 @ =0x00000452
adds r0, r7, r1
ldrh r4, [r0]
cmp r4, #0
bne _08040FC0
ldr r6, _0804100C @ =0x0000012B
cmp r5, r6
bgt _08040FC0
ldr r2, _08041010 @ =0x00000486
adds r1, r7, r2
movs r0, #6
strh r0, [r1]
movs r3, #1
strb r3, [r7, #0x1f]
mov r5, sl
ldr r1, [r5]
mov r7, sb
lsls r2, r7, #1
movs r5, #0x8b
lsls r5, r5, #3
adds r0, r1, r5
adds r0, r0, r2
strh r4, [r0]
ldr r7, _08040FE4 @ =0x00000441
adds r1, r1, r7
add r1, sb
movs r0, #3
strb r0, [r1]
mov r1, sl
ldr r0, [r1]
ldr r2, _08041014 @ =0x000005FA
adds r0, r0, r2
strb r3, [r0]
ldr r5, [r1]
ldr r3, [sp, #0x24]
adds r4, r5, r3
adds r7, #0x1b
adds r0, r4, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x10
str r0, [sp, #0x14]
add r4, r8
movs r2, #0
ldrsh r0, [r4, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x20
str r0, [sp, #0x18]
ldr r3, [sp, #0x14]
lsls r1, r3, #8
ldr r4, _08040FF8 @ =0x0000132C
adds r0, r5, r4
ldr r2, [r0]
ldr r0, [r2, #0x34]
subs r0, r1, r0
str r0, [sp, #0x1c]
ldr r7, [sp, #0x18]
lsls r1, r7, #8
ldr r0, [r2, #0x38]
subs r0, r1, r0
str r0, [sp, #0x20]
ldr r4, _08041018 @ =0x000005AC
adds r5, r5, r4
ldr r1, [sp, #0x1c]
adds r0, r1, #0
muls r0, r1, r0
ldr r2, [sp, #0x20]
adds r1, r2, #0
muls r1, r2, r1
adds r0, r0, r1
str r0, [r5]
lsls r0, r0, #2
bl Sqrt
mov r3, sl
ldr r1, [r3]
adds r1, r1, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
str r0, [r1]
ldr r4, [sp, #0x1c]
rsbs r0, r4, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r5, [sp, #0x20]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
bl ArcTan2
mov r7, sl
ldr r2, [r7]
movs r3, #0xb6
lsls r3, r3, #3
adds r1, r2, r3
strh r0, [r1]
ldr r0, [sp, #0xc]
adds r0, #1
ldr r4, _0804101C @ =0x00000505
adds r2, r2, r4
strb r0, [r2]
ldr r2, [r7]
ldr r5, [sp, #0x24]
adds r1, r2, r5
ldr r7, _08040FFC @ =0x0000045C
adds r0, r1, r7
ldrh r3, [r0]
adds r4, #0x1b
adds r0, r2, r4
strh r3, [r0]
add r1, r8
ldrh r0, [r1]
ldr r5, _08041020 @ =0x00000522
adds r2, r2, r5
strh r0, [r2]
adds r0, r6, #0
bl m4aSongNumStart
movs r0, #0xd
bl sub_11B0
_08040FC0:
ldr r0, _08040FE0 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r7, [sp, #0x34]
asrs r4, r7, #0x10
lsls r1, r4, #1
movs r2, #0x8b
lsls r2, r2, #3
adds r0, r3, r2
adds r1, r0, r1
ldrh r2, [r1]
ldr r0, _08041024 @ =0x00000347
cmp r2, r0
bhi _08041028
adds r0, r2, #1
strh r0, [r1]
b _0804131A
.align 2, 0
_08040FE0: .4byte gUnknown_020314E0
_08040FE4: .4byte 0x00000441
_08040FE8: .4byte gMain
_08040FEC: .4byte 0x00000464
_08040FF0: .4byte 0x00000466
_08040FF4: .4byte 0x0000045E
_08040FF8: .4byte 0x0000132C
_08040FFC: .4byte 0x0000045C
_08041000: .4byte 0x00000383
_08041004: .4byte 0x00000385
_08041008: .4byte 0x00000452
_0804100C: .4byte 0x0000012B
_08041010: .4byte 0x00000486
_08041014: .4byte 0x000005FA
_08041018: .4byte 0x000005AC
_0804101C: .4byte 0x00000505
_08041020: .4byte 0x00000522
_08041024: .4byte 0x00000347
_08041028:
movs r0, #0
strh r0, [r1]
ldr r5, _08041038 @ =0x00000441
adds r0, r3, r5
adds r0, r0, r4
movs r1, #5
b _08041318
.align 2, 0
_08041038: .4byte 0x00000441
_0804103C:
ldr r7, _080411E4 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r2, [sp, #0x34]
asrs r1, r2, #0xf
movs r3, #0x8b
lsls r3, r3, #3
adds r0, r0, r3
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0xf
ands r1, r0
movs r4, #4
str r4, [sp]
cmp r1, #3
ble _08041066
movs r5, #6
str r5, [sp]
cmp r1, #9
bgt _08041066
movs r7, #5
str r7, [sp]
_08041066:
ldr r0, _080411E4 @ =gUnknown_020314E0
ldr r6, [r0]
ldr r1, [sp, #0x34]
asrs r1, r1, #0x10
str r1, [sp, #0x28]
lsls r2, r1, #1
str r2, [sp, #0x2c]
movs r3, #0x8b
lsls r3, r3, #3
adds r0, r6, r3
adds r0, r0, r2
ldrh r1, [r0]
movs r0, #0x1d
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
bgt _0804108E
movs r4, #0xa
_0804108E:
movs r5, #0xb6
lsls r5, r5, #3
mov sl, r5
adds r5, r6, r5
lsls r4, r4, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #0xd
movs r1, #0x1e
bl __divsi3
adds r1, r0, #0
movs r0, #0x80
lsls r0, r0, #6
subs r0, r0, r1
lsls r0, r0, #1
movs r1, #5
bl __divsi3
ldrh r1, [r5]
subs r1, r1, r0
strh r1, [r5]
ldr r7, _080411E8 @ =0x0000132C
adds r0, r6, r7
ldr r1, [r0]
ldr r2, _080411EC @ =0xFFFFE000
adds r0, r2, #0
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r1, #0xa]
ldr r7, _080411F0 @ =0x000005AC
adds r0, r6, r7
ldr r0, [r0]
muls r0, r4, r0
movs r1, #0x1e
bl __divsi3
mov sb, r0
ldr r0, [sp, #0x28]
lsls r4, r0, #2
adds r4, r6, r4
ldr r1, _080411F4 @ =0x0000045C
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x10
str r0, [sp, #0x14]
ldr r3, _080411F8 @ =0x0000045E
adds r4, r4, r3
movs r7, #0
ldrsh r0, [r4, r7]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x20
str r0, [sp, #0x18]
ldrh r0, [r5]
bl sub_C74
ldr r1, _080411E4 @ =gUnknown_020314E0
ldr r5, [r1]
ldr r2, _080411E8 @ =0x0000132C
adds r1, r5, r2
ldr r6, [r1]
ldr r3, [sp, #0x14]
lsls r4, r3, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r7, sb
muls r7, r0, r7
adds r0, r7, #0
ldr r1, _080411FC @ =0x00004E20
mov r8, r1
bl __divsi3
adds r4, r4, r0
str r4, [r6, #0x34]
add r5, sl
ldrh r0, [r5]
bl sub_C24
ldr r2, _080411E4 @ =gUnknown_020314E0
ldr r7, [r2]
ldr r3, _080411E8 @ =0x0000132C
adds r5, r7, r3
ldr r6, [r5]
ldr r1, [sp, #0x18]
lsls r4, r1, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r2, sb
muls r2, r0, r2
adds r0, r2, #0
mov r1, r8
bl __divsi3
subs r4, r4, r0
str r4, [r6, #0x38]
ldr r4, [r5]
movs r3, #0x30
ldrsh r0, [r4, r3]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x30]
ldr r4, [r5]
movs r5, #0x32
ldrsh r0, [r4, r5]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r4, #0x32]
movs r0, #0xe3
lsls r0, r0, #2
adds r2, r7, r0
movs r3, #0
ldrsh r1, [r2, r3]
ldr r0, _08041200 @ =0x00000707
cmp r1, r0
bgt _0804119C
ldr r4, _08041204 @ =0x0000038A
adds r0, r7, r4
movs r5, #0
strh r5, [r0]
ldrh r0, [r2]
adds r0, #0x20
strh r0, [r2]
_0804119C:
ldr r7, _080411E4 @ =gUnknown_020314E0
ldr r2, [r7]
movs r1, #0x8b
lsls r1, r1, #3
adds r0, r2, r1
ldr r3, [sp, #0x2c]
adds r1, r0, r3
ldrh r0, [r1]
cmp r0, #0xb3
bhi _080411B2
b _080412BE
_080411B2:
movs r4, #0
strh r4, [r1]
ldr r5, _08041208 @ =0x00000441
adds r0, r2, r5
ldr r7, [sp, #0x28]
adds r0, r0, r7
movs r1, #4
strb r1, [r0]
ldr r0, _080411E4 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _080411F0 @ =0x000005AC
adds r3, r2, r1
ldr r0, [r3]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
str r0, [r3]
ldr r3, _080411E8 @ =0x0000132C
adds r2, r2, r3
ldr r1, [r2]
movs r0, #0xa5
lsls r0, r0, #8
str r0, [r1, #0x38]
b _0804131A
.align 2, 0
_080411E4: .4byte gUnknown_020314E0
_080411E8: .4byte 0x0000132C
_080411EC: .4byte 0xFFFFE000
_080411F0: .4byte 0x000005AC
_080411F4: .4byte 0x0000045C
_080411F8: .4byte 0x0000045E
_080411FC: .4byte 0x00004E20
_08041200: .4byte 0x00000707
_08041204: .4byte 0x0000038A
_08041208: .4byte 0x00000441
_0804120C:
ldr r4, _080412C4 @ =gUnknown_020314E0
mov sl, r4
ldr r0, [r4]
ldr r5, [sp, #0x34]
asrs r5, r5, #0x10
str r5, [sp, #0x30]
lsls r7, r5, #1
movs r1, #0x8b
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #0x81
bhi _0804131A
cmp r0, #0xa
bne _08041234
movs r0, #0x96
lsls r0, r0, #1
bl m4aSongNumStart
_08041234:
mov r2, sl
ldr r6, [r2]
ldr r4, _080412C8 @ =0x0000038A
adds r3, r6, r4
ldrh r1, [r3]
subs r1, #1
movs r5, #0
mov sb, r5
movs r0, #0
mov r8, r0
strh r1, [r3]
adds r4, #2
adds r2, r6, r4
ldrh r0, [r2]
adds r0, r0, r1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bgt _080412B0
mov r5, r8
strh r5, [r2]
ldr r4, _080412CC @ =0x0000132C
adds r0, r6, r4
ldr r5, [r0]
movs r1, #0
ldrsh r0, [r3, r1]
lsls r0, r0, #7
movs r1, #0xa
bl __divsi3
rsbs r0, r0, #0
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r5, #0x32]
mov r2, sb
strb r2, [r6, #0x1f]
mov r3, sl
ldr r1, [r3]
movs r5, #0x8b
lsls r5, r5, #3
adds r0, r1, r5
adds r0, r0, r7
mov r2, r8
strh r2, [r0]
adds r4, r1, r4
ldr r0, [r4]
strh r2, [r0, #0x30]
ldr r3, _080412D0 @ =0x00000441
adds r1, r1, r3
ldr r4, [sp, #0x30]
adds r1, r1, r4
mov r5, sb
strb r5, [r1]
mov r1, sl
ldr r0, [r1]
ldr r2, _080412D4 @ =0x000005FA
adds r0, r0, r2
strb r5, [r0]
movs r0, #8
bl sub_11B0
_080412B0:
mov r3, sl
ldr r1, [r3]
movs r4, #0x8b
lsls r4, r4, #3
adds r1, r1, r4
adds r1, r1, r7
ldrh r0, [r1]
_080412BE:
adds r0, #1
strh r0, [r1]
b _0804131A
.align 2, 0
_080412C4: .4byte gUnknown_020314E0
_080412C8: .4byte 0x0000038A
_080412CC: .4byte 0x0000132C
_080412D0: .4byte 0x00000441
_080412D4: .4byte 0x000005FA
_080412D8:
ldr r0, _08041308 @ =gUnknown_020314E0
ldr r6, [r0]
ldr r5, [sp, #0x34]
asrs r7, r5, #0x10
lsls r1, r7, #1
movs r2, #0x8b
lsls r2, r2, #3
adds r0, r6, r2
adds r5, r0, r1
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #6
bl __udivsi3
adds r0, #7
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
cmp r4, #0xa
bhi _0804130C
_08041300:
adds r0, r4, #1
strh r0, [r5]
b _0804131A
.align 2, 0
_08041308: .4byte gUnknown_020314E0
_0804130C:
movs r1, #0
movs r0, #0
strh r0, [r5]
ldr r3, _08041540 @ =0x00000441
adds r0, r6, r3
adds r0, r0, r7
_08041318:
strb r1, [r0]
_0804131A:
ldr r4, [sp, #0x10]
ldrh r0, [r4]
cmp r0, #0
beq _08041400
ldr r2, _08041544 @ =0x040000D4
ldr r5, [sp]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08041548 @ =gUnknown_084A6EEC
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804154C @ =0x06011EA0
str r0, [r2, #4]
ldr r0, _08041550 @ =0x80000140
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _08041554 @ =gUnknown_020314E0
ldr r5, [r0]
ldr r7, [sp, #0x34]
asrs r4, r7, #0xe
adds r4, r5, r4
ldr r1, _08041558 @ =0x0000045C
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r1, r5, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
ldr r3, [sp, #0x10]
strh r0, [r3, #2]
ldr r7, _0804155C @ =0x0000045E
adds r4, r4, r7
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
adds r5, #0x5a
ldrh r1, [r5]
subs r0, r0, r1
ldr r2, [sp, #0x10]
strh r0, [r2, #4]
movs r2, #0
ldr r5, _08041560 @ =gOamBuffer
ldr r3, _08041564 @ =0xFFFFFE00
mov r8, r3
_08041384:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r4, [sp, #0x10]
adds r6, r4, r0
ldrh r2, [r6]
lsls r2, r2, #3
adds r2, r2, r5
movs r7, #2
ldrsh r1, [r6, r7]
movs r7, #2
ldrsh r0, [r4, r7]
adds r1, r1, r0
ldr r4, _08041568 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldrh r4, [r2, #2]
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldr r7, [sp, #0x10]
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _08041384
ldr r1, _08041554 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, [sp, #0x34]
asrs r2, r3, #0x10
ldr r4, _08041540 @ =0x00000441
adds r0, r0, r4
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080413E6
strh r0, [r7]
_080413E6:
ldr r0, [r1]
ldr r5, _0804156C @ =0x00000505
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08041400
subs r0, #1
cmp r2, r0
bne _08041400
movs r0, #0
ldr r7, [sp, #0x10]
strh r0, [r7]
_08041400:
ldr r1, [sp, #0x34]
movs r2, #0x80
lsls r2, r2, #9
adds r0, r1, r2
lsrs r3, r0, #0x10
str r3, [sp, #0xc]
asrs r0, r0, #0x10
cmp r0, #1
bgt _08041414
b _08040CAE
_08041414:
bl sub_417F8
ldr r4, _08041570 @ =gUnknown_0200C218
str r4, [sp, #0x10]
ldrh r0, [r4]
cmp r0, #0
beq _0804150E
ldr r5, _08041554 @ =gUnknown_020314E0
ldr r4, [r5]
movs r7, #0xa4
lsls r7, r7, #3
adds r0, r4, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
subs r0, r0, r1
ldr r2, [sp, #0x10]
strh r0, [r2, #2]
ldr r4, [r5]
ldr r3, _08041574 @ =0x00000522
adds r0, r4, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
ldr r1, [sp, #0x10]
strh r0, [r1, #4]
ldr r0, [r5]
ldr r2, _08041578 @ =0x0000050E
adds r0, r0, r2
ldrh r0, [r0]
movs r1, #5
bl __udivsi3
movs r2, #0
ldr r3, _0804157C @ =gUnknown_086B5CC0
mov sl, r3
ldr r4, _08041560 @ =gOamBuffer
mov ip, r4
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #4
subs r1, r1, r0
lsls r1, r1, #1
mov r8, r1
ldr r5, _08041564 @ =0xFFFFFE00
mov sb, r5
_08041482:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
ldr r7, [sp, #0x10]
adds r6, r7, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r1, ip
adds r5, r0, r1
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sl
mov r2, r8
adds r1, r2, r0
ldrh r0, [r1]
strh r0, [r5]
adds r1, #2
adds r5, #2
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r5, #2
ldrsh r0, [r7, r5]
adds r1, r1, r0
ldr r7, _08041568 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, ip
ldr r2, [sp, #0x10]
ldrb r0, [r2, #4]
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #4
ble _08041482
ldr r0, _08041554 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r5, _08041578 @ =0x0000050E
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, #0x18
bhi _0804150E
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x19
bne _0804150E
movs r0, #0
ldr r7, [sp, #0x10]
strh r0, [r7]
_0804150E:
ldr r1, _08041554 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _0804156C @ =0x00000505
adds r2, r0, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08041530
movs r0, #0
strb r0, [r2]
ldr r1, [r1]
ldr r4, _08041578 @ =0x0000050E
adds r1, r1, r4
strh r0, [r1]
movs r0, #1
ldr r5, [sp, #0x10]
strh r0, [r5]
_08041530:
add sp, #0x44
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
_08041540: .4byte 0x00000441
_08041544: .4byte 0x040000D4
_08041548: .4byte gUnknown_084A6EEC
_0804154C: .4byte 0x06011EA0
_08041550: .4byte 0x80000140
_08041554: .4byte gUnknown_020314E0
_08041558: .4byte 0x0000045C
_0804155C: .4byte 0x0000045E
_08041560: .4byte gOamBuffer
_08041564: .4byte 0xFFFFFE00
_08041568: .4byte 0x000001FF
_0804156C: .4byte 0x00000505
_08041570: .4byte gUnknown_0200C218
_08041574: .4byte 0x00000522
_08041578: .4byte 0x0000050E
_0804157C: .4byte gUnknown_086B5CC0
thumb_func_start sub_41580
sub_41580: @ 0x08041580
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _080415F4 @ =gUnknown_0200CD98
mov sb, r0
ldrh r0, [r0]
cmp r0, #0
bne _08041596
b _080417D0
_08041596:
ldr r1, _080415F8 @ =gUnknown_020314E0
ldr r5, [r1]
ldr r2, _080415FC @ =0x00000486
adds r6, r5, r2
ldrh r7, [r6]
subs r0, r7, #1
strh r0, [r6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov sl, r1
cmp r0, #5
bgt _080415B0
b _080416C2
_080415B0:
ldr r4, _08041600 @ =gUnknown_08137D48
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0x21
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #3
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, r0, r4
ldrh r0, [r0]
mov r8, r0
ldr r1, _08041604 @ =0x0000047F
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08041658
cmp r0, #7
bne _0804160C
ldr r2, _08041608 @ =0x0000132C
adds r0, r5, r2
ldr r1, [r0]
ldr r0, [r1, #0x34]
movs r4, #0x80
lsls r4, r4, #1
adds r0, r0, r4
b _0804163A
.align 2, 0
_080415F4: .4byte gUnknown_0200CD98
_080415F8: .4byte gUnknown_020314E0
_080415FC: .4byte 0x00000486
_08041600: .4byte gUnknown_08137D48
_08041604: .4byte 0x0000047F
_08041608: .4byte 0x0000132C
_0804160C:
cmp r0, #4
bne _08041628
ldr r7, _08041620 @ =0x0000132C
adds r0, r5, r7
ldr r1, [r0]
ldr r0, [r1, #0x34]
ldr r2, _08041624 @ =0xFFFFFE00
adds r0, r0, r2
b _0804163A
.align 2, 0
_08041620: .4byte 0x0000132C
_08041624: .4byte 0xFFFFFE00
_08041628:
cmp r0, #1
bne _0804163C
ldr r4, _0804164C @ =0x0000132C
adds r0, r5, r4
ldr r1, [r0]
ldr r0, [r1, #0x34]
movs r5, #0x80
lsls r5, r5, #1
adds r0, r0, r5
_0804163A:
str r0, [r1, #0x34]
_0804163C:
ldr r0, _08041650 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r7, _08041654 @ =0x0000047F
adds r1, r1, r7
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _08041682
.align 2, 0
_0804164C: .4byte 0x0000132C
_08041650: .4byte gUnknown_020314E0
_08041654: .4byte 0x0000047F
_08041658:
ldrh r0, [r5, #4]
cmp r0, #0
beq _08041682
adds r0, r7, #0
subs r0, #0x1f
strh r0, [r6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
bgt _08041670
movs r0, #5
strh r0, [r6]
_08041670:
mov r2, sl
ldr r0, [r2]
adds r0, r0, r1
movs r1, #7
strb r1, [r0]
movs r0, #0x95
lsls r0, r0, #1
bl m4aSongNumStart
_08041682:
ldr r0, _080416A8 @ =gUnknown_020314E0
ldr r5, [r0]
movs r7, #0x90
lsls r7, r7, #3
adds r4, r5, r7
ldrh r3, [r4]
mov sl, r0
cmp r3, #0
beq _080416B6
subs r0, r3, #1
strh r0, [r4]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x34
bls _080416AC
movs r0, #8
mov r8, r0
b _080416C6
.align 2, 0
_080416A8: .4byte gUnknown_020314E0
_080416AC:
cmp r0, #0x2a
bls _080416C6
movs r1, #9
mov r8, r1
b _080416C6
_080416B6:
ldrh r0, [r5, #4]
cmp r0, #0
beq _080416C6
movs r0, #0x3c
strh r0, [r4]
b _080416C6
_080416C2:
movs r2, #8
mov r8, r2
_080416C6:
mov r4, sl
ldr r1, [r4]
ldr r5, _080416F4 @ =0x00000486
adds r0, r1, r5
movs r7, #0
ldrsh r3, [r0, r7]
cmp r3, #0
bne _08041704
ldr r0, _080416F8 @ =gMain
ldr r1, _080416FC @ =0x00001CD8
adds r0, r0, r1
movs r2, #0
strh r3, [r0]
ldr r0, [r4]
movs r4, #0x90
lsls r4, r4, #3
adds r1, r0, r4
strh r3, [r1]
ldr r5, _08041700 @ =0x00000383
adds r0, r0, r5
strb r2, [r0]
b _08041722
.align 2, 0
_080416F4: .4byte 0x00000486
_080416F8: .4byte gMain
_080416FC: .4byte 0x00001CD8
_08041700: .4byte 0x00000383
_08041704:
ldr r7, _080417E0 @ =0x00000383
adds r1, r1, r7
movs r2, #0
movs r0, #1
strb r0, [r1]
mov r1, sl
ldr r0, [r1]
ldr r4, _080417E4 @ =0x0000132C
adds r0, r0, r4
ldr r1, [r0]
strh r2, [r1, #0x30]
ldr r1, [r0]
strh r2, [r1, #0x32]
ldr r0, [r0]
strh r2, [r0, #6]
_08041722:
mov r5, sl
ldr r2, [r5]
ldr r7, _080417E4 @ =0x0000132C
adds r3, r2, r7
ldr r0, [r3]
adds r1, r2, #0
adds r1, #0x58
ldrh r0, [r0, #0x10]
ldrh r1, [r1]
subs r0, r0, r1
subs r0, #8
mov r1, sb
strh r0, [r1, #2]
ldr r0, [r3]
adds r2, #0x5a
ldrh r0, [r0, #0x12]
ldrh r1, [r2]
subs r0, r0, r1
subs r0, #8
mov r2, sb
strh r0, [r2, #4]
movs r2, #0
mov r4, r8
lsls r1, r4, #0x10
ldr r5, _080417E8 @ =gUnknown_086B5D56
mov sl, r5
ldr r6, _080417EC @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov ip, r0
ldr r7, _080417F0 @ =0xFFFFFE00
mov r8, r7
_08041766:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
add r4, sb
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r6
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sl
add r0, ip
ldrh r1, [r0]
strh r1, [r2]
adds r0, #2
adds r2, #2
ldrh r1, [r0]
strh r1, [r2]
ldrh r0, [r0, #2]
strh r0, [r2, #2]
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r6
ldrh r0, [r2, #2]
lsls r1, r0, #0x17
lsrs r1, r1, #0x17
mov r5, sb
movs r7, #2
ldrsh r0, [r5, r7]
adds r1, r1, r0
ldr r5, _080417F4 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
mov r0, r8
ldrh r7, [r2, #2]
ands r0, r7
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
mov r2, sb
ldrb r0, [r2, #4]
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _08041766
_080417D0:
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
_080417E0: .4byte 0x00000383
_080417E4: .4byte 0x0000132C
_080417E8: .4byte gUnknown_086B5D56
_080417EC: .4byte gOamBuffer
_080417F0: .4byte 0xFFFFFE00
_080417F4: .4byte 0x000001FF
thumb_func_start sub_417F8
sub_417F8: @ 0x080417F8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r6, _08041BD0 @ =gUnknown_0200C4F8
ldrh r0, [r6]
ldr r1, _08041BD4 @ =gUnknown_020314E0
mov sl, r1
cmp r0, #0
bne _08041810
b _08041922
_08041810:
ldr r4, [r1]
movs r2, #0xa5
lsls r2, r2, #3
adds r0, r4, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
adds r1, #0x80
subs r0, r0, r1
strh r0, [r6, #2]
mov r5, sl
ldr r4, [r5]
ldr r1, _08041BD8 @ =0x0000052A
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
movs r3, #0xb8
adds r3, r3, r6
mov sb, r3
ldr r7, _08041BDC @ =gOamBuffer
ldr r4, _08041BE0 @ =0xFFFFFE00
mov r8, r4
_08041856:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041BE4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xe
ble _08041856
mov r6, sb
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
adds r1, #0x80
subs r0, r0, r1
strh r0, [r6, #2]
mov r2, sl
ldr r4, [r2]
ldr r3, _08041BD8 @ =0x0000052A
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08041BDC @ =gOamBuffer
ldr r1, _08041BE0 @ =0xFFFFFE00
mov r8, r1
_080418DE:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041BE4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xd
ble _080418DE
_08041922:
ldr r6, _08041BE8 @ =gUnknown_0200C668
ldrh r0, [r6]
cmp r0, #0
bne _0804192C
b _08041A40
_0804192C:
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
adds r1, #0x80
subs r0, r0, r1
strh r0, [r6, #2]
mov r2, sl
ldr r4, [r2]
ldr r3, _08041BD8 @ =0x0000052A
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
movs r1, #0xb8
adds r1, r1, r6
mov sb, r1
ldr r7, _08041BDC @ =gOamBuffer
ldr r2, _08041BE0 @ =0xFFFFFE00
mov r8, r2
_08041974:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041BE4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xe
ble _08041974
mov r6, sb
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
adds r1, #0x80
subs r0, r0, r1
strh r0, [r6, #2]
mov r2, sl
ldr r4, [r2]
ldr r3, _08041BD8 @ =0x0000052A
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08041BDC @ =gOamBuffer
ldr r1, _08041BE0 @ =0xFFFFFE00
mov r8, r1
_080419FC:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041BE4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #8
ble _080419FC
_08041A40:
ldr r6, _08041BEC @ =gUnknown_0200C7D8
ldrh r0, [r6]
cmp r0, #0
bne _08041A4A
b _08041B5E
_08041A4A:
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
adds r1, #0x80
subs r0, r0, r1
strh r0, [r6, #2]
mov r2, sl
ldr r4, [r2]
ldr r3, _08041BD8 @ =0x0000052A
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
movs r1, #0xb8
adds r1, r1, r6
mov sb, r1
ldr r7, _08041BDC @ =gOamBuffer
ldr r2, _08041BE0 @ =0xFFFFFE00
mov r8, r2
_08041A92:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041BE4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xe
ble _08041A92
mov r6, sb
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
adds r1, #0x80
subs r0, r0, r1
strh r0, [r6, #2]
mov r2, sl
ldr r4, [r2]
ldr r3, _08041BD8 @ =0x0000052A
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08041BDC @ =gOamBuffer
ldr r1, _08041BE0 @ =0xFFFFFE00
mov r8, r1
_08041B1A:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041BE4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xb
ble _08041B1A
_08041B5E:
ldr r6, _08041BF0 @ =gUnknown_0200C948
ldrh r0, [r6]
cmp r0, #0
bne _08041B68
b _08041CB0
_08041B68:
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldr r2, _08041BF4 @ =0xFFFFFE90
adds r1, r2, #0
ldrh r4, [r4]
adds r1, r1, r4
subs r0, r0, r1
strh r0, [r6, #2]
mov r3, sl
ldr r4, [r3]
adds r5, #2
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
movs r2, #0xb8
adds r2, r2, r6
mov sb, r2
ldr r7, _08041BDC @ =gOamBuffer
ldr r3, _08041BE0 @ =0xFFFFFE00
mov r8, r3
_08041BB4:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
b _08041BF8
.align 2, 0
_08041BD0: .4byte gUnknown_0200C4F8
_08041BD4: .4byte gUnknown_020314E0
_08041BD8: .4byte 0x0000052A
_08041BDC: .4byte gOamBuffer
_08041BE0: .4byte 0xFFFFFE00
_08041BE4: .4byte 0x000001FF
_08041BE8: .4byte gUnknown_0200C668
_08041BEC: .4byte gUnknown_0200C7D8
_08041BF0: .4byte gUnknown_0200C948
_08041BF4: .4byte 0xFFFFFE90
_08041BF8:
adds r1, r1, r0
ldr r2, _08041FB0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xe
ble _08041BB4
mov r6, sb
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldr r2, _08041FB4 @ =0xFFFFFE90
adds r1, r2, #0
ldrh r4, [r4]
adds r1, r1, r4
subs r0, r0, r1
strh r0, [r6, #2]
mov r3, sl
ldr r4, [r3]
adds r5, #2
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08041FB8 @ =gOamBuffer
ldr r2, _08041FBC @ =0xFFFFFE00
mov r8, r2
_08041C6C:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041FB0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xd
ble _08041C6C
_08041CB0:
ldr r6, _08041FC0 @ =gUnknown_0200CAB8
ldrh r0, [r6]
cmp r0, #0
bne _08041CBA
b _08041DD6
_08041CBA:
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldr r2, _08041FB4 @ =0xFFFFFE90
adds r1, r2, #0
ldrh r4, [r4]
adds r1, r1, r4
subs r0, r0, r1
strh r0, [r6, #2]
mov r3, sl
ldr r4, [r3]
adds r5, #2
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
movs r2, #0xb8
adds r2, r2, r6
mov sb, r2
ldr r7, _08041FB8 @ =gOamBuffer
ldr r3, _08041FBC @ =0xFFFFFE00
mov r8, r3
_08041D06:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041FB0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xe
ble _08041D06
mov r6, sb
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldr r2, _08041FB4 @ =0xFFFFFE90
adds r1, r2, #0
ldrh r4, [r4]
adds r1, r1, r4
subs r0, r0, r1
strh r0, [r6, #2]
mov r3, sl
ldr r4, [r3]
adds r5, #2
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08041FB8 @ =gOamBuffer
ldr r2, _08041FBC @ =0xFFFFFE00
mov r8, r2
_08041D92:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041FB0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #8
ble _08041D92
_08041DD6:
ldr r6, _08041FC4 @ =gUnknown_0200CC28
ldrh r0, [r6]
cmp r0, #0
bne _08041DE0
b _08041EFC
_08041DE0:
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldr r2, _08041FB4 @ =0xFFFFFE90
adds r1, r2, #0
ldrh r4, [r4]
adds r1, r1, r4
subs r0, r0, r1
strh r0, [r6, #2]
mov r3, sl
ldr r4, [r3]
adds r5, #2
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
movs r2, #0xb8
adds r2, r2, r6
mov sb, r2
ldr r7, _08041FB8 @ =gOamBuffer
ldr r3, _08041FBC @ =0xFFFFFE00
mov r8, r3
_08041E2C:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041FB0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xe
ble _08041E2C
mov r6, sb
mov r3, sl
ldr r4, [r3]
movs r5, #0xa5
lsls r5, r5, #3
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldr r2, _08041FB4 @ =0xFFFFFE90
adds r1, r2, #0
ldrh r4, [r4]
adds r1, r1, r4
subs r0, r0, r1
strh r0, [r6, #2]
mov r3, sl
ldr r4, [r3]
adds r5, #2
adds r0, r4, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r1, #0x5a
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08041FB8 @ =gOamBuffer
ldr r2, _08041FBC @ =0xFFFFFE00
mov r8, r2
_08041EB8:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08041FB0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xb
ble _08041EB8
_08041EFC:
ldr r3, _08041FC8 @ =gMain
ldr r4, _08041FCC @ =0x000012C8
adds r0, r3, r4
ldrh r1, [r0]
cmp r1, #0
bne _08041F0A
b _08042014
_08041F0A:
ldr r0, _08041FD0 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r5, _08041FD4 @ =0x00000514
adds r0, r2, r5
ldrh r0, [r0]
cmp r0, #6
bne _08041F7A
ldr r1, _08041FD8 @ =0x00001438
adds r0, r3, r1
movs r1, #0
strh r1, [r0]
ldr r4, _08041FDC @ =0x000014F0
adds r0, r3, r4
strh r1, [r0]
ldr r5, _08041FE0 @ =0x000015A8
adds r0, r3, r5
movs r1, #1
strh r1, [r0]
movs r4, #0xb3
lsls r4, r4, #5
adds r0, r3, r4
strh r1, [r0]
ldr r5, _08041FE4 @ =0x00000441
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08041F7A
ldr r1, _08041FE8 @ =0x00000442
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08041F7A
movs r3, #0xe2
lsls r3, r3, #2
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08041F7A
ldr r4, _08041FEC @ =0x0000132C
adds r0, r2, r4
ldr r1, [r0]
movs r5, #0xfa
lsls r5, r5, #1
adds r0, r5, #0
ldrh r2, [r1, #0x30]
adds r0, r0, r2
strh r0, [r1, #0x30]
movs r0, #0xd
bl sub_11B0
_08041F7A:
ldr r4, _08041FD0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r3, _08041FD4 @ =0x00000514
adds r0, r0, r3
ldrh r0, [r0]
cmp r0, #0xb
bne _08041FA6
ldr r1, _08041FC8 @ =gMain
ldr r5, _08041FE0 @ =0x000015A8
adds r0, r1, r5
movs r2, #0
strh r2, [r0]
adds r5, #0xb8
adds r0, r1, r5
strh r2, [r0]
ldr r2, _08041FF0 @ =0x00001718
adds r0, r1, r2
movs r2, #1
strh r2, [r0]
ldr r5, _08041FF4 @ =0x000017D0
adds r1, r1, r5
strh r2, [r1]
_08041FA6:
ldr r0, [r4]
adds r0, r0, r3
ldrh r0, [r0]
cmp r0, #0xe
b _08041FF8
.align 2, 0
_08041FB0: .4byte 0x000001FF
_08041FB4: .4byte 0xFFFFFE90
_08041FB8: .4byte gOamBuffer
_08041FBC: .4byte 0xFFFFFE00
_08041FC0: .4byte gUnknown_0200CAB8
_08041FC4: .4byte gUnknown_0200CC28
_08041FC8: .4byte gMain
_08041FCC: .4byte 0x000012C8
_08041FD0: .4byte gUnknown_020314E0
_08041FD4: .4byte 0x00000514
_08041FD8: .4byte 0x00001438
_08041FDC: .4byte 0x000014F0
_08041FE0: .4byte 0x000015A8
_08041FE4: .4byte 0x00000441
_08041FE8: .4byte 0x00000442
_08041FEC: .4byte 0x0000132C
_08041FF0: .4byte 0x00001718
_08041FF4: .4byte 0x000017D0
_08041FF8:
bne _080420CC
ldr r0, _08042008 @ =gMain
ldr r2, _0804200C @ =0x00001718
adds r1, r0, r2
movs r2, #0
strh r2, [r1]
ldr r3, _08042010 @ =0x000017D0
b _080420C8
.align 2, 0
_08042008: .4byte gMain
_0804200C: .4byte 0x00001718
_08042010: .4byte 0x000017D0
_08042014:
ldr r0, _08042274 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r4, _08042278 @ =0x00000514
adds r0, r2, r4
ldrh r0, [r0]
cmp r0, #6
bne _08042082
ldr r5, _0804227C @ =gMain
ldr r3, _08042280 @ =0x00001888
adds r0, r5, r3
strh r1, [r0]
movs r4, #0xca
lsls r4, r4, #5
adds r0, r5, r4
strh r1, [r0]
ldr r1, _08042284 @ =0x000019F8
adds r0, r5, r1
movs r1, #1
strh r1, [r0]
ldr r3, _08042288 @ =0x00001AB0
adds r0, r5, r3
strh r1, [r0]
ldr r4, _0804228C @ =0x00000441
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08042082
ldr r5, _08042290 @ =0x00000442
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08042082
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08042082
ldr r3, _08042294 @ =0x0000132C
adds r0, r2, r3
ldr r1, [r0]
ldr r4, _08042298 @ =0xFFFFFE0C
adds r0, r4, #0
ldrh r5, [r1, #0x30]
adds r0, r0, r5
strh r0, [r1, #0x30]
movs r0, #0xd
bl sub_11B0
_08042082:
ldr r4, _08042274 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r3, _08042278 @ =0x00000514
adds r0, r0, r3
ldrh r0, [r0]
cmp r0, #0xb
bne _080420B0
ldr r1, _0804227C @ =gMain
ldr r2, _08042284 @ =0x000019F8
adds r0, r1, r2
movs r2, #0
strh r2, [r0]
ldr r5, _08042288 @ =0x00001AB0
adds r0, r1, r5
strh r2, [r0]
ldr r2, _0804229C @ =0x00001B68
adds r0, r1, r2
movs r2, #1
strh r2, [r0]
movs r5, #0xe1
lsls r5, r5, #5
adds r1, r1, r5
strh r2, [r1]
_080420B0:
ldr r0, [r4]
adds r0, r0, r3
ldrh r0, [r0]
cmp r0, #0xe
bne _080420CC
ldr r0, _0804227C @ =gMain
ldr r2, _0804229C @ =0x00001B68
adds r1, r0, r2
movs r2, #0
strh r2, [r1]
movs r3, #0xe1
lsls r3, r3, #5
_080420C8:
adds r0, r0, r3
strh r2, [r0]
_080420CC:
ldr r4, _08042274 @ =gUnknown_020314E0
mov sb, r4
ldr r1, [r4]
ldr r5, _08042278 @ =0x00000514
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0xa
bne _08042184
ldr r0, _0804228C @ =0x00000441
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _08042184
movs r3, #0x8b
lsls r3, r3, #3
adds r1, r1, r3
movs r0, #0
strh r0, [r1]
movs r1, #1
strb r1, [r2]
ldr r4, _0804227C @ =gMain
movs r5, #0xdc
lsls r5, r5, #4
adds r0, r4, r5
strh r1, [r0]
bl Random
adds r5, r0, #0
movs r0, #7
ands r5, r0
ldr r0, [r4, #0x4c]
movs r1, #0xf0
bl __umodsi3
lsls r0, r0, #0x10
movs r1, #0xf0
bl __udivsi3
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
mov r0, sb
ldr r2, [r0]
ldr r0, _080422A0 @ =gUnknown_086AF744
lsls r1, r5, #2
adds r1, r1, r0
ldrh r3, [r1]
ldr r5, _080422A4 @ =0x00000464
adds r0, r2, r5
strh r3, [r0]
ldrh r0, [r1, #2]
ldr r6, _080422A8 @ =0x00000466
adds r2, r2, r6
strh r0, [r2]
adds r0, r7, #0
bl sub_C74
mov r1, sb
ldr r4, [r1]
adds r5, r4, r5
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0xfa
lsls r2, r2, #1
mov r8, r2
mov r1, r8
bl __divsi3
ldrh r1, [r5]
adds r1, r1, r0
ldr r3, _080422AC @ =0x0000045C
adds r4, r4, r3
strh r1, [r4]
adds r0, r7, #0
bl sub_C24
mov r5, sb
ldr r4, [r5]
adds r6, r4, r6
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, r8
bl __divsi3
ldrh r1, [r6]
adds r1, r1, r0
ldr r0, _080422B0 @ =0x0000045E
adds r4, r4, r0
strh r1, [r4]
ldr r0, _080422B4 @ =0x0000012D
bl m4aSongNumStart
_08042184:
ldr r1, _08042274 @ =gUnknown_020314E0
mov sb, r1
ldr r1, [r1]
ldr r2, _08042278 @ =0x00000514
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0x10
bne _08042240
ldr r3, _08042290 @ =0x00000442
adds r2, r1, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _08042240
ldr r4, _080422B8 @ =0x0000045A
adds r1, r1, r4
movs r0, #0
strh r0, [r1]
movs r1, #1
strb r1, [r2]
ldr r4, _0804227C @ =gMain
ldr r5, _080422BC @ =0x00000E78
adds r0, r4, r5
strh r1, [r0]
bl Random
movs r1, #7
ands r1, r0
adds r1, #8
adds r5, r1, #0
ldr r0, [r4, #0x4c]
adds r0, #0x78
movs r1, #0xf0
bl __umodsi3
lsls r0, r0, #0x10
movs r1, #0xf0
bl __udivsi3
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
mov r0, sb
ldr r2, [r0]
ldr r0, _080422A0 @ =gUnknown_086AF744
lsls r1, r5, #2
adds r1, r1, r0
ldrh r3, [r1]
movs r5, #0x8d
lsls r5, r5, #3
adds r0, r2, r5
strh r3, [r0]
ldrh r0, [r1, #2]
ldr r6, _080422C0 @ =0x0000046A
adds r2, r2, r6
strh r0, [r2]
adds r0, r7, #0
bl sub_C74
mov r1, sb
ldr r4, [r1]
adds r5, r4, r5
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0xfa
lsls r2, r2, #1
mov r8, r2
mov r1, r8
bl __divsi3
ldrh r1, [r5]
adds r1, r1, r0
movs r3, #0x8c
lsls r3, r3, #3
adds r4, r4, r3
strh r1, [r4]
adds r0, r7, #0
bl sub_C24
mov r5, sb
ldr r4, [r5]
adds r6, r4, r6
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, r8
bl __divsi3
ldrh r1, [r6]
adds r1, r1, r0
ldr r0, _080422C4 @ =0x00000462
adds r4, r4, r0
strh r1, [r4]
ldr r0, _080422B4 @ =0x0000012D
bl m4aSongNumStart
_08042240:
ldr r0, _08042274 @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0x99
lsls r3, r3, #3
adds r2, r1, r3
ldrb r3, [r2]
movs r1, #0
ldrsb r1, [r2, r1]
mov sl, r0
cmp r1, #0
bgt _08042258
b _0804235E
_08042258:
subs r0, r3, #1
strb r0, [r2]
mov r4, sl
ldr r5, [r4]
movs r0, #0x99
lsls r0, r0, #3
adds r1, r5, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xb
bgt _080422CC
ldr r4, _080422C8 @ =gUnknown_086AEF28
b _0804232E
.align 2, 0
_08042274: .4byte gUnknown_020314E0
_08042278: .4byte 0x00000514
_0804227C: .4byte gMain
_08042280: .4byte 0x00001888
_08042284: .4byte 0x000019F8
_08042288: .4byte 0x00001AB0
_0804228C: .4byte 0x00000441
_08042290: .4byte 0x00000442
_08042294: .4byte 0x0000132C
_08042298: .4byte 0xFFFFFE0C
_0804229C: .4byte 0x00001B68
_080422A0: .4byte gUnknown_086AF744
_080422A4: .4byte 0x00000464
_080422A8: .4byte 0x00000466
_080422AC: .4byte 0x0000045C
_080422B0: .4byte 0x0000045E
_080422B4: .4byte 0x0000012D
_080422B8: .4byte 0x0000045A
_080422BC: .4byte 0x00000E78
_080422C0: .4byte 0x0000046A
_080422C4: .4byte 0x00000462
_080422C8: .4byte gUnknown_086AEF28
_080422CC:
cmp r0, #0x17
ble _08042300
cmp r0, #0x23
bgt _080422FC
ldr r4, _080422F8 @ =gUnknown_086AEF28
movs r0, #0
ldrsb r0, [r1, r0]
movs r1, #0xc
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
adds r0, r0, r4
movs r1, #0
ldrsh r0, [r0, r1]
lsls r0, r0, #2
movs r2, #0xab
lsls r2, r2, #2
adds r1, r5, r2
strh r0, [r1]
b _08042344
.align 2, 0
_080422F8: .4byte gUnknown_086AEF28
_080422FC:
cmp r0, #0x2f
bgt _08042328
_08042300:
ldr r4, _08042324 @ =gUnknown_086AEF28
movs r0, #0
ldrsb r0, [r1, r0]
movs r1, #0xc
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
adds r0, r0, r4
movs r3, #0
ldrsh r0, [r0, r3]
lsls r0, r0, #1
movs r4, #0xab
lsls r4, r4, #2
adds r1, r5, r4
strh r0, [r1]
b _08042344
.align 2, 0
_08042324: .4byte gUnknown_086AEF28
_08042328:
ldr r4, _08042394 @ =gUnknown_086AEF28
movs r0, #0
ldrsb r0, [r1, r0]
_0804232E:
movs r1, #0xc
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x17
adds r0, r0, r4
ldrh r1, [r0]
movs r2, #0xab
lsls r2, r2, #2
adds r0, r5, r2
strh r1, [r0]
_08042344:
mov r3, sl
ldr r2, [r3]
movs r4, #0x99
lsls r4, r4, #3
adds r0, r2, r4
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _0804235E
movs r5, #0xab
lsls r5, r5, #2
adds r0, r2, r5
strh r1, [r0]
_0804235E:
mov r0, sl
ldr r2, [r0]
movs r3, #0xa1
lsls r3, r3, #3
adds r1, r2, r3
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0
ble _080423C2
adds r1, r0, #0
cmp r1, #0
bge _08042378
adds r0, r1, #3
_08042378:
asrs r0, r0, #2
lsls r0, r0, #2
subs r0, r1, r0
lsls r0, r0, #0x10
asrs r1, r0, #0x10
lsrs r0, r0, #0x1f
adds r1, r1, r0
asrs r1, r1, #1
cmp r1, #0
beq _0804239C
ldr r0, _08042398 @ =0x000002AA
adds r1, r2, r0
movs r0, #2
b _080423A2
.align 2, 0
_08042394: .4byte gUnknown_086AEF28
_08042398: .4byte 0x000002AA
_0804239C:
ldr r3, _080423D0 @ =0x000002AA
adds r1, r2, r3
ldr r0, _080423D4 @ =0x0000FFFE
_080423A2:
strh r0, [r1]
mov r5, sl
ldr r4, [r5]
movs r0, #0xa1
lsls r0, r0, #3
adds r1, r4, r0
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r1, r0, #0x10
cmp r1, #0
bne _080423C2
ldr r2, _080423D0 @ =0x000002AA
adds r0, r4, r2
strh r1, [r0]
_080423C2:
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
_080423D0: .4byte 0x000002AA
_080423D4: .4byte 0x0000FFFE
thumb_func_start sub_423D8
sub_423D8: @ 0x080423D8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _0804267C @ =gUnknown_020314E0
ldr r3, [r0]
ldr r2, _08042680 @ =0x00000506
adds r1, r3, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov r8, r0
cmp r1, #0
beq _080423F8
b _08042AB2
_080423F8:
ldr r4, _08042684 @ =0x00000516
adds r1, r3, r4
ldrh r2, [r1]
movs r0, #0xac
lsls r0, r0, #2
cmp r2, r0
bls _08042408
b _08042AB2
_08042408:
subs r0, #0x78
cmp r2, r0
bhi _08042484
adds r0, r2, #0
movs r1, #0xa0
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x14
bne _08042428
ldr r0, _08042688 @ =gMPlayInfo_SE1
ldr r1, _0804268C @ =0x0000FFFF
movs r2, #0x80
bl m4aMPlayVolumeControl
_08042428:
mov r3, r8
ldr r0, [r3]
adds r0, r0, r4
ldrh r0, [r0]
movs r1, #0xa0
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x5a
bne _08042446
ldr r0, _08042688 @ =gMPlayInfo_SE1
movs r1, #5
bl m4aMPlayFadeOutTemporarily
_08042446:
mov r1, r8
ldr r0, [r1]
adds r0, r0, r4
ldrh r0, [r0]
movs r1, #0xa0
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #1
bne _08042464
movs r0, #0x97
lsls r0, r0, #1
bl m4aSongNumStart
_08042464:
mov r2, r8
ldr r0, [r2]
adds r0, r0, r4
ldrh r0, [r0]
movs r1, #0xa0
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bne _08042484
ldr r0, _08042688 @ =gMPlayInfo_SE1
ldr r1, _0804268C @ =0x0000FFFF
movs r2, #0x33
bl m4aMPlayVolumeControl
_08042484:
ldr r2, _0804267C @ =gUnknown_020314E0
ldr r5, [r2]
ldr r4, _08042684 @ =0x00000516
adds r3, r5, r4
ldrh r1, [r3]
ldr r0, _08042690 @ =0x000001FF
mov r8, r2
cmp r1, r0
bls _080424AA
adds r0, r1, #0
ldr r3, _08042694 @ =0xFFFFFE00
adds r0, r0, r3
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
subs r0, #0x58
adds r1, r5, #0
adds r1, #0xe6
strh r0, [r1]
_080424AA:
mov r0, r8
ldr r2, [r0]
adds r0, r2, r4
ldrh r1, [r0]
movs r0, #0x9c
lsls r0, r0, #2
cmp r1, r0
bne _080424C4
movs r3, #0xa5
lsls r3, r3, #2
adds r1, r2, r3
movs r0, #1
strb r0, [r1]
_080424C4:
mov r0, r8
ldr r3, [r0]
adds r2, r3, r4
ldrh r1, [r2]
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
bhi _080424E0
adds r0, r1, #0
lsrs r0, r0, #1
movs r2, #0xa3
lsls r2, r2, #3
adds r1, r3, r2
strh r0, [r1]
_080424E0:
mov r3, r8
ldr r2, [r3]
adds r0, r2, r4
ldrh r1, [r0]
movs r0, #0xac
lsls r0, r0, #2
cmp r1, r0
bne _080424F8
ldr r0, _08042680 @ =0x00000506
adds r1, r2, r0
movs r0, #1
strb r0, [r1]
_080424F8:
mov r1, r8
ldr r2, [r1]
adds r0, r2, r4
ldrh r1, [r0]
adds r1, #1
strh r1, [r0]
lsls r1, r1, #0x10
movs r0, #0x8e
lsls r0, r0, #0x12
cmp r1, r0
bhi _0804251C
ldr r3, _08042698 @ =0x00000392
adds r1, r2, r3
ldrh r0, [r1]
cmp r0, #5
bls _0804251C
subs r0, #1
strh r0, [r1]
_0804251C:
mov r4, r8
ldr r2, [r4]
ldr r3, _08042684 @ =0x00000516
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #1
bne _08042562
movs r0, #0xf1
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #0x96
lsls r0, r0, #1
strh r0, [r1]
ldr r1, _0804269C @ =0x000003C6
adds r0, r2, r1
adds r1, #0xea
strh r1, [r0]
movs r4, #0xf2
lsls r4, r4, #2
adds r0, r2, r4
strh r1, [r0]
ldr r0, _080426A0 @ =0x000003CA
adds r1, r2, r0
movs r0, #0xc8
lsls r0, r0, #1
strh r0, [r1]
adds r4, #4
adds r1, r2, r4
movs r0, #0xfa
lsls r0, r0, #2
strh r0, [r1]
subs r0, #0x1a
adds r1, r2, r0
ldr r0, _080426A4 @ =0x000009C4
strh r0, [r1]
_08042562:
mov r1, r8
ldr r2, [r1]
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0x58
bne _08042584
movs r4, #0xf1
lsls r4, r4, #2
adds r1, r2, r4
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r1]
ldr r0, _0804269C @ =0x000003C6
adds r1, r2, r0
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
_08042584:
mov r1, r8
ldr r2, [r1]
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0x78
bne _080425A6
movs r4, #0xf2
lsls r4, r4, #2
adds r1, r2, r4
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
ldr r0, _080426A0 @ =0x000003CA
adds r1, r2, r0
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
_080425A6:
mov r1, r8
ldr r2, [r1]
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0xaa
bne _080425C8
movs r4, #0xf3
lsls r4, r4, #2
adds r1, r2, r4
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
ldr r0, _080426A8 @ =0x000003CE
adds r1, r2, r0
movs r0, #0xfa
lsls r0, r0, #3
strh r0, [r1]
_080425C8:
mov r1, r8
ldr r2, [r1]
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0xd7
bne _080425E8
movs r4, #0xf1
lsls r4, r4, #2
adds r1, r2, r4
movs r0, #0
strh r0, [r1]
ldr r0, _0804269C @ =0x000003C6
adds r1, r2, r0
movs r0, #0xfa
lsls r0, r0, #3
strh r0, [r1]
_080425E8:
mov r1, r8
ldr r2, [r1]
adds r0, r2, r3
ldrh r1, [r0]
ldr r0, _080426AC @ =0x00000131
cmp r1, r0
bne _08042608
movs r4, #0xf2
lsls r4, r4, #2
adds r0, r2, r4
movs r1, #0xe1
lsls r1, r1, #3
strh r1, [r0]
adds r4, #2
adds r0, r2, r4
strh r1, [r0]
_08042608:
mov r0, r8
ldr r2, [r0]
adds r0, r2, r3
ldrh r1, [r0]
ldr r0, _080426B0 @ =0x0000013B
cmp r1, r0
bne _0804262A
movs r3, #0xf3
lsls r3, r3, #2
adds r1, r2, r3
subs r0, #0xf
strh r0, [r1]
ldr r4, _080426A8 @ =0x000003CE
adds r1, r2, r4
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
_0804262A:
ldr r6, _080426B4 @ =gUnknown_0200BBA0
ldrh r0, [r6]
movs r1, #0xb8
adds r1, r1, r6
mov sb, r1
movs r2, #0xb8
lsls r2, r2, #1
adds r2, r2, r6
mov sl, r2
cmp r0, #0
beq _08042728
mov r3, r8
ldr r0, [r3]
movs r4, #0xf1
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #2]
mov r2, r8
ldr r0, [r2]
ldr r3, _0804269C @ =0x000003C6
adds r0, r0, r3
movs r4, #0
ldrsh r0, [r0, r4]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x3c
rsbs r1, r1, #0
cmp r0, r1
bgt _080426B8
strh r1, [r6, #4]
b _080426C6
.align 2, 0
_0804267C: .4byte gUnknown_020314E0
_08042680: .4byte 0x00000506
_08042684: .4byte 0x00000516
_08042688: .4byte gMPlayInfo_SE1
_0804268C: .4byte 0x0000FFFF
_08042690: .4byte 0x000001FF
_08042694: .4byte 0xFFFFFE00
_08042698: .4byte 0x00000392
_0804269C: .4byte 0x000003C6
_080426A0: .4byte 0x000003CA
_080426A4: .4byte 0x000009C4
_080426A8: .4byte 0x000003CE
_080426AC: .4byte 0x00000131
_080426B0: .4byte 0x0000013B
_080426B4: .4byte gUnknown_0200BBA0
_080426B8:
mov r0, r8
ldr r1, [r0]
ldr r2, _0804276C @ =0x000003C6
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #0x14
strh r0, [r1]
_080426C6:
movs r3, #4
ldrsh r0, [r6, r3]
cmp r0, #0xc8
ble _080426D2
movs r0, #0xb4
strh r0, [r6, #4]
_080426D2:
movs r0, #0
ldr r4, _08042770 @ =gUnknown_0200BC58
mov sb, r4
movs r1, #0xb8
add r1, sb
mov sl, r1
ldr r7, _08042774 @ =gOamBuffer
ldr r2, _08042778 @ =0xFFFFFE00
mov ip, r2
_080426E4:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _0804277C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _080426E4
_08042728:
mov r6, sb
ldrh r0, [r6]
cmp r0, #0
beq _080427EE
mov r3, r8
ldr r0, [r3]
movs r4, #0xf2
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #2]
mov r2, r8
ldr r0, [r2]
ldr r3, _08042780 @ =0x000003CA
adds r0, r0, r3
movs r4, #0
ldrsh r0, [r0, r4]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x3c
rsbs r1, r1, #0
cmp r0, r1
bgt _08042788
ldr r0, _08042784 @ =0x0000FFC4
strh r0, [r6, #4]
b _08042796
.align 2, 0
_0804276C: .4byte 0x000003C6
_08042770: .4byte gUnknown_0200BC58
_08042774: .4byte gOamBuffer
_08042778: .4byte 0xFFFFFE00
_0804277C: .4byte 0x000001FF
_08042780: .4byte 0x000003CA
_08042784: .4byte 0x0000FFC4
_08042788:
mov r0, r8
ldr r1, [r0]
ldr r2, _08042834 @ =0x000003CA
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #0xc
strh r0, [r1]
_08042796:
movs r3, #4
ldrsh r0, [r6, r3]
cmp r0, #0xc8
ble _080427A2
movs r0, #0xb4
strh r0, [r6, #4]
_080427A2:
movs r0, #0
ldr r7, _08042838 @ =gOamBuffer
ldr r4, _0804283C @ =0xFFFFFE00
mov ip, r4
_080427AA:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08042840 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _080427AA
_080427EE:
mov r6, sl
ldrh r0, [r6]
cmp r0, #0
beq _080428B2
mov r3, r8
ldr r0, [r3]
movs r4, #0xf3
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #2]
mov r2, r8
ldr r0, [r2]
ldr r3, _08042844 @ =0x000003CE
adds r0, r0, r3
movs r4, #0
ldrsh r0, [r0, r4]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x3c
rsbs r1, r1, #0
cmp r0, r1
bgt _0804284C
ldr r0, _08042848 @ =0x0000FFC4
strh r0, [r6, #4]
b _0804285A
.align 2, 0
_08042834: .4byte 0x000003CA
_08042838: .4byte gOamBuffer
_0804283C: .4byte 0xFFFFFE00
_08042840: .4byte 0x000001FF
_08042844: .4byte 0x000003CE
_08042848: .4byte 0x0000FFC4
_0804284C:
mov r0, r8
ldr r1, [r0]
ldr r2, _0804290C @ =0x000003CE
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #0x12
strh r0, [r1]
_0804285A:
movs r3, #4
ldrsh r0, [r6, r3]
cmp r0, #0xc8
ble _08042866
movs r0, #0xb4
strh r0, [r6, #4]
_08042866:
movs r0, #0
ldr r7, _08042910 @ =gOamBuffer
ldr r4, _08042914 @ =0xFFFFFE00
mov ip, r4
_0804286E:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08042918 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #4
ble _0804286E
_080428B2:
mov r3, r8
ldr r0, [r3]
ldr r2, _0804291C @ =0x00000516
adds r0, r0, r2
ldrh r1, [r0]
movs r0, #0xa5
lsls r0, r0, #2
cmp r1, r0
bne _080428DC
ldr r4, _08042920 @ =gMain
movs r1, #0xae
lsls r1, r1, #4
adds r0, r4, r1
movs r1, #0
strh r1, [r0]
ldr r3, _08042924 @ =0x00000B98
adds r0, r4, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r4, r3
strh r1, [r0]
_080428DC:
ldr r6, _08042928 @ =gUnknown_0200BDC8
ldrh r0, [r6]
cmp r0, #0
beq _080429CA
mov r4, r8
ldr r0, [r4]
adds r1, r0, r2
ldrh r0, [r1]
subs r0, #0xc3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi _08042930
ldr r0, _0804292C @ =gUnknown_086AF784
ldrh r1, [r1]
subs r1, #0xc3
lsrs r2, r1, #0x1f
adds r1, r1, r2
asrs r1, r1, #1
lsls r1, r1, #1
adds r1, r1, r0
ldrh r7, [r1]
b _08042938
.align 2, 0
_0804290C: .4byte 0x000003CE
_08042910: .4byte gOamBuffer
_08042914: .4byte 0xFFFFFE00
_08042918: .4byte 0x000001FF
_0804291C: .4byte 0x00000516
_08042920: .4byte gMain
_08042924: .4byte 0x00000B98
_08042928: .4byte gUnknown_0200BDC8
_0804292C: .4byte gUnknown_086AF784
_08042930:
ldrh r0, [r1]
movs r1, #3
ands r0, r1
lsrs r7, r0, #1
_08042938:
mov r0, r8
ldr r4, [r0]
movs r1, #0x83
lsls r1, r1, #3
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #2]
ldr r3, _08042A40 @ =0x0000041A
adds r4, r4, r3
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x3c
rsbs r1, r1, #0
cmp r0, r1
bge _0804296E
ldr r0, _08042A44 @ =0x0000FFC4
strh r0, [r6, #4]
_0804296E:
movs r2, #4
ldrsh r0, [r6, r2]
cmp r0, #0xb4
ble _0804297A
movs r0, #0xb4
strh r0, [r6, #4]
_0804297A:
adds r5, r6, #0
adds r5, #8
ldr r4, _08042A48 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08042A4C @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08042A50 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
lsls r1, r7, #0x10
asrs r1, r1, #0xe
adds r1, #0x7d
ldr r4, _08042A54 @ =0x000003FF
adds r0, r4, #0
ands r1, r0
ldrh r3, [r2, #4]
ldr r0, _08042A58 @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
_080429CA:
mov r1, r8
ldr r0, [r1]
ldr r4, _08042A5C @ =0x00000516
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x96
bne _08042A0A
ldr r2, _08042A60 @ =gMain
ldr r3, _08042A64 @ =0x00000D08
adds r1, r2, r3
movs r0, #1
strh r0, [r1]
mov r0, r8
ldr r1, [r0]
movs r3, #0x83
lsls r3, r3, #3
adds r2, r1, r3
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r2]
ldr r0, _08042A40 @ =0x0000041A
adds r2, r1, r0
ldr r0, _08042A68 @ =0x0000FF9C
strh r0, [r2]
subs r3, #4
adds r2, r1, r3
adds r0, #0x4f
strh r0, [r2]
ldr r0, _08042A6C @ =0x00000416
adds r1, r1, r0
movs r0, #0xe
strh r0, [r1]
_08042A0A:
mov r1, r8
ldr r3, [r1]
adds r0, r3, r4
ldrh r0, [r0]
cmp r0, #0xcd
bls _08042A70
ldr r4, _08042A6C @ =0x00000416
adds r2, r3, r4
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
movs r0, #0x83
lsls r0, r0, #3
adds r1, r3, r0
subs r4, #2
adds r0, r3, r4
ldrh r0, [r0]
ldrh r4, [r1]
adds r0, r0, r4
strh r0, [r1]
ldr r0, _08042A40 @ =0x0000041A
adds r1, r3, r0
ldrh r0, [r2]
ldrh r2, [r1]
adds r0, r0, r2
b _08042A94
.align 2, 0
_08042A40: .4byte 0x0000041A
_08042A44: .4byte 0x0000FFC4
_08042A48: .4byte gOamBuffer
_08042A4C: .4byte 0x000001FF
_08042A50: .4byte 0xFFFFFE00
_08042A54: .4byte 0x000003FF
_08042A58: .4byte 0xFFFFFC00
_08042A5C: .4byte 0x00000516
_08042A60: .4byte gMain
_08042A64: .4byte 0x00000D08
_08042A68: .4byte 0x0000FF9C
_08042A6C: .4byte 0x00000416
_08042A70:
cmp r0, #0x96
bls _08042A96
movs r4, #0x83
lsls r4, r4, #3
adds r1, r3, r4
ldr r2, _08042B2C @ =0x00000414
adds r0, r3, r2
ldrh r0, [r0]
ldrh r4, [r1]
adds r0, r0, r4
strh r0, [r1]
ldr r0, _08042B30 @ =0x0000041A
adds r1, r3, r0
adds r2, #2
adds r0, r3, r2
ldrh r0, [r0]
ldrh r3, [r1]
adds r0, r0, r3
_08042A94:
strh r0, [r1]
_08042A96:
mov r4, r8
ldr r0, [r4]
ldr r1, _08042B34 @ =0x00000516
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0xaf
lsls r0, r0, #1
cmp r1, r0
bne _08042AB2
ldr r0, _08042B38 @ =gMain
ldr r2, _08042B3C @ =0x00000D08
adds r0, r0, r2
movs r1, #0
strh r1, [r0]
_08042AB2:
mov r3, r8
ldr r1, [r3]
ldr r4, _08042B40 @ =0x00000506
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _08042AC6
b _08042DA0
_08042AC6:
ldr r5, _08042B34 @ =0x00000516
adds r2, r1, r5
ldrh r0, [r2]
cmp r0, #0xff
bhi _08042ADE
asrs r0, r0, #1
rsbs r0, r0, #0
adds r1, #0xe6
strh r0, [r1]
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
_08042ADE:
ldr r0, _08042B38 @ =gMain
movs r1, #0xae
lsls r1, r1, #4
adds r6, r0, r1
ldrh r0, [r6]
ldr r2, _08042B38 @ =gMain
ldr r3, _08042B44 @ =0x00000B98
adds r2, r2, r3
mov sb, r2
cmp r0, #0
beq _08042BC0
mov r4, r8
ldr r0, [r4]
movs r1, #0xf1
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #2]
ldr r0, [r4]
ldr r4, _08042B48 @ =0x000003C6
adds r0, r0, r4
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _08042B4C
movs r0, #0xb4
strh r0, [r6, #4]
b _08042B60
.align 2, 0
_08042B2C: .4byte 0x00000414
_08042B30: .4byte 0x0000041A
_08042B34: .4byte 0x00000516
_08042B38: .4byte gMain
_08042B3C: .4byte 0x00000D08
_08042B40: .4byte 0x00000506
_08042B44: .4byte 0x00000B98
_08042B48: .4byte 0x000003C6
_08042B4C:
mov r0, r8
ldr r1, [r0]
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0xff
bhi _08042B60
adds r1, r1, r4
ldrh r0, [r1]
adds r0, #0x14
strh r0, [r1]
_08042B60:
movs r2, #4
ldrsh r1, [r6, r2]
movs r0, #0x3c
rsbs r0, r0, #0
cmp r1, r0
bge _08042B70
ldr r0, _08042C00 @ =0x0000FFC4
strh r0, [r6, #4]
_08042B70:
movs r0, #0
ldr r3, _08042C04 @ =gUnknown_0200BC58
mov sb, r3
ldr r7, _08042C08 @ =gOamBuffer
ldr r4, _08042C0C @ =0xFFFFFE00
mov ip, r4
_08042B7C:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08042C10 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _08042B7C
_08042BC0:
mov r6, sb
ldrh r0, [r6]
cmp r0, #0
beq _08042C86
mov r3, r8
ldr r0, [r3]
movs r4, #0xf2
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #2]
mov r2, r8
ldr r0, [r2]
adds r4, #2
adds r0, r0, r4
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _08042C14
movs r0, #0xb4
strh r0, [r6, #4]
b _08042C2A
.align 2, 0
_08042C00: .4byte 0x0000FFC4
_08042C04: .4byte gUnknown_0200BC58
_08042C08: .4byte gOamBuffer
_08042C0C: .4byte 0xFFFFFE00
_08042C10: .4byte 0x000001FF
_08042C14:
mov r0, r8
ldr r1, [r0]
ldr r2, _08042CB8 @ =0x00000516
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0xff
bhi _08042C2A
adds r1, r1, r4
ldrh r0, [r1]
adds r0, #0xa
strh r0, [r1]
_08042C2A:
movs r3, #4
ldrsh r1, [r6, r3]
movs r0, #0x3c
rsbs r0, r0, #0
cmp r1, r0
bge _08042C3A
ldr r0, _08042CBC @ =0x0000FFC4
strh r0, [r6, #4]
_08042C3A:
movs r0, #0
ldr r7, _08042CC0 @ =gOamBuffer
ldr r4, _08042CC4 @ =0xFFFFFE00
mov ip, r4
_08042C42:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08042CC8 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #5
ble _08042C42
_08042C86:
ldr r6, _08042CCC @ =gUnknown_0200BDC8
ldrh r0, [r6]
cmp r0, #0
bne _08042C90
b _08042DA0
_08042C90:
mov r3, r8
ldr r0, [r3]
ldr r4, _08042CB8 @ =0x00000516
adds r1, r0, r4
ldrh r0, [r1]
subs r0, #0xbe
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi _08042CD4
ldr r0, _08042CD0 @ =gUnknown_086AF784
ldrh r1, [r1]
subs r1, #0xbe
lsrs r2, r1, #0x1f
adds r1, r1, r2
asrs r1, r1, #1
lsls r1, r1, #1
adds r1, r1, r0
ldrh r7, [r1]
b _08042CDC
.align 2, 0
_08042CB8: .4byte 0x00000516
_08042CBC: .4byte 0x0000FFC4
_08042CC0: .4byte gOamBuffer
_08042CC4: .4byte 0xFFFFFE00
_08042CC8: .4byte 0x000001FF
_08042CCC: .4byte gUnknown_0200BDC8
_08042CD0: .4byte gUnknown_086AF784
_08042CD4:
ldrh r0, [r1]
movs r1, #3
ands r0, r1
lsrs r7, r0, #1
_08042CDC:
mov r0, r8
ldr r4, [r0]
movs r1, #0x83
lsls r1, r1, #3
mov sl, r1
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #2]
ldr r3, _08042DB8 @ =0x0000041A
mov sb, r3
add r4, sb
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x3c
rsbs r1, r1, #0
cmp r0, r1
bge _08042D16
ldr r0, _08042DBC @ =0x0000FFC4
strh r0, [r6, #4]
_08042D16:
movs r2, #4
ldrsh r0, [r6, r2]
cmp r0, #0xb4
ble _08042D22
movs r0, #0xb4
strh r0, [r6, #4]
_08042D22:
adds r5, r6, #0
adds r5, #8
ldr r4, _08042DC0 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08042DC4 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08042DC8 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
lsls r1, r7, #0x10
asrs r1, r1, #0xe
adds r1, #0x7d
ldr r4, _08042DCC @ =0x000003FF
adds r0, r4, #0
ands r1, r0
ldrh r3, [r2, #4]
ldr r0, _08042DD0 @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
mov r0, r8
ldr r2, [r0]
ldr r1, _08042DD4 @ =0x00000516
adds r0, r2, r1
ldrh r0, [r0]
cmp r0, #0xa0
bls _08042DA0
mov r3, sl
adds r1, r2, r3
adds r4, #0x15
adds r0, r2, r4
ldrh r0, [r0]
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
mov r4, sb
adds r1, r2, r4
ldr r3, _08042DD8 @ =0x00000416
adds r0, r2, r3
ldrh r0, [r0]
ldrh r4, [r1]
adds r0, r0, r4
strh r0, [r1]
_08042DA0:
mov r0, r8
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0xe6
movs r3, #0
ldrsh r1, [r0, r3]
movs r0, #0x20
rsbs r0, r0, #0
cmp r1, r0
blt _08042DDC
movs r0, #0
b _08042DDE
.align 2, 0
_08042DB8: .4byte 0x0000041A
_08042DBC: .4byte 0x0000FFC4
_08042DC0: .4byte gOamBuffer
_08042DC4: .4byte 0x000001FF
_08042DC8: .4byte 0xFFFFFE00
_08042DCC: .4byte 0x000003FF
_08042DD0: .4byte 0xFFFFFC00
_08042DD4: .4byte 0x00000516
_08042DD8: .4byte 0x00000416
_08042DDC:
movs r0, #1
_08042DDE:
strb r0, [r2, #0x1a]
ldr r4, _08042E38 @ =gMain
ldr r0, _08042E3C @ =0x000002F2
adds r2, r4, r0
mov r1, r8
ldr r0, [r1]
movs r1, #0xa3
lsls r1, r1, #3
adds r0, r0, r1
ldrh r0, [r0]
ldrh r3, [r2]
adds r0, r0, r3
strh r0, [r2]
ldr r0, _08042E40 @ =0x000002EE
adds r2, r4, r0
mov r3, r8
ldr r0, [r3]
adds r0, r0, r1
ldrh r0, [r0]
ldrh r4, [r2]
adds r0, r0, r4
strh r0, [r2]
ldr r0, _08042E38 @ =gMain
ldr r3, _08042E44 @ =0x000002F6
adds r2, r0, r3
mov r4, r8
ldr r0, [r4]
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
bge _08042E20
adds r0, #3
_08042E20:
asrs r0, r0, #2
adds r0, #0xe0
ldrh r3, [r2]
adds r0, r0, r3
strh r0, [r2]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08042E38: .4byte gMain
_08042E3C: .4byte 0x000002F2
_08042E40: .4byte 0x000002EE
_08042E44: .4byte 0x000002F6
thumb_func_start sub_42E48
sub_42E48: @ 0x08042E48
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _08043198 @ =gMain
ldr r1, [r0, #0x4c]
movs r0, #0xf
movs r5, #0
ands r1, r0
cmp r5, r1
bge _08042E72
adds r4, r1, #0
_08042E5E:
bl Random
lsls r0, r5, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r4
blt _08042E5E
_08042E72:
ldr r1, _08043198 @ =gMain
ldr r0, [r1, #0x4c]
str r0, [r1, #0x48]
ldr r4, _0804319C @ =gUnknown_020314E0
ldr r0, [r4]
movs r6, #0
movs r3, #0
strh r3, [r0, #0x18]
strb r6, [r0, #0x17]
ldr r0, [r4]
strb r6, [r0, #0x13]
ldr r0, [r4]
movs r2, #0xa5
lsls r2, r2, #2
adds r0, r0, r2
movs r5, #1
mov r8, r5
mov r7, r8
strb r7, [r0]
ldr r2, [r4]
adds r5, r2, #0
adds r5, #0x6c
movs r1, #0xe1
lsls r1, r1, #5
adds r0, r1, #0
ldrh r7, [r5]
adds r0, r0, r7
ldr r7, _080431A0 @ =0x00000296
adds r1, r2, r7
strh r0, [r1]
strh r3, [r5]
ldr r1, _080431A4 @ =0x00000392
adds r0, r2, r1
strh r3, [r0]
ldr r5, _080431A8 @ =0x00000383
adds r2, r2, r5
strb r6, [r2]
ldr r0, [r4]
adds r7, #0xf2
adds r0, r0, r7
strb r6, [r0]
ldr r0, [r4]
ldr r1, _080431AC @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
mov r2, r8
strb r2, [r0]
ldr r0, [r4]
strb r2, [r0, #0x1f]
ldr r2, [r4]
adds r1, r2, r1
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
ldr r0, [r1]
strh r3, [r0, #6]
adds r5, #3
adds r2, r2, r5
strb r6, [r2]
ldr r1, [r4]
ldr r7, _080431B0 @ =0x0000053A
adds r0, r1, r7
strh r3, [r0]
ldr r2, _080431B4 @ =0x00000542
adds r0, r1, r2
strh r3, [r0]
ldr r5, _080431B8 @ =0x00000544
adds r0, r1, r5
str r3, [r0]
adds r7, #0x10
adds r1, r1, r7
strb r6, [r1]
ldr r0, [r4]
movs r2, #0xe5
lsls r2, r2, #2
adds r1, r0, r2
strh r3, [r1]
adds r5, #0x4c
adds r0, r0, r5
strb r6, [r0]
ldr r0, [r4]
adds r7, #0x47
adds r0, r0, r7
strb r6, [r0]
ldr r1, [r4]
ldr r2, _080431BC @ =0x00000592
adds r0, r1, r2
strh r3, [r0]
adds r5, #4
adds r0, r1, r5
strh r3, [r0]
adds r7, #5
adds r0, r1, r7
strh r3, [r0]
adds r1, #0x7e
mov r0, r8
strh r0, [r1]
movs r5, #0
movs r6, #0xe8
lsls r6, r6, #2
_08042F3C:
ldr r0, [r4]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r0, r0, r6
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r4]
ldr r2, _080431C0 @ =0x000003A3
adds r0, r0, r2
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r4]
lsls r2, r1, #1
movs r5, #0xec
lsls r5, r5, #2
adds r0, r0, r5
adds r0, r0, r2
strh r3, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #2
ble _08042F3C
movs r5, #0
ldr r4, _0804319C @ =gUnknown_020314E0
movs r3, #0
_08042F72:
ldr r0, [r4]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
movs r7, #0xa6
lsls r7, r7, #3
adds r0, r0, r7
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r4]
ldr r2, _080431C4 @ =0x00000533
adds r0, r0, r2
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r4]
ldr r5, _080431C8 @ =0x00000536
adds r0, r0, r5
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r4]
lsls r2, r1, #1
adds r7, #0xc
adds r0, r0, r7
adds r0, r0, r2
strh r3, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #2
ble _08042F72
movs r5, #0
ldr r6, _0804319C @ =gUnknown_020314E0
movs r4, #0
_08042FB4:
ldr r0, [r6]
lsls r3, r5, #0x10
asrs r3, r3, #0x10
ldr r1, _080431CC @ =0x0000052C
adds r0, r0, r1
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
ldr r2, _080431D0 @ =0x0000052E
adds r0, r0, r2
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
movs r5, #0xa9
lsls r5, r5, #3
adds r0, r0, r5
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
ldr r7, _080431D4 @ =0x0000054B
adds r0, r0, r7
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r1, #0x21
adds r0, r0, r1
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r2, #0x21
adds r0, r0, r2
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r5, #9
adds r0, r0, r5
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r7, #8
adds r0, r0, r7
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r1, #8
adds r0, r0, r1
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r2, #8
adds r0, r0, r2
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r5, #8
adds r0, r0, r5
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r7, #8
adds r0, r0, r7
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r1, #8
adds r0, r0, r1
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r6]
adds r2, #8
adds r0, r0, r2
adds r0, r0, r3
strb r4, [r0]
ldr r2, [r6]
lsls r1, r3, #1
adds r5, #9
adds r0, r2, r5
adds r0, r0, r1
strh r4, [r0]
adds r7, #0xb
adds r0, r2, r7
adds r0, r0, r1
strh r4, [r0]
adds r5, #8
adds r0, r2, r5
adds r0, r0, r1
strh r4, [r0]
lsls r0, r3, #2
adds r0, r2, r0
adds r7, #0xa
adds r1, r0, r7
strh r4, [r1]
adds r5, #8
adds r1, r0, r5
strh r4, [r1]
adds r7, #8
adds r1, r0, r7
strh r4, [r1]
ldr r1, _080431D8 @ =0x0000057A
adds r0, r0, r1
strh r4, [r0]
lsls r1, r3, #3
adds r5, #0xe
adds r0, r2, r5
adds r0, r0, r1
str r4, [r0]
adds r7, #0xc
adds r2, r2, r7
adds r2, r2, r1
str r4, [r2]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _08042FB4
ldr r0, _0804319C @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0
strb r0, [r1, #0x1a]
bl sub_4387C
bl sub_43500
bl sub_44D58
bl sub_45E08
movs r5, #0
ldr r6, _080431DC @ =gUnknown_03005C00
movs r4, #0x80
lsls r4, r4, #3
movs r3, #0x80
lsls r3, r3, #2
ldr r2, _080431E0 @ =0x000007FF
_080430C2:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r0, r1, r4
lsls r0, r0, #1
adds r0, r0, r6
strh r3, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r2
ble _080430C2
ldr r1, _080431E4 @ =0x040000D4
ldr r2, _080431E8 @ =gUnknown_03006400
str r2, [r1]
ldr r0, _080431EC @ =0x06001000
str r0, [r1, #4]
ldr r0, _080431F0 @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _08043198 @ =gMain
ldrh r0, [r1, #0x38]
ldr r0, _080431F4 @ =0x00001C42
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3a]
ldr r0, _080431F8 @ =0x00000C04
strh r0, [r1, #0x3a]
movs r5, #0
adds r6, r1, #0
ldr r0, _0804319C @ =gUnknown_020314E0
mov r8, r0
movs r1, #0x80
lsls r1, r1, #4
adds r7, r2, r1
ldr r0, _080431FC @ =gUnknown_08137E14
mov ip, r0
ldr r1, _08043200 @ =0xFFFFF800
adds r2, r2, r1
ldr r4, _08043204 @ =0x0000013F
_08043110:
lsls r0, r5, #0x10
asrs r3, r0, #0x10
adds r0, r3, #0
cmp r3, #0
bge _0804311C
adds r0, #0x1f
_0804311C:
asrs r0, r0, #5
lsls r0, r0, #5
subs r0, r3, r0
subs r0, #2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1b
bhi _0804313C
movs r5, #0x80
lsls r5, r5, #4
adds r0, r3, r5
lsls r0, r0, #1
adds r0, r0, r2
movs r1, #0x90
lsls r1, r1, #8
strh r1, [r0]
_0804313C:
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r4
ble _08043110
ldr r0, _08043208 @ =0x000002EE
adds r1, r6, r0
movs r0, #0x7e
strh r0, [r1]
ldr r4, _080431E4 @ =0x040000D4
str r7, [r4]
ldr r0, _0804320C @ =0x06001140
str r0, [r4, #4]
ldr r0, _08043210 @ =0x80000140
str r0, [r4, #8]
ldr r0, [r4, #8]
mov r1, r8
ldr r0, [r1]
ldr r2, _08043214 @ =0x000005F6
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
add r0, ip
str r0, [r4]
ldr r0, _08043218 @ =0x05000220
str r0, [r4, #4]
ldr r5, _0804321C @ =0x80000010
str r5, [r4, #8]
ldr r0, [r4, #8]
movs r0, #0x27
bl m4aSongNumStart
ldr r0, _08043220 @ =gUnknown_081B36A4
str r0, [r4]
ldr r0, _08043224 @ =0x05000320
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08043198: .4byte gMain
_0804319C: .4byte gUnknown_020314E0
_080431A0: .4byte 0x00000296
_080431A4: .4byte 0x00000392
_080431A8: .4byte 0x00000383
_080431AC: .4byte 0x0000132C
_080431B0: .4byte 0x0000053A
_080431B4: .4byte 0x00000542
_080431B8: .4byte 0x00000544
_080431BC: .4byte 0x00000592
_080431C0: .4byte 0x000003A3
_080431C4: .4byte 0x00000533
_080431C8: .4byte 0x00000536
_080431CC: .4byte 0x0000052C
_080431D0: .4byte 0x0000052E
_080431D4: .4byte 0x0000054B
_080431D8: .4byte 0x0000057A
_080431DC: .4byte gUnknown_03005C00
_080431E0: .4byte 0x000007FF
_080431E4: .4byte 0x040000D4
_080431E8: .4byte gUnknown_03006400
_080431EC: .4byte 0x06001000
_080431F0: .4byte 0x80000800
_080431F4: .4byte 0x00001C42
_080431F8: .4byte 0x00000C04
_080431FC: .4byte gUnknown_08137E14
_08043200: .4byte 0xFFFFF800
_08043204: .4byte 0x0000013F
_08043208: .4byte 0x000002EE
_0804320C: .4byte 0x06001140
_08043210: .4byte 0x80000140
_08043214: .4byte 0x000005F6
_08043218: .4byte 0x05000220
_0804321C: .4byte 0x80000010
_08043220: .4byte gUnknown_081B36A4
_08043224: .4byte 0x05000320
thumb_func_start sub_43228
sub_43228: @ 0x08043228
push {r4, r5, lr}
ldr r1, _08043248 @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #5
bls _0804323C
b _080434BA
_0804323C:
lsls r0, r0, #2
ldr r1, _0804324C @ =_08043250
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08043248: .4byte gUnknown_020314E0
_0804324C: .4byte _08043250
_08043250: @ jump table
.4byte _08043268 @ case 0
.4byte _080432CE @ case 1
.4byte _08043342 @ case 2
.4byte _080433D4 @ case 3
.4byte _08043470 @ case 4
.4byte _080434A2 @ case 5
_08043268:
ldr r0, [r5]
ldr r1, _080432B0 @ =0x000005F7
adds r0, r0, r1
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r4, [r5]
ldrh r1, [r4, #0x18]
ldr r0, _080432B4 @ =0x00000153
cmp r1, r0
bhi _080432C0
subs r0, #0x13
cmp r1, r0
bhi _08043296
adds r0, r1, #0
movs r1, #5
bl __udivsi3
ldr r2, _080432B8 @ =0x0000FFC0
adds r0, r0, r2
adds r1, r4, #0
adds r1, #0xe6
strh r0, [r1]
_08043296:
ldr r2, [r5]
ldrh r1, [r2, #0x18]
ldr r0, _080432BC @ =0x00000145
cmp r1, r0
bne _080432AA
movs r3, #0xa5
lsls r3, r3, #2
adds r1, r2, r3
movs r0, #2
strb r0, [r1]
_080432AA:
ldr r1, [r5]
ldrh r0, [r1, #0x18]
b _0804331C
.align 2, 0
_080432B0: .4byte 0x000005F7
_080432B4: .4byte 0x00000153
_080432B8: .4byte 0x0000FFC0
_080432BC: .4byte 0x00000145
_080432C0:
adds r0, r4, #0
adds r0, #0xe6
strh r3, [r0]
strb r2, [r4, #0x13]
ldr r0, [r5]
strh r3, [r0, #0x18]
b _080434BA
_080432CE:
ldr r1, [r5]
ldr r4, _08043324 @ =0x00000296
adds r0, r1, r4
ldrh r4, [r0]
cmp r4, #0
beq _080432DC
b _080434BA
_080432DC:
movs r0, #0xa5
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #3
strb r0, [r1]
ldr r0, [r5]
ldrh r0, [r0, #0x18]
cmp r0, #0
bne _08043314
bl m4aMPlayAllStop
ldr r0, _08043328 @ =gMPlayInfo_SE1
ldr r1, _0804332C @ =gUnknown_086A2E90
bl MPlayStart
ldr r1, _08043330 @ =gMain
movs r0, #0x80
strb r0, [r1, #0xf]
ldr r0, [r5]
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r0, [r5]
ldr r2, _08043334 @ =0x00000392
adds r0, r0, r2
strh r4, [r0]
_08043314:
ldr r1, [r5]
ldrh r0, [r1, #0x18]
cmp r0, #0x3b
bhi _08043338
_0804331C:
adds r0, #1
strh r0, [r1, #0x18]
b _080434BA
.align 2, 0
_08043324: .4byte 0x00000296
_08043328: .4byte gMPlayInfo_SE1
_0804332C: .4byte gUnknown_086A2E90
_08043330: .4byte gMain
_08043334: .4byte 0x00000392
_08043338:
movs r0, #2
strb r0, [r1, #0x13]
ldr r0, [r5]
strh r4, [r0, #0x18]
b _080434BA
_08043342:
ldr r0, [r5]
ldrh r0, [r0, #0x18]
cmp r0, #0
bne _08043354
bl m4aMPlayAllStop
movs r0, #0x2b
bl m4aSongNumStart
_08043354:
ldr r2, [r5]
ldrh r0, [r2, #0x18]
cmp r0, #0x13
bhi _08043362
adds r0, #1
strh r0, [r2, #0x18]
b _080434BA
_08043362:
movs r1, #0
movs r0, #3
strb r0, [r2, #0x13]
ldr r0, [r5]
strh r1, [r0, #0x18]
ldr r2, _080433B0 @ =gMain
movs r3, #0x80
lsls r3, r3, #4
adds r0, r2, r3
movs r3, #1
movs r1, #1
strh r1, [r0]
ldr r4, _080433B4 @ =0x000008B8
adds r0, r2, r4
strh r1, [r0]
adds r4, #0xb8
adds r0, r2, r4
strh r1, [r0]
ldr r0, _080433B8 @ =0x00000A28
adds r2, r2, r0
strh r1, [r2]
ldr r1, _080433BC @ =0x040000D4
ldr r0, _080433C0 @ =gUnknown_084B77EC
str r0, [r1]
ldr r0, _080433C4 @ =0x06015800
str r0, [r1, #4]
ldr r0, _080433C8 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r5]
movs r1, #0xe5
lsls r1, r1, #2
adds r2, r0, r1
ldr r1, _080433CC @ =0x0000FF82
strh r1, [r2]
ldr r2, _080433D0 @ =0x000005FA
adds r0, r0, r2
strb r3, [r0]
b _080434BA
.align 2, 0
_080433B0: .4byte gMain
_080433B4: .4byte 0x000008B8
_080433B8: .4byte 0x00000A28
_080433BC: .4byte 0x040000D4
_080433C0: .4byte gUnknown_084B77EC
_080433C4: .4byte 0x06015800
_080433C8: .4byte 0x80000400
_080433CC: .4byte 0x0000FF82
_080433D0: .4byte 0x000005FA
_080433D4:
bl sub_45E90
ldr r1, _08043444 @ =gUnknown_020314E0
ldr r2, [r1]
ldrb r0, [r2, #0x1c]
cmp r0, #0
beq _080433E6
movs r0, #0xb5
strh r0, [r2, #0x18]
_080433E6:
ldr r2, [r1]
ldrh r0, [r2, #0x18]
cmp r0, #0xb4
bne _08043408
ldr r3, _08043448 @ =0x00000544
adds r0, r2, r3
ldr r0, [r0]
cmp r0, #0
beq _08043408
movs r0, #1
strb r0, [r2, #0x1c]
ldr r1, [r1]
ldr r0, _0804344C @ =0x00061A80
str r0, [r1, #0x38]
adds r0, r1, r3
ldr r0, [r0]
str r0, [r1, #0x3c]
_08043408:
ldr r0, _08043444 @ =gUnknown_020314E0
ldr r2, [r0]
ldrh r1, [r2, #0x18]
adds r5, r0, #0
cmp r1, #0xbd
bls _08043426
ldr r0, _08043450 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08043426
movs r0, #0x87
lsls r0, r0, #2
strh r0, [r2, #0x18]
_08043426:
ldr r1, [r5]
ldrh r2, [r1, #0x18]
ldr r0, _08043454 @ =0x0000021B
cmp r2, r0
bhi _08043458
cmp r2, #4
bne _0804343A
movs r0, #0xa4
bl m4aSongNumStart
_0804343A:
ldr r1, [r5]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
b _08043460
.align 2, 0
_08043444: .4byte gUnknown_020314E0
_08043448: .4byte 0x00000544
_0804344C: .4byte 0x00061A80
_08043450: .4byte gMain
_08043454: .4byte 0x0000021B
_08043458:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #4
strb r0, [r1, #0x13]
_08043460:
ldr r0, [r5]
ldr r4, _0804346C @ =0x000005FA
adds r0, r0, r4
movs r1, #1
b _080434B8
.align 2, 0
_0804346C: .4byte 0x000005FA
_08043470:
bl sub_45E90
ldr r0, _08043494 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #0x18]
cmp r0, #0x1d
bhi _08043498
adds r0, #1
strh r0, [r1, #0x18]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bne _080434BA
movs r0, #0xa4
bl m4aSongNumStart
b _080434BA
.align 2, 0
_08043494: .4byte gUnknown_020314E0
_08043498:
movs r0, #0
strh r0, [r1, #0x18]
movs r0, #5
strb r0, [r1, #0x13]
b _080434BA
_080434A2:
bl sub_45E90
ldr r2, _080434F4 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _080434F8 @ =0x00000386
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
ldr r2, _080434FC @ =0x000005FA
adds r0, r0, r2
_080434B8:
strb r1, [r0]
_080434BA:
bl sub_4387C
bl sub_43500
bl sub_44D58
bl sub_45E08
ldr r0, _080434F4 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _080434F8 @ =0x00000386
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080434E8
ldr r4, _080434FC @ =0x000005FA
adds r1, r1, r4
movs r0, #1
strb r0, [r1]
bl sub_350F0
_080434E8:
bl sub_472E4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080434F4: .4byte gUnknown_020314E0
_080434F8: .4byte 0x00000386
_080434FC: .4byte 0x000005FA
thumb_func_start sub_43500
sub_43500: @ 0x08043500
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _08043594 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _08043524
ldr r0, _08043598 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _08043524
bl sub_455D0
_08043524:
ldr r2, _08043594 @ =gUnknown_020314E0
ldr r0, [r2]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
ble _08043534
b _080436E8
_08043534:
ldr r0, _08043598 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
beq _0804353E
b _080436E8
_0804353E:
movs r1, #0
adds r7, r2, #0
movs r0, #0xa9
lsls r0, r0, #3
mov r8, r0
ldr r2, _0804359C @ =gUnknown_086AFAE2
mov sl, r2
_0804354C:
ldr r0, [r7]
lsls r1, r1, #0x10
asrs r4, r1, #0x10
add r0, r8
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r1
cmp r0, #0x17
bne _08043576
ldr r0, _080435A0 @ =gMPlayInfo_SE1
ldr r1, _080435A4 @ =gUnknown_086A2EAC
bl MPlayStart
ldr r1, [r7]
ldr r0, _080435A8 @ =0x00001388
str r0, [r1, #0x3c]
movs r0, #8
bl sub_11B0
_08043576:
ldr r3, [r7]
movs r6, #0xe8
lsls r6, r6, #2
adds r0, r3, r6
adds r0, r0, r4
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #1
beq _080435D4
cmp r2, #1
bgt _080435AC
cmp r2, #0
beq _080435B6
b _080436D8
.align 2, 0
_08043594: .4byte gUnknown_020314E0
_08043598: .4byte gMain
_0804359C: .4byte gUnknown_086AFAE2
_080435A0: .4byte gMPlayInfo_SE1
_080435A4: .4byte gUnknown_086A2EAC
_080435A8: .4byte 0x00001388
_080435AC:
cmp r2, #2
beq _08043628
cmp r2, #3
beq _0804366C
b _080436D8
_080435B6:
lsls r1, r4, #1
movs r5, #0xec
lsls r5, r5, #2
adds r0, r3, r5
adds r0, r0, r1
strh r2, [r0]
ldr r1, _080435D0 @ =0x000003A3
adds r0, r3, r1
adds r0, r0, r4
movs r1, #4
strb r1, [r0]
b _080436CE
.align 2, 0
_080435D0: .4byte 0x000003A3
_080435D4:
mov r2, r8
adds r0, r3, r2
adds r1, r0, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _0804367C
ldr r5, _08043624 @ =0x000003A3
adds r0, r3, r5
adds r5, r0, r4
movs r1, #0
ldrsb r1, [r5, r1]
lsls r1, r1, #2
add r1, sl
lsls r2, r4, #1
movs r6, #0xec
lsls r6, r6, #2
adds r0, r3, r6
adds r2, r0, r2
ldrh r3, [r2]
ldrh r0, [r1]
cmp r0, r3
bhi _080436A6
movs r0, #0
strh r0, [r2]
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
ldr r0, [r7]
ldr r1, _08043624 @ =0x000003A3
adds r0, r0, r1
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
bne _080436D8
movs r0, #4
strb r0, [r1]
b _080436D8
.align 2, 0
_08043624: .4byte 0x000003A3
_08043628:
mov r2, r8
adds r0, r3, r2
adds r1, r0, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _0804367C
lsls r1, r4, #1
movs r5, #0xec
lsls r5, r5, #2
adds r0, r3, r5
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #0
beq _0804365C
subs r0, #1
strh r0, [r1]
ldr r6, _08043658 @ =0x000003A3
adds r0, r3, r6
adds r0, r0, r4
movs r1, #8
b _080436D6
.align 2, 0
_08043658: .4byte 0x000003A3
_0804365C:
ldr r1, _08043668 @ =0x000003A3
adds r0, r3, r1
adds r0, r0, r4
movs r1, #7
b _080436D6
.align 2, 0
_08043668: .4byte 0x000003A3
_0804366C:
mov r2, r8
adds r0, r3, r2
adds r1, r0, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08043682
_0804367C:
subs r0, r2, #1
strb r0, [r1]
b _080436D8
_08043682:
ldr r5, _080436AC @ =0x000003A3
adds r0, r3, r5
adds r5, r0, r4
movs r1, #0
ldrsb r1, [r5, r1]
lsls r1, r1, #2
add r1, sl
lsls r0, r4, #1
mov ip, r0
movs r2, #0xec
lsls r2, r2, #2
adds r0, r3, r2
mov r3, ip
adds r2, r0, r3
ldrh r3, [r2]
ldrh r0, [r1]
cmp r0, r3
bls _080436B0
_080436A6:
adds r0, r3, #1
strh r0, [r2]
b _080436D8
.align 2, 0
_080436AC: .4byte 0x000003A3
_080436B0:
movs r0, #0
strh r0, [r2]
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
ldr r0, [r7]
ldr r5, _08043720 @ =0x000003A3
adds r0, r0, r5
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xe
ble _080436D8
movs r0, #4
strb r0, [r1]
_080436CE:
ldr r0, [r7]
adds r0, r0, r6
adds r0, r0, r4
movs r1, #1
_080436D6:
strb r1, [r0]
_080436D8:
movs r0, #0x80
lsls r0, r0, #9
add r0, sb
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _080436E8
b _0804354C
_080436E8:
ldr r6, _08043724 @ =gUnknown_0200C388
ldrh r0, [r6]
cmp r0, #0
beq _08043788
ldr r2, _08043728 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x64
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r2]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x5e
subs r0, r0, r1
strh r0, [r6, #4]
ldr r2, [r2]
movs r1, #0xa9
lsls r1, r1, #3
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0804372C
movs r0, #0
b _0804373E
.align 2, 0
_08043720: .4byte 0x000003A3
_08043724: .4byte gUnknown_0200C388
_08043728: .4byte gUnknown_020314E0
_0804372C:
ldr r1, _080437C0 @ =gUnknown_086AFAE0
ldr r3, _080437C4 @ =0x000003A3
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0]
_0804373E:
ldr r2, _080437C8 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #5
ldr r1, _080437CC @ =gUnknown_084B47EC
adds r0, r0, r1
str r0, [r2]
ldr r0, _080437D0 @ =0x060114A0
str r0, [r2, #4]
ldr r0, _080437D4 @ =0x80000300
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r5, r6, #0
adds r5, #8
ldr r4, _080437D8 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #2
ldrsh r1, [r5, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _080437DC @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _080437E0 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_08043788:
ldr r6, _080437E4 @ =gUnknown_0200C2D0
ldrh r0, [r6]
cmp r0, #0
beq _0804384E
ldr r2, _080437E8 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x8c
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r2]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x5e
subs r0, r0, r1
strh r0, [r6, #4]
ldr r2, [r2]
ldr r5, _080437EC @ =0x00000549
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _080437F0
movs r0, #0
b _08043804
.align 2, 0
_080437C0: .4byte gUnknown_086AFAE0
_080437C4: .4byte 0x000003A3
_080437C8: .4byte 0x040000D4
_080437CC: .4byte gUnknown_084B47EC
_080437D0: .4byte 0x060114A0
_080437D4: .4byte 0x80000300
_080437D8: .4byte gOamBuffer
_080437DC: .4byte 0x000001FF
_080437E0: .4byte 0xFFFFFE00
_080437E4: .4byte gUnknown_0200C2D0
_080437E8: .4byte gUnknown_020314E0
_080437EC: .4byte 0x00000549
_080437F0:
ldr r1, _0804385C @ =gUnknown_086AFAE0
movs r3, #0xe9
lsls r3, r3, #2
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0]
_08043804:
ldr r2, _08043860 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #5
ldr r1, _08043864 @ =gUnknown_084B47EC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08043868 @ =0x06010CA0
str r0, [r2, #4]
ldr r0, _0804386C @ =0x80000300
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r5, r6, #0
adds r5, #8
ldr r4, _08043870 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #2
ldrsh r1, [r5, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08043874 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08043878 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_0804384E:
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
_0804385C: .4byte gUnknown_086AFAE0
_08043860: .4byte 0x040000D4
_08043864: .4byte gUnknown_084B47EC
_08043868: .4byte 0x06010CA0
_0804386C: .4byte 0x80000300
_08043870: .4byte gOamBuffer
_08043874: .4byte 0x000001FF
_08043878: .4byte 0xFFFFFE00
thumb_func_start sub_4387C
sub_4387C: @ 0x0804387C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
ldr r0, _080438D4 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0804389A
bl _080448FC
_0804389A:
ldr r0, _080438D8 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
beq _080438A6
bl _080448FC
_080438A6:
movs r0, #0
str r0, [sp]
_080438AA:
ldr r3, _080438D4 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r1, [sp]
lsls r2, r1, #0x10
asrs r1, r2, #0x10
ldr r4, _080438DC @ =0x00000553
adds r0, r0, r4
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r2
cmp r0, #0xe
bls _080438CA
bl _080448E4
_080438CA:
lsls r0, r0, #2
ldr r1, _080438E0 @ =_080438E4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080438D4: .4byte gUnknown_020314E0
_080438D8: .4byte gMain
_080438DC: .4byte 0x00000553
_080438E0: .4byte _080438E4
_080438E4: @ jump table
.4byte _08043920 @ case 0
.4byte _08043980 @ case 1
.4byte _08043BF8 @ case 2
.4byte _08043CB0 @ case 3
.4byte _08043DC0 @ case 4
.4byte _08043EB8 @ case 5
.4byte _08043F04 @ case 6
.4byte _08043FB0 @ case 7
.4byte _0804409C @ case 8
.4byte _080442A6 @ case 9
.4byte _08044344 @ case 10
.4byte _08044450 @ case 11
.4byte _080445BC @ case 12
.4byte _08044624 @ case 13
.4byte _080446AC @ case 14
_08043920:
ldr r5, _08043968 @ =gUnknown_020314E0
ldr r1, [r5]
mov r6, sb
asrs r3, r6, #0x10
ldr r7, _0804396C @ =0x00000553
adds r1, r1, r7
adds r1, r1, r3
movs r4, #0
movs r0, #1
strb r0, [r1]
ldr r0, [r5]
ldr r1, _08043970 @ =0x0000055B
adds r0, r0, r1
adds r0, r0, r3
strb r4, [r0]
ldr r1, [r5]
lsls r2, r3, #1
ldr r5, _08043974 @ =0x00000562
adds r0, r1, r5
adds r0, r0, r2
movs r2, #0
strh r4, [r0]
ldr r6, _08043978 @ =0x0000054F
adds r1, r1, r6
adds r1, r1, r3
strb r2, [r1]
ldr r7, _08043968 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0804397C @ =0x00000557
adds r0, r0, r1
adds r0, r0, r3
movs r1, #0xff
strb r1, [r0]
bl _080448E4
.align 2, 0
_08043968: .4byte gUnknown_020314E0
_0804396C: .4byte 0x00000553
_08043970: .4byte 0x0000055B
_08043974: .4byte 0x00000562
_08043978: .4byte 0x0000054F
_0804397C: .4byte 0x00000557
_08043980:
ldr r2, _080439A4 @ =gUnknown_020314E0
ldr r0, [r2]
mov r3, sb
asrs r5, r3, #0x10
lsls r1, r5, #1
ldr r4, _080439A8 @ =0x00000562
adds r0, r0, r4
adds r2, r0, r1
ldrh r1, [r2]
lsls r0, r5, #4
subs r0, r0, r5
lsls r0, r0, #1
adds r0, #0x78
cmp r1, r0
bge _080439AC
adds r0, r1, #1
strh r0, [r2]
b _08043BCA
.align 2, 0
_080439A4: .4byte gUnknown_020314E0
_080439A8: .4byte 0x00000562
_080439AC:
bl Random
adds r1, r0, #0
ldr r6, _08043A34 @ =gMain
ldr r0, [r6, #0x4c]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r7, _08043A38 @ =gUnknown_020314E0
ldr r4, [r7]
ldr r7, _08043A3C @ =0x00000557
adds r4, r4, r7
adds r4, r4, r5
movs r1, #6
bl __umodsi3
strb r0, [r4]
ldr r1, _08043A38 @ =gUnknown_020314E0
ldr r0, [r1]
adds r4, r0, r7
movs r2, #0xab
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0
ldrsb r1, [r4, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bne _080439F8
adds r4, r4, r5
movs r0, #0
ldrsb r0, [r4, r0]
adds r0, #2
movs r1, #6
bl __modsi3
strb r0, [r4]
_080439F8:
ldr r4, _08043A38 @ =gUnknown_020314E0
ldr r3, [r4]
adds r0, r3, r7
adds r0, r0, r5
movs r4, #0
ldrsb r4, [r0, r4]
cmp r4, #1
bgt _08043AA0
cmp r4, #0
bne _08043A48
lsls r2, r5, #3
movs r6, #0xb0
lsls r6, r6, #3
adds r0, r3, r6
adds r0, r0, r2
movs r1, #0x92
lsls r1, r1, #7
str r1, [r0]
ldr r7, _08043A40 @ =0x00000584
adds r0, r3, r7
adds r0, r0, r2
movs r1, #0xab
lsls r1, r1, #8
str r1, [r0]
ldr r1, _08043A44 @ =0x00000551
adds r0, r3, r1
adds r0, r0, r5
strb r4, [r0]
b _08043A6E
.align 2, 0
_08043A34: .4byte gMain
_08043A38: .4byte gUnknown_020314E0
_08043A3C: .4byte 0x00000557
_08043A40: .4byte 0x00000584
_08043A44: .4byte 0x00000551
_08043A48:
lsls r2, r5, #3
movs r4, #0xb0
lsls r4, r4, #3
adds r0, r3, r4
adds r0, r0, r2
movs r1, #0xa7
lsls r1, r1, #8
str r1, [r0]
ldr r6, _08043A8C @ =0x00000584
adds r0, r3, r6
adds r0, r0, r2
movs r1, #0xac
lsls r1, r1, #8
str r1, [r0]
ldr r7, _08043A90 @ =0x00000551
adds r0, r3, r7
adds r0, r0, r5
movs r1, #1
strb r1, [r0]
_08043A6E:
ldr r2, _08043A94 @ =gUnknown_020314E0
ldr r1, [r2]
mov r0, sb
asrs r3, r0, #0x10
ldr r4, _08043A98 @ =0x0000055B
adds r1, r1, r4
adds r1, r1, r3
movs r0, #9
strb r0, [r1]
ldr r0, [r2]
ldr r5, _08043A9C @ =0x00000553
adds r0, r0, r5
adds r0, r0, r3
movs r1, #7
b _08043BB6
.align 2, 0
_08043A8C: .4byte 0x00000584
_08043A90: .4byte 0x00000551
_08043A94: .4byte gUnknown_020314E0
_08043A98: .4byte 0x0000055B
_08043A9C: .4byte 0x00000553
_08043AA0:
bl Random
ldr r1, _08043AF8 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r3, _08043AFC @ =0x00000551
adds r2, r2, r3
adds r2, r2, r5
ldr r1, [r6, #0x4c]
adds r1, r1, r0
movs r0, #1
ands r1, r0
strb r1, [r2]
ldr r2, _08043AF8 @ =gUnknown_020314E0
ldr r1, [r2]
adds r3, r1, r3
adds r3, r3, r5
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _08043B24
adds r0, r1, r7
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bne _08043B00
bl Random
ldr r3, _08043AF8 @ =gUnknown_020314E0
ldr r4, [r3]
lsls r1, r5, #3
movs r5, #0xb0
lsls r5, r5, #3
adds r4, r4, r5
adds r4, r4, r1
movs r1, #0x65
bl __umodsi3
movs r1, #5
bl __udivsi3
adds r0, #0x50
b _08043B74
.align 2, 0
_08043AF8: .4byte gUnknown_020314E0
_08043AFC: .4byte 0x00000551
_08043B00:
bl Random
ldr r6, _08043B20 @ =gUnknown_020314E0
ldr r4, [r6]
lsls r1, r5, #3
movs r7, #0xb0
lsls r7, r7, #3
adds r4, r4, r7
adds r4, r4, r1
movs r1, #0x65
bl __umodsi3
lsrs r0, r0, #1
adds r0, #0x32
b _08043B74
.align 2, 0
_08043B20: .4byte gUnknown_020314E0
_08043B24:
adds r0, r1, r7
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bne _08043B58
bl Random
ldr r1, _08043B54 @ =gUnknown_020314E0
ldr r4, [r1]
lsls r1, r5, #3
movs r2, #0xb0
lsls r2, r2, #3
adds r4, r4, r2
adds r4, r4, r1
movs r1, #0x65
bl __umodsi3
movs r1, #5
bl __udivsi3
b _08043B72
.align 2, 0
_08043B54: .4byte gUnknown_020314E0
_08043B58:
bl Random
ldr r3, _08043BE0 @ =gUnknown_020314E0
ldr r4, [r3]
lsls r1, r5, #3
movs r5, #0xb0
lsls r5, r5, #3
adds r4, r4, r5
adds r4, r4, r1
movs r1, #0x65
bl __umodsi3
lsrs r0, r0, #1
_08043B72:
adds r0, #0x8c
_08043B74:
lsls r0, r0, #8
str r0, [r4]
ldr r5, _08043BE0 @ =gUnknown_020314E0
ldr r2, [r5]
mov r6, sb
asrs r4, r6, #0x10
lsls r0, r4, #3
ldr r7, _08043BE4 @ =0x00000584
adds r3, r2, r7
adds r3, r3, r0
ldr r1, _08043BE8 @ =0x00000557
adds r0, r2, r1
adds r0, r0, r4
movs r1, #0
ldrsb r1, [r0, r1]
subs r1, #2
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
movs r6, #0xaf
lsls r6, r6, #8
adds r0, r0, r6
str r0, [r3]
subs r7, #0x29
adds r2, r2, r7
adds r2, r2, r4
movs r0, #0
strb r0, [r2]
ldr r0, [r5]
ldr r1, _08043BEC @ =0x00000553
adds r0, r0, r1
adds r0, r0, r4
movs r1, #2
_08043BB6:
strb r1, [r0]
ldr r2, _08043BE0 @ =gUnknown_020314E0
ldr r0, [r2]
mov r3, sb
asrs r1, r3, #0xf
ldr r4, _08043BF0 @ =0x00000562
adds r0, r0, r4
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
_08043BCA:
ldr r5, _08043BE0 @ =gUnknown_020314E0
ldr r0, [r5]
mov r6, sb
asrs r1, r6, #0x10
ldr r7, _08043BF4 @ =0x0000054F
adds r0, r0, r7
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
bl _080448E4
.align 2, 0
_08043BE0: .4byte gUnknown_020314E0
_08043BE4: .4byte 0x00000584
_08043BE8: .4byte 0x00000557
_08043BEC: .4byte 0x00000553
_08043BF0: .4byte 0x00000562
_08043BF4: .4byte 0x0000054F
_08043BF8:
ldr r3, _08043C2C @ =gUnknown_086AFB2C
ldr r7, _08043C30 @ =gUnknown_020314E0
ldr r2, [r7]
mov r0, sb
asrs r5, r0, #0x10
ldr r6, _08043C34 @ =0x0000055B
adds r0, r2, r6
adds r4, r0, r5
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r3, #2
adds r0, r0, r3
lsls r1, r5, #1
ldr r3, _08043C38 @ =0x00000562
adds r2, r2, r3
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _08043C3C
adds r0, r1, #1
strh r0, [r2]
b _08043C7A
.align 2, 0
_08043C2C: .4byte gUnknown_086AFB2C
_08043C30: .4byte gUnknown_020314E0
_08043C34: .4byte 0x0000055B
_08043C38: .4byte 0x00000562
_08043C3C:
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r0, [r7]
ldr r4, _08043C9C @ =0x0000055B
adds r0, r0, r4
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #3
bne _08043C62
strb r1, [r0]
ldr r0, [r7]
ldr r2, _08043CA0 @ =0x00000553
adds r0, r0, r2
adds r0, r0, r5
strb r1, [r0]
_08043C62:
ldr r0, [r7]
adds r0, r0, r6
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08043C7A
movs r0, #0x9a
lsls r0, r0, #1
bl m4aSongNumStart
_08043C7A:
ldr r0, _08043CA4 @ =gUnknown_020314E0
ldr r2, [r0]
mov r4, sb
asrs r3, r4, #0x10
lsls r1, r3, #1
ldr r5, _08043CA8 @ =0x0000056A
adds r0, r2, r5
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
ldr r6, _08043CAC @ =0x0000054F
adds r2, r2, r6
adds r2, r2, r3
movs r0, #1
strb r0, [r2]
bl _080448E4
.align 2, 0
_08043C9C: .4byte 0x0000055B
_08043CA0: .4byte 0x00000553
_08043CA4: .4byte gUnknown_020314E0
_08043CA8: .4byte 0x0000056A
_08043CAC: .4byte 0x0000054F
_08043CB0:
ldr r3, _08043CE4 @ =gUnknown_086AFB2C
ldr r7, _08043CE8 @ =gUnknown_020314E0
ldr r2, [r7]
mov r0, sb
asrs r5, r0, #0x10
ldr r1, _08043CEC @ =0x0000055B
adds r0, r2, r1
adds r4, r0, r5
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r3, #2
adds r0, r0, r3
lsls r1, r5, #1
ldr r3, _08043CF0 @ =0x00000562
adds r2, r2, r3
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _08043CF4
adds r0, r1, #1
strh r0, [r2]
b _08043D14
.align 2, 0
_08043CE4: .4byte gUnknown_086AFB2C
_08043CE8: .4byte gUnknown_020314E0
_08043CEC: .4byte 0x0000055B
_08043CF0: .4byte 0x00000562
_08043CF4:
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r4, _08043D58 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r6, _08043D5C @ =0x0000055B
adds r0, r0, r6
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bne _08043D14
movs r0, #3
strb r0, [r1]
_08043D14:
ldr r7, _08043D58 @ =gUnknown_020314E0
ldr r3, [r7]
mov r0, sb
asrs r4, r0, #0x10
lsls r7, r4, #1
ldr r1, _08043D60 @ =0x0000056A
adds r0, r3, r1
adds r2, r0, r7
ldrh r5, [r2]
movs r6, #0
ldrsh r1, [r2, r6]
ldr r0, _08043D64 @ =0x0000018F
cmp r1, r0
bgt _08043D7E
adds r0, r5, #1
strh r0, [r2]
ldr r7, _08043D68 @ =0x00000551
adds r0, r3, r7
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08043D6C
lsls r0, r4, #3
movs r2, #0xb0
lsls r2, r2, #3
adds r1, r3, r2
adds r1, r1, r0
ldr r0, [r1]
adds r0, #0x23
str r0, [r1]
b _08043D9E
.align 2, 0
_08043D58: .4byte gUnknown_020314E0
_08043D5C: .4byte 0x0000055B
_08043D60: .4byte 0x0000056A
_08043D64: .4byte 0x0000018F
_08043D68: .4byte 0x00000551
_08043D6C:
lsls r0, r4, #3
movs r4, #0xb0
lsls r4, r4, #3
adds r1, r3, r4
adds r1, r1, r0
ldr r0, [r1]
subs r0, #0x23
str r0, [r1]
b _08043D9E
_08043D7E:
ldr r5, _08043DB0 @ =0x0000055B
adds r0, r3, r5
adds r0, r0, r4
movs r3, #0
movs r2, #6
strb r2, [r0]
ldr r6, _08043DB4 @ =gUnknown_020314E0
ldr r1, [r6]
adds r5, #7
adds r0, r1, r5
adds r0, r0, r7
strh r3, [r0]
ldr r6, _08043DB8 @ =0x00000553
adds r1, r1, r6
adds r1, r1, r4
strb r2, [r1]
_08043D9E:
ldr r7, _08043DB4 @ =gUnknown_020314E0
ldr r0, [r7]
mov r2, sb
asrs r1, r2, #0x10
ldr r3, _08043DBC @ =0x0000054F
adds r0, r0, r3
adds r0, r0, r1
bl _080446E8
.align 2, 0
_08043DB0: .4byte 0x0000055B
_08043DB4: .4byte gUnknown_020314E0
_08043DB8: .4byte 0x00000553
_08043DBC: .4byte 0x0000054F
_08043DC0:
ldr r0, _08043E00 @ =gMPlayInfo_SE1
ldr r1, _08043E04 @ =gUnknown_086A2D28
bl MPlayStart
ldr r2, _08043E08 @ =gUnknown_020314E0
ldr r5, [r2]
mov r4, sb
asrs r6, r4, #0x10
ldr r7, _08043E0C @ =0x0000054F
adds r0, r5, r7
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08043E1C
lsls r1, r6, #1
ldr r3, _08043E10 @ =0x00000562
adds r0, r5, r3
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
ldr r4, _08043E14 @ =0x0000055B
adds r0, r5, r4
adds r0, r0, r6
movs r1, #5
strb r1, [r0]
ldr r0, [r2]
ldr r5, _08043E18 @ =0x00000553
adds r0, r0, r5
adds r0, r0, r6
b _08043E80
.align 2, 0
_08043E00: .4byte gMPlayInfo_SE1
_08043E04: .4byte gUnknown_086A2D28
_08043E08: .4byte gUnknown_020314E0
_08043E0C: .4byte 0x0000054F
_08043E10: .4byte 0x00000562
_08043E14: .4byte 0x0000055B
_08043E18: .4byte 0x00000553
_08043E1C:
lsls r0, r6, #3
ldr r7, _08043E4C @ =0x00000584
adds r1, r5, r7
adds r1, r1, r0
ldr r2, _08043E50 @ =0x0000055F
adds r0, r5, r2
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #8
ldr r1, [r1]
adds r1, r1, r0
ldr r3, _08043E54 @ =0x0000132C
adds r0, r5, r3
ldr r0, [r0]
ldr r0, [r0, #0x38]
cmp r1, r0
bge _08043E5C
ldr r4, _08043E58 @ =0x00000553
adds r0, r5, r4
adds r0, r0, r6
movs r1, #0xa
b _08043E80
.align 2, 0
_08043E4C: .4byte 0x00000584
_08043E50: .4byte 0x0000055F
_08043E54: .4byte 0x0000132C
_08043E58: .4byte 0x00000553
_08043E5C:
lsls r0, r6, #1
ldr r7, _08043EA4 @ =0x00000562
adds r4, r5, r7
adds r4, r4, r0
ldrh r1, [r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
movs r1, #0xa0
bl __divsi3
movs r1, #0xac
subs r1, r1, r0
strh r1, [r4]
ldr r1, _08043EA8 @ =0x00000553
adds r0, r5, r1
adds r0, r0, r6
movs r1, #8
_08043E80:
strb r1, [r0]
movs r0, #7
bl sub_11B0
ldr r2, _08043EAC @ =gUnknown_020314E0
ldr r1, [r2]
mov r3, sb
asrs r0, r3, #0x10
ldr r4, _08043EB0 @ =0x0000054F
adds r1, r1, r4
adds r1, r1, r0
movs r0, #0
strb r0, [r1]
ldr r1, [r2]
ldr r0, _08043EB4 @ =0x00000BB8
str r0, [r1, #0x3c]
bl _080448E4
.align 2, 0
_08043EA4: .4byte 0x00000562
_08043EA8: .4byte 0x00000553
_08043EAC: .4byte gUnknown_020314E0
_08043EB0: .4byte 0x0000054F
_08043EB4: .4byte 0x00000BB8
_08043EB8:
ldr r5, _08043EE0 @ =gUnknown_020314E0
ldr r2, [r5]
mov r6, sb
asrs r3, r6, #0x10
lsls r1, r3, #1
ldr r7, _08043EE4 @ =0x00000562
adds r0, r2, r7
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #9
bhi _08043EEC
adds r0, #1
strh r0, [r1]
ldr r1, _08043EE8 @ =0x0000055B
adds r0, r2, r1
adds r0, r0, r3
movs r1, #5
strb r1, [r0]
bl _080448E4
.align 2, 0
_08043EE0: .4byte gUnknown_020314E0
_08043EE4: .4byte 0x00000562
_08043EE8: .4byte 0x0000055B
_08043EEC:
movs r0, #0
strh r0, [r1]
ldr r4, _08043F00 @ =0x00000553
adds r0, r2, r4
adds r0, r0, r3
movs r1, #6
strb r1, [r0]
bl _080448E4
.align 2, 0
_08043F00: .4byte 0x00000553
_08043F04:
ldr r3, _08043F38 @ =gUnknown_086AFB2C
ldr r7, _08043F3C @ =gUnknown_020314E0
ldr r2, [r7]
mov r6, sb
asrs r5, r6, #0x10
ldr r6, _08043F40 @ =0x0000055B
adds r0, r2, r6
adds r4, r0, r5
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r3, #2
adds r0, r0, r3
lsls r1, r5, #1
ldr r3, _08043F44 @ =0x00000562
adds r2, r2, r3
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _08043F48
adds r0, r1, #1
strh r0, [r2]
b _08043F86
.align 2, 0
_08043F38: .4byte gUnknown_086AFB2C
_08043F3C: .4byte gUnknown_020314E0
_08043F40: .4byte 0x0000055B
_08043F44: .4byte 0x00000562
_08043F48:
movs r3, #0
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r0, [r7]
ldr r4, _08043F9C @ =0x0000055B
adds r0, r0, r4
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #9
bne _08043F70
strb r3, [r1]
ldr r0, [r7]
ldr r1, _08043FA0 @ =0x00000553
adds r0, r0, r1
adds r0, r0, r5
strb r3, [r0]
_08043F70:
ldr r0, [r7]
adds r0, r0, r6
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _08043F86
ldr r0, _08043FA4 @ =0x00000135
bl m4aSongNumStart
_08043F86:
ldr r0, _08043FA8 @ =gUnknown_020314E0
ldr r1, [r0]
mov r2, sb
asrs r0, r2, #0x10
ldr r3, _08043FAC @ =0x0000054F
adds r1, r1, r3
adds r1, r1, r0
movs r0, #0
strb r0, [r1]
bl _080448E4
.align 2, 0
_08043F9C: .4byte 0x0000055B
_08043FA0: .4byte 0x00000553
_08043FA4: .4byte 0x00000135
_08043FA8: .4byte gUnknown_020314E0
_08043FAC: .4byte 0x0000054F
_08043FB0:
ldr r3, _08043FE4 @ =gUnknown_086AFB2C
ldr r6, _08043FE8 @ =gUnknown_020314E0
ldr r2, [r6]
mov r4, sb
asrs r5, r4, #0x10
ldr r7, _08043FEC @ =0x0000055B
adds r0, r2, r7
adds r4, r0, r5
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r3, #2
adds r0, r0, r3
lsls r1, r5, #1
ldr r3, _08043FF0 @ =0x00000562
adds r2, r2, r3
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _08043FF4
adds r0, r1, #1
strh r0, [r2]
b _08044068
.align 2, 0
_08043FE4: .4byte gUnknown_086AFB2C
_08043FE8: .4byte gUnknown_020314E0
_08043FEC: .4byte 0x0000055B
_08043FF0: .4byte 0x00000562
_08043FF4:
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r1, [r6]
ldr r4, _08044080 @ =0x0000055B
adds r0, r1, r4
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xe
bne _08044050
ldr r2, _08044084 @ =0x00000553
adds r0, r1, r2
adds r0, r0, r5
movs r1, #8
strb r1, [r0]
ldr r2, [r6]
lsls r4, r5, #3
movs r0, #0xb0
lsls r0, r0, #3
adds r3, r2, r0
adds r3, r3, r4
ldr r1, _08044088 @ =0x0000055D
adds r0, r2, r1
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #8
ldr r0, [r3]
adds r0, r0, r1
str r0, [r3]
ldr r0, _0804408C @ =0x00000584
adds r3, r2, r0
adds r3, r3, r4
ldr r1, _08044090 @ =0x0000055F
adds r2, r2, r1
adds r2, r2, r5
movs r1, #0
ldrsb r1, [r2, r1]
lsls r1, r1, #8
ldr r0, [r3]
adds r0, r0, r1
str r0, [r3]
_08044050:
ldr r0, [r6]
adds r0, r0, r7
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bne _08044068
movs r0, #0xa0
lsls r0, r0, #1
bl m4aSongNumStart
_08044068:
ldr r0, _08044094 @ =gUnknown_020314E0
ldr r1, [r0]
mov r2, sb
asrs r0, r2, #0x10
ldr r3, _08044098 @ =0x0000054F
adds r1, r1, r3
adds r1, r1, r0
movs r0, #2
strb r0, [r1]
bl _080448E4
.align 2, 0
_08044080: .4byte 0x0000055B
_08044084: .4byte 0x00000553
_08044088: .4byte 0x0000055D
_0804408C: .4byte 0x00000584
_08044090: .4byte 0x0000055F
_08044094: .4byte gUnknown_020314E0
_08044098: .4byte 0x0000054F
_0804409C:
ldr r4, _080440D8 @ =gUnknown_020314E0
ldr r1, [r4]
mov r5, sb
asrs r3, r5, #0x10
lsls r4, r3, #1
ldr r6, _080440DC @ =0x00000562
adds r0, r1, r6
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0xb7
bls _080440B4
b _0804423C
_080440B4:
cmp r0, #0x9f
bhi _0804417C
ldr r7, _080440E0 @ =0x00000551
adds r0, r1, r7
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080440E4
lsls r0, r3, #3
movs r2, #0xb0
lsls r2, r2, #3
adds r1, r1, r2
adds r1, r1, r0
ldr r0, [r1]
subs r0, #0x10
b _080440F2
.align 2, 0
_080440D8: .4byte gUnknown_020314E0
_080440DC: .4byte 0x00000562
_080440E0: .4byte 0x00000551
_080440E4:
lsls r0, r3, #3
movs r3, #0xb0
lsls r3, r3, #3
adds r1, r1, r3
adds r1, r1, r0
ldr r0, [r1]
adds r0, #0x10
_080440F2:
str r0, [r1]
ldr r4, _0804411C @ =gUnknown_020314E0
ldr r3, [r4]
mov r5, sb
asrs r2, r5, #0x10
lsls r1, r2, #1
ldr r6, _08044120 @ =0x00000562
adds r0, r3, r6
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08044128
lsls r0, r2, #3
ldr r7, _08044124 @ =0x00000584
adds r1, r3, r7
adds r1, r1, r0
ldr r0, [r1]
subs r0, #0x10
b _08044134
.align 2, 0
_0804411C: .4byte gUnknown_020314E0
_08044120: .4byte 0x00000562
_08044124: .4byte 0x00000584
_08044128:
lsls r0, r2, #3
ldr r2, _08044160 @ =0x00000584
adds r1, r3, r2
adds r1, r1, r0
ldr r0, [r1]
subs r0, #0x20
_08044134:
str r0, [r1]
ldr r3, _08044164 @ =gUnknown_020314E0
ldr r4, [r3]
mov r6, sb
asrs r5, r6, #0x10
lsls r1, r5, #1
ldr r7, _08044168 @ =0x00000562
adds r0, r4, r7
adds r0, r0, r1
ldrh r0, [r0]
movs r1, #0x13
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi _08044170
ldr r1, _0804416C @ =0x0000055B
adds r0, r4, r1
adds r0, r0, r5
movs r1, #0xe
b _08044216
.align 2, 0
_08044160: .4byte 0x00000584
_08044164: .4byte gUnknown_020314E0
_08044168: .4byte 0x00000562
_0804416C: .4byte 0x0000055B
_08044170:
ldr r2, _08044178 @ =0x0000055B
adds r0, r4, r2
adds r0, r0, r5
b _08044214
.align 2, 0
_08044178: .4byte 0x0000055B
_0804417C:
ldr r4, _080441A0 @ =0x00000551
adds r0, r1, r4
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080441A4
lsls r0, r3, #3
movs r5, #0xb0
lsls r5, r5, #3
adds r1, r1, r5
adds r1, r1, r0
ldr r0, [r1]
movs r6, #0xa0
lsls r6, r6, #1
adds r0, r0, r6
b _080441B4
.align 2, 0
_080441A0: .4byte 0x00000551
_080441A4:
lsls r0, r3, #3
movs r7, #0xb0
lsls r7, r7, #3
adds r1, r1, r7
adds r1, r1, r0
ldr r0, [r1]
ldr r2, _080441E4 @ =0xFFFFFEC0
adds r0, r0, r2
_080441B4:
str r0, [r1]
ldr r4, _080441E8 @ =gUnknown_020314E0
ldr r3, [r4]
mov r5, sb
asrs r2, r5, #0x10
lsls r1, r2, #1
ldr r6, _080441EC @ =0x00000562
adds r0, r3, r6
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080441F4
lsls r0, r2, #3
ldr r7, _080441F0 @ =0x00000584
adds r1, r3, r7
adds r1, r1, r0
ldr r0, [r1]
movs r2, #0xa0
lsls r2, r2, #1
adds r0, r0, r2
b _08044204
.align 2, 0
_080441E4: .4byte 0xFFFFFEC0
_080441E8: .4byte gUnknown_020314E0
_080441EC: .4byte 0x00000562
_080441F0: .4byte 0x00000584
_080441F4:
lsls r0, r2, #3
ldr r4, _0804422C @ =0x00000584
adds r1, r3, r4
adds r1, r1, r0
ldr r0, [r1]
movs r5, #0xf0
lsls r5, r5, #1
adds r0, r0, r5
_08044204:
str r0, [r1]
ldr r6, _08044230 @ =gUnknown_020314E0
ldr r0, [r6]
mov r7, sb
asrs r1, r7, #0x10
ldr r2, _08044234 @ =0x0000055B
adds r0, r0, r2
adds r0, r0, r1
_08044214:
movs r1, #0xf
_08044216:
strb r1, [r0]
ldr r3, _08044230 @ =gUnknown_020314E0
ldr r0, [r3]
mov r4, sb
asrs r1, r4, #0xf
ldr r5, _08044238 @ =0x00000562
adds r0, r0, r5
adds r0, r0, r1
ldrh r1, [r0]
adds r1, #1
b _080448E2
.align 2, 0
_0804422C: .4byte 0x00000584
_08044230: .4byte gUnknown_020314E0
_08044234: .4byte 0x0000055B
_08044238: .4byte 0x00000562
_0804423C:
ldr r6, _08044284 @ =0x00000553
adds r1, r1, r6
adds r1, r1, r3
movs r2, #0
movs r0, #9
strb r0, [r1]
ldr r7, _08044288 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0804428C @ =0x0000055B
adds r0, r0, r1
adds r0, r0, r3
movs r1, #0x10
strb r1, [r0]
ldr r1, [r7]
ldr r5, _08044290 @ =0x00000562
adds r0, r1, r5
adds r0, r0, r4
strh r2, [r0]
subs r6, #2
adds r0, r1, r6
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08044294
lsls r0, r3, #3
movs r7, #0xb0
lsls r7, r7, #3
adds r1, r1, r7
adds r1, r1, r0
ldr r0, [r1]
adds r0, #0xf0
str r0, [r1]
b _080448E4
.align 2, 0
_08044284: .4byte 0x00000553
_08044288: .4byte gUnknown_020314E0
_0804428C: .4byte 0x0000055B
_08044290: .4byte 0x00000562
_08044294:
lsls r0, r3, #3
movs r2, #0xb0
lsls r2, r2, #3
adds r1, r1, r2
adds r1, r1, r0
ldr r0, [r1]
subs r0, #0xf0
str r0, [r1]
b _080448E4
_080442A6:
ldr r3, _080442DC @ =gUnknown_086AFB2C
ldr r4, _080442E0 @ =gUnknown_020314E0
ldr r2, [r4]
mov r6, sb
asrs r5, r6, #0x10
ldr r6, _080442E4 @ =0x0000055B
adds r0, r2, r6
adds r4, r0, r5
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r3, #2
adds r0, r0, r3
lsls r1, r5, #1
ldr r7, _080442E8 @ =0x00000562
adds r2, r2, r7
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _080442EC
adds r0, r1, #1
strh r0, [r2]
b _080448E4
.align 2, 0
_080442DC: .4byte gUnknown_086AFB2C
_080442E0: .4byte gUnknown_020314E0
_080442E4: .4byte 0x0000055B
_080442E8: .4byte 0x00000562
_080442EC:
movs r3, #0
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r1, _08044334 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08044338 @ =0x0000055B
adds r0, r0, r2
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x14
bne _08044318
strb r3, [r1]
ldr r4, _08044334 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0804433C @ =0x00000553
adds r0, r0, r7
adds r0, r0, r5
strb r3, [r0]
_08044318:
ldr r1, _08044334 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r6
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x11
beq _0804432C
b _080448E4
_0804432C:
ldr r0, _08044340 @ =0x00000135
bl m4aSongNumStart
b _080448E4
.align 2, 0
_08044334: .4byte gUnknown_020314E0
_08044338: .4byte 0x0000055B
_0804433C: .4byte 0x00000553
_08044340: .4byte 0x00000135
_08044344:
ldr r2, _0804442C @ =gUnknown_020314E0
ldr r6, [r2]
mov r3, sb
asrs r4, r3, #0x10
ldr r5, _08044430 @ =0x00000551
adds r0, r6, r5
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r2, #0
cmp r0, #0
bne _08044360
movs r2, #3
_08044360:
ldr r1, _08044434 @ =gUnknown_086AFAC0
lsls r2, r2, #0x10
lsrs r0, r2, #0xd
adds r3, r0, r1
ldrh r0, [r3, #4]
lsls r5, r0, #0x10
movs r7, #0
mov ip, r1
mov sl, r2
cmp r5, #0
ble _0804439E
ldr r3, [r3]
lsls r1, r4, #1
ldr r2, _08044438 @ =0x00000566
adds r0, r6, r2
adds r0, r0, r1
movs r4, #0
ldrsh r1, [r0, r4]
_08044384:
lsls r0, r7, #0x10
asrs r2, r0, #0x10
lsls r0, r2, #2
adds r0, r0, r3
movs r6, #2
ldrsh r0, [r0, r6]
cmp r0, r1
ble _0804439E
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
cmp r0, r5
blt _08044384
_0804439E:
ldr r1, _0804442C @ =gUnknown_020314E0
ldr r0, [r1]
mov r2, sb
asrs r5, r2, #0x10
ldr r4, _0804443C @ =0x00000559
adds r0, r0, r4
adds r0, r0, r5
movs r3, #0
strb r7, [r0]
ldr r0, [r1]
ldr r6, _08044440 @ =0x00000553
adds r0, r0, r6
adds r0, r0, r5
movs r1, #0xb
strb r1, [r0]
ldr r7, _0804442C @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _08044444 @ =0x0000055B
adds r0, r0, r1
adds r0, r0, r5
movs r1, #0x1d
strb r1, [r0]
ldr r2, [r7]
lsls r1, r5, #1
adds r6, #0xf
adds r0, r2, r6
adds r0, r0, r1
movs r7, #0
mov r8, r7
strh r3, [r0]
lsls r6, r5, #3
movs r0, #0xb0
lsls r0, r0, #3
adds r3, r2, r0
adds r3, r3, r6
mov r7, sl
lsrs r1, r7, #0xd
add r1, ip
adds r4, r2, r4
adds r4, r4, r5
movs r0, #0
ldrsb r0, [r4, r0]
ldr r1, [r1]
lsls r0, r0, #2
adds r0, r0, r1
movs r7, #0
ldrsh r0, [r0, r7]
lsls r0, r0, #8
str r0, [r3]
ldr r0, _08044448 @ =0x00000584
adds r2, r2, r0
adds r2, r2, r6
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r0, r0, r1
movs r1, #2
ldrsh r0, [r0, r1]
lsls r0, r0, #8
str r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r2, _0804442C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _0804444C @ =0x0000054F
adds r0, r0, r3
adds r0, r0, r5
mov r4, r8
strb r4, [r0]
b _080448E4
.align 2, 0
_0804442C: .4byte gUnknown_020314E0
_08044430: .4byte 0x00000551
_08044434: .4byte gUnknown_086AFAC0
_08044438: .4byte 0x00000566
_0804443C: .4byte 0x00000559
_08044440: .4byte 0x00000553
_08044444: .4byte 0x0000055B
_08044448: .4byte 0x00000584
_0804444C: .4byte 0x0000054F
_08044450:
ldr r5, _08044528 @ =gUnknown_020314E0
ldr r6, [r5]
mov r7, sb
asrs r4, r7, #0x10
ldr r0, _0804452C @ =0x00000551
mov sl, r0
adds r0, r6, r0
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r2, #0
cmp r0, #0
bne _0804446E
movs r2, #3
_0804446E:
ldr r1, _08044530 @ =0x00000559
adds r0, r6, r1
adds r5, r0, r4
movs r3, #0
ldrsb r3, [r5, r3]
mov r8, r3
ldr r1, _08044534 @ =gUnknown_086AFAC0
lsls r0, r2, #3
adds r0, r0, r1
mov ip, r0
movs r7, #4
ldrsh r0, [r0, r7]
cmp r8, r0
bge _08044566
lsls r2, r4, #3
movs r0, #0xb0
lsls r0, r0, #3
adds r1, r6, r0
adds r1, r1, r2
mov r7, ip
ldr r3, [r7]
mov r7, r8
lsls r0, r7, #2
adds r0, r0, r3
movs r7, #0
ldrsh r0, [r0, r7]
lsls r0, r0, #8
str r0, [r1]
ldr r0, _08044538 @ =0x00000584
adds r1, r6, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r5, r0]
lsls r0, r0, #2
adds r0, r0, r3
movs r2, #2
ldrsh r0, [r0, r2]
lsls r0, r0, #8
str r0, [r1]
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
ldr r3, _08044528 @ =gUnknown_020314E0
ldr r2, [r3]
ldr r5, _08044530 @ =0x00000559
adds r0, r2, r5
adds r0, r0, r4
movs r1, #0
ldrsb r1, [r0, r1]
mov r6, ip
movs r7, #4
ldrsh r0, [r6, r7]
cmp r1, r0
bne _08044566
ldr r1, _0804453C @ =0x00000553
adds r0, r2, r1
adds r0, r0, r4
movs r1, #0xc
strb r1, [r0]
ldr r0, [r3]
movs r2, #0xa6
lsls r2, r2, #3
adds r1, r0, r2
adds r1, r1, r4
add r0, sl
adds r0, r0, r4
ldrb r0, [r0]
strb r0, [r1]
ldr r0, [r3]
ldr r3, _08044540 @ =0x00000536
adds r0, r0, r3
adds r0, r0, r4
movs r1, #2
strb r1, [r0]
ldr r5, _08044528 @ =gUnknown_020314E0
ldr r1, [r5]
mov r6, sl
adds r0, r1, r6
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08044544
lsls r0, r4, #2
adds r0, r1, r0
movs r7, #0xaf
lsls r7, r7, #3
adds r0, r0, r7
movs r1, #0xa0
lsls r1, r1, #1
b _08044550
.align 2, 0
_08044528: .4byte gUnknown_020314E0
_0804452C: .4byte 0x00000551
_08044530: .4byte 0x00000559
_08044534: .4byte gUnknown_086AFAC0
_08044538: .4byte 0x00000584
_0804453C: .4byte 0x00000553
_08044540: .4byte 0x00000536
_08044544:
lsls r0, r4, #2
adds r0, r1, r0
movs r1, #0xaf
lsls r1, r1, #3
adds r0, r0, r1
ldr r1, _080445A4 @ =0x0000FEC0
_08044550:
strh r1, [r0]
ldr r2, _080445A8 @ =gUnknown_020314E0
ldr r0, [r2]
mov r3, sb
asrs r1, r3, #0xe
adds r0, r0, r1
ldr r4, _080445AC @ =0x0000057A
adds r0, r0, r4
movs r1, #0xe8
lsls r1, r1, #1
strh r1, [r0]
_08044566:
ldr r5, _080445A8 @ =gUnknown_020314E0
ldr r0, [r5]
mov r6, sb
asrs r4, r6, #0x10
ldr r7, _080445B0 @ =0x0000055B
adds r3, r0, r7
adds r3, r3, r4
lsls r5, r4, #1
ldr r2, _080445B4 @ =0x00000562
adds r0, r0, r2
adds r0, r0, r5
ldrh r0, [r0]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #2
adds r0, #0x1e
strb r0, [r3]
ldr r0, _080445A8 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, r2
adds r2, r2, r5
ldrh r0, [r2]
adds r0, #1
movs r3, #0
strh r0, [r2]
ldr r2, _080445B8 @ =0x0000054F
adds r1, r1, r2
adds r1, r1, r4
strb r3, [r1]
b _080448E4
.align 2, 0
_080445A4: .4byte 0x0000FEC0
_080445A8: .4byte gUnknown_020314E0
_080445AC: .4byte 0x0000057A
_080445B0: .4byte 0x0000055B
_080445B4: .4byte 0x00000562
_080445B8: .4byte 0x0000054F
_080445BC:
ldr r3, _08044610 @ =gUnknown_020314E0
ldr r4, [r3]
mov r5, sb
asrs r6, r5, #0x10
lsls r5, r6, #3
movs r7, #0xb0
lsls r7, r7, #3
adds r3, r4, r7
adds r3, r3, r5
lsls r2, r6, #2
adds r2, r4, r2
movs r1, #0xaf
lsls r1, r1, #3
adds r0, r2, r1
movs r7, #0
ldrsh r1, [r0, r7]
ldr r0, [r3]
adds r0, r0, r1
str r0, [r3]
ldr r0, _08044614 @ =0x00000584
adds r1, r4, r0
adds r1, r1, r5
ldr r3, _08044618 @ =0x0000057A
adds r2, r2, r3
movs r5, #0
ldrsh r2, [r2, r5]
ldr r0, [r1]
adds r0, r0, r2
str r0, [r1]
ldr r7, _0804461C @ =0x0000055B
adds r3, r4, r7
adds r3, r3, r6
lsls r5, r6, #1
ldr r2, _08044620 @ =0x00000562
adds r4, r4, r2
adds r4, r4, r5
ldrh r0, [r4]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #2
adds r0, #0x1e
b _08044676
.align 2, 0
_08044610: .4byte gUnknown_020314E0
_08044614: .4byte 0x00000584
_08044618: .4byte 0x0000057A
_0804461C: .4byte 0x0000055B
_08044620: .4byte 0x00000562
_08044624:
ldr r3, _08044694 @ =gUnknown_020314E0
ldr r4, [r3]
mov r5, sb
asrs r6, r5, #0x10
lsls r5, r6, #3
movs r7, #0xb0
lsls r7, r7, #3
adds r3, r4, r7
adds r3, r3, r5
lsls r2, r6, #2
adds r2, r4, r2
movs r1, #0xaf
lsls r1, r1, #3
adds r0, r2, r1
movs r7, #0
ldrsh r1, [r0, r7]
ldr r0, [r3]
adds r0, r0, r1
str r0, [r3]
ldr r0, _08044698 @ =0x00000584
adds r1, r4, r0
adds r1, r1, r5
ldr r3, _0804469C @ =0x0000057A
adds r2, r2, r3
movs r5, #0
ldrsh r2, [r2, r5]
ldr r0, [r1]
adds r0, r0, r2
str r0, [r1]
ldr r7, _080446A0 @ =0x0000055B
adds r3, r4, r7
adds r3, r3, r6
lsls r5, r6, #1
ldr r2, _080446A4 @ =0x00000562
adds r4, r4, r2
adds r4, r4, r5
ldrh r0, [r4]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #3
adds r0, #0x1a
_08044676:
strb r0, [r3]
ldr r0, _08044694 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, r2
adds r2, r2, r5
ldrh r0, [r2]
adds r0, #1
movs r3, #0
strh r0, [r2]
ldr r2, _080446A8 @ =0x0000054F
adds r1, r1, r2
adds r1, r1, r6
strb r3, [r1]
b _080448E4
.align 2, 0
_08044694: .4byte gUnknown_020314E0
_08044698: .4byte 0x00000584
_0804469C: .4byte 0x0000057A
_080446A0: .4byte 0x0000055B
_080446A4: .4byte 0x00000562
_080446A8: .4byte 0x0000054F
_080446AC:
ldr r3, _080446F0 @ =gUnknown_020314E0
ldr r1, [r3]
mov r5, sb
asrs r4, r5, #0x10
ldr r6, _080446F4 @ =0x00000557
adds r1, r1, r6
adds r1, r1, r4
movs r0, #0xff
strb r0, [r1]
ldr r5, [r3]
ldr r7, _080446F8 @ =0x0000054D
adds r0, r5, r7
adds r1, r0, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08044704
subs r0, r2, #1
strb r0, [r1]
ldr r0, [r3]
ldr r1, _080446FC @ =0x0000055B
adds r0, r0, r1
adds r0, r0, r4
movs r1, #0x26
strb r1, [r0]
ldr r0, [r3]
ldr r2, _08044700 @ =0x0000054B
adds r0, r0, r2
adds r0, r0, r4
_080446E8:
movs r1, #1
strb r1, [r0]
b _080448E4
.align 2, 0
_080446F0: .4byte gUnknown_020314E0
_080446F4: .4byte 0x00000557
_080446F8: .4byte 0x0000054D
_080446FC: .4byte 0x0000055B
_08044700: .4byte 0x0000054B
_08044704:
lsls r2, r4, #1
ldr r6, _08044748 @ =0x00000562
adds r0, r5, r6
adds r3, r0, r2
ldrh r1, [r3]
ldr r0, _0804474C @ =0x0000014D
cmp r1, r0
bls _08044716
b _080448C4
_08044716:
cmp r1, #0xf
bhi _0804475C
ldr r3, _08044750 @ =0x0000055B
adds r0, r5, r3
adds r0, r0, r4
movs r1, #0x15
strb r1, [r0]
ldr r5, _08044754 @ =gUnknown_020314E0
ldr r0, [r5]
adds r0, r0, r6
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #1
bne _0804473A
movs r0, #0x9f
lsls r0, r0, #1
bl m4aSongNumStart
_0804473A:
ldr r6, _08044754 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r7, _08044758 @ =0x0000054F
adds r0, r0, r7
adds r0, r0, r4
b _08044824
.align 2, 0
_08044748: .4byte 0x00000562
_0804474C: .4byte 0x0000014D
_08044750: .4byte 0x0000055B
_08044754: .4byte gUnknown_020314E0
_08044758: .4byte 0x0000054F
_0804475C:
ldr r0, _0804479C @ =0x0000013B
cmp r1, r0
bhi _08044840
ldr r1, _080447A0 @ =0x0000054B
adds r0, r5, r1
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080447B8
lsls r0, r4, #3
ldr r2, _080447A4 @ =0x00000584
adds r1, r5, r2
adds r1, r1, r0
ldr r0, [r1]
adds r0, #0x40
str r0, [r1]
ldrh r0, [r3]
movs r1, #0x13
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bhi _080447AC
ldr r3, _080447A8 @ =0x0000055B
adds r0, r5, r3
adds r0, r0, r4
movs r1, #0x16
b _080447F0
.align 2, 0
_0804479C: .4byte 0x0000013B
_080447A0: .4byte 0x0000054B
_080447A4: .4byte 0x00000584
_080447A8: .4byte 0x0000055B
_080447AC:
ldr r6, _080447B4 @ =0x0000055B
adds r0, r5, r6
b _080447EC
.align 2, 0
_080447B4: .4byte 0x0000055B
_080447B8:
lsls r0, r4, #3
ldr r7, _080447E0 @ =0x00000584
adds r1, r5, r7
adds r1, r1, r0
ldr r0, [r1]
adds r0, #0x80
str r0, [r1]
ldrh r0, [r3]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #4
bhi _080447E8
ldr r1, _080447E4 @ =0x0000055B
adds r0, r5, r1
adds r0, r0, r4
movs r1, #0x16
b _080447F0
.align 2, 0
_080447E0: .4byte 0x00000584
_080447E4: .4byte 0x0000055B
_080447E8:
ldr r2, _0804482C @ =0x0000055B
adds r0, r5, r2
_080447EC:
adds r0, r0, r4
movs r1, #0x17
_080447F0:
strb r1, [r0]
ldr r4, _08044830 @ =gUnknown_020314E0
ldr r3, [r4]
mov r5, sb
asrs r2, r5, #0x10
lsls r1, r2, #3
ldr r6, _08044834 @ =0x00000584
adds r0, r3, r6
adds r0, r0, r1
ldr r1, [r0]
movs r0, #0xac
lsls r0, r0, #8
cmp r1, r0
ble _0804481A
lsls r0, r2, #1
ldr r7, _08044838 @ =0x00000562
adds r1, r3, r7
adds r1, r1, r0
movs r0, #0x9e
lsls r0, r0, #1
strh r0, [r1]
_0804481A:
ldr r1, _08044830 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _0804483C @ =0x0000054F
adds r0, r0, r3
adds r0, r0, r2
_08044824:
movs r1, #3
strb r1, [r0]
b _080448A0
.align 2, 0
_0804482C: .4byte 0x0000055B
_08044830: .4byte gUnknown_020314E0
_08044834: .4byte 0x00000584
_08044838: .4byte 0x00000562
_0804483C: .4byte 0x0000054F
_08044840:
lsls r0, r4, #3
ldr r6, _0804486C @ =0x00000584
adds r1, r5, r6
adds r1, r1, r0
ldr r0, [r1]
adds r0, #0x30
str r0, [r1]
ldr r7, _08044870 @ =0xFFFFFEC4
adds r0, r7, #0
ldrh r3, [r3]
adds r0, r0, r3
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
bgt _08044878
ldr r1, _08044874 @ =0x0000055B
adds r0, r5, r1
adds r0, r0, r4
movs r1, #0x18
b _08044880
.align 2, 0
_0804486C: .4byte 0x00000584
_08044870: .4byte 0xFFFFFEC4
_08044874: .4byte 0x0000055B
_08044878:
ldr r3, _080448B4 @ =0x0000055B
adds r0, r5, r3
adds r0, r0, r4
movs r1, #0x19
_08044880:
strb r1, [r0]
cmp r2, #1
bne _0804488E
movs r0, #0x9b
lsls r0, r0, #1
bl m4aSongNumStart
_0804488E:
ldr r2, _080448B8 @ =gUnknown_020314E0
ldr r1, [r2]
mov r4, sb
asrs r0, r4, #0x10
ldr r5, _080448BC @ =0x0000054F
adds r1, r1, r5
adds r1, r1, r0
movs r0, #0
strb r0, [r1]
_080448A0:
ldr r6, _080448B8 @ =gUnknown_020314E0
ldr r0, [r6]
mov r7, sb
asrs r1, r7, #0xf
ldr r2, _080448C0 @ =0x00000562
adds r0, r0, r2
adds r0, r0, r1
ldrh r1, [r0]
adds r1, #1
b _080448E2
.align 2, 0
_080448B4: .4byte 0x0000055B
_080448B8: .4byte gUnknown_020314E0
_080448BC: .4byte 0x0000054F
_080448C0: .4byte 0x00000562
_080448C4:
ldr r3, _08044A9C @ =0x00000553
adds r0, r5, r3
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r5, _08044AA0 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _08044AA4 @ =0x0000055B
adds r0, r0, r6
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r5]
ldr r7, _08044AA8 @ =0x00000562
adds r0, r0, r7
adds r0, r0, r2
_080448E2:
strh r1, [r0]
_080448E4:
ldr r1, [sp]
lsls r0, r1, #0x10
movs r2, #0x80
lsls r2, r2, #9
adds r0, r0, r2
lsrs r3, r0, #0x10
str r3, [sp]
asrs r0, r0, #0x10
cmp r0, #1
bgt _080448FC
bl _080438AA
_080448FC:
movs r4, #0
str r4, [sp]
_08044900:
ldr r5, [sp]
lsls r1, r5, #0x10
asrs r4, r1, #0x10
movs r0, #0xb8
muls r0, r4, r0
ldr r6, _08044AAC @ =gUnknown_0200BDC8
adds r0, r0, r6
mov r8, r0
ldrh r0, [r0]
mov sb, r1
cmp r0, #0
bne _0804491A
b _08044D12
_0804491A:
ldr r7, _08044AA0 @ =gUnknown_020314E0
ldr r1, [r7]
ldr r0, _08044AB0 @ =0x00000555
adds r3, r1, r0
adds r3, r3, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
ldr r2, _08044AA4 @ =0x0000055B
adds r0, r1, r2
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r2, r0, #1
adds r2, r2, r0
lsls r2, r2, #1
ldr r0, _08044AB4 @ =gUnknown_086AFB2C
adds r0, #4
adds r2, r2, r0
ldr r5, _08044AB8 @ =0x00000551
adds r1, r1, r5
adds r1, r1, r4
movs r0, #0
ldrsb r0, [r1, r0]
movs r1, #1
subs r1, r1, r0
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #1
ldrb r2, [r2]
adds r0, r0, r2
strb r0, [r3]
ldr r2, [r7]
ldr r6, _08044AA4 @ =0x0000055B
adds r0, r2, r6
adds r0, r0, r4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
ldr r7, _08044AB4 @ =gUnknown_086AFB2C
adds r0, r0, r7
ldrh r5, [r0]
lsls r3, r4, #3
movs r1, #0xb0
lsls r1, r1, #3
adds r0, r2, r1
adds r0, r0, r3
ldr r0, [r0]
cmp r0, #0
bge _0804498A
adds r0, #0xff
_0804498A:
asrs r1, r0, #8
adds r0, r2, #0
adds r0, #0x58
ldrh r0, [r0]
adds r0, #0xc
subs r1, r1, r0
mov r6, r8
strh r1, [r6, #2]
ldr r7, _08044ABC @ =0x00000584
adds r0, r2, r7
adds r0, r0, r3
ldr r0, [r0]
cmp r0, #0
bge _080449A8
adds r0, #0xff
_080449A8:
asrs r1, r0, #8
adds r0, r2, #0
adds r0, #0x5a
ldrh r0, [r0]
adds r0, #0xe
subs r1, r1, r0
mov r0, r8
strh r1, [r0, #4]
ldr r2, [sp, #4]
lsls r1, r2, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
ldr r1, _08044AC0 @ =gUnknown_084B046C
adds r0, r0, r1
ldr r6, _08044AC4 @ =0x040000D4
str r0, [r6]
adds r0, r3, r4
lsls r0, r0, #5
ldr r7, _08044AC8 @ =0x06011CA0
adds r0, r0, r7
str r0, [r6, #4]
ldr r0, _08044ACC @ =0x80000090
str r0, [r6, #8]
ldr r0, [r6, #8]
movs r7, #0
lsls r0, r5, #0x10
ldr r1, _08044AD0 @ =gOamBuffer
mov ip, r1
adds r6, r4, #0
asrs r0, r0, #0x10
mov sl, r0
_080449EA:
lsls r0, r7, #0x10
asrs r3, r0, #0x10
lsls r0, r3, #3
adds r0, #8
mov r2, r8
adds r5, r2, r0
ldrh r2, [r5]
lsls r2, r2, #3
add r2, ip
mov r4, sl
lsls r1, r4, #1
add r1, sl
lsls r1, r1, #3
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
ldr r4, _08044AD4 @ =gUnknown_086B56D8
adds r0, r0, r4
adds r1, r1, r0
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
ldrh r0, [r1, #2]
strh r0, [r2, #2]
ldr r0, _08044AA0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08044AB8 @ =0x00000551
adds r0, r1, r2
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08044AE8
cmp r3, #0
bne _08044A5E
ldr r3, _08044AD8 @ =0x0000055D
adds r1, r1, r3
adds r1, r1, r6
ldrh r0, [r5]
lsls r0, r0, #3
add r0, ip
ldrb r0, [r0, #2]
rsbs r0, r0, #0
strb r0, [r1]
ldr r4, _08044AA0 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r0, _08044ADC @ =0x0000055F
adds r1, r1, r0
adds r1, r1, r6
ldrh r0, [r5]
lsls r0, r0, #3
add r0, ip
ldrb r0, [r0]
strb r0, [r1]
_08044A5E:
ldrh r3, [r5]
lsls r3, r3, #3
add r3, ip
ldrh r4, [r3, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
mov r2, r8
movs r0, #2
ldrsh r2, [r2, r0]
str r2, [sp, #8]
ldr r2, _08044AA0 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r2, _08044AD8 @ =0x0000055D
adds r0, r0, r2
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
ldr r2, [sp, #8]
adds r0, r2, r0
adds r1, r1, r0
ldr r2, _08044AE0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldr r0, _08044AE4 @ =0xFFFFFE00
ands r0, r4
orrs r0, r1
strh r0, [r3, #2]
b _08044B36
.align 2, 0
_08044A9C: .4byte 0x00000553
_08044AA0: .4byte gUnknown_020314E0
_08044AA4: .4byte 0x0000055B
_08044AA8: .4byte 0x00000562
_08044AAC: .4byte gUnknown_0200BDC8
_08044AB0: .4byte 0x00000555
_08044AB4: .4byte gUnknown_086AFB2C
_08044AB8: .4byte 0x00000551
_08044ABC: .4byte 0x00000584
_08044AC0: .4byte gUnknown_084B046C
_08044AC4: .4byte 0x040000D4
_08044AC8: .4byte 0x06011CA0
_08044ACC: .4byte 0x80000090
_08044AD0: .4byte gOamBuffer
_08044AD4: .4byte gUnknown_086B56D8
_08044AD8: .4byte 0x0000055D
_08044ADC: .4byte 0x0000055F
_08044AE0: .4byte 0x000001FF
_08044AE4: .4byte 0xFFFFFE00
_08044AE8:
cmp r3, #0
bne _08044B10
ldr r3, _08044C24 @ =0x0000055D
adds r1, r1, r3
adds r1, r1, r6
ldrh r0, [r5]
lsls r0, r0, #3
add r0, ip
ldrh r0, [r0, #2]
strb r0, [r1]
ldr r4, _08044C28 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r0, _08044C2C @ =0x0000055F
adds r1, r1, r0
adds r1, r1, r6
ldrh r0, [r5]
lsls r0, r0, #3
add r0, ip
ldrb r0, [r0]
strb r0, [r1]
_08044B10:
ldrh r2, [r5]
lsls r2, r2, #3
add r2, ip
ldrh r3, [r2, #2]
lsls r1, r3, #0x17
lsrs r1, r1, #0x17
str r1, [sp, #0xc]
mov r1, r8
movs r4, #2
ldrsh r0, [r1, r4]
ldr r4, [sp, #0xc]
adds r1, r4, r0
ldr r4, _08044C30 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldr r0, _08044C34 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
_08044B36:
ldrh r1, [r5]
lsls r1, r1, #3
add r1, ip
mov r2, r8
ldrb r0, [r2, #4]
ldrb r3, [r1]
adds r0, r0, r3
strb r0, [r1]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, ip
ldrh r3, [r2, #4]
lsls r1, r3, #0x16
lsrs r1, r1, #0x16
lsls r0, r6, #3
adds r0, r0, r6
adds r1, r1, r0
ldr r4, _08044C38 @ =0x000003FF
adds r0, r4, #0
ands r1, r0
ldr r0, _08044C3C @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
lsls r0, r7, #0x10
movs r5, #0x80
lsls r5, r5, #9
adds r0, r0, r5
lsrs r7, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
bgt _08044B78
b _080449EA
_08044B78:
ldr r6, _08044C28 @ =gUnknown_020314E0
ldr r2, [r6]
mov r7, sb
asrs r3, r7, #0x10
lsls r0, r3, #2
adds r6, r2, r0
lsls r4, r3, #3
movs r1, #0xb0
lsls r1, r1, #3
adds r0, r2, r1
adds r0, r0, r4
ldr r0, [r0]
cmp r0, #0
bge _08044B96
adds r0, #0xff
_08044B96:
asrs r1, r0, #8
ldr r5, _08044C24 @ =0x0000055D
adds r0, r2, r5
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #0x10
adds r1, r1, r0
lsls r1, r1, #1
movs r7, #0xae
lsls r7, r7, #3
adds r0, r6, r7
strh r1, [r0]
ldr r1, _08044C40 @ =0x00000584
adds r0, r2, r1
adds r7, r0, r4
ldr r1, [r7]
cmp r1, #0
bge _08044BC0
adds r1, #0xff
_08044BC0:
asrs r1, r1, #8
ldr r4, _08044C2C @ =0x0000055F
adds r0, r2, r4
adds r5, r0, r3
movs r0, #0
ldrsb r0, [r5, r0]
subs r0, #0x12
adds r1, r1, r0
lsls r1, r1, #1
adds r4, #0x13
adds r0, r6, r4
strh r1, [r0]
lsls r1, r3, #1
ldr r6, _08044C44 @ =0x00000566
adds r0, r2, r6
adds r4, r0, r1
ldr r0, [r7]
cmp r0, #0
bge _08044BE8
adds r0, #0xff
_08044BE8:
asrs r1, r0, #8
movs r0, #0
ldrsb r0, [r5, r0]
adds r0, r0, r1
strh r0, [r4]
movs r0, #0xb8
muls r0, r3, r0
ldr r7, _08044C48 @ =gUnknown_0200BF38
adds r0, r0, r7
mov r8, r0
ldr r1, [sp, #4]
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc
beq _08044C0A
cmp r0, #0x2a
bne _08044C50
_08044C0A:
ldr r4, _08044C4C @ =0x0000055B
adds r0, r2, r4
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r5, #9
str r5, [sp, #4]
cmp r0, #0xb
bne _08044C54
movs r6, #8
str r6, [sp, #4]
b _08044C54
.align 2, 0
_08044C24: .4byte 0x0000055D
_08044C28: .4byte gUnknown_020314E0
_08044C2C: .4byte 0x0000055F
_08044C30: .4byte 0x000001FF
_08044C34: .4byte 0xFFFFFE00
_08044C38: .4byte 0x000003FF
_08044C3C: .4byte 0xFFFFFC00
_08044C40: .4byte 0x00000584
_08044C44: .4byte 0x00000566
_08044C48: .4byte gUnknown_0200BF38
_08044C4C: .4byte 0x0000055B
_08044C50:
movs r7, #0
str r7, [sp, #4]
_08044C54:
ldr r0, _08044D34 @ =gUnknown_020314E0
ldr r2, [r0]
mov r1, sb
asrs r4, r1, #0x10
lsls r3, r4, #3
movs r5, #0xb0
lsls r5, r5, #3
adds r0, r2, r5
adds r0, r0, r3
ldr r0, [r0]
cmp r0, #0
bge _08044C6E
adds r0, #0xff
_08044C6E:
asrs r1, r0, #8
adds r0, r2, #0
adds r0, #0x58
ldrh r0, [r0]
adds r0, #0xc
subs r1, r1, r0
mov r6, r8
strh r1, [r6, #2]
ldr r7, _08044D38 @ =0x00000584
adds r0, r2, r7
adds r0, r0, r3
ldr r0, [r0]
cmp r0, #0
bge _08044C8C
adds r0, #0xff
_08044C8C:
asrs r1, r0, #8
adds r0, r2, #0
adds r0, #0x5a
ldrh r0, [r0]
adds r0, #0xe
subs r1, r1, r0
mov r0, r8
strh r1, [r0, #4]
ldr r2, [sp, #4]
lsls r1, r2, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
ldr r5, _08044D3C @ =gUnknown_084B046C
adds r0, r0, r5
ldr r6, _08044D40 @ =0x040000D4
str r0, [r6]
adds r0, r3, r4
lsls r0, r0, #5
ldr r7, _08044D44 @ =0x06011EE0
adds r0, r0, r7
str r0, [r6, #4]
ldr r0, _08044D48 @ =0x80000090
str r0, [r6, #8]
ldr r0, [r6, #8]
movs r7, #0
ldr r6, _08044D4C @ =gOamBuffer
ldr r0, _08044D50 @ =0xFFFFFE00
mov sl, r0
_08044CC8:
lsls r3, r7, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
mov r1, r8
adds r5, r1, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r6
movs r4, #2
ldrsh r1, [r5, r4]
mov r7, r8
movs r4, #2
ldrsh r0, [r7, r4]
adds r1, r1, r0
ldr r7, _08044D54 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldrh r4, [r2, #2]
mov r0, sl
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
mov r2, r8
ldrb r0, [r2, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r7, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _08044CC8
_08044D12:
movs r0, #0x80
lsls r0, r0, #9
add r0, sb
lsrs r3, r0, #0x10
str r3, [sp]
asrs r0, r0, #0x10
cmp r0, #1
bgt _08044D24
b _08044900
_08044D24:
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08044D34: .4byte gUnknown_020314E0
_08044D38: .4byte 0x00000584
_08044D3C: .4byte gUnknown_084B046C
_08044D40: .4byte 0x040000D4
_08044D44: .4byte 0x06011EE0
_08044D48: .4byte 0x80000090
_08044D4C: .4byte gOamBuffer
_08044D50: .4byte 0xFFFFFE00
_08044D54: .4byte 0x000001FF
thumb_func_start sub_44D58
sub_44D58: @ 0x08044D58
push {r4, r5, r6, r7, lr}
movs r0, #0
mov ip, r0
ldr r6, _08044EE4 @ =gUnknown_0200C0A8
ldrh r0, [r6]
ldr r7, _08044EE8 @ =gUnknown_020314E0
cmp r0, #0
beq _08044DE8
ldr r0, [r7]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x68
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r7]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x56
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r7]
ldr r2, _08044EEC @ =0x00000542
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0x15
bhi _08044D9C
ldr r0, _08044EF0 @ =gUnknown_08137D60
ldrh r1, [r1]
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov ip, r0
_08044D9C:
ldr r2, _08044EF4 @ =0x040000D4
mov r3, ip
lsls r0, r3, #0x10
asrs r0, r0, #7
ldr r1, _08044EF8 @ =gUnknown_084AF9EC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08044EFC @ =0x06010920
str r0, [r2, #4]
ldr r0, _08044F00 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r5, r6, #0
adds r5, #8
ldr r4, _08044F04 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #2
ldrsh r1, [r5, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08044F08 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08044F0C @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_08044DE8:
ldr r6, _08044F10 @ =gUnknown_0200BBA0
ldrh r0, [r6]
cmp r0, #0
beq _08044E72
ldr r0, [r7]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x68
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r7]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x5e
subs r0, r0, r1
strh r0, [r6, #4]
ldr r2, _08044EF4 @ =0x040000D4
mov r0, ip
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08044F14 @ =gUnknown_084AFFEC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08044F18 @ =0x06010B20
str r0, [r2, #4]
ldr r0, _08044F1C @ =0x800000C0
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
ldr r7, _08044F04 @ =gOamBuffer
ldr r1, _08044F0C @ =0xFFFFFE00
mov ip, r1
_08044E2E:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08044F08 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08044E2E
_08044E72:
ldr r4, _08044EE8 @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0x13
ldrsb r1, [r0, r1]
cmp r1, #1
bne _08044E88
ldr r0, _08044F20 @ =gMain
movs r3, #0xae
lsls r3, r3, #4
adds r0, r0, r3
strh r1, [r0]
_08044E88:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _08044EC8
ldr r0, _08044F20 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _08044EC8
ldr r5, _08044EEC @ =0x00000542
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0
beq _08044EC8
cmp r0, #0x15
bne _08044EB0
ldr r0, _08044F24 @ =gMPlayInfo_SE1
ldr r1, _08044F28 @ =gUnknown_086A2D94
bl MPlayStart
_08044EB0:
ldr r1, [r4]
adds r1, r1, r5
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08044EC8
ldr r0, _08044F24 @ =gMPlayInfo_SE1
ldr r1, _08044F2C @ =gUnknown_086A2E70
bl MPlayStart
_08044EC8:
ldr r0, _08044EE8 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x7e
ldrh r0, [r0]
cmp r0, #0
beq _08044F34
ldr r0, _08044F20 @ =gMain
ldrb r0, [r0, #5]
cmp r0, #0
bne _08044F30
bl sub_44F3C
b _08044F34
.align 2, 0
_08044EE4: .4byte gUnknown_0200C0A8
_08044EE8: .4byte gUnknown_020314E0
_08044EEC: .4byte 0x00000542
_08044EF0: .4byte gUnknown_08137D60
_08044EF4: .4byte 0x040000D4
_08044EF8: .4byte gUnknown_084AF9EC
_08044EFC: .4byte 0x06010920
_08044F00: .4byte 0x80000100
_08044F04: .4byte gOamBuffer
_08044F08: .4byte 0x000001FF
_08044F0C: .4byte 0xFFFFFE00
_08044F10: .4byte gUnknown_0200BBA0
_08044F14: .4byte gUnknown_084AFFEC
_08044F18: .4byte 0x06010B20
_08044F1C: .4byte 0x800000C0
_08044F20: .4byte gMain
_08044F24: .4byte gMPlayInfo_SE1
_08044F28: .4byte gUnknown_086A2D94
_08044F2C: .4byte gUnknown_086A2E70
_08044F30:
bl sub_45164
_08044F34:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_44F3C
sub_44F3C: @ 0x08044F3C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r6, _08045010 @ =gUnknown_0200C160
ldrh r0, [r6]
ldr r1, _08045014 @ =gUnknown_020314E0
mov sb, r1
ldr r2, _08045018 @ =gUnknown_086AFC16
mov r8, r2
cmp r0, #0
beq _08044FE6
ldr r1, [r1]
ldr r3, _0804501C @ =0x00000591
adds r0, r1, r3
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #3
add r2, r8
ldrh r0, [r2, #4]
adds r0, #0x86
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #2]
ldrh r1, [r2, #6]
adds r1, #0x9a
mov r3, sb
ldr r0, [r3]
adds r0, #0x5a
ldrh r0, [r0]
subs r1, r1, r0
strh r1, [r6, #4]
ldr r3, _08045020 @ =0x040000D4
movs r0, #0
ldrsh r1, [r2, r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08045024 @ =gUnknown_084B7FEC
adds r0, r0, r1
str r0, [r3]
ldr r0, _08045028 @ =0x06012120
str r0, [r3, #4]
ldr r0, _0804502C @ =0x80000230
str r0, [r3, #8]
ldr r0, [r3, #8]
movs r0, #0
ldr r7, _08045030 @ =gOamBuffer
ldr r1, _08045034 @ =0xFFFFFE00
mov ip, r1
_08044FA2:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r3, r5, #3
adds r3, #8
adds r3, r6, r3
ldrh r4, [r3]
lsls r4, r4, #3
adds r4, r4, r7
movs r2, #2
ldrsh r1, [r3, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08045038 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r4, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r4, #2]
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _08044FA2
_08044FE6:
mov r5, sb
ldr r2, [r5]
ldr r6, _0804501C @ =0x00000591
adds r4, r2, r6
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #3
mov r1, r8
adds r1, #2
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
ldr r1, _0804503C @ =0x00000592
adds r2, r2, r1
ldrh r3, [r2]
cmp r0, r3
ble _08045040
adds r0, r3, #1
strh r0, [r2]
b _08045148
.align 2, 0
_08045010: .4byte gUnknown_0200C160
_08045014: .4byte gUnknown_020314E0
_08045018: .4byte gUnknown_086AFC16
_0804501C: .4byte 0x00000591
_08045020: .4byte 0x040000D4
_08045024: .4byte gUnknown_084B7FEC
_08045028: .4byte 0x06012120
_0804502C: .4byte 0x80000230
_08045030: .4byte gOamBuffer
_08045034: .4byte 0xFFFFFE00
_08045038: .4byte 0x000001FF
_0804503C: .4byte 0x00000592
_08045040:
movs r3, #0
mov r8, r3
movs r7, #0
strh r7, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r0, [r5]
ldr r1, _08045154 @ =0x00000591
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #1
bne _08045066
ldr r0, _08045158 @ =gMain
movs r2, #0x85
lsls r2, r2, #5
adds r0, r0, r2
strh r1, [r0]
_08045066:
ldr r0, [r5]
adds r1, r0, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x13
bne _08045086
movs r0, #0x12
strb r0, [r1]
ldr r0, _08045158 @ =gMain
movs r3, #0x85
lsls r3, r3, #5
adds r0, r0, r3
strh r7, [r0]
ldr r0, [r5]
adds r0, #0x7e
strh r7, [r0]
_08045086:
ldr r2, [r5]
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bne _080450C8
ldr r0, _0804515C @ =0x0000132C
adds r2, r2, r0
ldr r1, [r2]
ldrh r0, [r1, #0xa]
subs r0, #0x40
strh r0, [r1, #0xa]
ldr r1, [r2]
movs r0, #0x8d
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r2]
movs r0, #0xc8
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r1, [r2]
ldr r0, _08045160 @ =0x0000FFA0
strh r0, [r1, #0x30]
ldr r1, [r2]
movs r0, #0x54
strh r0, [r1, #0x32]
ldr r1, [r2]
movs r0, #3
strb r0, [r1, #1]
movs r0, #7
bl sub_11B0
_080450C8:
ldr r0, [r5]
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _080450DC
movs r0, #0xd3
bl m4aSongNumStart
_080450DC:
ldr r0, [r5]
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xf
bne _080450F0
movs r0, #0xd4
bl m4aSongNumStart
_080450F0:
ldr r0, [r5]
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
bne _08045134
movs r0, #0xd6
bl m4aSongNumStart
ldr r0, [r5]
ldr r2, _0804515C @ =0x0000132C
adds r0, r0, r2
ldr r0, [r0]
mov r1, r8
strb r1, [r0]
ldr r1, [r5]
adds r1, r1, r2
ldr r2, [r1]
ldrh r0, [r2, #0xa]
subs r0, #0x40
strh r0, [r2, #0xa]
ldr r2, [r1]
movs r0, #0x8f
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r0, #0xc3
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r0, [r1]
strh r7, [r0, #0x30]
ldr r0, [r1]
strh r7, [r0, #0x32]
_08045134:
mov r2, sb
ldr r1, [r2]
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bne _08045148
mov r3, r8
strb r3, [r1, #0x1f]
_08045148:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08045154: .4byte 0x00000591
_08045158: .4byte gMain
_0804515C: .4byte 0x0000132C
_08045160: .4byte 0x0000FFA0
thumb_func_start sub_45164
sub_45164: @ 0x08045164
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r6, _080452A0 @ =gUnknown_0200C218
ldrh r0, [r6]
cmp r0, #0
beq _08045234
ldr r0, _080452A4 @ =gUnknown_020314E0
ldr r4, [r0]
movs r1, #0xc8
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r4, #0x58
ldrh r1, [r4]
subs r1, #0x92
subs r0, r0, r1
strh r0, [r6, #2]
ldr r3, _080452A4 @ =gUnknown_020314E0
ldr r4, [r3]
ldr r1, _080452A8 @ =0x00000322
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r5, r0, #0
adds r0, r4, #0
adds r0, #0x5a
ldrh r0, [r0]
subs r0, #0x6e
subs r5, r5, r0
ldr r3, _080452AC @ =0x0000030E
adds r4, r4, r3
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
adds r5, r5, r0
strh r5, [r6, #4]
ldr r2, _080452A4 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _080452B0 @ =0x00000591
adds r0, r0, r3
ldr r2, _080452B4 @ =0x040000D4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _080452B8 @ =gUnknown_084BB16C
adds r0, r0, r1
str r0, [r2]
ldr r0, _080452BC @ =0x060125A0
str r0, [r2, #4]
ldr r0, _080452C0 @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
ldr r7, _080452C4 @ =gOamBuffer
ldr r1, _080452C8 @ =0xFFFFFE00
mov r8, r1
_080451F0:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r3, r5, #3
adds r3, #8
adds r3, r6, r3
ldrh r4, [r3]
lsls r4, r4, #3
adds r4, r4, r7
movs r2, #2
ldrsh r1, [r3, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _080452CC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r4, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r4, #2]
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _080451F0
_08045234:
ldr r3, _080452A4 @ =gUnknown_020314E0
ldr r4, [r3]
ldr r1, _080452D0 @ =0x00000592
adds r0, r4, r1
ldrh r0, [r0]
cmp r0, #0xfa
bhi _080452F0
cmp r0, #0xfa
beq _08045248
b _08045594
_08045248:
movs r2, #0xc8
lsls r2, r2, #2
adds r1, r4, r2
movs r2, #0
movs r0, #0xe6
lsls r0, r0, #2
strh r0, [r1]
ldr r3, _080452A8 @ =0x00000322
adds r1, r4, r3
ldr r0, _080452D4 @ =0x0000FF9C
strh r0, [r1]
movs r0, #0xc7
lsls r0, r0, #2
adds r1, r4, r0
ldr r0, _080452D8 @ =0x0000FFAE
strh r0, [r1]
ldr r1, _080452DC @ =0x0000031E
adds r0, r4, r1
strh r2, [r0]
subs r3, #0x16
adds r0, r4, r3
strh r2, [r0]
ldr r0, _080452E0 @ =0x00000306
adds r1, r4, r0
movs r0, #8
strb r0, [r1]
ldr r1, _080452A4 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080452B0 @ =0x00000591
adds r0, r0, r2
movs r1, #0xd
strb r1, [r0]
ldr r0, _080452E4 @ =gMain
ldr r3, _080452E8 @ =0x00001158
adds r0, r0, r3
movs r2, #1
movs r1, #1
strh r1, [r0]
ldr r1, _080452A4 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _080452EC @ =0x000005FA
adds r0, r0, r3
strb r2, [r0]
b _08045594
.align 2, 0
_080452A0: .4byte gUnknown_0200C218
_080452A4: .4byte gUnknown_020314E0
_080452A8: .4byte 0x00000322
_080452AC: .4byte 0x0000030E
_080452B0: .4byte 0x00000591
_080452B4: .4byte 0x040000D4
_080452B8: .4byte gUnknown_084BB16C
_080452BC: .4byte 0x060125A0
_080452C0: .4byte 0x80000240
_080452C4: .4byte gOamBuffer
_080452C8: .4byte 0xFFFFFE00
_080452CC: .4byte 0x000001FF
_080452D0: .4byte 0x00000592
_080452D4: .4byte 0x0000FF9C
_080452D8: .4byte 0x0000FFAE
_080452DC: .4byte 0x0000031E
_080452E0: .4byte 0x00000306
_080452E4: .4byte gMain
_080452E8: .4byte 0x00001158
_080452EC: .4byte 0x000005FA
_080452F0:
movs r5, #0xc3
lsls r5, r5, #2
adds r0, r4, r5
ldrh r0, [r0]
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #6
bl __udivsi3
adds r0, #0xd
ldr r2, _0804537C @ =0x00000591
adds r1, r4, r2
strb r0, [r1]
ldr r3, _08045380 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, r0, r5
ldrh r0, [r0]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x10
bl sub_C24
adds r1, r0, #0
ldr r0, _08045380 @ =gUnknown_020314E0
ldr r4, [r0]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #4
ldr r1, _08045384 @ =0x00004E20
bl __divsi3
ldr r2, _08045388 @ =0x0000030E
adds r1, r4, r2
strh r0, [r1]
adds r4, r4, r5
ldrh r0, [r4]
cmp r0, #0
bne _0804534A
movs r0, #0xe4
bl m4aSongNumStart
_0804534A:
ldr r3, _08045380 @ =gUnknown_020314E0
ldr r4, [r3]
adds r0, r4, r5
ldrh r0, [r0]
cmp r0, #0x27
bhi _08045390
movs r0, #0xc8
lsls r0, r0, #2
adds r1, r4, r0
movs r2, #0xc7
lsls r2, r2, #2
adds r0, r4, r2
ldrh r0, [r0]
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
ldr r0, _0804538C @ =0x00000322
adds r1, r4, r0
adds r2, #2
adds r0, r4, r2
ldrh r0, [r0]
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
b _0804539A
.align 2, 0
_0804537C: .4byte 0x00000591
_08045380: .4byte gUnknown_020314E0
_08045384: .4byte 0x00004E20
_08045388: .4byte 0x0000030E
_0804538C: .4byte 0x00000322
_08045390:
ldr r0, _0804547C @ =gMain
ldr r1, _08045480 @ =0x00001158
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
_0804539A:
ldr r0, _08045484 @ =gUnknown_020314E0
ldr r2, [r0]
movs r6, #0xc3
lsls r6, r6, #2
adds r1, r2, r6
ldrh r1, [r1]
cmp r1, #0xd
bne _08045416
ldr r5, _08045488 @ =0x0000132C
adds r0, r2, r5
ldr r1, [r0]
movs r0, #0
strb r0, [r1]
ldr r2, _08045484 @ =gUnknown_020314E0
ldr r4, [r2]
movs r3, #0xc5
lsls r3, r3, #2
adds r1, r4, r3
ldr r0, _0804548C @ =0x0000FFF6
strh r0, [r1]
ldr r0, _08045490 @ =0x00000316
adds r1, r4, r0
ldr r0, _08045494 @ =0x0000FFE7
strh r0, [r1]
movs r1, #0xc8
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x9d
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
movs r3, #0xc6
lsls r3, r3, #2
adds r0, r4, r3
strh r1, [r0]
ldr r1, _08045498 @ =0x00000322
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, #0x86
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
ldr r3, _0804549C @ =0x0000031A
adds r0, r4, r3
strh r1, [r0]
adds r4, r4, r5
ldr r1, [r4]
movs r0, #1
strb r0, [r1, #1]
_08045416:
ldr r0, _08045484 @ =gUnknown_020314E0
ldr r7, [r0]
ldrb r0, [r7, #0x1f]
cmp r0, #0
bne _08045422
b _08045584
_08045422:
adds r0, r7, r6
ldrh r0, [r0]
cmp r0, #0xc
bhi _080454A0
ldr r1, _08045488 @ =0x0000132C
adds r4, r7, r1
ldr r5, [r4]
movs r2, #0xc8
lsls r2, r2, #2
adds r0, r7, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x9d
strh r0, [r5, #0x10]
ldr r5, [r4]
ldr r1, _08045498 @ =0x00000322
adds r0, r7, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x86
strh r0, [r5, #0x12]
ldr r1, [r4]
movs r3, #0x10
ldrsh r0, [r1, r3]
lsls r0, r0, #1
strh r0, [r1, #0x28]
ldr r1, [r4]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
ldr r1, [r4]
movs r3, #0x10
ldrsh r0, [r1, r3]
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r4]
b _0804557C
.align 2, 0
_0804547C: .4byte gMain
_08045480: .4byte 0x00001158
_08045484: .4byte gUnknown_020314E0
_08045488: .4byte 0x0000132C
_0804548C: .4byte 0x0000FFF6
_08045490: .4byte 0x00000316
_08045494: .4byte 0x0000FFE7
_08045498: .4byte 0x00000322
_0804549C: .4byte 0x0000031A
_080454A0:
ldr r3, _080455B0 @ =0x00000316
adds r1, r7, r3
ldrh r0, [r1]
adds r0, #2
movs r2, #0
mov r8, r2
movs r3, #0
mov sl, r3
strh r0, [r1]
movs r0, #0xc6
lsls r0, r0, #2
adds r2, r7, r0
movs r3, #0xc5
lsls r3, r3, #2
adds r0, r7, r3
ldrh r0, [r0]
ldrh r3, [r2]
adds r0, r0, r3
strh r0, [r2]
ldr r0, _080455B4 @ =0x0000031A
adds r4, r7, r0
ldrh r0, [r1]
ldrh r1, [r4]
adds r0, r0, r1
strh r0, [r4]
ldr r3, _080455B8 @ =0x0000132C
mov sb, r3
adds r5, r7, r3
ldr r6, [r5]
movs r1, #0
ldrsh r0, [r2, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #0x10]
ldr r6, [r5]
movs r2, #0
ldrsh r0, [r4, r2]
movs r1, #0xa
bl __divsi3
strh r0, [r6, #0x12]
ldr r5, [r5]
movs r3, #0x12
ldrsh r0, [r5, r3]
cmp r0, #0xb4
ble _08045556
movs r0, #0xb5
strh r0, [r5, #0x12]
ldr r1, _080455BC @ =0x000005F7
adds r0, r7, r1
mov r2, r8
strb r2, [r0]
ldr r3, _080455C0 @ =gUnknown_020314E0
ldr r0, [r3]
strb r2, [r0, #0x1f]
ldr r1, [r3]
ldr r0, _080455B8 @ =0x0000132C
adds r3, r1, r0
ldr r2, [r3]
ldr r0, _080455C4 @ =0x0000FFF6
strh r0, [r2, #0x30]
ldr r0, [r3]
mov r2, sl
strh r2, [r0, #0x32]
ldr r3, _080455C8 @ =0x000005FA
adds r1, r1, r3
mov r0, r8
strb r0, [r1]
ldr r1, _080455C0 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080455B8 @ =0x0000132C
adds r0, r0, r2
ldr r1, [r0]
movs r0, #3
strb r0, [r1, #1]
ldr r3, _080455C0 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0x24
mov r1, r8
strb r1, [r0]
ldr r0, [r3]
adds r0, #0x7e
mov r2, sl
strh r2, [r0]
movs r0, #0xe5
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_08045556:
ldr r3, _080455C0 @ =gUnknown_020314E0
ldr r1, [r3]
add r1, sb
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r2, #0x28]
ldr r2, [r1]
movs r3, #0x12
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r2, #0x2a]
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r1, [r1]
_0804557C:
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #8
str r0, [r1, #0x38]
_08045584:
ldr r3, _080455C0 @ =gUnknown_020314E0
ldr r1, [r3]
movs r0, #0xc3
lsls r0, r0, #2
adds r1, r1, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_08045594:
ldr r2, _080455C0 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _080455CC @ =0x00000592
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080455B0: .4byte 0x00000316
_080455B4: .4byte 0x0000031A
_080455B8: .4byte 0x0000132C
_080455BC: .4byte 0x000005F7
_080455C0: .4byte gUnknown_020314E0
_080455C4: .4byte 0x0000FFF6
_080455C8: .4byte 0x000005FA
_080455CC: .4byte 0x00000592
thumb_func_start sub_455D0
sub_455D0: @ 0x080455D0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
movs r2, #0
_080455DE:
ldr r3, _08045608 @ =gUnknown_020314E0
ldr r0, [r3]
lsls r2, r2, #0x10
asrs r1, r2, #0x10
ldr r4, _0804560C @ =0x00000536
adds r0, r0, r4
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r3
str r2, [sp]
cmp r0, #5
bls _080455FE
bl _08045DE0
_080455FE:
lsls r0, r0, #2
ldr r1, _08045610 @ =_08045614
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08045608: .4byte gUnknown_020314E0
_0804560C: .4byte 0x00000536
_08045610: .4byte _08045614
_08045614: @ jump table
.4byte _0804562C @ case 0
.4byte _08045642 @ case 1
.4byte _080456E0 @ case 2
.4byte _08045778 @ case 3
.4byte _08045B00 @ case 4
.4byte _08045C4C @ case 5
_0804562C:
mov r5, r8
ldr r0, [r5]
ldr r2, [sp]
asrs r1, r2, #0x10
movs r3, #0xa6
lsls r3, r3, #3
adds r0, r0, r3
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
b _08045DE0
_08045642:
mov r4, r8
ldr r1, [r4]
ldr r5, [sp]
asrs r6, r5, #0x10
movs r2, #0xa6
lsls r2, r2, #3
adds r0, r1, r2
adds r0, r0, r6
movs r3, #0
ldrsb r3, [r0, r3]
movs r4, #0xe8
lsls r4, r4, #2
mov sl, r4
add r1, sl
adds r1, r1, r3
movs r2, #0
movs r0, #2
strb r0, [r1]
mov r5, r8
ldr r1, [r5]
lsls r7, r3, #1
movs r0, #0xec
lsls r0, r0, #2
mov sb, r0
adds r0, r1, r0
adds r0, r0, r7
movs r4, #0
mov ip, r4
strh r2, [r0]
ldr r2, _080456D4 @ =0x000003A3
adds r1, r1, r2
adds r1, r1, r3
movs r0, #7
strb r0, [r1]
ldr r5, [r5]
lsls r1, r6, #1
ldr r4, _080456D8 @ =0x0000053C
adds r0, r5, r4
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #0
bne _08045698
b _08045DE0
_08045698:
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0
beq _080456A6
b _08045DE0
_080456A6:
ldr r1, _080456DC @ =0x00000536
adds r0, r5, r1
adds r0, r0, r6
mov r5, ip
strb r5, [r0]
mov r1, r8
ldr r0, [r1]
add r0, sl
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
mov r5, r8
ldr r1, [r5]
mov r5, sb
adds r0, r1, r5
adds r0, r0, r7
strh r4, [r0]
adds r1, r1, r2
adds r1, r1, r3
movs r0, #4
strb r0, [r1]
b _08045DE0
.align 2, 0
_080456D4: .4byte 0x000003A3
_080456D8: .4byte 0x0000053C
_080456DC: .4byte 0x00000536
_080456E0:
mov r0, r8
ldr r1, [r0]
ldr r2, [sp]
asrs r6, r2, #0x10
movs r3, #0xa6
lsls r3, r3, #3
adds r0, r1, r3
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
cmp r6, #2
bne _0804571E
movs r0, #1
strb r0, [r1, #0x1f]
mov r4, r8
ldr r0, [r4]
ldr r1, _08045768 @ =0x0000132C
adds r0, r0, r1
ldr r3, [r0]
ldrh r2, [r3, #0x30]
adds r2, #5
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
subs r2, r2, r0
strh r2, [r3, #0x30]
_0804571E:
mov r2, r8
ldr r1, [r2]
ldr r3, _0804576C @ =0x00000536
adds r1, r1, r3
adds r1, r1, r6
movs r4, #0
movs r0, #3
strb r0, [r1]
ldr r0, [r2]
ldr r1, _08045770 @ =0x00000533
adds r0, r0, r1
adds r0, r0, r6
strb r4, [r0]
ldr r1, [r2]
lsls r3, r5, #0x10
asrs r3, r3, #0x10
movs r2, #0xe8
lsls r2, r2, #2
adds r1, r1, r2
adds r1, r1, r3
movs r0, #2
strb r0, [r1]
mov r5, r8
ldr r1, [r5]
lsls r2, r3, #1
movs r5, #0xec
lsls r5, r5, #2
adds r0, r1, r5
adds r0, r0, r2
strh r4, [r0]
ldr r0, _08045774 @ =0x000003A3
adds r1, r1, r0
adds r1, r1, r3
movs r0, #7
strb r0, [r1]
b _08045DE0
.align 2, 0
_08045768: .4byte 0x0000132C
_0804576C: .4byte 0x00000536
_08045770: .4byte 0x00000533
_08045774: .4byte 0x000003A3
_08045778:
mov r1, r8
ldr r2, [r1]
ldr r4, [sp]
asrs r3, r4, #0x10
movs r5, #0xa6
lsls r5, r5, #3
adds r0, r2, r5
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
cmp r3, #1
ble _08045798
b _0804599C
_08045798:
lsls r0, r5, #0x10
asrs r4, r0, #0x10
mov sb, r0
cmp r4, #0
bne _080457C8
lsls r1, r3, #3
movs r5, #0xb0
lsls r5, r5, #3
adds r0, r2, r5
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _080457C4 @ =0x000055FF
cmp r1, r0
ble _080457EA
lsls r0, r3, #2
adds r0, r2, r0
movs r1, #0xaf
lsls r1, r1, #3
adds r0, r0, r1
strh r4, [r0]
b _080457EA
.align 2, 0
_080457C4: .4byte 0x000055FF
_080457C8:
lsls r1, r3, #3
movs r4, #0xb0
lsls r4, r4, #3
adds r0, r2, r4
adds r0, r0, r1
ldr r1, [r0]
movs r0, #0x9c
lsls r0, r0, #8
cmp r1, r0
bgt _080457EA
lsls r0, r3, #2
adds r0, r2, r0
movs r5, #0xaf
lsls r5, r5, #3
adds r0, r0, r5
movs r1, #0
strh r1, [r0]
_080457EA:
mov r0, r8
ldr r2, [r0]
ldr r1, [sp]
asrs r5, r1, #0x10
lsls r7, r5, #2
adds r1, r2, r7
ldr r3, _08045870 @ =0x0000057A
mov sl, r3
add r1, sl
ldrh r0, [r1]
adds r0, #0xc
strh r0, [r1]
mov r4, sb
asrs r6, r4, #0x10
movs r1, #0xa9
lsls r1, r1, #3
adds r0, r2, r1
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08045880
lsls r1, r5, #3
adds r3, #0xa
adds r0, r2, r3
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _08045874 @ =0x000065FF
cmp r1, r0
bgt _0804582A
b _08045DE0
_0804582A:
ldr r4, _08045878 @ =0x00000533
adds r0, r2, r4
adds r0, r0, r5
movs r1, #0
strb r1, [r0]
mov r2, r8
ldr r0, [r2]
subs r3, #0x4e
adds r0, r0, r3
adds r0, r0, r5
movs r1, #5
strb r1, [r0]
ldr r0, [r2]
movs r4, #0xe8
lsls r4, r4, #2
adds r0, r0, r4
adds r0, r0, r6
movs r1, #3
strb r1, [r0]
ldr r0, [r2]
ldr r5, _0804587C @ =0x000003A3
adds r0, r0, r5
adds r0, r0, r6
movs r1, #0xf
strb r1, [r0]
ldr r0, [r2]
lsls r1, r6, #1
movs r2, #0xec
lsls r2, r2, #2
adds r0, r0, r2
adds r0, r0, r1
movs r3, #0
strh r3, [r0]
b _08045DE0
.align 2, 0
_08045870: .4byte 0x0000057A
_08045874: .4byte 0x000065FF
_08045878: .4byte 0x00000533
_0804587C: .4byte 0x000003A3
_08045880:
lsls r3, r5, #3
ldr r4, _08045904 @ =0x00000584
mov sb, r4
adds r0, r2, r4
adds r0, r0, r3
ldr r1, [r0]
ldr r0, _08045908 @ =0x000065FF
cmp r1, r0
bgt _08045894
b _08045DE0
_08045894:
subs r4, #0x51
adds r1, r2, r4
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, _0804590C @ =gMPlayInfo_SE1
ldr r1, _08045910 @ =gUnknown_086A2EE4
str r3, [sp, #4]
bl MPlayStart
mov r0, r8
ldr r2, [r0]
adds r4, r2, r4
adds r4, r4, r5
movs r0, #0
ldrsb r0, [r4, r0]
ldr r3, [sp, #4]
cmp r0, #2
bgt _08045920
mov r1, sb
adds r0, r2, r1
adds r0, r0, r3
movs r1, #0xcc
lsls r1, r1, #7
str r1, [r0]
adds r0, r2, r7
add r0, sl
ldr r1, _08045914 @ =0x0000FED4
strh r1, [r0]
ldr r3, _08045918 @ =0x00000553
adds r0, r2, r3
adds r0, r0, r5
movs r1, #0xd
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
movs r5, #0xe8
lsls r5, r5, #2
adds r0, r0, r5
adds r0, r0, r6
movs r1, #2
strb r1, [r0]
ldr r0, [r4]
ldr r1, _0804591C @ =0x000003A3
adds r0, r0, r1
adds r0, r0, r6
movs r1, #8
strb r1, [r0]
ldr r1, [r4]
lsls r0, r6, #1
movs r2, #0xec
lsls r2, r2, #2
adds r1, r1, r2
adds r1, r1, r0
b _08045A5C
.align 2, 0
_08045904: .4byte 0x00000584
_08045908: .4byte 0x000065FF
_0804590C: .4byte gMPlayInfo_SE1
_08045910: .4byte gUnknown_086A2EE4
_08045914: .4byte 0x0000FED4
_08045918: .4byte 0x00000553
_0804591C: .4byte 0x000003A3
_08045920:
adds r2, r2, r7
lsls r0, r6, #4
subs r0, r0, r6
lsls r0, r0, #2
movs r1, #0x1e
subs r1, r1, r0
lsls r1, r1, #2
movs r3, #0xaf
lsls r3, r3, #3
adds r0, r2, r3
strh r1, [r0]
add r2, sl
ldr r0, _08045988 @ =0x0000FE70
strh r0, [r2]
movs r0, #0
strb r0, [r4]
mov r1, r8
ldr r0, [r1]
ldr r2, _0804598C @ =0x00000536
adds r0, r0, r2
adds r0, r0, r5
movs r1, #4
strb r1, [r0]
mov r3, r8
ldr r0, [r3]
movs r4, #0xe8
lsls r4, r4, #2
adds r0, r0, r4
adds r0, r0, r6
movs r1, #3
strb r1, [r0]
ldr r0, [r3]
ldr r5, _08045990 @ =0x000003A3
adds r0, r0, r5
adds r0, r0, r6
movs r1, #0xb
strb r1, [r0]
ldr r2, [r3]
lsls r1, r6, #1
movs r3, #0xec
lsls r3, r3, #2
adds r0, r2, r3
adds r0, r0, r1
movs r4, #0
strh r4, [r0]
ldr r5, _08045994 @ =0x00000542
adds r1, r2, r5
movs r0, #0x64
strh r0, [r1]
ldr r0, _08045998 @ =0x0000052C
adds r2, r2, r0
b _08045AE2
.align 2, 0
_08045988: .4byte 0x0000FE70
_0804598C: .4byte 0x00000536
_08045990: .4byte 0x000003A3
_08045994: .4byte 0x00000542
_08045998: .4byte 0x0000052C
_0804599C:
lsls r0, r5, #0x10
asrs r3, r0, #0x10
mov sb, r0
cmp r3, #0
bne _080459C0
ldr r1, _080459B8 @ =0x0000132C
adds r0, r2, r1
ldr r2, [r0]
ldr r1, [r2, #0x34]
ldr r0, _080459BC @ =0x000055FF
cmp r1, r0
ble _080459D4
strh r3, [r2, #0x30]
b _080459D4
.align 2, 0
_080459B8: .4byte 0x0000132C
_080459BC: .4byte 0x000055FF
_080459C0:
ldr r3, _08045A64 @ =0x0000132C
adds r0, r2, r3
ldr r2, [r0]
ldr r1, [r2, #0x34]
movs r0, #0x9c
lsls r0, r0, #8
cmp r1, r0
bgt _080459D4
movs r0, #0
strh r0, [r2, #0x30]
_080459D4:
mov r4, r8
ldr r3, [r4]
ldr r7, _08045A64 @ =0x0000132C
adds r2, r3, r7
ldr r1, [r2]
ldrh r0, [r1, #0x32]
adds r0, #3
movs r5, #0
mov sl, r5
strh r0, [r1, #0x32]
ldr r0, [r2]
ldr r1, [r0, #0x38]
ldr r0, _08045A68 @ =0x000064FF
cmp r1, r0
bgt _080459F4
b _08045DE0
_080459F4:
ldr r0, [sp]
asrs r5, r0, #0x10
ldr r4, _08045A6C @ =0x00000533
adds r1, r3, r4
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, _08045A70 @ =gMPlayInfo_SE1
ldr r1, _08045A74 @ =gUnknown_086A2EE4
bl MPlayStart
movs r0, #7
bl sub_11B0
mov r1, r8
ldr r3, [r1]
adds r4, r3, r4
adds r6, r4, r5
movs r0, #0
ldrsb r0, [r6, r0]
cmp r0, #2
bgt _08045A80
adds r2, r3, r7
ldr r1, [r2]
movs r0, #0xca
lsls r0, r0, #7
str r0, [r1, #0x38]
ldr r1, [r2]
ldr r0, _08045A78 @ =0x0000FFA6
strh r0, [r1, #0x32]
mov r4, sb
asrs r2, r4, #0x10
movs r5, #0xe8
lsls r5, r5, #2
adds r0, r3, r5
adds r0, r0, r2
movs r1, #2
strb r1, [r0]
mov r1, r8
ldr r0, [r1]
ldr r3, _08045A7C @ =0x000003A3
adds r0, r0, r3
adds r0, r0, r2
movs r1, #8
strb r1, [r0]
mov r4, r8
ldr r1, [r4]
lsls r2, r2, #1
adds r5, #0x10
adds r1, r1, r5
adds r1, r1, r2
_08045A5C:
movs r0, #0xc
strh r0, [r1]
b _08045DE0
.align 2, 0
_08045A64: .4byte 0x0000132C
_08045A68: .4byte 0x000064FF
_08045A6C: .4byte 0x00000533
_08045A70: .4byte gMPlayInfo_SE1
_08045A74: .4byte gUnknown_086A2EE4
_08045A78: .4byte 0x0000FFA6
_08045A7C: .4byte 0x000003A3
_08045A80:
adds r2, r3, r7
ldr r4, [r2]
mov r0, sb
asrs r3, r0, #0x10
lsls r1, r3, #3
subs r1, r1, r3
lsls r1, r1, #3
movs r0, #0x1c
subs r0, r0, r1
strh r0, [r4, #0x30]
ldr r1, [r2]
ldr r0, _08045AEC @ =0x0000FF88
strh r0, [r1, #0x32]
mov r1, sl
strb r1, [r6]
mov r2, r8
ldr r0, [r2]
ldr r4, _08045AF0 @ =0x00000536
adds r0, r0, r4
adds r0, r0, r5
movs r1, #4
strb r1, [r0]
ldr r0, [r2]
movs r5, #0xe8
lsls r5, r5, #2
adds r0, r0, r5
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
ldr r0, [r2]
ldr r1, _08045AF4 @ =0x000003A3
adds r0, r0, r1
adds r0, r0, r3
movs r1, #0xb
strb r1, [r0]
ldr r2, [r2]
lsls r3, r3, #1
movs r4, #0xec
lsls r4, r4, #2
adds r0, r2, r4
adds r0, r0, r3
movs r5, #0
strh r5, [r0]
ldr r0, _08045AF8 @ =0x00000542
adds r1, r2, r0
movs r0, #0x6a
strh r0, [r1]
ldr r1, _08045AFC @ =0x0000052D
adds r2, r2, r1
_08045AE2:
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
b _08045DE0
.align 2, 0
_08045AEC: .4byte 0x0000FF88
_08045AF0: .4byte 0x00000536
_08045AF4: .4byte 0x000003A3
_08045AF8: .4byte 0x00000542
_08045AFC: .4byte 0x0000052D
_08045B00:
mov r2, r8
ldr r3, [r2]
ldr r4, [sp]
asrs r2, r4, #0x10
movs r5, #0xa6
lsls r5, r5, #3
adds r0, r3, r5
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
cmp r2, #1
bgt _08045B90
lsls r0, r2, #2
adds r4, r3, r0
ldr r0, _08045B4C @ =0x0000057A
adds r1, r4, r0
ldrh r0, [r1]
adds r0, #0xc
movs r6, #0
strh r0, [r1]
cmp r5, #0
bne _08045B54
lsls r1, r2, #3
movs r2, #0xb0
lsls r2, r2, #3
adds r0, r3, r2
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _08045B50 @ =0x000077FF
cmp r1, r0
ble _08045B70
movs r3, #0xaf
lsls r3, r3, #3
adds r0, r4, r3
b _08045B6E
.align 2, 0
_08045B4C: .4byte 0x0000057A
_08045B50: .4byte 0x000077FF
_08045B54:
lsls r1, r2, #3
movs r5, #0xb0
lsls r5, r5, #3
adds r0, r3, r5
adds r0, r0, r1
ldr r1, [r0]
movs r0, #0xf0
lsls r0, r0, #7
cmp r1, r0
bgt _08045B70
movs r1, #0xaf
lsls r1, r1, #3
adds r0, r4, r1
_08045B6E:
strh r6, [r0]
_08045B70:
mov r3, r8
ldr r2, [r3]
ldr r5, [sp]
asrs r4, r5, #0x10
lsls r1, r4, #3
ldr r3, _08045B88 @ =0x00000584
adds r0, r2, r3
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _08045B8C @ =0x000083FF
b _08045CD0
.align 2, 0
_08045B88: .4byte 0x00000584
_08045B8C: .4byte 0x000083FF
_08045B90:
ldr r1, _08045BB4 @ =0x0000132C
adds r2, r3, r1
ldr r0, [r2]
ldrh r1, [r0, #0x32]
adds r1, #3
movs r3, #0
strh r1, [r0, #0x32]
lsls r0, r5, #0x10
mov sb, r0
cmp r0, #0
bne _08045BBC
ldr r2, [r2]
ldr r1, [r2, #0x34]
ldr r0, _08045BB8 @ =0x000077FF
cmp r1, r0
ble _08045BCA
b _08045BC8
.align 2, 0
_08045BB4: .4byte 0x0000132C
_08045BB8: .4byte 0x000077FF
_08045BBC:
ldr r2, [r2]
ldr r1, [r2, #0x34]
movs r0, #0xf0
lsls r0, r0, #7
cmp r1, r0
bgt _08045BCA
_08045BC8:
strh r3, [r2, #0x30]
_08045BCA:
mov r2, r8
ldr r3, [r2]
ldr r7, _08045C34 @ =0x0000132C
adds r0, r3, r7
ldr r0, [r0]
ldr r1, [r0, #0x38]
ldr r0, _08045C38 @ =0x000083FF
cmp r1, r0
bgt _08045BDE
b _08045DE0
_08045BDE:
ldr r4, [sp]
asrs r5, r4, #0x10
ldr r2, _08045C3C @ =0x00000533
adds r1, r3, r2
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
movs r3, #0
mov sl, r3
strb r0, [r1]
mov r0, r8
ldr r4, [r0]
adds r2, r4, r2
adds r6, r2, r5
movs r0, #0
ldrsb r0, [r6, r0]
cmp r0, #1
bgt _08045C40
adds r4, r4, r7
ldr r1, [r4]
movs r0, #0x84
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r5, [r4]
movs r1, #0x32
ldrsh r0, [r5, r1]
rsbs r0, r0, #0
movs r1, #3
bl __divsi3
strh r0, [r5, #0x32]
ldr r0, [r4]
mov r2, sl
strh r2, [r0, #0x30]
movs r0, #0
ldrsb r0, [r6, r0]
cmp r0, #1
beq _08045C2C
b _08045DE0
_08045C2C:
movs r0, #7
bl sub_11B0
b _08045DE0
.align 2, 0
_08045C34: .4byte 0x0000132C
_08045C38: .4byte 0x000083FF
_08045C3C: .4byte 0x00000533
_08045C40:
adds r1, r4, r7
ldr r0, [r1]
movs r3, #0
mov r2, sl
strh r2, [r0, #0x32]
b _08045DC0
_08045C4C:
mov r5, r8
ldr r3, [r5]
ldr r0, [sp]
asrs r2, r0, #0x10
movs r1, #0xa6
lsls r1, r1, #3
adds r0, r3, r1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
cmp r2, #1
bgt _08045D20
lsls r0, r2, #2
adds r4, r3, r0
ldr r0, _08045C98 @ =0x0000057A
adds r1, r4, r0
ldrh r0, [r1]
adds r0, #0xc
movs r6, #0
strh r0, [r1]
cmp r5, #0
bne _08045CA0
lsls r1, r2, #3
movs r2, #0xb0
lsls r2, r2, #3
adds r0, r3, r2
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _08045C9C @ =0x000077FF
cmp r1, r0
ble _08045CBC
movs r3, #0xaf
lsls r3, r3, #3
adds r0, r4, r3
b _08045CBA
.align 2, 0
_08045C98: .4byte 0x0000057A
_08045C9C: .4byte 0x000077FF
_08045CA0:
lsls r1, r2, #3
movs r5, #0xb0
lsls r5, r5, #3
adds r0, r3, r5
adds r0, r0, r1
ldr r1, [r0]
movs r0, #0xf0
lsls r0, r0, #7
cmp r1, r0
bgt _08045CBC
movs r1, #0xaf
lsls r1, r1, #3
adds r0, r4, r1
_08045CBA:
strh r6, [r0]
_08045CBC:
mov r3, r8
ldr r2, [r3]
ldr r5, [sp]
asrs r4, r5, #0x10
lsls r1, r4, #3
ldr r3, _08045D08 @ =0x00000584
adds r0, r2, r3
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _08045D0C @ =0x00008DFF
_08045CD0:
cmp r1, r0
bgt _08045CD6
b _08045DE0
_08045CD6:
ldr r5, _08045D10 @ =0x00000536
adds r0, r2, r5
adds r0, r0, r4
movs r3, #0
strb r3, [r0]
mov r1, r8
ldr r0, [r1]
ldr r2, _08045D14 @ =0x00000553
adds r0, r0, r2
adds r0, r0, r4
movs r1, #0xe
strb r1, [r0]
mov r5, r8
ldr r1, [r5]
lsls r2, r4, #1
ldr r5, _08045D18 @ =0x00000562
adds r0, r1, r5
adds r0, r0, r2
movs r2, #0
strh r3, [r0]
ldr r0, _08045D1C @ =0x0000054B
adds r1, r1, r0
adds r1, r1, r4
strb r2, [r1]
b _08045DE0
.align 2, 0
_08045D08: .4byte 0x00000584
_08045D0C: .4byte 0x00008DFF
_08045D10: .4byte 0x00000536
_08045D14: .4byte 0x00000553
_08045D18: .4byte 0x00000562
_08045D1C: .4byte 0x0000054B
_08045D20:
ldr r1, _08045D44 @ =0x0000132C
adds r2, r3, r1
ldr r0, [r2]
ldrh r1, [r0, #0x32]
adds r1, #3
movs r3, #0
strh r1, [r0, #0x32]
lsls r0, r5, #0x10
mov sb, r0
cmp r0, #0
bne _08045D4C
ldr r2, [r2]
ldr r1, [r2, #0x34]
ldr r0, _08045D48 @ =0x000077FF
cmp r1, r0
ble _08045D5A
b _08045D58
.align 2, 0
_08045D44: .4byte 0x0000132C
_08045D48: .4byte 0x000077FF
_08045D4C:
ldr r2, [r2]
ldr r1, [r2, #0x34]
movs r0, #0xf0
lsls r0, r0, #7
cmp r1, r0
bgt _08045D5A
_08045D58:
strh r3, [r2, #0x30]
_08045D5A:
mov r4, r8
ldr r3, [r4]
ldr r6, _08045DAC @ =0x0000132C
adds r0, r3, r6
ldr r0, [r0]
ldr r1, [r0, #0x38]
ldr r0, _08045DB0 @ =0x00008DFF
cmp r1, r0
ble _08045DE0
ldr r2, [sp]
asrs r5, r2, #0x10
ldr r2, _08045DB4 @ =0x00000533
adds r1, r3, r2
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
movs r7, #0
strb r0, [r1]
ldr r4, [r4]
adds r2, r4, r2
adds r2, r2, r5
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #1
bgt _08045DB8
adds r4, r4, r6
ldr r1, [r4]
movs r0, #0x8e
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r5, [r4]
movs r3, #0x32
ldrsh r0, [r5, r3]
rsbs r0, r0, #0
movs r1, #3
bl __divsi3
strh r0, [r5, #0x32]
ldr r0, [r4]
strh r7, [r0, #0x30]
b _08045DE0
.align 2, 0
_08045DAC: .4byte 0x0000132C
_08045DB0: .4byte 0x00008DFF
_08045DB4: .4byte 0x00000533
_08045DB8:
adds r1, r4, r6
ldr r0, [r1]
movs r3, #0
strh r7, [r0, #0x32]
_08045DC0:
ldr r2, [r1]
mov r1, sb
asrs r0, r1, #0x10
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
movs r0, #5
subs r0, r0, r1
strh r0, [r2, #0x30]
strb r3, [r4, #0x1f]
mov r2, r8
ldr r0, [r2]
ldr r4, _08045E04 @ =0x00000536
adds r0, r0, r4
adds r0, r0, r5
strb r3, [r0]
_08045DE0:
ldr r5, [sp]
movs r1, #0x80
lsls r1, r1, #9
adds r0, r5, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bgt _08045DF4
bl _080455DE
_08045DF4:
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
_08045E04: .4byte 0x00000536
thumb_func_start sub_45E08
sub_45E08: @ 0x08045E08
push {r4, r5, r6, r7, lr}
ldr r4, _08045E70 @ =gUnknown_086AEED6
ldr r0, _08045E74 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x60
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r4
movs r2, #0x80
lsls r2, r2, #0x11
ldr r1, _08045E78 @ =gUnknown_03006C00
mov ip, r1
ldr r7, _08045E7C @ =0xFFFFF000
add r7, ip
ldr r6, _08045E80 @ =gUnknown_0837A4E8
movs r1, #0
ldrsh r0, [r0, r1]
lsls r3, r0, #2
ldr r5, _08045E84 @ =0x000003FF
movs r4, #0x80
lsls r4, r4, #4
_08045E3A:
asrs r2, r2, #0x10
adds r1, r2, r4
lsls r1, r1, #1
adds r1, r1, r7
lsls r0, r2, #1
adds r0, r0, r6
ldrh r0, [r0]
adds r0, r0, r3
strh r0, [r1]
adds r2, #1
lsls r2, r2, #0x10
asrs r0, r2, #0x10
cmp r0, r5
ble _08045E3A
ldr r1, _08045E88 @ =0x040000D4
mov r0, ip
str r0, [r1]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, _08045E8C @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08045E70: .4byte gUnknown_086AEED6
_08045E74: .4byte gMain
_08045E78: .4byte gUnknown_03006C00
_08045E7C: .4byte 0xFFFFF000
_08045E80: .4byte gUnknown_0837A4E8
_08045E84: .4byte 0x000003FF
_08045E88: .4byte 0x040000D4
_08045E8C: .4byte 0x80000400
thumb_func_start sub_45E90
sub_45E90: @ 0x08045E90
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x30
ldr r0, _08045ED0 @ =gUnknown_020314E0
ldr r4, [r0]
movs r1, #0x13
ldrsb r1, [r4, r1]
cmp r1, #3
ble _08045EDC
movs r0, #0xe5
lsls r0, r0, #2
adds r2, r4, r0
ldrh r3, [r2]
movs r0, #0
ldrsh r1, [r2, r0]
movs r0, #0x7e
rsbs r0, r0, #0
cmp r1, r0
ble _08045F12
subs r0, r3, #6
strh r0, [r2]
ldr r1, _08045ED4 @ =gMain
rsbs r0, r0, #0
adds r0, #4
ldr r2, _08045ED8 @ =0x000002EE
adds r1, r1, r2
strh r0, [r1]
b _08045F12
.align 2, 0
_08045ED0: .4byte gUnknown_020314E0
_08045ED4: .4byte gMain
_08045ED8: .4byte 0x000002EE
_08045EDC:
movs r3, #0xe5
lsls r3, r3, #2
adds r1, r4, r3
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
bge _08045EFA
adds r0, r2, #6
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
ble _08045EFA
movs r0, #0
strh r0, [r1]
_08045EFA:
ldr r0, _08045F84 @ =gMain
ldr r2, _08045F88 @ =gUnknown_020314E0
ldr r1, [r2]
movs r3, #0xe5
lsls r3, r3, #2
adds r1, r1, r3
ldrh r1, [r1]
rsbs r1, r1, #0
adds r1, #4
ldr r2, _08045F8C @ =0x000002EE
adds r0, r0, r2
strh r1, [r0]
_08045F12:
ldr r3, _08045F88 @ =gUnknown_020314E0
ldr r0, [r3]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bgt _08045F2E
ldr r1, _08045F84 @ =gMain
ldrh r0, [r1, #0x38]
ldr r0, _08045F90 @ =0x00001C42
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3a]
ldr r0, _08045F94 @ =0x00000C04
strh r0, [r1, #0x3a]
_08045F2E:
ldr r0, _08045F88 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #3
bne _08045F3C
ldrh r0, [r1, #0x18]
_08045F3C:
ldr r0, _08045F88 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _08045F98 @ =0x0000053A
adds r3, r2, r1
ldrh r0, [r3]
subs r0, #0x65
lsls r0, r0, #0x10
movs r1, #0xae
lsls r1, r1, #0x11
cmp r0, r1
bhi _08045FAA
ldr r0, _08045F9C @ =0x0000052E
adds r4, r2, r0
ldr r1, _08045FA0 @ =0x0000052C
adds r0, r2, r1
ldrb r5, [r4]
movs r1, #0
ldrsb r1, [r4, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
beq _08045FA4
ldrh r0, [r3]
movs r1, #3
bl __umodsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _08045FAA
adds r0, r5, #1
strb r0, [r4]
movs r0, #0x91
bl m4aSongNumStart
b _08045FAA
.align 2, 0
_08045F84: .4byte gMain
_08045F88: .4byte gUnknown_020314E0
_08045F8C: .4byte 0x000002EE
_08045F90: .4byte 0x00001C42
_08045F94: .4byte 0x00000C04
_08045F98: .4byte 0x0000053A
_08045F9C: .4byte 0x0000052E
_08045FA0: .4byte 0x0000052C
_08045FA4:
movs r0, #0xf5
lsls r0, r0, #1
strh r0, [r3]
_08045FAA:
ldr r0, _08045FF8 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r0, _08045FFC @ =0x0000053A
adds r3, r2, r0
ldr r1, _08046000 @ =0xFFFFFE0B
adds r0, r1, #0
ldrh r1, [r3]
adds r0, r0, r1
lsls r0, r0, #0x10
movs r1, #0x95
lsls r1, r1, #0x11
cmp r0, r1
bhi _08046012
ldr r0, _08046004 @ =0x0000052F
adds r4, r2, r0
ldr r1, _08046008 @ =0x0000052D
adds r0, r2, r1
ldrb r5, [r4]
movs r1, #0
ldrsb r1, [r4, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
beq _0804600C
ldrh r0, [r3]
movs r1, #3
bl __umodsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _08046012
adds r0, r5, #1
strb r0, [r4]
movs r0, #0x91
bl m4aSongNumStart
b _08046012
.align 2, 0
_08045FF8: .4byte gUnknown_020314E0
_08045FFC: .4byte 0x0000053A
_08046000: .4byte 0xFFFFFE0B
_08046004: .4byte 0x0000052F
_08046008: .4byte 0x0000052D
_0804600C:
movs r0, #0xc8
lsls r0, r0, #2
strh r0, [r3]
_08046012:
ldr r2, _080463D0 @ =gUnknown_020314E0
ldr r4, [r2]
ldr r3, _080463D4 @ =0x0000053A
adds r0, r4, r3
ldrh r1, [r0]
ldr r0, _080463D8 @ =0x0000031F
cmp r1, r0
bhi _0804602C
ldrh r0, [r4, #0x18]
cmp r0, #0xa0
bls _0804602C
movs r0, #0xa0
strh r0, [r4, #0x18]
_0804602C:
ldr r1, _080463D0 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080463D4 @ =0x0000053A
adds r0, r0, r2
ldrh r1, [r0]
adds r1, #1
strh r1, [r0]
ldr r6, _080463DC @ =gUnknown_0200B8C0
ldrh r0, [r6]
cmp r0, #0
bne _08046044
b _0804679A
_08046044:
movs r0, #0x78
strh r0, [r6, #2]
ldr r3, _080463D0 @ =gUnknown_020314E0
ldr r0, [r3]
movs r1, #0xe5
lsls r1, r1, #2
adds r0, r0, r1
ldrh r0, [r0]
adds r0, #0x3c
strh r0, [r6, #4]
movs r1, #0
add r2, sp, #0x18
mov r8, r2
movs r3, #0xb8
adds r3, r3, r6
mov sb, r3
ldr r7, _080463E0 @ =gOamBuffer
ldr r0, _080463E4 @ =0xFFFFFE00
mov ip, r0
_0804606A:
lsls r4, r1, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _080463E8 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r1, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0x15
ble _0804606A
ldr r3, _080463D0 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r1, _080463EC @ =0x0000052E
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r0, r1]
ldr r0, _080463F0 @ =0x004C4B40
adds r7, r1, #0
muls r7, r0, r7
mov r5, sp
ldr r4, _080463F4 @ =0x00989680
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strh r0, [r5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080463F8 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #2]
mov r0, sp
movs r6, #0xa
strh r6, [r0, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080463FC @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08046400 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #0xa]
mov r0, sp
strh r6, [r0, #0xc]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strh r0, [r5, #0xe]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strh r0, [r4, #0x10]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strh r0, [r4, #0x12]
movs r1, #0
_0804615C:
lsls r0, r1, #0x10
asrs r4, r0, #0x10
lsls r0, r4, #1
mov r2, sp
adds r5, r2, r0
movs r3, #0
ldrsh r0, [r5, r3]
movs r1, #0xa
bl __modsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _08046186
movs r0, #0x14
strh r0, [r5]
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0804615C
_08046186:
mov r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
lsls r0, r0, #1
movs r2, #0xb4
lsls r2, r2, #2
adds r5, r2, #0
adds r0, r0, r5
mov r3, r8
strh r0, [r3]
mov r0, sp
movs r1, #2
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r3, #2]
mov r0, sp
movs r2, #4
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r3, #4]
mov r0, sp
movs r3, #6
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r5
mov r1, r8
strh r0, [r1, #6]
mov r0, sp
movs r2, #8
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r1, #8]
mov r0, sp
movs r3, #0xa
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r1, #0xa]
mov r0, sp
movs r1, #0xc
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
mov r2, r8
strh r0, [r2, #0xc]
mov r0, sp
movs r3, #0xe
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r2, #0xe]
mov r0, sp
movs r1, #0x10
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r2, #0x10]
mov r0, sp
movs r2, #0x12
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r5
mov r3, r8
strh r0, [r3, #0x12]
ldr r1, _080463D0 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080463EC @ =0x0000052E
adds r0, r0, r2
movs r7, #0
ldrsb r7, [r0, r7]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __divsi3
strh r0, [r4]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strh r0, [r4, #2]
mov r0, sp
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0
bne _08046240
mov r1, sp
movs r0, #0x14
strh r0, [r1]
_08046240:
mov r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
mov r2, r8
strh r0, [r2, #0x14]
mov r0, sp
movs r3, #2
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r2, #0x16]
mov r6, sb
movs r0, #0x78
strh r0, [r6, #2]
ldr r1, _080463D0 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xe5
lsls r2, r2, #2
adds r0, r0, r2
ldrh r0, [r0]
adds r0, #0x3c
strh r0, [r6, #4]
movs r1, #0
ldr r7, _080463E0 @ =gOamBuffer
ldr r3, _08046404 @ =0x000003FF
mov sl, r3
mov ip, r8
ldr r0, _08046408 @ =0xFFFFFC00
mov sb, r0
_0804627E:
lsls r4, r1, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _080463E8 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _080463E4 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r5, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
lsls r0, r4, #1
add r0, ip
ldrh r0, [r0]
mov r1, sl
ands r1, r0
ldrh r2, [r3, #4]
mov r0, sb
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r1, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xb
ble _0804627E
ldr r1, _080463D0 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0804640C @ =0x0000052F
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
lsls r1, r2, #5
subs r1, r1, r2
lsls r0, r1, #6
subs r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
lsls r7, r0, #6
mov r5, sp
ldr r4, _080463F4 @ =0x00989680
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strh r0, [r5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080463F8 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #2]
mov r0, sp
movs r6, #0xa
strh r6, [r0, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080463FC @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08046400 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #0xa]
mov r0, sp
strh r6, [r0, #0xc]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strh r0, [r5, #0xe]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strh r0, [r4, #0x10]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strh r0, [r4, #0x12]
movs r1, #0
_08046392:
lsls r0, r1, #0x10
asrs r4, r0, #0x10
lsls r0, r4, #1
mov r3, sp
adds r5, r3, r0
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __modsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _080463BC
movs r0, #0x14
strh r0, [r5]
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _08046392
_080463BC:
mov r0, sp
movs r2, #0
ldrsh r0, [r0, r2]
lsls r0, r0, #1
movs r3, #0xb4
lsls r3, r3, #2
adds r5, r3, #0
adds r0, r0, r5
b _08046410
.align 2, 0
_080463D0: .4byte gUnknown_020314E0
_080463D4: .4byte 0x0000053A
_080463D8: .4byte 0x0000031F
_080463DC: .4byte gUnknown_0200B8C0
_080463E0: .4byte gOamBuffer
_080463E4: .4byte 0xFFFFFE00
_080463E8: .4byte 0x000001FF
_080463EC: .4byte 0x0000052E
_080463F0: .4byte 0x004C4B40
_080463F4: .4byte 0x00989680
_080463F8: .4byte 0x000F4240
_080463FC: .4byte 0x000186A0
_08046400: .4byte 0x00002710
_08046404: .4byte 0x000003FF
_08046408: .4byte 0xFFFFFC00
_0804640C: .4byte 0x0000052F
_08046410:
mov r1, r8
strh r0, [r1]
mov r0, sp
movs r2, #2
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r1, #2]
mov r0, sp
movs r3, #4
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r1, #4]
mov r0, sp
movs r1, #6
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
mov r2, r8
strh r0, [r2, #6]
mov r0, sp
movs r3, #8
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r2, #8]
mov r0, sp
movs r1, #0xa
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r2, #0xa]
mov r0, sp
movs r2, #0xc
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r5
mov r3, r8
strh r0, [r3, #0xc]
mov r0, sp
movs r1, #0xe
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r3, #0xe]
mov r0, sp
movs r2, #0x10
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r3, #0x10]
mov r0, sp
movs r3, #0x12
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r5
mov r1, r8
strh r0, [r1, #0x12]
ldr r2, _080467AC @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _080467B0 @ =0x0000052F
adds r0, r0, r3
movs r7, #0
ldrsb r7, [r0, r7]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __divsi3
strh r0, [r4]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strh r0, [r4, #2]
mov r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
bne _080464BA
mov r1, sp
movs r0, #0x14
strh r0, [r1]
_080464BA:
mov r0, sp
movs r2, #0
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r5
mov r3, r8
strh r0, [r3, #0x14]
mov r0, sp
movs r1, #2
ldrsh r0, [r0, r1]
lsls r0, r0, #1
adds r0, r0, r5
strh r0, [r3, #0x16]
ldr r6, _080467B4 @ =gUnknown_0200BA30
movs r0, #0x78
strh r0, [r6, #2]
ldr r2, _080467AC @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xe5
lsls r3, r3, #2
adds r0, r0, r3
ldrh r0, [r0]
adds r0, #0x3c
strh r0, [r6, #4]
movs r1, #0
ldr r7, _080467B8 @ =gOamBuffer
ldr r0, _080467BC @ =0x000003FF
mov sl, r0
mov ip, r8
ldr r2, _080467C0 @ =0xFFFFFC00
mov sb, r2
_080464F8:
lsls r4, r1, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _080467C4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _080467C8 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r5, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
lsls r0, r4, #1
add r0, ip
ldrh r0, [r0]
mov r1, sl
ands r1, r0
ldrh r2, [r3, #4]
mov r0, sb
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r1, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xb
ble _080464F8
ldr r0, _080467AC @ =gUnknown_020314E0
ldr r3, [r0]
ldr r1, _080467CC @ =0x0000052E
adds r0, r3, r1
movs r1, #0
ldrsb r1, [r0, r1]
ldr r0, _080467D0 @ =0x004C4B40
adds r4, r1, #0
muls r4, r0, r4
ldr r2, _080467B0 @ =0x0000052F
adds r0, r3, r2
movs r2, #0
ldrsb r2, [r0, r2]
lsls r1, r2, #5
subs r1, r1, r2
lsls r0, r1, #6
subs r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
lsls r0, r0, #6
adds r7, r4, r0
ldr r0, _080467D4 @ =0x00000544
adds r3, r3, r0
str r7, [r3]
mov r5, sp
ldr r4, _080467D8 @ =0x05F5E100
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strh r0, [r5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080467DC @ =0x00989680
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #2]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080467E0 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #4]
mov r0, sp
movs r6, #0xa
strh r6, [r0, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080467E4 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080467E8 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #0xa]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
strh r0, [r5, #0xc]
mov r0, sp
strh r6, [r0, #0xe]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strh r0, [r5, #0x10]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strh r0, [r4, #0x12]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strh r0, [r4, #0x14]
movs r1, #0
_08046636:
lsls r0, r1, #0x10
asrs r4, r0, #0x10
lsls r0, r4, #1
mov r1, sp
adds r5, r1, r0
movs r2, #0
ldrsh r0, [r5, r2]
movs r1, #0xa
bl __modsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _08046660
movs r0, #0x14
strh r0, [r5]
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _08046636
_08046660:
mov r0, sp
movs r3, #0
ldrsh r0, [r0, r3]
lsls r0, r0, #1
movs r2, #0xb4
lsls r2, r2, #2
adds r1, r2, #0
adds r0, r0, r1
mov r3, r8
strh r0, [r3]
mov r0, sp
movs r2, #2
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r1
strh r0, [r3, #2]
mov r0, sp
movs r3, #4
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r1
mov r2, r8
strh r0, [r2, #4]
mov r0, sp
movs r3, #6
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r1
strh r0, [r2, #6]
mov r0, sp
movs r2, #8
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r1
mov r3, r8
strh r0, [r3, #8]
mov r0, sp
movs r2, #0xa
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r1
strh r0, [r3, #0xa]
mov r0, sp
movs r3, #0xc
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r1
mov r2, r8
strh r0, [r2, #0xc]
mov r0, sp
movs r3, #0xe
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r1
strh r0, [r2, #0xe]
mov r0, sp
movs r2, #0x10
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r1
mov r3, r8
strh r0, [r3, #0x10]
mov r0, sp
movs r2, #0x12
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r0, r1
strh r0, [r3, #0x12]
mov r0, sp
movs r3, #0x14
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r1
mov r2, r8
strh r0, [r2, #0x14]
ldr r3, _080467AC @ =gUnknown_020314E0
ldr r0, [r3]
ldr r2, _080467EC @ =0x000005F6
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r7, r0, #1
mov r0, sp
strh r7, [r0]
movs r3, #0
ldrsh r0, [r0, r3]
lsls r0, r0, #1
adds r0, r0, r1
mov r1, r8
strh r0, [r1, #0x16]
ldr r6, _080467F0 @ =gUnknown_0200BAE8
movs r0, #0x78
strh r0, [r6, #2]
ldr r2, _080467AC @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xe5
lsls r3, r3, #2
adds r0, r0, r3
ldrh r0, [r0]
adds r0, #0x3c
strh r0, [r6, #4]
movs r1, #0
ldr r7, _080467B8 @ =gOamBuffer
ldr r0, _080467C8 @ =0xFFFFFE00
mov ip, r0
ldr r2, _080467BC @ =0x000003FF
mov sl, r2
ldr r3, _080467C0 @ =0xFFFFFC00
mov sb, r3
_0804673C:
lsls r4, r1, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _080467C4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r5, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
lsls r0, r4, #1
add r0, r8
ldrh r0, [r0]
mov r1, sl
ands r1, r0
ldrh r2, [r3, #4]
mov r0, sb
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
adds r4, #1
lsls r4, r4, #0x10
lsrs r1, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xb
ble _0804673C
_0804679A:
add sp, #0x30
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
_080467AC: .4byte gUnknown_020314E0
_080467B0: .4byte 0x0000052F
_080467B4: .4byte gUnknown_0200BA30
_080467B8: .4byte gOamBuffer
_080467BC: .4byte 0x000003FF
_080467C0: .4byte 0xFFFFFC00
_080467C4: .4byte 0x000001FF
_080467C8: .4byte 0xFFFFFE00
_080467CC: .4byte 0x0000052E
_080467D0: .4byte 0x004C4B40
_080467D4: .4byte 0x00000544
_080467D8: .4byte 0x05F5E100
_080467DC: .4byte 0x00989680
_080467E0: .4byte 0x000F4240
_080467E4: .4byte 0x000186A0
_080467E8: .4byte 0x00002710
_080467EC: .4byte 0x000005F6
_080467F0: .4byte gUnknown_0200BAE8
thumb_func_start sub_467F4
sub_467F4: @ 0x080467F4
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
ldr r0, _08046824 @ =gUnknown_02031520
ldr r3, _08046828 @ =gUnknown_086AFD70
ldr r4, _0804682C @ =gMain
ldrb r2, [r4, #4]
movs r1, #0x54
muls r1, r2, r1
adds r1, r1, r3
adds r0, #0x14
movs r2, #0x54
bl memcpy
ldrb r0, [r4, #4]
cmp r0, #7
bls _0804681A
b _08046F66
_0804681A:
lsls r0, r0, #2
ldr r1, _08046830 @ =_08046834
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08046824: .4byte gUnknown_02031520
_08046828: .4byte gUnknown_086AFD70
_0804682C: .4byte gMain
_08046830: .4byte _08046834
_08046834: @ jump table
.4byte _08046854 @ case 0
.4byte _0804698C @ case 1
.4byte _08046AC0 @ case 2
.4byte _08046B9C @ case 3
.4byte _08046C78 @ case 4
.4byte _08046D40 @ case 5
.4byte _08046E08 @ case 6
.4byte _08046EE8 @ case 7
_08046854:
ldr r4, _08046914 @ =0x040000D4
ldr r0, _08046918 @ =gUnknown_081BFEE4
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _0804691C @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046920 @ =gUnknown_08265C10
str r0, [r4]
ldr r0, _08046924 @ =0x06008000
mov r8, r0
str r0, [r4, #4]
ldr r1, _08046928 @ =0x80004000
mov sb, r1
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0804692C @ =gUnknown_0826DC10
str r0, [r4]
ldr r0, _08046930 @ =0x06003000
str r0, [r4, #4]
ldr r6, _08046934 @ =0x80000800
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046938 @ =gUnknown_0824C1E4
ldr r5, _0804693C @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046940 @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046944 @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046948 @ =gUnknown_0824DD60
adds r1, r5, #0
bl LZ77UnCompWram
ldr r0, _0804694C @ =gUnknown_08250934
ldr r1, _08046950 @ =gUnknown_020030A0
bl LZ77UnCompWram
movs r1, #0xc0
lsls r1, r1, #4
adds r0, r5, r1
str r0, [r4]
ldr r0, _08046954 @ =0x0600B400
str r0, [r4, #4]
ldr r0, _08046958 @ =0x80001200
str r0, [r4, #8]
ldr r0, [r4, #8]
movs r0, #0xc0
lsls r0, r0, #6
adds r5, r5, r0
str r5, [r4]
mov r1, r8
str r1, [r4, #4]
ldr r0, _0804695C @ =0x80001A00
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046960 @ =gUnknown_081C08E4
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046964 @ =gUnknown_0822E424
str r0, [r4]
ldr r0, _08046968 @ =0x06001000
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0804696C @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046970 @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046974 @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046978 @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _0804697C @ =0x06006C00
str r0, [r4, #4]
ldr r0, _08046980 @ =0x80000400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046984 @ =gUnknown_0845A48C
str r0, [r4]
ldr r0, _08046988 @ =0x06010000
str r0, [r4, #4]
mov r0, sb
str r0, [r4, #8]
b _08046F64
.align 2, 0
_08046914: .4byte 0x040000D4
_08046918: .4byte gUnknown_081BFEE4
_0804691C: .4byte 0x80000100
_08046920: .4byte gUnknown_08265C10
_08046924: .4byte 0x06008000
_08046928: .4byte 0x80004000
_0804692C: .4byte gUnknown_0826DC10
_08046930: .4byte 0x06003000
_08046934: .4byte 0x80000800
_08046938: .4byte gUnknown_0824C1E4
_0804693C: .4byte gUnknown_0200FBB0
_08046940: .4byte 0x06004000
_08046944: .4byte 0x80002000
_08046948: .4byte gUnknown_0824DD60
_0804694C: .4byte gUnknown_08250934
_08046950: .4byte gUnknown_020030A0
_08046954: .4byte 0x0600B400
_08046958: .4byte 0x80001200
_0804695C: .4byte 0x80001A00
_08046960: .4byte gUnknown_081C08E4
_08046964: .4byte gUnknown_0822E424
_08046968: .4byte 0x06001000
_0804696C: .4byte gUnknown_083A8ACC
_08046970: .4byte 0x06006800
_08046974: .4byte 0x80000200
_08046978: .4byte gUnknown_083A826C
_0804697C: .4byte 0x06006C00
_08046980: .4byte 0x80000400
_08046984: .4byte gUnknown_0845A48C
_08046988: .4byte 0x06010000
_0804698C:
ldr r4, _08046A48 @ =0x040000D4
ldr r0, _08046A4C @ =gUnknown_0826EC10
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _08046A50 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046A54 @ =gUnknown_082E4EE0
str r0, [r4]
ldr r1, _08046A58 @ =0x06008000
mov r8, r1
str r1, [r4, #4]
ldr r0, _08046A5C @ =0x80004000
mov sb, r0
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046A60 @ =gUnknown_082ECEE0
str r0, [r4]
ldr r0, _08046A64 @ =0x06003000
str r0, [r4, #4]
ldr r6, _08046A68 @ =0x80000800
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046A6C @ =gUnknown_082D34D0
ldr r5, _08046A70 @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046A74 @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046A78 @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046A7C @ =gUnknown_082D523C
adds r1, r5, #0
bl LZ77UnCompWram
ldr r0, _08046A80 @ =gUnknown_082D8998
ldr r1, _08046A84 @ =gUnknown_020030A0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046A88 @ =0x0600A800
str r0, [r4, #4]
ldr r0, _08046A8C @ =0x80001800
str r0, [r4, #8]
ldr r0, [r4, #8]
movs r1, #0xc0
lsls r1, r1, #6
adds r5, r5, r1
str r5, [r4]
mov r0, r8
str r0, [r4, #4]
ldr r0, _08046A90 @ =0x80001400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046A94 @ =gUnknown_0826EE10
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046A98 @ =gUnknown_082AE6D0
str r0, [r4]
ldr r0, _08046A9C @ =0x06001000
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046AA0 @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046AA4 @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046AA8 @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046AAC @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _08046AB0 @ =0x06006C00
str r0, [r4, #4]
ldr r0, _08046AB4 @ =0x80000400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046AB8 @ =gUnknown_0845F9EC
str r0, [r4]
ldr r0, _08046ABC @ =0x06010000
str r0, [r4, #4]
mov r1, sb
str r1, [r4, #8]
b _08046F64
.align 2, 0
_08046A48: .4byte 0x040000D4
_08046A4C: .4byte gUnknown_0826EC10
_08046A50: .4byte 0x80000100
_08046A54: .4byte gUnknown_082E4EE0
_08046A58: .4byte 0x06008000
_08046A5C: .4byte 0x80004000
_08046A60: .4byte gUnknown_082ECEE0
_08046A64: .4byte 0x06003000
_08046A68: .4byte 0x80000800
_08046A6C: .4byte gUnknown_082D34D0
_08046A70: .4byte gUnknown_0200FBB0
_08046A74: .4byte 0x06004000
_08046A78: .4byte 0x80002000
_08046A7C: .4byte gUnknown_082D523C
_08046A80: .4byte gUnknown_082D8998
_08046A84: .4byte gUnknown_020030A0
_08046A88: .4byte 0x0600A800
_08046A8C: .4byte 0x80001800
_08046A90: .4byte 0x80001400
_08046A94: .4byte gUnknown_0826EE10
_08046A98: .4byte gUnknown_082AE6D0
_08046A9C: .4byte 0x06001000
_08046AA0: .4byte gUnknown_083A8ACC
_08046AA4: .4byte 0x06006800
_08046AA8: .4byte 0x80000200
_08046AAC: .4byte gUnknown_083A826C
_08046AB0: .4byte 0x06006C00
_08046AB4: .4byte 0x80000400
_08046AB8: .4byte gUnknown_0845F9EC
_08046ABC: .4byte 0x06010000
_08046AC0:
ldr r4, _08046B44 @ =0x040000D4
ldr r0, _08046B48 @ =gUnknown_082EDEE0
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _08046B4C @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B50 @ =gUnknown_08302700
ldr r5, _08046B54 @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046B58 @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046B5C @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B60 @ =gUnknown_08303928
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046B64 @ =0x06008000
str r0, [r4, #4]
ldr r2, _08046B68 @ =0x80004000
str r2, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B6C @ =gUnknown_082EE4C0
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r1, _08046B70 @ =0x80000400
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B74 @ =gUnknown_08301700
str r0, [r4]
ldr r0, _08046B78 @ =0x06000800
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B7C @ =gUnknown_08301F00
str r0, [r4]
ldr r0, _08046B80 @ =0x06001000
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B84 @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046B88 @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046B8C @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B90 @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _08046B94 @ =0x06006C00
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046B98 @ =gUnknown_08464F4C
b _08046F5C
.align 2, 0
_08046B44: .4byte 0x040000D4
_08046B48: .4byte gUnknown_082EDEE0
_08046B4C: .4byte 0x80000100
_08046B50: .4byte gUnknown_08302700
_08046B54: .4byte gUnknown_0200FBB0
_08046B58: .4byte 0x06004000
_08046B5C: .4byte 0x80002000
_08046B60: .4byte gUnknown_08303928
_08046B64: .4byte 0x06008000
_08046B68: .4byte 0x80004000
_08046B6C: .4byte gUnknown_082EE4C0
_08046B70: .4byte 0x80000400
_08046B74: .4byte gUnknown_08301700
_08046B78: .4byte 0x06000800
_08046B7C: .4byte gUnknown_08301F00
_08046B80: .4byte 0x06001000
_08046B84: .4byte gUnknown_083A8ACC
_08046B88: .4byte 0x06006800
_08046B8C: .4byte 0x80000200
_08046B90: .4byte gUnknown_083A826C
_08046B94: .4byte 0x06006C00
_08046B98: .4byte gUnknown_08464F4C
_08046B9C:
ldr r4, _08046C20 @ =0x040000D4
ldr r0, _08046C24 @ =gUnknown_0830CBD4
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _08046C28 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C2C @ =gUnknown_08302700
ldr r5, _08046C30 @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046C34 @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046C38 @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C3C @ =gUnknown_0832A194
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046C40 @ =0x06008000
str r0, [r4, #4]
ldr r2, _08046C44 @ =0x80004000
str r2, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C48 @ =gUnknown_08329994
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r1, _08046C4C @ =0x80000400
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C50 @ =gUnknown_0830CDD4
str r0, [r4]
ldr r0, _08046C54 @ =0x06000800
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C58 @ =gUnknown_08327994
str r0, [r4]
ldr r0, _08046C5C @ =0x06001000
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C60 @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046C64 @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046C68 @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C6C @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _08046C70 @ =0x06006C00
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046C74 @ =gUnknown_084675EC
b _08046F5C
.align 2, 0
_08046C20: .4byte 0x040000D4
_08046C24: .4byte gUnknown_0830CBD4
_08046C28: .4byte 0x80000100
_08046C2C: .4byte gUnknown_08302700
_08046C30: .4byte gUnknown_0200FBB0
_08046C34: .4byte 0x06004000
_08046C38: .4byte 0x80002000
_08046C3C: .4byte gUnknown_0832A194
_08046C40: .4byte 0x06008000
_08046C44: .4byte 0x80004000
_08046C48: .4byte gUnknown_08329994
_08046C4C: .4byte 0x80000400
_08046C50: .4byte gUnknown_0830CDD4
_08046C54: .4byte 0x06000800
_08046C58: .4byte gUnknown_08327994
_08046C5C: .4byte 0x06001000
_08046C60: .4byte gUnknown_083A8ACC
_08046C64: .4byte 0x06006800
_08046C68: .4byte 0x80000200
_08046C6C: .4byte gUnknown_083A826C
_08046C70: .4byte 0x06006C00
_08046C74: .4byte gUnknown_084675EC
_08046C78:
ldr r4, _08046CF0 @ =0x040000D4
ldr r0, _08046CF4 @ =gUnknown_08332E04
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _08046CF8 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046CFC @ =gUnknown_08302700
ldr r5, _08046D00 @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046D04 @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046D08 @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046D0C @ =gUnknown_0833E044
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046D10 @ =0x06008000
str r0, [r4, #4]
ldr r2, _08046D14 @ =0x80004000
str r2, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046D18 @ =gUnknown_08333004
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r1, _08046D1C @ =0x80000400
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046D20 @ =gUnknown_0833D844
str r0, [r4]
ldr r0, _08046D24 @ =0x06000800
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046D28 @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046D2C @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046D30 @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046D34 @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _08046D38 @ =0x06006C00
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046D3C @ =gUnknown_0846A40C
b _08046F5C
.align 2, 0
_08046CF0: .4byte 0x040000D4
_08046CF4: .4byte gUnknown_08332E04
_08046CF8: .4byte 0x80000100
_08046CFC: .4byte gUnknown_08302700
_08046D00: .4byte gUnknown_0200FBB0
_08046D04: .4byte 0x06004000
_08046D08: .4byte 0x80002000
_08046D0C: .4byte gUnknown_0833E044
_08046D10: .4byte 0x06008000
_08046D14: .4byte 0x80004000
_08046D18: .4byte gUnknown_08333004
_08046D1C: .4byte 0x80000400
_08046D20: .4byte gUnknown_0833D844
_08046D24: .4byte 0x06000800
_08046D28: .4byte gUnknown_083A8ACC
_08046D2C: .4byte 0x06006800
_08046D30: .4byte 0x80000200
_08046D34: .4byte gUnknown_083A826C
_08046D38: .4byte 0x06006C00
_08046D3C: .4byte gUnknown_0846A40C
_08046D40:
ldr r4, _08046DB8 @ =0x040000D4
ldr r0, _08046DBC @ =gUnknown_08352BD8
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _08046DC0 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046DC4 @ =gUnknown_08302700
ldr r5, _08046DC8 @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046DCC @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046DD0 @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046DD4 @ =gUnknown_08353DD8
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046DD8 @ =0x06008000
str r0, [r4, #4]
ldr r2, _08046DDC @ =0x80004000
str r2, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046DE0 @ =gUnknown_08352DD8
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r1, _08046DE4 @ =0x80000400
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046DE8 @ =gUnknown_083535D8
str r0, [r4]
ldr r0, _08046DEC @ =0x06000800
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046DF0 @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046DF4 @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046DF8 @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046DFC @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _08046E00 @ =0x06006C00
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046E04 @ =gUnknown_0846D2AC
b _08046F5C
.align 2, 0
_08046DB8: .4byte 0x040000D4
_08046DBC: .4byte gUnknown_08352BD8
_08046DC0: .4byte 0x80000100
_08046DC4: .4byte gUnknown_08302700
_08046DC8: .4byte gUnknown_0200FBB0
_08046DCC: .4byte 0x06004000
_08046DD0: .4byte 0x80002000
_08046DD4: .4byte gUnknown_08353DD8
_08046DD8: .4byte 0x06008000
_08046DDC: .4byte 0x80004000
_08046DE0: .4byte gUnknown_08352DD8
_08046DE4: .4byte 0x80000400
_08046DE8: .4byte gUnknown_083535D8
_08046DEC: .4byte 0x06000800
_08046DF0: .4byte gUnknown_083A8ACC
_08046DF4: .4byte 0x06006800
_08046DF8: .4byte 0x80000200
_08046DFC: .4byte gUnknown_083A826C
_08046E00: .4byte 0x06006C00
_08046E04: .4byte gUnknown_0846D2AC
_08046E08:
ldr r4, _08046E8C @ =0x040000D4
ldr r0, _08046E90 @ =gUnknown_08363EC8
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _08046E94 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046E98 @ =gUnknown_08302700
ldr r5, _08046E9C @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046EA0 @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046EA4 @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046EA8 @ =gUnknown_08370808
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046EAC @ =0x06008000
str r0, [r4, #4]
ldr r2, _08046EB0 @ =0x80004000
str r2, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046EB4 @ =gUnknown_083640C8
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r1, _08046EB8 @ =0x80000800
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046EBC @ =gUnknown_0836F808
str r0, [r4]
ldr r0, _08046EC0 @ =0x06001000
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046EC4 @ =gUnknown_0836E808
str r0, [r4]
ldr r0, _08046EC8 @ =0x06003000
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046ECC @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046ED0 @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046ED4 @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046ED8 @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _08046EDC @ =0x06006C00
str r0, [r4, #4]
ldr r0, _08046EE0 @ =0x80000400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046EE4 @ =gUnknown_08472A6C
b _08046F5C
.align 2, 0
_08046E8C: .4byte 0x040000D4
_08046E90: .4byte gUnknown_08363EC8
_08046E94: .4byte 0x80000100
_08046E98: .4byte gUnknown_08302700
_08046E9C: .4byte gUnknown_0200FBB0
_08046EA0: .4byte 0x06004000
_08046EA4: .4byte 0x80002000
_08046EA8: .4byte gUnknown_08370808
_08046EAC: .4byte 0x06008000
_08046EB0: .4byte 0x80004000
_08046EB4: .4byte gUnknown_083640C8
_08046EB8: .4byte 0x80000800
_08046EBC: .4byte gUnknown_0836F808
_08046EC0: .4byte 0x06001000
_08046EC4: .4byte gUnknown_0836E808
_08046EC8: .4byte 0x06003000
_08046ECC: .4byte gUnknown_083A8ACC
_08046ED0: .4byte 0x06006800
_08046ED4: .4byte 0x80000200
_08046ED8: .4byte gUnknown_083A826C
_08046EDC: .4byte 0x06006C00
_08046EE0: .4byte 0x80000400
_08046EE4: .4byte gUnknown_08472A6C
_08046EE8:
ldr r4, _08046F78 @ =0x040000D4
ldr r0, _08046F7C @ =gUnknown_0837A2E8
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _08046F80 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046F84 @ =gUnknown_08302700
ldr r5, _08046F88 @ =gUnknown_0200FBB0
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046F8C @ =0x06004000
str r0, [r4, #4]
ldr r0, _08046F90 @ =0x80002000
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046F94 @ =gUnknown_0838E828
adds r1, r5, #0
bl LZ77UnCompWram
str r5, [r4]
ldr r0, _08046F98 @ =0x06008000
str r0, [r4, #4]
ldr r2, _08046F9C @ =0x80004000
str r2, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046FA0 @ =gUnknown_0837A4E8
str r0, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r1, _08046FA4 @ =0x80000400
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046FA8 @ =gUnknown_0838E028
str r0, [r4]
ldr r0, _08046FAC @ =0x06000800
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046FB0 @ =gUnknown_083A8ACC
str r0, [r4]
ldr r0, _08046FB4 @ =0x06006800
str r0, [r4, #4]
ldr r0, _08046FB8 @ =0x80000200
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046FBC @ =gUnknown_083A826C
str r0, [r4]
ldr r0, _08046FC0 @ =0x06006C00
str r0, [r4, #4]
str r1, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08046FC4 @ =gUnknown_084779EC
_08046F5C:
str r0, [r4]
ldr r0, _08046FC8 @ =0x06010000
str r0, [r4, #4]
str r2, [r4, #8]
_08046F64:
ldr r0, [r4, #8]
_08046F66:
ldr r1, _08046FCC @ =gUnknown_02031520
ldr r0, _08046FD0 @ =gUnknown_0816C3E4
str r0, [r1, #0x68]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08046F78: .4byte 0x040000D4
_08046F7C: .4byte gUnknown_0837A2E8
_08046F80: .4byte 0x80000100
_08046F84: .4byte gUnknown_08302700
_08046F88: .4byte gUnknown_0200FBB0
_08046F8C: .4byte 0x06004000
_08046F90: .4byte 0x80002000
_08046F94: .4byte gUnknown_0838E828
_08046F98: .4byte 0x06008000
_08046F9C: .4byte 0x80004000
_08046FA0: .4byte gUnknown_0837A4E8
_08046FA4: .4byte 0x80000400
_08046FA8: .4byte gUnknown_0838E028
_08046FAC: .4byte 0x06000800
_08046FB0: .4byte gUnknown_083A8ACC
_08046FB4: .4byte 0x06006800
_08046FB8: .4byte 0x80000200
_08046FBC: .4byte gUnknown_083A826C
_08046FC0: .4byte 0x06006C00
_08046FC4: .4byte gUnknown_084779EC
_08046FC8: .4byte 0x06010000
_08046FCC: .4byte gUnknown_02031520
_08046FD0: .4byte gUnknown_0816C3E4
thumb_func_start sub_46FD4
sub_46FD4: @ 0x08046FD4
push {r4, r5, lr}
ldr r5, _08047024 @ =gUnknown_02031520
ldr r4, _08047028 @ =gUnknown_086AFCB0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r2, r0, #1
adds r2, r2, r0
lsls r2, r2, #4
ldr r3, _0804702C @ =gMain
ldrb r1, [r3, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
adds r0, r2, r0
adds r0, r0, r4
ldr r0, [r0]
str r0, [r5, #0x38]
ldrb r1, [r3, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
adds r0, r2, r0
adds r1, r4, #0
adds r1, #0x10
adds r0, r0, r1
ldr r0, [r0]
str r0, [r5, #0x48]
ldrb r1, [r3, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
adds r2, r2, r0
adds r4, #0x20
adds r2, r2, r4
ldr r0, [r2]
str r0, [r5, #0x58]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08047024: .4byte gUnknown_02031520
_08047028: .4byte gUnknown_086AFCB0
_0804702C: .4byte gMain
thumb_func_start sub_47030
sub_47030: @ 0x08047030
push {r4, r5, lr}
ldr r0, _08047074 @ =gMain
ldr r1, _08047078 @ =0x000002F6
adds r0, r0, r1
ldrh r0, [r0]
lsrs r4, r0, #3
adds r2, r4, #0
lsls r1, r2, #3
ldr r0, _0804707C @ =gUnknown_086B0010
adds r3, r1, r0
ldr r1, _08047080 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x64
movs r5, #0
ldrsh r0, [r0, r5]
adds r5, r1, #0
cmp r2, r0
beq _080470EA
cmp r2, r0
ble _080470A8
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0x1f
ble _0804708C
ldr r2, _08047084 @ =0x040000D4
subs r0, #0x20
lsls r0, r0, #0xa
ldr r1, _08047088 @ =gUnknown_020030A0
adds r0, r0, r1
str r0, [r2]
movs r1, #2
ldrsh r0, [r3, r1]
b _080470D6
.align 2, 0
_08047074: .4byte gMain
_08047078: .4byte 0x000002F6
_0804707C: .4byte gUnknown_086B0010
_08047080: .4byte gUnknown_020314E0
_08047084: .4byte 0x040000D4
_08047088: .4byte gUnknown_020030A0
_0804708C:
ldr r2, _080470A0 @ =0x040000D4
movs r1, #0
ldrsh r0, [r3, r1]
lsls r0, r0, #0xa
ldr r1, _080470A4 @ =gUnknown_0200FBB0
adds r0, r0, r1
str r0, [r2]
movs r1, #2
ldrsh r0, [r3, r1]
b _080470D6
.align 2, 0
_080470A0: .4byte 0x040000D4
_080470A4: .4byte gUnknown_0200FBB0
_080470A8:
movs r1, #4
ldrsh r0, [r3, r1]
cmp r0, #0x1f
ble _080470C4
ldr r2, _080470BC @ =0x040000D4
subs r0, #0x20
lsls r0, r0, #0xa
ldr r1, _080470C0 @ =gUnknown_020030A0
b _080470CE
.align 2, 0
_080470BC: .4byte 0x040000D4
_080470C0: .4byte gUnknown_020030A0
_080470C4:
ldr r2, _080470F0 @ =0x040000D4
movs r1, #4
ldrsh r0, [r3, r1]
lsls r0, r0, #0xa
ldr r1, _080470F4 @ =gUnknown_0200FBB0
_080470CE:
adds r0, r0, r1
str r0, [r2]
movs r1, #6
ldrsh r0, [r3, r1]
_080470D6:
lsls r0, r0, #0xa
ldr r1, _080470F8 @ =0x06008000
adds r0, r0, r1
str r0, [r2, #4]
ldr r0, _080470FC @ =0x80000200
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r5]
adds r0, #0x64
strh r4, [r0]
_080470EA:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080470F0: .4byte 0x040000D4
_080470F4: .4byte gUnknown_0200FBB0
_080470F8: .4byte 0x06008000
_080470FC: .4byte 0x80000200
thumb_func_start sub_47100
sub_47100: @ 0x08047100
ldr r0, _0804710C @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0xfc
movs r1, #0x80
strh r1, [r0]
bx lr
.align 2, 0
_0804710C: .4byte gUnknown_020314E0
thumb_func_start sub_47110
sub_47110: @ 0x08047110
push {r4, r5, lr}
movs r0, #0
ldr r5, _08047148 @ =gUnknown_03005C00
adds r4, r5, #0
ldr r3, _0804714C @ =0x000001FF
ldr r2, _08047150 @ =0x000007FF
_0804711C:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r4
strh r3, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r2
ble _0804711C
ldr r1, _08047154 @ =0x040000D4
str r5, [r1]
ldr r0, _08047158 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0804715C @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08047148: .4byte gUnknown_03005C00
_0804714C: .4byte 0x000001FF
_08047150: .4byte 0x000007FF
_08047154: .4byte 0x040000D4
_08047158: .4byte 0x06002000
_0804715C: .4byte 0x80000800
thumb_func_start sub_47160
sub_47160: @ 0x08047160
push {r4, r5, lr}
ldr r2, _0804719C @ =gMain
ldrh r1, [r2, #0x18]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080471B6
ldrb r0, [r2, #2]
cmp r0, #3
beq _080471B6
ldr r0, _080471A0 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0x88
lsls r1, r1, #5
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
bne _080471B6
ldrb r1, [r2, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080471A4
movs r0, #0xfd
ands r0, r1
strb r0, [r2, #0xf]
bl sub_497BC
b _080471B6
.align 2, 0
_0804719C: .4byte gMain
_080471A0: .4byte gUnknown_020314E0
_080471A4:
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _080471B6
movs r0, #2
orrs r0, r1
strb r0, [r2, #0xf]
bl sub_495A0
_080471B6:
ldr r4, _080472B0 @ =gMain
ldrb r1, [r4, #0xf]
movs r5, #2
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _08047274
ldrh r1, [r4, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080471E4
ldr r0, _080472B4 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _080472B8 @ =0x00001104
adds r1, r1, r0
ldrb r0, [r1]
movs r2, #1
eors r0, r2
strb r0, [r1]
movs r0, #0xa3
bl m4aSongNumStart
_080471E4:
ldrh r1, [r4, #0x18]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08047204
ldr r0, _080472B4 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _080472B8 @ =0x00001104
adds r1, r1, r0
ldrb r0, [r1]
movs r2, #1
eors r0, r2
strb r0, [r1]
movs r0, #0xa3
bl m4aSongNumStart
_08047204:
ldrh r1, [r4, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08047244
ldrh r1, [r4, #0x1c]
movs r0, #0xe
ands r0, r1
cmp r0, #0
bne _08047244
ldr r0, _080472B4 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _080472B8 @ =0x00001104
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08047230
strb r5, [r4, #0xe]
bl sub_49850
_08047230:
ldrb r1, [r4, #0xf]
movs r0, #0xfd
ands r0, r1
strb r0, [r4, #0xf]
bl sub_497BC
ldrh r1, [r4, #0x18]
ldr r0, _080472BC @ =0x0000FFFE
ands r0, r1
strh r0, [r4, #0x18]
_08047244:
ldr r4, _080472B0 @ =gMain
ldrh r1, [r4, #0x18]
movs r5, #2
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _08047266
ldrb r1, [r4, #0xf]
movs r0, #0xfd
ands r0, r1
strb r0, [r4, #0xf]
bl sub_497BC
ldrh r1, [r4, #0x18]
ldr r0, _080472C0 @ =0x0000FFFD
ands r0, r1
strh r0, [r4, #0x18]
_08047266:
ldrb r1, [r4, #0xf]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _08047274
bl sub_49A34
_08047274:
ldr r0, _080472B0 @ =gMain
ldrb r1, [r0, #0xf]
adds r2, r0, #0
cmp r1, #0
bne _080472DC
ldr r3, _080472B4 @ =gUnknown_020314E0
ldr r0, [r3]
movs r4, #0xe8
lsls r4, r4, #3
adds r0, r0, r4
strb r1, [r0]
ldrh r0, [r2, #0x14]
cmp r0, #0
beq _080472DC
subs r0, #1
strh r0, [r2, #0x14]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #1
bne _080472D2
ldr r0, [r3]
adds r1, r0, #0
adds r1, #0xe4
ldrb r0, [r1]
cmp r0, #0
beq _080472C4
movs r0, #0xa
strh r0, [r2, #0x14]
b _080472D2
.align 2, 0
_080472B0: .4byte gMain
_080472B4: .4byte gUnknown_020314E0
_080472B8: .4byte 0x00001104
_080472BC: .4byte 0x0000FFFE
_080472C0: .4byte 0x0000FFFD
_080472C4:
ldrb r0, [r2, #0x11]
cmp r0, #8
bne _080472CE
movs r0, #0x13
b _080472D0
_080472CE:
movs r0, #0x14
_080472D0:
strb r0, [r1]
_080472D2:
ldrh r0, [r2, #0x14]
cmp r0, #0
bne _080472DC
ldrb r0, [r2, #0x11]
strb r0, [r2, #0xf]
_080472DC:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_472E4
sub_472E4: @ 0x080472E4
push {r4, lr}
ldr r4, _080472FC @ =gMain
ldrb r1, [r4, #0xf]
cmp r1, #0
beq _08047338
movs r0, #8
ands r0, r1
cmp r0, #0
beq _08047300
bl sub_478D8
b _08047338
.align 2, 0
_080472FC: .4byte gMain
_08047300:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0804730E
bl sub_47670
b _08047338
_0804730E:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0804731C
bl sub_474F4
b _08047338
_0804731C:
movs r0, #4
ands r0, r1
cmp r0, #0
beq _08047338
bl sub_47344
ldr r0, _08047340 @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r0, [r4, #0x10]
adds r0, #1
movs r2, #0xe8
lsls r2, r2, #3
adds r1, r1, r2
strb r0, [r1]
_08047338:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08047340: .4byte gUnknown_020314E0
thumb_func_start sub_47344
sub_47344: @ 0x08047344
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x44
ldr r1, _08047448 @ =gUnknown_08137DBE
mov r0, sp
movs r2, #0x2a
bl memcpy
add r4, sp, #0x2c
ldr r1, _0804744C @ =gUnknown_08137DE8
adds r0, r4, #0
movs r2, #0x18
bl memcpy
mov sb, r4
mov r1, sp
adds r1, #0x2d
mov r6, sp
adds r6, #0x31
mov r7, sp
adds r7, #0x39
add r0, sp, #0x38
mov r8, r0
ldr r0, _08047450 @ =gUnknown_03005C00
movs r3, #0
movs r2, #0xd0
lsls r2, r2, #3
adds r0, r0, r2
movs r2, #0x40
_08047382:
strh r3, [r0]
adds r0, #2
subs r2, #1
cmp r2, #0
bne _08047382
ldr r5, _08047454 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r4, _08047458 @ =0x0000132C
adds r0, r0, r4
ldr r0, [r0]
movs r2, #0x10
ldrsh r0, [r0, r2]
movs r2, #3
movs r3, #1
bl sub_6CC
ldr r0, [r5]
adds r0, r0, r4
ldr r0, [r0]
movs r1, #0x12
ldrsh r0, [r0, r1]
adds r1, r6, #0
movs r2, #3
movs r3, #1
bl sub_6CC
mov r0, sb
movs r1, #0x1a
movs r2, #9
bl sub_678
ldr r0, [r5]
adds r0, #0x68
movs r2, #0
ldrsh r0, [r0, r2]
adds r1, r7, #0
movs r2, #3
movs r3, #1
bl sub_6CC
mov r0, r8
movs r1, #0x1a
movs r2, #0x12
bl sub_678
mov r0, sp
movs r1, #0x1a
movs r2, #0
bl sub_678
ldr r4, _0804745C @ =gMain
ldrh r1, [r4, #0x1c]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08047464
ldr r0, [r4, #0x4c]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08047408
ldr r0, _08047460 @ =gUnknown_08137E00
ldrb r1, [r4, #0x10]
adds r1, #0x1a
movs r2, #0
bl sub_678
_08047408:
ldrh r1, [r4, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0804741C
ldrb r0, [r4, #0x10]
cmp r0, #0
beq _0804741C
subs r0, #1
strb r0, [r4, #0x10]
_0804741C:
ldr r2, _0804745C @ =gMain
ldrh r1, [r2, #0x18]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08047432
ldrb r0, [r2, #0x10]
cmp r0, #0
bne _08047432
adds r0, #1
strb r0, [r2, #0x10]
_08047432:
ldr r0, _08047454 @ =gUnknown_020314E0
ldr r0, [r0]
movs r6, #0xe8
lsls r6, r6, #3
adds r0, r0, r6
ldrb r0, [r0]
cmp r0, #2
bne _08047490
bl sub_48124
b _08047490
.align 2, 0
_08047448: .4byte gUnknown_08137DBE
_0804744C: .4byte gUnknown_08137DE8
_08047450: .4byte gUnknown_03005C00
_08047454: .4byte gUnknown_020314E0
_08047458: .4byte 0x0000132C
_0804745C: .4byte gMain
_08047460: .4byte gUnknown_08137E00
_08047464:
ldr r0, [r5]
movs r1, #0xe8
lsls r1, r1, #3
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #1
beq _08047478
cmp r0, #2
beq _0804747E
b _08047482
_08047478:
bl sub_47FF8
b _08047482
_0804747E:
bl sub_48124
_08047482:
ldr r0, _080474DC @ =gUnknown_08137E00
ldr r1, _080474E0 @ =gMain
ldrb r1, [r1, #0x10]
adds r1, #0x1a
movs r2, #0
bl sub_678
_08047490:
ldr r4, _080474E4 @ =gUnknown_03005C00
ldr r5, _080474E0 @ =gMain
movs r2, #0xc1
lsls r2, r2, #8
adds r3, r2, #0
movs r6, #0xd0
lsls r6, r6, #3
adds r1, r4, r6
movs r2, #0x40
_080474A2:
ldrh r6, [r1]
adds r0, r3, r6
strh r0, [r1]
adds r1, #2
subs r2, #1
cmp r2, #0
bne _080474A2
ldr r1, _080474E8 @ =0x040000D4
str r4, [r1]
ldr r0, _080474EC @ =0x06002000
str r0, [r1, #4]
ldr r0, _080474F0 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r1, [r5, #0x1c]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080474CC
bl sub_47FBC
_080474CC:
add sp, #0x44
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080474DC: .4byte gUnknown_08137E00
_080474E0: .4byte gMain
_080474E4: .4byte gUnknown_03005C00
_080474E8: .4byte 0x040000D4
_080474EC: .4byte 0x06002000
_080474F0: .4byte 0x80000400
thumb_func_start sub_474F4
sub_474F4: @ 0x080474F4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _08047638 @ =gMain
ldr r1, [r0, #0x44]
adds r1, #0xa8
ldr r5, [r1]
ldrh r1, [r5]
mov sb, r0
cmp r1, #0
beq _08047558
movs r0, #0x3f
strh r0, [r5, #2]
movs r0, #0x34
strh r0, [r5, #4]
ldr r7, _0804763C @ =gOamBuffer
ldr r0, _08047640 @ =0xFFFFFE00
mov ip, r0
adds r4, r5, #0
adds r4, #8
ldr r1, _08047644 @ =0x000001FF
mov r8, r1
movs r6, #7
_08047524:
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r4, r2]
movs r2, #2
ldrsh r0, [r5, r2]
adds r1, r1, r0
mov r0, r8
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r5, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #8
subs r6, #1
cmp r6, #0
bge _08047524
_08047558:
mov r1, sb
ldr r0, [r1, #0x4c]
lsls r0, r0, #0x1c
lsrs r7, r0, #0x10
movs r6, #0
_08047562:
adds r0, r7, #0
bl sub_C74
ldr r4, _08047648 @ =gUnknown_02031500
lsls r2, r6, #1
adds r4, r2, r4
ldr r1, _0804764C @ =gUnknown_02030750
adds r5, r2, r1
movs r2, #0
ldrsh r1, [r5, r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
movs r1, #0xc8
bl __divsi3
strh r0, [r4]
ldr r0, _08047638 @ =gMain
ldr r1, [r0, #0x4c]
movs r0, #1
ands r1, r0
cmp r1, #0
bne _0804759E
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
lsls r0, r0, #0x10
cmp r0, #0
blt _0804759E
strh r1, [r5]
_0804759E:
adds r6, #1
cmp r6, #7
ble _08047562
ldr r2, _08047638 @ =gMain
ldrh r1, [r2, #0x12]
movs r0, #0xe1
lsls r0, r0, #4
cmp r1, r0
bne _080475FA
ldr r1, _08047650 @ =0x040000D4
ldr r0, _08047654 @ =gUnknown_08509F4C
str r0, [r1]
ldr r0, _08047658 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804765C @ =0x80000200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r2, #0x44]
adds r0, #0xa8
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
movs r6, #0
mov r8, r6
ldr r5, _08047648 @ =gUnknown_02031500
ldr r7, _08047660 @ =0x0000E0C0
_080475D2:
lsls r4, r6, #1
strh r7, [r5]
ldr r0, _08047664 @ =gUnknown_020306C0
adds r0, r4, r0
mov r1, r8
strh r1, [r0]
bl Random
ldr r1, _0804764C @ =gUnknown_02030750
adds r4, r4, r1
movs r1, #0x1e
bl __umodsi3
ldr r2, _08047668 @ =0x0000FFCE
adds r0, r0, r2
strh r0, [r4]
adds r5, #2
adds r6, #1
cmp r6, #7
ble _080475D2
_080475FA:
ldr r0, _08047638 @ =gMain
ldrh r1, [r0, #0x12]
mov sb, r0
cmp r1, #0
beq _08047618
subs r0, r1, #1
mov r1, sb
strh r0, [r1, #0x12]
lsls r0, r0, #0x10
cmp r0, #0
bne _08047618
ldr r0, _0804766C @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #2
strb r0, [r1, #0x1d]
_08047618:
mov r2, sb
ldrh r1, [r2, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0804762C
ldr r0, _0804766C @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #2
strb r0, [r1, #0x1d]
_0804762C:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08047638: .4byte gMain
_0804763C: .4byte gOamBuffer
_08047640: .4byte 0xFFFFFE00
_08047644: .4byte 0x000001FF
_08047648: .4byte gUnknown_02031500
_0804764C: .4byte gUnknown_02030750
_08047650: .4byte 0x040000D4
_08047654: .4byte gUnknown_08509F4C
_08047658: .4byte 0x06015800
_0804765C: .4byte 0x80000200
_08047660: .4byte 0x0000E0C0
_08047664: .4byte gUnknown_020306C0
_08047668: .4byte 0x0000FFCE
_0804766C: .4byte gUnknown_020314E0
thumb_func_start sub_47670
sub_47670: @ 0x08047670
push {r4, r5, r6, r7, lr}
ldr r4, _080476A4 @ =gMain
ldrh r0, [r4, #0x12]
cmp r0, #0
bne _0804767C
b _080477C4
_0804767C:
cmp r0, #0x14
bhi _080476AC
cmp r0, #0x14
bne _0804768A
movs r0, #0xa4
bl m4aSongNumStart
_0804768A:
ldr r0, _080476A8 @ =gUnknown_020314E0
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0xfc
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0x7f
bgt _080476C4
adds r0, r2, #0
adds r0, #8
b _080476C2
.align 2, 0
_080476A4: .4byte gMain
_080476A8: .4byte gUnknown_020314E0
_080476AC:
ldr r0, _0804771C @ =gUnknown_020314E0
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0xfc
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
ble _080476C4
adds r0, r2, #0
subs r0, #8
_080476C2:
strh r0, [r1]
_080476C4:
bl sub_48190
ldr r2, _08047720 @ =gMain
ldrh r0, [r2, #0x12]
subs r0, #1
movs r1, #0
strh r0, [r2, #0x12]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xc7
bne _080477A0
ldr r0, _0804771C @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0xfc
movs r1, #0x80
strh r1, [r0]
movs r1, #0x97
lsls r1, r1, #4
adds r0, r2, r1
movs r1, #1
strh r1, [r0]
movs r3, #0xe9
lsls r3, r3, #3
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
ldr r1, _08047724 @ =0x040000D4
ldr r0, _08047728 @ =gUnknown_0850398C
str r0, [r1]
ldr r0, _0804772C @ =0x06015800
str r0, [r1, #4]
ldr r0, _08047730 @ =0x80001400
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrb r0, [r2, #4]
cmp r0, #0
bne _08047738
ldr r0, _08047734 @ =gUnknown_08521FAC
b _0804773A
.align 2, 0
_0804771C: .4byte gUnknown_020314E0
_08047720: .4byte gMain
_08047724: .4byte 0x040000D4
_08047728: .4byte gUnknown_0850398C
_0804772C: .4byte 0x06015800
_08047730: .4byte 0x80001400
_08047734: .4byte gUnknown_08521FAC
_08047738:
ldr r0, _0804778C @ =gUnknown_08521FCC
_0804773A:
str r0, [r1]
ldr r0, _08047790 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08047794 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xa4
bl m4aSongNumStart
movs r1, #0
ldr r7, _08047798 @ =gUnknown_020314E0
ldr r6, _0804779C @ =0x0000063C
movs r5, #0
_08047754:
movs r2, #0
lsls r4, r1, #0x10
asrs r1, r4, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r3, r0, #2
_08047760:
ldr r0, [r7]
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r2, r1, r3
adds r0, r0, r6
adds r0, r0, r2
strb r5, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x13
ble _08047760
movs r1, #0x80
lsls r1, r1, #9
adds r0, r4, r1
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _08047754
b _080478D0
.align 2, 0
_0804778C: .4byte gUnknown_08521FCC
_08047790: .4byte 0x050003C0
_08047794: .4byte 0x80000010
_08047798: .4byte gUnknown_020314E0
_0804779C: .4byte 0x0000063C
_080477A0:
cmp r0, #1
beq _080477A6
b _080478D0
_080477A6:
movs r3, #0x97
lsls r3, r3, #4
adds r0, r2, r3
strh r1, [r0]
movs r3, #0xe9
lsls r3, r3, #3
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
b _080478D0
_080477C4:
ldrb r0, [r4, #0xf]
movs r1, #0xef
ands r1, r0
strb r1, [r4, #0xf]
bl sub_47FBC
ldr r5, _08047860 @ =gUnknown_020314E0
ldr r1, [r5]
adds r2, r1, #0
adds r2, #0x30
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
ble _080478BC
ldr r0, _08047864 @ =0x00000724
adds r1, r1, r0
movs r4, #0
subs r0, #0x1c
strh r0, [r1]
ldrb r0, [r2]
subs r0, #1
strb r0, [r2]
ldr r0, [r5]
movs r1, #0x3c
strh r1, [r0, #0x26]
ldr r1, _08047868 @ =0x0000062A
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
ldr r2, _0804786C @ =0x0000062B
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
ldr r3, _08047870 @ =0x0000062C
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r5]
adds r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
adds r2, #3
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
adds r3, #3
adds r0, r0, r3
strb r4, [r0]
movs r0, #0
bl sub_11C14
movs r0, #0
bl sub_46FD4
ldr r0, [r5]
ldr r1, _08047874 @ =0x0000029E
adds r0, r0, r1
strb r4, [r0]
ldr r1, [r5]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #3
bne _080478A4
ldr r2, _08047878 @ =0x00000283
adds r0, r1, r2
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bhi _080478AA
lsls r0, r0, #2
ldr r1, _0804787C @ =_08047880
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08047860: .4byte gUnknown_020314E0
_08047864: .4byte 0x00000724
_08047868: .4byte 0x0000062A
_0804786C: .4byte 0x0000062B
_08047870: .4byte 0x0000062C
_08047874: .4byte 0x0000029E
_08047878: .4byte 0x00000283
_0804787C: .4byte _08047880
_08047880: @ jump table
.4byte _08047894 @ case 0
.4byte _0804789C @ case 1
.4byte _08047894 @ case 2
.4byte _0804789C @ case 3
.4byte _0804789C @ case 4
_08047894:
movs r0, #0xe
bl m4aSongNumStart
b _080478AA
_0804789C:
movs r0, #0xf
bl m4aSongNumStart
b _080478AA
_080478A4:
movs r0, #1
bl sub_19B64
_080478AA:
ldr r0, _080478B8 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0xe4
movs r1, #0
strb r1, [r0]
b _080478D0
.align 2, 0
_080478B8: .4byte gUnknown_020314E0
_080478BC:
ldrb r0, [r4, #0xf]
movs r1, #0x20
orrs r0, r1
strb r0, [r4, #0xf]
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r4, #0x12]
movs r0, #0xc
bl m4aSongNumStart
_080478D0:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_478D8
sub_478D8: @ 0x080478D8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r7, _08047AEC @ =gMain
ldrh r0, [r7, #0x12]
cmp r0, #0
bne _080478EE
b _08047F2E
_080478EE:
movs r0, #0xd2
lsls r0, r0, #3
adds r6, r7, r0
ldrh r0, [r6]
movs r1, #0xbb
lsls r1, r1, #3
adds r1, r1, r7
mov r8, r1
cmp r0, #0
beq _08047984
movs r0, #0x58
strh r0, [r6, #2]
ldr r0, _08047AF0 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0xfe
ldrh r0, [r0]
adds r0, #0x14
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08047AF4 @ =gOamBuffer
ldr r2, _08047AF8 @ =0xFFFFFE00
mov sl, r2
movs r3, #0xf
rsbs r3, r3, #0
mov sb, r3
_08047920:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08047AFC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r3, [r5, #4]
adds r0, r0, r3
strb r0, [r1]
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
ldrb r0, [r2, #1]
movs r1, #3
orrs r0, r1
strb r0, [r2, #1]
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
ldrb r1, [r2, #3]
mov r0, sb
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2, #3]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08047920
_08047984:
mov r6, r8
ldrh r0, [r6]
cmp r0, #0
beq _08047A14
ldr r4, _08047AF0 @ =gUnknown_020314E0
ldr r0, [r4]
movs r5, #0x80
lsls r5, r5, #1
adds r0, r0, r5
ldr r0, [r0]
movs r1, #0x64
bl __divsi3
adds r0, #0x18
strh r0, [r6, #2]
ldr r0, [r4]
adds r4, r0, #0
adds r4, #0xfe
movs r1, #0x82
lsls r1, r1, #1
adds r0, r0, r1
ldr r0, [r0]
movs r1, #0x64
bl __divsi3
adds r0, #0x14
ldrh r4, [r4]
adds r0, r0, r4
strh r0, [r6, #4]
adds r5, r6, #0
adds r5, #8
ldr r4, _08047AF4 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08047AFC @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08047AF8 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r1, #1]
movs r2, #3
orrs r0, r2
strb r0, [r1, #1]
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
ldrb r1, [r2, #3]
movs r0, #0xf
rsbs r0, r0, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2, #3]
_08047A14:
subs r6, #0xb8
ldrh r0, [r6]
cmp r0, #0
beq _08047A9A
ldr r4, _08047AF0 @ =gUnknown_020314E0
ldr r0, [r4]
movs r5, #0x80
lsls r5, r5, #1
adds r0, r0, r5
ldr r0, [r0]
movs r1, #0x64
bl __divsi3
adds r0, #0x38
strh r0, [r6, #2]
ldr r0, [r4]
adds r4, r0, #0
adds r4, #0xfe
movs r1, #0x82
lsls r1, r1, #1
adds r0, r0, r1
ldr r0, [r0]
movs r1, #0x64
bl __divsi3
adds r0, #0x34
ldrh r4, [r4]
adds r0, r0, r4
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08047AF4 @ =gOamBuffer
ldr r2, _08047AF8 @ =0xFFFFFE00
mov r8, r2
_08047A56:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r5, r6, r0
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08047AFC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08047A56
_08047A9A:
ldr r1, _08047AEC @ =gMain
ldrh r0, [r1, #0x12]
subs r0, #1
strh r0, [r1, #0x12]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x46
bls _08047B00
ldrh r1, [r1, #0x12]
adds r2, r1, #0
adds r2, #0x14
adds r0, r2, #0
asrs r0, r0, #6
lsls r0, r0, #6
subs r0, r2, r0
lsls r0, r0, #0x1a
lsrs r0, r0, #0x10
bl sub_C24
ldr r1, _08047AF0 @ =gUnknown_020314E0
ldr r5, [r1]
movs r3, #0x82
lsls r3, r3, #1
adds r4, r5, r3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x28
bl __divsi3
str r0, [r4]
movs r4, #0x84
lsls r4, r4, #1
adds r1, r5, r4
movs r0, #0xa
strh r0, [r1]
movs r0, #0x85
lsls r0, r0, #1
adds r1, r5, r0
adds r0, #0x86
strh r0, [r1]
b _08047B3C
.align 2, 0
_08047AEC: .4byte gMain
_08047AF0: .4byte gUnknown_020314E0
_08047AF4: .4byte gOamBuffer
_08047AF8: .4byte 0xFFFFFE00
_08047AFC: .4byte 0x000001FF
_08047B00:
ldr r0, _08047B6C @ =gUnknown_020314E0
ldr r4, [r0]
movs r2, #0x84
lsls r2, r2, #1
adds r1, r4, r2
movs r0, #0xc8
lsls r0, r0, #1
strh r0, [r1]
movs r5, #0x85
lsls r5, r5, #1
adds r3, r4, r5
ldrh r0, [r3]
subs r0, #0x23
strh r0, [r3]
movs r0, #0x80
lsls r0, r0, #1
adds r2, r4, r0
movs r5, #0
ldrsh r1, [r1, r5]
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
movs r0, #0x82
lsls r0, r0, #1
adds r2, r4, r0
movs r4, #0
ldrsh r1, [r3, r4]
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
_08047B3C:
ldr r1, _08047B70 @ =gMain
ldrh r2, [r1, #0x12]
adds r0, r2, #0
subs r0, #0x1e
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r6, r1, #0
cmp r0, #0x1d
bhi _08047B74
ldrh r1, [r6, #0x12]
movs r0, #0x3c
subs r0, r0, r1
lsls r0, r0, #8
movs r1, #0x1e
bl __divsi3
movs r5, #0x80
lsls r5, r5, #1
adds r0, r0, r5
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
b _08047B8C
.align 2, 0
_08047B6C: .4byte gUnknown_020314E0
_08047B70: .4byte gMain
_08047B74:
movs r0, #0x80
lsls r0, r0, #1
str r0, [sp]
lsls r0, r2, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1d
bhi _08047B8C
movs r2, #0xbb
lsls r2, r2, #3
adds r1, r6, r2
movs r0, #0
strh r0, [r1]
_08047B8C:
ldrh r0, [r6, #0x12]
cmp r0, #0x1e
bhi _08047BBE
cmp r0, #0xa
bls _08047BAE
adds r1, r0, #0
subs r1, #0xa
lsls r0, r1, #5
subs r0, r0, r1
lsls r0, r0, #3
movs r1, #0x14
bl __divsi3
adds r0, #8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _08047BE4
_08047BAE:
movs r3, #8
mov sl, r3
movs r4, #0xd2
lsls r4, r4, #3
adds r1, r6, r4
movs r0, #0
strh r0, [r1]
b _08047BE6
_08047BBE:
ldr r0, _08047C48 @ =gUnknown_020314E0
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0xfe
ldrh r2, [r1]
movs r5, #0
ldrsh r0, [r1, r5]
cmp r0, #0
ble _08047BE0
adds r0, r2, #0
subs r0, #8
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bge _08047BE0
movs r0, #0
strh r0, [r1]
_08047BE0:
movs r0, #0x80
lsls r0, r0, #1
_08047BE4:
mov sl, r0
_08047BE6:
adds r3, r6, #0
ldrh r0, [r3, #0x12]
cmp r0, #0xca
bls _08047BF0
b _08047DBA
_08047BF0:
cmp r0, #0x37
bls _08047C50
ldr r7, _08047C48 @ =gUnknown_020314E0
ldr r2, [r7]
movs r1, #0x84
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
movs r4, #0x86
lsls r4, r4, #1
adds r0, r2, r4
strh r1, [r0]
movs r5, #0x85
lsls r5, r5, #1
adds r0, r2, r5
ldrh r0, [r0]
subs r0, #0x5a
adds r4, #2
adds r1, r2, r4
strh r0, [r1]
adds r5, #6
mov r8, r5
adds r1, r2, r5
subs r4, #0xe
adds r0, r2, r4
ldr r0, [r0]
str r0, [r1]
adds r5, #4
mov sb, r5
adds r1, r2, r5
adds r4, #4
adds r0, r2, r4
ldr r0, [r0]
str r0, [r1]
ldrh r0, [r3, #0x12]
cmp r0, #0x38
bne _08047C40
movs r0, #0x95
bl m4aSongNumStart
_08047C40:
ldr r5, [r7]
ldr r0, _08047C4C @ =0x0000132C
adds r4, r5, r0
b _08047CBC
.align 2, 0
_08047C48: .4byte gUnknown_020314E0
_08047C4C: .4byte 0x0000132C
_08047C50:
cmp r0, #0x1f
bls _08047D00
ldr r7, _08047CF4 @ =gUnknown_020314E0
ldr r5, [r7]
movs r0, #0x87
lsls r0, r0, #1
adds r4, r5, r0
ldrh r0, [r4]
adds r0, #6
movs r1, #0
mov ip, r1
strh r0, [r4]
movs r2, #0x88
lsls r2, r2, #1
mov r8, r2
adds r2, r5, r2
movs r3, #0x86
lsls r3, r3, #1
adds r0, r5, r3
movs r3, #0
ldrsh r1, [r0, r3]
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
movs r0, #0x8a
lsls r0, r0, #1
mov sb, r0
adds r2, r5, r0
movs r3, #0
ldrsh r1, [r4, r3]
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
movs r4, #0xa4
lsls r4, r4, #3
adds r0, r6, r4
mov r1, ip
strh r1, [r0]
ldrh r0, [r6, #0x12]
cmp r0, #0x20
bne _08047CB6
ldr r2, _08047CF8 @ =0x000005FA
adds r1, r5, r2
movs r0, #0
strb r0, [r1]
movs r0, #0x96
bl m4aSongNumStart
movs r0, #6
bl sub_11B0
_08047CB6:
ldr r5, [r7]
ldr r3, _08047CFC @ =0x0000132C
adds r4, r5, r3
_08047CBC:
ldr r6, [r4]
mov r1, r8
adds r0, r5, r1
ldr r0, [r0]
movs r1, #0x64
bl __divsi3
adds r0, #0x56
lsls r0, r0, #8
str r0, [r6, #0x34]
ldr r6, [r4]
adds r0, r5, #0
adds r0, #0xfe
movs r2, #0
ldrsh r4, [r0, r2]
add r5, sb
ldr r0, [r5]
movs r1, #0x64
bl __divsi3
movs r3, #0xba
lsls r3, r3, #1
adds r0, r0, r3
adds r4, r4, r0
lsls r4, r4, #8
str r4, [r6, #0x38]
adds r2, r7, #0
b _08047D80
.align 2, 0
_08047CF4: .4byte gUnknown_020314E0
_08047CF8: .4byte 0x000005FA
_08047CFC: .4byte 0x0000132C
_08047D00:
ldr r4, _08047E68 @ =gUnknown_020314E0
mov sb, r4
ldr r7, [r4]
movs r5, #0x86
lsls r5, r5, #1
adds r1, r7, r5
movs r0, #0
strh r0, [r1]
movs r0, #0x87
lsls r0, r0, #1
adds r3, r7, r0
ldrh r0, [r3]
adds r0, #0x14
strh r0, [r3]
movs r4, #0x88
lsls r4, r4, #1
adds r2, r7, r4
movs r5, #0
ldrsh r1, [r1, r5]
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
movs r0, #0x8a
lsls r0, r0, #1
adds r5, r7, r0
movs r4, #0
ldrsh r1, [r3, r4]
ldr r0, [r5]
adds r0, r0, r1
str r0, [r5]
ldr r0, _08047E6C @ =0x0000132C
adds r6, r7, r0
ldr r4, [r6]
ldr r0, [r2]
movs r1, #0x64
bl __divsi3
adds r0, #0x56
lsls r0, r0, #8
str r0, [r4, #0x34]
ldr r1, [r6]
mov r8, r1
adds r0, r7, #0
adds r0, #0xfe
movs r2, #0
ldrsh r4, [r0, r2]
ldr r0, [r5]
movs r1, #0x64
bl __divsi3
movs r3, #0xba
lsls r3, r3, #1
adds r0, r0, r3
adds r4, r4, r0
lsls r4, r4, #8
mov r5, r8
str r4, [r5, #0x38]
ldr r6, [r6]
ldr r0, [r6, #0x38]
ldr r1, _08047E70 @ =0x00017100
mov r2, sb
cmp r0, r1
ble _08047D80
str r1, [r6, #0x38]
_08047D80:
ldr r0, [r2]
ldr r1, _08047E6C @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
movs r3, #0
strb r3, [r0, #1]
ldr r0, [r2]
adds r2, r0, r1
ldr r1, [r2]
ldr r0, [r1, #0x28]
str r0, [r1, #0x2c]
ldr r1, [r2]
ldr r0, [r1, #0x34]
cmp r0, #0
bge _08047DA0
adds r0, #0x7f
_08047DA0:
asrs r0, r0, #7
strh r0, [r1, #0x28]
ldr r1, [r2]
ldr r0, [r1, #0x38]
cmp r0, #0
bge _08047DAE
adds r0, #0x7f
_08047DAE:
asrs r0, r0, #7
strh r0, [r1, #0x2a]
ldr r0, [r2]
strh r3, [r0, #0x30]
ldr r0, [r2]
strh r3, [r0, #0x32]
_08047DBA:
movs r0, #0x80
lsls r0, r0, #1
mov r2, sl
lsls r1, r2, #0x10
asrs r1, r1, #0x10
movs r2, #3
bl SetMatrixScale
ldr r3, [sp]
lsls r1, r3, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
movs r2, #4
bl SetMatrixScale
ldr r4, _08047E74 @ =gMain
ldrh r1, [r4, #0x12]
cmp r1, #0xcb
beq _08047DE2
b _08047F18
_08047DE2:
ldr r2, _08047E68 @ =gUnknown_020314E0
ldr r3, [r2]
movs r5, #0x80
lsls r5, r5, #1
adds r0, r3, r5
movs r1, #0
str r1, [r0]
adds r5, #4
adds r0, r3, r5
str r1, [r0]
adds r5, #4
adds r0, r3, r5
strh r1, [r0]
adds r5, #2
adds r0, r3, r5
strh r1, [r0]
adds r1, r3, #0
adds r1, #0xfe
movs r0, #0x64
strh r0, [r1]
movs r1, #0xd2
lsls r1, r1, #3
adds r0, r4, r1
movs r1, #1
strh r1, [r0]
movs r3, #0xbb
lsls r3, r3, #3
adds r0, r4, r3
strh r1, [r0]
movs r5, #0xa4
lsls r5, r5, #3
adds r0, r4, r5
strh r1, [r0]
ldrb r0, [r4, #4]
cmp r0, #0
bne _08047EAC
ldr r0, _08047E78 @ =0x040000D4
ldr r1, _08047E7C @ =gUnknown_0850100C
str r1, [r0]
ldr r1, _08047E80 @ =0x06015800
str r1, [r0, #4]
ldr r1, _08047E84 @ =0x80001200
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _08047E88 @ =gUnknown_085028CC
str r1, [r0]
ldr r1, _08047E8C @ =0x06016800
str r1, [r0, #4]
ldr r1, _08047E90 @ =0x80000400
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _08047E94 @ =gUnknown_085038CC
str r1, [r0]
ldr r1, _08047E98 @ =0x06017000
str r1, [r0, #4]
ldr r1, _08047E9C @ =0x80000060
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _08047EA0 @ =gUnknown_08514F4C
str r1, [r0]
ldr r1, _08047EA4 @ =0x050003C0
str r1, [r0, #4]
ldr r1, _08047EA8 @ =0x80000010
str r1, [r0, #8]
ldr r0, [r0, #8]
b _08047ECA
.align 2, 0
_08047E68: .4byte gUnknown_020314E0
_08047E6C: .4byte 0x0000132C
_08047E70: .4byte 0x00017100
_08047E74: .4byte gMain
_08047E78: .4byte 0x040000D4
_08047E7C: .4byte gUnknown_0850100C
_08047E80: .4byte 0x06015800
_08047E84: .4byte 0x80001200
_08047E88: .4byte gUnknown_085028CC
_08047E8C: .4byte 0x06016800
_08047E90: .4byte 0x80000400
_08047E94: .4byte gUnknown_085038CC
_08047E98: .4byte 0x06017000
_08047E9C: .4byte 0x80000060
_08047EA0: .4byte gUnknown_08514F4C
_08047EA4: .4byte 0x050003C0
_08047EA8: .4byte 0x80000010
_08047EAC:
ldr r1, _08047EF4 @ =0x040000D4
ldr r0, _08047EF8 @ =gUnknown_0850100C
str r0, [r1]
ldr r0, _08047EFC @ =0x06015800
str r0, [r1, #4]
ldr r0, _08047F00 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08047F04 @ =gUnknown_08514F6C
str r0, [r1]
ldr r0, _08047F08 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08047F0C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_08047ECA:
ldr r1, [r2]
movs r0, #2
strb r0, [r1, #0x1f]
ldr r0, [r2]
ldr r1, _08047F10 @ =0x000005FA
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
ldr r3, _08047F14 @ =0x000005F7
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r2]
movs r4, #0x88
lsls r4, r4, #5
adds r0, r0, r4
strb r1, [r0]
movs r0, #0x94
bl m4aSongNumStart
b _08047FA0
.align 2, 0
_08047EF4: .4byte 0x040000D4
_08047EF8: .4byte gUnknown_0850100C
_08047EFC: .4byte 0x06015800
_08047F00: .4byte 0x80001200
_08047F04: .4byte gUnknown_08514F6C
_08047F08: .4byte 0x050003C0
_08047F0C: .4byte 0x80000010
_08047F10: .4byte 0x000005FA
_08047F14: .4byte 0x000005F7
_08047F18:
cmp r1, #0
bne _08047FA0
movs r5, #0xd2
lsls r5, r5, #3
adds r0, r4, r5
strh r1, [r0]
movs r2, #0xbb
lsls r2, r2, #3
adds r0, r4, r2
strh r1, [r0]
b _08047FA0
_08047F2E:
ldrb r1, [r7, #0xf]
movs r0, #0xf7
ands r0, r1
strb r0, [r7, #0xf]
ldr r5, _08047F6C @ =gUnknown_020314E0
ldr r1, [r5]
movs r4, #0
movs r0, #0x3c
strh r0, [r1, #0x26]
movs r0, #0
bl sub_11C14
ldr r0, [r5]
strb r4, [r0, #0x1f]
movs r0, #0
bl sub_46FD4
ldr r0, [r5]
ldr r3, _08047F70 @ =0x0000029E
adds r0, r0, r3
strb r4, [r0]
ldrb r0, [r7, #4]
cmp r0, #0
bne _08047F78
ldr r0, [r5]
ldr r4, _08047F74 @ =0x0000132C
adds r0, r0, r4
ldr r1, [r0]
movs r0, #3
b _08047F82
.align 2, 0
_08047F6C: .4byte gUnknown_020314E0
_08047F70: .4byte 0x0000029E
_08047F74: .4byte 0x0000132C
_08047F78:
ldr r0, [r5]
ldr r5, _08047FB0 @ =0x0000132C
adds r0, r0, r5
ldr r1, [r0]
movs r0, #1
_08047F82:
strb r0, [r1, #1]
ldr r2, _08047FB4 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08047FB8 @ =0x000005F7
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
adds r0, #0xe4
strb r1, [r0]
ldr r0, [r2]
movs r2, #0x88
lsls r2, r2, #5
adds r0, r0, r2
strb r1, [r0]
_08047FA0:
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
_08047FB0: .4byte 0x0000132C
_08047FB4: .4byte gUnknown_020314E0
_08047FB8: .4byte 0x000005F7
thumb_func_start sub_47FBC
sub_47FBC: @ 0x08047FBC
ldr r3, _08047FE4 @ =gUnknown_03005C00
ldr r2, _08047FE8 @ =0x000001FF
movs r0, #0xd0
lsls r0, r0, #3
adds r1, r3, r0
movs r0, #0x40
_08047FC8:
strh r2, [r1]
adds r1, #2
subs r0, #1
cmp r0, #0
bne _08047FC8
ldr r1, _08047FEC @ =0x040000D4
str r3, [r1]
ldr r0, _08047FF0 @ =0x06002000
str r0, [r1, #4]
ldr r0, _08047FF4 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
bx lr
.align 2, 0
_08047FE4: .4byte gUnknown_03005C00
_08047FE8: .4byte 0x000001FF
_08047FEC: .4byte 0x040000D4
_08047FF0: .4byte 0x06002000
_08047FF4: .4byte 0x80000400
thumb_func_start sub_47FF8
sub_47FF8: @ 0x08047FF8
push {r4, lr}
ldr r2, _08048068 @ =gMain
ldrh r1, [r2, #0x1c]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08048074
movs r0, #0x40
ands r0, r1
ldr r3, _0804806C @ =gUnknown_020314E0
cmp r0, #0
beq _0804801E
ldr r0, [r3]
ldr r1, _08048070 @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
ldr r0, [r1, #0x38]
subs r0, #0x80
str r0, [r1, #0x38]
_0804801E:
ldrh r1, [r2, #0x1c]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08048036
ldr r0, [r3]
ldr r4, _08048070 @ =0x0000132C
adds r0, r0, r4
ldr r1, [r0]
ldr r0, [r1, #0x38]
adds r0, #0x80
str r0, [r1, #0x38]
_08048036:
ldrh r1, [r2, #0x1c]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0804804E
ldr r0, [r3]
ldr r1, _08048070 @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
ldr r0, [r1, #0x34]
subs r0, #0x80
str r0, [r1, #0x34]
_0804804E:
ldrh r1, [r2, #0x1c]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080480E0
ldr r0, [r3]
ldr r2, _08048070 @ =0x0000132C
adds r0, r0, r2
ldr r1, [r0]
ldr r0, [r1, #0x34]
adds r0, #0x80
b _080480DE
.align 2, 0
_08048068: .4byte gMain
_0804806C: .4byte gUnknown_020314E0
_08048070: .4byte 0x0000132C
_08048074:
movs r0, #0x40
ands r0, r1
ldr r3, _08048118 @ =gUnknown_020314E0
cmp r0, #0
beq _0804808E
ldr r0, [r3]
ldr r4, _0804811C @ =0x0000132C
adds r0, r0, r4
ldr r1, [r0]
ldr r0, [r1, #0x38]
ldr r4, _08048120 @ =0xFFFFFE00
adds r0, r0, r4
str r0, [r1, #0x38]
_0804808E:
ldrh r1, [r2, #0x1c]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080480AA
ldr r0, [r3]
ldr r1, _0804811C @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
ldr r0, [r1, #0x38]
movs r4, #0x80
lsls r4, r4, #2
adds r0, r0, r4
str r0, [r1, #0x38]
_080480AA:
ldrh r1, [r2, #0x1c]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080480C4
ldr r0, [r3]
ldr r1, _0804811C @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
ldr r0, [r1, #0x34]
ldr r4, _08048120 @ =0xFFFFFE00
adds r0, r0, r4
str r0, [r1, #0x34]
_080480C4:
ldrh r1, [r2, #0x1c]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080480E0
ldr r0, [r3]
ldr r1, _0804811C @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
ldr r0, [r1, #0x34]
movs r2, #0x80
lsls r2, r2, #2
adds r0, r0, r2
_080480DE:
str r0, [r1, #0x34]
_080480E0:
ldr r0, [r3]
ldr r4, _0804811C @ =0x0000132C
adds r2, r0, r4
ldr r1, [r2]
ldr r0, [r1, #0x28]
str r0, [r1, #0x2c]
ldr r1, [r2]
ldr r0, [r1, #0x34]
cmp r0, #0
bge _080480F6
adds r0, #0x7f
_080480F6:
asrs r0, r0, #7
movs r3, #0
strh r0, [r1, #0x28]
ldr r1, [r2]
ldr r0, [r1, #0x38]
cmp r0, #0
bge _08048106
adds r0, #0x7f
_08048106:
asrs r0, r0, #7
strh r0, [r1, #0x2a]
ldr r0, [r2]
strh r3, [r0, #0x30]
ldr r0, [r2]
strh r3, [r0, #0x32]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08048118: .4byte gUnknown_020314E0
_0804811C: .4byte 0x0000132C
_08048120: .4byte 0xFFFFFE00
thumb_func_start sub_48124
sub_48124: @ 0x08048124
ldr r3, _08048188 @ =gMain
ldrh r1, [r3, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0804813E
ldr r0, _0804818C @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x31
ldrb r0, [r1]
movs r2, #1
eors r0, r2
strb r0, [r1]
_0804813E:
ldrh r1, [r3, #0x18]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08048156
ldr r0, _0804818C @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x31
ldrb r0, [r1]
movs r2, #1
eors r0, r2
strb r0, [r1]
_08048156:
ldrh r1, [r3, #0x18]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0804816E
ldr r0, _0804818C @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x31
ldrb r0, [r1]
movs r2, #1
eors r0, r2
strb r0, [r1]
_0804816E:
ldrh r1, [r3, #0x18]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _08048186
ldr r0, _0804818C @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x31
ldrb r0, [r1]
movs r2, #1
eors r0, r2
strb r0, [r1]
_08048186:
bx lr
.align 2, 0
_08048188: .4byte gMain
_0804818C: .4byte gUnknown_020314E0
thumb_func_start sub_48190
sub_48190: @ 0x08048190
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x28
ldr r2, _080481F8 @ =gUnknown_020314E0
ldr r3, [r2]
ldr r1, _080481FC @ =0x0000063A
adds r0, r3, r1
ldrh r1, [r0]
movs r0, #0xd4
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
movs r4, #0
str r4, [sp, #0x10]
movs r7, #0
str r7, [sp, #0x14]
movs r0, #0
str r0, [sp, #0x18]
adds r1, r2, #0
mov r8, r1
ldr r6, _08048200 @ =0x040000D4
movs r2, #0xcf
lsls r2, r2, #3
adds r3, r3, r2
ldr r7, _08048204 @ =0x80000010
mov sb, r7
_080481CC:
lsls r0, r4, #2
adds r1, r4, #1
mov ip, r1
adds r0, r0, r4
movs r1, #0x16
muls r1, r4, r1
lsls r4, r0, #2
movs r5, #0x13
lsls r1, r1, #5
ldr r7, _08048208 @ =0x06017400
adds r2, r1, r7
_080481E2:
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x5f
bne _0804820C
movs r1, #0x30
b _0804821E
.align 2, 0
_080481F8: .4byte gUnknown_020314E0
_080481FC: .4byte 0x0000063A
_08048200: .4byte 0x040000D4
_08048204: .4byte 0x80000010
_08048208: .4byte 0x06017400
_0804820C:
cmp r0, #0x5e
bne _08048214
movs r1, #0x2f
b _0804821E
_08048214:
cmp r0, #0x2e
ble _0804821E
subs r0, #0x41
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_0804821E:
mov r7, r8
ldr r0, [r7]
ldr r7, _08048244 @ =0x0000063C
adds r0, r0, r7
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804824C
lsls r0, r1, #0x10
asrs r0, r0, #0xb
ldr r1, _08048248 @ =gUnknown_0850558C
adds r0, r0, r1
str r0, [r6]
str r2, [r6, #4]
mov r0, sb
str r0, [r6, #8]
b _08048256
.align 2, 0
_08048244: .4byte 0x0000063C
_08048248: .4byte gUnknown_0850558C
_0804824C:
ldr r0, _080483A0 @ =gUnknown_08505B8C
str r0, [r6]
str r2, [r6, #4]
mov r1, sb
str r1, [r6, #8]
_08048256:
ldr r0, [r6, #8]
adds r2, #0x20
adds r4, #1
subs r5, #1
cmp r5, #0
bge _080481E2
mov r4, ip
cmp r4, #2
ble _080481CC
ldr r2, _080483A4 @ =gMain
ldrh r0, [r2, #0x12]
cmp r0, #0xb3
bls _08048272
b _08048412
_08048272:
cmp r0, #0x32
bhi _08048278
b _08048412
_08048278:
ldrh r1, [r2, #0x18]
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _08048286
b _08048412
_08048286:
ldr r4, _080483A8 @ =gUnknown_020314E0
ldr r3, [r4]
ldr r7, _080483AC @ =0x00000639
adds r0, r3, r7
movs r6, #0
ldrsb r6, [r0, r6]
cmp r6, #0
beq _08048298
b _080483CC
_08048298:
ldr r0, _080483B0 @ =0x0000063A
adds r1, r3, r0
movs r0, #0x64
strh r0, [r1]
mov sl, r0
movs r2, #0xc7
lsls r2, r2, #3
adds r1, r3, r2
movs r0, #6
strb r0, [r1]
ldr r4, [r4]
movs r3, #0xc6
lsls r3, r3, #3
adds r5, r4, r3
subs r7, #0xf
adds r0, r4, r7
ldrb r1, [r0]
lsls r0, r1, #5
subs r0, r0, r1
lsls r2, r0, #6
subs r2, r2, r0
lsls r2, r2, #3
adds r2, r2, r1
lsls r2, r2, #5
ldr r1, _080483B4 @ =0x0000062B
adds r0, r4, r1
ldrb r1, [r0]
ldr r0, _080483B8 @ =0x000B71B0
muls r0, r1, r0
adds r2, r2, r0
subs r3, #4
adds r0, r4, r3
ldrb r3, [r0]
lsls r1, r3, #5
subs r1, r1, r3
lsls r0, r1, #6
subs r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r3
lsls r0, r0, #5
adds r2, r2, r0
adds r7, #3
adds r0, r4, r7
ldrb r0, [r0]
ldr r1, _080483BC @ =0x000186A0
muls r0, r1, r0
adds r2, r2, r0
ldr r3, _080483C0 @ =0x0000062E
adds r0, r4, r3
ldrb r0, [r0]
muls r0, r1, r0
adds r2, r2, r0
str r2, [r5]
adds r7, #7
adds r4, r4, r7
str r6, [r4]
movs r0, #0x96
ldr r1, _080483A4 @ =gMain
strh r0, [r1, #0x12]
movs r5, #0
ldr r2, _080483A8 @ =gUnknown_020314E0
adds r7, #8
movs r3, #1
_08048316:
ldr r0, [r2]
adds r0, r0, r7
adds r0, r0, r5
strb r3, [r0]
adds r5, #1
cmp r5, #0x13
ble _08048316
movs r5, #0
ldr r3, _080483A8 @ =gUnknown_020314E0
movs r2, #0xca
lsls r2, r2, #3
movs r1, #1
_0804832E:
ldr r0, [r3]
adds r0, r0, r2
adds r0, r0, r5
strb r1, [r0]
adds r5, #1
cmp r5, #0x13
ble _0804832E
movs r5, #0
ldr r3, _080483A8 @ =gUnknown_020314E0
ldr r2, _080483C4 @ =0x00000664
movs r1, #1
_08048344:
ldr r0, [r3]
adds r0, r0, r2
adds r0, r0, r5
strb r1, [r0]
adds r5, #1
cmp r5, #0x13
ble _08048344
movs r4, #0
ldr r2, _080483A8 @ =gUnknown_020314E0
mov sb, r2
ldr r3, _080483C8 @ =gUnknown_086B0128
mov r8, r3
movs r7, #0xcf
lsls r7, r7, #3
movs r6, #0xc7
lsls r6, r6, #3
_08048364:
movs r5, #0
lsls r0, r4, #2
adds r1, r4, #1
mov ip, r1
adds r0, r0, r4
lsls r4, r0, #2
_08048370:
mov r2, sb
ldr r0, [r2]
adds r2, r5, r4
adds r3, r0, r7
adds r3, r3, r2
adds r0, r0, r6
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
adds r2, r2, r0
add r2, r8
ldrb r0, [r2]
strb r0, [r3]
adds r5, #1
cmp r5, #0x13
ble _08048370
mov r4, ip
cmp r4, #2
ble _08048364
movs r3, #1
str r3, [sp, #0x14]
b _08048412
.align 2, 0
_080483A0: .4byte gUnknown_08505B8C
_080483A4: .4byte gMain
_080483A8: .4byte gUnknown_020314E0
_080483AC: .4byte 0x00000639
_080483B0: .4byte 0x0000063A
_080483B4: .4byte 0x0000062B
_080483B8: .4byte 0x000B71B0
_080483BC: .4byte 0x000186A0
_080483C0: .4byte 0x0000062E
_080483C4: .4byte 0x00000664
_080483C8: .4byte gUnknown_086B0128
_080483CC:
ldr r4, _08048560 @ =0x0000063A
adds r0, r3, r4
movs r5, #0
strh r2, [r0]
movs r0, #0x33
ldr r7, _08048564 @ =gMain
strh r0, [r7, #0x12]
movs r0, #0x64
mov sl, r0
ldr r1, _08048568 @ =0x000006B4
adds r4, r3, r1
ldr r1, [r4]
cmp r1, #0
bne _080483F4
movs r2, #0xd7
lsls r2, r2, #3
adds r0, r3, r2
ldr r0, [r0]
cmp r0, #0
beq _08048412
_080483F4:
ldr r0, [r3, #0x44]
adds r0, r0, r1
str r0, [r3, #0x44]
movs r7, #0xd7
lsls r7, r7, #3
adds r2, r3, r7
ldr r0, [r3, #0x48]
ldr r1, [r2]
adds r0, r0, r1
str r0, [r3, #0x48]
str r5, [r4]
str r5, [r2]
movs r0, #0x91
bl m4aSongNumStart
_08048412:
ldr r0, _08048564 @ =gMain
ldrh r1, [r0, #0x12]
mov r0, sl
lsls r0, r0, #0x10
str r0, [sp, #0x1c]
cmp r1, #0xb9
bne _08048496
ldr r1, _0804856C @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08048570 @ =0x00000639
adds r0, r0, r2
movs r3, #0
strb r3, [r0]
ldr r1, [r1]
ldr r4, _08048560 @ =0x0000063A
adds r2, r1, r4
movs r4, #0
movs r0, #0xd4
strh r0, [r2]
movs r2, #0xc7
lsls r2, r2, #3
adds r1, r1, r2
strb r4, [r1]
ldr r7, _0804856C @ =gUnknown_020314E0
ldr r0, [r7]
movs r4, #0xc6
lsls r4, r4, #3
adds r1, r0, r4
str r3, [r1]
ldr r7, _08048574 @ =0x00000634
adds r0, r0, r7
str r3, [r0]
movs r4, #0
ldr r0, _0804856C @ =gUnknown_020314E0
mov sb, r0
ldr r1, _08048578 @ =gUnknown_086B0128
mov r8, r1
adds r7, #0x44
adds r6, r2, #0
_08048460:
movs r5, #0
lsls r0, r4, #2
adds r2, r4, #1
mov ip, r2
adds r0, r0, r4
lsls r4, r0, #2
_0804846C:
mov r3, sb
ldr r0, [r3]
adds r2, r5, r4
adds r3, r0, r7
adds r3, r3, r2
adds r0, r0, r6
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
adds r2, r2, r0
add r2, r8
ldrb r0, [r2]
strb r0, [r3]
adds r5, #1
cmp r5, #0x13
ble _0804846C
mov r4, ip
cmp r4, #2
ble _08048460
_08048496:
ldr r4, _0804856C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r4, _08048560 @ =0x0000063A
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _080484A6
b _080487B2
_080484A6:
ldr r7, _08048564 @ =gMain
ldrh r0, [r7, #0x12]
cmp r0, #0x95
bhi _080484B2
adds r0, #1
strh r0, [r7, #0x12]
_080484B2:
ldr r0, _0804856C @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0xc7
lsls r2, r2, #3
adds r3, r1, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #4
ble _080484C6
b _08048650
_080484C6:
ldr r3, [sp, #0x1c]
asrs r0, r3, #0x10
cmp r0, #0x58
bgt _08048580
movs r1, #0x18
bl __divsi3
lsls r0, r0, #0x10
asrs r7, r0, #0x10
cmp r7, #2
ble _080484DE
movs r7, #2
_080484DE:
movs r4, #0
cmp r4, r7
bgt _080485D4
movs r6, #0
movs r3, #0
_080484E8:
ldr r1, [sp, #0x1c]
asrs r0, r1, #0x10
subs r0, r0, r3
movs r1, #0x28
str r3, [sp, #0x24]
bl __modsi3
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r5, r0, #1
ldr r2, _0804856C @ =gUnknown_020314E0
ldr r1, [r2]
movs r2, #0xc7
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r3, [sp, #0x24]
cmp r0, #0
beq _08048516
cmp r4, #2
beq _08048542
_08048516:
adds r2, r5, r6
ldr r0, _0804857C @ =0x0000063C
adds r0, r0, r1
mov r8, r0
add r8, r2
mov r0, r8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08048542
movs r0, #0xcf
lsls r0, r0, #3
adds r1, r1, r0
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x5f
beq _08048542
movs r1, #1
str r1, [sp, #0x18]
_08048542:
ldr r2, _0804856C @ =gUnknown_020314E0
ldr r0, [r2]
adds r1, r5, r6
ldr r2, _0804857C @ =0x0000063C
adds r0, r0, r2
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
adds r6, #0x14
adds r3, #0x18
adds r4, #1
cmp r4, r7
ble _080484E8
b _080485D4
.align 2, 0
_08048560: .4byte 0x0000063A
_08048564: .4byte gMain
_08048568: .4byte 0x000006B4
_0804856C: .4byte gUnknown_020314E0
_08048570: .4byte 0x00000639
_08048574: .4byte 0x00000634
_08048578: .4byte gUnknown_086B0128
_0804857C: .4byte 0x0000063C
_08048580:
cmp r0, #0x93
ble _080485D4
subs r0, #0x94
lsls r4, r0, #0x10
asrs r5, r4, #0x10
adds r0, r5, #0
movs r1, #0x18
bl __divsi3
lsls r0, r0, #0x10
asrs r7, r0, #0x10
cmp r7, #1
ble _0804859C
movs r7, #1
_0804859C:
str r4, [sp, #0x1c]
cmp r7, #0
blt _080485D4
movs r2, #0
adds r6, r5, #0
adds r4, r7, #1
_080485A8:
adds r0, r6, #0
movs r1, #0x28
str r2, [sp, #0x20]
bl __modsi3
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r5, r0, #1
ldr r3, _08048640 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r2, [sp, #0x20]
adds r0, r5, r2
ldr r7, _08048644 @ =0x0000063C
adds r1, r1, r7
adds r1, r1, r0
movs r0, #0
strb r0, [r1]
adds r2, #0x14
subs r6, #0x18
subs r4, #1
cmp r4, #0
bne _080485A8
_080485D4:
ldr r0, _08048640 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _08048648 @ =0x0000063A
adds r2, r1, r3
ldrh r0, [r2]
cmp r0, #1
beq _080485E4
b _080487A6
_080485E4:
movs r0, #0xd4
strh r0, [r2]
movs r2, #0xc7
lsls r2, r2, #3
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r4, #0
ldr r7, _08048640 @ =gUnknown_020314E0
mov sl, r7
ldr r0, _0804864C @ =gUnknown_086B0128
mov sb, r0
movs r1, #0xcf
lsls r1, r1, #3
mov r8, r1
adds r6, r2, #0
_08048606:
movs r5, #0
lsls r0, r4, #2
adds r2, r4, #1
mov ip, r2
adds r0, r0, r4
lsls r7, r0, #2
_08048612:
mov r3, sl
ldr r0, [r3]
adds r2, r5, r7
mov r4, r8
adds r3, r0, r4
adds r3, r3, r2
adds r0, r0, r6
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
adds r2, r2, r0
add r2, sb
ldrb r0, [r2]
strb r0, [r3]
adds r5, #1
cmp r5, #0x13
ble _08048612
mov r4, ip
cmp r4, #2
ble _08048606
b _080487A6
.align 2, 0
_08048640: .4byte gUnknown_020314E0
_08048644: .4byte 0x0000063C
_08048648: .4byte 0x0000063A
_0804864C: .4byte gUnknown_086B0128
_08048650:
cmp r0, #5
bne _08048720
ldr r7, [sp, #0x1c]
asrs r2, r7, #0x10
cmp r2, #0x10
bgt _08048672
rsbs r0, r2, #0
lsls r0, r0, #0x11
lsrs r0, r0, #0x10
str r0, [sp, #0x10]
cmp r2, #2
beq _0804866A
b _080487A6
_0804866A:
movs r0, #0xa2
bl m4aSongNumStart
b _080487A6
_08048672:
movs r0, #0
str r0, [sp, #0x10]
adds r1, r1, r4
movs r0, #0xd4
strh r0, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
movs r5, #0
ldr r2, _08048710 @ =gUnknown_020314E0
ldr r7, _08048714 @ =0x0000063C
movs r3, #1
_0804868A:
ldr r0, [r2]
adds r0, r0, r7
adds r0, r0, r5
strb r3, [r0]
adds r5, #1
cmp r5, #0x13
ble _0804868A
movs r5, #0
ldr r3, _08048710 @ =gUnknown_020314E0
movs r2, #0xca
lsls r2, r2, #3
movs r1, #0
_080486A2:
ldr r0, [r3]
adds r0, r0, r2
adds r0, r0, r5
strb r1, [r0]
adds r5, #1
cmp r5, #0x13
ble _080486A2
movs r5, #0
ldr r3, _08048710 @ =gUnknown_020314E0
ldr r2, _08048718 @ =0x00000664
movs r1, #0
_080486B8:
ldr r0, [r3]
adds r0, r0, r2
adds r0, r0, r5
strb r1, [r0]
adds r5, #1
cmp r5, #0x13
ble _080486B8
movs r4, #0
ldr r1, _08048710 @ =gUnknown_020314E0
mov sb, r1
ldr r2, _0804871C @ =gUnknown_086B0128
mov r8, r2
movs r7, #0xcf
lsls r7, r7, #3
movs r6, #0xc7
lsls r6, r6, #3
_080486D8:
movs r5, #0
lsls r0, r4, #2
adds r3, r4, #1
mov ip, r3
adds r0, r0, r4
lsls r4, r0, #2
_080486E4:
mov r1, sb
ldr r0, [r1]
adds r2, r5, r4
adds r3, r0, r7
adds r3, r3, r2
adds r0, r0, r6
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
adds r2, r2, r0
add r2, r8
ldrb r0, [r2]
strb r0, [r3]
adds r5, #1
cmp r5, #0x13
ble _080486E4
mov r4, ip
cmp r4, #2
ble _080486D8
b _080487A6
.align 2, 0
_08048710: .4byte gUnknown_020314E0
_08048714: .4byte 0x0000063C
_08048718: .4byte 0x00000664
_0804871C: .4byte gUnknown_086B0128
_08048720:
ldr r2, [sp, #0x1c]
asrs r0, r2, #0x10
cmp r0, #0x58
bgt _080487A6
movs r1, #0x18
bl __divsi3
lsls r0, r0, #0x10
asrs r7, r0, #0x10
cmp r7, #2
ble _08048738
movs r7, #2
_08048738:
movs r4, #0
cmp r4, r7
bgt _080487A6
movs r6, #0
movs r3, #0
_08048742:
ldr r1, [sp, #0x1c]
asrs r0, r1, #0x10
subs r0, r0, r3
movs r1, #0x28
str r3, [sp, #0x24]
bl __modsi3
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r5, r0, #1
ldr r3, [sp, #0x24]
cmp r4, #0
beq _0804878C
ldr r2, _080487E8 @ =gUnknown_020314E0
ldr r1, [r2]
adds r2, r5, r6
ldr r0, _080487EC @ =0x0000063C
adds r0, r0, r1
mov r8, r0
add r8, r2
mov r0, r8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804878C
movs r0, #0xcf
lsls r0, r0, #3
adds r1, r1, r0
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x5f
beq _0804878C
movs r1, #1
str r1, [sp, #0x18]
_0804878C:
ldr r2, _080487E8 @ =gUnknown_020314E0
ldr r0, [r2]
adds r1, r5, r6
ldr r2, _080487EC @ =0x0000063C
adds r0, r0, r2
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
adds r6, #0x14
adds r3, #0x18
adds r4, #1
cmp r4, r7
ble _08048742
_080487A6:
ldr r3, [sp, #0x18]
cmp r3, #0
beq _080487B2
movs r0, #0xa1
bl m4aSongNumStart
_080487B2:
movs r7, #0
movs r3, #0
ldr r0, _080487E8 @ =gUnknown_020314E0
ldr r5, [r0]
ldr r4, _080487F0 @ =0x0000063A
adds r1, r5, r4
ldrh r1, [r1]
cmp r1, #0xd4
beq _080487CE
ldr r0, [sp, #0x14]
cmp r0, #0
bne _080487CE
bl _0804908E
_080487CE:
movs r1, #0xc7
lsls r1, r1, #3
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bhi _08048894
lsls r0, r0, #2
ldr r1, _080487F4 @ =_080487F8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080487E8: .4byte gUnknown_020314E0
_080487EC: .4byte 0x0000063C
_080487F0: .4byte 0x0000063A
_080487F4: .4byte _080487F8
_080487F8: @ jump table
.4byte _08048814 @ case 0
.4byte _08048828 @ case 1
.4byte _08048844 @ case 2
.4byte _08048860 @ case 3
.4byte _08048874 @ case 4
.4byte _08048890 @ case 5
.4byte _08048894 @ case 6
_08048814:
ldr r2, _08048820 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _08048824 @ =0x0000062A
adds r0, r0, r3
b _0804884C
.align 2, 0
_08048820: .4byte gUnknown_020314E0
_08048824: .4byte 0x0000062A
_08048828:
ldr r4, _08048838 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0804883C @ =0x0000062B
adds r0, r0, r7
ldrb r7, [r0]
ldr r3, _08048840 @ =0x000B71B0
b _08048894
.align 2, 0
_08048838: .4byte gUnknown_020314E0
_0804883C: .4byte 0x0000062B
_08048840: .4byte 0x000B71B0
_08048844:
ldr r1, _08048854 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08048858 @ =0x0000062C
adds r0, r0, r2
_0804884C:
ldrb r7, [r0]
ldr r3, _0804885C @ =0x0007A120
b _08048894
.align 2, 0
_08048854: .4byte gUnknown_020314E0
_08048858: .4byte 0x0000062C
_0804885C: .4byte 0x0007A120
_08048860:
ldr r3, _0804886C @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _08048870 @ =0x0000062D
adds r0, r0, r4
b _0804887C
.align 2, 0
_0804886C: .4byte gUnknown_020314E0
_08048870: .4byte 0x0000062D
_08048874:
ldr r7, _08048884 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _08048888 @ =0x0000062E
adds r0, r0, r1
_0804887C:
ldrb r7, [r0]
ldr r3, _0804888C @ =0x000186A0
b _08048894
.align 2, 0
_08048884: .4byte gUnknown_020314E0
_08048888: .4byte 0x0000062E
_0804888C: .4byte 0x000186A0
_08048890:
movs r7, #0
movs r3, #0
_08048894:
ldr r2, _08048900 @ =gUnknown_020314E0
ldr r0, [r2]
movs r4, #0xc7
lsls r4, r4, #3
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
ble _080488AA
b _08048B80
_080488AA:
mov r5, sp
adds r5, #2
adds r0, r7, #0
muls r0, r3, r0
mov r8, r0
movs r1, #7
add r1, sp
mov sl, r1
add r2, sp, #8
mov sb, r2
movs r1, #0
mov r0, sp
adds r0, #9
_080488C4:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _080488C4
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __divsi3
strb r0, [r4, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #2
movs r0, #0
ldrsb r0, [r5, r0]
b _08048914
.align 2, 0
_08048900: .4byte gUnknown_020314E0
_08048904:
subs r4, #1
cmp r4, #0
ble _0804891C
mov r3, sp
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08048914:
cmp r0, #0
ble _08048904
cmp r0, #0xa
beq _08048904
_0804891C:
movs r5, #0
cmp r5, r4
bgt _08048942
ldr r6, _080489FC @ =gUnknown_020314E0
movs r3, #0x13
movs r2, #0xcf
lsls r2, r2, #3
_0804892A:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _0804892A
_08048942:
movs r1, #0
mov r0, sp
adds r0, #9
_08048948:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _08048948
mov r7, r8
ldr r1, _080489FC @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08048A00 @ =0x00000634
adds r0, r0, r2
str r7, [r0]
mov r5, sp
ldr r4, _08048A04 @ =0x00989680
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #7]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048A08 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048A0C @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048A10 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r5, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #7
mov r3, sl
movs r0, #0
ldrsb r0, [r3, r0]
b _08048A24
.align 2, 0
_080489FC: .4byte gUnknown_020314E0
_08048A00: .4byte 0x00000634
_08048A04: .4byte 0x00989680
_08048A08: .4byte 0x000F4240
_08048A0C: .4byte 0x000186A0
_08048A10: .4byte 0x00002710
_08048A14:
subs r4, #1
cmp r4, #0
ble _08048A2C
mov r7, sp
adds r0, r7, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08048A24:
cmp r0, #0
ble _08048A14
cmp r0, #0xa
beq _08048A14
_08048A2C:
movs r5, #0
cmp r5, r4
bgt _08048A50
ldr r6, _08048B1C @ =gUnknown_020314E0
movs r3, #0x13
ldr r2, _08048B20 @ =0x0000068C
_08048A38:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08048A38
_08048A50:
movs r1, #0
mov r0, sp
adds r0, #9
_08048A56:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _08048A56
ldr r1, _08048B1C @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xc6
lsls r2, r2, #3
adds r0, r0, r2
ldr r7, [r0]
mov r5, sp
ldr r4, _08048B24 @ =0x05F5E100
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048B28 @ =0x00989680
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #7]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048B2C @ =0x000F4240
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048B30 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048B34 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r5, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #8
mov r3, sb
movs r0, #0
ldrsb r0, [r3, r0]
b _08048B48
.align 2, 0
_08048B1C: .4byte gUnknown_020314E0
_08048B20: .4byte 0x0000068C
_08048B24: .4byte 0x05F5E100
_08048B28: .4byte 0x00989680
_08048B2C: .4byte 0x000F4240
_08048B30: .4byte 0x000186A0
_08048B34: .4byte 0x00002710
_08048B38:
subs r4, #1
cmp r4, #0
ble _08048B50
mov r7, sp
adds r0, r7, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08048B48:
cmp r0, #0
ble _08048B38
cmp r0, #0xa
beq _08048B38
_08048B50:
movs r5, #0
cmp r5, r4
ble _08048B58
b _0804908E
_08048B58:
ldr r6, _08048B7C @ =gUnknown_020314E0
movs r3, #0x13
movs r2, #0xd4
lsls r2, r2, #3
_08048B60:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08048B60
b _0804908E
.align 2, 0
_08048B7C: .4byte gUnknown_020314E0
_08048B80:
cmp r0, #5
beq _08048B86
b _08048CB8
_08048B86:
add r0, sp, #8
mov sb, r0
movs r1, #0
mov r0, sp
adds r0, #9
_08048B90:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _08048B90
ldr r1, _08048C58 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xc6
lsls r2, r2, #3
adds r0, r0, r2
ldr r7, [r0]
mov r5, sp
ldr r4, _08048C5C @ =0x05F5E100
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048C60 @ =0x00989680
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #7]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048C64 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048C68 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048C6C @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r5, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #8
mov r3, sb
movs r0, #0
ldrsb r0, [r3, r0]
b _08048C80
.align 2, 0
_08048C58: .4byte gUnknown_020314E0
_08048C5C: .4byte 0x05F5E100
_08048C60: .4byte 0x00989680
_08048C64: .4byte 0x000F4240
_08048C68: .4byte 0x000186A0
_08048C6C: .4byte 0x00002710
_08048C70:
subs r4, #1
cmp r4, #0
ble _08048C88
mov r7, sp
adds r0, r7, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08048C80:
cmp r0, #0
ble _08048C70
cmp r0, #0xa
beq _08048C70
_08048C88:
movs r5, #0
cmp r5, r4
ble _08048C90
b _0804908E
_08048C90:
ldr r6, _08048CB4 @ =gUnknown_020314E0
movs r3, #0x13
movs r2, #0xd4
lsls r2, r2, #3
_08048C98:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08048C98
b _0804908E
.align 2, 0
_08048CB4: .4byte gUnknown_020314E0
_08048CB8:
add r0, sp, #8
mov sb, r0
movs r1, #5
add r1, sp
mov r8, r1
movs r2, #0xa
add r2, sp
mov sl, r2
movs r1, #0
mov r0, sp
adds r0, #9
_08048CCE:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _08048CCE
ldr r3, _08048D94 @ =gUnknown_020314E0
ldr r0, [r3]
movs r4, #0xc6
lsls r4, r4, #3
adds r0, r0, r4
ldr r7, [r0]
mov r5, sp
ldr r4, _08048D98 @ =0x05F5E100
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048D9C @ =0x00989680
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #7]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048DA0 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048DA4 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048DA8 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r5, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #8
mov r7, sb
movs r0, #0
ldrsb r0, [r7, r0]
b _08048DBC
.align 2, 0
_08048D94: .4byte gUnknown_020314E0
_08048D98: .4byte 0x05F5E100
_08048D9C: .4byte 0x00989680
_08048DA0: .4byte 0x000F4240
_08048DA4: .4byte 0x000186A0
_08048DA8: .4byte 0x00002710
_08048DAC:
subs r4, #1
cmp r4, #0
ble _08048DC4
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08048DBC:
cmp r0, #0
ble _08048DAC
cmp r0, #0xa
beq _08048DAC
_08048DC4:
movs r5, #0
cmp r5, r4
bgt _08048DEA
ldr r6, _08048E7C @ =gUnknown_020314E0
movs r3, #0x13
movs r2, #0xcf
lsls r2, r2, #3
_08048DD2:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08048DD2
_08048DEA:
movs r1, #0
mov r0, sp
adds r0, #9
_08048DF0:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _08048DF0
ldr r1, _08048E7C @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08048E80 @ =0x0000062F
adds r0, r0, r2
ldrb r7, [r0]
mov r5, sp
ldr r1, _08048E84 @ =0x000F4240
adds r0, r7, #0
bl __modsi3
ldr r4, _08048E88 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08048E8C @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r5, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #5
mov r3, r8
movs r0, #0
ldrsb r0, [r3, r0]
b _08048EA0
.align 2, 0
_08048E7C: .4byte gUnknown_020314E0
_08048E80: .4byte 0x0000062F
_08048E84: .4byte 0x000F4240
_08048E88: .4byte 0x000186A0
_08048E8C: .4byte 0x00002710
_08048E90:
subs r4, #1
cmp r4, #0
ble _08048EA8
mov r7, sp
adds r0, r7, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08048EA0:
cmp r0, #0
ble _08048E90
cmp r0, #0xa
beq _08048E90
_08048EA8:
movs r5, #0
cmp r5, r4
bgt _08048ECC
ldr r6, _08049020 @ =gUnknown_020314E0
movs r3, #0x13
ldr r2, _08049024 @ =0x0000068C
_08048EB4:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08048EB4
_08048ECC:
movs r1, #0
mov r0, sp
adds r0, #0xa
_08048ED2:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _08048ED2
movs r7, #0
movs r5, #0
ldr r1, _08049020 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r1, _08049028 @ =0x0000062F
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq _08048F24
ldr r2, _08049020 @ =gUnknown_020314E0
adds r6, r1, #0
_08048EF0:
ldr r4, [r2]
movs r3, #0xc6
lsls r3, r3, #3
adds r0, r4, r3
ldr r0, [r0]
adds r7, r7, r0
adds r0, r7, #0
ldr r1, _0804902C @ =0x0BEBC200
str r2, [sp, #0x20]
bl __divsi3
ldr r2, [sp, #0x20]
cmp r0, #0
ble _08048F12
ldr r0, _08049030 @ =0xF4143E00
adds r7, r7, r0
adds r5, #2
_08048F12:
adds r1, r4, r6
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
ldr r0, [r2]
adds r0, r0, r6
ldrb r0, [r0]
cmp r0, #0
bne _08048EF0
_08048F24:
ldr r1, _08049034 @ =0x05F5E100
mov r8, r1
adds r0, r7, #0
bl __divsi3
cmp r0, #0
ble _08048F38
ldr r2, _08049038 @ =0xFA0A1F00
adds r7, r7, r2
adds r5, #1
_08048F38:
ldr r3, _08049020 @ =gUnknown_020314E0
ldr r0, [r3]
movs r4, #0xd7
lsls r4, r4, #3
adds r1, r0, r4
str r5, [r1]
ldr r1, _0804903C @ =0x000006B4
adds r0, r0, r1
str r7, [r0]
mov r4, sp
movs r6, #0xfa
lsls r6, r6, #2
adds r0, r5, #0
adds r1, r6, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r4, #0xa]
mov r4, sp
adds r0, r5, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
adds r0, #0xa
strb r0, [r4, #9]
mov r4, sp
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4, #8]
mov r5, sp
adds r0, r7, #0
mov r1, r8
bl __modsi3
ldr r4, _08049040 @ =0x00989680
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #7]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08049044 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08049048 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _0804904C @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
adds r1, r6, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r4, sp
adds r0, r7, #0
adds r1, r6, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r4, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #0xa
mov r2, sl
movs r0, #0
ldrsb r0, [r2, r0]
b _08049060
.align 2, 0
_08049020: .4byte gUnknown_020314E0
_08049024: .4byte 0x0000068C
_08049028: .4byte 0x0000062F
_0804902C: .4byte 0x0BEBC200
_08049030: .4byte 0xF4143E00
_08049034: .4byte 0x05F5E100
_08049038: .4byte 0xFA0A1F00
_0804903C: .4byte 0x000006B4
_08049040: .4byte 0x00989680
_08049044: .4byte 0x000F4240
_08049048: .4byte 0x000186A0
_0804904C: .4byte 0x00002710
_08049050:
subs r4, #1
cmp r4, #0
ble _08049068
mov r3, sp
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08049060:
cmp r0, #0
ble _08049050
cmp r0, #0xa
beq _08049050
_08049068:
movs r5, #0
cmp r5, r4
bgt _0804908E
ldr r6, _080490FC @ =gUnknown_020314E0
movs r3, #0x13
movs r2, #0xd4
lsls r2, r2, #3
_08049076:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08049076
_0804908E:
ldr r1, [sp, #0x1c]
ldr r2, _08049100 @ =0xFFA60000
adds r0, r1, r2
lsrs r0, r0, #0x10
cmp r0, #0x32
bls _0804909C
b _0804948A
_0804909C:
ldr r3, _080490FC @ =gUnknown_020314E0
ldr r1, [r3]
movs r4, #0xc7
lsls r4, r4, #3
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
ble _080490B2
b _08049250
_080490B2:
ldr r3, _08049104 @ =0x00000634
adds r0, r1, r3
ldr r0, [r0]
cmp r0, #0
beq _080490C4
ldr r7, _08049108 @ =0x0000063A
adds r1, r1, r7
movs r0, #0x64
strh r0, [r1]
_080490C4:
ldr r0, _0804910C @ =gMain
ldr r2, [r0, #0x4c]
movs r0, #1
ands r2, r0
cmp r2, #0
bne _08049134
ldr r0, _080490FC @ =gUnknown_020314E0
ldr r1, [r0]
adds r4, r1, r3
ldr r3, [r4]
ldr r0, _08049110 @ =0x00030D3F
cmp r3, r0
bls _0804911C
ldr r2, _08049114 @ =0xFFFCF2C0
adds r0, r3, r2
str r0, [r4]
movs r3, #0xc6
lsls r3, r3, #3
adds r1, r1, r3
ldr r0, [r1]
ldr r4, _08049118 @ =0x00030D40
adds r0, r0, r4
str r0, [r1]
movs r0, #0x91
bl m4aSongNumStart
b _08049134
.align 2, 0
_080490FC: .4byte gUnknown_020314E0
_08049100: .4byte 0xFFA60000
_08049104: .4byte 0x00000634
_08049108: .4byte 0x0000063A
_0804910C: .4byte gMain
_08049110: .4byte 0x00030D3F
_08049114: .4byte 0xFFFCF2C0
_08049118: .4byte 0x00030D40
_0804911C:
cmp r3, #0
beq _08049134
movs r7, #0xc6
lsls r7, r7, #3
adds r1, r1, r7
ldr r0, [r1]
adds r0, r0, r3
str r0, [r1]
str r2, [r4]
movs r0, #0x91
bl m4aSongNumStart
_08049134:
ldr r6, _080491F0 @ =gUnknown_020314E0
ldr r0, [r6]
movs r1, #0xc6
lsls r1, r1, #3
adds r0, r0, r1
ldr r7, [r0]
mov r5, sp
ldr r4, _080491F4 @ =0x05F5E100
adds r0, r7, #0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080491F8 @ =0x00989680
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #7]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _080491FC @ =0x000F4240
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08049200 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08049204 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r4, #0xfa
lsls r4, r4, #2
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r5, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #8
add r0, sp, #8
b _08049212
.align 2, 0
_080491F0: .4byte gUnknown_020314E0
_080491F4: .4byte 0x05F5E100
_080491F8: .4byte 0x00989680
_080491FC: .4byte 0x000F4240
_08049200: .4byte 0x000186A0
_08049204: .4byte 0x00002710
_08049208:
subs r4, #1
cmp r4, #0
ble _08049220
mov r2, sp
adds r0, r2, r4
_08049212:
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08049208
cmp r0, #0xa
beq _08049208
_08049220:
movs r5, #0
cmp r5, r4
ble _08049228
b _0804948A
_08049228:
ldr r6, _0804924C @ =gUnknown_020314E0
movs r3, #0x13
movs r2, #0xd4
lsls r2, r2, #3
_08049230:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08049230
b _0804948A
.align 2, 0
_0804924C: .4byte gUnknown_020314E0
_08049250:
cmp r0, #6
beq _08049256
b _0804948A
_08049256:
ldr r0, _080492A4 @ =0x00000639
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
ldr r2, _080492A8 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _080492AC @ =0x000006B4
adds r0, r1, r3
ldr r0, [r0]
cmp r0, #0
bne _08049278
movs r4, #0xd7
lsls r4, r4, #3
adds r0, r1, r4
ldr r0, [r0]
cmp r0, #0
beq _08049280
_08049278:
ldr r7, _080492B0 @ =0x0000063A
adds r1, r1, r7
movs r0, #0x64
strh r0, [r1]
_08049280:
ldr r0, _080492B4 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _08049302
ldr r0, _080492A8 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r0, _080492AC @ =0x000006B4
adds r5, r2, r0
ldr r3, [r5]
ldr r0, _080492B8 @ =0x00030D3F
cmp r3, r0
bls _080492C0
ldr r1, _080492BC @ =0xFFFCF2C0
adds r0, r3, r1
b _080492D6
.align 2, 0
_080492A4: .4byte 0x00000639
_080492A8: .4byte gUnknown_020314E0
_080492AC: .4byte 0x000006B4
_080492B0: .4byte 0x0000063A
_080492B4: .4byte gMain
_080492B8: .4byte 0x00030D3F
_080492BC: .4byte 0xFFFCF2C0
_080492C0:
movs r7, #0xd7
lsls r7, r7, #3
adds r4, r2, r7
ldr r1, [r4]
cmp r1, #0
beq _080492F0
subs r0, r1, #1
str r0, [r4]
ldr r0, [r5]
ldr r1, _080492E8 @ =0x05F2D3C0
adds r0, r0, r1
_080492D6:
str r0, [r5]
ldr r0, [r2, #0x44]
ldr r3, _080492EC @ =0x00030D40
adds r0, r0, r3
str r0, [r2, #0x44]
movs r0, #0x91
bl m4aSongNumStart
b _08049302
.align 2, 0
_080492E8: .4byte 0x05F2D3C0
_080492EC: .4byte 0x00030D40
_080492F0:
cmp r3, #0
beq _08049302
ldr r0, [r2, #0x44]
adds r0, r0, r3
str r0, [r2, #0x44]
str r1, [r5]
movs r0, #0x91
bl m4aSongNumStart
_08049302:
movs r4, #0xa
add r4, sp
mov sl, r4
movs r1, #0
mov r0, sl
_0804930C:
strb r1, [r0]
subs r0, #1
cmp r0, sp
bge _0804930C
movs r5, #0
ldr r7, _0804942C @ =gUnknown_020314E0
movs r6, #0xd4
lsls r6, r6, #3
ldr r4, _08049430 @ =gUnknown_086B0150
movs r3, #0xc7
lsls r3, r3, #3
_08049322:
ldr r0, [r7]
adds r2, r0, r6
adds r2, r2, r5
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r5, r0
adds r0, r0, r4
ldrb r0, [r0]
strb r0, [r2]
adds r5, #1
cmp r5, #0x13
ble _08049322
ldr r7, _0804942C @ =gUnknown_020314E0
ldr r0, [r7]
movs r2, #0xd7
lsls r2, r2, #3
adds r1, r0, r2
ldr r5, [r1]
ldr r3, _08049434 @ =0x000006B4
adds r0, r0, r3
ldr r7, [r0]
mov r4, sp
movs r6, #0xfa
lsls r6, r6, #2
adds r0, r5, #0
adds r1, r6, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r4, #0xa]
mov r4, sp
adds r0, r5, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
adds r0, #0xa
strb r0, [r4, #9]
mov r4, sp
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4, #8]
mov r5, sp
ldr r1, _08049438 @ =0x05F5E100
adds r0, r7, #0
bl __modsi3
ldr r4, _0804943C @ =0x00989680
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #7]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08049440 @ =0x000F4240
adds r1, r4, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #6]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08049444 @ =0x000186A0
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #5]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
ldr r4, _08049448 @ =0x00002710
adds r1, r4, #0
bl __divsi3
strb r0, [r5, #4]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __modsi3
adds r1, r6, #0
bl __divsi3
adds r0, #0xa
strb r0, [r5, #3]
mov r4, sp
adds r0, r7, #0
adds r1, r6, #0
bl __modsi3
movs r1, #0x64
bl __divsi3
strb r0, [r4, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __modsi3
movs r1, #0xa
bl __divsi3
strb r0, [r4, #1]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __modsi3
strb r0, [r4]
movs r4, #0xa
mov r7, sl
movs r0, #0
ldrsb r0, [r7, r0]
b _0804945C
.align 2, 0
_0804942C: .4byte gUnknown_020314E0
_08049430: .4byte gUnknown_086B0150
_08049434: .4byte 0x000006B4
_08049438: .4byte 0x05F5E100
_0804943C: .4byte 0x00989680
_08049440: .4byte 0x000F4240
_08049444: .4byte 0x000186A0
_08049448: .4byte 0x00002710
_0804944C:
subs r4, #1
cmp r4, #0
ble _08049464
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_0804945C:
cmp r0, #0
ble _0804944C
cmp r0, #0xa
beq _0804944C
_08049464:
movs r5, #0
cmp r5, r4
bgt _0804948A
ldr r6, _08049584 @ =gUnknown_020314E0
movs r3, #0x13
movs r2, #0xd4
lsls r2, r2, #3
_08049472:
ldr r1, [r6]
subs r0, r3, r5
adds r1, r1, r2
adds r1, r1, r0
mov r7, sp
adds r0, r7, r5
ldrb r0, [r0]
adds r0, #0x1b
strb r0, [r1]
adds r5, #1
cmp r5, r4
ble _08049472
_0804948A:
ldr r1, _08049584 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08049588 @ =0x0000063A
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _0804949C
subs r0, #1
strh r0, [r1]
_0804949C:
ldr r6, _0804958C @ =gUnknown_0200BA30
ldrh r0, [r6]
cmp r0, #0
beq _08049572
movs r0, #0x78
strh r0, [r6, #2]
ldr r3, _08049584 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0xfc
ldrh r0, [r0]
adds r0, #0x26
strh r0, [r6, #4]
ldr r4, [sp, #0x10]
lsls r4, r4, #0x10
mov r8, r4
ldr r7, _08049590 @ =gOamBuffer
ldr r0, _08049594 @ =0xFFFFFE00
mov sl, r0
adds r4, r6, #0
adds r4, #8
ldr r1, _08049598 @ =0x000001FF
mov sb, r1
movs r5, #0xd
_080494CA:
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r7
movs r2, #2
ldrsh r1, [r4, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
mov r0, sb
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #8
subs r5, #1
cmp r5, #0
bge _080494CA
movs r4, #0
mov r3, r8
asrs r3, r3, #0x10
mov sl, r3
ldr r7, _08049590 @ =gOamBuffer
ldr r0, _08049594 @ =0xFFFFFE00
mov sb, r0
ldr r1, _08049598 @ =0x000001FF
mov r8, r1
_08049510:
movs r0, #0xb8
muls r0, r4, r0
ldr r2, _0804959C @ =gUnknown_0200B808
adds r6, r0, r2
movs r0, #0x68
strh r0, [r6, #2]
lsls r1, r4, #4
ldr r3, _08049584 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0xfc
ldrh r0, [r0]
adds r0, #0x40
adds r1, r1, r0
add r1, sl
strh r1, [r6, #4]
adds r4, #1
mov ip, r4
adds r4, r6, #0
adds r4, #8
movs r5, #4
_08049538:
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r7
movs r0, #2
ldrsh r1, [r4, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
mov r0, r8
ands r1, r0
ldrh r3, [r2, #2]
mov r0, sb
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #8
subs r5, #1
cmp r5, #0
bge _08049538
mov r4, ip
cmp r4, #2
ble _08049510
_08049572:
add sp, #0x28
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
_08049584: .4byte gUnknown_020314E0
_08049588: .4byte 0x0000063A
_0804958C: .4byte gUnknown_0200BA30
_08049590: .4byte gOamBuffer
_08049594: .4byte 0xFFFFFE00
_08049598: .4byte 0x000001FF
_0804959C: .4byte gUnknown_0200B808
thumb_func_start sub_495A0
sub_495A0: @ 0x080495A0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, _080495DC @ =0xFFFFFDFC
add sp, r4
ldr r2, _080495E0 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _080495E4 @ =0x00001104
adds r0, r0, r1
movs r3, #0
movs r1, #1
strb r1, [r0]
ldr r1, [r2]
ldr r2, _080495E8 @ =0x0000131C
adds r0, r1, r2
str r3, [r0]
ldr r2, _080495EC @ =gMPlayInfo_BGM
ldr r0, [r2, #4]
cmp r0, #0
blt _080495F4
ldr r5, _080495F0 @ =0x00000F4C
adds r1, r1, r5
ldr r0, [r2]
str r0, [r1]
adds r0, r2, #0
bl m4aMPlayStop
b _080495FA
.align 2, 0
_080495DC: .4byte 0xFFFFFDFC
_080495E0: .4byte gUnknown_020314E0
_080495E4: .4byte 0x00001104
_080495E8: .4byte 0x0000131C
_080495EC: .4byte gMPlayInfo_BGM
_080495F0: .4byte 0x00000F4C
_080495F4:
ldr r2, _08049628 @ =0x00000F4C
adds r0, r1, r2
str r3, [r0]
_080495FA:
bl m4aMPlayAllStop
movs r0, #0xa5
bl m4aSongNumStart
ldr r2, _0804962C @ =gMain
ldrb r0, [r2, #4]
cmp r0, #1
bhi _0804963C
ldr r0, _08049630 @ =gUnknown_020314E0
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0x68
ldrh r1, [r1]
adds r0, #0x6a
strh r1, [r0]
ldrb r0, [r2, #4]
cmp r0, #0
bne _08049634
bl sub_4E814
b _0804963C
.align 2, 0
_08049628: .4byte 0x00000F4C
_0804962C: .4byte gMain
_08049630: .4byte gUnknown_020314E0
_08049634:
cmp r0, #1
bne _0804963C
bl sub_4F814
_0804963C:
ldr r4, _08049708 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r3, _0804970C @ =gMain
ldrh r1, [r3, #0x38]
ldr r5, _08049710 @ =0x00001106
adds r0, r2, r5
ldrh r5, [r0]
strh r1, [r0]
ldrh r1, [r3, #0x3a]
ldr r5, _08049714 @ =0x00001108
adds r0, r2, r5
ldrh r5, [r0]
strh r1, [r0]
ldrh r1, [r3, #0x3c]
ldr r5, _08049718 @ =0x0000110A
adds r0, r2, r5
ldrh r5, [r0]
strh r1, [r0]
ldrh r1, [r3, #0x2c]
ldr r5, _0804971C @ =0x0000110C
adds r0, r2, r5
strh r1, [r0]
ldrh r1, [r3, #0x26]
adds r5, #2
adds r0, r2, r5
strh r1, [r0]
ldr r1, _08049720 @ =0x040000D4
ldr r0, _08049724 @ =0x05000200
str r0, [r1]
ldr r0, _08049728 @ =0x0000111A
adds r2, r2, r0
str r2, [r1, #4]
ldr r0, _0804972C @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r1, #0
add r6, sp, #0x200
movs r2, #0x9c
lsls r2, r2, #1
add r2, sp
mov sl, r2
_0804968E:
movs r5, #0
lsls r1, r1, #0x10
mov sb, r1
mov r0, sb
asrs r0, r0, #0x10
mov r8, r0
_0804969A:
lsls r7, r5, #0x10
mov r1, r8
cmp r1, #9
bne _080496A8
asrs r0, r7, #0x10
cmp r0, #0xc
beq _08049730
_080496A8:
ldr r2, _08049708 @ =gUnknown_020314E0
ldr r4, [r2]
asrs r5, r7, #0xf
mov r1, r8
lsls r0, r1, #5
adds r5, r5, r0
ldr r2, _08049728 @ =0x0000111A
adds r4, r4, r2
adds r4, r4, r5
ldrh r1, [r4]
movs r0, #0x1f
ands r0, r1
lsls r0, r0, #1
movs r1, #5
bl __divsi3
strb r0, [r6]
ldrh r0, [r4]
movs r2, #0xf8
lsls r2, r2, #2
adds r1, r2, #0
ands r0, r1
lsrs r0, r0, #4
movs r1, #5
bl __divsi3
strb r0, [r6, #1]
ldrh r0, [r4]
movs r2, #0xf8
lsls r2, r2, #7
adds r1, r2, #0
ands r0, r1
lsrs r0, r0, #9
movs r1, #5
bl __divsi3
strb r0, [r6, #2]
mov r0, sp
adds r2, r0, r5
ldrb r1, [r6]
ldrb r0, [r6, #1]
lsls r0, r0, #5
orrs r1, r0
ldrb r0, [r6, #2]
lsls r0, r0, #0xa
orrs r1, r0
strh r1, [r2]
b _08049736
.align 2, 0
_08049708: .4byte gUnknown_020314E0
_0804970C: .4byte gMain
_08049710: .4byte 0x00001106
_08049714: .4byte 0x00001108
_08049718: .4byte 0x0000110A
_0804971C: .4byte 0x0000110C
_08049720: .4byte 0x040000D4
_08049724: .4byte 0x05000200
_08049728: .4byte 0x0000111A
_0804972C: .4byte 0x80000100
_08049730:
ldr r0, _08049770 @ =0x00007FFF
mov r1, sl
strh r0, [r1]
_08049736:
movs r2, #0x80
lsls r2, r2, #9
adds r0, r7, r2
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xf
ble _0804969A
adds r0, r2, #0
add r0, sb
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xf
ble _0804968E
ldr r1, _08049774 @ =0x040000D4
mov r5, sp
str r5, [r1]
ldr r0, _08049778 @ =0x05000200
str r0, [r1, #4]
ldr r0, _0804977C @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08049780 @ =gMain
ldrb r3, [r0, #4]
cmp r3, #1
bhi _08049784
bl sub_1D4D0
b _080497A0
.align 2, 0
_08049770: .4byte 0x00007FFF
_08049774: .4byte 0x040000D4
_08049778: .4byte 0x05000200
_0804977C: .4byte 0x80000100
_08049780: .4byte gMain
_08049784:
cmp r3, #2
bne _0804978E
bl sub_356A0
b _080497A0
_0804978E:
cmp r3, #4
bne _08049798
bl sub_3ADA0
b _080497A0
_08049798:
cmp r3, #5
bne _080497A0
bl sub_3E5D0
_080497A0:
movs r0, #1
bl sub_11F0
movs r3, #0x81
lsls r3, r3, #2
add sp, r3
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_497BC
sub_497BC: @ 0x080497BC
push {lr}
ldr r1, _08049824 @ =gMain
ldr r0, _08049828 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0804982C @ =0x00001106
adds r0, r2, r3
ldrh r0, [r0]
ldrh r3, [r1, #0x38]
strh r0, [r1, #0x38]
ldr r3, _08049830 @ =0x00001108
adds r0, r2, r3
ldrh r0, [r0]
ldrh r3, [r1, #0x3a]
strh r0, [r1, #0x3a]
ldr r3, _08049834 @ =0x0000110A
adds r0, r2, r3
ldrh r0, [r0]
ldrh r3, [r1, #0x3c]
strh r0, [r1, #0x3c]
ldr r3, _08049838 @ =0x0000110C
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1, #0x2c]
adds r3, #2
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1, #0x26]
ldr r1, _0804983C @ =0x040000D4
adds r3, #0xc
adds r0, r2, r3
str r0, [r1]
ldr r0, _08049840 @ =0x05000200
str r0, [r1, #4]
ldr r0, _08049844 @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08049848 @ =0x00000F4C
adds r2, r2, r0
ldr r0, [r2]
cmp r0, #0
beq _08049814
ldr r0, _0804984C @ =gMPlayInfo_BGM
bl m4aMPlayContinue
_08049814:
movs r0, #0xa6
bl m4aSongNumStart
movs r0, #0
bl sub_11F0
pop {r0}
bx r0
.align 2, 0
_08049824: .4byte gMain
_08049828: .4byte gUnknown_020314E0
_0804982C: .4byte 0x00001106
_08049830: .4byte 0x00001108
_08049834: .4byte 0x0000110A
_08049838: .4byte 0x0000110C
_0804983C: .4byte 0x040000D4
_08049840: .4byte 0x05000200
_08049844: .4byte 0x80000100
_08049848: .4byte 0x00000F4C
_0804984C: .4byte gMPlayInfo_BGM
thumb_func_start sub_49850
sub_49850: @ 0x08049850
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _08049A20 @ =gUnknown_0200B3B8
mov ip, r0
mov r5, ip
adds r5, #8
ldr r4, _08049A24 @ =gOamBuffer
mov r3, ip
ldrh r1, [r3, #8]
lsls r1, r1, #3
adds r1, r1, r4
movs r0, #2
ldrsh r2, [r5, r0]
ldr r3, _08049A28 @ =0x000001FF
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #2]
ldr r6, _08049A2C @ =0xFFFFFE00
adds r0, r6, #0
ands r0, r3
orrs r0, r2
strh r0, [r1, #2]
mov r1, ip
ldrh r0, [r1, #8]
lsls r0, r0, #3
adds r0, r0, r4
ldrh r1, [r5, #4]
strb r1, [r0]
mov r3, ip
ldrh r1, [r3, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r2, [r1, #1]
movs r5, #4
rsbs r5, r5, #0
adds r0, r5, #0
ands r0, r2
strb r0, [r1, #1]
ldrh r1, [r3, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r2, [r1, #3]
movs r3, #0xf
rsbs r3, r3, #0
adds r0, r3, #0
ands r0, r2
strb r0, [r1, #3]
movs r0, #1
movs r1, #0xb8
add r1, ip
mov sl, r1
adds r7, r4, #0
mov sb, r6
mov r8, r5
adds r6, r3, #0
_080498C4:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r3, ip
adds r5, r3, r0
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
movs r0, #2
ldrsh r2, [r5, r0]
ldr r3, _08049A28 @ =0x000001FF
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #2]
mov r0, sb
ands r0, r3
orrs r0, r2
strh r0, [r1, #2]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r7
ldrh r1, [r5, #4]
strb r1, [r0]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r2, [r1, #1]
mov r0, r8
ands r0, r2
strb r0, [r1, #1]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r2, [r1, #3]
adds r0, r6, #0
ands r0, r2
strb r0, [r1, #3]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #4
ble _080498C4
movs r0, #5
ldr r6, _08049A24 @ =gOamBuffer
ldr r1, _08049A2C @ =0xFFFFFE00
mov sb, r1
movs r3, #4
rsbs r3, r3, #0
mov r8, r3
movs r7, #0xf
rsbs r7, r7, #0
_0804992E:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r1, ip
adds r5, r1, r0
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
movs r3, #2
ldrsh r2, [r5, r3]
ldr r3, _08049A28 @ =0x000001FF
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #2]
mov r0, sb
ands r0, r3
orrs r0, r2
strh r0, [r1, #2]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r6
ldrh r1, [r5, #4]
strb r1, [r0]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #1]
mov r0, r8
ands r0, r2
strb r0, [r1, #1]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #3]
adds r0, r7, #0
ands r0, r2
strb r0, [r1, #3]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xa
ble _0804992E
mov ip, sl
movs r0, #0
ldr r6, _08049A24 @ =gOamBuffer
ldr r7, _08049A2C @ =0xFFFFFE00
_0804998E:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r1, ip
adds r5, r1, r0
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
movs r3, #2
ldrsh r2, [r5, r3]
ldr r3, _08049A28 @ =0x000001FF
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #2]
adds r0, r7, #0
ands r0, r3
orrs r0, r2
strh r0, [r1, #2]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r6
ldrh r1, [r5, #4]
strb r1, [r0]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _0804998E
ldr r0, _08049A30 @ =gUnknown_0200B528
mov ip, r0
movs r0, #0
ldr r6, _08049A24 @ =gOamBuffer
ldr r7, _08049A2C @ =0xFFFFFE00
_080499D4:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r1, ip
adds r5, r1, r0
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
movs r3, #2
ldrsh r2, [r5, r3]
ldr r3, _08049A28 @ =0x000001FF
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #2]
adds r0, r7, #0
ands r0, r3
orrs r0, r2
strh r0, [r1, #2]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r6
ldrh r1, [r5, #4]
strb r1, [r0]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #2
ble _080499D4
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
_08049A20: .4byte gUnknown_0200B3B8
_08049A24: .4byte gOamBuffer
_08049A28: .4byte 0x000001FF
_08049A2C: .4byte 0xFFFFFE00
_08049A30: .4byte gUnknown_0200B528
thumb_func_start sub_49A34
sub_49A34: @ 0x08049A34
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
movs r0, #8
mov r8, r0
ldr r1, _08049A94 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _08049A98 @ =0x0000131C
adds r0, r0, r3
ldr r2, [r0]
mov ip, r1
cmp r2, #0
bne _08049A68
ldr r1, _08049A9C @ =gMain
ldrh r0, [r1, #0x38]
movs r0, #0xcf
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3c]
movs r0, #0xa
strh r0, [r1, #0x3c]
strh r2, [r1, #0x2c]
movs r0, #0x90
strh r0, [r1, #0x26]
_08049A68:
mov r1, ip
ldr r0, [r1]
adds r0, r0, r3
ldr r2, [r0]
cmp r2, #0xf
bhi _08049AA4
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #1
movs r0, #0xa0
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
movs r2, #0x18
str r2, [sp, #4]
ldr r3, _08049AA0 @ =0x0000FFFF
mov sb, r3
mov r0, sb
movs r5, #0x10
mov r8, r5
b _08049B48
.align 2, 0
_08049A94: .4byte gUnknown_020314E0
_08049A98: .4byte 0x0000131C
_08049A9C: .4byte gMain
_08049AA0: .4byte 0x0000FFFF
_08049AA4:
cmp r2, #0x17
bhi _08049B34
movs r0, #0
str r0, [sp]
adds r0, r2, #0
subs r0, #0xf
lsls r1, r0, #1
adds r1, r1, r0
movs r0, #0x18
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
cmp r2, #0x11
bhi _08049AD0
ldr r1, _08049ACC @ =0x0000FFFF
mov sb, r1
mov r0, sb
b _08049B48
.align 2, 0
_08049ACC: .4byte 0x0000FFFF
_08049AD0:
cmp r2, #0x12
bne _08049AE4
movs r0, #9
ldr r2, _08049AE0 @ =0x0000FFF6
mov sb, r2
movs r3, #0x10
mov r8, r3
b _08049B48
.align 2, 0
_08049AE0: .4byte 0x0000FFF6
_08049AE4:
cmp r2, #0x13
bne _08049AF8
movs r0, #9
ldr r5, _08049AF4 @ =0x0000FFF7
mov sb, r5
movs r1, #0x80
b _08049B46
.align 2, 0
_08049AF4: .4byte 0x0000FFF7
_08049AF8:
cmp r2, #0x14
bne _08049B0C
movs r0, #7
ldr r2, _08049B08 @ =0x0000FFF8
mov sb, r2
movs r3, #0xa0
mov r8, r3
b _08049B48
.align 2, 0
_08049B08: .4byte 0x0000FFF8
_08049B0C:
cmp r2, #0x15
bne _08049B20
movs r0, #6
ldr r5, _08049B1C @ =0x0000FFF9
mov sb, r5
movs r1, #0xc0
b _08049B46
.align 2, 0
_08049B1C: .4byte 0x0000FFF9
_08049B20:
cmp r2, #0x16
bne _08049B3C
movs r0, #4
ldr r2, _08049B30 @ =0x0000FFFB
mov sb, r2
movs r3, #0xe0
mov r8, r3
b _08049B48
.align 2, 0
_08049B30: .4byte 0x0000FFFB
_08049B34:
movs r2, #0
str r2, [sp]
movs r3, #0
str r3, [sp, #4]
_08049B3C:
movs r0, #4
ldr r5, _08049C18 @ =0x0000FFFC
mov sb, r5
movs r1, #0x80
lsls r1, r1, #1
_08049B46:
mov r8, r1
_08049B48:
ldr r6, _08049C1C @ =gUnknown_0200B3B8
lsls r0, r0, #0x10
asrs r1, r0, #0x10
str r0, [sp, #0xc]
mov r2, r8
lsls r2, r2, #0x10
str r2, [sp, #0x10]
ldr r3, [sp]
lsls r3, r3, #0x10
mov sl, r3
ldr r5, [sp, #4]
lsls r5, r5, #0x10
str r5, [sp, #8]
cmp r1, #0
bge _08049B68
b _08049D92
_08049B68:
movs r0, #0x64
strh r0, [r6, #2]
adds r0, r1, #0
adds r0, #0x50
strh r0, [r6, #4]
adds r7, r6, #0
adds r7, #8
ldr r4, _08049C20 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #2
ldrsh r1, [r7, r0]
adds r1, #0x64
ldr r3, _08049C24 @ =gUnknown_08137D78
mov sl, r3
movs r5, #0
ldrsh r0, [r3, r5]
adds r1, r1, r0
ldr r3, _08049C28 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08049C2C @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r3, [r6, #8]
lsls r3, r3, #3
adds r3, r3, r4
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
mov r5, sl
ldrb r2, [r5, #2]
adds r2, r2, r0
mov r1, ip
ldr r0, [r1]
ldr r5, _08049C30 @ =0x00001104
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r2, r2, r0
strb r2, [r3]
ldrh r1, [r6, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r1, #1]
movs r2, #3
orrs r0, r2
strb r0, [r1, #1]
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
ldrb r1, [r2, #3]
movs r0, #0xf
rsbs r0, r0, #0
ands r0, r1
movs r1, #0xa
orrs r0, r1
strb r0, [r2, #3]
ldr r5, _08049C34 @ =gUnknown_08137DA4
ldr r0, _08049C38 @ =0xFFFFFD08
adds r4, r6, r0
ldr r0, [r4, #0x4c]
movs r1, #0x41
bl __umodsi3
movs r1, #5
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r5
ldrh r1, [r0]
ldrb r0, [r4, #4]
cmp r0, #1
bhi _08049C48
ldr r2, _08049C3C @ =0x040000D4
lsls r0, r1, #0x10
asrs r0, r0, #0xb
ldr r1, _08049C40 @ =gUnknown_08510CAC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08049C44 @ =0x060118C0
b _08049C56
.align 2, 0
_08049C18: .4byte 0x0000FFFC
_08049C1C: .4byte gUnknown_0200B3B8
_08049C20: .4byte gOamBuffer
_08049C24: .4byte gUnknown_08137D78
_08049C28: .4byte 0x000001FF
_08049C2C: .4byte 0xFFFFFE00
_08049C30: .4byte 0x00001104
_08049C34: .4byte gUnknown_08137DA4
_08049C38: .4byte 0xFFFFFD08
_08049C3C: .4byte 0x040000D4
_08049C40: .4byte gUnknown_08510CAC
_08049C44: .4byte 0x060118C0
_08049C48:
ldr r2, _08049E84 @ =0x040000D4
lsls r0, r1, #0x10
asrs r0, r0, #0xb
ldr r1, _08049E88 @ =gUnknown_08510CAC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08049E8C @ =0x06010480
_08049C56:
str r0, [r2, #4]
ldr r0, _08049E90 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0x64
strh r0, [r6, #2]
ldr r1, [sp, #0xc]
asrs r0, r1, #0x10
adds r0, #0x50
strh r0, [r6, #4]
movs r0, #1
mov r2, sb
lsls r2, r2, #0x10
mov sb, r2
mov r3, r8
lsls r3, r3, #0x10
str r3, [sp, #0x10]
ldr r5, [sp]
lsls r5, r5, #0x10
mov sl, r5
ldr r1, [sp, #4]
lsls r1, r1, #0x10
str r1, [sp, #8]
ldr r2, _08049E94 @ =gOamBuffer
mov ip, r2
movs r3, #0xf
rsbs r3, r3, #0
mov r8, r3
_08049C8E:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
add r3, ip
movs r5, #2
ldrsh r1, [r7, r5]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
lsls r5, r4, #2
ldr r0, _08049E98 @ =gUnknown_08137D78
adds r5, r5, r0
movs r2, #0
ldrsh r0, [r5, r2]
adds r1, r1, r0
ldr r2, _08049E9C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _08049EA0 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r6, #4]
ldrb r3, [r7, #4]
adds r1, r1, r3
ldrb r0, [r5, #2]
adds r0, r0, r1
strb r0, [r2]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
ldrb r0, [r2, #1]
movs r1, #3
orrs r0, r1
strb r0, [r2, #1]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r2, #3]
mov r0, r8
ands r0, r1
movs r1, #0xa
orrs r0, r1
strb r0, [r2, #3]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #4
ble _08049C8E
movs r0, #0x64
strh r0, [r6, #2]
mov r5, sb
asrs r0, r5, #0x10
adds r0, #0x58
strh r0, [r6, #4]
movs r0, #5
ldr r1, _08049E94 @ =gOamBuffer
mov ip, r1
ldr r2, _08049EA0 @ =0xFFFFFE00
mov sb, r2
movs r3, #0xf
rsbs r3, r3, #0
mov r8, r3
_08049D1E:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
add r3, ip
movs r5, #2
ldrsh r1, [r7, r5]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
lsls r5, r4, #2
ldr r0, _08049E98 @ =gUnknown_08137D78
adds r5, r5, r0
movs r2, #0
ldrsh r0, [r5, r2]
adds r1, r1, r0
ldr r2, _08049E9C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sb
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r6, #4]
ldrb r3, [r7, #4]
adds r1, r1, r3
ldrb r0, [r5, #2]
adds r0, r0, r1
strb r0, [r2]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
ldrb r0, [r2, #1]
movs r1, #3
orrs r0, r1
strb r0, [r2, #1]
ldrh r2, [r7]
lsls r2, r2, #3
add r2, ip
ldrb r1, [r2, #3]
mov r0, r8
ands r0, r1
movs r1, #0xa
orrs r0, r1
strb r0, [r2, #3]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0xa
ble _08049D1E
_08049D92:
movs r0, #0x80
lsls r0, r0, #1
ldr r5, [sp, #0x10]
asrs r1, r5, #0x10
movs r2, #5
bl SetMatrixScale
ldr r6, _08049EA4 @ =gUnknown_0200B470
movs r0, #0x64
mov r2, sl
asrs r1, r2, #0x10
subs r0, r0, r1
strh r0, [r6, #2]
ldr r3, [sp, #8]
asrs r0, r3, #0x10
adds r0, #0x50
strh r0, [r6, #4]
movs r0, #0
ldr r5, _08049E94 @ =gOamBuffer
ldr r1, _08049EA0 @ =0xFFFFFE00
mov r8, r1
_08049DBC:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
adds r3, r3, r5
movs r2, #2
ldrsh r1, [r7, r2]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08049E9C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08049DBC
ldr r6, _08049EA8 @ =gUnknown_0200B528
mov r3, sl
asrs r0, r3, #0x10
adds r0, #0x44
strh r0, [r6, #2]
movs r0, #0x6c
ldr r5, [sp, #8]
asrs r1, r5, #0x10
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r1, _08049EAC @ =gUnknown_020314E0
mov ip, r1
ldr r5, _08049E94 @ =gOamBuffer
ldr r2, _08049EA0 @ =0xFFFFFE00
mov r8, r2
_08049E20:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r7, r6, r0
ldrh r3, [r7]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r7, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08049E9C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r7]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #2
ble _08049E20
mov r3, ip
ldr r1, [r3]
ldr r5, _08049EB0 @ =0x0000131C
adds r1, r1, r5
ldr r0, [r1]
adds r0, #1
str r0, [r1]
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08049E84: .4byte 0x040000D4
_08049E88: .4byte gUnknown_08510CAC
_08049E8C: .4byte 0x06010480
_08049E90: .4byte 0x80000010
_08049E94: .4byte gOamBuffer
_08049E98: .4byte gUnknown_08137D78
_08049E9C: .4byte 0x000001FF
_08049EA0: .4byte 0xFFFFFE00
_08049EA4: .4byte gUnknown_0200B470
_08049EA8: .4byte gUnknown_0200B528
_08049EAC: .4byte gUnknown_020314E0
_08049EB0: .4byte 0x0000131C
thumb_func_start PinballGameMain
PinballGameMain: @ 0x08049EB4
push {lr}
ldr r1, _08049ECC @ =gUnknown_08137E04
ldr r0, _08049ED0 @ =gMain
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.align 2, 0
_08049ECC: .4byte gUnknown_08137E04
_08049ED0: .4byte gMain
thumb_func_start sub_49ED4
sub_49ED4: @ 0x08049ED4
push {r4, r5, r6, r7, lr}
ldr r0, _08049F18 @ =gMain
ldr r1, [r0, #0x4c]
movs r0, #0xf
movs r5, #0
ands r1, r0
cmp r5, r1
bge _08049EFA
adds r4, r1, #0
_08049EE6:
bl Random
lsls r0, r5, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r4
blt _08049EE6
_08049EFA:
bl sub_10C0
ldr r1, _08049F1C @ =gUnknown_020314E0
ldr r0, _08049F20 @ =gUnknown_02000000
str r0, [r1]
bl ResetSomeGraphicsRelatedStuff
ldr r1, _08049F18 @ =gMain
movs r0, #0
strb r0, [r1, #0xe]
ldrb r0, [r1, #0xd]
cmp r0, #0
beq _08049F24
movs r1, #0
b _08049F36
.align 2, 0
_08049F18: .4byte gMain
_08049F1C: .4byte gUnknown_020314E0
_08049F20: .4byte gUnknown_02000000
_08049F24:
ldrb r0, [r1, #5]
ldrb r2, [r1, #4]
movs r1, #1
cmp r0, r2
beq _08049F36
movs r1, #3
cmp r2, #1
bhi _08049F36
movs r1, #2
_08049F36:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
adds r7, r0, #0
cmp r1, #1
bne _08049F42
b _0804A064
_08049F42:
cmp r1, #1
bgt _08049F4C
cmp r1, #0
beq _08049F5A
b _0804A19C
_08049F4C:
cmp r1, #2
bne _08049F52
b _0804A104
_08049F52:
cmp r1, #3
bne _08049F58
b _0804A158
_08049F58:
b _0804A19C
_08049F5A:
bl sub_4A270
bl sub_4A518
bl sub_467F4
ldr r2, _08049FE4 @ =0x040000D4
ldr r0, _08049FE8 @ =gUnknown_02031520
ldr r0, [r0, #0x2c]
str r0, [r2]
ldr r0, _08049FEC @ =0x05000200
str r0, [r2, #4]
ldr r0, _08049FF0 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _08049FF4 @ =gMain
ldrb r0, [r0, #9]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08049FA4
ldr r0, _08049FF8 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _08049FFC @ =0x000005F6
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _0804A000 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804A004 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0804A008 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_08049FA4:
bl sub_4A90C
movs r5, #0
ldr r6, _0804A00C @ =gUnknown_020028D8
_08049FAC:
lsls r4, r5, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, r0, r6
ldr r0, [r0]
bl _call_via_r0
adds r4, #1
lsls r4, r4, #0x10
lsrs r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #8
ble _08049FAC
bl m4aMPlayAllStop
bl sub_47110
bl sub_4A518
ldr r0, _08049FF4 @ =gMain
ldrb r0, [r0, #2]
cmp r0, #3
bne _0804A010
movs r0, #2
bl sub_4B678
b _0804A016
.align 2, 0
_08049FE4: .4byte 0x040000D4
_08049FE8: .4byte gUnknown_02031520
_08049FEC: .4byte 0x05000200
_08049FF0: .4byte 0x80000100
_08049FF4: .4byte gMain
_08049FF8: .4byte gUnknown_020314E0
_08049FFC: .4byte 0x000005F6
_0804A000: .4byte gUnknown_08137E14
_0804A004: .4byte 0x05000220
_0804A008: .4byte 0x80000010
_0804A00C: .4byte gUnknown_020028D8
_0804A010:
movs r0, #1
bl sub_4B678
_0804A016:
bl sub_4A270
bl sub_4A90C
ldr r1, _0804A03C @ =gUnknown_086B085C
ldr r4, _0804A040 @ =gMain
ldrb r0, [r4, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
ldrb r0, [r4, #4]
cmp r0, #1
bhi _0804A044
bl sub_1D4D0
b _0804A19C
.align 2, 0
_0804A03C: .4byte gUnknown_086B085C
_0804A040: .4byte gMain
_0804A044:
cmp r0, #2
bne _0804A04E
bl sub_356A0
b _0804A19C
_0804A04E:
cmp r0, #4
bne _0804A058
bl sub_3ADA0
b _0804A19C
_0804A058:
cmp r0, #5
beq _0804A05E
b _0804A19C
_0804A05E:
bl sub_3E5D0
b _0804A19C
_0804A064:
bl sub_4A270
bl sub_4A518
bl sub_467F4
ldr r2, _0804A0D8 @ =0x040000D4
ldr r0, _0804A0DC @ =gUnknown_02031520
ldr r0, [r0, #0x2c]
str r0, [r2]
ldr r0, _0804A0E0 @ =0x05000200
str r0, [r2, #4]
ldr r0, _0804A0E4 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _0804A0E8 @ =gMain
ldrb r0, [r0, #9]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804A0AE
ldr r0, _0804A0EC @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0804A0F0 @ =0x000005F6
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _0804A0F4 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804A0F8 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0804A0FC @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804A0AE:
bl sub_4A90C
movs r5, #0
ldr r6, _0804A100 @ =gUnknown_020028D8
_0804A0B6:
lsls r4, r5, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, r0, r6
ldr r0, [r0]
bl _call_via_r0
adds r4, #1
lsls r4, r4, #0x10
lsrs r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #8
ble _0804A0B6
bl sub_47110
b _0804A19C
.align 2, 0
_0804A0D8: .4byte 0x040000D4
_0804A0DC: .4byte gUnknown_02031520
_0804A0E0: .4byte 0x05000200
_0804A0E4: .4byte 0x80000100
_0804A0E8: .4byte gMain
_0804A0EC: .4byte gUnknown_020314E0
_0804A0F0: .4byte 0x000005F6
_0804A0F4: .4byte gUnknown_08137E14
_0804A0F8: .4byte 0x05000220
_0804A0FC: .4byte 0x80000010
_0804A100: .4byte gUnknown_020028D8
_0804A104:
bl sub_4A270
bl sub_4A6A0
movs r0, #0
bl sub_4B678
bl sub_4A90C
ldr r1, _0804A148 @ =gUnknown_086B085C
ldr r4, _0804A14C @ =gMain
ldrb r0, [r4, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
ldrb r0, [r4, #4]
cmp r0, #0
bne _0804A132
movs r0, #1
bl sub_46FD4
_0804A132:
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, _0804A150 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0804A154 @ =0x000006C4
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
b _0804A19C
.align 2, 0
_0804A148: .4byte gUnknown_086B085C
_0804A14C: .4byte gMain
_0804A150: .4byte gUnknown_020314E0
_0804A154: .4byte 0x000006C4
_0804A158:
bl sub_4A270
bl sub_4A518
bl sub_467F4
ldr r1, _0804A22C @ =0x040000D4
ldr r0, _0804A230 @ =gUnknown_02031520
ldr r0, [r0, #0x2c]
str r0, [r1]
ldr r0, _0804A234 @ =0x05000200
str r0, [r1, #4]
ldr r0, _0804A238 @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
bl sub_4A90C
movs r5, #0
ldr r6, _0804A23C @ =gUnknown_020028D8
_0804A17E:
lsls r4, r5, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, r0, r6
ldr r0, [r0]
bl _call_via_r0
adds r4, #1
lsls r4, r4, #0x10
lsrs r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #8
ble _0804A17E
bl sub_47110
_0804A19C:
ldr r1, _0804A230 @ =gUnknown_02031520
movs r0, #0
strh r0, [r1, #8]
movs r2, #0
ldr r3, _0804A240 @ =gMain+0x74
_0804A1A6:
lsls r0, r2, #0x10
asrs r2, r0, #0x10
adds r0, r2, r3
ldrb r0, [r0]
cmp r0, #3
bls _0804A1B8
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
_0804A1B8:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xcc
ble _0804A1A6
bl sub_CBC
bl sub_24C
ldr r4, _0804A244 @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0x88
lsls r1, r1, #5
adds r0, r0, r1
movs r3, #0
strb r3, [r0]
ldr r1, _0804A248 @ =gMain
adds r2, r1, #0
adds r2, #0x36
movs r0, #1
strb r0, [r2]
asrs r0, r7, #0x10
cmp r0, #2
bgt _0804A25E
cmp r0, #1
bge _0804A254
cmp r0, #0
bne _0804A25E
ldrb r0, [r1, #2]
cmp r0, #3
beq _0804A212
ldr r0, [r4]
ldr r1, _0804A24C @ =0x00000F4C
adds r0, r0, r1
ldr r1, [r0]
cmp r1, #0
beq _0804A212
ldr r2, _0804A250 @ =gMPlayInfo_BGM
ldr r0, [r2, #4]
cmp r0, #0
bge _0804A212
adds r0, r2, #0
bl MPlayStart
_0804A212:
ldr r0, _0804A248 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bhi _0804A25E
ldr r0, _0804A244 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x6f
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_31BE8
b _0804A25E
.align 2, 0
_0804A22C: .4byte 0x040000D4
_0804A230: .4byte gUnknown_02031520
_0804A234: .4byte 0x05000200
_0804A238: .4byte 0x80000100
_0804A23C: .4byte gUnknown_020028D8
_0804A240: .4byte gMain+0x74
_0804A244: .4byte gUnknown_020314E0
_0804A248: .4byte gMain
_0804A24C: .4byte 0x00000F4C
_0804A250: .4byte gMPlayInfo_BGM
_0804A254:
ldrh r0, [r1, #0x38]
movs r0, #0xce
strh r0, [r1, #0x38]
ldrh r0, [r1, #0x3c]
strh r3, [r1, #0x3c]
_0804A25E:
ldr r1, _0804A26C @ =gMain
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804A26C: .4byte gMain
thumb_func_start sub_4A270
sub_4A270: @ 0x0804A270
push {r4, lr}
movs r0, #0x80
lsls r0, r0, #0x13
movs r2, #0x86
lsls r2, r2, #5
adds r1, r2, #0
strh r1, [r0]
ldr r0, _0804A294 @ =gMain
ldrb r1, [r0, #4]
adds r3, r0, #0
cmp r1, #7
bls _0804A28A
b _0804A4E8
_0804A28A:
lsls r0, r1, #2
ldr r1, _0804A298 @ =_0804A29C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804A294: .4byte gMain
_0804A298: .4byte _0804A29C
_0804A29C: @ jump table
.4byte _0804A2BC @ case 0
.4byte _0804A308 @ case 1
.4byte _0804A354 @ case 2
.4byte _0804A39C @ case 3
.4byte _0804A3E8 @ case 4
.4byte _0804A418 @ case 5
.4byte _0804A448 @ case 6
.4byte _0804A494 @ case 7
_0804A2BC:
ldr r1, _0804A2F0 @ =0x0400000E
ldr r4, _0804A2F4 @ =0x0000804B
adds r0, r4, #0
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A2F8 @ =0x0400000C
ldr r4, _0804A2FC @ =0x00008246
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A300 @ =0x0400000A
ldr r4, _0804A304 @ =0x00008649
b _0804A4C4
.align 2, 0
_0804A2F0: .4byte 0x0400000E
_0804A2F4: .4byte 0x0000804B
_0804A2F8: .4byte 0x0400000C
_0804A2FC: .4byte 0x00008246
_0804A300: .4byte 0x0400000A
_0804A304: .4byte 0x00008649
_0804A308:
ldr r1, _0804A33C @ =0x0400000E
ldr r2, _0804A340 @ =0x0000804B
adds r0, r2, #0
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A344 @ =0x0400000C
ldr r4, _0804A348 @ =0x00008246
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A34C @ =0x0400000A
ldr r4, _0804A350 @ =0x00008649
b _0804A4C4
.align 2, 0
_0804A33C: .4byte 0x0400000E
_0804A340: .4byte 0x0000804B
_0804A344: .4byte 0x0400000C
_0804A348: .4byte 0x00008246
_0804A34C: .4byte 0x0400000A
_0804A350: .4byte 0x00008649
_0804A354:
ldr r1, _0804A390 @ =0x0400000E
movs r0, #0xb
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A394 @ =0x0400000C
movs r4, #0x85
lsls r4, r4, #1
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A398 @ =0x0400000A
movs r4, #0x82
lsls r4, r4, #2
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
subs r4, #8
b _0804A4CE
.align 2, 0
_0804A390: .4byte 0x0400000E
_0804A394: .4byte 0x0400000C
_0804A398: .4byte 0x0400000A
_0804A39C:
ldr r1, _0804A3D8 @ =0x0400000E
movs r0, #0xb
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A3DC @ =0x0400000C
movs r4, #0x85
lsls r4, r4, #1
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A3E0 @ =0x0400000A
ldr r4, _0804A3E4 @ =0x00000209
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
subs r4, #9
b _0804A4CE
.align 2, 0
_0804A3D8: .4byte 0x0400000E
_0804A3DC: .4byte 0x0400000C
_0804A3E0: .4byte 0x0400000A
_0804A3E4: .4byte 0x00000209
_0804A3E8:
ldr r1, _0804A410 @ =0x0400000E
movs r0, #0xb
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A414 @ =0x0400000C
movs r4, #0x85
lsls r4, r4, #1
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
b _0804A4CE
.align 2, 0
_0804A410: .4byte 0x0400000E
_0804A414: .4byte 0x0400000C
_0804A418:
ldr r1, _0804A440 @ =0x0400000E
movs r0, #0xb
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A444 @ =0x0400000C
movs r4, #0x85
lsls r4, r4, #1
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
b _0804A4CE
.align 2, 0
_0804A440: .4byte 0x0400000E
_0804A444: .4byte 0x0400000C
_0804A448:
ldr r1, _0804A47C @ =0x0400000E
ldr r2, _0804A480 @ =0x0000800B
adds r0, r2, #0
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A484 @ =0x0400000C
ldr r4, _0804A488 @ =0x0000820A
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A48C @ =0x0400000A
ldr r4, _0804A490 @ =0x00008609
b _0804A4C4
.align 2, 0
_0804A47C: .4byte 0x0400000E
_0804A480: .4byte 0x0000800B
_0804A484: .4byte 0x0400000C
_0804A488: .4byte 0x0000820A
_0804A48C: .4byte 0x0400000A
_0804A490: .4byte 0x00008609
_0804A494:
ldr r1, _0804A4FC @ =0x0400000E
movs r0, #0xb
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A500 @ =0x0400000C
movs r4, #0x85
lsls r4, r4, #1
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #3
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A504 @ =0x0400000A
ldr r4, _0804A508 @ =0x00008208
_0804A4C4:
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #2
_0804A4CE:
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0804A50C @ =0x04000008
ldr r4, _0804A510 @ =0x00008404
adds r0, r4, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #1
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
_0804A4E8:
movs r0, #0x80
lsls r0, r0, #0x13
ldrh r0, [r0]
movs r1, #0
strh r0, [r3, #0x16]
ldr r0, _0804A514 @ =0x0400004C
strh r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804A4FC: .4byte 0x0400000E
_0804A500: .4byte 0x0400000C
_0804A504: .4byte 0x0400000A
_0804A508: .4byte 0x00008208
_0804A50C: .4byte 0x04000008
_0804A510: .4byte 0x00008404
_0804A514: .4byte 0x0400004C
thumb_func_start sub_4A518
sub_4A518: @ 0x0804A518
push {r4, r5, r6, r7, lr}
sub sp, #4
ldr r0, _0804A60C @ =gMain
movs r3, #0
strb r3, [r0, #0xf]
strb r3, [r0, #0x10]
str r3, [r0, #0x50]
strb r3, [r0, #0x11]
movs r7, #0
strh r3, [r0, #0x12]
strh r3, [r0, #0x14]
movs r1, #0x90
strh r1, [r0, #0x26]
strh r3, [r0, #0x28]
strh r3, [r0, #0x2a]
adds r1, r0, #0
adds r1, #0x36
strb r7, [r1]
ldrh r1, [r0, #0x38]
strh r3, [r0, #0x38]
ldrh r1, [r0, #0x3a]
strh r3, [r0, #0x3a]
ldrh r1, [r0, #0x3c]
strh r3, [r0, #0x3c]
ldrb r1, [r0, #5]
adds r6, r0, #0
ldr r5, _0804A610 @ =gUnknown_020314E0
ldrb r0, [r6, #4]
cmp r1, r0
beq _0804A556
b _0804A652
_0804A556:
mov r0, sp
strh r3, [r0]
ldr r4, _0804A614 @ =0x040000D4
str r0, [r4]
ldr r0, [r5]
str r0, [r4, #4]
ldr r0, _0804A618 @ =0x81000A08
str r0, [r4, #8]
ldr r0, [r4, #8]
movs r2, #9
ldrsb r2, [r6, r2]
cmp r2, #0
beq _0804A62C
ldr r2, [r5]
movs r1, #0xe3
lsls r1, r1, #1
adds r0, r2, r1
movs r1, #0xa8
strh r1, [r0]
movs r7, #0xe4
lsls r7, r7, #1
adds r0, r2, r7
strh r1, [r0]
movs r1, #0xe6
lsls r1, r1, #1
adds r0, r2, r1
movs r1, #0xd
strh r1, [r0]
adds r7, #2
adds r0, r2, r7
strh r1, [r0]
movs r1, #0xe8
lsls r1, r1, #1
adds r0, r2, r1
strh r3, [r0]
adds r7, #0xa
adds r0, r2, r7
strh r3, [r0]
movs r0, #0xeb
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0x78
strh r0, [r1]
adds r7, #8
adds r1, r2, r7
movs r0, #0x3c
strh r0, [r1]
ldr r0, _0804A61C @ =gUnknown_084C0C6C
str r0, [r4]
ldr r0, _0804A620 @ =0x06010600
str r0, [r4, #4]
ldr r0, _0804A624 @ =0x800000C0
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, [r5]
movs r2, #0xf1
lsls r2, r2, #1
adds r1, r0, r2
movs r0, #2
strb r0, [r1]
ldr r0, [r6, #0x44]
adds r0, #0xa4
ldr r0, [r0]
strh r3, [r0]
ldr r1, [r5]
movs r3, #0xe0
lsls r3, r3, #1
adds r2, r1, r3
movs r0, #1
strh r0, [r2]
ldr r4, _0804A628 @ =0x000005F6
adds r1, r1, r4
movs r0, #3
strb r0, [r1]
ldr r1, [r5]
movs r7, #0xbf
lsls r7, r7, #3
adds r2, r1, r7
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r2]
adds r1, #0x30
movs r0, #9
strb r0, [r1]
ldr r0, [r5]
movs r2, #0xc9
lsls r2, r2, #1
adds r1, r0, r2
movs r0, #0x63
b _0804A650
.align 2, 0
_0804A60C: .4byte gMain
_0804A610: .4byte gUnknown_020314E0
_0804A614: .4byte 0x040000D4
_0804A618: .4byte 0x81000A08
_0804A61C: .4byte gUnknown_084C0C6C
_0804A620: .4byte 0x06010600
_0804A624: .4byte 0x800000C0
_0804A628: .4byte 0x000005F6
_0804A62C:
ldr r1, [r5]
movs r3, #0xea
lsls r3, r3, #1
adds r0, r1, r3
strh r2, [r0]
movs r4, #0xeb
lsls r4, r4, #1
adds r2, r1, r4
ldr r0, _0804A690 @ =0x0000FFFC
strh r0, [r2]
adds r1, #0x30
movs r0, #2
strb r0, [r1]
ldr r0, [r5]
movs r7, #0xc9
lsls r7, r7, #1
adds r1, r0, r7
movs r0, #0xa
_0804A650:
strb r0, [r1]
_0804A652:
ldrb r0, [r6, #2]
cmp r0, #3
beq _0804A666
ldr r0, [r5]
movs r2, #0xa1
lsls r2, r2, #1
adds r1, r6, r2
ldrb r1, [r1]
adds r0, #0x31
strb r1, [r0]
_0804A666:
ldr r1, [r5]
ldr r0, _0804A694 @ =0x00009C40
str r0, [r1, #0x38]
movs r3, #0
strb r3, [r1, #0x1d]
ldr r0, [r5]
ldr r4, _0804A698 @ =0x0000132C
adds r1, r0, r4
ldr r7, _0804A69C @ =0x00001334
adds r2, r0, r7
str r2, [r1]
adds r4, #4
adds r1, r0, r4
str r2, [r1]
adds r0, #0x66
strh r3, [r0]
add sp, #4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804A690: .4byte 0x0000FFFC
_0804A694: .4byte 0x00009C40
_0804A698: .4byte 0x0000132C
_0804A69C: .4byte 0x00001334
thumb_func_start sub_4A6A0
sub_4A6A0: @ 0x0804A6A0
push {r4, r5, r6, r7, lr}
ldr r1, _0804A6C0 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r3, _0804A6C4 @ =0x00000282
adds r0, r2, r3
movs r5, #0
ldrsb r5, [r0, r5]
adds r6, r1, #0
cmp r5, #1
beq _0804A760
cmp r5, #1
bgt _0804A6C8
cmp r5, #0
beq _0804A6D0
b _0804A83C
.align 2, 0
_0804A6C0: .4byte gUnknown_020314E0
_0804A6C4: .4byte 0x00000282
_0804A6C8:
cmp r5, #2
bne _0804A6CE
b _0804A7D0
_0804A6CE:
b _0804A83C
_0804A6D0:
ldr r4, _0804A738 @ =0x0000132C
adds r1, r2, r4
ldr r2, [r1]
movs r3, #0
movs r0, #0x77
strh r0, [r2, #0x10]
ldr r2, [r1]
adds r0, #0xa0
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r5, [r0, #0x30]
ldr r0, [r1]
strh r5, [r0, #0x32]
ldr r0, [r1]
strh r5, [r0, #6]
ldr r2, [r1]
movs r5, #0x10
ldrsh r0, [r2, r5]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r2, [r1]
movs r0, #0x80
strh r0, [r2, #0xe]
ldr r0, [r1]
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
strb r1, [r0, #0x1f]
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r6]
movs r1, #0x78
strh r1, [r0, #0x28]
adds r0, #0x25
movs r1, #4
strb r1, [r0]
ldr r0, _0804A73C @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _0804A740
bl sub_1A9E8
b _0804A744
.align 2, 0
_0804A738: .4byte 0x0000132C
_0804A73C: .4byte gMain
_0804A740:
bl sub_32968
_0804A744:
ldr r3, _0804A75C @ =gUnknown_020314E0
ldr r1, [r3]
adds r2, r1, #0
adds r2, #0x4c
movs r0, #0
strh r0, [r2]
adds r1, #0x4e
movs r0, #0xd7
strh r0, [r1]
adds r6, r3, #0
b _0804A83C
.align 2, 0
_0804A75C: .4byte gUnknown_020314E0
_0804A760:
ldr r3, _0804A7C8 @ =0x0000132C
adds r1, r2, r3
ldr r2, [r1]
movs r4, #0
movs r3, #0
movs r0, #0x8c
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0xb7
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
ldr r0, [r1]
strh r3, [r0, #6]
ldr r2, [r1]
movs r7, #0x10
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r2, [r1]
movs r0, #0x80
strh r0, [r2, #0xe]
ldr r0, [r1]
strb r5, [r0]
ldr r0, [r6]
strb r5, [r0, #0x1f]
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
ldr r2, _0804A7CC @ =0x000002A2
adds r0, r0, r2
movs r1, #5
strb r1, [r0]
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x4c
strh r3, [r1]
adds r0, #0x4e
movs r1, #0x76
strh r1, [r0]
b _0804A83C
.align 2, 0
_0804A7C8: .4byte 0x0000132C
_0804A7CC: .4byte 0x000002A2
_0804A7D0:
ldr r3, _0804A8E4 @ =0x0000132C
adds r1, r2, r3
ldr r2, [r1]
movs r4, #0
movs r3, #0
ldr r0, _0804A8E8 @ =0x0000FFE4
strh r0, [r2, #0x10]
ldr r2, [r1]
adds r0, #0x12
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
ldr r0, [r1]
strh r3, [r0, #6]
ldr r2, [r1]
movs r5, #0x10
ldrsh r0, [r2, r5]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r2, [r1]
movs r0, #0x80
strh r0, [r2, #0xe]
ldr r0, [r1]
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
strb r1, [r0, #0x1f]
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
movs r2, #0xc3
lsls r2, r2, #2
adds r1, r0, r2
strh r3, [r1]
ldr r4, _0804A8EC @ =0x00000306
adds r0, r0, r4
movs r1, #7
strb r1, [r0]
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x4c
strh r3, [r1]
adds r0, #0x4e
strh r3, [r0]
_0804A83C:
ldr r1, [r6]
ldr r3, _0804A8F0 @ =0x000005FC
adds r0, r1, r3
movs r4, #0
movs r2, #0
strh r2, [r0]
ldr r5, _0804A8F4 @ =0x000005FE
adds r0, r1, r5
strh r2, [r0]
ldr r7, _0804A8F8 @ =0x000005FB
adds r1, r1, r7
strb r4, [r1]
ldr r2, [r6]
adds r5, r2, #0
adds r5, #0x4e
movs r1, #0
ldrsh r0, [r5, r1]
lsls r0, r0, #8
str r0, [r2, #0x54]
adds r4, r2, #0
adds r4, #0x4c
ldrh r1, [r4]
adds r0, r2, #0
adds r0, #0x58
strh r1, [r0]
adds r3, r2, r3
ldrh r0, [r3]
ldrh r5, [r5]
adds r0, r0, r5
adds r1, r2, #0
adds r1, #0x5a
strh r0, [r1]
ldr r2, _0804A8FC @ =gMain
ldrh r1, [r4]
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r2, r3
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4e
ldrh r1, [r0]
ldr r4, _0804A900 @ =0x000002F2
adds r0, r2, r4
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4c
ldrh r1, [r0]
movs r5, #0xbd
lsls r5, r5, #2
adds r0, r2, r5
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4e
ldrh r3, [r0]
ldr r7, _0804A904 @ =0x000002F6
adds r4, r2, r7
strh r3, [r4]
ldr r0, [r6]
adds r0, #0x4c
ldrh r1, [r0]
subs r5, #8
adds r0, r2, r5
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4e
ldrh r1, [r0]
subs r7, #8
adds r0, r2, r7
strh r1, [r0]
ldr r0, _0804A908 @ =0x000002EA
adds r2, r2, r0
movs r0, #0x50
strh r0, [r2]
ldr r1, [r6]
adds r0, r1, #0
adds r0, #0xcc
strh r3, [r0]
ldrh r0, [r4]
lsrs r0, r0, #3
adds r1, #0x64
strh r0, [r1]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804A8E4: .4byte 0x0000132C
_0804A8E8: .4byte 0x0000FFE4
_0804A8EC: .4byte 0x00000306
_0804A8F0: .4byte 0x000005FC
_0804A8F4: .4byte 0x000005FE
_0804A8F8: .4byte 0x000005FB
_0804A8FC: .4byte gMain
_0804A900: .4byte 0x000002F2
_0804A904: .4byte 0x000002F6
_0804A908: .4byte 0x000002EA
thumb_func_start sub_4A90C
sub_4A90C: @ 0x0804A90C
push {r4, lr}
ldr r2, _0804A944 @ =gUnknown_020028D8
ldr r3, _0804A948 @ =gUnknown_086B077C
ldr r0, [r3]
ldr r1, [r3, #4]
str r0, [r2, #8]
str r1, [r2, #0xc]
adds r0, r3, #0
adds r0, #0x90
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x40]
str r1, [r2, #0x44]
ldr r0, [r3, #0x78]
ldr r1, [r3, #0x7c]
str r0, [r2, #0x30]
str r1, [r2, #0x34]
ldr r0, _0804A94C @ =gMain
ldrb r1, [r0, #4]
adds r4, r0, #0
cmp r1, #7
bls _0804A93A
b _0804AACC
_0804A93A:
lsls r0, r1, #2
ldr r1, _0804A950 @ =_0804A954
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804A944: .4byte gUnknown_020028D8
_0804A948: .4byte gUnknown_086B077C
_0804A94C: .4byte gMain
_0804A950: .4byte _0804A954
_0804A954: @ jump table
.4byte _0804A974 @ case 0
.4byte _0804A9BC @ case 1
.4byte _0804AA04 @ case 2
.4byte _0804AA1E @ case 3
.4byte _0804AA38 @ case 4
.4byte _0804AA52 @ case 5
.4byte _0804AA6C @ case 6
.4byte _0804AA86 @ case 7
_0804A974:
ldr r0, [r3, #0x18]
ldr r1, [r3, #0x1c]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x80
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0x98
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, #4]
ldr r0, [r3, #0x58]
ldr r1, [r3, #0x5c]
str r0, [r2, #0x20]
str r1, [r2, #0x24]
ldr r0, [r3, #8]
ldr r1, [r3, #0xc]
str r0, [r2, #0x10]
str r1, [r2, #0x14]
ldr r0, [r3, #0x68]
ldr r1, [r3, #0x6c]
str r0, [r2, #0x28]
str r1, [r2, #0x2c]
ldrb r1, [r4, #4]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #4
ldr r1, _0804A9B8 @ =gUnknown_086B02CC
b _0804AAC8
.align 2, 0
_0804A9B8: .4byte gUnknown_086B02CC
_0804A9BC:
ldr r0, [r3, #0x20]
ldr r1, [r3, #0x24]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x80
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0xa0
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, #4]
ldr r0, [r3, #0x58]
ldr r1, [r3, #0x5c]
str r0, [r2, #0x20]
str r1, [r2, #0x24]
ldr r0, [r3, #8]
ldr r1, [r3, #0xc]
str r0, [r2, #0x10]
str r1, [r2, #0x14]
ldr r0, [r3, #0x68]
ldr r1, [r3, #0x6c]
str r0, [r2, #0x28]
str r1, [r2, #0x2c]
ldrb r1, [r4, #4]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #4
ldr r1, _0804AA00 @ =gUnknown_086B02CC
b _0804AAC8
.align 2, 0
_0804AA00: .4byte gUnknown_086B02CC
_0804AA04:
ldr r0, [r3, #0x28]
ldr r1, [r3, #0x2c]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x88
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0xa8
b _0804AA9E
_0804AA1E:
ldr r0, [r3, #0x30]
ldr r1, [r3, #0x34]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x88
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0xb0
b _0804AA9E
_0804AA38:
ldr r0, [r3, #0x38]
ldr r1, [r3, #0x3c]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x88
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0xb8
b _0804AA9E
_0804AA52:
ldr r0, [r3, #0x40]
ldr r1, [r3, #0x44]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x88
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0xc0
b _0804AA9E
_0804AA6C:
ldr r0, [r3, #0x48]
ldr r1, [r3, #0x4c]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x88
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0xc8
b _0804AA9E
_0804AA86:
ldr r0, [r3, #0x50]
ldr r1, [r3, #0x54]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
adds r0, r3, #0
adds r0, #0x88
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x38]
str r1, [r2, #0x3c]
adds r0, r3, #0
adds r0, #0xd0
_0804AA9E:
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, #4]
ldr r0, [r3, #0x60]
ldr r1, [r3, #0x64]
str r0, [r2, #0x20]
str r1, [r2, #0x24]
ldr r0, [r3, #0x10]
ldr r1, [r3, #0x14]
str r0, [r2, #0x10]
str r1, [r2, #0x14]
ldr r0, [r3, #0x70]
ldr r1, [r3, #0x74]
str r0, [r2, #0x28]
str r1, [r2, #0x2c]
ldrb r1, [r4, #4]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #3
ldr r1, _0804AAD4 @ =gUnknown_086B03BC
_0804AAC8:
adds r0, r0, r1
str r0, [r4, #0x44]
_0804AACC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804AAD4: .4byte gUnknown_086B03BC
thumb_func_start sub_4AAD8
sub_4AAD8: @ 0x0804AAD8
push {r4, r5, lr}
ldr r0, _0804AAF0 @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r4, [r1, #0x1d]
cmp r4, #1
beq _0804AB08
cmp r4, #1
bgt _0804AAF4
cmp r4, #0
beq _0804AAFA
b _0804ABB8
.align 2, 0
_0804AAF0: .4byte gUnknown_020314E0
_0804AAF4:
cmp r4, #2
beq _0804ABB0
b _0804ABB8
_0804AAFA:
movs r0, #1
strb r0, [r1, #0x1d]
ldr r0, _0804AB04 @ =gMain
strb r4, [r0, #0xe]
b _0804ABB8
.align 2, 0
_0804AB04: .4byte gMain
_0804AB08:
ldr r1, _0804AB3C @ =gUnknown_086B085C
ldr r5, _0804AB40 @ =gMain
ldrb r0, [r5, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
ldrh r1, [r5, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #0xf
bne _0804AB24
strb r4, [r5, #0xe]
_0804AB24:
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _0804ABB8
ldrb r0, [r5, #4]
cmp r0, #1
bhi _0804AB44
bl sub_1D4D0
movs r0, #0
bl sub_31BE8
b _0804AB60
.align 2, 0
_0804AB3C: .4byte gUnknown_086B085C
_0804AB40: .4byte gMain
_0804AB44:
cmp r0, #2
bne _0804AB4E
bl sub_356A0
b _0804AB60
_0804AB4E:
cmp r0, #4
bne _0804AB58
bl sub_3ADA0
b _0804AB60
_0804AB58:
cmp r0, #5
bne _0804AB60
bl sub_3E5D0
_0804AB60:
ldr r4, _0804AB98 @ =gMain
ldrb r1, [r4, #0xf]
movs r3, #2
adds r0, r3, #0
ands r0, r1
ldr r2, _0804AB9C @ =gUnknown_020314E0
cmp r0, #0
beq _0804AB84
ldr r1, _0804ABA0 @ =0x040000D4
ldr r0, [r2]
ldr r5, _0804ABA4 @ =0x0000111A
adds r0, r0, r5
str r0, [r1]
ldr r0, _0804ABA8 @ =0x05000200
str r0, [r1, #4]
ldr r0, _0804ABAC @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804AB84:
ldr r0, [r2]
strb r3, [r0, #0x1d]
ldrb r0, [r4, #0xe]
cmp r0, #2
bne _0804ABB8
movs r0, #1
bl sub_4B408
b _0804ABB8
.align 2, 0
_0804AB98: .4byte gMain
_0804AB9C: .4byte gUnknown_020314E0
_0804ABA0: .4byte 0x040000D4
_0804ABA4: .4byte 0x0000111A
_0804ABA8: .4byte 0x05000200
_0804ABAC: .4byte 0x80000100
_0804ABB0:
ldr r1, _0804ABC4 @ =gMain
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
_0804ABB8:
bl sub_11FC
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804ABC4: .4byte gMain
thumb_func_start sub_4ABC8
sub_4ABC8: @ 0x0804ABC8
push {lr}
bl sub_111C
bl sub_1170
cmp r0, #0
beq _0804ABE2
bl sub_1198
ldr r1, _0804ABE8 @ =gMain
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
_0804ABE2:
pop {r0}
bx r0
.align 2, 0
_0804ABE8: .4byte gMain
thumb_func_start sub_4ABEC
sub_4ABEC: @ 0x0804ABEC
push {r4, r5, lr}
bl sub_4B280
ldr r5, _0804AC50 @ =gUnknown_020028D8
ldr r0, [r5, #0xc]
bl _call_via_r0
ldr r4, _0804AC54 @ =gMain
ldrh r1, [r4, #0xe]
ldr r0, _0804AC58 @ =0x000002FF
ands r0, r1
cmp r0, #0
bne _0804ACDE
ldr r0, [r5, #0x14]
bl _call_via_r0
ldr r0, [r5, #4]
bl _call_via_r0
ldr r0, [r5, #0x1c]
bl _call_via_r0
ldr r0, [r5, #0x24]
bl _call_via_r0
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0804AC60
ldr r0, _0804AC5C @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x1f]
cmp r0, #0
bne _0804ACD0
movs r4, #0
_0804AC30:
ldr r0, _0804AC5C @ =gUnknown_020314E0
ldr r0, [r0]
strb r4, [r0, #0x1e]
ldr r0, _0804AC50 @ =gUnknown_020028D8
ldr r0, [r0, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804AC30
b _0804ACD0
.align 2, 0
_0804AC50: .4byte gUnknown_020028D8
_0804AC54: .4byte gMain
_0804AC58: .4byte 0x000002FF
_0804AC5C: .4byte gUnknown_020314E0
_0804AC60:
ldr r0, [r4, #0x50]
adds r0, #1
str r0, [r4, #0x50]
ldr r0, _0804ACA4 @ =gUnknown_020314E0
ldr r2, [r0]
movs r0, #0xa4
lsls r0, r0, #2
adds r1, r2, r0
ldr r0, [r1]
adds r0, #1
str r0, [r1]
ldrb r0, [r2, #0x1f]
cmp r0, #0
beq _0804ACAC
cmp r0, #2
beq _0804ACD0
movs r4, #0
_0804AC82:
ldr r0, _0804ACA4 @ =gUnknown_020314E0
ldr r0, [r0]
strb r4, [r0, #0x1e]
ldr r0, _0804ACA8 @ =gUnknown_020028D8
ldr r0, [r0, #0x2c]
bl _call_via_r0
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804AC82
b _0804ACD0
.align 2, 0
_0804ACA4: .4byte gUnknown_020314E0
_0804ACA8: .4byte gUnknown_020028D8
_0804ACAC:
movs r4, #0
_0804ACAE:
ldr r0, _0804ACE8 @ =gUnknown_020314E0
ldr r0, [r0]
strb r4, [r0, #0x1e]
ldr r0, [r5, #0x2c]
bl _call_via_r0
ldr r0, [r5, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804ACAE
_0804ACD0:
ldr r4, _0804ACEC @ =gUnknown_020028D8
ldr r0, [r4, #0x3c]
bl _call_via_r0
ldr r0, [r4, #0x44]
bl _call_via_r0
_0804ACDE:
bl sub_47030
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804ACE8: .4byte gUnknown_020314E0
_0804ACEC: .4byte gUnknown_020028D8
thumb_func_start sub_4ACF0
sub_4ACF0: @ 0x0804ACF0
push {r4, r5, r6, r7, lr}
bl sub_4B334
ldr r5, _0804AD54 @ =gUnknown_020028D8
ldr r0, [r5, #0xc]
bl _call_via_r0
ldr r4, _0804AD58 @ =gMain
ldrb r1, [r4, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _0804ADDE
ldr r0, [r5, #0x14]
bl _call_via_r0
ldr r0, [r5, #4]
bl _call_via_r0
ldr r0, [r5, #0x1c]
bl _call_via_r0
ldr r0, [r5, #0x24]
bl _call_via_r0
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0804AD60
ldr r0, _0804AD5C @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x1f]
cmp r0, #0
bne _0804ADD0
movs r4, #0
_0804AD34:
ldr r0, _0804AD5C @ =gUnknown_020314E0
ldr r0, [r0]
strb r4, [r0, #0x1e]
ldr r0, _0804AD54 @ =gUnknown_020028D8
ldr r0, [r0, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804AD34
b _0804ADD0
.align 2, 0
_0804AD54: .4byte gUnknown_020028D8
_0804AD58: .4byte gMain
_0804AD5C: .4byte gUnknown_020314E0
_0804AD60:
ldr r0, [r4, #0x50]
adds r0, #1
str r0, [r4, #0x50]
ldr r0, _0804ADA4 @ =gUnknown_020314E0
ldr r2, [r0]
movs r0, #0xa4
lsls r0, r0, #2
adds r1, r2, r0
ldr r0, [r1]
adds r0, #1
str r0, [r1]
ldrb r0, [r2, #0x1f]
cmp r0, #0
beq _0804ADAC
cmp r0, #2
beq _0804ADD0
movs r4, #0
_0804AD82:
ldr r0, _0804ADA4 @ =gUnknown_020314E0
ldr r0, [r0]
strb r4, [r0, #0x1e]
ldr r0, _0804ADA8 @ =gUnknown_020028D8
ldr r0, [r0, #0x2c]
bl _call_via_r0
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804AD82
b _0804ADD0
.align 2, 0
_0804ADA4: .4byte gUnknown_020314E0
_0804ADA8: .4byte gUnknown_020028D8
_0804ADAC:
movs r4, #0
_0804ADAE:
ldr r0, _0804AE1C @ =gUnknown_020314E0
ldr r0, [r0]
strb r4, [r0, #0x1e]
ldr r0, [r5, #0x2c]
bl _call_via_r0
ldr r0, [r5, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804ADAE
_0804ADD0:
ldr r4, _0804AE20 @ =gUnknown_020028D8
ldr r0, [r4, #0x3c]
bl _call_via_r0
ldr r0, [r4, #0x44]
bl _call_via_r0
_0804ADDE:
bl sub_47030
ldr r0, _0804AE24 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #4
cmp r0, #0
beq _0804AE38
movs r4, #0
ldr r7, _0804AE28 @ =gUnknown_03006280
ldr r0, _0804AE2C @ =0xFFFFF980
adds r6, r7, r0
ldr r5, _0804AE30 @ =0x0000034A
ldr r1, _0804AE34 @ =0xFFFFC156
adds r3, r1, #0
_0804ADFE:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
adds r1, r0, r5
lsls r1, r1, #1
adds r1, r1, r6
adds r2, r0, r3
strh r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _0804ADFE
b _0804AE5C
.align 2, 0
_0804AE1C: .4byte gUnknown_020314E0
_0804AE20: .4byte gUnknown_020028D8
_0804AE24: .4byte gMain
_0804AE28: .4byte gUnknown_03006280
_0804AE2C: .4byte 0xFFFFF980
_0804AE30: .4byte 0x0000034A
_0804AE34: .4byte 0xFFFFC156
_0804AE38:
movs r4, #0
ldr r7, _0804AE70 @ =gUnknown_03006280
ldr r0, _0804AE74 @ =0xFFFFF980
adds r5, r7, r0
ldr r3, _0804AE78 @ =0x0000034A
ldr r2, _0804AE7C @ =0x000001FF
_0804AE44:
lsls r1, r4, #0x10
asrs r1, r1, #0x10
adds r0, r1, r3
lsls r0, r0, #1
adds r0, r0, r5
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #9
ble _0804AE44
_0804AE5C:
ldr r1, _0804AE80 @ =0x040000D4
str r7, [r1]
ldr r0, _0804AE84 @ =0x06002680
str r0, [r1, #4]
ldr r0, _0804AE88 @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804AE70: .4byte gUnknown_03006280
_0804AE74: .4byte 0xFFFFF980
_0804AE78: .4byte 0x0000034A
_0804AE7C: .4byte 0x000001FF
_0804AE80: .4byte 0x040000D4
_0804AE84: .4byte 0x06002680
_0804AE88: .4byte 0x80000020
thumb_func_start sub_4AE8C
sub_4AE8C: @ 0x0804AE8C
push {r4, r5, r6, lr}
bl sub_4B280
ldr r6, _0804AF0C @ =gUnknown_020028D8
ldr r0, [r6, #0xc]
bl _call_via_r0
ldr r5, _0804AF10 @ =gMain
ldrb r1, [r5, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0804AEA8
b _0804AFEA
_0804AEA8:
ldr r0, [r6, #4]
bl _call_via_r0
ldr r0, [r6, #0x14]
bl _call_via_r0
ldr r0, [r6, #0x1c]
bl _call_via_r0
ldr r0, [r6, #0x24]
bl _call_via_r0
ldrb r4, [r5, #0xf]
movs r0, #0x41
rsbs r0, r0, #0
ands r4, r0
cmp r4, #0
beq _0804AF20
ldr r0, _0804AF14 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x1f]
cmp r0, #0
beq _0804AED8
b _0804AFDC
_0804AED8:
movs r4, #0
_0804AEDA:
ldr r0, _0804AF14 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x66
movs r0, #0
strh r0, [r2]
ldr r0, _0804AF18 @ =0x0000132C
adds r2, r1, r0
ldr r3, _0804AF1C @ =0x00001334
adds r0, r1, r3
str r0, [r2]
strb r4, [r1, #0x1e]
ldr r0, _0804AF0C @ =gUnknown_020028D8
ldr r0, [r0, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r4, #0x80
lsls r4, r4, #9
adds r0, r0, r4
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804AEDA
b _0804AFDC
.align 2, 0
_0804AF0C: .4byte gUnknown_020028D8
_0804AF10: .4byte gMain
_0804AF14: .4byte gUnknown_020314E0
_0804AF18: .4byte 0x0000132C
_0804AF1C: .4byte 0x00001334
_0804AF20:
ldr r0, [r5, #0x50]
adds r0, #1
str r0, [r5, #0x50]
ldr r0, _0804AF58 @ =gUnknown_020314E0
ldr r3, [r0]
movs r0, #0xa4
lsls r0, r0, #2
adds r1, r3, r0
ldr r0, [r1]
adds r0, #1
str r0, [r1]
ldrb r0, [r3, #0x1f]
cmp r0, #0
beq _0804AFA4
cmp r0, #2
bne _0804AF60
adds r0, r3, #0
adds r0, #0x66
movs r2, #0
strh r4, [r0]
ldr r4, _0804AF5C @ =0x0000132C
adds r1, r3, r4
adds r4, #8
adds r0, r3, r4
str r0, [r1]
strb r2, [r3, #0x1e]
b _0804AFDC
.align 2, 0
_0804AF58: .4byte gUnknown_020314E0
_0804AF5C: .4byte 0x0000132C
_0804AF60:
movs r4, #0
_0804AF62:
ldr r0, _0804AF94 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x66
movs r0, #0
strh r0, [r2]
ldr r0, _0804AF98 @ =0x0000132C
adds r2, r1, r0
ldr r3, _0804AF9C @ =0x00001334
adds r0, r1, r3
str r0, [r2]
strb r4, [r1, #0x1e]
ldr r0, _0804AFA0 @ =gUnknown_020028D8
ldr r0, [r0, #0x2c]
bl _call_via_r0
lsls r0, r4, #0x10
movs r4, #0x80
lsls r4, r4, #9
adds r0, r0, r4
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804AF62
b _0804AFDC
.align 2, 0
_0804AF94: .4byte gUnknown_020314E0
_0804AF98: .4byte 0x0000132C
_0804AF9C: .4byte 0x00001334
_0804AFA0: .4byte gUnknown_020028D8
_0804AFA4:
movs r4, #0
adds r5, r6, #0
_0804AFA8:
ldr r0, _0804AFF0 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x66
movs r0, #0
strh r0, [r2]
ldr r0, _0804AFF4 @ =0x0000132C
adds r2, r1, r0
ldr r3, _0804AFF8 @ =0x00001334
adds r0, r1, r3
str r0, [r2]
strb r4, [r1, #0x1e]
ldr r0, [r5, #0x2c]
bl _call_via_r0
ldr r0, [r5, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r4, #0x80
lsls r4, r4, #9
adds r0, r0, r4
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804AFA8
_0804AFDC:
ldr r4, _0804AFFC @ =gUnknown_020028D8
ldr r0, [r4, #0x3c]
bl _call_via_r0
ldr r0, [r4, #0x44]
bl _call_via_r0
_0804AFEA:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804AFF0: .4byte gUnknown_020314E0
_0804AFF4: .4byte 0x0000132C
_0804AFF8: .4byte 0x00001334
_0804AFFC: .4byte gUnknown_020028D8
thumb_func_start sub_4B000
sub_4B000: @ 0x0804B000
push {r4, r5, r6, r7, lr}
bl sub_4B334
ldr r5, _0804B07C @ =gMain
ldrb r1, [r5, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0804B014
b _0804B15A
_0804B014:
ldr r6, _0804B080 @ =gUnknown_020028D8
ldr r0, [r6, #4]
bl _call_via_r0
ldr r0, [r6, #0x14]
bl _call_via_r0
ldr r0, [r6, #0x1c]
bl _call_via_r0
ldr r0, [r6, #0x24]
bl _call_via_r0
ldrb r4, [r5, #0xf]
movs r0, #0x41
rsbs r0, r0, #0
ands r4, r0
cmp r4, #0
beq _0804B090
ldr r0, _0804B084 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x1f]
cmp r0, #0
beq _0804B046
b _0804B14C
_0804B046:
movs r4, #0
_0804B048:
ldr r0, _0804B084 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x66
movs r0, #0
strh r0, [r2]
ldr r0, _0804B088 @ =0x0000132C
adds r2, r1, r0
ldr r3, _0804B08C @ =0x00001334
adds r0, r1, r3
str r0, [r2]
strb r4, [r1, #0x1e]
ldr r0, _0804B080 @ =gUnknown_020028D8
ldr r0, [r0, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r4, #0x80
lsls r4, r4, #9
adds r0, r0, r4
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804B048
b _0804B14C
.align 2, 0
_0804B07C: .4byte gMain
_0804B080: .4byte gUnknown_020028D8
_0804B084: .4byte gUnknown_020314E0
_0804B088: .4byte 0x0000132C
_0804B08C: .4byte 0x00001334
_0804B090:
ldr r0, [r5, #0x50]
adds r0, #1
str r0, [r5, #0x50]
ldr r0, _0804B0C8 @ =gUnknown_020314E0
ldr r3, [r0]
movs r0, #0xa4
lsls r0, r0, #2
adds r1, r3, r0
ldr r0, [r1]
adds r0, #1
str r0, [r1]
ldrb r0, [r3, #0x1f]
cmp r0, #0
beq _0804B114
cmp r0, #2
bne _0804B0D0
adds r0, r3, #0
adds r0, #0x66
movs r2, #0
strh r4, [r0]
ldr r4, _0804B0CC @ =0x0000132C
adds r1, r3, r4
adds r4, #8
adds r0, r3, r4
str r0, [r1]
strb r2, [r3, #0x1e]
b _0804B14C
.align 2, 0
_0804B0C8: .4byte gUnknown_020314E0
_0804B0CC: .4byte 0x0000132C
_0804B0D0:
movs r4, #0
_0804B0D2:
ldr r0, _0804B104 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x66
movs r0, #0
strh r0, [r2]
ldr r0, _0804B108 @ =0x0000132C
adds r2, r1, r0
ldr r3, _0804B10C @ =0x00001334
adds r0, r1, r3
str r0, [r2]
strb r4, [r1, #0x1e]
ldr r0, _0804B110 @ =gUnknown_020028D8
ldr r0, [r0, #0x2c]
bl _call_via_r0
lsls r0, r4, #0x10
movs r4, #0x80
lsls r4, r4, #9
adds r0, r0, r4
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804B0D2
b _0804B14C
.align 2, 0
_0804B104: .4byte gUnknown_020314E0
_0804B108: .4byte 0x0000132C
_0804B10C: .4byte 0x00001334
_0804B110: .4byte gUnknown_020028D8
_0804B114:
movs r4, #0
adds r5, r6, #0
_0804B118:
ldr r0, _0804B194 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x66
movs r0, #0
strh r0, [r2]
ldr r0, _0804B198 @ =0x0000132C
adds r2, r1, r0
ldr r3, _0804B19C @ =0x00001334
adds r0, r1, r3
str r0, [r2]
strb r4, [r1, #0x1e]
ldr r0, [r5, #0x2c]
bl _call_via_r0
ldr r0, [r5, #0x34]
bl _call_via_r0
lsls r0, r4, #0x10
movs r4, #0x80
lsls r4, r4, #9
adds r0, r0, r4
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804B118
_0804B14C:
ldr r4, _0804B1A0 @ =gUnknown_020028D8
ldr r0, [r4, #0x3c]
bl _call_via_r0
ldr r0, [r4, #0x44]
bl _call_via_r0
_0804B15A:
ldr r0, _0804B1A4 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #4
cmp r0, #0
beq _0804B1B8
movs r4, #0
ldr r7, _0804B1A8 @ =gUnknown_03006240
ldr r0, _0804B1AC @ =0xFFFFF9C0
adds r6, r7, r0
ldr r5, _0804B1B0 @ =0x0000032B
ldr r1, _0804B1B4 @ =0xFFFFC156
adds r3, r1, #0
_0804B176:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
adds r1, r0, r5
lsls r1, r1, #1
adds r1, r1, r6
adds r2, r0, r3
strh r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0804B176
b _0804B1DC
.align 2, 0
_0804B194: .4byte gUnknown_020314E0
_0804B198: .4byte 0x0000132C
_0804B19C: .4byte 0x00001334
_0804B1A0: .4byte gUnknown_020028D8
_0804B1A4: .4byte gMain
_0804B1A8: .4byte gUnknown_03006240
_0804B1AC: .4byte 0xFFFFF9C0
_0804B1B0: .4byte 0x0000032B
_0804B1B4: .4byte 0xFFFFC156
_0804B1B8:
movs r4, #0
ldr r7, _0804B1F0 @ =gUnknown_03006240
ldr r3, _0804B1F4 @ =0xFFFFF9C0
adds r5, r7, r3
ldr r3, _0804B1F8 @ =0x0000032B
ldr r2, _0804B1FC @ =0x000001FF
_0804B1C4:
lsls r1, r4, #0x10
asrs r1, r1, #0x10
adds r0, r1, r3
lsls r0, r0, #1
adds r0, r0, r5
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #8
ble _0804B1C4
_0804B1DC:
ldr r1, _0804B200 @ =0x040000D4
str r7, [r1]
ldr r0, _0804B204 @ =0x06002640
str r0, [r1, #4]
ldr r0, _0804B208 @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804B1F0: .4byte gUnknown_03006240
_0804B1F4: .4byte 0xFFFFF9C0
_0804B1F8: .4byte 0x0000032B
_0804B1FC: .4byte 0x000001FF
_0804B200: .4byte 0x040000D4
_0804B204: .4byte 0x06002640
_0804B208: .4byte 0x80000020
thumb_func_start sub_4B20C
sub_4B20C: @ 0x0804B20C
push {r4, lr}
ldr r4, _0804B250 @ =gMain
adds r1, r4, #0
adds r1, #0x36
movs r0, #0
strb r0, [r1]
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
ldr r0, _0804B254 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, [r1, #0x44]
str r0, [r4, #0x58]
ldr r0, [r1, #0x48]
str r0, [r4, #0x5c]
ldrb r0, [r4, #0xe]
cmp r0, #2
bne _0804B23A
bl sub_4B654
_0804B23A:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0804B262
ldrb r0, [r4, #4]
cmp r0, #1
bls _0804B258
movs r0, #0xb
bl SetMainGameState
b _0804B276
.align 2, 0
_0804B250: .4byte gMain
_0804B254: .4byte gUnknown_020314E0
_0804B258:
ldr r0, [r4, #8]
ldr r1, _0804B26C @ =0x00FFFF00
ands r0, r1
cmp r0, #0
beq _0804B270
_0804B262:
movs r0, #0
bl SetMainGameState
b _0804B276
.align 2, 0
_0804B26C: .4byte 0x00FFFF00
_0804B270:
movs r0, #8
bl SetMainGameState
_0804B276:
pop {r4}
pop {r0}
bx r0
thumb_func_start nullsub_19
nullsub_19: @ 0x0804B27C
bx lr
thumb_func_start sub_4B280
sub_4B280: @ 0x0804B280
push {r4, r5, lr}
movs r3, #0
ldr r4, _0804B2F8 @ =gUnknown_020314E0
ldr r0, _0804B2FC @ =gMain
mov ip, r0
adds r2, r4, #0
movs r1, #0
_0804B28E:
ldr r0, [r2]
adds r0, #4
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r0, #9
adds r0, r0, r3
strb r1, [r0]
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #4
bls _0804B28E
mov r1, ip
ldrb r0, [r1, #0xf]
cmp r0, #0
bne _0804B32E
movs r3, #0
movs r5, #1
_0804B2B4:
lsls r2, r3, #2
mov r1, ip
adds r1, #0x60
adds r1, r2, r1
mov r0, ip
adds r0, #0x62
adds r2, r2, r0
ldrh r1, [r1]
ldrh r0, [r2]
orrs r1, r0
ldr r2, _0804B300 @ =0x000003FF
adds r0, r2, #0
ands r1, r0
mov r2, ip
ldrh r0, [r2, #0x1c]
ands r0, r1
cmp r1, r0
bne _0804B304
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0xe
adds r0, r0, r3
ldrb r0, [r0]
cmp r0, #0
bne _0804B2EC
adds r0, r1, #4
adds r0, r0, r3
strb r5, [r0]
_0804B2EC:
ldr r0, [r4]
adds r0, #0xe
adds r0, r0, r3
strb r5, [r0]
b _0804B324
.align 2, 0
_0804B2F8: .4byte gUnknown_020314E0
_0804B2FC: .4byte gMain
_0804B300: .4byte 0x000003FF
_0804B304:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0xe
adds r0, r0, r3
ldrb r0, [r0]
cmp r0, #0
beq _0804B31A
adds r0, r1, #0
adds r0, #9
adds r0, r0, r3
strb r5, [r0]
_0804B31A:
ldr r0, [r4]
adds r0, #0xe
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
_0804B324:
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #4
bls _0804B2B4
_0804B32E:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_4B334
sub_4B334: @ 0x0804B334
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r3, #0
ldr r0, _0804B3F4 @ =gUnknown_020314E0
mov r8, r0
ldr r1, _0804B3F8 @ =gMain
mov sb, r1
mov r2, r8
movs r1, #0
_0804B34A:
ldr r0, [r2]
adds r0, #4
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r0, #9
adds r0, r0, r3
strb r1, [r0]
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #4
bls _0804B34A
mov r1, sb
ldrb r0, [r1, #0xf]
cmp r0, #0
bne _0804B3E6
ldr r0, _0804B3FC @ =gUnknown_02031510
ldr r2, [r0]
ldr r1, _0804B400 @ =0x00000E0F
mov ip, r0
cmp r2, r1
bhi _0804B3D6
movs r3, #0
ldr r7, _0804B3F4 @ =gUnknown_020314E0
ldr r6, _0804B404 @ =gUnknown_02031520
mov r5, ip
movs r4, #1
_0804B382:
ldr r2, [r7]
adds r2, #4
adds r2, r2, r3
ldr r0, [r5]
ldr r1, [r6, #0x10]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0]
asrs r0, r3
ands r0, r4
strb r0, [r2]
ldr r2, [r7]
adds r2, #9
adds r2, r2, r3
ldr r0, [r5]
ldr r1, [r6, #0x10]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #1]
asrs r0, r3
ands r0, r4
strb r0, [r2]
ldr r2, [r7]
adds r2, #0xe
adds r2, r2, r3
ldr r0, [r5]
ldr r1, [r6, #0x10]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #2]
asrs r0, r3
ands r0, r4
strb r0, [r2]
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #4
bls _0804B382
mov r1, ip
ldr r0, [r1]
adds r0, #1
str r0, [r1]
_0804B3D6:
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, #5]
cmp r0, #0
beq _0804B3E6
movs r0, #1
mov r1, sb
strh r0, [r1, #0x18]
_0804B3E6:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804B3F4: .4byte gUnknown_020314E0
_0804B3F8: .4byte gMain
_0804B3FC: .4byte gUnknown_02031510
_0804B400: .4byte 0x00000E0F
_0804B404: .4byte gUnknown_02031520
thumb_func_start sub_4B408
sub_4B408: @ 0x0804B408
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r2, _0804B430 @ =gMPlayInfo_BGM
ldr r0, [r2, #4]
cmp r0, #0
blt _0804B43C
ldr r0, _0804B434 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0804B438 @ =0x00000F4C
adds r0, r0, r1
ldr r1, [r2]
str r1, [r0]
adds r0, r2, #0
bl m4aMPlayStop
b _0804B448
.align 2, 0
_0804B430: .4byte gMPlayInfo_BGM
_0804B434: .4byte gUnknown_020314E0
_0804B438: .4byte 0x00000F4C
_0804B43C:
ldr r0, _0804B5EC @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _0804B5F0 @ =0x00000F4C
adds r0, r0, r2
movs r1, #0
str r1, [r0]
_0804B448:
movs r3, #0
ldr r6, _0804B5EC @ =gUnknown_020314E0
ldr r0, _0804B5F4 @ =gMain
mov ip, r0
lsls r4, r4, #0x10
mov r8, r4
mov r5, ip
adds r7, r6, #0
_0804B458:
ldr r4, [r7]
lsls r1, r3, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #1
ldrb r3, [r5, #6]
movs r0, #0xc8
muls r0, r3, r0
adds r2, r2, r0
ldr r3, _0804B5F8 @ =0x00000F68
adds r4, r4, r3
adds r4, r4, r2
movs r0, #0xb8
muls r0, r1, r0
adds r0, r0, r5
movs r2, #0xbe
lsls r2, r2, #2
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r4]
adds r1, #1
lsls r1, r1, #0x10
lsrs r3, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x63
ble _0804B458
ldr r2, _0804B5FC @ =0x040000D4
ldr r0, _0804B600 @ =0x05000200
str r0, [r2]
mov r3, ip
ldrb r1, [r3, #6]
lsls r1, r1, #9
ldr r0, _0804B604 @ =0x0000074C
adds r1, r1, r0
ldr r0, [r6]
adds r0, r0, r1
str r0, [r2, #4]
ldr r3, _0804B608 @ =0x80000100
str r3, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r2]
mov r0, ip
ldrb r1, [r0, #6]
lsls r1, r1, #9
ldr r0, _0804B60C @ =0x00000B4C
adds r1, r1, r0
ldr r0, [r6]
adds r0, r0, r1
str r0, [r2, #4]
str r3, [r2, #8]
ldr r0, [r2, #8]
mov r1, r8
cmp r1, #0
bne _0804B4C8
b _0804B5E0
_0804B4C8:
ldr r1, [r6]
ldr r3, _0804B610 @ =0x00000F58
adds r2, r1, r3
movs r0, #0xba
lsls r0, r0, #2
add r0, ip
ldr r0, [r0]
str r0, [r2]
ldr r0, _0804B614 @ =0x00000F5C
adds r2, r1, r0
movs r0, #0xbb
lsls r0, r0, #2
add r0, ip
ldr r0, [r0]
str r0, [r2]
adds r3, #8
adds r2, r1, r3
movs r0, #0xbc
lsls r0, r0, #2
add r0, ip
ldr r0, [r0]
str r0, [r2]
ldr r0, _0804B618 @ =0x00000F64
adds r2, r1, r0
movs r0, #0xbd
lsls r0, r0, #2
add r0, ip
ldr r0, [r0]
str r0, [r2]
mov r2, ip
ldrb r0, [r2, #4]
ldr r3, _0804B61C @ =0x000010FD
adds r1, r1, r3
strb r0, [r1]
ldr r0, [r6]
ldrb r1, [r2, #5]
ldr r2, _0804B620 @ =0x000010FE
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r6]
mov r3, ip
ldrb r1, [r3, #6]
adds r2, #1
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r6]
ldrb r1, [r3, #0xf]
ldr r3, _0804B624 @ =0x00001101
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r6]
mov r2, ip
ldrb r1, [r2, #0x10]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r6]
ldrb r1, [r2, #0x11]
ldr r2, _0804B628 @ =0x00001103
adds r0, r0, r2
strb r1, [r0]
ldr r1, [r6]
mov r3, ip
ldrh r2, [r3, #0x12]
movs r3, #0x99
lsls r3, r3, #5
adds r0, r1, r3
strh r2, [r0]
mov r0, ip
ldrh r2, [r0, #0x14]
adds r3, #2
adds r0, r1, r3
strh r2, [r0]
mov r0, ip
ldrh r2, [r0, #0x28]
adds r3, #2
adds r0, r1, r3
strh r2, [r0]
mov r0, ip
ldrh r2, [r0, #0x2a]
adds r3, #2
adds r0, r1, r3
strh r2, [r0]
ldr r2, _0804B62C @ =0x00001106
adds r0, r1, r2
ldrh r2, [r0]
ldr r3, _0804B630 @ =0x00001110
adds r0, r1, r3
ldrh r3, [r0]
strh r2, [r0]
ldr r2, _0804B634 @ =0x00001108
adds r0, r1, r2
ldrh r2, [r0]
ldr r3, _0804B638 @ =0x00001112
adds r0, r1, r3
ldrh r3, [r0]
strh r2, [r0]
ldr r2, _0804B63C @ =0x0000110A
adds r0, r1, r2
ldrh r2, [r0]
ldr r3, _0804B640 @ =0x00001114
adds r0, r1, r3
ldrh r3, [r0]
strh r2, [r0]
ldr r2, _0804B644 @ =0x0000110C
adds r0, r1, r2
ldrh r2, [r0]
ldr r3, _0804B648 @ =0x00001116
adds r0, r1, r3
strh r2, [r0]
ldr r2, _0804B64C @ =0x0000110E
adds r0, r1, r2
ldrh r2, [r0]
adds r3, #2
adds r0, r1, r3
strh r2, [r0]
movs r0, #0xa1
lsls r0, r0, #1
add r0, ip
ldrb r0, [r0]
adds r1, #0x31
strb r0, [r1]
movs r3, #0
ldr r5, _0804B650 @ =0x000010F8
mov r4, ip
adds r4, #7
_0804B5C4:
ldr r2, [r6]
lsls r0, r3, #0x10
asrs r0, r0, #0x10
adds r2, r2, r5
adds r2, r2, r0
adds r1, r0, r4
ldrb r1, [r1]
strb r1, [r2]
adds r0, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
ble _0804B5C4
_0804B5E0:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804B5EC: .4byte gUnknown_020314E0
_0804B5F0: .4byte 0x00000F4C
_0804B5F4: .4byte gMain
_0804B5F8: .4byte 0x00000F68
_0804B5FC: .4byte 0x040000D4
_0804B600: .4byte 0x05000200
_0804B604: .4byte 0x0000074C
_0804B608: .4byte 0x80000100
_0804B60C: .4byte 0x00000B4C
_0804B610: .4byte 0x00000F58
_0804B614: .4byte 0x00000F5C
_0804B618: .4byte 0x00000F64
_0804B61C: .4byte 0x000010FD
_0804B620: .4byte 0x000010FE
_0804B624: .4byte 0x00001101
_0804B628: .4byte 0x00001103
_0804B62C: .4byte 0x00001106
_0804B630: .4byte 0x00001110
_0804B634: .4byte 0x00001108
_0804B638: .4byte 0x00001112
_0804B63C: .4byte 0x0000110A
_0804B640: .4byte 0x00001114
_0804B644: .4byte 0x0000110C
_0804B648: .4byte 0x00001116
_0804B64C: .4byte 0x0000110E
_0804B650: .4byte 0x000010F8
thumb_func_start sub_4B654
sub_4B654: @ 0x0804B654
push {lr}
ldr r0, _0804B66C @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #1
str r1, [r0]
ldr r1, _0804B670 @ =0x0E000544
ldr r2, _0804B674 @ =0x00001410
bl WriteAndVerifySramFast
pop {r0}
bx r0
.align 2, 0
_0804B66C: .4byte gUnknown_020314E0
_0804B670: .4byte 0x0E000544
_0804B674: .4byte 0x00001410
thumb_func_start sub_4B678
sub_4B678: @ 0x0804B678
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
cmp r0, #1
bne _0804B6B0
ldr r3, _0804B6A0 @ =ReadSramFast
ldr r0, _0804B6A4 @ =0x0E000544
ldr r1, _0804B6A8 @ =gUnknown_020314E0
ldr r1, [r1]
ldr r2, _0804B6AC @ =0x00001410
ldr r3, [r3]
bl _call_via_r3
b _0804B746
.align 2, 0
_0804B6A0: .4byte ReadSramFast
_0804B6A4: .4byte 0x0E000544
_0804B6A8: .4byte gUnknown_020314E0
_0804B6AC: .4byte 0x00001410
_0804B6B0:
mov r0, r8
cmp r0, #2
bne _0804B746
ldr r1, _0804B87C @ =0x040000D4
ldr r0, _0804B880 @ =gUnknown_02031520
ldr r0, [r0, #0xc]
str r0, [r1]
ldr r4, _0804B884 @ =gUnknown_020314E0
ldr r3, [r4]
str r3, [r1, #4]
ldr r0, _0804B888 @ =0x80000A08
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0804B88C @ =0x0000132C
adds r0, r3, r1
ldr r2, _0804B890 @ =0x00001334
adds r1, r3, r2
str r1, [r0]
ldr r5, _0804B894 @ =0x00001330
adds r0, r3, r5
str r1, [r0]
ldr r0, _0804B898 @ =gMain
ldrh r0, [r0, #0x30]
movs r1, #3
ands r0, r1
cmp r0, #1
bne _0804B746
ldr r1, _0804B89C @ =0x00000614
adds r0, r3, r1
movs r2, #0
movs r1, #0
strh r1, [r0]
movs r5, #0x82
lsls r5, r5, #2
adds r0, r3, r5
strh r1, [r0]
adds r5, #2
adds r0, r3, r5
strb r2, [r0]
ldr r3, [r4]
movs r2, #0xe3
lsls r2, r2, #1
adds r0, r3, r2
strh r1, [r0]
movs r4, #0xe4
lsls r4, r4, #1
adds r0, r3, r4
strh r1, [r0]
subs r5, #0x3e
adds r0, r3, r5
strh r1, [r0]
adds r2, #4
adds r0, r3, r2
strh r1, [r0]
adds r4, #0xc
adds r0, r3, r4
strh r1, [r0]
adds r5, #0xa
adds r2, r3, r5
ldr r0, _0804B8A0 @ =0x0000FFFC
strh r0, [r2]
movs r2, #0xec
lsls r2, r2, #1
adds r0, r3, r2
subs r2, #0xd8
strh r2, [r0]
adds r4, #6
adds r0, r3, r4
strh r2, [r0]
subs r5, #8
adds r0, r3, r5
strh r1, [r0]
adds r2, #0xd0
adds r0, r3, r2
strh r1, [r0]
_0804B746:
mov r3, r8
cmp r3, #0
bne _0804B74E
b _0804B8CC
_0804B74E:
ldr r4, _0804B898 @ =gMain
ldr r3, _0804B884 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r5, _0804B8A4 @ =0x000010FD
adds r0, r1, r5
ldrb r0, [r0]
strb r0, [r4, #4]
ldr r2, _0804B8A8 @ =0x000010FE
adds r0, r1, r2
ldrb r0, [r0]
strb r0, [r4, #5]
adds r5, #2
adds r0, r1, r5
ldrb r0, [r0]
strb r0, [r4, #6]
adds r2, #3
adds r0, r1, r2
ldrb r0, [r0]
strb r0, [r4, #0xf]
adds r5, #3
adds r0, r1, r5
ldrb r0, [r0]
strb r0, [r4, #0x10]
adds r2, #2
adds r0, r1, r2
ldrb r0, [r0]
strb r0, [r4, #0x11]
movs r5, #0x99
lsls r5, r5, #5
adds r0, r1, r5
ldrh r0, [r0]
strh r0, [r4, #0x12]
ldr r2, _0804B8AC @ =0x00001322
adds r0, r1, r2
ldrh r0, [r0]
strh r0, [r4, #0x14]
adds r5, #4
adds r0, r1, r5
ldrh r0, [r0]
strh r0, [r4, #0x28]
adds r2, #4
adds r0, r1, r2
ldrh r0, [r0]
strh r0, [r4, #0x2a]
ldr r5, _0804B8B0 @ =0x00001110
adds r0, r1, r5
ldrh r0, [r0]
ldrh r2, [r4, #0x38]
strh r0, [r4, #0x38]
ldr r2, _0804B8B4 @ =0x00001112
adds r0, r1, r2
ldrh r0, [r0]
ldrh r2, [r4, #0x3a]
strh r0, [r4, #0x3a]
adds r5, #4
adds r0, r1, r5
ldrh r0, [r0]
ldrh r2, [r4, #0x3c]
strh r0, [r4, #0x3c]
ldr r2, _0804B8B8 @ =0x00001116
adds r0, r1, r2
ldrh r0, [r0]
strh r0, [r4, #0x2c]
adds r5, #4
adds r0, r1, r5
ldrh r0, [r0]
strh r0, [r4, #0x26]
movs r0, #0xba
lsls r0, r0, #2
adds r2, r4, r0
ldr r5, _0804B8BC @ =0x00000F58
adds r0, r1, r5
ldr r0, [r0]
str r0, [r2]
movs r0, #0xbb
lsls r0, r0, #2
adds r2, r4, r0
adds r5, #4
adds r0, r1, r5
ldr r0, [r0]
str r0, [r2]
movs r0, #0xbc
lsls r0, r0, #2
adds r2, r4, r0
adds r5, #4
adds r0, r1, r5
ldr r0, [r0]
str r0, [r2]
movs r0, #0xbd
lsls r0, r0, #2
adds r2, r4, r0
adds r5, #4
adds r1, r1, r5
ldr r0, [r1]
str r0, [r2]
movs r5, #0
mov sl, r3
adds r7, r4, #0
adds r6, r7, #7
mov r4, sl
ldr r3, _0804B8C0 @ =0x000010F8
_0804B818:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r2, r1, r6
ldr r0, [r4]
adds r0, r0, r3
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #4
ble _0804B818
mov r1, sl
ldr r0, [r1]
movs r2, #0x88
lsls r2, r2, #5
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
mov r3, r8
cmp r3, #1
bne _0804B8DA
ldrb r0, [r7, #4]
cmp r0, #1
bhi _0804B8DA
mov r4, sl
ldr r3, [r4]
adds r2, r3, #0
adds r2, #0x4e
ldr r5, _0804B8C4 @ =0x00000121
adds r0, r3, r5
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r2, [r2]
adds r1, r1, r2
ldr r2, _0804B8C8 @ =0x000005FC
adds r0, r3, r2
ldrh r0, [r0]
adds r2, r3, #0
adds r2, #0xe6
adds r0, r0, r1
ldrh r2, [r2]
adds r0, r0, r2
adds r1, r3, #0
adds r1, #0x68
strh r0, [r1]
b _0804B8DA
.align 2, 0
_0804B87C: .4byte 0x040000D4
_0804B880: .4byte gUnknown_02031520
_0804B884: .4byte gUnknown_020314E0
_0804B888: .4byte 0x80000A08
_0804B88C: .4byte 0x0000132C
_0804B890: .4byte 0x00001334
_0804B894: .4byte 0x00001330
_0804B898: .4byte gMain
_0804B89C: .4byte 0x00000614
_0804B8A0: .4byte 0x0000FFFC
_0804B8A4: .4byte 0x000010FD
_0804B8A8: .4byte 0x000010FE
_0804B8AC: .4byte 0x00001322
_0804B8B0: .4byte 0x00001110
_0804B8B4: .4byte 0x00001112
_0804B8B8: .4byte 0x00001116
_0804B8BC: .4byte 0x00000F58
_0804B8C0: .4byte 0x000010F8
_0804B8C4: .4byte 0x00000121
_0804B8C8: .4byte 0x000005FC
_0804B8CC:
ldr r0, _0804B958 @ =gUnknown_020314E0
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0x6a
ldrh r1, [r1]
adds r0, #0x68
strh r1, [r0]
_0804B8DA:
ldr r5, _0804B958 @ =gUnknown_020314E0
ldr r0, [r5]
movs r1, #0
strb r1, [r0, #0x1d]
ldr r4, _0804B95C @ =gMain
strb r1, [r4, #0xd]
bl sub_467F4
ldrb r0, [r4, #4]
cmp r0, #0
bne _0804B902
ldr r0, [r5]
ldr r3, _0804B960 @ =0x0000029E
adds r0, r0, r3
ldrb r0, [r0]
cmp r0, #0
beq _0804B902
movs r0, #1
bl sub_46FD4
_0804B902:
ldr r0, _0804B95C @ =gMain
ldrb r1, [r0, #4]
ldr r4, _0804B958 @ =gUnknown_020314E0
mov sl, r4
adds r7, r0, #0
ldr r5, _0804B964 @ =gUnknown_03005C00
mov sb, r5
cmp r1, #1
bhi _0804B9A0
movs r5, #0
ldr r6, _0804B968 @ =0x040000D4
_0804B918:
mov r0, sl
ldr r2, [r0]
adds r2, #0x64
ldrh r1, [r2]
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r1, r0, r1
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
movs r3, #0
ldrsh r1, [r2, r3]
adds r1, #0xa
adds r0, r0, r1
movs r1, #0x16
bl __modsi3
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1f
bgt _0804B974
lsls r0, r0, #0xa
ldr r1, _0804B96C @ =gUnknown_0200FBB0
adds r0, r0, r1
str r0, [r6]
lsls r0, r2, #0x10
asrs r0, r0, #6
ldr r4, _0804B970 @ =0x06008000
adds r0, r0, r4
b _0804B988
.align 2, 0
_0804B958: .4byte gUnknown_020314E0
_0804B95C: .4byte gMain
_0804B960: .4byte 0x0000029E
_0804B964: .4byte gUnknown_03005C00
_0804B968: .4byte 0x040000D4
_0804B96C: .4byte gUnknown_0200FBB0
_0804B970: .4byte 0x06008000
_0804B974:
subs r0, #0x20
lsls r0, r0, #0x10
asrs r0, r0, #6
ldr r1, _0804BA38 @ =gUnknown_020030A0
adds r0, r0, r1
str r0, [r6]
lsls r0, r2, #0x10
asrs r0, r0, #6
ldr r1, _0804BA3C @ =0x06008000
adds r0, r0, r1
_0804B988:
str r0, [r6, #4]
ldr r0, _0804BA40 @ =0x80000200
str r0, [r6, #8]
ldr r0, [r6, #8]
lsls r0, r5, #0x10
movs r2, #0x80
lsls r2, r2, #9
adds r0, r0, r2
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x15
ble _0804B918
_0804B9A0:
movs r5, #0
ldr r4, _0804BA44 @ =gUnknown_03005C00
ldr r3, _0804BA48 @ =0x000001FF
ldr r2, _0804BA4C @ =0x000007FF
_0804B9A8:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r4
strh r3, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r2
ble _0804B9A8
ldr r1, _0804BA50 @ =0x040000D4
mov r3, sb
str r3, [r1]
ldr r0, _0804BA54 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0804BA58 @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r4, #0x2c
ldrsh r0, [r7, r4]
cmp r0, #0
beq _0804BABE
mov r5, sl
ldr r1, [r5]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #6
bne _0804BA5C
movs r2, #0
movs r3, #0xa6
lsls r3, r3, #2
adds r0, r1, r3
ldrh r0, [r0]
cmp r2, r0
bgt _0804BAAE
mov r6, sb
movs r4, #0xc1
lsls r4, r4, #8
_0804B9F6:
movs r5, #2
lsls r2, r2, #0x10
asrs r3, r2, #0x10
_0804B9FC:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
adds r0, #0xf
lsls r0, r0, #5
adds r0, r0, r3
lsls r0, r0, #1
adds r0, r0, r6
strh r4, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xb
ble _0804B9FC
movs r5, #0x80
lsls r5, r5, #9
adds r1, r2, r5
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
mov r3, sl
ldr r0, [r3]
movs r5, #0xa6
lsls r5, r5, #2
adds r0, r0, r5
ldrh r0, [r0]
cmp r1, r0
ble _0804B9F6
b _0804BAAE
.align 2, 0
_0804BA38: .4byte gUnknown_020030A0
_0804BA3C: .4byte 0x06008000
_0804BA40: .4byte 0x80000200
_0804BA44: .4byte gUnknown_03005C00
_0804BA48: .4byte 0x000001FF
_0804BA4C: .4byte 0x000007FF
_0804BA50: .4byte 0x040000D4
_0804BA54: .4byte 0x06002000
_0804BA58: .4byte 0x80000800
_0804BA5C:
movs r2, #0
movs r3, #0xa6
lsls r3, r3, #2
adds r0, r1, r3
ldrh r0, [r0]
cmp r2, r0
bgt _0804BAAE
mov r6, sb
movs r4, #0xc1
lsls r4, r4, #8
_0804BA70:
movs r5, #1
lsls r2, r2, #0x10
asrs r3, r2, #0x10
_0804BA76:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
adds r0, #0xf
lsls r0, r0, #5
adds r0, r0, r3
lsls r0, r0, #1
adds r0, r0, r6
strh r4, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa
ble _0804BA76
movs r5, #0x80
lsls r5, r5, #9
adds r1, r2, r5
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
mov r3, sl
ldr r0, [r3]
movs r5, #0xa6
lsls r5, r5, #2
adds r0, r0, r5
ldrh r0, [r0]
cmp r1, r0
ble _0804BA70
_0804BAAE:
ldr r1, _0804BB20 @ =0x040000D4
mov r0, sb
str r0, [r1]
ldr r0, _0804BB24 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0804BB28 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804BABE:
ldr r1, _0804BB20 @ =0x040000D4
ldr r2, _0804BB2C @ =gUnknown_020314E0
ldr r4, _0804BB30 @ =gMain
ldrb r0, [r4, #6]
lsls r0, r0, #9
ldr r3, _0804BB34 @ =0x0000074C
adds r0, r0, r3
ldr r2, [r2]
adds r0, r2, r0
str r0, [r1]
ldr r0, _0804BB38 @ =0x05000200
str r0, [r1, #4]
ldr r3, _0804BB3C @ =0x80000100
str r3, [r1, #8]
ldr r0, [r1, #8]
ldrb r0, [r4, #6]
lsls r0, r0, #9
ldr r5, _0804BB40 @ =0x00000B4C
adds r0, r0, r5
adds r0, r2, r0
str r0, [r1]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r1, #4]
str r3, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0804BB44 @ =0x000005F6
adds r2, r2, r0
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #5
ldr r2, _0804BB48 @ =gUnknown_08137E14
adds r0, r0, r2
str r0, [r1]
ldr r0, _0804BB4C @ =0x05000220
str r0, [r1, #4]
ldr r0, _0804BB50 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
bl sub_4BC34
ldrb r0, [r4, #4]
cmp r0, #7
bhi _0804BBC0
lsls r0, r0, #2
ldr r1, _0804BB54 @ =_0804BB58
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804BB20: .4byte 0x040000D4
_0804BB24: .4byte 0x06002000
_0804BB28: .4byte 0x80000400
_0804BB2C: .4byte gUnknown_020314E0
_0804BB30: .4byte gMain
_0804BB34: .4byte 0x0000074C
_0804BB38: .4byte 0x05000200
_0804BB3C: .4byte 0x80000100
_0804BB40: .4byte 0x00000B4C
_0804BB44: .4byte 0x000005F6
_0804BB48: .4byte gUnknown_08137E14
_0804BB4C: .4byte 0x05000220
_0804BB50: .4byte 0x80000010
_0804BB54: .4byte _0804BB58
_0804BB58: @ jump table
.4byte _0804BB78 @ case 0
.4byte _0804BB98 @ case 1
.4byte _0804BB9E @ case 2
.4byte _0804BBA4 @ case 3
.4byte _0804BBAA @ case 4
.4byte _0804BBB0 @ case 5
.4byte _0804BBB6 @ case 6
.4byte _0804BBBC @ case 7
_0804BB78:
bl sub_50848
ldr r0, _0804BB90 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r3, _0804BB94 @ =0x000001A5
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_4E9F0
b _0804BBC0
.align 2, 0
_0804BB90: .4byte gUnknown_020314E0
_0804BB94: .4byte 0x000001A5
_0804BB98:
bl sub_50AD4
b _0804BBC0
_0804BB9E:
bl sub_50D48
b _0804BBC0
_0804BBA4:
bl sub_50DE0
b _0804BBC0
_0804BBAA:
bl sub_50F04
b _0804BBC0
_0804BBB0:
bl sub_50FD4
b _0804BBC0
_0804BBB6:
bl sub_51090
b _0804BBC0
_0804BBBC:
bl sub_51150
_0804BBC0:
movs r5, #0
ldr r4, _0804BC24 @ =gUnknown_020314E0
mov sl, r4
ldr r7, _0804BC28 @ =gMain
movs r0, #0xb8
mov ip, r0
_0804BBCC:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
mov r4, ip
muls r4, r1, r4
adds r4, r4, r7
mov r2, sl
ldr r6, [r2]
lsls r2, r1, #1
ldrb r3, [r7, #6]
movs r0, #0xc8
muls r0, r3, r0
adds r2, r2, r0
ldr r3, _0804BC2C @ =0x00000F68
adds r0, r6, r3
adds r0, r0, r2
ldrh r0, [r0]
movs r5, #0xbe
lsls r5, r5, #2
adds r4, r4, r5
strh r0, [r4]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x63
ble _0804BBCC
mov r0, r8
cmp r0, #1
bne _0804BC14
movs r0, #0
str r0, [r6]
ldr r1, _0804BC30 @ =0x0E000544
adds r0, r6, #0
movs r2, #4
bl WriteAndVerifySramFast
_0804BC14:
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
_0804BC24: .4byte gUnknown_020314E0
_0804BC28: .4byte gMain
_0804BC2C: .4byte 0x00000F68
_0804BC30: .4byte 0x0E000544
thumb_func_start sub_4BC34
sub_4BC34: @ 0x0804BC34
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _0804BC50 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #7
bhi _0804BCC6
lsls r0, r0, #2
ldr r1, _0804BC54 @ =_0804BC58
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804BC50: .4byte gMain
_0804BC54: .4byte _0804BC58
_0804BC58: @ jump table
.4byte _0804BC78 @ case 0
.4byte _0804BC82 @ case 1
.4byte _0804BC8C @ case 2
.4byte _0804BC96 @ case 3
.4byte _0804BCA0 @ case 4
.4byte _0804BCAA @ case 5
.4byte _0804BCB4 @ case 6
.4byte _0804BCBE @ case 7
_0804BC78:
bl sub_4C290
bl sub_4C808
b _0804BCC6
_0804BC82:
bl sub_4C290
bl sub_4CA18
b _0804BCC6
_0804BC8C:
bl nullsub_18
bl sub_4CAE8
b _0804BCC6
_0804BC96:
bl nullsub_18
bl sub_4CB0C
b _0804BCC6
_0804BCA0:
bl nullsub_18
bl sub_4CB30
b _0804BCC6
_0804BCAA:
bl nullsub_18
bl sub_4CBB4
b _0804BCC6
_0804BCB4:
bl nullsub_18
bl sub_4CC58
b _0804BCC6
_0804BCBE:
bl nullsub_18
bl sub_4CD60
_0804BCC6:
ldr r0, _0804BCE4 @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0xe4
ldrb r1, [r1]
subs r1, #1
adds r3, r0, #0
cmp r1, #0x15
bls _0804BCD8
b _0804C274
_0804BCD8:
lsls r0, r1, #2
ldr r1, _0804BCE8 @ =_0804BCEC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804BCE4: .4byte gUnknown_020314E0
_0804BCE8: .4byte _0804BCEC
_0804BCEC: @ jump table
.4byte _0804BD44 @ case 0
.4byte _0804BDA4 @ case 1
.4byte _0804BDC4 @ case 2
.4byte _0804BDE4 @ case 3
.4byte _0804BE14 @ case 4
.4byte _0804BE34 @ case 5
.4byte _0804BE54 @ case 6
.4byte _0804BE74 @ case 7
.4byte _0804BE94 @ case 8
.4byte _0804BEB4 @ case 9
.4byte _0804BED4 @ case 10
.4byte _0804BEF4 @ case 11
.4byte _0804BFB0 @ case 12
.4byte _0804BF14 @ case 13
.4byte _0804C094 @ case 14
.4byte _0804C0C8 @ case 15
.4byte _0804C0E8 @ case 16
.4byte _0804C108 @ case 17
.4byte _0804C1A8 @ case 18
.4byte _0804C1C8 @ case 19
.4byte _0804C1E8 @ case 20
.4byte _0804C264 @ case 21
_0804BD44:
ldr r1, [r3]
movs r2, #0xf1
lsls r2, r2, #1
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _0804BD84
movs r3, #0xe1
lsls r3, r3, #1
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _0804BD84
ldr r1, _0804BD74 @ =0x040000D4
ldr r0, _0804BD78 @ =gUnknown_08395A4C
str r0, [r1]
ldr r0, _0804BD7C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BD80 @ =0x80001200
b _0804C270
.align 2, 0
_0804BD74: .4byte 0x040000D4
_0804BD78: .4byte gUnknown_08395A4C
_0804BD7C: .4byte 0x06015800
_0804BD80: .4byte 0x80001200
_0804BD84:
ldr r1, _0804BD94 @ =0x040000D4
ldr r0, _0804BD98 @ =gUnknown_08397E6C
str r0, [r1]
ldr r0, _0804BD9C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BDA0 @ =0x80001200
b _0804C270
.align 2, 0
_0804BD94: .4byte 0x040000D4
_0804BD98: .4byte gUnknown_08397E6C
_0804BD9C: .4byte 0x06015800
_0804BDA0: .4byte 0x80001200
_0804BDA4:
ldr r1, _0804BDB4 @ =0x040000D4
ldr r0, _0804BDB8 @ =gUnknown_083A704C
str r0, [r1]
ldr r0, _0804BDBC @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BDC0 @ =0x80000800
b _0804C270
.align 2, 0
_0804BDB4: .4byte 0x040000D4
_0804BDB8: .4byte gUnknown_083A704C
_0804BDBC: .4byte 0x06015800
_0804BDC0: .4byte 0x80000800
_0804BDC4:
ldr r1, _0804BDD4 @ =0x040000D4
ldr r0, _0804BDD8 @ =gUnknown_0848FD8C
str r0, [r1]
ldr r0, _0804BDDC @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BDE0 @ =0x80000650
b _0804C270
.align 2, 0
_0804BDD4: .4byte 0x040000D4
_0804BDD8: .4byte gUnknown_0848FD8C
_0804BDDC: .4byte 0x06015800
_0804BDE0: .4byte 0x80000650
_0804BDE4:
ldr r1, _0804BE04 @ =0x040000D4
ldr r2, _0804BE08 @ =gUnknown_086ACEF8
ldr r0, [r3]
adds r0, #0xf2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r2
ldr r0, [r0]
str r0, [r1]
ldr r0, _0804BE0C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BE10 @ =0x800012F0
b _0804C270
.align 2, 0
_0804BE04: .4byte 0x040000D4
_0804BE08: .4byte gUnknown_086ACEF8
_0804BE0C: .4byte 0x06015800
_0804BE10: .4byte 0x800012F0
_0804BE14:
ldr r1, _0804BE24 @ =0x040000D4
ldr r0, _0804BE28 @ =gUnknown_083A07CC
str r0, [r1]
ldr r0, _0804BE2C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BE30 @ =0x80001000
b _0804C270
.align 2, 0
_0804BE24: .4byte 0x040000D4
_0804BE28: .4byte gUnknown_083A07CC
_0804BE2C: .4byte 0x06015800
_0804BE30: .4byte 0x80001000
_0804BE34:
ldr r1, _0804BE44 @ =0x040000D4
ldr r0, _0804BE48 @ =gUnknown_083A29EC
str r0, [r1]
ldr r0, _0804BE4C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BE50 @ =0x80000400
b _0804C270
.align 2, 0
_0804BE44: .4byte 0x040000D4
_0804BE48: .4byte gUnknown_083A29EC
_0804BE4C: .4byte 0x06015800
_0804BE50: .4byte 0x80000400
_0804BE54:
ldr r1, _0804BE64 @ =0x040000D4
ldr r0, _0804BE68 @ =gUnknown_083A340C
str r0, [r1]
ldr r0, _0804BE6C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BE70 @ =0x80001000
b _0804C270
.align 2, 0
_0804BE64: .4byte 0x040000D4
_0804BE68: .4byte gUnknown_083A340C
_0804BE6C: .4byte 0x06015800
_0804BE70: .4byte 0x80001000
_0804BE74:
ldr r1, _0804BE84 @ =0x040000D4
ldr r0, _0804BE88 @ =gUnknown_083A562C
str r0, [r1]
ldr r0, _0804BE8C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BE90 @ =0x80000C00
b _0804C270
.align 2, 0
_0804BE84: .4byte 0x040000D4
_0804BE88: .4byte gUnknown_083A562C
_0804BE8C: .4byte 0x06015800
_0804BE90: .4byte 0x80000C00
_0804BE94:
ldr r1, _0804BEA4 @ =0x040000D4
ldr r0, _0804BEA8 @ =gUnknown_081428D4
str r0, [r1]
ldr r0, _0804BEAC @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BEB0 @ =0x80000E00
b _0804C270
.align 2, 0
_0804BEA4: .4byte 0x040000D4
_0804BEA8: .4byte gUnknown_081428D4
_0804BEAC: .4byte 0x06015800
_0804BEB0: .4byte 0x80000E00
_0804BEB4:
ldr r1, _0804BEC4 @ =0x040000D4
ldr r0, _0804BEC8 @ =gUnknown_0839C78C
str r0, [r1]
ldr r0, _0804BECC @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BED0 @ =0x80000A00
b _0804C270
.align 2, 0
_0804BEC4: .4byte 0x040000D4
_0804BEC8: .4byte gUnknown_0839C78C
_0804BECC: .4byte 0x06015800
_0804BED0: .4byte 0x80000A00
_0804BED4:
ldr r1, _0804BEE4 @ =0x040000D4
ldr r0, _0804BEE8 @ =gUnknown_0839DDAC
str r0, [r1]
ldr r0, _0804BEEC @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BEF0 @ =0x80001400
b _0804C270
.align 2, 0
_0804BEE4: .4byte 0x040000D4
_0804BEE8: .4byte gUnknown_0839DDAC
_0804BEEC: .4byte 0x06015800
_0804BEF0: .4byte 0x80001400
_0804BEF4:
ldr r1, _0804BF04 @ =0x040000D4
ldr r0, _0804BF08 @ =gUnknown_084FA20C
str r0, [r1]
ldr r0, _0804BF0C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804BF10 @ =0x80000140
b _0804C270
.align 2, 0
_0804BF04: .4byte 0x040000D4
_0804BF08: .4byte gUnknown_084FA20C
_0804BF0C: .4byte 0x06015800
_0804BF10: .4byte 0x80000140
_0804BF14:
movs r2, #0
ldr r7, _0804BF50 @ =gUnknown_084F61EC
mov r8, r7
ldr r0, _0804BF54 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xb3
lsls r1, r1, #3
adds r1, r1, r0
mov sb, r1
ldr r3, _0804BF58 @ =gUnknown_086A3707
mov ip, r3
ldr r4, _0804BF5C @ =0x040000D4
ldr r6, _0804BF60 @ =0x06015800
ldr r5, _0804BF64 @ =0x80000020
_0804BF30:
lsls r2, r2, #0x10
asrs r3, r2, #0x10
mov r7, sb
ldrh r1, [r7]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r3, r0
mov r7, ip
adds r1, r0, r7
ldrb r0, [r1]
cmp r0, #0x20
bne _0804BF6C
ldr r0, _0804BF68 @ =gUnknown_083FFD4C
b _0804BF76
.align 2, 0
_0804BF50: .4byte gUnknown_084F61EC
_0804BF54: .4byte gUnknown_020314E0
_0804BF58: .4byte gUnknown_086A3707
_0804BF5C: .4byte 0x040000D4
_0804BF60: .4byte 0x06015800
_0804BF64: .4byte 0x80000020
_0804BF68: .4byte gUnknown_083FFD4C
_0804BF6C:
ldrb r0, [r1]
subs r0, #0x41
lsls r0, r0, #6
ldr r1, _0804BFA0 @ =gUnknown_083FF04C
adds r0, r0, r1
_0804BF76:
str r0, [r4]
lsls r0, r3, #6
adds r0, r0, r6
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
movs r1, #0x80
lsls r1, r1, #9
adds r0, r2, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _0804BF30
ldr r1, _0804BFA4 @ =0x040000D4
mov r2, r8
str r2, [r1]
ldr r0, _0804BFA8 @ =0x06015C00
str r0, [r1, #4]
ldr r0, _0804BFAC @ =0x800004A0
b _0804C270
.align 2, 0
_0804BFA0: .4byte gUnknown_083FF04C
_0804BFA4: .4byte 0x040000D4
_0804BFA8: .4byte 0x06015C00
_0804BFAC: .4byte 0x800004A0
_0804BFB0:
movs r2, #0
ldr r0, _0804BFE8 @ =gUnknown_020314E0
ldr r0, [r0]
movs r3, #0xb3
lsls r3, r3, #3
adds r3, r3, r0
mov r8, r3
ldr r7, _0804BFEC @ =gUnknown_086A3707
mov ip, r7
ldr r4, _0804BFF0 @ =0x040000D4
ldr r6, _0804BFF4 @ =0x06015800
ldr r5, _0804BFF8 @ =0x80000020
_0804BFC8:
lsls r0, r2, #0x10
asrs r3, r0, #0x10
mov r0, r8
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r3, r0
mov r7, ip
adds r1, r0, r7
ldrb r0, [r1]
cmp r0, #0x20
bne _0804C000
ldr r0, _0804BFFC @ =gUnknown_083FFD4C
b _0804C00A
.align 2, 0
_0804BFE8: .4byte gUnknown_020314E0
_0804BFEC: .4byte gUnknown_086A3707
_0804BFF0: .4byte 0x040000D4
_0804BFF4: .4byte 0x06015800
_0804BFF8: .4byte 0x80000020
_0804BFFC: .4byte gUnknown_083FFD4C
_0804C000:
ldrb r0, [r1]
subs r0, #0x41
lsls r0, r0, #6
ldr r1, _0804C04C @ =gUnknown_083FF04C
adds r0, r0, r1
_0804C00A:
str r0, [r4]
lsls r0, r3, #6
adds r0, r0, r6
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
lsls r0, r2, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _0804BFC8
movs r2, #0
ldr r3, _0804C050 @ =gUnknown_086ACFE0
mov ip, r3
ldr r5, _0804C054 @ =0x040000D4
ldr r7, _0804C058 @ =0x06015800
ldr r6, _0804C05C @ =0x80000020
_0804C032:
lsls r0, r2, #0x10
asrs r4, r0, #0x10
lsls r1, r4, #1
mov r2, ip
adds r3, r1, r2
movs r2, #0
ldrsh r1, [r3, r2]
adds r2, r0, #0
cmp r1, #0x20
bne _0804C064
ldr r0, _0804C060 @ =gUnknown_083FFD4C
b _0804C070
.align 2, 0
_0804C04C: .4byte gUnknown_083FF04C
_0804C050: .4byte gUnknown_086ACFE0
_0804C054: .4byte 0x040000D4
_0804C058: .4byte 0x06015800
_0804C05C: .4byte 0x80000020
_0804C060: .4byte gUnknown_083FFD4C
_0804C064:
movs r1, #0
ldrsh r0, [r3, r1]
subs r0, #0x41
lsls r0, r0, #6
ldr r1, _0804C090 @ =gUnknown_083FF04C
adds r0, r0, r1
_0804C070:
str r0, [r5]
adds r0, r4, #0
adds r0, #0xa
lsls r0, r0, #6
adds r0, r0, r7
str r0, [r5, #4]
str r6, [r5, #8]
ldr r0, [r5, #8]
movs r3, #0x80
lsls r3, r3, #9
adds r0, r2, r3
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _0804C032
b _0804C274
.align 2, 0
_0804C090: .4byte gUnknown_083FF04C
_0804C094:
ldr r1, _0804C0B4 @ =0x040000D4
ldr r2, _0804C0B8 @ =gUnknown_086AD474
ldr r0, [r3]
ldr r7, _0804C0BC @ =0x0000025F
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r2
ldr r0, [r0]
str r0, [r1]
ldr r0, _0804C0C0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C0C4 @ =0x80000E00
b _0804C270
.align 2, 0
_0804C0B4: .4byte 0x040000D4
_0804C0B8: .4byte gUnknown_086AD474
_0804C0BC: .4byte 0x0000025F
_0804C0C0: .4byte 0x06015800
_0804C0C4: .4byte 0x80000E00
_0804C0C8:
ldr r1, _0804C0D8 @ =0x040000D4
ldr r0, _0804C0DC @ =gUnknown_08158284
str r0, [r1]
ldr r0, _0804C0E0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C0E4 @ =0x80001200
b _0804C270
.align 2, 0
_0804C0D8: .4byte 0x040000D4
_0804C0DC: .4byte gUnknown_08158284
_0804C0E0: .4byte 0x06015800
_0804C0E4: .4byte 0x80001200
_0804C0E8:
ldr r1, _0804C0F8 @ =0x040000D4
ldr r0, _0804C0FC @ =gUnknown_083A562C
str r0, [r1]
ldr r0, _0804C100 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C104 @ =0x80000C00
b _0804C270
.align 2, 0
_0804C0F8: .4byte 0x040000D4
_0804C0FC: .4byte gUnknown_083A562C
_0804C100: .4byte 0x06015800
_0804C104: .4byte 0x80000C00
_0804C108:
ldr r7, _0804C17C @ =0x040000D4
ldr r0, _0804C180 @ =gUnknown_084F61EC
str r0, [r7]
ldr r0, _0804C184 @ =0x06015C00
str r0, [r7, #4]
ldr r0, _0804C188 @ =0x800004A0
str r0, [r7, #8]
ldr r0, [r7, #8]
ldr r2, [r3]
ldr r1, _0804C18C @ =0x000001A5
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804C12A
b _0804C274
_0804C12A:
ldr r1, _0804C190 @ =gUnknown_086AD2DE
movs r3, #0xd3
lsls r3, r3, #1
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r4, [r0]
lsls r4, r4, #3
ldr r0, _0804C194 @ =gUnknown_086AD000
adds r4, r4, r0
ldrh r0, [r4, #6]
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xa
ldr r6, _0804C198 @ =gUnknown_08480E0C
adds r0, r0, r6
str r0, [r7]
ldr r0, _0804C19C @ =0x06015DA0
str r0, [r7, #4]
ldr r5, _0804C1A0 @ =0x80000020
str r5, [r7, #8]
ldr r0, [r7, #8]
ldrh r0, [r4, #6]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xa
adds r0, r0, r6
str r0, [r7]
ldr r0, _0804C1A4 @ =0x06015E60
str r0, [r7, #4]
str r5, [r7, #8]
ldr r0, [r7, #8]
b _0804C274
.align 2, 0
_0804C17C: .4byte 0x040000D4
_0804C180: .4byte gUnknown_084F61EC
_0804C184: .4byte 0x06015C00
_0804C188: .4byte 0x800004A0
_0804C18C: .4byte 0x000001A5
_0804C190: .4byte gUnknown_086AD2DE
_0804C194: .4byte gUnknown_086AD000
_0804C198: .4byte gUnknown_08480E0C
_0804C19C: .4byte 0x06015DA0
_0804C1A0: .4byte 0x80000020
_0804C1A4: .4byte 0x06015E60
_0804C1A8:
ldr r1, _0804C1B8 @ =0x040000D4
ldr r0, _0804C1BC @ =gUnknown_0850100C
str r0, [r1]
ldr r0, _0804C1C0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C1C4 @ =0x80001200
b _0804C270
.align 2, 0
_0804C1B8: .4byte 0x040000D4
_0804C1BC: .4byte gUnknown_0850100C
_0804C1C0: .4byte 0x06015800
_0804C1C4: .4byte 0x80001200
_0804C1C8:
ldr r1, _0804C1D8 @ =0x040000D4
ldr r0, _0804C1DC @ =gUnknown_0850398C
str r0, [r1]
ldr r0, _0804C1E0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C1E4 @ =0x80001400
b _0804C270
.align 2, 0
_0804C1D8: .4byte 0x040000D4
_0804C1DC: .4byte gUnknown_0850398C
_0804C1E0: .4byte 0x06015800
_0804C1E4: .4byte 0x80001400
_0804C1E8:
ldr r0, _0804C20C @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _0804C22C
ldr r1, _0804C210 @ =0x040000D4
ldr r0, _0804C214 @ =gUnknown_081BCAA4
str r0, [r1]
ldr r0, _0804C218 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C21C @ =0x80000C00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0804C220 @ =gUnknown_081BE2C4
str r0, [r1]
ldr r0, _0804C224 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0804C228 @ =0x80000010
b _0804C270
.align 2, 0
_0804C20C: .4byte gMain
_0804C210: .4byte 0x040000D4
_0804C214: .4byte gUnknown_081BCAA4
_0804C218: .4byte 0x06015800
_0804C21C: .4byte 0x80000C00
_0804C220: .4byte gUnknown_081BE2C4
_0804C224: .4byte 0x050003C0
_0804C228: .4byte 0x80000010
_0804C22C:
ldr r1, _0804C248 @ =0x040000D4
ldr r0, _0804C24C @ =gUnknown_081BE4C4
str r0, [r1]
ldr r0, _0804C250 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C254 @ =0x80000C00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0804C258 @ =gUnknown_081BFCE4
str r0, [r1]
ldr r0, _0804C25C @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0804C260 @ =0x80000010
b _0804C270
.align 2, 0
_0804C248: .4byte 0x040000D4
_0804C24C: .4byte gUnknown_081BE4C4
_0804C250: .4byte 0x06015800
_0804C254: .4byte 0x80000C00
_0804C258: .4byte gUnknown_081BFCE4
_0804C25C: .4byte 0x050003C0
_0804C260: .4byte 0x80000010
_0804C264:
ldr r1, _0804C280 @ =0x040000D4
ldr r0, _0804C284 @ =gUnknown_08526DCC
str r0, [r1]
ldr r0, _0804C288 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804C28C @ =0x80000600
_0804C270:
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804C274:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804C280: .4byte 0x040000D4
_0804C284: .4byte gUnknown_08526DCC
_0804C288: .4byte 0x06015800
_0804C28C: .4byte 0x80000600
thumb_func_start sub_4C290
sub_4C290: @ 0x0804C290
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
bl sub_28AE0
bl sub_28BFC
movs r1, #0
ldr r0, _0804C3B8 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r3, _0804C3BC @ =0x040000D4
mov sb, r0
_0804C2AE:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r4, r0
ldr r1, _0804C3C0 @ =0x000013BC
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
lsls r0, r0, #9
ldr r1, _0804C3C4 @ =gUnknown_083FE44C
adds r0, r0, r1
str r0, [r3]
lsls r0, r2, #9
ldr r5, _0804C3C8 @ =0x06010000
adds r0, r0, r5
str r0, [r3, #4]
ldr r0, _0804C3CC @ =0x80000100
str r0, [r3, #8]
ldr r0, [r3, #8]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #1
ble _0804C2AE
mov r1, sb
ldr r0, [r1]
ldr r2, _0804C3D0 @ =0x0000132C
adds r0, r0, r2
ldr r0, [r0]
ldrh r0, [r0, #0xa]
ldr r2, _0804C3BC @ =0x040000D4
lsrs r0, r0, #0xc
lsls r0, r0, #7
ldr r1, _0804C3D4 @ =gUnknown_083BB16C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804C3D8 @ =0x06010400
str r0, [r2, #4]
ldr r0, _0804C3DC @ =0x80000040
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r1, #0
ldr r5, _0804C3E0 @ =gUnknown_084C07EC
ldr r6, _0804C3E4 @ =gUnknown_084FA48C
ldr r7, _0804C3E8 @ =gUnknown_084C00EC
adds r3, r2, #0
mov r2, sb
ldr r0, [r2]
ldr r2, _0804C3EC @ =0x00000744
adds r4, r0, r2
_0804C320:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
adds r0, r4, r2
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
adds r0, r0, r5
str r0, [r3]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #7
ldr r1, _0804C3F0 @ =0x06010480
adds r0, r0, r1
str r0, [r3, #4]
ldr r0, _0804C3F4 @ =0x800000C0
str r0, [r3, #8]
ldr r0, [r3, #8]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #1
ble _0804C320
mov r2, sb
ldr r0, [r2]
ldr r3, _0804C3F8 @ =0x000001E5
adds r0, r0, r3
ldr r2, _0804C3BC @ =0x040000D4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
adds r0, r0, r6
str r0, [r2]
ldr r0, _0804C3FC @ =0x06010780
str r0, [r2, #4]
ldr r0, _0804C400 @ =0x80000090
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r5, sb
ldr r0, [r5]
movs r1, #0xe5
lsls r1, r1, #1
adds r0, r0, r1
ldrh r3, [r0]
mov sl, r3
movs r5, #0
ldrsh r0, [r0, r5]
lsls r0, r0, #7
adds r0, r0, r7
str r0, [r2]
ldr r0, _0804C404 @ =0x06010AE0
str r0, [r2, #4]
ldr r0, _0804C3DC @ =0x80000040
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r1, #0
_0804C396:
mov r2, sb
ldr r0, [r2]
lsls r2, r1, #0x10
asrs r1, r2, #0x10
ldr r3, _0804C408 @ =0x00000747
adds r0, r0, r3
adds r0, r0, r1
ldrb r0, [r0]
adds r7, r2, #0
cmp r0, #9
bls _0804C3AE
b _0804C602
_0804C3AE:
lsls r0, r0, #2
ldr r1, _0804C40C @ =_0804C410
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804C3B8: .4byte gUnknown_020314E0
_0804C3BC: .4byte 0x040000D4
_0804C3C0: .4byte 0x000013BC
_0804C3C4: .4byte gUnknown_083FE44C
_0804C3C8: .4byte 0x06010000
_0804C3CC: .4byte 0x80000100
_0804C3D0: .4byte 0x0000132C
_0804C3D4: .4byte gUnknown_083BB16C
_0804C3D8: .4byte 0x06010400
_0804C3DC: .4byte 0x80000040
_0804C3E0: .4byte gUnknown_084C07EC
_0804C3E4: .4byte gUnknown_084FA48C
_0804C3E8: .4byte gUnknown_084C00EC
_0804C3EC: .4byte 0x00000744
_0804C3F0: .4byte 0x06010480
_0804C3F4: .4byte 0x800000C0
_0804C3F8: .4byte 0x000001E5
_0804C3FC: .4byte 0x06010780
_0804C400: .4byte 0x80000090
_0804C404: .4byte 0x06010AE0
_0804C408: .4byte 0x00000747
_0804C40C: .4byte _0804C410
_0804C410: @ jump table
.4byte _0804C438 @ case 0
.4byte _0804C5D4 @ case 1
.4byte _0804C5D4 @ case 2
.4byte _0804C55E @ case 3
.4byte _0804C5D4 @ case 4
.4byte _0804C602 @ case 5
.4byte _0804C5D4 @ case 6
.4byte _0804C5D4 @ case 7
.4byte _0804C5D4 @ case 8
.4byte _0804C460 @ case 9
_0804C438:
ldr r3, _0804C454 @ =0x040000D4
mov r5, sb
ldr r0, [r5]
asrs r2, r7, #0x10
ldr r1, _0804C458 @ =0x00000749
adds r0, r0, r1
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0804C45C @ =gUnknown_0848D68C
b _0804C5EC
.align 2, 0
_0804C454: .4byte 0x040000D4
_0804C458: .4byte 0x00000749
_0804C45C: .4byte gUnknown_0848D68C
_0804C460:
mov r5, sb
ldr r4, [r5]
movs r1, #0x97
lsls r1, r1, #2
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0804C510
ldr r1, _0804C498 @ =gMain+0x74
ldr r2, _0804C49C @ =0x0000059A
adds r0, r4, r2
ldrh r3, [r0]
adds r1, r3, r1
ldrb r0, [r1]
cmp r0, #0
bne _0804C4AC
asrs r3, r7, #0x10
ldr r2, _0804C4A0 @ =0x00000749
adds r0, r4, r2
adds r0, r0, r3
movs r1, #0xcd
strb r1, [r0]
ldr r6, _0804C4A4 @ =0x040000D4
ldr r5, _0804C4A8 @ =gMonPortraitGroupPals
mov r8, r5
b _0804C528
.align 2, 0
_0804C498: .4byte gMain+0x74
_0804C49C: .4byte 0x0000059A
_0804C4A0: .4byte 0x00000749
_0804C4A4: .4byte 0x040000D4
_0804C4A8: .4byte gMonPortraitGroupPals
_0804C4AC:
cmp r0, #3
bhi _0804C4E8
asrs r1, r7, #0x10
ldr r2, _0804C4D4 @ =0x00000749
adds r0, r4, r2
adds r0, r0, r1
strb r3, [r0]
ldr r1, _0804C4D8 @ =0x040000D4
ldr r0, _0804C4DC @ =gMonPortraitGroupPals
ldr r0, [r0]
movs r3, #0xf0
lsls r3, r3, #1
adds r0, r0, r3
str r0, [r1]
ldr r0, _0804C4E0 @ =0x050003A0
str r0, [r1, #4]
ldr r0, _0804C4E4 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
b _0804C55E
.align 2, 0
_0804C4D4: .4byte 0x00000749
_0804C4D8: .4byte 0x040000D4
_0804C4DC: .4byte gMonPortraitGroupPals
_0804C4E0: .4byte 0x050003A0
_0804C4E4: .4byte 0x80000010
_0804C4E8:
asrs r2, r7, #0x10
ldr r1, _0804C504 @ =0x00000749
adds r0, r4, r1
adds r0, r0, r2
strb r3, [r0]
ldr r6, _0804C508 @ =0x040000D4
ldr r5, _0804C50C @ =gMonPortraitGroupPals
mov r8, r5
mov r3, sb
ldr r0, [r3]
adds r0, r0, r1
adds r0, r0, r2
b _0804C530
.align 2, 0
_0804C504: .4byte 0x00000749
_0804C508: .4byte 0x040000D4
_0804C50C: .4byte gMonPortraitGroupPals
_0804C510:
asrs r3, r7, #0x10
ldr r2, _0804C5B4 @ =0x00000749
adds r1, r4, r2
adds r1, r1, r3
movs r5, #0xb3
lsls r5, r5, #3
adds r0, r4, r5
ldrh r0, [r0]
strb r0, [r1]
ldr r6, _0804C5B8 @ =0x040000D4
ldr r0, _0804C5BC @ =gMonPortraitGroupPals
mov r8, r0
_0804C528:
mov r1, sb
ldr r0, [r1]
adds r0, r0, r2
adds r0, r0, r3
_0804C530:
ldrb r5, [r0]
adds r0, r5, #0
movs r1, #0xf
bl __udivsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x16
add r4, r8
adds r0, r5, #0
movs r1, #0xf
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x13
ldr r1, [r4]
adds r1, r1, r0
str r1, [r6]
ldr r0, _0804C5C0 @ =0x050003A0
str r0, [r6, #4]
ldr r0, _0804C5C4 @ =0x80000010
str r0, [r6, #8]
ldr r0, [r6, #8]
_0804C55E:
ldr r2, _0804C5B8 @ =0x040000D4
ldr r3, _0804C5C8 @ =gMonPortraitGroupGfx
mov r8, r3
mov r5, sb
ldr r0, [r5]
asrs r6, r7, #0x10
ldr r1, _0804C5B4 @ =0x00000749
adds r0, r0, r1
adds r0, r0, r6
ldrb r5, [r0]
adds r0, r5, #0
movs r1, #0xf
str r2, [sp]
bl __udivsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x16
add r4, r8
adds r0, r5, #0
movs r1, #0xf
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #8
ldr r0, [r4]
adds r0, r0, r1
ldr r2, [sp]
str r0, [r2]
lsls r0, r6, #1
adds r0, r0, r6
lsls r0, r0, #3
ldr r3, _0804C5CC @ =0x06010CA0
adds r0, r0, r3
str r0, [r2, #4]
ldr r0, _0804C5D0 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0804C602
.align 2, 0
_0804C5B4: .4byte 0x00000749
_0804C5B8: .4byte 0x040000D4
_0804C5BC: .4byte gMonPortraitGroupPals
_0804C5C0: .4byte 0x050003A0
_0804C5C4: .4byte 0x80000010
_0804C5C8: .4byte gMonPortraitGroupGfx
_0804C5CC: .4byte 0x06010CA0
_0804C5D0: .4byte 0x80000180
_0804C5D4:
ldr r3, _0804C630 @ =0x040000D4
mov r5, sb
ldr r0, [r5]
asrs r2, r7, #0x10
ldr r1, _0804C634 @ =0x00000749
adds r0, r0, r1
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0804C638 @ =gUnknown_083A8EEC
_0804C5EC:
adds r0, r0, r1
str r0, [r3]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #8
ldr r2, _0804C63C @ =0x06010CA0
adds r0, r0, r2
str r0, [r3, #4]
ldr r0, _0804C640 @ =0x80000180
str r0, [r3, #8]
ldr r0, [r3, #8]
_0804C602:
movs r3, #0x80
lsls r3, r3, #9
adds r0, r7, r3
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _0804C612
b _0804C396
_0804C612:
mov r5, sb
ldr r1, [r5]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
bne _0804C69C
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #7
blt _0804C69C
cmp r0, #8
ble _0804C644
cmp r0, #9
beq _0804C660
b _0804C69C
.align 2, 0
_0804C630: .4byte 0x040000D4
_0804C634: .4byte 0x00000749
_0804C638: .4byte gUnknown_083A8EEC
_0804C63C: .4byte 0x06010CA0
_0804C640: .4byte 0x80000180
_0804C644:
ldr r2, _0804C654 @ =0x000005A9
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #4
bls _0804C68C
ldr r1, _0804C658 @ =0x040000D4
ldr r0, _0804C65C @ =gUnknown_02031060
b _0804C690
.align 2, 0
_0804C654: .4byte 0x000005A9
_0804C658: .4byte 0x040000D4
_0804C65C: .4byte gUnknown_02031060
_0804C660:
movs r3, #0xb5
lsls r3, r3, #3
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1f
bgt _0804C69C
ldr r5, _0804C680 @ =0x000005A9
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, #4
bls _0804C68C
ldr r1, _0804C684 @ =0x040000D4
ldr r0, _0804C688 @ =gUnknown_02031060
b _0804C690
.align 2, 0
_0804C680: .4byte 0x000005A9
_0804C684: .4byte 0x040000D4
_0804C688: .4byte gUnknown_02031060
_0804C68C:
ldr r1, _0804C6B8 @ =0x040000D4
ldr r0, _0804C6BC @ =gUnknown_02030760
_0804C690:
str r0, [r1]
ldr r0, _0804C6C0 @ =0x06010CA0
str r0, [r1, #4]
ldr r0, _0804C6C4 @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804C69C:
mov r0, sb
ldr r1, [r0]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #8
bne _0804C720
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #2
beq _0804C6C8
cmp r0, #3
beq _0804C6E4
b _0804C720
.align 2, 0
_0804C6B8: .4byte 0x040000D4
_0804C6BC: .4byte gUnknown_02030760
_0804C6C0: .4byte 0x06010CA0
_0804C6C4: .4byte 0x80000240
_0804C6C8:
ldr r2, _0804C6D8 @ =0x000005A9
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #4
bls _0804C710
ldr r1, _0804C6DC @ =0x040000D4
ldr r0, _0804C6E0 @ =gUnknown_02031060
b _0804C714
.align 2, 0
_0804C6D8: .4byte 0x000005A9
_0804C6DC: .4byte 0x040000D4
_0804C6E0: .4byte gUnknown_02031060
_0804C6E4:
movs r3, #0xb5
lsls r3, r3, #3
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1f
bgt _0804C720
ldr r5, _0804C704 @ =0x000005A9
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, #4
bls _0804C710
ldr r1, _0804C708 @ =0x040000D4
ldr r0, _0804C70C @ =gUnknown_02031060
b _0804C714
.align 2, 0
_0804C704: .4byte 0x000005A9
_0804C708: .4byte 0x040000D4
_0804C70C: .4byte gUnknown_02031060
_0804C710:
ldr r1, _0804C7C4 @ =0x040000D4
ldr r0, _0804C7C8 @ =gUnknown_02030760
_0804C714:
str r0, [r1]
ldr r0, _0804C7CC @ =0x06010CA0
str r0, [r1, #4]
ldr r0, _0804C7D0 @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804C720:
ldr r2, _0804C7C4 @ =0x040000D4
mov r1, sb
ldr r0, [r1]
ldr r3, _0804C7D4 @ =0x0000020B
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r5, _0804C7D8 @ =gUnknown_0844838C
adds r0, r0, r5
str r0, [r2]
ldr r0, _0804C7DC @ =0x060113C0
str r0, [r2, #4]
ldr r0, _0804C7E0 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r1, sb
ldr r0, [r1]
adds r3, #0x54
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
ldr r5, _0804C7E4 @ =gUnknown_086AD49C
adds r0, r0, r5
mov r3, sl
lsls r1, r3, #0x10
asrs r1, r1, #7
ldr r0, [r0]
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804C7E8 @ =0x060116C0
str r0, [r2, #4]
ldr r3, _0804C7EC @ =0x80000100
str r3, [r2, #8]
ldr r0, [r2, #8]
mov r5, sb
ldr r0, [r5]
ldr r1, _0804C7F0 @ =0x000001ED
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
ldr r1, _0804C7F4 @ =gUnknown_086AD2EE
adds r1, #6
adds r0, r0, r1
movs r5, #0
ldrsh r0, [r0, r5]
lsls r0, r0, #9
ldr r1, _0804C7F8 @ =gUnknown_084FD18C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804C7FC @ =0x06011CE0
str r0, [r2, #4]
str r3, [r2, #8]
ldr r0, [r2, #8]
mov r5, sb
ldr r0, [r5]
adds r0, #0x6e
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #9
ldr r1, _0804C800 @ =gUnknown_083BD36C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804C804 @ =0x06011EE0
str r0, [r2, #4]
str r3, [r2, #8]
ldr r0, [r2, #8]
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
_0804C7C4: .4byte 0x040000D4
_0804C7C8: .4byte gUnknown_02030760
_0804C7CC: .4byte 0x06010CA0
_0804C7D0: .4byte 0x80000240
_0804C7D4: .4byte 0x0000020B
_0804C7D8: .4byte gUnknown_0844838C
_0804C7DC: .4byte 0x060113C0
_0804C7E0: .4byte 0x80000180
_0804C7E4: .4byte gUnknown_086AD49C
_0804C7E8: .4byte 0x060116C0
_0804C7EC: .4byte 0x80000100
_0804C7F0: .4byte 0x000001ED
_0804C7F4: .4byte gUnknown_086AD2EE
_0804C7F8: .4byte gUnknown_084FD18C
_0804C7FC: .4byte 0x06011CE0
_0804C800: .4byte gUnknown_083BD36C
_0804C804: .4byte 0x06011EE0
thumb_func_start sub_4C808
sub_4C808: @ 0x0804C808
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r1, _0804C90C @ =gUnknown_086AD2EE
ldr r6, _0804C910 @ =gUnknown_020314E0
ldr r5, [r6]
ldr r2, _0804C914 @ =0x000001ED
adds r0, r5, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
adds r1, #4
adds r0, r0, r1
ldr r4, _0804C918 @ =0x040000D4
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0804C91C @ =gUnknown_084FB68C
adds r0, r0, r1
str r0, [r4]
ldr r0, _0804C920 @ =0x060122A0
str r0, [r4, #4]
ldr r0, _0804C924 @ =0x80000240
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0804C928 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #8
ldr r2, _0804C92C @ =gUnknown_083C3C2C
adds r1, r1, r2
str r1, [r4]
ldr r1, _0804C930 @ =0x06012720
str r1, [r4, #4]
ldr r1, _0804C934 @ =0x80000180
str r1, [r4, #8]
ldr r1, [r4, #8]
ldr r1, _0804C938 @ =0x000002F5
adds r5, r5, r1
movs r2, #0
ldrsb r2, [r5, r2]
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #2
subs r1, r1, r2
lsls r1, r1, #5
ldr r2, _0804C93C @ =gUnknown_084F5ACC
adds r1, r1, r2
str r1, [r4]
ldr r1, _0804C940 @ =0x06012C20
str r1, [r4, #4]
ldr r1, _0804C944 @ =0x80000130
str r1, [r4, #8]
ldr r1, [r4, #8]
movs r2, #0
mov ip, r6
ldr r1, _0804C948 @ =gUnknown_084ED0CC
mov r8, r1
ldr r1, _0804C94C @ =gUnknown_08449D8C
mov sb, r1
ldr r1, _0804C950 @ =gUnknown_086AD456
mov sl, r1
lsls r0, r0, #8
ldr r1, _0804C954 @ =gUnknown_083C806C
adds r3, r0, r1
movs r7, #0xba
lsls r7, r7, #1
ldr r6, _0804C958 @ =0x06010000
ldr r5, _0804C95C @ =0x80000080
_0804C8AE:
str r3, [r4]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
adds r1, r1, r7
lsls r1, r1, #5
adds r1, r1, r6
str r1, [r4, #4]
str r5, [r4, #8]
ldr r1, [r4, #8]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _0804C8AE
mov r2, ip
ldr r0, [r2]
ldr r1, _0804C960 @ =0x000002F1
adds r0, r0, r1
ldrb r0, [r0]
movs r1, #0xf
ldr r2, _0804C918 @ =0x040000D4
ands r1, r0
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
add r0, r8
str r0, [r2]
ldr r0, _0804C964 @ =0x06013180
str r0, [r2, #4]
ldr r0, _0804C968 @ =0x800000C0
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r2, ip
ldr r1, [r2]
ldr r2, _0804C96C @ =0x000002DA
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _0804C974
ldr r0, _0804C970 @ =0x00000746
adds r1, r1, r0
movs r0, #0
b _0804C97A
.align 2, 0
_0804C90C: .4byte gUnknown_086AD2EE
_0804C910: .4byte gUnknown_020314E0
_0804C914: .4byte 0x000001ED
_0804C918: .4byte 0x040000D4
_0804C91C: .4byte gUnknown_084FB68C
_0804C920: .4byte 0x060122A0
_0804C924: .4byte 0x80000240
_0804C928: .4byte gMain
_0804C92C: .4byte gUnknown_083C3C2C
_0804C930: .4byte 0x06012720
_0804C934: .4byte 0x80000180
_0804C938: .4byte 0x000002F5
_0804C93C: .4byte gUnknown_084F5ACC
_0804C940: .4byte 0x06012C20
_0804C944: .4byte 0x80000130
_0804C948: .4byte gUnknown_084ED0CC
_0804C94C: .4byte gUnknown_08449D8C
_0804C950: .4byte gUnknown_086AD456
_0804C954: .4byte gUnknown_083C806C
_0804C958: .4byte 0x06010000
_0804C95C: .4byte 0x80000080
_0804C960: .4byte 0x000002F1
_0804C964: .4byte 0x06013180
_0804C968: .4byte 0x800000C0
_0804C96C: .4byte 0x000002DA
_0804C970: .4byte 0x00000746
_0804C974:
ldr r2, _0804C9F8 @ =0x00000746
adds r1, r1, r2
movs r0, #1
_0804C97A:
strb r0, [r1]
ldr r4, _0804C9FC @ =0x040000D4
mov r1, ip
ldr r0, [r1]
ldr r2, _0804C9F8 @ =0x00000746
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #7
add r0, sb
str r0, [r4]
ldr r0, _0804CA00 @ =0x06013300
str r0, [r4, #4]
ldr r0, _0804CA04 @ =0x80000140
str r0, [r4, #8]
ldr r0, [r4, #8]
mov r0, ip
ldr r5, [r0]
movs r1, #0xda
lsls r1, r1, #1
adds r0, r5, r1
ldrh r0, [r0]
movs r1, #0x2a
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #6
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
ldr r2, _0804CA08 @ =0x000001A5
adds r1, r5, r2
movs r2, #0
ldrsb r2, [r1, r2]
lsls r1, r2, #3
subs r1, r1, r2
lsls r1, r1, #1
adds r0, r0, r1
add r0, sl
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0804CA0C @ =gUnknown_084F6B0C
adds r0, r0, r1
str r0, [r4]
ldr r0, _0804CA10 @ =0x06013D00
str r0, [r4, #4]
ldr r0, _0804CA14 @ =0x80000280
str r0, [r4, #8]
ldr r0, [r4, #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
_0804C9F8: .4byte 0x00000746
_0804C9FC: .4byte 0x040000D4
_0804CA00: .4byte 0x06013300
_0804CA04: .4byte 0x80000140
_0804CA08: .4byte 0x000001A5
_0804CA0C: .4byte gUnknown_084F6B0C
_0804CA10: .4byte 0x06013D00
_0804CA14: .4byte 0x80000280
thumb_func_start sub_4CA18
sub_4CA18: @ 0x0804CA18
ldr r1, _0804CA38 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0804CA3C @ =0x00000346
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r2, r1, #0
cmp r0, #6
bhi _0804CACE
lsls r0, r0, #2
ldr r1, _0804CA40 @ =_0804CA44
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804CA38: .4byte gUnknown_020314E0
_0804CA3C: .4byte 0x00000346
_0804CA40: .4byte _0804CA44
_0804CA44: @ jump table
.4byte _0804CA60 @ case 0
.4byte _0804CA60 @ case 1
.4byte _0804CA60 @ case 2
.4byte _0804CA78 @ case 3
.4byte _0804CA78 @ case 4
.4byte _0804CAA0 @ case 5
.4byte _0804CACE @ case 6
_0804CA60:
ldr r0, [r2]
ldr r3, _0804CA70 @ =0x00000345
adds r0, r0, r3
ldr r2, _0804CA74 @ =0x040000D4
movs r1, #0
ldrsb r1, [r0, r1]
b _0804CAB8
.align 2, 0
_0804CA70: .4byte 0x00000345
_0804CA74: .4byte 0x040000D4
_0804CA78:
ldr r1, _0804CA90 @ =0x040000D4
ldr r0, _0804CA94 @ =gUnknown_08490A4C
movs r2, #0xff
lsls r2, r2, #6
adds r0, r0, r2
str r0, [r1]
ldr r0, _0804CA98 @ =0x0600D900
str r0, [r1, #4]
ldr r0, _0804CA9C @ =0x80000220
str r0, [r1, #8]
ldr r0, [r1, #8]
b _0804CACE
.align 2, 0
_0804CA90: .4byte 0x040000D4
_0804CA94: .4byte gUnknown_08490A4C
_0804CA98: .4byte 0x0600D900
_0804CA9C: .4byte 0x80000220
_0804CAA0:
ldr r1, _0804CAD0 @ =gUnknown_086AE5A0
ldr r0, [r2]
ldr r3, _0804CAD4 @ =0x00000345
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r1
ldr r2, _0804CAD8 @ =0x040000D4
movs r3, #0
ldrsh r1, [r0, r3]
_0804CAB8:
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #6
ldr r1, _0804CADC @ =gUnknown_08490A4C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804CAE0 @ =0x0600D900
str r0, [r2, #4]
ldr r0, _0804CAE4 @ =0x80000220
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804CACE:
bx lr
.align 2, 0
_0804CAD0: .4byte gUnknown_086AE5A0
_0804CAD4: .4byte 0x00000345
_0804CAD8: .4byte 0x040000D4
_0804CADC: .4byte gUnknown_08490A4C
_0804CAE0: .4byte 0x0600D900
_0804CAE4: .4byte 0x80000220
thumb_func_start sub_4CAE8
sub_4CAE8: @ 0x0804CAE8
ldr r1, _0804CAFC @ =0x040000D4
ldr r0, _0804CB00 @ =gUnknown_08138834
str r0, [r1]
ldr r0, _0804CB04 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804CB08 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
bx lr
.align 2, 0
_0804CAFC: .4byte 0x040000D4
_0804CB00: .4byte gUnknown_08138834
_0804CB04: .4byte 0x06015800
_0804CB08: .4byte 0x80001000
thumb_func_start sub_4CB0C
sub_4CB0C: @ 0x0804CB0C
ldr r1, _0804CB20 @ =0x040000D4
ldr r0, _0804CB24 @ =gUnknown_0813A854
str r0, [r1]
ldr r0, _0804CB28 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804CB2C @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
bx lr
.align 2, 0
_0804CB20: .4byte 0x040000D4
_0804CB24: .4byte gUnknown_0813A854
_0804CB28: .4byte 0x06015800
_0804CB2C: .4byte 0x80001000
thumb_func_start sub_4CB30
sub_4CB30: @ 0x0804CB30
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
ldr r5, _0804CB90 @ =0x040000D4
ldr r0, _0804CB94 @ =gUnknown_0813C874
str r0, [r5]
ldr r0, _0804CB98 @ =0x06015800
str r0, [r5, #4]
ldr r0, _0804CB9C @ =0x80001000
str r0, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _0804CBA0 @ =gMonPortraitGroupGfx
mov r8, r0
ldr r0, _0804CBA4 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0804CBA8 @ =0x00000749
adds r0, r0, r1
ldrb r6, [r0]
adds r0, r6, #0
movs r1, #0xf
bl __udivsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x16
add r4, r8
adds r0, r6, #0
movs r1, #0xf
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #8
ldr r0, [r4]
adds r0, r0, r1
str r0, [r5]
ldr r0, _0804CBAC @ =0x06010CA0
str r0, [r5, #4]
ldr r0, _0804CBB0 @ =0x80000180
str r0, [r5, #8]
ldr r0, [r5, #8]
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804CB90: .4byte 0x040000D4
_0804CB94: .4byte gUnknown_0813C874
_0804CB98: .4byte 0x06015800
_0804CB9C: .4byte 0x80001000
_0804CBA0: .4byte gMonPortraitGroupGfx
_0804CBA4: .4byte gUnknown_020314E0
_0804CBA8: .4byte 0x00000749
_0804CBAC: .4byte 0x06010CA0
_0804CBB0: .4byte 0x80000180
thumb_func_start sub_4CBB4
sub_4CBB4: @ 0x0804CBB4
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
ldr r0, _0804CBD0 @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r1, [r1, #0x13]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r2, r0, #0
cmp r1, #1
bgt _0804CBDC
ldr r1, _0804CBD4 @ =0x040000D4
ldr r0, _0804CBD8 @ =gUnknown_0849F1CC
b _0804CBE0
.align 2, 0
_0804CBD0: .4byte gUnknown_020314E0
_0804CBD4: .4byte 0x040000D4
_0804CBD8: .4byte gUnknown_0849F1CC
_0804CBDC:
ldr r1, _0804CC38 @ =0x040000D4
ldr r0, _0804CC3C @ =gUnknown_0813E894
_0804CBE0:
str r0, [r1]
ldr r0, _0804CC40 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804CC44 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r6, _0804CC38 @ =0x040000D4
ldr r0, _0804CC48 @ =gMonPortraitGroupGfx
mov r8, r0
ldr r0, [r2]
ldr r1, _0804CC4C @ =0x00000749
adds r0, r0, r1
ldrb r5, [r0]
adds r0, r5, #0
movs r1, #0xf
bl __udivsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x16
add r4, r8
adds r0, r5, #0
movs r1, #0xf
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #8
ldr r0, [r4]
adds r0, r0, r1
str r0, [r6]
ldr r0, _0804CC50 @ =0x06010CA0
str r0, [r6, #4]
ldr r0, _0804CC54 @ =0x80000180
str r0, [r6, #8]
ldr r0, [r6, #8]
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804CC38: .4byte 0x040000D4
_0804CC3C: .4byte gUnknown_0813E894
_0804CC40: .4byte 0x06015800
_0804CC44: .4byte 0x80001000
_0804CC48: .4byte gMonPortraitGroupGfx
_0804CC4C: .4byte 0x00000749
_0804CC50: .4byte 0x06010CA0
_0804CC54: .4byte 0x80000180
thumb_func_start sub_4CC58
sub_4CC58: @ 0x0804CC58
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
ldr r1, _0804CC7C @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r2, r1, #0
cmp r0, #0
bne _0804CC90
ldr r1, _0804CC80 @ =0x040000D4
ldr r0, _0804CC84 @ =gUnknown_083C5A2C
str r0, [r1]
ldr r0, _0804CC88 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804CC8C @ =0x80001400
b _0804CCC0
.align 2, 0
_0804CC7C: .4byte gUnknown_020314E0
_0804CC80: .4byte 0x040000D4
_0804CC84: .4byte gUnknown_083C5A2C
_0804CC88: .4byte 0x06015800
_0804CC8C: .4byte 0x80001400
_0804CC90:
cmp r0, #1
bne _0804CCB4
ldr r1, _0804CCA4 @ =0x040000D4
ldr r0, _0804CCA8 @ =gUnknown_084A856C
str r0, [r1]
ldr r0, _0804CCAC @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804CCB0 @ =0x80000E00
b _0804CCC0
.align 2, 0
_0804CCA4: .4byte 0x040000D4
_0804CCA8: .4byte gUnknown_084A856C
_0804CCAC: .4byte 0x06015800
_0804CCB0: .4byte 0x80000E00
_0804CCB4:
ldr r1, _0804CD34 @ =0x040000D4
ldr r0, _0804CD38 @ =gUnknown_081408B4
str r0, [r1]
ldr r0, _0804CD3C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804CD40 @ =0x80001000
_0804CCC0:
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r2]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
ldrb r0, [r0]
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #9
bls _0804CCE8
ldr r1, _0804CD34 @ =0x040000D4
ldr r0, _0804CD44 @ =gUnknown_084AA18C
str r0, [r1]
ldr r0, _0804CD48 @ =0x06011620
str r0, [r1, #4]
ldr r0, _0804CD4C @ =0x80000430
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804CCE8:
ldr r6, _0804CD34 @ =0x040000D4
ldr r0, _0804CD50 @ =gMonPortraitGroupGfx
mov r8, r0
ldr r0, [r2]
ldr r1, _0804CD54 @ =0x00000749
adds r0, r0, r1
ldrb r5, [r0]
adds r0, r5, #0
movs r1, #0xf
bl __udivsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x16
add r4, r8
adds r0, r5, #0
movs r1, #0xf
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #8
ldr r0, [r4]
adds r0, r0, r1
str r0, [r6]
ldr r0, _0804CD58 @ =0x06010CA0
str r0, [r6, #4]
ldr r0, _0804CD5C @ =0x80000180
str r0, [r6, #8]
ldr r0, [r6, #8]
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804CD34: .4byte 0x040000D4
_0804CD38: .4byte gUnknown_081408B4
_0804CD3C: .4byte 0x06015800
_0804CD40: .4byte 0x80001000
_0804CD44: .4byte gUnknown_084AA18C
_0804CD48: .4byte 0x06011620
_0804CD4C: .4byte 0x80000430
_0804CD50: .4byte gMonPortraitGroupGfx
_0804CD54: .4byte 0x00000749
_0804CD58: .4byte 0x06010CA0
_0804CD5C: .4byte 0x80000180
thumb_func_start sub_4CD60
sub_4CD60: @ 0x0804CD60
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r2, #0
ldr r3, _0804CE5C @ =gUnknown_03006400
ldr r6, _0804CE60 @ =gMain
movs r0, #0x80
lsls r0, r0, #4
adds r0, r0, r3
mov r8, r0
ldr r1, _0804CE64 @ =gUnknown_084B77EC
mov sb, r1
ldr r0, _0804CE68 @ =0xFFFFF800
adds r0, r0, r3
mov ip, r0
movs r7, #0x80
lsls r7, r7, #3
movs r5, #0x80
lsls r5, r5, #2
ldr r4, _0804CE6C @ =0x000007FF
_0804CD8A:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
adds r0, r1, r7
lsls r0, r0, #1
add r0, ip
strh r5, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r4
ble _0804CD8A
ldr r1, _0804CE70 @ =0x040000D4
str r3, [r1]
ldr r0, _0804CE74 @ =0x06001000
str r0, [r1, #4]
ldr r0, _0804CE78 @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r6, #0x38]
ldr r0, _0804CE7C @ =0x00001C42
strh r0, [r6, #0x38]
ldrh r0, [r6, #0x3a]
ldr r0, _0804CE80 @ =0x00000C04
strh r0, [r6, #0x3a]
movs r2, #0
ldr r1, _0804CE68 @ =0xFFFFF800
adds r4, r3, r1
ldr r3, _0804CE84 @ =0x0000013F
_0804CDC4:
lsls r0, r2, #0x10
asrs r2, r0, #0x10
adds r0, r2, #0
cmp r2, #0
bge _0804CDD0
adds r0, #0x1f
_0804CDD0:
asrs r0, r0, #5
lsls r0, r0, #5
subs r0, r2, r0
subs r0, #2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1b
bhi _0804CDF0
movs r1, #0x80
lsls r1, r1, #4
adds r0, r2, r1
lsls r0, r0, #1
adds r0, r0, r4
movs r1, #0x90
lsls r1, r1, #8
strh r1, [r0]
_0804CDF0:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r3
ble _0804CDC4
movs r0, #0xbb
lsls r0, r0, #2
adds r1, r6, r0
movs r0, #8
strh r0, [r1]
ldr r0, _0804CE88 @ =0x000002EE
adds r1, r6, r0
movs r0, #0x7e
strh r0, [r1]
ldr r1, _0804CE70 @ =0x040000D4
mov r0, r8
str r0, [r1]
ldr r0, _0804CE8C @ =0x06001140
str r0, [r1, #4]
ldr r0, _0804CE90 @ =0x80000140
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r2, #0
ldr r5, _0804CE94 @ =0xFFFFF000
add r5, r8
ldr r4, _0804CE98 @ =0x000001FF
ldr r3, _0804CE6C @ =0x000007FF
_0804CE28:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r5
strh r4, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, r3
ble _0804CE28
ldr r1, _0804CE70 @ =0x040000D4
mov r0, sb
str r0, [r1]
ldr r0, _0804CE9C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0804CEA0 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804CE5C: .4byte gUnknown_03006400
_0804CE60: .4byte gMain
_0804CE64: .4byte gUnknown_084B77EC
_0804CE68: .4byte 0xFFFFF800
_0804CE6C: .4byte 0x000007FF
_0804CE70: .4byte 0x040000D4
_0804CE74: .4byte 0x06001000
_0804CE78: .4byte 0x80000800
_0804CE7C: .4byte 0x00001C42
_0804CE80: .4byte 0x00000C04
_0804CE84: .4byte 0x0000013F
_0804CE88: .4byte 0x000002EE
_0804CE8C: .4byte 0x06001140
_0804CE90: .4byte 0x80000140
_0804CE94: .4byte 0xFFFFF000
_0804CE98: .4byte 0x000001FF
_0804CE9C: .4byte 0x06015800
_0804CEA0: .4byte 0x80000400
thumb_func_start nullsub_18
nullsub_18: @ 0x0804CEA4
bx lr
thumb_func_start sub_4CEA8
sub_4CEA8: @ 0x0804CEA8
push {lr}
bl sub_4CEB4
pop {r0}
bx r0
thumb_func_start sub_4CEB4
sub_4CEB4: @ 0x0804CEB4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x18
bl sub_4D3D0
ldr r5, _0804CF34 @ =gUnknown_020314E0
ldr r2, [r5]
ldr r1, _0804CF38 @ =0x000005F6
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
ldr r1, [r2, #0x3c]
muls r1, r0, r1
ldr r0, [r2, #0x40]
adds r3, r0, r1
str r3, [r2, #0x40]
ldrb r1, [r2, #0x1c]
cmp r1, #0
beq _0804CF56
ldrb r0, [r2, #5]
ldr r4, _0804CF3C @ =gMain
cmp r0, #0
bne _0804CEF6
ldrh r1, [r4, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0804CF08
_0804CEF6:
ldr r0, [r2, #0x44]
adds r0, r0, r3
str r0, [r2, #0x44]
movs r0, #0
str r0, [r2, #0x40]
strb r0, [r2, #0x1c]
ldr r1, [r5]
ldr r0, _0804CF40 @ =0x00009C40
str r0, [r1, #0x38]
_0804CF08:
ldr r5, [r4, #0x4c]
movs r0, #1
ands r5, r0
cmp r5, #0
bne _0804CF5E
ldr r1, _0804CF34 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r4, [r2, #0x40]
cmp r4, #0
beq _0804CF5E
ldr r3, [r2, #0x38]
cmp r4, r3
bhi _0804CF44
ldr r0, [r2, #0x44]
adds r0, r0, r4
str r0, [r2, #0x44]
str r5, [r2, #0x40]
strb r5, [r2, #0x1c]
ldr r1, [r1]
ldr r0, _0804CF40 @ =0x00009C40
str r0, [r1, #0x38]
b _0804CF5E
.align 2, 0
_0804CF34: .4byte gUnknown_020314E0
_0804CF38: .4byte 0x000005F6
_0804CF3C: .4byte gMain
_0804CF40: .4byte 0x00009C40
_0804CF44:
ldr r0, [r2, #0x44]
adds r0, r0, r3
str r0, [r2, #0x44]
subs r0, r4, r3
str r0, [r2, #0x40]
movs r0, #0x91
bl m4aSongNumStart
b _0804CF5E
_0804CF56:
ldr r0, [r2, #0x44]
adds r0, r0, r3
str r0, [r2, #0x44]
str r1, [r2, #0x40]
_0804CF5E:
ldr r4, _0804CF84 @ =gUnknown_020314E0
ldr r6, [r4]
ldr r7, [r6, #0x44]
ldr r1, _0804CF88 @ =0x05F5E100
adds r0, r7, #0
bl __udivsi3
mov sb, r4
cmp r0, #0
beq _0804CF9C
ldr r1, [r6, #0x48]
ldr r0, _0804CF8C @ =0x0000270E
cmp r1, r0
bhi _0804CF94
adds r0, r1, #1
str r0, [r6, #0x48]
ldr r2, _0804CF90 @ =0xFA0A1F00
adds r0, r7, r2
b _0804CF9A
.align 2, 0
_0804CF84: .4byte gUnknown_020314E0
_0804CF88: .4byte 0x05F5E100
_0804CF8C: .4byte 0x0000270E
_0804CF90: .4byte 0xFA0A1F00
_0804CF94:
ldr r0, _0804D2EC @ =0x0000270F
str r0, [r6, #0x48]
ldr r0, _0804D2F0 @ =0x05F5E0FF
_0804CF9A:
str r0, [r6, #0x44]
_0804CF9C:
mov r7, sb
ldr r5, [r7]
movs r0, #0
str r0, [r5, #0x3c]
ldr r7, [r5, #0x48]
mov r4, sp
ldr r0, _0804D2F4 @ =0x00002710
mov r8, r0
adds r0, r7, #0
mov r1, r8
bl __umodsi3
movs r6, #0xfa
lsls r6, r6, #2
adds r1, r6, #0
bl __udivsi3
adds r0, #5
strh r0, [r4]
mov r4, sp
adds r0, r7, #0
adds r1, r6, #0
bl __umodsi3
movs r1, #0x64
bl __udivsi3
adds r0, #5
strh r0, [r4, #2]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __umodsi3
movs r1, #0xa
bl __udivsi3
adds r0, #0x13
strh r0, [r4, #4]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __umodsi3
adds r0, #5
strh r0, [r4, #6]
ldr r7, [r5, #0x44]
mov r5, sp
ldr r4, _0804D2F8 @ =0x00989680
adds r0, r7, #0
adds r1, r4, #0
bl __udivsi3
adds r0, #5
strh r0, [r5, #8]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __umodsi3
ldr r4, _0804D2FC @ =0x000F4240
adds r1, r4, #0
bl __udivsi3
adds r0, #0x13
strh r0, [r5, #0xa]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __umodsi3
ldr r4, _0804D300 @ =0x000186A0
adds r1, r4, #0
bl __udivsi3
adds r0, #5
strh r0, [r5, #0xc]
mov r5, sp
adds r0, r7, #0
adds r1, r4, #0
bl __umodsi3
mov r1, r8
bl __udivsi3
adds r0, #5
strh r0, [r5, #0xe]
mov r4, sp
adds r0, r7, #0
mov r1, r8
bl __umodsi3
adds r1, r6, #0
bl __udivsi3
adds r0, #0x13
strh r0, [r4, #0x10]
mov r4, sp
adds r0, r7, #0
adds r1, r6, #0
bl __umodsi3
movs r1, #0x64
bl __udivsi3
adds r0, #5
strh r0, [r4, #0x12]
mov r4, sp
adds r0, r7, #0
movs r1, #0x64
bl __umodsi3
movs r1, #0xa
bl __udivsi3
adds r0, #5
strh r0, [r4, #0x14]
mov r4, sp
adds r0, r7, #0
movs r1, #0xa
bl __umodsi3
adds r0, #5
strh r0, [r4, #0x16]
movs r3, #0
ldr r1, _0804D304 @ =gUnknown_03005C00
mov sl, r1
movs r4, #0x1e
_0804D09C:
lsls r0, r3, #0x10
asrs r2, r0, #0x10
lsls r0, r2, #1
mov r5, sp
adds r1, r5, r0
movs r7, #0
ldrsh r0, [r1, r7]
cmp r0, #5
beq _0804D0B2
cmp r0, #0x13
bne _0804D0C0
_0804D0B2:
strh r4, [r1]
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
ble _0804D09C
_0804D0C0:
lsls r1, r3, #0x10
adds r3, r1, #0
asrs r0, r3, #0x10
cmp r0, #0xb
bgt _0804D10A
ldr r5, _0804D304 @ =gUnknown_03005C00
asrs r6, r1, #0x10
_0804D0CE:
asrs r3, r3, #0x10
subs r1, r3, r6
ldr r0, _0804D308 @ =0x000007C1
adds r2, r1, r0
lsls r2, r2, #1
adds r2, r2, r5
lsls r0, r3, #1
mov r7, sp
adds r4, r7, r0
movs r7, #0
ldrsh r0, [r4, r7]
lsls r0, r0, #1
ldr r7, _0804D30C @ =0xFFFFC160
adds r0, r0, r7
strh r0, [r2]
ldr r0, _0804D310 @ =0x000007E1
adds r1, r1, r0
lsls r1, r1, #1
adds r1, r1, r5
movs r2, #0
ldrsh r0, [r4, r2]
lsls r0, r0, #1
adds r7, #1
adds r0, r0, r7
strh r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
asrs r0, r3, #0x10
cmp r0, #0xb
ble _0804D0CE
_0804D10A:
mov r1, sb
ldr r0, [r1]
movs r3, #0xbe
lsls r3, r3, #3
adds r2, r0, r3
ldrh r0, [r2]
ldr r1, _0804D314 @ =0x000003E7
cmp r0, r1
bls _0804D11E
strh r1, [r2]
_0804D11E:
mov r5, sp
mov r2, sb
ldr r4, [r2]
adds r4, r4, r3
ldrh r0, [r4]
movs r1, #0x64
bl __udivsi3
strh r0, [r5, #4]
mov r5, sp
ldrh r0, [r4]
movs r1, #0x64
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xa
bl __udivsi3
strh r0, [r5, #2]
mov r5, sp
ldrh r0, [r4]
movs r1, #0xa
bl __umodsi3
strh r0, [r5]
mov r6, sl
ldr r5, _0804D318 @ =0x00000FA2
adds r1, r6, r5
ldr r0, _0804D31C @ =0x0000C17E
strh r0, [r1]
ldr r7, _0804D320 @ =0x00000FE2
adds r1, r6, r7
adds r0, #1
strh r0, [r1]
mov r0, sp
movs r1, #4
ldrsh r0, [r0, r1]
adds r0, #5
lsls r0, r0, #1
ldr r2, _0804D30C @ =0xFFFFC160
adds r7, r2, #0
adds r0, r0, r7
adds r5, #2
adds r1, r6, r5
strh r0, [r1]
mov r0, sp
movs r1, #4
ldrsh r0, [r0, r1]
adds r0, #5
lsls r0, r0, #1
adds r2, #1
mov r8, r2
add r0, r8
adds r5, #0x40
adds r1, r6, r5
strh r0, [r1]
mov r0, sp
movs r1, #2
ldrsh r0, [r0, r1]
adds r0, #5
lsls r0, r0, #1
adds r0, r0, r7
ldr r2, _0804D324 @ =0x00000FA6
adds r1, r6, r2
strh r0, [r1]
mov r0, sp
movs r5, #2
ldrsh r0, [r0, r5]
adds r0, #5
lsls r0, r0, #1
add r0, r8
adds r2, #0x40
adds r1, r6, r2
strh r0, [r1]
mov r0, sp
movs r5, #0
ldrsh r0, [r0, r5]
adds r0, #5
lsls r0, r0, #1
adds r0, r0, r7
subs r2, #0x3e
adds r1, r6, r2
strh r0, [r1]
mov r0, sp
movs r5, #0
ldrsh r0, [r0, r5]
adds r0, #5
lsls r0, r0, #1
add r0, r8
adds r2, #0x40
adds r1, r6, r2
strh r0, [r1]
mov r5, sb
ldr r0, [r5]
movs r2, #0xc9
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0x63
bls _0804D1EC
movs r0, #0x63
strb r0, [r1]
_0804D1EC:
mov r5, sp
mov r0, sb
ldr r4, [r0]
adds r4, r4, r2
ldrb r0, [r4]
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r5, #2]
mov r5, sp
ldrb r0, [r4]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r5]
ldr r2, _0804D328 @ =0x00000FAC
adds r1, r6, r2
ldr r0, _0804D32C @ =0x0000C19C
strh r0, [r1]
ldr r5, _0804D330 @ =0x00000FEC
adds r1, r6, r5
adds r0, #1
strh r0, [r1]
mov r0, sp
movs r1, #2
ldrsh r0, [r0, r1]
adds r0, #5
lsls r0, r0, #1
adds r0, r0, r7
adds r2, #2
adds r1, r6, r2
strh r0, [r1]
mov r0, sp
movs r5, #2
ldrsh r0, [r0, r5]
adds r0, #5
lsls r0, r0, #1
add r0, r8
adds r2, #0x40
adds r1, r6, r2
strh r0, [r1]
mov r0, sp
movs r5, #0
ldrsh r0, [r0, r5]
adds r0, #5
lsls r0, r0, #1
adds r0, r0, r7
subs r2, #0x3e
adds r1, r6, r2
strh r0, [r1]
mov r0, sp
movs r5, #0
ldrsh r0, [r0, r5]
adds r0, #5
lsls r0, r0, #1
add r0, r8
adds r2, #0x40
adds r1, r6, r2
strh r0, [r1]
mov r5, sb
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x30
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #9
ble _0804D27E
movs r0, #9
strb r0, [r1]
_0804D27E:
ldr r0, _0804D334 @ =0x00000FB4
adds r1, r6, r0
ldr r0, _0804D338 @ =0x0000C180
strh r0, [r1]
ldr r2, _0804D33C @ =0x00000FF4
adds r1, r6, r2
adds r0, #1
strh r0, [r1]
mov r5, sb
ldr r0, [r5]
adds r0, #0x30
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #5
lsls r0, r0, #1
adds r0, r0, r7
ldr r7, _0804D340 @ =0x00000FB6
adds r1, r6, r7
strh r0, [r1]
ldr r0, [r5]
adds r0, #0x30
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #5
lsls r0, r0, #1
add r0, r8
adds r2, #2
adds r1, r6, r2
strh r0, [r1]
ldr r1, [r5]
movs r5, #0xe5
lsls r5, r5, #1
adds r0, r1, r5
movs r7, #0
ldrsh r0, [r0, r7]
cmp r0, #0xd
bne _0804D384
movs r2, #0xee
lsls r2, r2, #1
adds r0, r1, r2
ldrh r1, [r0]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _0804D350
ldr r5, _0804D344 @ =0x00000FBA
adds r1, r6, r5
ldr r0, _0804D348 @ =0x0000C19A
strh r0, [r1]
ldr r7, _0804D34C @ =0x00000FFA
adds r1, r6, r7
b _0804D35C
.align 2, 0
_0804D2EC: .4byte 0x0000270F
_0804D2F0: .4byte 0x05F5E0FF
_0804D2F4: .4byte 0x00002710
_0804D2F8: .4byte 0x00989680
_0804D2FC: .4byte 0x000F4240
_0804D300: .4byte 0x000186A0
_0804D304: .4byte gUnknown_03005C00
_0804D308: .4byte 0x000007C1
_0804D30C: .4byte 0xFFFFC160
_0804D310: .4byte 0x000007E1
_0804D314: .4byte 0x000003E7
_0804D318: .4byte 0x00000FA2
_0804D31C: .4byte 0x0000C17E
_0804D320: .4byte 0x00000FE2
_0804D324: .4byte 0x00000FA6
_0804D328: .4byte 0x00000FAC
_0804D32C: .4byte 0x0000C19C
_0804D330: .4byte 0x00000FEC
_0804D334: .4byte 0x00000FB4
_0804D338: .4byte 0x0000C180
_0804D33C: .4byte 0x00000FF4
_0804D340: .4byte 0x00000FB6
_0804D344: .4byte 0x00000FBA
_0804D348: .4byte 0x0000C19A
_0804D34C: .4byte 0x00000FFA
_0804D350:
ldr r0, _0804D378 @ =0x00000FBA
adds r1, r6, r0
ldr r0, _0804D37C @ =0x0000C182
strh r0, [r1]
ldr r2, _0804D380 @ =0x00000FFA
adds r1, r6, r2
_0804D35C:
adds r0, #1
strh r0, [r1]
mov r5, sb
ldr r0, [r5]
movs r7, #0xee
lsls r7, r7, #1
adds r4, r0, r7
ldrh r0, [r4]
cmp r0, #0
beq _0804D394
subs r0, #1
strh r0, [r4]
b _0804D394
.align 2, 0
_0804D378: .4byte 0x00000FBA
_0804D37C: .4byte 0x0000C182
_0804D380: .4byte 0x00000FFA
_0804D384:
ldr r1, _0804D3B4 @ =0x00000FBA
add r1, sl
ldr r0, _0804D3B8 @ =0x0000C19E
strh r0, [r1]
ldr r1, _0804D3BC @ =0x00000FFA
add r1, sl
adds r0, #1
strh r0, [r1]
_0804D394:
ldr r1, _0804D3C0 @ =0x040000D4
ldr r0, _0804D3C4 @ =gUnknown_03006B80
str r0, [r1]
ldr r0, _0804D3C8 @ =0x06002F80
str r0, [r1, #4]
ldr r0, _0804D3CC @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
add sp, #0x18
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804D3B4: .4byte 0x00000FBA
_0804D3B8: .4byte 0x0000C19E
_0804D3BC: .4byte 0x00000FFA
_0804D3C0: .4byte 0x040000D4
_0804D3C4: .4byte gUnknown_03006B80
_0804D3C8: .4byte 0x06002F80
_0804D3CC: .4byte 0x80000040
thumb_func_start sub_4D3D0
sub_4D3D0: @ 0x0804D3D0
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
ldr r1, _0804D4C8 @ =gUnknown_020314E0
ldr r2, [r1]
movs r3, #0xa5
lsls r3, r3, #2
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r1
cmp r0, #0
bne _0804D3F2
b _0804D628
_0804D3F2:
ldr r5, _0804D4CC @ =0x00000296
adds r1, r2, r5
ldrh r2, [r1]
cmp r2, #0
bne _0804D3FE
b _0804D628
_0804D3FE:
cmp r0, #2
bne _0804D40E
ldr r0, _0804D4D0 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _0804D40E
subs r0, r2, #1
strh r0, [r1]
_0804D40E:
mov r5, sp
mov r0, sb
ldr r6, [r0]
ldr r1, _0804D4CC @ =0x00000296
adds r7, r6, r1
ldrh r0, [r7]
movs r4, #0xe1
lsls r4, r4, #4
adds r1, r4, #0
bl __udivsi3
strh r0, [r5]
ldrh r0, [r7]
adds r1, r4, #0
bl __umodsi3
adds r4, r0, #0
mov r1, sp
movs r0, #0xa
strh r0, [r1, #2]
mov r8, sp
lsls r4, r4, #0x10
asrs r4, r4, #0x10
movs r5, #0x96
lsls r5, r5, #2
adds r0, r4, #0
adds r1, r5, #0
bl __divsi3
mov r2, r8
strh r0, [r2, #4]
adds r0, r4, #0
adds r1, r5, #0
bl __modsi3
mov r4, sp
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x3c
bl __divsi3
strh r0, [r4, #6]
movs r3, #0xa5
lsls r3, r3, #2
adds r6, r6, r3
movs r0, #0
ldrsb r0, [r6, r0]
cmp r0, #3
bne _0804D4F4
movs r1, #0
ldr r6, _0804D4D4 @ =gUnknown_03005EC0
ldr r5, _0804D4D8 @ =0xFFFFFD40
adds r3, r6, r5
ldr r5, _0804D4DC @ =0x00000179
ldr r2, _0804D4E0 @ =0x000001FF
ldr r4, _0804D4E4 @ =0x00000199
_0804D47E:
lsls r0, r1, #0x10
asrs r0, r0, #0x10
adds r1, r0, r5
lsls r1, r1, #1
adds r1, r1, r3
strh r2, [r1]
adds r1, r0, r4
lsls r1, r1, #1
adds r1, r1, r3
strh r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804D47E
ldr r1, _0804D4E8 @ =0x040000D4
str r6, [r1]
ldr r0, _0804D4EC @ =0x060022C0
str r0, [r1, #4]
ldr r0, _0804D4F0 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
mov r1, sb
ldr r0, [r1]
movs r2, #0xa5
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #0
strb r1, [r0]
mov r3, sb
ldr r0, [r3]
ldr r5, _0804D4CC @ =0x00000296
adds r0, r0, r5
strh r1, [r0]
b _0804D556
.align 2, 0
_0804D4C8: .4byte gUnknown_020314E0
_0804D4CC: .4byte 0x00000296
_0804D4D0: .4byte gMain
_0804D4D4: .4byte gUnknown_03005EC0
_0804D4D8: .4byte 0xFFFFFD40
_0804D4DC: .4byte 0x00000179
_0804D4E0: .4byte 0x000001FF
_0804D4E4: .4byte 0x00000199
_0804D4E8: .4byte 0x040000D4
_0804D4EC: .4byte 0x060022C0
_0804D4F0: .4byte 0x80000040
_0804D4F4:
ldrh r0, [r7]
cmp r0, #0
bne _0804D500
bl sub_4D648
b _0804D542
_0804D500:
movs r1, #0
ldr r4, _0804D578 @ =gUnknown_03005C00
_0804D504:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
ldr r0, _0804D57C @ =0x00000179
adds r1, r2, r0
lsls r1, r1, #1
adds r1, r1, r4
lsls r0, r2, #1
mov r5, sp
adds r3, r5, r0
movs r5, #0
ldrsh r0, [r3, r5]
lsls r0, r0, #1
ldr r5, _0804D580 @ =0xFFFFC140
adds r0, r0, r5
strh r0, [r1]
ldr r0, _0804D584 @ =0x00000199
adds r1, r2, r0
lsls r1, r1, #1
adds r1, r1, r4
movs r5, #0
ldrsh r0, [r3, r5]
lsls r0, r0, #1
ldr r3, _0804D588 @ =0xFFFFC141
adds r0, r0, r3
strh r0, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #3
ble _0804D504
_0804D542:
ldr r1, _0804D58C @ =0x040000D4
ldr r0, _0804D590 @ =gUnknown_03005EC0
str r0, [r1]
ldr r0, _0804D594 @ =0x060022C0
str r0, [r1, #4]
ldr r0, _0804D598 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r5, _0804D59C @ =gUnknown_020314E0
mov sb, r5
_0804D556:
mov r1, sb
ldr r0, [r1]
ldr r2, _0804D5A0 @ =0x00000296
adds r3, r0, r2
ldrh r2, [r3]
adds r1, r2, #0
movs r0, #0xe1
lsls r0, r0, #2
cmp r1, r0
bhi _0804D5E8
movs r0, #8
ands r0, r2
cmp r0, #0
beq _0804D5A8
ldr r1, _0804D58C @ =0x040000D4
ldr r0, _0804D5A4 @ =gUnknown_086B0884
b _0804D5AC
.align 2, 0
_0804D578: .4byte gUnknown_03005C00
_0804D57C: .4byte 0x00000179
_0804D580: .4byte 0xFFFFC140
_0804D584: .4byte 0x00000199
_0804D588: .4byte 0xFFFFC141
_0804D58C: .4byte 0x040000D4
_0804D590: .4byte gUnknown_03005EC0
_0804D594: .4byte 0x060022C0
_0804D598: .4byte 0x80000040
_0804D59C: .4byte gUnknown_020314E0
_0804D5A0: .4byte 0x00000296
_0804D5A4: .4byte gUnknown_086B0884
_0804D5A8:
ldr r1, _0804D5D4 @ =0x040000D4
ldr r0, _0804D5D8 @ =gUnknown_081C0064
_0804D5AC:
str r0, [r1]
ldr r0, _0804D5DC @ =0x05000180
str r0, [r1, #4]
ldr r0, _0804D5E0 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
mov r3, sb
ldr r0, [r3]
ldr r5, _0804D5E4 @ =0x00000296
adds r0, r0, r5
ldrh r1, [r0]
movs r0, #0xe1
lsls r0, r0, #2
cmp r1, r0
bne _0804D628
movs r0, #0x19
bl m4aSongNumStart
b _0804D628
.align 2, 0
_0804D5D4: .4byte 0x040000D4
_0804D5D8: .4byte gUnknown_081C0064
_0804D5DC: .4byte 0x05000180
_0804D5E0: .4byte 0x80000010
_0804D5E4: .4byte 0x00000296
_0804D5E8:
movs r0, #0xe1
lsls r0, r0, #3
cmp r1, r0
bhi _0804D628
ldrh r0, [r3]
movs r1, #0x16
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xb
bl __udivsi3
lsls r0, r0, #0x10
cmp r0, #0
beq _0804D618
ldr r1, _0804D610 @ =0x040000D4
ldr r0, _0804D614 @ =gUnknown_086B08A4
b _0804D61C
.align 2, 0
_0804D610: .4byte 0x040000D4
_0804D614: .4byte gUnknown_086B08A4
_0804D618:
ldr r1, _0804D638 @ =0x040000D4
ldr r0, _0804D63C @ =gUnknown_081C0064
_0804D61C:
str r0, [r1]
ldr r0, _0804D640 @ =0x05000180
str r0, [r1, #4]
ldr r0, _0804D644 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804D628:
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804D638: .4byte 0x040000D4
_0804D63C: .4byte gUnknown_081C0064
_0804D640: .4byte 0x05000180
_0804D644: .4byte 0x80000010
thumb_func_start sub_4D648
sub_4D648: @ 0x0804D648
push {r4, r5, r6, lr}
ldr r2, _0804D6A0 @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
ldr r2, _0804D6A4 @ =0x00000296
adds r0, r0, r2
strh r1, [r0]
ldr r6, _0804D6A8 @ =gUnknown_03005EC0
ldr r0, _0804D6AC @ =0xFFFFFD40
adds r3, r6, r0
ldr r5, _0804D6B0 @ =0x00000179
subs r2, #0x97
ldr r4, _0804D6B4 @ =0x00000199
_0804D66C:
lsls r0, r1, #0x10
asrs r0, r0, #0x10
adds r1, r0, r5
lsls r1, r1, #1
adds r1, r1, r3
strh r2, [r1]
adds r1, r0, r4
lsls r1, r1, #1
adds r1, r1, r3
strh r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _0804D66C
ldr r1, _0804D6B8 @ =0x040000D4
str r6, [r1]
ldr r0, _0804D6BC @ =0x060022C0
str r0, [r1, #4]
ldr r0, _0804D6C0 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804D6A0: .4byte gUnknown_020314E0
_0804D6A4: .4byte 0x00000296
_0804D6A8: .4byte gUnknown_03005EC0
_0804D6AC: .4byte 0xFFFFFD40
_0804D6B0: .4byte 0x00000179
_0804D6B4: .4byte 0x00000199
_0804D6B8: .4byte 0x040000D4
_0804D6BC: .4byte 0x060022C0
_0804D6C0: .4byte 0x80000040
thumb_func_start sub_4D6C4
sub_4D6C4: @ 0x0804D6C4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
movs r0, #0
mov ip, r0
ldr r0, _0804D7B0 @ =gMain
ldrb r2, [r0, #4]
movs r3, #0
adds r7, r0, #0
cmp r2, #0
beq _0804D6E6
ldr r3, _0804D7B4 @ =0x0000FFE8
cmp r2, #1
beq _0804D6E6
movs r3, #0
movs r1, #8
mov ip, r1
_0804D6E6:
ldrb r0, [r7, #4]
cmp r0, #1
bls _0804D6EE
b _0804D810
_0804D6EE:
ldr r6, _0804D7B8 @ =gUnknown_020314E0
ldr r1, [r6]
lsls r0, r3, #0x10
asrs r0, r0, #0x10
subs r0, #0xf4
ldr r4, _0804D7BC @ =0x000005FC
adds r2, r1, r4
movs r5, #0
movs r3, #0
strh r0, [r2]
ldr r2, _0804D7C0 @ =0x000005FE
adds r0, r1, r2
strh r3, [r0]
ldr r0, _0804D7C4 @ =0x000005FB
adds r1, r1, r0
strb r5, [r1]
ldr r6, [r6]
ldr r0, _0804D7C8 @ =gUnknown_02031520
ldrh r1, [r0, #0x14]
adds r3, r6, #0
adds r3, #0x4c
strh r1, [r3]
ldrh r1, [r0, #0x16]
adds r5, r6, #0
adds r5, #0x4e
strh r1, [r5]
movs r1, #0x16
ldrsh r0, [r0, r1]
lsls r0, r0, #8
str r0, [r6, #0x54]
ldrh r1, [r3]
adds r0, r6, #0
adds r0, #0x58
strh r1, [r0]
adds r4, r6, r4
ldrh r0, [r4]
ldrh r2, [r5]
adds r0, r0, r2
adds r1, r6, #0
adds r1, #0x5a
strh r0, [r1]
ldrh r1, [r3]
mov r0, ip
lsls r2, r0, #0x10
asrs r2, r2, #0x10
adds r1, r2, r1
mov ip, r1
movs r1, #0xbc
lsls r1, r1, #2
adds r0, r7, r1
mov r1, ip
strh r1, [r0]
ldrh r0, [r4]
ldrh r1, [r5]
adds r0, r0, r1
ldr r1, _0804D7CC @ =0x000002F2
strh r0, [r1, r7]
ldrh r0, [r3]
adds r0, r2, r0
adds r1, #2
strh r0, [r1, r7]
ldrh r0, [r4]
ldrh r1, [r5]
adds r0, r0, r1
ldr r1, _0804D7D0 @ =0x000002F6
strh r0, [r1, r7]
ldrh r0, [r3]
adds r2, r2, r0
subs r1, #0xa
adds r0, r7, r1
strh r2, [r0]
ldrh r0, [r4]
ldrh r5, [r5]
adds r0, r0, r5
ldr r2, _0804D7D4 @ =0x000002EE
adds r1, r7, r2
strh r0, [r1]
ldrb r0, [r7, #4]
cmp r0, #0
bne _0804D7E4
ldr r5, _0804D7D8 @ =0x00000283
adds r0, r6, r5
ldrb r0, [r0]
movs r1, #5
bl __udivsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0804D7DC
movs r0, #0x1c
bl m4aSongNumStart
b _0804D90E
.align 2, 0
_0804D7B0: .4byte gMain
_0804D7B4: .4byte 0x0000FFE8
_0804D7B8: .4byte gUnknown_020314E0
_0804D7BC: .4byte 0x000005FC
_0804D7C0: .4byte 0x000005FE
_0804D7C4: .4byte 0x000005FB
_0804D7C8: .4byte gUnknown_02031520
_0804D7CC: .4byte 0x000002F2
_0804D7D0: .4byte 0x000002F6
_0804D7D4: .4byte 0x000002EE
_0804D7D8: .4byte 0x00000283
_0804D7DC:
movs r0, #0x5b
bl m4aSongNumStart
b _0804D90E
_0804D7E4:
ldr r7, _0804D804 @ =0x00000283
adds r0, r6, r7
ldrb r0, [r0]
movs r1, #5
bl __udivsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0804D808
movs r0, #0x20
bl m4aSongNumStart
b _0804D90E
.align 2, 0
_0804D804: .4byte 0x00000283
_0804D808:
movs r0, #0x5c
bl m4aSongNumStart
b _0804D90E
_0804D810:
ldr r3, _0804D838 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r2, _0804D83C @ =0x000005FC
adds r0, r1, r2
movs r4, #0
movs r2, #0
strh r2, [r0]
ldr r5, _0804D840 @ =0x000005FE
adds r0, r1, r5
strh r2, [r0]
ldr r0, _0804D844 @ =0x000005FB
adds r1, r1, r0
strb r4, [r1]
ldrb r0, [r7, #4]
cmp r0, #3
bhi _0804D84C
ldr r0, [r3]
adds r0, #0xe6
ldr r1, _0804D848 @ =0x0000FFE8
b _0804D862
.align 2, 0
_0804D838: .4byte gUnknown_020314E0
_0804D83C: .4byte 0x000005FC
_0804D840: .4byte 0x000005FE
_0804D844: .4byte 0x000005FB
_0804D848: .4byte 0x0000FFE8
_0804D84C:
cmp r0, #6
bne _0804D85C
ldr r0, [r3]
adds r0, #0xe6
ldr r1, _0804D858 @ =0x0000FFA8
b _0804D862
.align 2, 0
_0804D858: .4byte 0x0000FFA8
_0804D85C:
ldr r0, [r3]
adds r0, #0xe6
ldr r1, _0804D93C @ =0x0000FFC0
_0804D862:
strh r1, [r0]
ldr r0, _0804D940 @ =gUnknown_020314E0
ldr r5, [r0]
ldr r1, _0804D944 @ =gUnknown_02031520
ldrh r0, [r1, #0x14]
adds r4, r5, #0
adds r4, #0x4c
strh r0, [r4]
adds r0, r5, #0
adds r0, #0xe6
ldrh r0, [r0]
ldrh r2, [r1, #0x16]
adds r0, r0, r2
adds r6, r5, #0
adds r6, #0x4e
strh r0, [r6]
movs r7, #0x16
ldrsh r0, [r1, r7]
lsls r0, r0, #8
str r0, [r5, #0x54]
ldrh r1, [r4]
adds r0, r5, #0
adds r0, #0x58
strh r1, [r0]
ldr r1, _0804D948 @ =0x000005FC
adds r0, r5, r1
ldrh r0, [r0]
ldrh r2, [r6]
adds r0, r0, r2
adds r1, r5, #0
adds r1, #0x5a
strh r0, [r1]
ldr r3, _0804D94C @ =gMain
ldrh r0, [r4]
mov r7, ip
lsls r1, r7, #0x10
asrs r1, r1, #0x10
adds r0, r1, r0
mov r8, r0
movs r2, #0xbc
lsls r2, r2, #2
adds r0, r3, r2
mov r7, r8
strh r7, [r0]
ldrh r2, [r6]
ldr r7, _0804D950 @ =0x000002F2
adds r0, r3, r7
strh r2, [r0]
ldrh r0, [r4]
adds r0, r1, r0
movs r2, #0xbd
lsls r2, r2, #2
adds r2, r2, r3
mov ip, r2
strh r0, [r2]
ldrh r2, [r6]
adds r7, #4
adds r0, r3, r7
strh r2, [r0]
ldrh r0, [r4]
adds r1, r1, r0
movs r2, #0xbb
lsls r2, r2, #2
adds r0, r3, r2
strh r1, [r0]
movs r7, #0
ldrsh r0, [r6, r7]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r2, #2
adds r1, r3, r2
strh r0, [r1]
ldrb r0, [r3, #4]
cmp r0, #3
bne _0804D90E
movs r7, #0xa4
lsls r7, r7, #2
adds r0, r5, r7
ldr r0, [r0]
ldr r1, _0804D954 @ =0x000007FF
ands r0, r1
lsrs r0, r0, #3
add r0, r8
mov r1, ip
strh r0, [r1]
_0804D90E:
ldr r1, _0804D94C @ =gMain
ldr r5, _0804D958 @ =0x000002EA
adds r2, r1, r5
movs r0, #0x50
strh r0, [r2]
ldr r0, _0804D940 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r7, _0804D95C @ =0x000002F6
adds r1, r1, r7
ldrh r1, [r1]
adds r0, r2, #0
adds r0, #0xcc
strh r1, [r0]
subs r0, #2
strh r1, [r0]
movs r0, #0x80
lsls r0, r0, #5
str r0, [r2, #0x2c]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804D93C: .4byte 0x0000FFC0
_0804D940: .4byte gUnknown_020314E0
_0804D944: .4byte gUnknown_02031520
_0804D948: .4byte 0x000005FC
_0804D94C: .4byte gMain
_0804D950: .4byte 0x000002F2
_0804D954: .4byte 0x000007FF
_0804D958: .4byte 0x000002EA
_0804D95C: .4byte 0x000002F6
thumb_func_start sub_4D960
sub_4D960: @ 0x0804D960
push {r4, r5, r6, r7, lr}
movs r7, #0x80
lsls r7, r7, #5
ldr r0, _0804D9A4 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _0804D972
bl sub_4E2F8
_0804D972:
ldr r1, _0804D9A8 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r0, _0804D9AC @ =0x000005FB
adds r4, r2, r0
movs r0, #0
ldrsb r0, [r4, r0]
adds r6, r1, #0
cmp r0, #0
beq _0804D9C2
ldr r3, _0804D9B0 @ =0x000005FC
adds r1, r2, r3
ldr r5, _0804D9B4 @ =0x000005FE
adds r0, r2, r5
ldrh r3, [r1]
movs r5, #0
ldrsh r2, [r1, r5]
movs r5, #0
ldrsh r0, [r0, r5]
cmp r2, r0
beq _0804D9BE
cmp r2, r0
ble _0804D9B8
subs r0, r3, #1
strh r0, [r1]
b _0804D9C2
.align 2, 0
_0804D9A4: .4byte gMain
_0804D9A8: .4byte gUnknown_020314E0
_0804D9AC: .4byte 0x000005FB
_0804D9B0: .4byte 0x000005FC
_0804D9B4: .4byte 0x000005FE
_0804D9B8:
adds r0, r3, #1
strh r0, [r1]
b _0804D9C2
_0804D9BE:
movs r0, #0
strb r0, [r4]
_0804D9C2:
ldr r5, [r6]
ldrb r0, [r5, #0x1f]
cmp r0, #0
bne _0804D9E0
ldr r1, _0804DA2C @ =0x00001330
adds r0, r5, r1
ldr r0, [r0]
movs r2, #0x32
ldrsh r1, [r0, r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
movs r3, #0x80
lsls r3, r3, #5
adds r7, r0, r3
_0804D9E0:
ldr r4, [r5, #0x2c]
subs r0, r7, r4
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
str r4, [r5, #0x2c]
ldr r1, _0804DA2C @ =0x00001330
adds r0, r5, r1
ldr r0, [r0]
ldr r0, [r0, #0x38]
adds r1, r0, r4
ldr r2, _0804DA30 @ =gUnknown_02031520
movs r3, #0x18
ldrsh r0, [r2, r3]
lsls r0, r0, #8
cmp r1, r0
bgt _0804DA0E
movs r4, #0x1a
ldrsh r0, [r2, r4]
lsls r0, r0, #8
cmp r1, r0
bge _0804DA10
_0804DA0E:
adds r1, r0, #0
_0804DA10:
ldr r5, _0804DA34 @ =0xFFFFB000
adds r1, r1, r5
ldr r0, [r6]
ldr r4, [r0, #0x54]
subs r0, r1, r4
movs r1, #0xc
bl __divsi3
adds r1, r0, #0
cmp r1, #0
ble _0804DA38
cmp r1, #0x4f
bgt _0804DA42
b _0804DA40
.align 2, 0
_0804DA2C: .4byte 0x00001330
_0804DA30: .4byte gUnknown_02031520
_0804DA34: .4byte 0xFFFFB000
_0804DA38:
movs r0, #0x50
rsbs r0, r0, #0
cmp r1, r0
ble _0804DA42
_0804DA40:
movs r1, #0
_0804DA42:
adds r4, r4, r1
ldr r1, [r6]
ldr r2, _0804DA7C @ =0x000005FA
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804DAAC
str r4, [r1, #0x54]
adds r0, r4, #0
cmp r0, #0
bge _0804DA5E
adds r0, #0xff
_0804DA5E:
asrs r0, r0, #8
adds r2, r1, #0
adds r2, #0x4e
strh r0, [r2]
ldr r3, _0804DA80 @ =0x00001330
adds r0, r1, r3
ldr r0, [r0]
movs r4, #0x10
ldrsh r0, [r0, r4]
cmp r0, #0xe5
ble _0804DA84
adds r1, #0x4c
ldrh r0, [r1]
adds r0, #1
b _0804DA8A
.align 2, 0
_0804DA7C: .4byte 0x000005FA
_0804DA80: .4byte 0x00001330
_0804DA84:
adds r1, #0x4c
ldrh r0, [r1]
subs r0, #1
_0804DA8A:
strh r0, [r1]
ldr r0, _0804DAA0 @ =gUnknown_020314E0
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0x4c
movs r5, #0
ldrsh r0, [r1, r5]
cmp r0, #0x10
ble _0804DAA4
movs r0, #0x10
b _0804DAAA
.align 2, 0
_0804DAA0: .4byte gUnknown_020314E0
_0804DAA4:
cmp r0, #0
bge _0804DAAC
movs r0, #0
_0804DAAA:
strh r0, [r1]
_0804DAAC:
bl sub_4DFA0
ldr r3, _0804DB14 @ =gMain
ldr r0, _0804DB18 @ =gUnknown_020314E0
ldr r4, [r0]
adds r2, r4, #0
adds r2, #0x4c
movs r1, #0x90
lsls r1, r1, #1
adds r0, r4, r1
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r2, [r2]
adds r1, r1, r2
ldr r2, _0804DB1C @ =0x000002AA
adds r0, r4, r2
ldrh r0, [r0]
adds r0, r0, r1
movs r5, #0xbd
lsls r5, r5, #2
adds r1, r3, r5
strh r0, [r1]
adds r1, r4, #0
adds r1, #0x4e
ldr r2, _0804DB20 @ =0x00000121
adds r0, r4, r2
movs r2, #0
ldrsb r2, [r0, r2]
ldrh r1, [r1]
adds r2, r2, r1
ldr r5, _0804DB24 @ =0x000005FC
adds r0, r4, r5
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0xe6
adds r1, r1, r2
ldrh r0, [r0]
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0xcc
strh r1, [r0]
ldr r0, _0804DB28 @ =0x000002F6
adds r3, r3, r0
ldrh r0, [r3]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r1, r0, #0x10
cmp r1, #8
ble _0804DB2C
movs r2, #8
b _0804DB36
.align 2, 0
_0804DB14: .4byte gMain
_0804DB18: .4byte gUnknown_020314E0
_0804DB1C: .4byte 0x000002AA
_0804DB20: .4byte 0x00000121
_0804DB24: .4byte 0x000005FC
_0804DB28: .4byte 0x000002F6
_0804DB2C:
movs r0, #8
rsbs r0, r0, #0
cmp r1, r0
bge _0804DB36
ldr r2, _0804DBE0 @ =0x0000FFF8
_0804DB36:
ldr r3, _0804DBE4 @ =gMain
cmp r2, #0
beq _0804DB46
ldr r4, _0804DBE8 @ =0x000002F6
adds r1, r3, r4
ldrh r0, [r1]
subs r0, r0, r2
strh r0, [r1]
_0804DB46:
movs r5, #0xbd
lsls r5, r5, #2
adds r0, r3, r5
ldrh r2, [r0]
movs r1, #0xbc
lsls r1, r1, #2
adds r0, r3, r1
strh r2, [r0]
ldr r4, _0804DBE8 @ =0x000002F6
adds r0, r3, r4
ldrh r1, [r0]
subs r5, #2
adds r0, r3, r5
strh r1, [r0]
subs r4, #0xa
adds r0, r3, r4
strh r2, [r0]
subs r5, #4
adds r0, r3, r5
strh r1, [r0]
ldr r0, _0804DBEC @ =gUnknown_020314E0
ldr r4, [r0]
adds r2, r4, #0
adds r2, #0x4c
movs r1, #0x90
lsls r1, r1, #1
adds r0, r4, r1
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r2, [r2]
adds r1, r1, r2
ldr r2, _0804DBF0 @ =0x000002AA
adds r0, r4, r2
ldrh r0, [r0]
adds r0, r0, r1
adds r1, r4, #0
adds r1, #0x58
strh r0, [r1]
adds r6, r4, #0
adds r6, #0x4e
ldr r3, _0804DBF4 @ =0x00000121
adds r3, r3, r4
mov ip, r3
movs r1, #0
ldrsb r1, [r3, r1]
ldrh r5, [r6]
adds r1, r1, r5
ldr r0, _0804DBF8 @ =0x000005FC
adds r3, r4, r0
ldrh r0, [r3]
adds r5, r4, #0
adds r5, #0xe6
adds r0, r0, r1
ldrh r1, [r5]
adds r0, r0, r1
adds r1, r4, #0
adds r1, #0x5a
strh r0, [r1]
adds r2, r4, #0
adds r2, #0x68
ldrh r1, [r2]
adds r0, r4, #0
adds r0, #0x6a
strh r1, [r0]
mov r4, ip
movs r1, #0
ldrsb r1, [r4, r1]
ldrh r6, [r6]
adds r1, r1, r6
ldrh r0, [r3]
adds r0, r0, r1
ldrh r5, [r5]
adds r0, r0, r5
strh r0, [r2]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804DBE0: .4byte 0x0000FFF8
_0804DBE4: .4byte gMain
_0804DBE8: .4byte 0x000002F6
_0804DBEC: .4byte gUnknown_020314E0
_0804DBF0: .4byte 0x000002AA
_0804DBF4: .4byte 0x00000121
_0804DBF8: .4byte 0x000005FC
thumb_func_start sub_4DBFC
sub_4DBFC: @ 0x0804DBFC
push {r4, r5, r6, r7, lr}
movs r6, #0x80
lsls r6, r6, #5
ldr r0, _0804DC48 @ =gMain
ldrb r0, [r0, #0xf]
movs r1, #0x41
rsbs r1, r1, #0
ands r0, r1
cmp r0, #0
bne _0804DC14
bl sub_4E468
_0804DC14:
ldr r1, _0804DC4C @ =gUnknown_020314E0
ldr r2, [r1]
ldr r0, _0804DC50 @ =0x000005FB
adds r4, r2, r0
movs r0, #0
ldrsb r0, [r4, r0]
adds r7, r1, #0
cmp r0, #0
beq _0804DC66
ldr r3, _0804DC54 @ =0x000005FC
adds r1, r2, r3
ldr r5, _0804DC58 @ =0x000005FE
adds r0, r2, r5
ldrh r3, [r1]
movs r5, #0
ldrsh r2, [r1, r5]
movs r5, #0
ldrsh r0, [r0, r5]
cmp r2, r0
beq _0804DC62
cmp r2, r0
ble _0804DC5C
subs r0, r3, #1
strh r0, [r1]
b _0804DC66
.align 2, 0
_0804DC48: .4byte gMain
_0804DC4C: .4byte gUnknown_020314E0
_0804DC50: .4byte 0x000005FB
_0804DC54: .4byte 0x000005FC
_0804DC58: .4byte 0x000005FE
_0804DC5C:
adds r0, r3, #1
strh r0, [r1]
b _0804DC66
_0804DC62:
movs r0, #0
strb r0, [r4]
_0804DC66:
ldr r5, [r7]
ldrb r0, [r5, #0x1f]
cmp r0, #0
bne _0804DC84
ldr r6, _0804DCD0 @ =0x00001330
adds r0, r5, r6
ldr r0, [r0]
movs r2, #0x32
ldrsh r1, [r0, r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
movs r3, #0x80
lsls r3, r3, #5
adds r6, r0, r3
_0804DC84:
ldr r4, [r5, #0x2c]
subs r0, r6, r4
movs r1, #0xa
bl __divsi3
adds r4, r4, r0
str r4, [r5, #0x2c]
ldr r6, _0804DCD0 @ =0x00001330
adds r0, r5, r6
ldr r0, [r0]
ldr r0, [r0, #0x38]
adds r2, r0, r4
ldr r1, _0804DCD4 @ =gUnknown_02031520
movs r3, #0x18
ldrsh r0, [r1, r3]
lsls r0, r0, #8
cmp r2, r0
bgt _0804DCB2
movs r4, #0x1a
ldrsh r0, [r1, r4]
lsls r0, r0, #8
cmp r2, r0
bge _0804DCB4
_0804DCB2:
adds r2, r0, #0
_0804DCB4:
ldr r5, _0804DCD8 @ =0xFFFFB000
adds r2, r2, r5
ldr r0, [r7]
ldr r4, [r0, #0x54]
subs r0, r2, r4
movs r1, #0xc
bl __divsi3
adds r1, r0, #0
cmp r1, #0
ble _0804DCDC
cmp r1, #0x4f
bgt _0804DCE6
b _0804DCE4
.align 2, 0
_0804DCD0: .4byte 0x00001330
_0804DCD4: .4byte gUnknown_02031520
_0804DCD8: .4byte 0xFFFFB000
_0804DCDC:
movs r0, #0x50
rsbs r0, r0, #0
cmp r1, r0
ble _0804DCE6
_0804DCE4:
movs r1, #0
_0804DCE6:
adds r4, r4, r1
ldr r0, _0804DD80 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r6, _0804DD84 @ =0x000005FA
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804DD0C
str r4, [r2, #0x54]
adds r0, r4, #0
cmp r0, #0
bge _0804DD04
adds r0, #0xff
_0804DD04:
asrs r1, r0, #8
adds r0, r2, #0
adds r0, #0x4e
strh r1, [r0]
_0804DD0C:
bl sub_4DFA0
ldr r2, _0804DD88 @ =gMain
ldr r0, _0804DD80 @ =gUnknown_020314E0
ldr r3, [r0]
adds r1, r3, #0
adds r1, #0x4c
movs r4, #0x90
lsls r4, r4, #1
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r1]
adds r0, r0, r1
ldr r5, _0804DD8C @ =0x000002AA
adds r1, r3, r5
adds r0, #8
ldrh r1, [r1]
adds r0, r0, r1
movs r6, #0xbc
lsls r6, r6, #2
adds r2, r2, r6
strh r0, [r2]
adds r2, r3, #0
adds r2, #0x4e
ldr r1, _0804DD90 @ =0x00000121
adds r0, r3, r1
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r2, [r2]
adds r1, r1, r2
ldr r2, _0804DD94 @ =0x000005FC
adds r0, r3, r2
ldrh r0, [r0]
adds r2, r3, #0
adds r2, #0xe6
adds r0, r0, r1
ldrh r2, [r2]
adds r0, r0, r2
movs r4, #0xab
lsls r4, r4, #2
adds r1, r3, r4
ldrh r1, [r1]
adds r1, r1, r0
adds r0, r3, #0
adds r0, #0xcc
strh r1, [r0]
subs r0, #2
ldrh r0, [r0]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r1, r0, #0x10
cmp r1, #8
ble _0804DD98
movs r2, #8
b _0804DDA2
.align 2, 0
_0804DD80: .4byte gUnknown_020314E0
_0804DD84: .4byte 0x000005FA
_0804DD88: .4byte gMain
_0804DD8C: .4byte 0x000002AA
_0804DD90: .4byte 0x00000121
_0804DD94: .4byte 0x000005FC
_0804DD98:
movs r0, #8
rsbs r0, r0, #0
cmp r1, r0
bge _0804DDA2
ldr r2, _0804DDDC @ =0x0000FFF8
_0804DDA2:
lsls r0, r2, #0x10
asrs r2, r0, #0x10
ldr r7, _0804DDE0 @ =gUnknown_020314E0
cmp r2, #0
beq _0804DDB6
ldr r1, [r7]
adds r1, #0xca
ldrh r0, [r1]
subs r0, r0, r2
strh r0, [r1]
_0804DDB6:
ldr r1, _0804DDE4 @ =gMain
ldr r0, [r7]
adds r0, #0xca
ldrh r2, [r0]
ldr r5, _0804DDE8 @ =0x000002F2
adds r0, r1, r5
strh r2, [r0]
ldrb r0, [r1, #4]
subs r0, #2
adds r4, r1, #0
cmp r0, #5
bls _0804DDD0
b _0804DF18
_0804DDD0:
lsls r0, r0, #2
ldr r1, _0804DDEC @ =_0804DDF0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804DDDC: .4byte 0x0000FFF8
_0804DDE0: .4byte gUnknown_020314E0
_0804DDE4: .4byte gMain
_0804DDE8: .4byte 0x000002F2
_0804DDEC: .4byte _0804DDF0
_0804DDF0: @ jump table
.4byte _0804DE08 @ case 0
.4byte _0804DE4C @ case 1
.4byte _0804DE98 @ case 2
.4byte _0804DE98 @ case 3
.4byte _0804DEC8 @ case 4
.4byte _0804DEFC @ case 5
_0804DE08:
movs r6, #0xbc
lsls r6, r6, #2
adds r0, r4, r6
ldrh r2, [r0]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r4, r1
strh r2, [r0]
ldr r3, _0804DE40 @ =0x000002F2
adds r0, r4, r3
ldrh r1, [r0]
ldr r5, _0804DE44 @ =0x000002F6
adds r0, r4, r5
strh r1, [r0]
subs r6, #4
adds r0, r4, r6
strh r2, [r0]
ldr r0, [r7]
adds r0, #0xca
movs r1, #0
ldrsh r0, [r0, r1]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
ldr r2, _0804DE48 @ =0x000002EE
adds r1, r4, r2
strh r0, [r1]
b _0804DF18
.align 2, 0
_0804DE40: .4byte 0x000002F2
_0804DE44: .4byte 0x000002F6
_0804DE48: .4byte 0x000002EE
_0804DE4C:
movs r3, #0xbc
lsls r3, r3, #2
adds r2, r4, r3
ldr r0, [r7]
movs r5, #0xa4
lsls r5, r5, #2
adds r0, r0, r5
ldr r0, [r0]
ldr r1, _0804DE8C @ =0x000007FF
ands r0, r1
lsrs r0, r0, #3
ldrh r2, [r2]
adds r0, r2, r0
movs r6, #0xbd
lsls r6, r6, #2
adds r1, r4, r6
movs r3, #0
strh r0, [r1]
ldr r1, _0804DE90 @ =0x000002F2
adds r0, r4, r1
ldrh r1, [r0]
adds r5, #0x66
adds r0, r4, r5
strh r1, [r0]
subs r6, #8
adds r0, r4, r6
strh r2, [r0]
ldr r1, _0804DE94 @ =0x000002EE
adds r0, r4, r1
strh r3, [r0]
b _0804DF18
.align 2, 0
_0804DE8C: .4byte 0x000007FF
_0804DE90: .4byte 0x000002F2
_0804DE94: .4byte 0x000002EE
_0804DE98:
movs r2, #0xbc
lsls r2, r2, #2
adds r0, r4, r2
ldrh r2, [r0]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r4, r3
strh r2, [r0]
ldr r5, _0804DEC0 @ =0x000002F2
adds r0, r4, r5
ldrh r1, [r0]
ldr r6, _0804DEC4 @ =0x000002F6
adds r0, r4, r6
strh r1, [r0]
subs r3, #8
adds r0, r4, r3
strh r2, [r0]
subs r5, #4
adds r0, r4, r5
b _0804DF16
.align 2, 0
_0804DEC0: .4byte 0x000002F2
_0804DEC4: .4byte 0x000002F6
_0804DEC8:
movs r6, #0xbc
lsls r6, r6, #2
adds r0, r4, r6
ldrh r3, [r0]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r4, r1
strh r3, [r0]
ldr r5, _0804DEF4 @ =0x000002F2
adds r2, r4, r5
ldrh r0, [r2]
lsrs r0, r0, #2
adds r6, #6
adds r1, r4, r6
strh r0, [r1]
movs r1, #0xbb
lsls r1, r1, #2
adds r0, r4, r1
strh r3, [r0]
ldrh r1, [r2]
ldr r2, _0804DEF8 @ =0x000002EE
b _0804DF14
.align 2, 0
_0804DEF4: .4byte 0x000002F2
_0804DEF8: .4byte 0x000002EE
_0804DEFC:
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r4, r3
ldrh r1, [r0]
movs r5, #0xbd
lsls r5, r5, #2
adds r0, r4, r5
strh r1, [r0]
ldr r6, _0804DF8C @ =0x000002F2
adds r0, r4, r6
ldrh r1, [r0]
ldr r2, _0804DF90 @ =0x000002F6
_0804DF14:
adds r0, r4, r2
_0804DF16:
strh r1, [r0]
_0804DF18:
ldr r3, [r7]
adds r2, r3, #0
adds r2, #0x4c
movs r4, #0x90
lsls r4, r4, #1
adds r0, r3, r4
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r2, [r2]
adds r1, r1, r2
ldr r5, _0804DF94 @ =0x000002AA
adds r0, r3, r5
ldrh r0, [r0]
adds r0, r0, r1
adds r1, r3, #0
adds r1, #0x58
strh r0, [r1]
movs r6, #0x4e
adds r6, r6, r3
mov ip, r6
ldr r0, _0804DF98 @ =0x00000121
adds r5, r3, r0
movs r0, #0
ldrsb r0, [r5, r0]
ldrh r1, [r6]
adds r0, r0, r1
ldr r4, _0804DF9C @ =0x000005FC
adds r2, r3, r4
ldrh r1, [r2]
adds r4, r3, #0
adds r4, #0xe6
adds r1, r1, r0
ldrh r6, [r4]
adds r1, r1, r6
movs r6, #0xab
lsls r6, r6, #2
adds r0, r3, r6
ldrh r0, [r0]
adds r0, r0, r1
adds r1, r3, #0
adds r1, #0x5a
strh r0, [r1]
movs r1, #0
ldrsb r1, [r5, r1]
mov r0, ip
ldrh r0, [r0]
adds r1, r1, r0
ldrh r0, [r2]
adds r0, r0, r1
ldrh r4, [r4]
adds r0, r0, r4
adds r1, r3, #0
adds r1, #0x68
strh r0, [r1]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804DF8C: .4byte 0x000002F2
_0804DF90: .4byte 0x000002F6
_0804DF94: .4byte 0x000002AA
_0804DF98: .4byte 0x00000121
_0804DF9C: .4byte 0x000005FC
thumb_func_start sub_4DFA0
sub_4DFA0: @ 0x0804DFA0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #8
ldr r3, _0804E0C8 @ =gUnknown_020314E0
ldr r2, [r3]
adds r0, r2, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804E084
ldr r1, _0804E0CC @ =0x000005A4
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #2
beq _0804E084
ldr r4, _0804E0D0 @ =0x0000061C
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804E084
ldrb r0, [r2, #6]
cmp r0, #0
beq _0804E008
movs r1, #0x95
lsls r1, r1, #1
adds r0, r2, r1
ldrb r1, [r0]
cmp r1, #0
bne _0804E008
ldr r4, _0804E0D4 @ =0x00000129
adds r0, r2, r4
strb r1, [r0]
ldr r0, [r3]
movs r2, #0x94
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
bne _0804E008
movs r0, #4
strb r0, [r1]
movs r0, #0x78
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_0804E008:
ldr r2, _0804E0C8 @ =gUnknown_020314E0
ldr r1, [r2]
ldrb r0, [r1, #7]
cmp r0, #0
beq _0804E044
movs r3, #0x95
lsls r3, r3, #1
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, #0
bne _0804E044
ldr r4, _0804E0D4 @ =0x00000129
adds r1, r1, r4
movs r0, #1
strb r0, [r1]
ldr r0, [r2]
movs r2, #0x94
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
bne _0804E044
movs r0, #4
strb r0, [r1]
movs r0, #0x78
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_0804E044:
ldr r0, _0804E0C8 @ =gUnknown_020314E0
ldr r3, [r0]
ldrb r1, [r3, #8]
mov r8, r0
cmp r1, #0
beq _0804E084
movs r4, #0x95
lsls r4, r4, #1
adds r0, r3, r4
ldrb r0, [r0]
cmp r0, #0
bne _0804E084
ldr r0, _0804E0D4 @ =0x00000129
adds r1, r3, r0
movs r0, #2
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
movs r2, #0x94
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
bne _0804E096
movs r0, #4
strb r0, [r1]
movs r0, #0x78
bl m4aSongNumStart
movs r0, #8
bl sub_11B0
_0804E084:
ldr r0, _0804E0C8 @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0x94
lsls r3, r3, #1
adds r1, r1, r3
ldrb r1, [r1]
mov r8, r0
cmp r1, #0
beq _0804E174
_0804E096:
mov r4, r8
ldr r0, [r4]
movs r2, #0x94
lsls r2, r2, #1
adds r0, r0, r2
ldrb r1, [r0]
subs r1, #1
strb r1, [r0]
ldr r1, [r4]
adds r2, r1, r2
ldrb r3, [r2]
cmp r3, #0
bne _0804E174
ldr r2, _0804E0D4 @ =0x00000129
adds r0, r1, r2
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #1
beq _0804E10C
cmp r2, #1
bgt _0804E0D8
cmp r2, #0
beq _0804E0DE
b _0804E166
.align 2, 0
_0804E0C8: .4byte gUnknown_020314E0
_0804E0CC: .4byte 0x000005A4
_0804E0D0: .4byte 0x0000061C
_0804E0D4: .4byte 0x00000129
_0804E0D8:
cmp r2, #2
beq _0804E13C
b _0804E166
_0804E0DE:
movs r3, #0x8c
lsls r3, r3, #1
adds r0, r1, r3
movs r2, #6
strb r2, [r0]
mov r4, r8
ldr r0, [r4]
movs r1, #0x8e
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0xff
strb r1, [r0]
ldr r0, [r4]
adds r3, #2
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r4]
movs r4, #0x8f
lsls r4, r4, #1
adds r1, r0, r4
movs r0, #1
strb r0, [r1]
b _0804E166
_0804E10C:
ldr r3, _0804E134 @ =0x00000119
adds r0, r1, r3
movs r1, #6
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
adds r3, #4
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r4]
ldr r4, _0804E138 @ =0x0000011B
adds r0, r0, r4
strb r1, [r0]
mov r1, r8
ldr r0, [r1]
adds r3, #2
adds r0, r0, r3
strb r2, [r0]
b _0804E166
.align 2, 0
_0804E134: .4byte 0x00000119
_0804E138: .4byte 0x0000011B
_0804E13C:
movs r4, #0x8d
lsls r4, r4, #1
adds r1, r1, r4
movs r0, #6
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
movs r2, #0x8f
lsls r2, r2, #1
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
subs r2, #3
adds r0, r0, r2
strb r3, [r0]
ldr r0, [r4]
ldr r3, _0804E1CC @ =0x0000011F
adds r0, r0, r3
strb r1, [r0]
_0804E166:
mov r4, r8
ldr r0, [r4]
movs r2, #0x95
lsls r2, r2, #1
adds r1, r0, r2
movs r0, #0x18
strb r0, [r1]
_0804E174:
mov r3, r8
ldr r0, [r3]
movs r4, #0x95
lsls r4, r4, #1
adds r1, r0, r4
ldrb r0, [r1]
cmp r0, #0
beq _0804E188
subs r0, #1
strb r0, [r1]
_0804E188:
movs r5, #0
mov ip, r8
movs r7, #0x8c
lsls r7, r7, #1
movs r6, #0x8e
lsls r6, r6, #1
mov r4, sp
_0804E196:
mov r1, ip
ldr r0, [r1]
adds r0, r0, r7
adds r1, r0, r5
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0804E1AC
subs r0, r2, #1
strb r0, [r1]
_0804E1AC:
mov r2, ip
ldr r1, [r2]
adds r0, r1, r7
adds r3, r0, r5
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #2
bgt _0804E1D0
adds r0, r1, r6
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r0, r1]
movs r0, #0
ldrsb r0, [r3, r0]
muls r0, r1, r0
b _0804E1E2
.align 2, 0
_0804E1CC: .4byte 0x0000011F
_0804E1D0:
adds r0, r1, r6
adds r0, r0, r5
movs r2, #0
ldrsb r2, [r0, r2]
movs r1, #0
ldrsb r1, [r3, r1]
movs r0, #6
subs r0, r0, r1
muls r0, r2, r0
_0804E1E2:
strh r0, [r4]
adds r4, #2
adds r5, #1
cmp r5, #3
ble _0804E196
mov r3, r8
ldr r1, [r3]
mov r2, sp
mov r0, sp
ldrh r0, [r0, #2]
ldrb r2, [r2]
adds r0, r0, r2
movs r3, #0x90
lsls r3, r3, #1
adds r1, r1, r3
strb r0, [r1]
mov r4, r8
ldr r2, [r4]
mov r1, sp
mov r0, sp
ldrb r0, [r0, #6]
ldrb r1, [r1, #4]
adds r0, r0, r1
ldr r4, _0804E254 @ =0x00000121
adds r1, r2, r4
strb r0, [r1]
mov r0, r8
ldr r2, [r0]
adds r0, r2, r3
ldrh r1, [r0]
cmp r1, #0
bne _0804E232
adds r4, #5
adds r0, r2, r4
strb r1, [r0]
mov r2, r8
ldr r0, [r2]
adds r4, #1
adds r0, r0, r4
strb r1, [r0]
_0804E232:
mov r0, r8
ldr r1, [r0]
adds r0, r1, r3
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
ble _0804E258
movs r3, #0x91
lsls r3, r3, #1
adds r1, r1, r3
ldrb r3, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
bge _0804E270
subs r0, r3, #1
b _0804E26E
.align 2, 0
_0804E254: .4byte 0x00000121
_0804E258:
cmp r2, #0
bge _0804E270
movs r4, #0x91
lsls r4, r4, #1
adds r1, r1, r4
ldrb r3, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
ble _0804E270
adds r0, r3, #1
_0804E26E:
strb r0, [r1]
_0804E270:
mov r0, r8
ldr r1, [r0]
ldr r2, _0804E294 @ =0x00000121
adds r0, r1, r2
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
ble _0804E29C
ldr r3, _0804E298 @ =0x00000123
adds r1, r1, r3
ldrb r3, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
bge _0804E2B2
subs r0, r3, #1
b _0804E2B0
.align 2, 0
_0804E294: .4byte 0x00000121
_0804E298: .4byte 0x00000123
_0804E29C:
cmp r2, #0
bge _0804E2B2
ldr r4, _0804E2F4 @ =0x00000123
adds r1, r1, r4
ldrb r3, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
ble _0804E2B2
adds r0, r3, #1
_0804E2B0:
strb r0, [r1]
_0804E2B2:
mov r0, r8
ldr r1, [r0]
movs r2, #0x93
lsls r2, r2, #1
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804E2E6
movs r3, #0x90
lsls r3, r3, #1
adds r0, r1, r3
ldrb r0, [r0]
movs r4, #0x91
lsls r4, r4, #1
adds r1, r1, r4
strb r0, [r1]
mov r0, r8
ldr r1, [r0]
subs r2, #5
adds r0, r1, r2
ldrb r0, [r0]
adds r3, #3
adds r1, r1, r3
strb r0, [r1]
_0804E2E6:
add sp, #8
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804E2F4: .4byte 0x00000123
thumb_func_start sub_4E2F8
sub_4E2F8: @ 0x0804E2F8
push {r4, r5, r6, r7, lr}
ldr r0, _0804E3E4 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x13
ldrsb r1, [r2, r1]
adds r5, r0, #0
cmp r1, #0
beq _0804E328
ldrb r0, [r2, #5]
cmp r0, #0
beq _0804E328
adds r0, r2, #0
adds r0, #0x20
ldrb r0, [r0]
cmp r0, #0
beq _0804E328
adds r0, r2, #0
adds r0, #0x21
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
ldr r2, _0804E3E8 @ =0x00000163
adds r0, r0, r2
strb r1, [r0]
_0804E328:
adds r4, r5, #0
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _0804E372
ldrb r0, [r1, #0xa]
cmp r0, #0
beq _0804E372
ldr r0, _0804E3E8 @ =0x00000163
adds r1, r1, r0
movs r6, #0
movs r0, #3
strb r0, [r1]
ldr r0, [r4]
adds r0, #0x20
ldrb r0, [r0]
cmp r0, #0
beq _0804E36C
movs r0, #7
bl sub_11B0
ldr r0, [r4]
ldr r1, _0804E3EC @ =0x0000132C
adds r0, r0, r1
ldr r2, [r0]
ldr r1, _0804E3F0 @ =0x0000FDB2
strh r1, [r2, #0x32]
ldr r0, [r0]
strh r6, [r0, #0x30]
movs r0, #0xcd
bl m4aSongNumStart
_0804E36C:
ldr r0, [r5]
adds r0, #0x21
strb r6, [r0]
_0804E372:
ldr r7, _0804E3E4 @ =gUnknown_020314E0
ldr r6, [r7]
ldr r2, _0804E3EC @ =0x0000132C
adds r3, r6, r2
ldr r0, _0804E3F4 @ =0x00001334
adds r4, r6, r0
str r4, [r3]
ldr r0, _0804E3F8 @ =gUnknown_02031520
movs r2, #0x12
ldrsh r1, [r4, r2]
ldrh r5, [r0, #0x2a]
movs r2, #0x2a
ldrsh r0, [r0, r2]
cmp r1, r0
blt _0804E452
movs r2, #0
strh r5, [r4, #0x12]
ldr r1, [r3]
movs r4, #0x10
ldrsh r0, [r1, r4]
lsls r0, r0, #1
strh r0, [r1, #0x28]
ldr r1, [r3]
movs r4, #0x12
ldrsh r0, [r1, r4]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
ldr r1, [r3]
movs r4, #0x10
ldrsh r0, [r1, r4]
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r3]
movs r4, #0x12
ldrsh r0, [r1, r4]
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r0, [r3]
strh r2, [r0, #0x30]
ldr r0, [r3]
strh r2, [r0, #0x32]
ldr r4, _0804E3FC @ =gMain
ldrh r0, [r4, #0x14]
cmp r0, #0
bne _0804E452
ldr r1, _0804E400 @ =0x00000724
adds r0, r6, r1
ldrh r0, [r0]
cmp r0, #0
beq _0804E404
movs r0, #4
strh r0, [r4, #0x14]
movs r0, #8
strb r0, [r4, #0x11]
movs r0, #0xcc
strh r0, [r4, #0x12]
b _0804E452
.align 2, 0
_0804E3E4: .4byte gUnknown_020314E0
_0804E3E8: .4byte 0x00000163
_0804E3EC: .4byte 0x0000132C
_0804E3F0: .4byte 0x0000FDB2
_0804E3F4: .4byte 0x00001334
_0804E3F8: .4byte gUnknown_02031520
_0804E3FC: .4byte gMain
_0804E400: .4byte 0x00000724
_0804E404:
movs r0, #0x50
strh r0, [r4, #0x14]
movs r0, #0x10
strb r0, [r4, #0x11]
movs r0, #0xc8
strh r0, [r4, #0x12]
bl m4aMPlayAllStop
movs r0, #0xd
bl m4aSongNumStart
bl sub_4E598
ldr r2, [r7]
movs r3, #0xf1
lsls r3, r3, #1
adds r0, r2, r3
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #2
bne _0804E452
movs r0, #9
ldrsb r0, [r4, r0]
cmp r0, #0
bne _0804E452
movs r4, #0xdf
lsls r4, r4, #1
adds r0, r2, r4
strb r1, [r0]
ldr r1, [r7]
movs r0, #0xe0
lsls r0, r0, #1
adds r2, r1, r0
movs r0, #0xc8
lsls r0, r0, #2
strh r0, [r2]
adds r1, r1, r3
movs r0, #0
strb r0, [r1]
_0804E452:
ldr r0, _0804E464 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x20
movs r1, #0
strb r1, [r0]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804E464: .4byte gUnknown_020314E0
thumb_func_start sub_4E468
sub_4E468: @ 0x0804E468
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r2, _0804E4C4 @ =gUnknown_020314E0
ldr r5, [r2]
ldr r0, _0804E4C8 @ =0x0000132C
mov r8, r0
adds r4, r5, r0
ldr r1, _0804E4CC @ =0x00001334
adds r3, r5, r1
str r3, [r4]
ldr r6, _0804E4D0 @ =gUnknown_02031520
movs r7, #0x12
ldrsh r1, [r3, r7]
movs r7, #0x2a
ldrsh r0, [r6, r7]
mov ip, r2
cmp r1, r0
blt _0804E572
movs r1, #0
strh r1, [r3, #0x30]
ldr r0, [r4]
strh r1, [r0, #0x32]
ldr r3, _0804E4D4 @ =gMain
ldrb r1, [r3, #0xf]
movs r0, #0x40
ands r0, r1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
beq _0804E4DC
ldr r0, _0804E4D8 @ =0x00000386
adds r1, r5, r0
movs r0, #1
strb r0, [r1]
movs r0, #0x80
strb r0, [r3, #0xf]
mov r1, ip
ldr r0, [r1]
add r0, r8
ldr r1, [r0]
ldrh r0, [r6, #0x2a]
subs r0, #0xa
strh r0, [r1, #0x12]
b _0804E542
.align 2, 0
_0804E4C4: .4byte gUnknown_020314E0
_0804E4C8: .4byte 0x0000132C
_0804E4CC: .4byte 0x00001334
_0804E4D0: .4byte gUnknown_02031520
_0804E4D4: .4byte gMain
_0804E4D8: .4byte 0x00000386
_0804E4DC:
ldr r0, [r4]
movs r1, #1
strb r1, [r0]
mov r3, ip
ldr r0, [r3]
movs r7, #0xe2
lsls r7, r7, #2
adds r0, r0, r7
strb r1, [r0]
ldr r3, [r3]
ldr r1, _0804E57C @ =0x00000392
adds r0, r3, r1
strh r2, [r0]
mov r7, r8
adds r2, r3, r7
ldr r1, [r2]
ldrh r0, [r6, #0x26]
strh r0, [r1, #0x10]
ldr r1, [r2]
ldrh r0, [r6, #0x28]
strh r0, [r1, #0x12]
ldr r4, _0804E580 @ =0x000005F6
adds r3, r3, r4
ldrb r1, [r3]
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
ble _0804E518
subs r0, r1, #1
strb r0, [r3]
_0804E518:
mov r0, ip
ldr r1, [r0]
movs r3, #0xbf
lsls r3, r3, #3
adds r2, r1, r3
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r2]
ldr r2, _0804E584 @ =0x040000D4
adds r1, r1, r4
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #5
ldr r1, _0804E588 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804E58C @ =0x05000220
str r0, [r2, #4]
ldr r0, _0804E590 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804E542:
mov r7, ip
ldr r1, [r7]
ldr r0, _0804E594 @ =0x0000132C
adds r1, r1, r0
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r2, #0x28]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #1
strh r0, [r2, #0x2a]
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r1, [r1]
movs r7, #0x12
ldrsh r0, [r1, r7]
lsls r0, r0, #8
str r0, [r1, #0x38]
_0804E572:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804E57C: .4byte 0x00000392
_0804E580: .4byte 0x000005F6
_0804E584: .4byte 0x040000D4
_0804E588: .4byte gUnknown_08137E14
_0804E58C: .4byte 0x05000220
_0804E590: .4byte 0x80000010
_0804E594: .4byte 0x0000132C
thumb_func_start sub_4E598
sub_4E598: @ 0x0804E598
push {r4, r5, r6, r7, lr}
ldr r0, _0804E708 @ =gUnknown_020314E0
ldr r2, [r0]
movs r5, #0
movs r3, #0
ldr r1, _0804E70C @ =0x000027D7
strh r1, [r2, #0x18]
movs r1, #0x13
ldrsb r1, [r2, r1]
adds r4, r0, #0
cmp r1, #2
bne _0804E5B4
movs r0, #5
strb r0, [r2, #0x17]
_0804E5B4:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #7
bne _0804E5C2
movs r0, #6
strb r0, [r1, #0x17]
_0804E5C2:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
bne _0804E5D0
movs r0, #0xa
strb r0, [r1, #0x17]
_0804E5D0:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #5
bne _0804E5DE
movs r0, #6
strb r0, [r1, #0x17]
_0804E5DE:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #6
bne _0804E5EC
movs r0, #8
strb r0, [r1, #0x17]
_0804E5EC:
ldr r0, [r4]
ldr r1, _0804E710 @ =0x00000714
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r4]
movs r2, #0xe2
lsls r2, r2, #3
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r4]
adds r1, r0, r2
ldrb r1, [r1]
ldr r6, _0804E714 @ =0x00000711
adds r0, r0, r6
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, r2
ldrb r1, [r1]
ldr r7, _0804E718 @ =0x00000712
adds r0, r0, r7
strb r1, [r0]
ldr r0, [r4]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _0804E71C @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
subs r6, #0xfd
adds r1, r0, r6
strh r3, [r1]
movs r7, #0x82
lsls r7, r7, #2
adds r1, r0, r7
strh r3, [r1]
ldr r1, _0804E720 @ =0x0000020A
adds r0, r0, r1
strb r5, [r0]
ldr r2, [r4]
movs r6, #0xf1
lsls r6, r6, #1
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r6, _0804E724 @ =gMain
cmp r0, #2
bne _0804E654
movs r0, #9
ldrsb r0, [r6, r0]
cmp r0, #0
bne _0804E69C
_0804E654:
movs r7, #0xe3
lsls r7, r7, #1
adds r0, r2, r7
strh r3, [r0]
movs r1, #0xe4
lsls r1, r1, #1
adds r0, r2, r1
strh r3, [r0]
movs r5, #0xe6
lsls r5, r5, #1
adds r0, r2, r5
strh r3, [r0]
adds r7, #4
adds r0, r2, r7
strh r3, [r0]
adds r1, #0xc
adds r0, r2, r1
strh r3, [r0]
adds r5, #0xa
adds r1, r2, r5
ldr r0, _0804E728 @ =0x0000FFFC
strh r0, [r1]
adds r7, #0xe
adds r0, r2, r7
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0]
adds r5, #4
adds r0, r2, r5
strh r1, [r0]
subs r7, #0xa
adds r0, r2, r7
strh r3, [r0]
adds r1, #0xd0
adds r0, r2, r1
strh r3, [r0]
_0804E69C:
ldr r0, [r4]
movs r2, #0xe3
lsls r2, r2, #3
adds r0, r0, r2
movs r3, #0
strb r3, [r0]
ldr r0, [r4]
adds r1, r0, r2
ldrb r1, [r1]
ldr r5, _0804E72C @ =0x00000719
adds r0, r0, r5
strb r1, [r0]
ldr r0, [r4]
adds r2, r0, r2
ldrb r1, [r2]
ldr r7, _0804E730 @ =0x0000071A
adds r0, r0, r7
strb r1, [r0]
ldr r1, [r4]
movs r2, #0xc2
lsls r2, r2, #2
adds r0, r1, r2
strh r3, [r0]
movs r2, #9
ldrsb r2, [r6, r2]
cmp r2, #0
beq _0804E748
ldr r3, _0804E734 @ =0x000005F6
adds r1, r1, r3
movs r0, #3
strb r0, [r1]
ldr r1, [r4]
movs r5, #0xbf
lsls r5, r5, #3
adds r2, r1, r5
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r2]
ldr r2, _0804E738 @ =0x040000D4
adds r1, r1, r3
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #5
ldr r1, _0804E73C @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804E740 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0804E744 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r6, r1, #0
b _0804E75C
.align 2, 0
_0804E708: .4byte gUnknown_020314E0
_0804E70C: .4byte 0x000027D7
_0804E710: .4byte 0x00000714
_0804E714: .4byte 0x00000711
_0804E718: .4byte 0x00000712
_0804E71C: .4byte 0x00000713
_0804E720: .4byte 0x0000020A
_0804E724: .4byte gMain
_0804E728: .4byte 0x0000FFFC
_0804E72C: .4byte 0x00000719
_0804E730: .4byte 0x0000071A
_0804E734: .4byte 0x000005F6
_0804E738: .4byte 0x040000D4
_0804E73C: .4byte gUnknown_08137E14
_0804E740: .4byte 0x05000220
_0804E744: .4byte 0x80000010
_0804E748:
ldr r6, _0804E7E8 @ =0x000005F6
adds r1, r1, r6
movs r0, #0
strb r0, [r1]
ldr r0, [r4]
movs r7, #0xbf
lsls r7, r7, #3
adds r0, r0, r7
strh r2, [r0]
ldr r6, _0804E7EC @ =gUnknown_08137E14
_0804E75C:
adds r3, r4, #0
ldr r0, [r3]
ldr r1, _0804E7F0 @ =0x000005F7
adds r0, r0, r1
movs r5, #0
strb r5, [r0]
ldr r1, _0804E7F4 @ =0x040000D4
ldr r2, [r3]
ldr r7, _0804E7E8 @ =0x000005F6
adds r0, r2, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
adds r0, r0, r6
str r0, [r1]
ldr r0, _0804E7F8 @ =0x05000220
str r0, [r1, #4]
ldr r0, _0804E7FC @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0804E800 @ =0x0000070E
adds r0, r2, r1
ldrb r0, [r0]
ldr r6, _0804E804 @ =0x0000062F
adds r2, r2, r6
strb r0, [r2]
ldr r0, [r3]
adds r0, r0, r1
movs r2, #1
strb r2, [r0]
ldr r1, [r3]
ldr r7, _0804E808 @ =0x000002A5
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x2d
bne _0804E7D8
movs r6, #0xa9
lsls r6, r6, #2
adds r0, r1, r6
strb r5, [r0]
ldr r0, [r3]
adds r0, r0, r7
strb r5, [r0]
ldr r1, [r3]
adds r6, #2
adds r0, r1, r6
strh r5, [r0]
ldr r7, _0804E80C @ =0x0000016F
adds r0, r1, r7
strb r2, [r0]
ldr r0, [r3]
movs r1, #0xba
lsls r1, r1, #1
adds r2, r0, r1
movs r1, #0x40
strh r1, [r2]
ldr r2, _0804E810 @ =0x000002AA
adds r0, r0, r2
strh r5, [r0]
_0804E7D8:
ldr r0, [r4]
movs r6, #0xc0
lsls r6, r6, #2
adds r0, r0, r6
strb r5, [r0]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804E7E8: .4byte 0x000005F6
_0804E7EC: .4byte gUnknown_08137E14
_0804E7F0: .4byte 0x000005F7
_0804E7F4: .4byte 0x040000D4
_0804E7F8: .4byte 0x05000220
_0804E7FC: .4byte 0x80000010
_0804E800: .4byte 0x0000070E
_0804E804: .4byte 0x0000062F
_0804E808: .4byte 0x000002A5
_0804E80C: .4byte 0x0000016F
_0804E810: .4byte 0x000002AA
thumb_func_start sub_4E814
sub_4E814: @ 0x0804E814
push {r4, r5, r6, lr}
ldr r6, _0804E910 @ =gUnknown_020314E0
ldr r4, [r6]
ldr r0, _0804E914 @ =0x0000070C
adds r5, r4, r0
ldrh r0, [r5]
movs r1, #0x28
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x14
bl __udivsi3
ldr r1, _0804E918 @ =0x00000734
adds r4, r4, r1
strh r0, [r4]
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
bl sub_4EA44
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xe7
bgt _0804E854
bl sub_4EDC0
bl sub_4EE74
_0804E854:
ldr r0, [r6]
adds r0, #0x6a
ldrh r0, [r0]
subs r0, #0x51
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa6
bhi _0804E868
bl sub_4EF38
_0804E868:
bl sub_4F0F0
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6f
bgt _0804E87C
bl sub_4F258
_0804E87C:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x70
ble _0804E88C
bl sub_4F028
_0804E88C:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x68
ble _0804E8A0
bl sub_4F4B4
bl sub_4F660
_0804E8A0:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xff
bgt _0804E8B0
bl sub_4F30C
_0804E8B0:
bl sub_4F2B8
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6e
ble _0804E8C4
bl sub_4EAB0
_0804E8C4:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xb2
ble _0804E8DC
bl sub_4EAF8
bl sub_4EBD0
bl sub_4E920
_0804E8DC:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xca
ble _0804E8EC
bl sub_4ECDC
_0804E8EC:
ldr r0, [r6]
ldr r1, _0804E91C @ =0x00000724
adds r2, r0, r1
ldrh r1, [r2]
cmp r1, #0
beq _0804E908
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804E908
subs r0, r1, #1
strh r0, [r2]
_0804E908:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804E910: .4byte gUnknown_020314E0
_0804E914: .4byte 0x0000070C
_0804E918: .4byte 0x00000734
_0804E91C: .4byte 0x00000724
thumb_func_start sub_4E920
sub_4E920: @ 0x0804E920
push {r4, r5, lr}
ldr r1, _0804E9CC @ =gUnknown_086B08CA
ldr r4, _0804E9D0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _0804E9D4 @ =0x00000716
adds r3, r0, r2
ldrb r2, [r3]
lsls r0, r2, #1
adds r0, r0, r1
ldrh r5, [r0]
cmp r2, #0
beq _0804E95C
subs r0, r2, #1
strb r0, [r3]
ldr r0, [r4]
ldr r1, _0804E9D4 @ =0x00000716
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #3
bne _0804E95C
movs r0, #0x73
bl m4aSongNumStart
ldr r1, [r4]
movs r0, #0xfa
lsls r0, r0, #1
str r0, [r1, #0x3c]
movs r0, #7
bl sub_11B0
_0804E95C:
ldr r0, _0804E9D0 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _0804E9D8 @ =0x00000717
adds r0, r0, r2
ldrb r0, [r0]
lsls r3, r0, #4
subs r3, r3, r0
lsls r3, r3, #2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
lsls r2, r0, #2
adds r2, r2, r0
lsls r2, r2, #2
ldr r0, _0804E9DC @ =gUnknown_086B08D4
adds r2, r2, r0
adds r2, r3, r2
adds r0, #0x28
adds r3, r3, r0
ldr r0, _0804E9E0 @ =0x040000D4
ldr r1, [r2]
str r1, [r0]
ldr r1, [r3]
str r1, [r0, #4]
ldr r1, _0804E9E4 @ =0x80000010
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #4]
str r1, [r0]
ldr r1, [r3, #4]
str r1, [r0, #4]
ldr r5, _0804E9E8 @ =0x80000020
str r5, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #8]
str r1, [r0]
ldr r1, [r3, #8]
str r1, [r0, #4]
ldr r4, _0804E9EC @ =0x80000030
str r4, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #0xc]
str r1, [r0]
ldr r1, [r3, #0xc]
str r1, [r0, #4]
str r4, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #0x10]
str r1, [r0]
ldr r1, [r3, #0x10]
str r1, [r0, #4]
str r5, [r0, #8]
ldr r0, [r0, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804E9CC: .4byte gUnknown_086B08CA
_0804E9D0: .4byte gUnknown_020314E0
_0804E9D4: .4byte 0x00000716
_0804E9D8: .4byte 0x00000717
_0804E9DC: .4byte gUnknown_086B08D4
_0804E9E0: .4byte 0x040000D4
_0804E9E4: .4byte 0x80000010
_0804E9E8: .4byte 0x80000020
_0804E9EC: .4byte 0x80000030
thumb_func_start sub_4E9F0
sub_4E9F0: @ 0x0804E9F0
push {r4, lr}
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r2, r0, #1
adds r2, r2, r0
lsls r2, r2, #2
ldr r3, _0804EA34 @ =gUnknown_086B094C
adds r2, r2, r3
adds r4, r3, #0
adds r4, #0x18
ldr r1, _0804EA38 @ =0x040000D4
ldr r0, [r2]
str r0, [r1]
ldr r0, [r3, #0x18]
str r0, [r1, #4]
ldr r3, _0804EA3C @ =0x80000060
str r3, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r2, #4]
str r0, [r1]
ldr r0, [r4, #4]
str r0, [r1, #4]
str r3, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r2, #8]
str r0, [r1]
ldr r0, [r4, #8]
str r0, [r1, #4]
ldr r0, _0804EA40 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804EA34: .4byte gUnknown_086B094C
_0804EA38: .4byte 0x040000D4
_0804EA3C: .4byte 0x80000060
_0804EA40: .4byte 0x80000010
thumb_func_start sub_4EA44
sub_4EA44: @ 0x0804EA44
push {r4, r5, lr}
ldr r0, _0804EA9C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0804EAA0 @ =0x0000070E
adds r0, r0, r1
movs r5, #0
ldrsb r5, [r0, r5]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
adds r4, r0, #0
lsls r4, r4, #0x18
asrs r4, r4, #8
lsrs r4, r4, #0x10
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
lsls r0, r0, #0x18
lsls r4, r4, #0x10
asrs r4, r4, #0xd
ldr r3, _0804EAA4 @ =gUnknown_086B0970
adds r4, r4, r3
ldr r2, _0804EAA8 @ =0x040000D4
ldr r1, [r4]
str r1, [r2]
ldr r1, [r3, #0x50]
str r1, [r2, #4]
ldr r1, _0804EAAC @ =0x80000010
str r1, [r2, #8]
ldr r4, [r2, #8]
asrs r0, r0, #0x15
adds r4, r0, r3
ldr r0, [r4, #4]
str r0, [r2]
ldr r0, [r3, #0x54]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804EA9C: .4byte gUnknown_020314E0
_0804EAA0: .4byte 0x0000070E
_0804EAA4: .4byte gUnknown_086B0970
_0804EAA8: .4byte 0x040000D4
_0804EAAC: .4byte 0x80000010
thumb_func_start sub_4EAB0
sub_4EAB0: @ 0x0804EAB0
push {r4, lr}
ldr r0, _0804EAE8 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #3
ldr r3, _0804EAEC @ =gUnknown_086B09C8
adds r2, r2, r3
ldr r0, _0804EAF0 @ =0x040000D4
ldr r1, [r2]
str r1, [r0]
ldr r1, [r3, #0x18]
str r1, [r0, #4]
ldr r4, _0804EAF4 @ =0x80000020
str r4, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #4]
str r1, [r0]
ldr r1, [r3, #0x1c]
str r1, [r0, #4]
str r4, [r0, #8]
ldr r0, [r0, #8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804EAE8: .4byte gUnknown_020314E0
_0804EAEC: .4byte gUnknown_086B09C8
_0804EAF0: .4byte 0x040000D4
_0804EAF4: .4byte 0x80000020
thumb_func_start sub_4EAF8
sub_4EAF8: @ 0x0804EAF8
push {r4, r5, r6, r7, lr}
ldr r7, _0804EBB4 @ =gUnknown_020314E0
ldr r5, [r7]
movs r0, #0xe4
lsls r0, r0, #3
adds r1, r5, r0
ldrb r0, [r1]
cmp r0, #0
beq _0804EB5E
ldr r6, _0804EBB8 @ =0x00000721
adds r0, r5, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r4, _0804EBBC @ =0x0000071D
adds r5, r5, r4
adds r5, r5, r0
ldrb r0, [r1]
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x12
bl __udivsi3
movs r1, #1
subs r1, r1, r0
strb r1, [r5]
ldr r0, [r7]
ldr r2, _0804EBC0 @ =0x00000722
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r4, r0, r4
adds r1, r4, r1
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r4, r4, r0
ldrb r0, [r4]
strb r0, [r1]
ldr r1, [r7]
movs r0, #0xe4
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
_0804EB5E:
movs r1, #0
ldr r0, [r7]
ldr r2, _0804EBBC @ =0x0000071D
adds r7, r0, r2
ldr r6, _0804EBC4 @ =gUnknown_086B09E8
movs r0, #0x30
adds r0, r0, r6
mov ip, r0
ldr r4, _0804EBC8 @ =0x040000D4
ldr r5, _0804EBCC @ =0x80000020
_0804EB72:
lsls r3, r1, #0x10
asrs r3, r3, #0x10
lsls r2, r3, #3
subs r2, r2, r3
lsls r2, r2, #3
adds r0, r7, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #3
adds r1, r1, r6
adds r1, r2, r1
add r2, ip
ldr r0, [r1]
str r0, [r4]
ldr r0, [r2]
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, [r1, #4]
str r0, [r4]
ldr r0, [r2, #4]
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
adds r3, #1
lsls r3, r3, #0x10
lsrs r1, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _0804EB72
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804EBB4: .4byte gUnknown_020314E0
_0804EBB8: .4byte 0x00000721
_0804EBBC: .4byte 0x0000071D
_0804EBC0: .4byte 0x00000722
_0804EBC4: .4byte gUnknown_086B09E8
_0804EBC8: .4byte 0x040000D4
_0804EBCC: .4byte 0x80000020
thumb_func_start sub_4EBD0
sub_4EBD0: @ 0x0804EBD0
push {r4, r5, r6, r7, lr}
ldr r5, _0804EC38 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r1, _0804EC3C @ =0x00000714
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804EC7A
ldr r2, _0804EC40 @ =0x00000715
adds r1, r4, r2
ldrb r0, [r1]
cmp r0, #0
beq _0804EC4C
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x12
bl __udivsi3
movs r2, #0xe2
lsls r2, r2, #3
adds r1, r4, r2
strb r0, [r1]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0804EC44 @ =0x00000711
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _0804EC48 @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
ldr r1, [r5]
adds r3, #3
adds r1, r1, r3
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _0804EC7A
.align 2, 0
_0804EC38: .4byte gUnknown_020314E0
_0804EC3C: .4byte 0x00000714
_0804EC40: .4byte 0x00000715
_0804EC44: .4byte 0x00000711
_0804EC48: .4byte 0x00000713
_0804EC4C:
movs r2, #0xe2
lsls r2, r2, #3
adds r1, r4, r2
movs r0, #1
strb r0, [r1]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0804ECC4 @ =0x00000711
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _0804ECC8 @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
_0804EC7A:
movs r2, #0
ldr r0, _0804ECCC @ =gUnknown_020314E0
ldr r0, [r0]
movs r3, #0xe2
lsls r3, r3, #3
adds r5, r0, r3
ldr r4, _0804ECD0 @ =gUnknown_086B0BC4
adds r7, r4, #0
adds r7, #8
ldr r3, _0804ECD4 @ =0x040000D4
ldr r6, _0804ECD8 @ =0x80000020
_0804EC90:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #4
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r4
adds r0, r2, r0
adds r2, r2, r7
ldr r0, [r0]
str r0, [r3]
ldr r0, [r2]
str r0, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #3
ble _0804EC90
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804ECC4: .4byte 0x00000711
_0804ECC8: .4byte 0x00000713
_0804ECCC: .4byte gUnknown_020314E0
_0804ECD0: .4byte gUnknown_086B0BC4
_0804ECD4: .4byte 0x040000D4
_0804ECD8: .4byte 0x80000020
thumb_func_start sub_4ECDC
sub_4ECDC: @ 0x0804ECDC
push {r4, r5, lr}
ldr r0, _0804ECF8 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r2, _0804ECFC @ =0x00000724
adds r1, r3, r2
ldrh r2, [r1]
movs r1, #0x96
lsls r1, r1, #1
adds r5, r0, #0
cmp r2, r1
bls _0804ED04
ldr r0, _0804ED00 @ =0x00000726
adds r1, r3, r0
b _0804ED1A
.align 2, 0
_0804ECF8: .4byte gUnknown_020314E0
_0804ECFC: .4byte 0x00000724
_0804ED00: .4byte 0x00000726
_0804ED04:
cmp r2, #0
beq _0804ED40
adds r0, r3, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804ED24
ldr r2, _0804ED20 @ =0x00000726
adds r1, r3, r2
_0804ED1A:
movs r0, #1
strb r0, [r1]
b _0804ED46
.align 2, 0
_0804ED20: .4byte 0x00000726
_0804ED24:
ldr r0, _0804ED38 @ =gMain
ldr r0, [r0, #0x50]
movs r1, #0xf
ands r0, r1
lsrs r0, r0, #3
ldr r2, _0804ED3C @ =0x00000726
adds r1, r3, r2
strb r0, [r1]
b _0804ED46
.align 2, 0
_0804ED38: .4byte gMain
_0804ED3C: .4byte 0x00000726
_0804ED40:
ldr r1, _0804EDA8 @ =0x00000726
adds r0, r3, r1
strb r2, [r0]
_0804ED46:
ldr r0, [r5]
ldr r2, _0804EDA8 @ =0x00000726
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #4
ldr r1, _0804EDAC @ =gUnknown_086B0A90
adds r3, r0, r1
adds r4, r1, #0
adds r4, #0x20
ldr r2, _0804EDB0 @ =0x040000D4
ldr r0, [r3]
str r0, [r2]
ldr r0, [r1, #0x20]
str r0, [r2, #4]
ldr r1, _0804EDB4 @ =0x80000060
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r5]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xd7
ble _0804EDA0
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
ldr r0, _0804EDB8 @ =0x80000050
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #0xc]
str r0, [r2]
ldr r0, [r4, #0xc]
str r0, [r2, #4]
ldr r0, _0804EDBC @ =0x80000020
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804EDA0:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804EDA8: .4byte 0x00000726
_0804EDAC: .4byte gUnknown_086B0A90
_0804EDB0: .4byte 0x040000D4
_0804EDB4: .4byte 0x80000060
_0804EDB8: .4byte 0x80000050
_0804EDBC: .4byte 0x80000020
thumb_func_start sub_4EDC0
sub_4EDC0: @ 0x0804EDC0
push {r4, r5, r6, lr}
movs r3, #0
ldr r0, _0804EE60 @ =gUnknown_020314E0
ldr r2, [r0]
movs r4, #0xe5
lsls r4, r4, #3
adds r1, r2, r4
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r6, r0, #0
cmp r1, #0
ble _0804EDE8
ldr r1, _0804EE64 @ =0x00000734
adds r0, r2, r1
ldrh r1, [r0]
movs r0, #1
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
_0804EDE8:
lsls r0, r3, #0x10
asrs r0, r0, #0xc
ldr r3, _0804EE68 @ =gUnknown_086B0AC0
adds r4, r0, r3
adds r5, r3, #0
adds r5, #0x20
adds r0, r2, #0
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x30
ble _0804EE30
cmp r0, #0xd7
bgt _0804EE14
ldr r1, _0804EE6C @ =0x040000D4
ldr r0, [r4]
str r0, [r1]
ldr r0, [r3, #0x20]
str r0, [r1, #4]
ldr r0, _0804EE70 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804EE14:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xdf
bgt _0804EE30
ldr r1, _0804EE6C @ =0x040000D4
ldr r0, [r4, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _0804EE70 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804EE30:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x40
ble _0804EE58
ldr r0, _0804EE6C @ =0x040000D4
ldr r1, [r4, #8]
str r1, [r0]
ldr r1, [r5, #8]
str r1, [r0, #4]
ldr r2, _0804EE70 @ =0x80000040
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r4, #0xc]
str r1, [r0]
ldr r1, [r5, #0xc]
str r1, [r0, #4]
str r2, [r0, #8]
ldr r0, [r0, #8]
_0804EE58:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804EE60: .4byte gUnknown_020314E0
_0804EE64: .4byte 0x00000734
_0804EE68: .4byte gUnknown_086B0AC0
_0804EE6C: .4byte 0x040000D4
_0804EE70: .4byte 0x80000040
thumb_func_start sub_4EE74
sub_4EE74: @ 0x0804EE74
push {r4, r5, r6, lr}
movs r3, #0
ldr r0, _0804EF18 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r4, _0804EF1C @ =0x00000729
adds r1, r2, r4
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r6, r0, #0
cmp r1, #0
ble _0804EE9A
ldr r1, _0804EF20 @ =0x00000734
adds r0, r2, r1
ldrh r1, [r0]
movs r0, #1
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
_0804EE9A:
lsls r0, r3, #0x10
asrs r0, r0, #0xc
ldr r3, _0804EF24 @ =gUnknown_086B0AF0
adds r4, r0, r3
adds r5, r3, #0
adds r5, #0x20
adds r0, r2, #0
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x28
ble _0804EEE2
cmp r0, #0xcf
bgt _0804EEC6
ldr r1, _0804EF28 @ =0x040000D4
ldr r0, [r4]
str r0, [r1]
ldr r0, [r3, #0x20]
str r0, [r1, #4]
ldr r0, _0804EF2C @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804EEC6:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xd7
bgt _0804EEE2
ldr r1, _0804EF28 @ =0x040000D4
ldr r0, [r4, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _0804EF30 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804EEE2:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x38
ble _0804EF12
cmp r0, #0xdf
bgt _0804EF02
ldr r1, _0804EF28 @ =0x040000D4
ldr r0, [r4, #8]
str r0, [r1]
ldr r0, [r5, #8]
str r0, [r1, #4]
ldr r0, _0804EF30 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804EF02:
ldr r1, _0804EF28 @ =0x040000D4
ldr r0, [r4, #0xc]
str r0, [r1]
ldr r0, [r5, #0xc]
str r0, [r1, #4]
ldr r0, _0804EF34 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804EF12:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804EF18: .4byte gUnknown_020314E0
_0804EF1C: .4byte 0x00000729
_0804EF20: .4byte 0x00000734
_0804EF24: .4byte gUnknown_086B0AF0
_0804EF28: .4byte 0x040000D4
_0804EF2C: .4byte 0x80000020
_0804EF30: .4byte 0x80000040
_0804EF34: .4byte 0x80000030
thumb_func_start sub_4EF38
sub_4EF38: @ 0x0804EF38
push {r4, r5, lr}
movs r3, #0
ldr r0, _0804EF58 @ =gUnknown_020314E0
ldr r2, [r0]
movs r4, #0xbc
lsls r4, r4, #2
adds r1, r2, r4
ldrb r1, [r1]
adds r5, r0, #0
cmp r1, #2
bls _0804EF60
ldr r0, _0804EF5C @ =0x0000072A
adds r1, r2, r0
movs r0, #1
strb r0, [r1]
b _0804EF6E
.align 2, 0
_0804EF58: .4byte gUnknown_020314E0
_0804EF5C: .4byte 0x0000072A
_0804EF60:
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #0
beq _0804EF6E
ldr r1, _0804EF98 @ =0x0000072A
adds r0, r2, r1
strb r3, [r0]
_0804EF6E:
ldr r1, [r5]
ldr r2, _0804EF98 @ =0x0000072A
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0804EFA0
ldr r4, _0804EF9C @ =0x000001A5
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r2, #0xa
adds r1, r1, r2
ldrh r1, [r1]
subs r1, #1
subs r0, r0, r1
lsls r0, r0, #0x10
b _0804EFAC
.align 2, 0
_0804EF98: .4byte 0x0000072A
_0804EF9C: .4byte 0x000001A5
_0804EFA0:
ldr r4, _0804F014 @ =0x000001A5
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x11
_0804EFAC:
lsrs r3, r0, #0x10
lsls r0, r3, #0x10
asrs r0, r0, #0xc
ldr r2, _0804F018 @ =gUnknown_086B0B20
adds r3, r0, r2
adds r4, r2, #0
adds r4, #0x40
ldr r0, [r5]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xef
bgt _0804EFD6
ldr r1, _0804F01C @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r2, #0x40]
str r0, [r1, #4]
ldr r0, _0804F020 @ =0x80000050
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804EFD6:
ldr r2, _0804F01C @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
ldr r1, _0804F020 @ =0x80000050
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r5]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x58
ble _0804F00C
ldr r0, [r3, #0xc]
str r0, [r2]
ldr r0, [r4, #0xc]
str r0, [r2, #4]
ldr r0, _0804F024 @ =0x80000030
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804F00C:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804F014: .4byte 0x000001A5
_0804F018: .4byte gUnknown_086B0B20
_0804F01C: .4byte 0x040000D4
_0804F020: .4byte 0x80000050
_0804F024: .4byte 0x80000030
thumb_func_start sub_4F028
sub_4F028: @ 0x0804F028
push {r4, r5, lr}
movs r3, #0
ldr r1, _0804F0CC @ =gUnknown_020314E0
ldr r0, [r1]
ldr r4, _0804F0D0 @ =0x00000731
adds r0, r0, r4
strb r3, [r0]
ldr r2, [r1]
ldr r5, _0804F0D4 @ =0x0000072F
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #1
ble _0804F056
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _0804F056
adds r1, r2, r4
movs r0, #1
strb r0, [r1]
_0804F056:
ldr r2, [r5]
ldr r1, _0804F0D0 @ =0x00000731
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0804F074
ldr r5, _0804F0D8 @ =0x00000734
adds r0, r2, r5
ldrh r1, [r0]
movs r0, #1
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
_0804F074:
lsls r0, r3, #0x10
asrs r0, r0, #0xc
ldr r4, _0804F0DC @ =gUnknown_086B0B94
adds r3, r0, r4
adds r5, r4, #0
adds r5, #0x20
adds r0, r2, #0
adds r0, #0x6a
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _0804F0E0 @ =0x00000107
cmp r1, r0
bgt _0804F09E
ldr r1, _0804F0E4 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r4, #0x20]
str r0, [r1, #4]
ldr r0, _0804F0E8 @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F09E:
ldr r0, _0804F0E4 @ =0x040000D4
ldr r1, [r3, #4]
str r1, [r0]
ldr r1, [r5, #4]
str r1, [r0, #4]
ldr r2, _0804F0EC @ =0x80000040
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r3, #8]
str r1, [r0]
ldr r1, [r5, #8]
str r1, [r0, #4]
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r3, #0xc]
str r1, [r0]
ldr r1, [r5, #0xc]
str r1, [r0, #4]
str r2, [r0, #8]
ldr r0, [r0, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804F0CC: .4byte gUnknown_020314E0
_0804F0D0: .4byte 0x00000731
_0804F0D4: .4byte 0x0000072F
_0804F0D8: .4byte 0x00000734
_0804F0DC: .4byte gUnknown_086B0B94
_0804F0E0: .4byte 0x00000107
_0804F0E4: .4byte 0x040000D4
_0804F0E8: .4byte 0x80000020
_0804F0EC: .4byte 0x80000040
thumb_func_start sub_4F0F0
sub_4F0F0: @ 0x0804F0F0
push {r4, r5, r6, r7, lr}
ldr r5, _0804F1E8 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r0, _0804F1EC @ =0x0000071B
adds r1, r4, r0
movs r0, #0
ldrsb r0, [r1, r0]
adds r7, r5, #0
cmp r0, #0
bne _0804F106
b _0804F24C
_0804F106:
ldr r6, _0804F1F0 @ =0x0000071C
adds r0, r4, r6
ldrb r3, [r0]
cmp r3, #0
bne _0804F112
b _0804F220
_0804F112:
movs r1, #0xbe
lsls r1, r1, #2
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804F152
ldr r0, _0804F1F4 @ =gMain
ldr r0, [r0, #0x50]
movs r1, #0x14
bl __umodsi3
movs r1, #0xa
bl __udivsi3
movs r2, #0xe3
lsls r2, r2, #3
adds r1, r4, r2
strb r0, [r1]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0804F1F8 @ =0x00000719
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r2, r0, r2
ldrb r1, [r2]
ldr r4, _0804F1FC @ =0x0000071A
adds r0, r0, r4
strb r1, [r0]
_0804F152:
ldr r1, [r5]
adds r0, r1, r6
ldrb r0, [r0]
cmp r0, #0x1c
bne _0804F196
ldr r3, _0804F200 @ =0x000005F6
adds r1, r1, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _0804F16E
adds r0, r2, #1
strb r0, [r1]
_0804F16E:
ldr r1, [r5]
movs r0, #0xbf
lsls r0, r0, #3
adds r2, r1, r0
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r2]
ldr r2, _0804F204 @ =0x040000D4
adds r1, r1, r3
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #5
ldr r1, _0804F208 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0804F20C @ =0x05000220
str r0, [r2, #4]
ldr r0, _0804F210 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804F196:
adds r5, r7, #0
ldr r0, [r5]
ldr r4, _0804F1F0 @ =0x0000071C
adds r0, r0, r4
ldrb r0, [r0]
cmp r0, #0x28
bne _0804F1AC
ldr r0, _0804F214 @ =gMPlayInfo_SE1
ldr r1, _0804F218 @ =gUnknown_0869F664
bl MPlayStart
_0804F1AC:
ldr r0, [r5]
adds r0, r0, r4
ldrb r0, [r0]
cmp r0, #0x3c
bne _0804F1C2
ldr r0, _0804F1F4 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0xac
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
_0804F1C2:
ldr r2, [r7]
ldr r3, _0804F21C @ =gUnknown_086B0E20
adds r0, r2, r4
ldrb r1, [r0]
lsrs r1, r1, #1
movs r0, #0x1e
subs r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
adds r2, #0x6e
strb r0, [r2]
ldr r1, [r7]
adds r1, r1, r4
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _0804F24C
.align 2, 0
_0804F1E8: .4byte gUnknown_020314E0
_0804F1EC: .4byte 0x0000071B
_0804F1F0: .4byte 0x0000071C
_0804F1F4: .4byte gMain
_0804F1F8: .4byte 0x00000719
_0804F1FC: .4byte 0x0000071A
_0804F200: .4byte 0x000005F6
_0804F204: .4byte 0x040000D4
_0804F208: .4byte gUnknown_08137E14
_0804F20C: .4byte 0x05000220
_0804F210: .4byte 0x80000010
_0804F214: .4byte gMPlayInfo_SE1
_0804F218: .4byte gUnknown_0869F664
_0804F21C: .4byte gUnknown_086B0E20
_0804F220:
strb r3, [r1]
ldr r2, [r5]
movs r1, #0xbe
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804F246
ldr r4, _0804F254 @ =0x0000071A
adds r0, r2, r4
strb r3, [r0]
subs r4, #1
adds r0, r2, r4
strb r3, [r0]
subs r4, #1
adds r0, r2, r4
strb r3, [r0]
_0804F246:
ldr r0, [r5]
adds r0, r0, r1
strb r3, [r0]
_0804F24C:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804F254: .4byte 0x0000071A
thumb_func_start sub_4F258
sub_4F258: @ 0x0804F258
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r0, _0804F2A8 @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xe3
lsls r2, r2, #3
adds r5, r0, r2
ldr r4, _0804F2AC @ =gUnknown_086B0B70
adds r7, r4, #0
adds r7, #8
ldr r3, _0804F2B0 @ =0x040000D4
ldr r6, _0804F2B4 @ =0x80000020
_0804F270:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r0, r5, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r4
adds r0, r1, r0
adds r1, r1, r7
ldr r0, [r0]
str r0, [r3]
ldr r0, [r1]
str r0, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #2
ble _0804F270
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804F2A8: .4byte gUnknown_020314E0
_0804F2AC: .4byte gUnknown_086B0B70
_0804F2B0: .4byte 0x040000D4
_0804F2B4: .4byte 0x80000020
thumb_func_start sub_4F2B8
sub_4F2B8: @ 0x0804F2B8
push {r4, r5, lr}
ldr r0, _0804F2EC @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _0804F2F0 @ =0x0000072B
adds r3, r1, r0
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
ble _0804F306
ldr r5, _0804F2F4 @ =0x0000072C
adds r2, r1, r5
ldrh r4, [r2]
ldr r0, _0804F2F8 @ =gUnknown_086B08C4
movs r1, #0
ldrsb r1, [r3, r1]
subs r1, #1
lsls r1, r1, #1
adds r1, r1, r0
movs r5, #0
ldrsh r0, [r1, r5]
cmp r4, r0
bge _0804F2FC
adds r0, r4, #1
strh r0, [r2]
b _0804F306
.align 2, 0
_0804F2EC: .4byte gUnknown_020314E0
_0804F2F0: .4byte 0x0000072B
_0804F2F4: .4byte 0x0000072C
_0804F2F8: .4byte gUnknown_086B08C4
_0804F2FC:
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
subs r0, #1
strb r0, [r3]
_0804F306:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_4F30C
sub_4F30C: @ 0x0804F30C
push {r4, r5, lr}
sub sp, #8
ldr r1, _0804F33C @ =gUnknown_020314E0
ldr r2, [r1]
ldr r3, _0804F340 @ =0x0000072B
adds r0, r2, r3
movs r3, #0
ldrsb r3, [r0, r3]
adds r4, r1, #0
cmp r3, #0
bne _0804F348
mov r1, sp
ldr r5, _0804F344 @ =0x00000734
adds r2, r2, r5
movs r5, #0
ldrsh r0, [r2, r5]
lsls r0, r0, #1
strh r0, [r1]
ldrh r0, [r2]
strh r0, [r1, #2]
mov r0, sp
strh r3, [r0, #4]
b _0804F396
.align 2, 0
_0804F33C: .4byte gUnknown_020314E0
_0804F340: .4byte 0x0000072B
_0804F344: .4byte 0x00000734
_0804F348:
cmp r3, #1
bne _0804F36C
mov r1, sp
movs r0, #3
strh r0, [r1]
ldr r0, _0804F368 @ =0x00000734
adds r2, r2, r0
ldrh r0, [r2]
adds r0, #1
strh r0, [r1, #2]
movs r3, #0
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r1, #4]
b _0804F396
.align 2, 0
_0804F368: .4byte 0x00000734
_0804F36C:
cmp r3, #2
bne _0804F38C
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
mov r1, sp
ldr r5, _0804F388 @ =0x00000734
adds r0, r2, r5
ldrh r0, [r0]
adds r0, #2
strh r0, [r1, #4]
b _0804F396
.align 2, 0
_0804F388: .4byte 0x00000734
_0804F38C:
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
strh r1, [r0, #4]
_0804F396:
mov r0, sp
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r2, _0804F4A8 @ =gUnknown_086B0CB8
adds r3, r0, r2
adds r5, r2, #0
adds r5, #0x30
ldr r0, [r4]
adds r0, #0x6a
ldrh r0, [r0]
subs r0, #0x2a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa5
bhi _0804F3CA
ldr r1, _0804F4AC @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r2, #0x30]
str r0, [r1, #4]
ldr r0, _0804F4B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F3CA:
ldr r0, [r4]
adds r4, r0, #0
adds r4, #0x6a
ldrh r0, [r4]
subs r0, #0x32
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa5
bhi _0804F3EC
ldr r1, _0804F4AC @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _0804F4B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F3EC:
mov r0, sp
movs r3, #2
ldrsh r1, [r0, r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r2, #0
adds r1, #0x3c
adds r3, r0, r1
adds r5, r2, #0
adds r5, #0x6c
ldrh r0, [r4]
subs r0, #0x3a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa5
bhi _0804F41E
ldr r1, _0804F4AC @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r2, #0x6c]
str r0, [r1, #4]
ldr r0, _0804F4B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F41E:
ldrh r0, [r4]
subs r0, #0x42
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa5
bhi _0804F43A
ldr r1, _0804F4AC @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _0804F4B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F43A:
mov r0, sp
movs r5, #4
ldrsh r1, [r0, r5]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r2, #0
adds r1, #0x78
adds r3, r0, r1
adds r5, r2, #0
adds r5, #0xa8
ldrh r0, [r4]
subs r0, #0x4a
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa5
bhi _0804F46C
ldr r1, _0804F4AC @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r5]
str r0, [r1, #4]
ldr r0, _0804F4B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F46C:
ldrh r0, [r4]
subs r0, #0x52
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa5
bhi _0804F488
ldr r1, _0804F4AC @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _0804F4B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F488:
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0x59
ble _0804F4A0
ldr r1, _0804F4AC @ =0x040000D4
ldr r0, [r3, #8]
str r0, [r1]
ldr r0, [r5, #8]
str r0, [r1, #4]
ldr r0, _0804F4B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F4A0:
add sp, #8
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804F4A8: .4byte gUnknown_086B0CB8
_0804F4AC: .4byte 0x040000D4
_0804F4B0: .4byte 0x80000030
thumb_func_start sub_4F4B4
sub_4F4B4: @ 0x0804F4B4
push {r4, r5, r6, lr}
sub sp, #8
ldr r0, _0804F4E8 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x13
ldrsb r1, [r2, r1]
adds r6, r0, #0
cmp r1, #2
bgt _0804F53C
ldr r1, _0804F4EC @ =0x0000072E
adds r0, r2, r1
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
bne _0804F4F4
mov r1, sp
ldr r4, _0804F4F0 @ =0x00000734
adds r0, r2, r4
movs r2, #0
ldrsh r0, [r0, r2]
lsls r0, r0, #1
strh r0, [r1]
mov r0, sp
strh r3, [r0, #2]
strh r3, [r0, #4]
b _0804F562
.align 2, 0
_0804F4E8: .4byte gUnknown_020314E0
_0804F4EC: .4byte 0x0000072E
_0804F4F0: .4byte 0x00000734
_0804F4F4:
cmp r3, #1
bne _0804F514
mov r1, sp
movs r0, #3
strh r0, [r1]
ldr r3, _0804F510 @ =0x00000734
adds r2, r2, r3
ldrh r0, [r2]
adds r0, #1
strh r0, [r1, #2]
movs r4, #0
ldrsh r0, [r2, r4]
lsls r0, r0, #1
b _0804F560
.align 2, 0
_0804F510: .4byte 0x00000734
_0804F514:
cmp r3, #2
bne _0804F530
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
mov r1, sp
ldr r3, _0804F52C @ =0x00000734
adds r0, r2, r3
ldrh r0, [r0]
adds r0, #2
b _0804F560
.align 2, 0
_0804F52C: .4byte 0x00000734
_0804F530:
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
strh r1, [r0, #4]
b _0804F562
_0804F53C:
mov r1, sp
ldr r4, _0804F648 @ =0x00000739
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1]
ldr r3, _0804F64C @ =0x0000073A
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1, #2]
adds r4, #2
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_0804F560:
strh r0, [r1, #4]
_0804F562:
mov r0, sp
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0804F650 @ =gUnknown_086B0C04
mov ip, r3
adds r3, r0, r3
mov r4, ip
adds r4, #0x30
ldr r0, [r6]
adds r0, #0x6a
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _0804F654 @ =0x00000107
cmp r1, r0
bgt _0804F598
ldr r1, _0804F658 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
mov r2, ip
ldr r0, [r2, #0x30]
str r0, [r1, #4]
ldr r0, _0804F65C @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F598:
ldr r2, _0804F658 @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
ldr r5, _0804F65C @ =0x80000030
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r6]
adds r6, r0, #0
adds r6, #0x6a
movs r3, #0
ldrsh r0, [r6, r3]
cmp r0, #0x78
ble _0804F5FE
mov r0, sp
movs r4, #2
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x3c
adds r3, r0, r1
mov r4, ip
adds r4, #0x6c
ldr r0, [r3]
str r0, [r2]
mov r1, ip
ldr r0, [r1, #0x6c]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
_0804F5FE:
movs r3, #0
ldrsh r0, [r6, r3]
cmp r0, #0x88
ble _0804F640
mov r0, sp
movs r4, #4
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x78
adds r3, r0, r1
mov r4, ip
adds r4, #0xa8
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
_0804F640:
add sp, #8
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804F648: .4byte 0x00000739
_0804F64C: .4byte 0x0000073A
_0804F650: .4byte gUnknown_086B0C04
_0804F654: .4byte 0x00000107
_0804F658: .4byte 0x040000D4
_0804F65C: .4byte 0x80000030
thumb_func_start sub_4F660
sub_4F660: @ 0x0804F660
push {r4, r5, r6, lr}
sub sp, #8
ldr r0, _0804F694 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x13
ldrsb r1, [r2, r1]
adds r5, r0, #0
cmp r1, #2
bgt _0804F6E8
ldr r1, _0804F698 @ =0x0000072F
adds r0, r2, r1
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
bne _0804F6A0
mov r1, sp
ldr r4, _0804F69C @ =0x00000734
adds r0, r2, r4
movs r2, #0
ldrsh r0, [r0, r2]
lsls r0, r0, #1
strh r0, [r1]
mov r0, sp
strh r3, [r0, #2]
strh r3, [r0, #4]
b _0804F70E
.align 2, 0
_0804F694: .4byte gUnknown_020314E0
_0804F698: .4byte 0x0000072F
_0804F69C: .4byte 0x00000734
_0804F6A0:
cmp r3, #1
bne _0804F6C0
mov r1, sp
movs r0, #3
strh r0, [r1]
ldr r3, _0804F6BC @ =0x00000734
adds r2, r2, r3
ldrh r0, [r2]
adds r0, #1
strh r0, [r1, #2]
movs r4, #0
ldrsh r0, [r2, r4]
lsls r0, r0, #1
b _0804F70C
.align 2, 0
_0804F6BC: .4byte 0x00000734
_0804F6C0:
cmp r3, #2
bne _0804F6DC
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
mov r1, sp
ldr r3, _0804F6D8 @ =0x00000734
adds r0, r2, r3
ldrh r0, [r0]
adds r0, #2
b _0804F70C
.align 2, 0
_0804F6D8: .4byte 0x00000734
_0804F6DC:
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
strh r1, [r0, #4]
b _0804F70E
_0804F6E8:
mov r1, sp
ldr r4, _0804F7F8 @ =0x00000736
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1]
ldr r3, _0804F7FC @ =0x00000737
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1, #2]
adds r4, #2
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_0804F70C:
strh r0, [r1, #4]
_0804F70E:
mov r0, sp
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0804F800 @ =gUnknown_086B0D6C
mov ip, r3
adds r3, r0, r3
mov r4, ip
adds r4, #0x30
ldr r0, [r5]
adds r0, #0x6a
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _0804F804 @ =0x00000107
cmp r1, r0
bgt _0804F744
ldr r1, _0804F808 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
mov r2, ip
ldr r0, [r2, #0x30]
str r0, [r1, #4]
ldr r0, _0804F80C @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804F744:
ldr r2, _0804F808 @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
ldr r6, _0804F80C @ =0x80000030
str r6, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r5]
adds r5, r0, #0
adds r5, #0x6a
movs r3, #0
ldrsh r0, [r5, r3]
cmp r0, #0x78
ble _0804F7AC
mov r0, sp
movs r4, #2
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x3c
adds r3, r0, r1
mov r4, ip
adds r4, #0x6c
ldr r0, [r3]
str r0, [r2]
mov r1, ip
ldr r0, [r1, #0x6c]
str r0, [r2, #4]
ldr r1, _0804F810 @ =0x80000020
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
_0804F7AC:
movs r3, #0
ldrsh r0, [r5, r3]
cmp r0, #0x88
ble _0804F7F0
mov r0, sp
movs r4, #4
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x78
adds r3, r0, r1
mov r4, ip
adds r4, #0xa8
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4]
str r0, [r2, #4]
ldr r0, _0804F810 @ =0x80000020
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
_0804F7F0:
add sp, #8
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804F7F8: .4byte 0x00000736
_0804F7FC: .4byte 0x00000737
_0804F800: .4byte gUnknown_086B0D6C
_0804F804: .4byte 0x00000107
_0804F808: .4byte 0x040000D4
_0804F80C: .4byte 0x80000030
_0804F810: .4byte 0x80000020
thumb_func_start sub_4F814
sub_4F814: @ 0x0804F814
push {r4, r5, r6, lr}
ldr r6, _0804F94C @ =gUnknown_020314E0
ldr r4, [r6]
ldr r0, _0804F950 @ =0x0000070C
adds r5, r4, r0
ldrh r0, [r5]
movs r1, #0x28
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x14
bl __udivsi3
ldr r1, _0804F954 @ =0x00000734
adds r4, r4, r1
strh r0, [r4]
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
bl sub_50710
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x53
ble _0804F850
bl sub_50000
_0804F850:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x12
ble _0804F860
bl sub_500B4
_0804F860:
ldr r0, [r6]
adds r0, #0x6a
ldrh r0, [r0]
subs r0, #0x38
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xba
bhi _0804F874
bl sub_505A4
_0804F874:
bl sub_4F0F0
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6f
bgt _0804F888
bl sub_506B0
_0804F888:
ldr r0, [r6]
adds r0, #0x6a
ldrh r0, [r0]
subs r0, #0x40
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xbd
bhi _0804F89C
bl sub_504C0
_0804F89C:
ldr r0, [r6]
adds r0, #0x6a
ldrh r0, [r0]
subs r0, #0x1b
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xb7
bhi _0804F8B4
bl sub_4FB08
bl sub_4F95C
_0804F8B4:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x68
ble _0804F8C8
bl sub_50154
bl sub_5030C
_0804F8C8:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x48
ble _0804F8D8
bl sub_4FE6C
_0804F8D8:
bl sub_4F2B8
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6e
ble _0804F8EC
bl sub_4FAC0
_0804F8EC:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xb2
ble _0804F904
bl sub_4FBA4
bl sub_4FC7C
bl sub_4F9F0
_0804F904:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xca
ble _0804F914
bl sub_4FD88
_0804F914:
ldr r0, [r6]
adds r0, #0x6a
ldrh r0, [r0]
subs r0, #8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xad
bhi _0804F928
bl sub_507D4
_0804F928:
ldr r0, [r6]
ldr r1, _0804F958 @ =0x00000724
adds r2, r0, r1
ldrh r1, [r2]
cmp r1, #0
beq _0804F944
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804F944
subs r0, r1, #1
strh r0, [r2]
_0804F944:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804F94C: .4byte gUnknown_020314E0
_0804F950: .4byte 0x0000070C
_0804F954: .4byte 0x00000734
_0804F958: .4byte 0x00000724
thumb_func_start sub_4F95C
sub_4F95C: @ 0x0804F95C
push {r4, r5, r6, r7, lr}
ldr r0, _0804F9DC @ =gUnknown_020314E0
ldr r4, [r0]
ldr r1, _0804F9E0 @ =0x0000070E
adds r0, r4, r1
movs r5, #0
ldrsb r5, [r0, r5]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #8
lsrs r6, r0, #0x10
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #8
lsrs r7, r0, #0x10
adds r4, #0x6a
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0x24
ble _0804F9D6
lsls r0, r6, #0x10
asrs r0, r0, #0xc
ldr r3, _0804F9E4 @ =gUnknown_086B0E9C
adds r5, r0, r3
adds r4, r3, #0
adds r4, #0xa0
ldr r1, _0804F9E8 @ =0x040000D4
ldr r0, [r5]
str r0, [r1]
ldr r0, [r4]
str r0, [r1, #4]
ldr r2, _0804F9EC @ =0x80000010
str r2, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r5, #4]
str r0, [r1]
ldr r0, [r4, #4]
str r0, [r1, #4]
str r2, [r1, #8]
ldr r0, [r1, #8]
lsls r0, r7, #0x10
asrs r0, r0, #0xc
adds r5, r0, r3
ldr r0, [r5, #8]
str r0, [r1]
ldr r0, [r4, #8]
str r0, [r1, #4]
str r2, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r5, #0xc]
str r0, [r1]
ldr r0, [r4, #0xc]
str r0, [r1, #4]
str r2, [r1, #8]
ldr r0, [r1, #8]
_0804F9D6:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804F9DC: .4byte gUnknown_020314E0
_0804F9E0: .4byte 0x0000070E
_0804F9E4: .4byte gUnknown_086B0E9C
_0804F9E8: .4byte 0x040000D4
_0804F9EC: .4byte 0x80000010
thumb_func_start sub_4F9F0
sub_4F9F0: @ 0x0804F9F0
push {r4, r5, lr}
ldr r1, _0804FA9C @ =gUnknown_086B0E60
ldr r4, _0804FAA0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _0804FAA4 @ =0x00000716
adds r3, r0, r2
ldrb r2, [r3]
lsls r0, r2, #1
adds r0, r0, r1
ldrh r5, [r0]
cmp r2, #0
beq _0804FA2C
subs r0, r2, #1
strb r0, [r3]
ldr r0, [r4]
ldr r1, _0804FAA4 @ =0x00000716
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #3
bne _0804FA2C
movs r0, #0x73
bl m4aSongNumStart
ldr r1, [r4]
movs r0, #0xfa
lsls r0, r0, #1
str r0, [r1, #0x3c]
movs r0, #7
bl sub_11B0
_0804FA2C:
ldr r0, _0804FAA0 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _0804FAA8 @ =0x00000717
adds r0, r0, r2
ldrb r0, [r0]
lsls r3, r0, #4
subs r3, r3, r0
lsls r3, r3, #2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
lsls r2, r0, #2
adds r2, r2, r0
lsls r2, r2, #2
ldr r0, _0804FAAC @ =gUnknown_086B108C
adds r2, r2, r0
adds r2, r3, r2
adds r0, #0x28
adds r3, r3, r0
ldr r0, _0804FAB0 @ =0x040000D4
ldr r1, [r2]
str r1, [r0]
ldr r1, [r3]
str r1, [r0, #4]
ldr r1, _0804FAB4 @ =0x80000010
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #4]
str r1, [r0]
ldr r1, [r3, #4]
str r1, [r0, #4]
ldr r5, _0804FAB8 @ =0x80000020
str r5, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #8]
str r1, [r0]
ldr r1, [r3, #8]
str r1, [r0, #4]
ldr r4, _0804FABC @ =0x80000030
str r4, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #0xc]
str r1, [r0]
ldr r1, [r3, #0xc]
str r1, [r0, #4]
str r4, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #0x10]
str r1, [r0]
ldr r1, [r3, #0x10]
str r1, [r0, #4]
str r5, [r0, #8]
ldr r0, [r0, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804FA9C: .4byte gUnknown_086B0E60
_0804FAA0: .4byte gUnknown_020314E0
_0804FAA4: .4byte 0x00000716
_0804FAA8: .4byte 0x00000717
_0804FAAC: .4byte gUnknown_086B108C
_0804FAB0: .4byte 0x040000D4
_0804FAB4: .4byte 0x80000010
_0804FAB8: .4byte 0x80000020
_0804FABC: .4byte 0x80000030
thumb_func_start sub_4FAC0
sub_4FAC0: @ 0x0804FAC0
push {r4, lr}
ldr r0, _0804FAF8 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #3
ldr r3, _0804FAFC @ =gUnknown_086B1104
adds r2, r2, r3
ldr r0, _0804FB00 @ =0x040000D4
ldr r1, [r2]
str r1, [r0]
ldr r1, [r3, #0x18]
str r1, [r0, #4]
ldr r4, _0804FB04 @ =0x80000020
str r4, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r2, #4]
str r1, [r0]
ldr r1, [r3, #0x1c]
str r1, [r0, #4]
str r4, [r0, #8]
ldr r0, [r0, #8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804FAF8: .4byte gUnknown_020314E0
_0804FAFC: .4byte gUnknown_086B1104
_0804FB00: .4byte 0x040000D4
_0804FB04: .4byte 0x80000020
thumb_func_start sub_4FB08
sub_4FB08: @ 0x0804FB08
push {r4, r5, lr}
ldr r0, _0804FB88 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x3f
ands r0, r1
lsrs r0, r0, #4
lsls r0, r0, #4
ldr r2, _0804FB8C @ =gUnknown_086B0F4C
adds r3, r0, r2
adds r5, r2, #0
adds r5, #0x40
ldr r4, _0804FB90 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xbf
bgt _0804FB3C
ldr r1, _0804FB94 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r2, #0x40]
str r0, [r1, #4]
ldr r0, _0804FB98 @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FB3C:
ldr r0, [r4]
adds r2, r0, #0
adds r2, #0x6a
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0xc7
bgt _0804FB5A
ldr r1, _0804FB94 @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _0804FB9C @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FB5A:
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0xcf
bgt _0804FB72
ldr r1, _0804FB94 @ =0x040000D4
ldr r0, [r3, #8]
str r0, [r1]
ldr r0, [r5, #8]
str r0, [r1, #4]
ldr r0, _0804FBA0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FB72:
ldr r1, _0804FB94 @ =0x040000D4
ldr r0, [r3, #0xc]
str r0, [r1]
ldr r0, [r5, #0xc]
str r0, [r1, #4]
ldr r0, _0804FBA0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804FB88: .4byte gMain
_0804FB8C: .4byte gUnknown_086B0F4C
_0804FB90: .4byte gUnknown_020314E0
_0804FB94: .4byte 0x040000D4
_0804FB98: .4byte 0x80000020
_0804FB9C: .4byte 0x80000040
_0804FBA0: .4byte 0x80000030
thumb_func_start sub_4FBA4
sub_4FBA4: @ 0x0804FBA4
push {r4, r5, r6, r7, lr}
ldr r7, _0804FC60 @ =gUnknown_020314E0
ldr r5, [r7]
movs r0, #0xe4
lsls r0, r0, #3
adds r1, r5, r0
ldrb r0, [r1]
cmp r0, #0
beq _0804FC0A
ldr r6, _0804FC64 @ =0x00000721
adds r0, r5, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r4, _0804FC68 @ =0x0000071D
adds r5, r5, r4
adds r5, r5, r0
ldrb r0, [r1]
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x12
bl __udivsi3
movs r1, #1
subs r1, r1, r0
strb r1, [r5]
ldr r0, [r7]
ldr r2, _0804FC6C @ =0x00000722
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r4, r0, r4
adds r1, r4, r1
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r4, r4, r0
ldrb r0, [r4]
strb r0, [r1]
ldr r1, [r7]
movs r0, #0xe4
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
_0804FC0A:
movs r1, #0
ldr r0, [r7]
ldr r2, _0804FC68 @ =0x0000071D
adds r7, r0, r2
ldr r6, _0804FC70 @ =gUnknown_086B1124
movs r0, #0x30
adds r0, r0, r6
mov ip, r0
ldr r4, _0804FC74 @ =0x040000D4
ldr r5, _0804FC78 @ =0x80000020
_0804FC1E:
lsls r3, r1, #0x10
asrs r3, r3, #0x10
lsls r2, r3, #3
subs r2, r2, r3
lsls r2, r2, #3
adds r0, r7, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #3
adds r1, r1, r6
adds r1, r2, r1
add r2, ip
ldr r0, [r1]
str r0, [r4]
ldr r0, [r2]
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, [r1, #4]
str r0, [r4]
ldr r0, [r2, #4]
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
adds r3, #1
lsls r3, r3, #0x10
lsrs r1, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _0804FC1E
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804FC60: .4byte gUnknown_020314E0
_0804FC64: .4byte 0x00000721
_0804FC68: .4byte 0x0000071D
_0804FC6C: .4byte 0x00000722
_0804FC70: .4byte gUnknown_086B1124
_0804FC74: .4byte 0x040000D4
_0804FC78: .4byte 0x80000020
thumb_func_start sub_4FC7C
sub_4FC7C: @ 0x0804FC7C
push {r4, r5, r6, r7, lr}
ldr r5, _0804FCE4 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r1, _0804FCE8 @ =0x00000714
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804FD26
ldr r2, _0804FCEC @ =0x00000715
adds r1, r4, r2
ldrb r0, [r1]
cmp r0, #0
beq _0804FCF8
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x12
bl __udivsi3
movs r2, #0xe2
lsls r2, r2, #3
adds r1, r4, r2
strb r0, [r1]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0804FCF0 @ =0x00000711
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _0804FCF4 @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
ldr r1, [r5]
adds r3, #3
adds r1, r1, r3
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _0804FD26
.align 2, 0
_0804FCE4: .4byte gUnknown_020314E0
_0804FCE8: .4byte 0x00000714
_0804FCEC: .4byte 0x00000715
_0804FCF0: .4byte 0x00000711
_0804FCF4: .4byte 0x00000713
_0804FCF8:
movs r2, #0xe2
lsls r2, r2, #3
adds r1, r4, r2
movs r0, #1
strb r0, [r1]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0804FD70 @ =0x00000711
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _0804FD74 @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
_0804FD26:
movs r2, #0
ldr r0, _0804FD78 @ =gUnknown_020314E0
ldr r0, [r0]
movs r3, #0xe2
lsls r3, r3, #3
adds r5, r0, r3
ldr r4, _0804FD7C @ =gUnknown_086B1300
adds r7, r4, #0
adds r7, #8
ldr r3, _0804FD80 @ =0x040000D4
ldr r6, _0804FD84 @ =0x80000020
_0804FD3C:
lsls r1, r2, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #4
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r4
adds r0, r2, r0
adds r2, r2, r7
ldr r0, [r0]
str r0, [r3]
ldr r0, [r2]
str r0, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #3
ble _0804FD3C
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804FD70: .4byte 0x00000711
_0804FD74: .4byte 0x00000713
_0804FD78: .4byte gUnknown_020314E0
_0804FD7C: .4byte gUnknown_086B1300
_0804FD80: .4byte 0x040000D4
_0804FD84: .4byte 0x80000020
thumb_func_start sub_4FD88
sub_4FD88: @ 0x0804FD88
push {r4, r5, lr}
ldr r0, _0804FDA4 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r2, _0804FDA8 @ =0x00000724
adds r1, r3, r2
ldrh r2, [r1]
movs r1, #0x96
lsls r1, r1, #1
adds r5, r0, #0
cmp r2, r1
bls _0804FDB0
ldr r0, _0804FDAC @ =0x00000726
adds r1, r3, r0
b _0804FDC6
.align 2, 0
_0804FDA4: .4byte gUnknown_020314E0
_0804FDA8: .4byte 0x00000724
_0804FDAC: .4byte 0x00000726
_0804FDB0:
cmp r2, #0
beq _0804FDEC
adds r0, r3, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804FDD0
ldr r2, _0804FDCC @ =0x00000726
adds r1, r3, r2
_0804FDC6:
movs r0, #1
strb r0, [r1]
b _0804FDF2
.align 2, 0
_0804FDCC: .4byte 0x00000726
_0804FDD0:
ldr r0, _0804FDE4 @ =gMain
ldr r0, [r0, #0x50]
movs r1, #0xf
ands r0, r1
lsrs r0, r0, #3
ldr r2, _0804FDE8 @ =0x00000726
adds r1, r3, r2
strb r0, [r1]
b _0804FDF2
.align 2, 0
_0804FDE4: .4byte gMain
_0804FDE8: .4byte 0x00000726
_0804FDEC:
ldr r1, _0804FE54 @ =0x00000726
adds r0, r3, r1
strb r2, [r0]
_0804FDF2:
ldr r0, [r5]
ldr r2, _0804FE54 @ =0x00000726
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #4
ldr r1, _0804FE58 @ =gUnknown_086B11CC
adds r3, r0, r1
adds r4, r1, #0
adds r4, #0x20
ldr r2, _0804FE5C @ =0x040000D4
ldr r0, [r3]
str r0, [r2]
ldr r0, [r1, #0x20]
str r0, [r2, #4]
ldr r1, _0804FE60 @ =0x80000070
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r5]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xd7
ble _0804FE4C
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
ldr r0, _0804FE64 @ =0x80000060
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #0xc]
str r0, [r2]
ldr r0, [r4, #0xc]
str r0, [r2, #4]
ldr r0, _0804FE68 @ =0x80000020
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804FE4C:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804FE54: .4byte 0x00000726
_0804FE58: .4byte gUnknown_086B11CC
_0804FE5C: .4byte 0x040000D4
_0804FE60: .4byte 0x80000070
_0804FE64: .4byte 0x80000060
_0804FE68: .4byte 0x80000020
thumb_func_start sub_4FE6C
sub_4FE6C: @ 0x0804FE6C
push {r4, r5, r6, r7, lr}
sub sp, #8
ldr r1, _0804FE94 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r3, _0804FE98 @ =0x0000072B
adds r0, r2, r3
movs r3, #0
ldrsb r3, [r0, r3]
adds r7, r1, #0
cmp r3, #0
bne _0804FEA0
mov r1, sp
ldr r4, _0804FE9C @ =0x00000734
adds r0, r2, r4
ldrh r0, [r0]
strh r0, [r1]
mov r0, sp
strh r3, [r0, #2]
strh r3, [r0, #4]
b _0804FEE2
.align 2, 0
_0804FE94: .4byte gUnknown_020314E0
_0804FE98: .4byte 0x0000072B
_0804FE9C: .4byte 0x00000734
_0804FEA0:
cmp r3, #1
bne _0804FEBC
mov r0, sp
strh r3, [r0]
mov r1, sp
ldr r0, _0804FEB8 @ =0x00000734
adds r2, r2, r0
ldrh r0, [r2]
strh r0, [r1, #2]
ldrh r0, [r2]
strh r0, [r1, #4]
b _0804FEE2
.align 2, 0
_0804FEB8: .4byte 0x00000734
_0804FEBC:
cmp r3, #2
bne _0804FED8
mov r0, sp
strh r3, [r0]
strh r3, [r0, #2]
mov r1, sp
ldr r3, _0804FED4 @ =0x00000734
adds r0, r2, r3
ldrh r0, [r0]
adds r0, #1
strh r0, [r1, #4]
b _0804FEE2
.align 2, 0
_0804FED4: .4byte 0x00000734
_0804FED8:
mov r0, sp
movs r1, #2
strh r1, [r0]
strh r1, [r0, #2]
strh r1, [r0, #4]
_0804FEE2:
mov r0, sp
movs r4, #0
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0804FFE4 @ =gUnknown_086B13F4
adds r2, r0, r3
adds r6, r3, #0
adds r6, #0x24
ldr r0, [r7]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xef
bgt _0804FF12
ldr r1, _0804FFE8 @ =0x040000D4
ldr r0, [r2]
str r0, [r1]
ldr r0, [r3, #0x24]
str r0, [r1, #4]
ldr r0, _0804FFEC @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FF12:
ldr r0, [r7]
adds r5, r0, #0
adds r5, #0x6a
movs r4, #0
ldrsh r0, [r5, r4]
cmp r0, #0xf7
bgt _0804FF30
ldr r1, _0804FFE8 @ =0x040000D4
ldr r0, [r2, #4]
str r0, [r1]
ldr r0, [r6, #4]
str r0, [r1, #4]
ldr r0, _0804FFF0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FF30:
movs r0, #0
ldrsh r4, [r5, r0]
cmp r4, #0x58
ble _0804FF7C
mov r0, sp
movs r2, #2
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r3, #0
adds r1, #0x3c
adds r2, r0, r1
adds r6, r3, #0
adds r6, #0x60
cmp r4, #0xfd
bgt _0804FF62
ldr r1, _0804FFE8 @ =0x040000D4
ldr r0, [r2]
str r0, [r1]
ldr r0, [r3, #0x60]
str r0, [r1, #4]
ldr r0, _0804FFEC @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FF62:
movs r3, #0
ldrsh r1, [r5, r3]
ldr r0, _0804FFF4 @ =0x00000105
cmp r1, r0
bgt _0804FF7C
ldr r1, _0804FFE8 @ =0x040000D4
ldr r0, [r2, #4]
str r0, [r1]
ldr r0, [r6, #4]
str r0, [r1, #4]
ldr r0, _0804FFEC @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FF7C:
ldr r0, [r7]
adds r0, #0x6a
movs r1, #0
ldrsh r4, [r0, r1]
cmp r4, #0x60
ble _0804FFDA
mov r0, sp
movs r2, #4
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0804FFF8 @ =gUnknown_086B146C
adds r2, r0, r3
adds r6, r3, #0
adds r6, #0x24
ldr r0, _0804FFFC @ =0x00000107
cmp r4, r0
bgt _0804FFB2
ldr r1, _0804FFE8 @ =0x040000D4
ldr r0, [r2]
str r0, [r1]
ldr r0, [r3, #0x24]
str r0, [r1, #4]
ldr r0, _0804FFEC @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0804FFB2:
ldr r1, _0804FFE8 @ =0x040000D4
ldr r0, [r2, #4]
str r0, [r1]
ldr r0, [r6, #4]
str r0, [r1, #4]
ldr r3, _0804FFEC @ =0x80000020
str r3, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r7]
adds r0, #0x6a
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x68
ble _0804FFDA
ldr r0, [r2, #8]
str r0, [r1]
ldr r0, [r6, #8]
str r0, [r1, #4]
str r3, [r1, #8]
ldr r0, [r1, #8]
_0804FFDA:
add sp, #8
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804FFE4: .4byte gUnknown_086B13F4
_0804FFE8: .4byte 0x040000D4
_0804FFEC: .4byte 0x80000020
_0804FFF0: .4byte 0x80000030
_0804FFF4: .4byte 0x00000105
_0804FFF8: .4byte gUnknown_086B146C
_0804FFFC: .4byte 0x00000107
thumb_func_start sub_50000
sub_50000: @ 0x08050000
push {r4, r5, r6, lr}
movs r1, #0
ldr r6, _0805009C @ =gUnknown_020314E0
ldr r2, [r6]
movs r3, #0xe5
lsls r3, r3, #3
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08050026
ldr r1, _080500A0 @ =0x00000734
adds r0, r2, r1
ldrh r1, [r0]
movs r0, #1
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_08050026:
lsls r0, r1, #0x10
asrs r0, r0, #0xc
ldr r3, _080500A4 @ =gUnknown_086B11FC
adds r4, r0, r3
adds r5, r3, #0
adds r5, #0x20
adds r0, r2, #0
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xff
bgt _0805004E
ldr r1, _080500A8 @ =0x040000D4
ldr r0, [r4]
str r0, [r1]
ldr r0, [r3, #0x20]
str r0, [r1, #4]
ldr r0, _080500AC @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0805004E:
ldr r0, [r6]
adds r2, r0, #0
adds r2, #0x6a
ldrh r0, [r2]
subs r0, #0x61
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa6
bhi _08050070
ldr r1, _080500A8 @ =0x040000D4
ldr r0, [r4, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _080500B0 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050070:
movs r3, #0
ldrsh r0, [r2, r3]
cmp r0, #0x67
ble _08050094
ldr r0, _080500A8 @ =0x040000D4
ldr r1, [r4, #8]
str r1, [r0]
ldr r1, [r5, #8]
str r1, [r0, #4]
ldr r2, _080500B0 @ =0x80000040
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, [r4, #0xc]
str r1, [r0]
ldr r1, [r5, #0xc]
str r1, [r0, #4]
str r2, [r0, #8]
ldr r0, [r0, #8]
_08050094:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0805009C: .4byte gUnknown_020314E0
_080500A0: .4byte 0x00000734
_080500A4: .4byte gUnknown_086B11FC
_080500A8: .4byte 0x040000D4
_080500AC: .4byte 0x80000020
_080500B0: .4byte 0x80000040
thumb_func_start sub_500B4
sub_500B4: @ 0x080500B4
push {r4, r5, lr}
movs r1, #0
ldr r5, _0805013C @ =gUnknown_020314E0
ldr r2, [r5]
ldr r3, _08050140 @ =0x00000729
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _080500D8
ldr r1, _08050144 @ =0x00000734
adds r0, r2, r1
ldrh r1, [r0]
movs r0, #1
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_080500D8:
lsls r0, r1, #0x10
asrs r0, r0, #0xc
ldr r1, _08050148 @ =gUnknown_086B122C
adds r3, r0, r1
adds r4, r1, #0
adds r4, #0x20
adds r0, r2, #0
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xc2
bgt _08050100
ldr r1, _0805014C @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r1]
ldr r0, [r4, #4]
str r0, [r1, #4]
ldr r0, _08050150 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050100:
ldr r0, [r5]
adds r2, r0, #0
adds r2, #0x6a
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0x1e
ble _0805011E
ldr r1, _0805014C @ =0x040000D4
ldr r0, [r3, #8]
str r0, [r1]
ldr r0, [r4, #8]
str r0, [r1, #4]
ldr r0, _08050150 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0805011E:
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0x26
ble _08050136
ldr r1, _0805014C @ =0x040000D4
ldr r0, [r3, #0xc]
str r0, [r1]
ldr r0, [r4, #0xc]
str r0, [r1, #4]
ldr r0, _08050150 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050136:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0805013C: .4byte gUnknown_020314E0
_08050140: .4byte 0x00000729
_08050144: .4byte 0x00000734
_08050148: .4byte gUnknown_086B122C
_0805014C: .4byte 0x040000D4
_08050150: .4byte 0x80000040
thumb_func_start sub_50154
sub_50154: @ 0x08050154
push {r4, r5, r6, lr}
sub sp, #8
ldr r0, _0805018C @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x13
ldrsb r1, [r2, r1]
adds r6, r0, #0
cmp r1, #2
bgt _080501E0
ldr r1, _08050190 @ =0x0000072E
adds r0, r2, r1
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
bne _08050198
mov r1, sp
ldr r4, _08050194 @ =0x00000734
adds r2, r2, r4
movs r4, #0
ldrsh r0, [r2, r4]
lsls r0, r0, #1
strh r0, [r1]
ldrh r0, [r2]
strh r0, [r1, #2]
mov r0, sp
strh r3, [r0, #4]
b _08050206
.align 2, 0
_0805018C: .4byte gUnknown_020314E0
_08050190: .4byte 0x0000072E
_08050194: .4byte 0x00000734
_08050198:
cmp r3, #1
bne _080501B8
mov r1, sp
movs r0, #3
strh r0, [r1]
ldr r0, _080501B4 @ =0x00000734
adds r2, r2, r0
ldrh r0, [r2]
adds r0, #1
strh r0, [r1, #2]
movs r3, #0
ldrsh r0, [r2, r3]
lsls r0, r0, #1
b _08050204
.align 2, 0
_080501B4: .4byte 0x00000734
_080501B8:
cmp r3, #2
bne _080501D4
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
mov r1, sp
ldr r4, _080501D0 @ =0x00000734
adds r0, r2, r4
ldrh r0, [r0]
adds r0, #2
b _08050204
.align 2, 0
_080501D0: .4byte 0x00000734
_080501D4:
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
strh r1, [r0, #4]
b _08050206
_080501E0:
mov r1, sp
ldr r3, _080502F0 @ =0x00000739
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1]
ldr r4, _080502F4 @ =0x0000073A
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1, #2]
adds r3, #2
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_08050204:
strh r0, [r1, #4]
_08050206:
mov r0, sp
movs r4, #0
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080502F8 @ =gUnknown_086B1340
mov ip, r1
adds r3, r0, r1
mov r4, ip
adds r4, #0x30
ldr r0, [r6]
adds r0, #0x6a
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _080502FC @ =0x00000107
cmp r1, r0
bgt _0805023C
ldr r1, _08050300 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
mov r2, ip
ldr r0, [r2, #0x30]
str r0, [r1, #4]
ldr r0, _08050304 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0805023C:
ldr r2, _08050300 @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
ldr r5, _08050304 @ =0x80000030
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r6]
adds r6, r0, #0
adds r6, #0x6a
movs r3, #0
ldrsh r0, [r6, r3]
cmp r0, #0x78
ble _080502A2
mov r0, sp
movs r4, #2
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x3c
adds r3, r0, r1
mov r4, ip
adds r4, #0x6c
ldr r0, [r3]
str r0, [r2]
mov r1, ip
ldr r0, [r1, #0x6c]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
_080502A2:
movs r3, #0
ldrsh r0, [r6, r3]
cmp r0, #0x88
ble _080502E6
mov r0, sp
movs r4, #4
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x78
adds r3, r0, r1
mov r4, ip
adds r4, #0xa8
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
ldr r0, _08050308 @ =0x80000020
str r0, [r2, #8]
ldr r0, [r2, #8]
_080502E6:
add sp, #8
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080502F0: .4byte 0x00000739
_080502F4: .4byte 0x0000073A
_080502F8: .4byte gUnknown_086B1340
_080502FC: .4byte 0x00000107
_08050300: .4byte 0x040000D4
_08050304: .4byte 0x80000030
_08050308: .4byte 0x80000020
thumb_func_start sub_5030C
sub_5030C: @ 0x0805030C
push {r4, r5, r6, lr}
sub sp, #8
ldr r0, _08050340 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x13
ldrsb r1, [r2, r1]
adds r5, r0, #0
cmp r1, #2
bgt _08050394
ldr r1, _08050344 @ =0x0000072F
adds r0, r2, r1
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
bne _0805034C
mov r1, sp
ldr r4, _08050348 @ =0x00000734
adds r0, r2, r4
movs r2, #0
ldrsh r0, [r0, r2]
lsls r0, r0, #1
strh r0, [r1]
mov r0, sp
strh r3, [r0, #2]
strh r3, [r0, #4]
b _080503BA
.align 2, 0
_08050340: .4byte gUnknown_020314E0
_08050344: .4byte 0x0000072F
_08050348: .4byte 0x00000734
_0805034C:
cmp r3, #1
bne _0805036C
mov r1, sp
movs r0, #3
strh r0, [r1]
ldr r3, _08050368 @ =0x00000734
adds r2, r2, r3
ldrh r0, [r2]
adds r0, #1
strh r0, [r1, #2]
movs r4, #0
ldrsh r0, [r2, r4]
lsls r0, r0, #1
b _080503B8
.align 2, 0
_08050368: .4byte 0x00000734
_0805036C:
cmp r3, #2
bne _08050388
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
mov r1, sp
ldr r3, _08050384 @ =0x00000734
adds r0, r2, r3
ldrh r0, [r0]
adds r0, #2
b _080503B8
.align 2, 0
_08050384: .4byte 0x00000734
_08050388:
mov r0, sp
movs r1, #3
strh r1, [r0]
strh r1, [r0, #2]
strh r1, [r0, #4]
b _080503BA
_08050394:
mov r1, sp
ldr r4, _080504A4 @ =0x00000736
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1]
ldr r3, _080504A8 @ =0x00000737
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r1, #2]
adds r4, #2
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
_080503B8:
strh r0, [r1, #4]
_080503BA:
mov r0, sp
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _080504AC @ =gUnknown_086B14A8
mov ip, r3
adds r3, r0, r3
mov r4, ip
adds r4, #0x30
ldr r0, [r5]
adds r0, #0x6a
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _080504B0 @ =0x00000107
cmp r1, r0
bgt _080503F0
ldr r1, _080504B4 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
mov r2, ip
ldr r0, [r2, #0x30]
str r0, [r1, #4]
ldr r0, _080504B8 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_080503F0:
ldr r2, _080504B4 @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
ldr r6, _080504B8 @ =0x80000030
str r6, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r5]
adds r5, r0, #0
adds r5, #0x6a
movs r3, #0
ldrsh r0, [r5, r3]
cmp r0, #0x78
ble _08050458
mov r0, sp
movs r4, #2
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x3c
adds r3, r0, r1
mov r4, ip
adds r4, #0x6c
ldr r0, [r3]
str r0, [r2]
mov r1, ip
ldr r0, [r1, #0x6c]
str r0, [r2, #4]
ldr r1, _080504BC @ =0x80000020
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
_08050458:
movs r3, #0
ldrsh r0, [r5, r3]
cmp r0, #0x88
ble _0805049C
mov r0, sp
movs r4, #4
ldrsh r1, [r0, r4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r1, ip
adds r1, #0x78
adds r3, r0, r1
mov r4, ip
adds r4, #0xa8
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4]
str r0, [r2, #4]
ldr r1, _080504BC @ =0x80000020
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
_0805049C:
add sp, #8
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080504A4: .4byte 0x00000736
_080504A8: .4byte 0x00000737
_080504AC: .4byte gUnknown_086B14A8
_080504B0: .4byte 0x00000107
_080504B4: .4byte 0x040000D4
_080504B8: .4byte 0x80000030
_080504BC: .4byte 0x80000020
thumb_func_start sub_504C0
sub_504C0: @ 0x080504C0
push {r4, r5, r6, lr}
movs r3, #0
ldr r1, _08050584 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r4, _08050588 @ =0x00000731
adds r0, r0, r4
strb r3, [r0]
ldr r2, [r1]
ldr r5, _0805058C @ =0x0000072F
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r6, r1, #0
cmp r0, #1
ble _080504EE
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _080504EE
adds r1, r2, r4
movs r0, #1
strb r0, [r1]
_080504EE:
ldr r2, [r6]
ldr r1, _08050588 @ =0x00000731
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0805050C
ldr r5, _08050590 @ =0x00000734
adds r0, r2, r5
ldrh r1, [r0]
movs r0, #1
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
_0805050C:
lsls r0, r3, #0x10
asrs r0, r0, #0xc
ldr r3, _08050594 @ =gUnknown_086B12D0
adds r4, r0, r3
adds r5, r3, #0
adds r5, #0x20
adds r0, r2, #0
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xe7
bgt _08050534
ldr r1, _08050598 @ =0x040000D4
ldr r0, [r4]
str r0, [r1]
ldr r0, [r3, #0x20]
str r0, [r1, #4]
ldr r0, _0805059C @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050534:
ldr r0, [r6]
adds r2, r0, #0
adds r2, #0x6a
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0xef
bgt _08050552
ldr r1, _08050598 @ =0x040000D4
ldr r0, [r4, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _080505A0 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050552:
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0x4f
ble _0805057E
cmp r0, #0xf7
bgt _0805056E
ldr r1, _08050598 @ =0x040000D4
ldr r0, [r4, #8]
str r0, [r1]
ldr r0, [r5, #8]
str r0, [r1, #4]
ldr r0, _080505A0 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0805056E:
ldr r1, _08050598 @ =0x040000D4
ldr r0, [r4, #0xc]
str r0, [r1]
ldr r0, [r5, #0xc]
str r0, [r1, #4]
ldr r0, _0805059C @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0805057E:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08050584: .4byte gUnknown_020314E0
_08050588: .4byte 0x00000731
_0805058C: .4byte 0x0000072F
_08050590: .4byte 0x00000734
_08050594: .4byte gUnknown_086B12D0
_08050598: .4byte 0x040000D4
_0805059C: .4byte 0x80000030
_080505A0: .4byte 0x80000040
thumb_func_start sub_505A4
sub_505A4: @ 0x080505A4
push {r4, r5, lr}
movs r3, #0
ldr r0, _080505C8 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r4, _080505CC @ =0x00000366
adds r1, r2, r4
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r5, r0, #0
cmp r1, #3
bne _080505D4
ldr r0, _080505D0 @ =0x0000072A
adds r1, r2, r0
movs r0, #1
strb r0, [r1]
b _080505E2
.align 2, 0
_080505C8: .4byte gUnknown_020314E0
_080505CC: .4byte 0x00000366
_080505D0: .4byte 0x0000072A
_080505D4:
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #0
beq _080505E2
ldr r1, _0805060C @ =0x0000072A
adds r0, r2, r1
strb r3, [r0]
_080505E2:
ldr r1, [r5]
ldr r2, _0805060C @ =0x0000072A
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08050614
ldr r4, _08050610 @ =0x000001A5
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r2, #0xa
adds r1, r1, r2
ldrh r1, [r1]
subs r1, #1
subs r0, r0, r1
lsls r0, r0, #0x10
b _08050620
.align 2, 0
_0805060C: .4byte 0x0000072A
_08050610: .4byte 0x000001A5
_08050614:
ldr r4, _0805069C @ =0x000001A5
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x11
_08050620:
lsrs r3, r0, #0x10
lsls r0, r3, #0x10
asrs r0, r0, #0xc
ldr r2, _080506A0 @ =gUnknown_086B125C
adds r3, r0, r2
adds r4, r2, #0
adds r4, #0x40
ldr r0, [r5]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xdf
bgt _0805064A
ldr r1, _080506A4 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r2, #0x40]
str r0, [r1, #4]
ldr r0, _080506A8 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_0805064A:
ldr r0, [r5]
adds r2, r0, #0
adds r2, #0x6a
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0xe7
bgt _08050668
ldr r1, _080506A4 @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r1]
ldr r0, [r4, #4]
str r0, [r1, #4]
ldr r0, _080506A8 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050668:
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0x47
ble _08050694
cmp r0, #0xef
bgt _08050684
ldr r1, _080506A4 @ =0x040000D4
ldr r0, [r3, #8]
str r0, [r1]
ldr r0, [r4, #8]
str r0, [r1, #4]
ldr r0, _080506A8 @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050684:
ldr r1, _080506A4 @ =0x040000D4
ldr r0, [r3, #0xc]
str r0, [r1]
ldr r0, [r4, #0xc]
str r0, [r1, #4]
ldr r0, _080506AC @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_08050694:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0805069C: .4byte 0x000001A5
_080506A0: .4byte gUnknown_086B125C
_080506A4: .4byte 0x040000D4
_080506A8: .4byte 0x80000040
_080506AC: .4byte 0x80000030
thumb_func_start sub_506B0
sub_506B0: @ 0x080506B0
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r0, _08050700 @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xe3
lsls r2, r2, #3
adds r5, r0, r2
ldr r4, _08050704 @ =gUnknown_086B12AC
adds r7, r4, #0
adds r7, #8
ldr r3, _08050708 @ =0x040000D4
ldr r6, _0805070C @ =0x80000020
_080506C8:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r0, r5, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r4
adds r0, r1, r0
adds r1, r1, r7
ldr r0, [r0]
str r0, [r3]
ldr r0, [r1]
str r0, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #2
ble _080506C8
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08050700: .4byte gUnknown_020314E0
_08050704: .4byte gUnknown_086B12AC
_08050708: .4byte 0x040000D4
_0805070C: .4byte 0x80000020
thumb_func_start sub_50710
sub_50710: @ 0x08050710
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r2, _08050770 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08050774 @ =0x00000346
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
beq _080507C0
movs r1, #0
mov sb, r2
ldr r2, _08050778 @ =0x0000034B
mov r8, r2
ldr r5, _0805077C @ =0x040000D4
ldr r0, _08050780 @ =gUnknown_086B0F9C
mov sl, r0
ldr r7, _08050784 @ =0x80000020
_0805073C:
mov r2, sb
ldr r0, [r2]
lsls r1, r1, #0x10
asrs r4, r1, #0x10
add r0, r8
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r6, r1, #0
cmp r0, #0
ble _08050788
cmp r0, #0xa
bne _0805075E
movs r0, #0xdc
bl m4aSongNumStart
_0805075E:
mov r0, sb
ldr r1, [r0]
add r1, r8
adds r1, r1, r4
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
movs r2, #1
b _0805078A
.align 2, 0
_08050770: .4byte gUnknown_020314E0
_08050774: .4byte 0x00000346
_08050778: .4byte 0x0000034B
_0805077C: .4byte 0x040000D4
_08050780: .4byte gUnknown_086B0F9C
_08050784: .4byte 0x80000020
_08050788:
movs r2, #0
_0805078A:
asrs r3, r6, #0x10
lsls r1, r3, #1
adds r1, r1, r3
lsls r1, r1, #3
lsls r2, r2, #3
add r2, sl
adds r2, r1, r2
ldr r0, _080507D0 @ =gUnknown_086B0FAC
adds r1, r1, r0
ldr r0, [r2]
str r0, [r5]
ldr r0, [r1]
str r0, [r5, #4]
str r7, [r5, #8]
ldr r0, [r5, #8]
ldr r0, [r2, #4]
str r0, [r5]
ldr r0, [r1, #4]
str r0, [r5, #4]
str r7, [r5, #8]
ldr r0, [r5, #8]
adds r3, #1
lsls r3, r3, #0x10
lsrs r1, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #9
ble _0805073C
_080507C0:
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
_080507D0: .4byte gUnknown_086B0FAC
thumb_func_start sub_507D4
sub_507D4: @ 0x080507D4
push {r4, r5, lr}
movs r1, #0
ldr r0, _08050834 @ =gUnknown_020314E0
ldr r4, [r0]
movs r2, #0xc2
lsls r2, r2, #2
adds r0, r4, r2
ldrh r0, [r0]
cmp r0, #0x63
bls _080507F8
ldr r1, _08050838 @ =0x0000070C
adds r0, r4, r1
ldrh r0, [r0]
movs r1, #0x14
bl __umodsi3
lsls r0, r0, #0x10
lsrs r1, r0, #0x12
_080507F8:
lsls r0, r1, #3
ldr r2, _0805083C @ =gUnknown_086B0E6C
adds r3, r0, r2
adds r5, r2, #0
adds r5, #0x28
adds r0, r4, #0
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xaf
bgt _0805081E
ldr r1, _08050840 @ =0x040000D4
ldr r0, [r3]
str r0, [r1]
ldr r0, [r2, #0x28]
str r0, [r1, #4]
ldr r0, _08050844 @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
_0805081E:
ldr r1, _08050840 @ =0x040000D4
ldr r0, [r3, #4]
str r0, [r1]
ldr r0, [r5, #4]
str r0, [r1, #4]
ldr r0, _08050844 @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08050834: .4byte gUnknown_020314E0
_08050838: .4byte 0x0000070C
_0805083C: .4byte gUnknown_086B0E6C
_08050840: .4byte 0x040000D4
_08050844: .4byte 0x80000020
thumb_func_start sub_50848
sub_50848: @ 0x08050848
push {r4, r5, r6, r7, lr}
movs r0, #0
ldr r4, _080508E8 @ =gMain
ldr r7, _080508EC @ =gUnknown_086B155C
adds r6, r4, #0
movs r5, #0xb8
movs r3, #0xbe
lsls r3, r3, #2
movs r2, #0
_0805085A:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r3
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x53
ble _0805085A
ldr r0, _080508F0 @ =0x000030F8
adds r1, r4, r0
movs r0, #1
strh r0, [r1]
ldr r1, _080508F4 @ =0x00002578
adds r3, r4, r1
ldr r2, _080508F8 @ =0x00003548
adds r1, r4, r2
strh r0, [r1]
movs r5, #0xbe
lsls r5, r5, #2
adds r2, r4, r5
strh r0, [r2]
adds r5, #0xb8
adds r1, r4, r5
strh r0, [r1]
adds r5, #0xb8
adds r1, r4, r5
strh r0, [r1]
ldr r5, _080508FC @ =0x00001718
adds r1, r4, r5
strh r0, [r1]
ldr r5, _08050900 @ =0x00003D30
adds r1, r4, r5
strh r0, [r1]
ldr r5, _08050904 @ =0x000031B0
adds r1, r4, r5
strh r0, [r1]
movs r5, #0xd8
lsls r5, r5, #6
adds r1, r4, r5
strh r0, [r1]
ldr r5, _08050908 @ =0x00003268
adds r1, r4, r5
strh r0, [r1]
ldr r5, _0805090C @ =0x000027A0
adds r1, r4, r5
strh r0, [r1]
ldr r5, _08050910 @ =0x00002ED0
adds r1, r4, r5
strh r0, [r1]
strh r0, [r3]
ldr r3, _08050914 @ =0x00002858
adds r1, r4, r3
strh r0, [r1]
adds r5, #0xb8
adds r1, r4, r5
strh r0, [r1]
ldrb r1, [r4, #4]
lsls r1, r1, #3
adds r1, r1, r7
ldr r0, [r1]
ldrh r1, [r1, #4]
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080508E8: .4byte gMain
_080508EC: .4byte gUnknown_086B155C
_080508F0: .4byte 0x000030F8
_080508F4: .4byte 0x00002578
_080508F8: .4byte 0x00003548
_080508FC: .4byte 0x00001718
_08050900: .4byte 0x00003D30
_08050904: .4byte 0x000031B0
_08050908: .4byte 0x00003268
_0805090C: .4byte 0x000027A0
_08050910: .4byte 0x00002ED0
_08050914: .4byte 0x00002858
thumb_func_start sub_50918
sub_50918: @ 0x08050918
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r2, _080509EC @ =gMain
ldr r1, _080509F0 @ =0x00000A28
adds r0, r2, r1
movs r1, #0
strh r1, [r0]
movs r3, #0xae
lsls r3, r3, #4
adds r0, r2, r3
strh r1, [r0]
ldr r4, _080509F4 @ =0x00002578
adds r0, r2, r4
strh r1, [r0]
movs r3, #0xd8
lsls r3, r3, #6
adds r0, r2, r3
strh r1, [r0]
movs r0, #0x33
adds r5, r2, #0
ldr r7, _080509F8 @ =gUnknown_020314E0
ldr r4, _080509FC @ =gUnknown_086B155C
mov r8, r4
adds r6, r5, #0
movs r4, #0xb8
movs r3, #0xbe
lsls r3, r3, #2
movs r2, #0
_08050952:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
muls r0, r4, r0
adds r0, r0, r6
adds r0, r0, r3
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x42
ble _08050952
ldr r4, [r7]
ldr r0, [r5, #0x4c]
movs r1, #0x19
bl __umodsi3
movs r2, #0xde
lsls r2, r2, #1
adds r1, r4, r2
strh r0, [r1]
adds r4, #0x68
movs r3, #0
ldrsh r0, [r4, r3]
cmp r0, #0x6d
bgt _0805099E
ldr r4, _08050A00 @ =0x000031B0
adds r0, r5, r4
movs r1, #1
strh r1, [r0]
movs r2, #0xd8
lsls r2, r2, #6
adds r0, r5, r2
strh r1, [r0]
ldr r3, _08050A04 @ =0x00003268
adds r0, r5, r3
strh r1, [r0]
_0805099E:
ldr r3, [r7]
adds r2, r3, #0
adds r2, #0x68
movs r4, #0
ldrsh r0, [r2, r4]
cmp r0, #0xa7
bgt _080509BA
ldr r1, _080509F4 @ =0x00002578
adds r0, r5, r1
movs r1, #1
strh r1, [r0]
ldr r4, _08050A08 @ =0x00002858
adds r0, r5, r4
strh r1, [r0]
_080509BA:
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0xdb
bgt _08050A1E
ldr r2, _08050A0C @ =0x000027A0
adds r0, r5, r2
movs r1, #1
strh r1, [r0]
ldr r4, _08050A10 @ =0x00002ED0
adds r0, r5, r4
strh r1, [r0]
ldr r2, _08050A14 @ =0x000030F8
adds r0, r5, r2
strh r1, [r0]
movs r4, #0xa9
lsls r4, r4, #2
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08050A18
subs r2, #0xb8
adds r0, r5, r2
b _08050A1C
.align 2, 0
_080509EC: .4byte gMain
_080509F0: .4byte 0x00000A28
_080509F4: .4byte 0x00002578
_080509F8: .4byte gUnknown_020314E0
_080509FC: .4byte gUnknown_086B155C
_08050A00: .4byte 0x000031B0
_08050A04: .4byte 0x00003268
_08050A08: .4byte 0x00002858
_08050A0C: .4byte 0x000027A0
_08050A10: .4byte 0x00002ED0
_08050A14: .4byte 0x000030F8
_08050A18:
ldr r3, _08050AB0 @ =0x00002F88
adds r0, r5, r3
_08050A1C:
strh r1, [r0]
_08050A1E:
ldr r0, [r7]
adds r0, #0x68
movs r4, #0
ldrsh r0, [r0, r4]
cmp r0, #0x3f
ble _08050A38
ldr r1, _08050AB4 @ =0x00002910
adds r0, r5, r1
movs r1, #1
strh r1, [r0]
ldr r2, _08050AB8 @ =0x00002BF0
adds r0, r5, r2
strh r1, [r0]
_08050A38:
ldr r0, [r7]
adds r4, r0, #0
adds r4, #0x68
movs r3, #0
ldrsh r0, [r4, r3]
cmp r0, #0x73
ble _08050A4E
ldr r0, _08050ABC @ =0x00002CA8
adds r1, r5, r0
movs r0, #1
strh r0, [r1]
_08050A4E:
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0x82
ble _08050A64
ldr r2, _08050AC0 @ =0x00002D60
adds r0, r5, r2
movs r1, #1
strh r1, [r0]
ldr r3, _08050AC4 @ =0x00002E18
adds r0, r5, r3
strh r1, [r0]
_08050A64:
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0xd8
ble _08050A90
ldr r2, _08050AC8 @ =0x00002B38
adds r0, r5, r2
movs r1, #1
strh r1, [r0]
ldr r3, _08050ACC @ =0x000029C8
adds r0, r5, r3
strh r1, [r0]
movs r4, #0xaa
lsls r4, r4, #6
adds r0, r5, r4
strh r1, [r0]
ldr r2, _08050AD0 @ =0x00000A28
adds r0, r5, r2
strh r1, [r0]
movs r3, #0xae
lsls r3, r3, #4
adds r0, r5, r3
strh r1, [r0]
_08050A90:
ldrb r1, [r5, #4]
lsls r1, r1, #3
add r1, r8
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r4, #0xbe
lsls r4, r4, #2
adds r2, r5, r4
bl LoadSpriteSets
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08050AB0: .4byte 0x00002F88
_08050AB4: .4byte 0x00002910
_08050AB8: .4byte 0x00002BF0
_08050ABC: .4byte 0x00002CA8
_08050AC0: .4byte 0x00002D60
_08050AC4: .4byte 0x00002E18
_08050AC8: .4byte 0x00002B38
_08050ACC: .4byte 0x000029C8
_08050AD0: .4byte 0x00000A28
thumb_func_start sub_50AD4
sub_50AD4: @ 0x08050AD4
push {r4, r5, r6, r7, lr}
movs r0, #0
ldr r3, _08050B5C @ =gMain
ldr r7, _08050B60 @ =gUnknown_086B155C
adds r6, r3, #0
movs r5, #0xb8
movs r4, #0xbe
lsls r4, r4, #2
movs r2, #0
_08050AE6:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x56
ble _08050AE6
ldr r1, _08050B64 @ =0x000036B8
adds r0, r3, r1
movs r1, #1
strh r1, [r0]
movs r2, #0xc1
lsls r2, r2, #6
adds r0, r3, r2
strh r1, [r0]
ldr r4, _08050B68 @ =0x00002E18
adds r0, r3, r4
strh r1, [r0]
ldr r2, _08050B6C @ =0x00003490
adds r0, r3, r2
strh r1, [r0]
ldr r4, _08050B70 @ =0x00002858
adds r0, r3, r4
strh r1, [r0]
ldr r2, _08050B74 @ =0x00003828
adds r0, r3, r2
strh r1, [r0]
movs r4, #0xbe
lsls r4, r4, #2
adds r2, r3, r4
strh r1, [r2]
adds r4, #0xb8
adds r0, r3, r4
strh r1, [r0]
adds r4, #0xb8
adds r0, r3, r4
strh r1, [r0]
ldr r4, _08050B78 @ =0x000014F0
adds r0, r3, r4
strh r1, [r0]
ldr r4, _08050B7C @ =0x00004010
adds r0, r3, r4
strh r1, [r0]
ldrb r1, [r3, #4]
lsls r1, r1, #3
adds r1, r1, r7
ldr r0, [r1]
ldrh r1, [r1, #4]
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08050B5C: .4byte gMain
_08050B60: .4byte gUnknown_086B155C
_08050B64: .4byte 0x000036B8
_08050B68: .4byte 0x00002E18
_08050B6C: .4byte 0x00003490
_08050B70: .4byte 0x00002858
_08050B74: .4byte 0x00003828
_08050B78: .4byte 0x000014F0
_08050B7C: .4byte 0x00004010
thumb_func_start sub_50B80
sub_50B80: @ 0x08050B80
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r0, #0x37
ldr r1, _08050CF0 @ =gMain
mov sb, r1
mov r5, sb
movs r4, #0xb8
movs r3, #0xbe
lsls r3, r3, #2
movs r2, #0
_08050B9A:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
muls r0, r4, r0
adds r0, r0, r5
adds r0, r0, r3
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0x46
ble _08050B9A
mov r5, sb
ldr r2, _08050CF4 @ =0x00002858
adds r7, r5, r2
movs r0, #0
strh r0, [r7]
ldr r1, _08050CF8 @ =0x000036B8
adds r1, r1, r5
mov r8, r1
strh r0, [r1]
ldr r2, _08050CFC @ =gUnknown_0200C668
strh r0, [r2]
ldr r1, _08050D00 @ =0x000027A0
adds r6, r5, r1
strh r0, [r6]
ldr r2, _08050D04 @ =gUnknown_0200EA58
strh r0, [r2]
ldr r1, _08050D08 @ =0x000038E0
adds r1, r1, r5
mov sl, r1
strh r0, [r1]
ldr r2, _08050D0C @ =gUnknown_0200BAE8
strh r0, [r2]
ldr r1, _08050D10 @ =gUnknown_0200BBA0
strh r0, [r1]
ldr r2, _08050D14 @ =gUnknown_020314E0
ldr r4, [r2]
ldr r0, [r5, #0x4c]
movs r1, #0x19
bl __umodsi3
movs r2, #0xde
lsls r2, r2, #1
adds r1, r4, r2
strh r0, [r1]
adds r4, #0x68
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0x59
bgt _08050C08
movs r0, #1
strh r0, [r7]
strh r0, [r6]
_08050C08:
ldr r2, _08050D14 @ =gUnknown_020314E0
ldr r0, [r2]
adds r4, r0, #0
adds r4, #0x68
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0xdb
bgt _08050C1E
movs r0, #1
mov r2, r8
strh r0, [r2]
_08050C1E:
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0x95
bgt _08050C34
ldr r2, _08050D18 @ =0x00002E18
adds r0, r5, r2
movs r1, #1
strh r1, [r0]
ldr r2, _08050D1C @ =0x00003490
adds r0, r5, r2
strh r1, [r0]
_08050C34:
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0xc3
bgt _08050C4A
movs r2, #0xc1
lsls r2, r2, #6
adds r1, r5, r2
movs r0, #1
strh r0, [r1]
mov r1, sl
strh r0, [r1]
_08050C4A:
movs r2, #0
ldrsh r0, [r4, r2]
cmp r0, #0xc9
bgt _08050C70
ldr r1, _08050D20 @ =0x00002ED0
adds r0, r5, r1
movs r1, #1
strh r1, [r0]
ldr r2, _08050D24 @ =0x00002CA8
adds r0, r5, r2
strh r1, [r0]
ldr r2, _08050D28 @ =0x00002F88
adds r0, r5, r2
strh r1, [r0]
ldr r2, _08050D2C @ =0x00002D60
adds r0, r5, r2
strh r1, [r0]
ldr r0, _08050D04 @ =gUnknown_0200EA58
strh r1, [r0]
_08050C70:
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0x76
ble _08050CA2
ldr r2, _08050D30 @ =0x00003548
adds r1, r5, r2
movs r0, #1
strh r0, [r1]
ldr r1, _08050CFC @ =gUnknown_0200C668
strh r0, [r1]
ldr r2, _08050D34 @ =0x000030F8
adds r1, r5, r2
strh r0, [r1]
ldr r2, _08050D38 @ =0x000033D8
adds r1, r5, r2
strh r0, [r1]
ldr r2, _08050D3C @ =0x000031B0
adds r1, r5, r2
strh r0, [r1]
adds r2, #0xb8
adds r1, r5, r2
strh r0, [r1]
adds r2, #0xb8
adds r1, r5, r2
strh r0, [r1]
_08050CA2:
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0xd8
ble _08050CC8
ldr r2, _08050D40 @ =0x00002BF0
adds r0, r5, r2
movs r1, #1
strh r1, [r0]
movs r2, #0xaa
lsls r2, r2, #6
adds r0, r5, r2
strh r1, [r0]
adds r2, #0xb8
adds r0, r5, r2
strh r1, [r0]
ldr r0, _08050D0C @ =gUnknown_0200BAE8
strh r1, [r0]
ldr r2, _08050D10 @ =gUnknown_0200BBA0
strh r1, [r2]
_08050CC8:
mov r0, sb
ldrb r1, [r0, #4]
lsls r1, r1, #3
ldr r2, _08050D44 @ =gUnknown_086B155C
adds r1, r1, r2
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r2, #0xbe
lsls r2, r2, #2
add r2, sb
bl LoadSpriteSets
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
_08050CF0: .4byte gMain
_08050CF4: .4byte 0x00002858
_08050CF8: .4byte 0x000036B8
_08050CFC: .4byte gUnknown_0200C668
_08050D00: .4byte 0x000027A0
_08050D04: .4byte gUnknown_0200EA58
_08050D08: .4byte 0x000038E0
_08050D0C: .4byte gUnknown_0200BAE8
_08050D10: .4byte gUnknown_0200BBA0
_08050D14: .4byte gUnknown_020314E0
_08050D18: .4byte 0x00002E18
_08050D1C: .4byte 0x00003490
_08050D20: .4byte 0x00002ED0
_08050D24: .4byte 0x00002CA8
_08050D28: .4byte 0x00002F88
_08050D2C: .4byte 0x00002D60
_08050D30: .4byte 0x00003548
_08050D34: .4byte 0x000030F8
_08050D38: .4byte 0x000033D8
_08050D3C: .4byte 0x000031B0
_08050D40: .4byte 0x00002BF0
_08050D44: .4byte gUnknown_086B155C
thumb_func_start sub_50D48
sub_50D48: @ 0x08050D48
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r6, _08050D74 @ =gMain
ldr r0, _08050D78 @ =gUnknown_086B155C
mov ip, r0
adds r5, r6, #0
movs r4, #0xb8
movs r2, #0xbe
lsls r2, r2, #2
movs r7, #1
_08050D5C:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
adds r3, r0, #0
cmp r1, #4
bgt _08050D7C
adds r0, r1, #0
muls r0, r4, r0
adds r0, r0, r5
adds r0, r0, r2
strh r7, [r0]
b _08050D88
.align 2, 0
_08050D74: .4byte gMain
_08050D78: .4byte gUnknown_086B155C
_08050D7C:
adds r0, r1, #0
muls r0, r4, r0
adds r0, r0, r5
adds r0, r0, r2
movs r1, #0
strh r1, [r0]
_08050D88:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xe
ble _08050D5C
ldr r0, [r6, #0x44]
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
ldrb r1, [r6, #4]
lsls r1, r1, #3
add r1, ip
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r6, r3
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_50DB8
sub_50DB8: @ 0x08050DB8
push {lr}
ldr r0, _08050DD8 @ =gUnknown_086B155C
ldr r2, _08050DDC @ =gMain
ldrb r1, [r2, #4]
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r0}
bx r0
.align 2, 0
_08050DD8: .4byte gUnknown_086B155C
_08050DDC: .4byte gMain
thumb_func_start sub_50DE0
sub_50DE0: @ 0x08050DE0
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r2, _08050E0C @ =gMain
ldr r0, _08050E10 @ =gUnknown_086B155C
mov ip, r0
adds r6, r2, #0
movs r5, #0xb8
movs r4, #0xbe
lsls r4, r4, #2
movs r7, #1
_08050DF4:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
adds r3, r0, #0
cmp r1, #4
bgt _08050E14
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
strh r7, [r0]
b _08050E20
.align 2, 0
_08050E0C: .4byte gMain
_08050E10: .4byte gUnknown_086B155C
_08050E14:
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
_08050E20:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x20
ble _08050DF4
ldr r0, [r2, #0x44]
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
movs r3, #0x9c
lsls r3, r3, #5
adds r1, r2, r3
strh r0, [r1]
movs r3, #0x97
lsls r3, r3, #4
adds r1, r2, r3
strh r0, [r1]
ldr r3, _08050EE8 @ =0x00001438
adds r1, r2, r3
strh r0, [r1]
ldr r3, _08050EEC @ =0x00000E78
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r2, r3
strh r0, [r1]
ldr r3, _08050EF0 @ =0x00000A28
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
ldr r3, _08050EF4 @ =0x00000FE8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
ldr r3, _08050EF8 @ =0x000014F0
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
movs r3, #0xca
lsls r3, r3, #5
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
ldr r3, _08050EFC @ =0x000017D0
adds r1, r2, r3
strh r0, [r1]
adds r3, #0xb8
adds r1, r2, r3
strh r0, [r1]
ldrb r1, [r2, #4]
lsls r1, r1, #3
add r1, ip
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08050EE8: .4byte 0x00001438
_08050EEC: .4byte 0x00000E78
_08050EF0: .4byte 0x00000A28
_08050EF4: .4byte 0x00000FE8
_08050EF8: .4byte 0x000014F0
_08050EFC: .4byte 0x000017D0
thumb_func_start nullsub_20
nullsub_20: @ 0x08050F00
bx lr
thumb_func_start sub_50F04
sub_50F04: @ 0x08050F04
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r2, _08050F30 @ =gMain
ldr r0, _08050F34 @ =gUnknown_086B155C
mov ip, r0
adds r6, r2, #0
movs r5, #0xb8
movs r4, #0xbe
lsls r4, r4, #2
movs r7, #1
_08050F18:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
adds r3, r0, #0
cmp r1, #4
bgt _08050F38
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
strh r7, [r0]
b _08050F44
.align 2, 0
_08050F30: .4byte gMain
_08050F34: .4byte gUnknown_086B155C
_08050F38:
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
_08050F44:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1a
ble _08050F18
ldr r0, [r2, #0x44]
ldr r0, [r0]
movs r1, #1
strh r1, [r0]
movs r3, #0xae
lsls r3, r3, #4
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
ldr r3, _08050FA8 @ =0x00001210
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
movs r3, #0xdc
lsls r3, r3, #4
adds r0, r2, r3
strh r1, [r0]
ldrb r1, [r2, #4]
lsls r1, r1, #3
add r1, ip
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08050FA8: .4byte 0x00001210
thumb_func_start sub_50FAC
sub_50FAC: @ 0x08050FAC
push {lr}
ldr r0, _08050FCC @ =gUnknown_086B155C
ldr r2, _08050FD0 @ =gMain
ldrb r1, [r2, #4]
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r0}
bx r0
.align 2, 0
_08050FCC: .4byte gUnknown_086B155C
_08050FD0: .4byte gMain
thumb_func_start sub_50FD4
sub_50FD4: @ 0x08050FD4
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r2, _08051000 @ =gMain
ldr r0, _08051004 @ =gUnknown_086B155C
mov ip, r0
adds r6, r2, #0
movs r5, #0xb8
movs r4, #0xbe
lsls r4, r4, #2
movs r7, #1
_08050FE8:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
adds r3, r0, #0
cmp r1, #4
bgt _08051008
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
strh r7, [r0]
b _08051014
.align 2, 0
_08051000: .4byte gMain
_08051004: .4byte gUnknown_086B155C
_08051008:
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
_08051014:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1f
ble _08050FE8
ldr r0, [r2, #0x44]
ldr r0, [r0]
movs r1, #1
strh r1, [r0]
movs r3, #0xae
lsls r3, r3, #4
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
ldr r3, _08051064 @ =0x000017D0
adds r0, r2, r3
strh r1, [r0]
ldrb r1, [r2, #4]
lsls r1, r1, #3
add r1, ip
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08051064: .4byte 0x000017D0
thumb_func_start sub_51068
sub_51068: @ 0x08051068
push {lr}
ldr r0, _08051088 @ =gUnknown_086B155C
ldr r2, _0805108C @ =gMain
ldrb r1, [r2, #4]
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r0}
bx r0
.align 2, 0
_08051088: .4byte gUnknown_086B155C
_0805108C: .4byte gMain
thumb_func_start sub_51090
sub_51090: @ 0x08051090
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r2, _080510BC @ =gMain
ldr r0, _080510C0 @ =gUnknown_086B155C
mov ip, r0
adds r6, r2, #0
movs r5, #0xb8
movs r4, #0xbe
lsls r4, r4, #2
movs r7, #1
_080510A4:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
adds r3, r0, #0
cmp r1, #4
bgt _080510C4
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
strh r7, [r0]
b _080510D0
.align 2, 0
_080510BC: .4byte gMain
_080510C0: .4byte gUnknown_086B155C
_080510C4:
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
_080510D0:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x2d
ble _080510A4
ldr r0, [r2, #0x44]
ldr r0, [r0]
movs r1, #1
strh r1, [r0]
ldr r3, _08051120 @ =0x00002128
adds r0, r2, r3
strh r1, [r0]
movs r3, #0xae
lsls r3, r3, #4
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
ldr r3, _08051124 @ =0x00001210
adds r0, r2, r3
strh r1, [r0]
ldrb r1, [r2, #4]
lsls r1, r1, #3
add r1, ip
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08051120: .4byte 0x00002128
_08051124: .4byte 0x00001210
thumb_func_start sub_51128
sub_51128: @ 0x08051128
push {lr}
ldr r0, _08051148 @ =gUnknown_086B155C
ldr r2, _0805114C @ =gMain
ldrb r1, [r2, #4]
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r0}
bx r0
.align 2, 0
_08051148: .4byte gUnknown_086B155C
_0805114C: .4byte gMain
thumb_func_start sub_51150
sub_51150: @ 0x08051150
push {r4, r5, r6, r7, lr}
movs r1, #0
ldr r2, _0805117C @ =gMain
ldr r0, _08051180 @ =gUnknown_086B155C
mov ip, r0
adds r6, r2, #0
movs r5, #0xb8
movs r4, #0xbe
lsls r4, r4, #2
movs r7, #1
_08051164:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
adds r3, r0, #0
cmp r1, #4
bgt _08051184
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
strh r7, [r0]
b _08051190
.align 2, 0
_0805117C: .4byte gMain
_08051180: .4byte gUnknown_086B155C
_08051184:
adds r0, r1, #0
muls r0, r5, r0
adds r0, r0, r6
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
_08051190:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x16
ble _08051164
ldr r0, [r2, #0x44]
ldr r0, [r0]
movs r1, #1
strh r1, [r0]
ldr r3, _080511EC @ =0x00000FE8
adds r0, r2, r3
strh r1, [r0]
ldr r3, _080511F0 @ =0x00001210
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
ldr r3, _080511F4 @ =0x00000D08
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
adds r3, #0xb8
adds r0, r2, r3
strh r1, [r0]
ldrb r1, [r2, #4]
lsls r1, r1, #3
add r1, ip
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080511EC: .4byte 0x00000FE8
_080511F0: .4byte 0x00001210
_080511F4: .4byte 0x00000D08
thumb_func_start sub_511F8
sub_511F8: @ 0x080511F8
push {lr}
ldr r0, _08051218 @ =gUnknown_086B155C
ldr r2, _0805121C @ =gMain
ldrb r1, [r2, #4]
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, [r1]
ldrh r1, [r1, #4]
movs r3, #0xbe
lsls r3, r3, #2
adds r2, r2, r3
bl LoadSpriteSets
pop {r0}
bx r0
.align 2, 0
_08051218: .4byte gUnknown_086B155C
_0805121C: .4byte gMain