mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
59693 lines
1.1 MiB
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
|