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

64170 lines
1.1 MiB

.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_11B9C
sub_11B9C: @ 0x08011B9C
push {r4, lr}
ldr r0, _08011BC0 @ =gMain
ldrb r0, [r0, #6]
cmp r0, #0
bne _08011BD0
ldr r0, _08011BC4 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _08011BC8 @ =0x0000132C
adds r1, r0, r2
ldr r3, _08011BCC @ =0x00001334
adds r0, r0, r3
str r0, [r1]
movs r0, #0
bl sub_11C14
bl sub_12524
b _08011C02
.align 2, 0
_08011BC0: .4byte gMain
_08011BC4: .4byte gUnknown_020314E0
_08011BC8: .4byte 0x0000132C
_08011BCC: .4byte 0x00001334
_08011BD0:
movs r3, #0
_08011BD2:
ldr r0, _08011C08 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _08011C0C @ =0x0000132C
adds r2, r1, r0
lsls r4, r3, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #4
adds r0, r0, r4
lsls r0, r0, #2
ldr r3, _08011C10 @ =0x00001334
adds r0, r0, r3
adds r1, r1, r0
str r1, [r2]
adds r0, r4, #0
bl sub_11C14
adds r4, #1
lsls r4, r4, #0x10
lsrs r3, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08011BD2
bl sub_12BF8
_08011C02:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08011C08: .4byte gUnknown_020314E0
_08011C0C: .4byte 0x0000132C
_08011C10: .4byte 0x00001334
thumb_func_start sub_11C14
sub_11C14: @ 0x08011C14
push {r4, r5, lr}
ldr r3, _08011C6C @ =gUnknown_020314E0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
ldr r0, _08011C70 @ =0x00001334
adds r1, r1, r0
ldr r0, [r3]
adds r4, r0, r1
ldr r1, _08011C74 @ =gUnknown_02031520
ldrh r0, [r1, #0x26]
movs r2, #0
strh r0, [r4, #0x10]
ldrh r0, [r1, #0x28]
strh r0, [r4, #0x12]
movs r5, #0x10
ldrsh r0, [r4, r5]
lsls r0, r0, #8
str r0, [r4, #0x34]
movs r5, #0x12
ldrsh r0, [r4, r5]
lsls r0, r0, #8
str r0, [r4, #0x38]
movs r5, #0x26
ldrsh r0, [r1, r5]
lsls r0, r0, #1
strh r0, [r4, #0x28]
movs r5, #0x28
ldrsh r0, [r1, r5]
lsls r0, r0, #1
strh r0, [r4, #0x2a]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0xe]
strh r2, [r4, #0x30]
strh r2, [r4, #0x32]
ldr r0, _08011C78 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _08011C7C
movs r0, #3
b _08011C7E
.align 2, 0
_08011C6C: .4byte gUnknown_020314E0
_08011C70: .4byte 0x00001334
_08011C74: .4byte gUnknown_02031520
_08011C78: .4byte gMain
_08011C7C:
movs r0, #1
_08011C7E:
strb r0, [r4, #1]
movs r0, #0
strh r0, [r4, #6]
ldr r0, [r3]
ldr r1, _08011C94 @ =0x000005B2
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08011C94: .4byte 0x000005B2
thumb_func_start sub_11C98
sub_11C98: @ 0x08011C98
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _08011CE0 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _08011CE4 @ =0x0000132C
adds r0, r2, r1
ldr r6, [r0]
ldr r0, [r6, #0x34]
ldr r1, [r6, #0x38]
str r0, [r6, #0x3c]
str r1, [r6, #0x40]
ldr r1, _08011CE8 @ =0x000005A4
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #2
bne _08011CBE
b _08011F48
_08011CBE:
adds r0, r2, #0
adds r0, #0x31
ldrb r0, [r0]
cmp r0, #0
bne _08011CCA
b _08011E04
_08011CCA:
ldrb r0, [r2, #0x1f]
cmp r0, #0
bne _08011D0A
ldrh r3, [r6, #0x32]
movs r1, #0x32
ldrsh r0, [r6, r1]
cmp r0, #0xa0
ble _08011CF0
ldr r0, _08011CEC @ =gUnknown_08137910
b _08011CFE
.align 2, 0
_08011CE0: .4byte gUnknown_020314E0
_08011CE4: .4byte 0x0000132C
_08011CE8: .4byte 0x000005A4
_08011CEC: .4byte gUnknown_08137910
_08011CF0:
cmp r0, #0x50
ble _08011CFC
ldr r0, _08011CF8 @ =gUnknown_08137908
b _08011CFE
.align 2, 0
_08011CF8: .4byte gUnknown_08137908
_08011CFC:
ldr r0, _08011D8C @ =gUnknown_08137900
_08011CFE:
ldrb r1, [r2, #0x1e]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
adds r0, r3, r0
strh r0, [r6, #0x32]
_08011D0A:
movs r2, #0x30
ldrsh r0, [r6, r2]
ldrh r1, [r6, #0x32]
rsbs r1, r1, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
adds r4, r7, #0
movs r1, #0x30
ldrsh r0, [r6, r1]
adds r1, r0, #0
muls r1, r0, r1
movs r2, #0x32
ldrsh r0, [r6, r2]
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
adds r2, r1, r0
movs r0, #0x12
ldrsh r1, [r6, r0]
ldr r0, _08011D90 @ =0x0000017B
cmp r1, r0
bgt _08011DA4
movs r1, #0x88
lsls r1, r1, #1
mov r8, r1
ldr r0, _08011D94 @ =0x00012100
cmp r2, r0
bgt _08011D4C
b _08011F2C
_08011D4C:
adds r0, r7, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r2, r8
muls r2, r0, r2
adds r0, r2, #0
ldr r1, _08011D98 @ =0x00004E20
mov sb, r1
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08011D9C @ =0xFFFF0000
ands r5, r1
orrs r5, r0
adds r0, r7, #0
bl sub_C24
mov r2, r8
rsbs r1, r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
mov r1, sb
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08011DA0 @ =0x0000FFFF
ands r5, r1
b _08011F32
.align 2, 0
_08011D8C: .4byte gUnknown_08137900
_08011D90: .4byte 0x0000017B
_08011D94: .4byte 0x00012100
_08011D98: .4byte 0x00004E20
_08011D9C: .4byte 0xFFFF0000
_08011DA0: .4byte 0x0000FFFF
_08011DA4:
movs r0, #0xc8
lsls r0, r0, #1
mov r8, r0
ldr r0, _08011DF4 @ =0x00027100
cmp r2, r0
bgt _08011DB2
b _08011F2C
_08011DB2:
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, r8
muls r1, r0, r1
adds r0, r1, #0
ldr r7, _08011DF8 @ =0x00004E20
adds r1, r7, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08011DFC @ =0xFFFF0000
ands r5, r1
orrs r5, r0
adds r0, r4, #0
bl sub_C24
mov r2, r8
rsbs r1, r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r7, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08011E00 @ =0x0000FFFF
ands r5, r1
b _08011F32
.align 2, 0
_08011DF4: .4byte 0x00027100
_08011DF8: .4byte 0x00004E20
_08011DFC: .4byte 0xFFFF0000
_08011E00: .4byte 0x0000FFFF
_08011E04:
ldrb r0, [r2, #0x1f]
cmp r0, #0
bne _08011E36
ldrh r3, [r6, #0x32]
movs r1, #0x32
ldrsh r0, [r6, r1]
cmp r0, #0xc8
ble _08011E1C
ldr r0, _08011E18 @ =gUnknown_08137910
b _08011E2A
.align 2, 0
_08011E18: .4byte gUnknown_08137910
_08011E1C:
cmp r0, #0x64
ble _08011E28
ldr r0, _08011E24 @ =gUnknown_08137908
b _08011E2A
.align 2, 0
_08011E24: .4byte gUnknown_08137908
_08011E28:
ldr r0, _08011EB8 @ =gUnknown_08137900
_08011E2A:
ldrb r1, [r2, #0x1e]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
adds r0, r3, r0
strh r0, [r6, #0x32]
_08011E36:
movs r2, #0x30
ldrsh r0, [r6, r2]
ldrh r1, [r6, #0x32]
rsbs r1, r1, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
mov sb, r7
movs r1, #0x30
ldrsh r0, [r6, r1]
adds r1, r0, #0
muls r1, r0, r1
movs r2, #0x32
ldrsh r0, [r6, r2]
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
adds r2, r1, r0
movs r0, #0x12
ldrsh r1, [r6, r0]
ldr r0, _08011EBC @ =0x0000017B
cmp r1, r0
bgt _08011ED0
movs r1, #0xa8
lsls r1, r1, #1
mov r8, r1
ldr r0, _08011EC0 @ =0x0001B900
cmp r2, r0
ble _08011F2C
adds r0, r7, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r2, r8
muls r2, r0, r2
adds r0, r2, #0
ldr r1, _08011EC4 @ =0x00004E20
mov sb, r1
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08011EC8 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
adds r0, r7, #0
bl sub_C24
mov r2, r8
rsbs r1, r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
mov r1, sb
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08011ECC @ =0x0000FFFF
ands r5, r1
b _08011F32
.align 2, 0
_08011EB8: .4byte gUnknown_08137900
_08011EBC: .4byte 0x0000017B
_08011EC0: .4byte 0x0001B900
_08011EC4: .4byte 0x00004E20
_08011EC8: .4byte 0xFFFF0000
_08011ECC: .4byte 0x0000FFFF
_08011ED0:
movs r0, #0xc8
lsls r0, r0, #1
mov r8, r0
ldr r0, _08011F1C @ =0x00027100
cmp r2, r0
ble _08011F2C
mov r0, sb
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, r8
muls r1, r0, r1
adds r0, r1, #0
ldr r7, _08011F20 @ =0x00004E20
adds r1, r7, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08011F24 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, sb
bl sub_C24
mov r2, r8
rsbs r1, r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r7, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08011F28 @ =0x0000FFFF
ands r5, r1
b _08011F32
.align 2, 0
_08011F1C: .4byte 0x00027100
_08011F20: .4byte 0x00004E20
_08011F24: .4byte 0xFFFF0000
_08011F28: .4byte 0x0000FFFF
_08011F2C:
ldrh r0, [r6, #0x32]
lsls r0, r0, #0x10
ldrh r5, [r6, #0x30]
_08011F32:
orrs r5, r0
lsls r1, r5, #0x10
asrs r1, r1, #0x10
ldr r0, [r6, #0x34]
adds r0, r0, r1
str r0, [r6, #0x34]
asrs r1, r5, #0x10
ldr r0, [r6, #0x38]
adds r0, r0, r1
str r0, [r6, #0x38]
b _08011F4C
_08011F48:
bl sub_2AADC
_08011F4C:
ldr r0, [r6, #0x28]
str r0, [r6, #0x2c]
ldr r1, [r6, #0x34]
adds r0, r1, #0
adds r0, #0x40
cmp r0, #0
bge _08011F5C
adds r0, #0x7f
_08011F5C:
asrs r0, r0, #7
strh r0, [r6, #0x28]
ldr r1, [r6, #0x38]
adds r0, r1, #0
adds r0, #0x40
cmp r0, #0
bge _08011F6C
adds r0, #0x7f
_08011F6C:
asrs r0, r0, #7
strh r0, [r6, #0x2a]
ldrh r0, [r6, #6]
strh r0, [r6, #8]
ldrh r1, [r6, #0xa]
adds r0, r0, r1
strh r0, [r6, #0xa]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_11F88
sub_11F88: @ 0x08011F88
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r2, _08011FD0 @ =gUnknown_020314E0
ldr r3, [r2]
ldr r1, _08011FD4 @ =0x0000132C
adds r0, r3, r1
ldr r6, [r0]
ldr r0, [r6, #0x34]
ldr r1, [r6, #0x38]
str r0, [r6, #0x3c]
str r1, [r6, #0x40]
ldr r1, _08011FD8 @ =0x000005A4
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, #2
bne _08011FAE
b _080124E4
_08011FAE:
ldrb r0, [r3, #0x1f]
cmp r0, #0
bne _08011FFE
ldr r1, _08011FDC @ =0x00000383
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08011FFE
ldrh r4, [r6, #0x32]
movs r1, #0x32
ldrsh r0, [r6, r1]
cmp r0, #0x96
ble _08011FE4
ldr r0, _08011FE0 @ =gUnknown_08137910
b _08011FF2
.align 2, 0
_08011FD0: .4byte gUnknown_020314E0
_08011FD4: .4byte 0x0000132C
_08011FD8: .4byte 0x000005A4
_08011FDC: .4byte 0x00000383
_08011FE0: .4byte gUnknown_08137910
_08011FE4:
cmp r0, #0x4b
ble _08011FF0
ldr r0, _08011FEC @ =gUnknown_08137908
b _08011FF2
.align 2, 0
_08011FEC: .4byte gUnknown_08137908
_08011FF0:
ldr r0, _0801208C @ =gUnknown_08137900
_08011FF2:
ldrb r1, [r3, #0x1e]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
adds r0, r4, r0
strh r0, [r6, #0x32]
_08011FFE:
ldr r0, [r2]
adds r0, #0x31
ldrb r0, [r0]
cmp r0, #0
bne _0801200A
b _08012270
_0801200A:
movs r2, #0x30
ldrsh r0, [r6, r2]
ldrh r1, [r6, #0x32]
rsbs r1, r1, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
mov sb, r8
movs r1, #0x30
ldrsh r0, [r6, r1]
adds r1, r0, #0
muls r1, r0, r1
movs r2, #0x32
ldrsh r0, [r6, r2]
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
adds r1, r1, r0
ldr r0, _08012090 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #3
bhi _080120FC
movs r2, #0x12
ldrsh r0, [r6, r2]
cmp r0, #0x95
bgt _080120A4
movs r7, #0x88
lsls r7, r7, #1
ldr r0, _08012094 @ =0x00012100
cmp r1, r0
bgt _08012052
b _080124C8
_08012052:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _08012098 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _0801209C @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _080120A0 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_0801208C: .4byte gUnknown_08137900
_08012090: .4byte gMain
_08012094: .4byte 0x00012100
_08012098: .4byte 0x00004E20
_0801209C: .4byte 0xFFFF0000
_080120A0: .4byte 0x0000FFFF
_080120A4:
movs r7, #0xc8
lsls r7, r7, #1
ldr r0, _080120EC @ =0x00027100
cmp r1, r0
bgt _080120B0
b _080124C8
_080120B0:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _080120F0 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080120F4 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _080120F8 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_080120EC: .4byte 0x00027100
_080120F0: .4byte 0x00004E20
_080120F4: .4byte 0xFFFF0000
_080120F8: .4byte 0x0000FFFF
_080120FC:
cmp r0, #7
bne _080121B8
movs r2, #0x12
ldrsh r0, [r6, r2]
cmp r0, #0xd9
bgt _08012160
movs r7, #0x88
lsls r7, r7, #1
ldr r0, _08012150 @ =0x00012100
cmp r1, r0
bgt _08012114
b _080124C8
_08012114:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _08012154 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08012158 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _0801215C @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_08012150: .4byte 0x00012100
_08012154: .4byte 0x00004E20
_08012158: .4byte 0xFFFF0000
_0801215C: .4byte 0x0000FFFF
_08012160:
movs r7, #0xc8
lsls r7, r7, #1
ldr r0, _080121A8 @ =0x00027100
cmp r1, r0
bgt _0801216C
b _080124C8
_0801216C:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _080121AC @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080121B0 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _080121B4 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_080121A8: .4byte 0x00027100
_080121AC: .4byte 0x00004E20
_080121B0: .4byte 0xFFFF0000
_080121B4: .4byte 0x0000FFFF
_080121B8:
movs r2, #0x12
ldrsh r0, [r6, r2]
cmp r0, #0xd9
bgt _08012218
movs r7, #0x88
lsls r7, r7, #1
ldr r0, _08012208 @ =0x00012100
cmp r1, r0
bgt _080121CC
b _080124C8
_080121CC:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _0801220C @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08012210 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08012214 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_08012208: .4byte 0x00012100
_0801220C: .4byte 0x00004E20
_08012210: .4byte 0xFFFF0000
_08012214: .4byte 0x0000FFFF
_08012218:
movs r7, #0xc8
lsls r7, r7, #1
ldr r0, _08012260 @ =0x00027100
cmp r1, r0
bgt _08012224
b _080124C8
_08012224:
mov r0, sb
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _08012264 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08012268 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, sb
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _0801226C @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_08012260: .4byte 0x00027100
_08012264: .4byte 0x00004E20
_08012268: .4byte 0xFFFF0000
_0801226C: .4byte 0x0000FFFF
_08012270:
movs r1, #0x30
ldrsh r0, [r6, r1]
ldrh r1, [r6, #0x32]
rsbs r1, r1, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
movs r2, #0x30
ldrsh r0, [r6, r2]
adds r1, r0, #0
muls r1, r0, r1
movs r2, #0x32
ldrsh r0, [r6, r2]
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
adds r1, r1, r0
ldr r0, _080122F0 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #3
bhi _0801235C
movs r2, #0x12
ldrsh r0, [r6, r2]
cmp r0, #0x95
bgt _08012304
movs r7, #0x98
lsls r7, r7, #1
ldr r0, _080122F4 @ =0x00016900
cmp r1, r0
bgt _080122B6
b _080124C8
_080122B6:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _080122F8 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080122FC @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08012300 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_080122F0: .4byte gMain
_080122F4: .4byte 0x00016900
_080122F8: .4byte 0x00004E20
_080122FC: .4byte 0xFFFF0000
_08012300: .4byte 0x0000FFFF
_08012304:
movs r7, #0xc8
lsls r7, r7, #1
ldr r0, _0801234C @ =0x00027100
cmp r1, r0
bgt _08012310
b _080124C8
_08012310:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _08012350 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08012354 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08012358 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_0801234C: .4byte 0x00027100
_08012350: .4byte 0x00004E20
_08012354: .4byte 0xFFFF0000
_08012358: .4byte 0x0000FFFF
_0801235C:
cmp r0, #7
bne _08012418
movs r2, #0x12
ldrsh r0, [r6, r2]
cmp r0, #0xd9
bgt _080123C0
movs r7, #0x88
lsls r7, r7, #1
ldr r0, _080123B0 @ =0x00012100
cmp r1, r0
bgt _08012374
b _080124C8
_08012374:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _080123B4 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080123B8 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _080123BC @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_080123B0: .4byte 0x00012100
_080123B4: .4byte 0x00004E20
_080123B8: .4byte 0xFFFF0000
_080123BC: .4byte 0x0000FFFF
_080123C0:
movs r7, #0xc8
lsls r7, r7, #1
ldr r0, _08012408 @ =0x00027100
cmp r1, r0
bgt _080123CC
b _080124C8
_080123CC:
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _0801240C @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08012410 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08012414 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_08012408: .4byte 0x00027100
_0801240C: .4byte 0x00004E20
_08012410: .4byte 0xFFFF0000
_08012414: .4byte 0x0000FFFF
_08012418:
movs r2, #0x12
ldrsh r0, [r6, r2]
cmp r0, #0xd9
bgt _08012474
movs r7, #0x98
lsls r7, r7, #1
ldr r0, _08012464 @ =0x00016900
cmp r1, r0
ble _080124C8
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _08012468 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _0801246C @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08012470 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_08012464: .4byte 0x00016900
_08012468: .4byte 0x00004E20
_0801246C: .4byte 0xFFFF0000
_08012470: .4byte 0x0000FFFF
_08012474:
movs r7, #0xc8
lsls r7, r7, #1
ldr r0, _080124B8 @ =0x00027100
cmp r1, r0
ble _080124C8
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r4, _080124BC @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080124C0 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
mov r0, r8
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _080124C4 @ =0x0000FFFF
ands r5, r1
b _080124CE
.align 2, 0
_080124B8: .4byte 0x00027100
_080124BC: .4byte 0x00004E20
_080124C0: .4byte 0xFFFF0000
_080124C4: .4byte 0x0000FFFF
_080124C8:
ldrh r0, [r6, #0x32]
lsls r0, r0, #0x10
ldrh r5, [r6, #0x30]
_080124CE:
orrs r5, r0
lsls r1, r5, #0x10
asrs r1, r1, #0x10
ldr r0, [r6, #0x34]
adds r0, r0, r1
str r0, [r6, #0x34]
asrs r1, r5, #0x10
ldr r0, [r6, #0x38]
adds r0, r0, r1
str r0, [r6, #0x38]
b _080124E8
_080124E4:
bl sub_2AADC
_080124E8:
ldr r0, [r6, #0x28]
str r0, [r6, #0x2c]
ldr r1, [r6, #0x34]
adds r0, r1, #0
adds r0, #0x40
cmp r0, #0
bge _080124F8
adds r0, #0x7f
_080124F8:
asrs r0, r0, #7
strh r0, [r6, #0x28]
ldr r1, [r6, #0x38]
adds r0, r1, #0
adds r0, #0x40
cmp r0, #0
bge _08012508
adds r0, #0x7f
_08012508:
asrs r0, r0, #7
strh r0, [r6, #0x2a]
ldrh r0, [r6, #6]
strh r0, [r6, #8]
ldrh r1, [r6, #0xa]
adds r0, r0, r1
strh r0, [r6, #0xa]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_12524
sub_12524: @ 0x08012524
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r2, _080125F0 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _080125F4 @ =0x0000132C
adds r0, r0, r1
ldr r7, [r0]
ldrh r0, [r7, #0xa]
lsrs r0, r0, #0xc
mov r8, r0
movs r3, #0x12
ldrsh r1, [r7, r3]
movs r0, #0xaa
lsls r0, r0, #1
cmp r1, r0
bne _0801255A
movs r4, #0x10
ldrsh r0, [r7, r4]
cmp r0, #0x5a
beq _08012556
cmp r0, #0x95
bne _0801255A
_08012556:
ldrh r0, [r7, #0xc]
strh r0, [r7, #0xa]
_0801255A:
ldrh r0, [r7, #0xa]
strh r0, [r7, #0xc]
ldr r6, _080125F0 @ =gUnknown_020314E0
ldr r3, [r6]
ldr r1, _080125F8 @ =0x000005F7
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, #0
bne _080125CE
movs r4, #0xbf
lsls r4, r4, #3
adds r2, r3, r4
ldrh r0, [r2]
cmp r0, #0
beq _080125CE
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bne _080125CE
ldr r6, _080125FC @ =0x000005F6
adds r2, r3, r6
ldrb r3, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
ble _080125AC
subs r0, r3, #1
strb r0, [r2]
ldr r0, _080125F0 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _080125AC
adds r1, r1, r4
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r1]
_080125AC:
ldr r2, _08012600 @ =0x040000D4
ldr r1, _080125F0 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _080125FC @ =0x000005F6
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _08012604 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _08012608 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0801260C @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_080125CE:
movs r4, #0x12
ldrsh r0, [r7, r4]
cmp r0, #0xf3
ble _08012614
ldr r6, _080125F0 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r1, _08012610 @ =0x000005B2
adds r0, r0, r1
movs r2, #0
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
movs r3, #0xbb
lsls r3, r3, #1
adds r0, r0, r3
strb r2, [r0]
b _08012620
.align 2, 0
_080125F0: .4byte gUnknown_020314E0
_080125F4: .4byte 0x0000132C
_080125F8: .4byte 0x000005F7
_080125FC: .4byte 0x000005F6
_08012600: .4byte 0x040000D4
_08012604: .4byte gUnknown_08137E14
_08012608: .4byte 0x05000220
_0801260C: .4byte 0x80000010
_08012610: .4byte 0x000005B2
_08012614:
ldr r4, _080126C8 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r6, _080126CC @ =0x000005B2
adds r0, r0, r6
movs r1, #0
strb r1, [r0]
_08012620:
movs r1, #0x28
ldrsh r0, [r7, r1]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r7, #0x10]
movs r2, #0x2a
ldrsh r0, [r7, r2]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r7, #0x12]
ldr r1, _080126D0 @ =gMain
ldr r0, [r1, #0x44]
ldr r6, [r0]
ldrh r0, [r6]
cmp r0, #0
bne _08012646
b _08012792
_08012646:
movs r3, #0xe
ldrsh r1, [r7, r3]
adds r0, r1, #0
movs r2, #0
bl SetMatrixScale
ldr r0, _080126C8 @ =gUnknown_020314E0
ldr r3, [r0]
adds r0, r3, #0
adds r0, #0x4c
ldrh r0, [r0]
adds r0, #7
ldrh r2, [r7, #0x10]
subs r2, r2, r0
ldr r4, _080126D4 @ =0x000002AA
adds r0, r3, r4
ldrh r0, [r0]
subs r2, r2, r0
strh r2, [r6, #2]
adds r0, r3, #0
adds r0, #0x4e
ldrh r1, [r0]
adds r1, #7
ldrh r0, [r7, #0x12]
subs r0, r0, r1
ldr r4, _080126D8 @ =0x000005FC
adds r1, r3, r4
ldrh r1, [r1]
subs r0, r0, r1
adds r1, r3, #0
adds r1, #0xe6
ldrh r1, [r1]
movs r4, #0xb3
lsls r4, r4, #1
adds r3, r3, r4
subs r0, r0, r1
ldrh r3, [r3]
adds r0, r0, r3
strh r0, [r6, #4]
strh r2, [r7, #0x24]
ldrh r0, [r6, #4]
strh r0, [r7, #0x26]
movs r0, #8
adds r0, r0, r6
mov ip, r0
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r1, _080126DC @ =gOamBuffer
adds r5, r0, r1
movs r0, #1
ldrsb r0, [r7, r0]
cmp r0, #3
bne _080126E6
movs r1, #0x12
ldrsh r0, [r7, r1]
cmp r0, #0xf8
ble _080126E0
ldrb r0, [r5, #5]
movs r1, #0xd
rsbs r1, r1, #0
ands r1, r0
movs r0, #8
orrs r1, r0
strb r1, [r5, #5]
b _080126FA
.align 2, 0
_080126C8: .4byte gUnknown_020314E0
_080126CC: .4byte 0x000005B2
_080126D0: .4byte gMain
_080126D4: .4byte 0x000002AA
_080126D8: .4byte 0x000005FC
_080126DC: .4byte gOamBuffer
_080126E0:
ldrb r0, [r5, #5]
movs r1, #0xc
b _080126F6
_080126E6:
movs r0, #3
ldrb r1, [r7, #1]
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r5, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
_080126F6:
orrs r0, r1
strb r0, [r5, #5]
_080126FA:
ldr r3, _08012768 @ =0x040000D4
mov r2, r8
lsls r1, r2, #0x10
asrs r1, r1, #0x10
ldr r4, _0801276C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _08012770 @ =0x000005F6
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
lsls r0, r2, #4
adds r0, r0, r2
adds r1, r1, r0
lsls r1, r1, #7
ldr r0, _08012774 @ =gUnknown_083BB16C
adds r1, r1, r0
str r1, [r3]
ldr r0, _08012778 @ =0x06010400
str r0, [r3, #4]
ldr r0, _0801277C @ =0x80000040
str r0, [r3, #8]
ldr r0, [r3, #8]
movs r3, #4
ldrsh r0, [r6, r3]
cmp r0, #0xc8
ble _08012732
movs r0, #0xc8
strh r0, [r6, #4]
_08012732:
movs r4, #4
ldrsh r0, [r6, r4]
movs r1, #0x14
rsbs r1, r1, #0
cmp r0, r1
bge _08012740
strh r1, [r6, #4]
_08012740:
mov r0, ip
movs r2, #2
ldrsh r1, [r0, r2]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r4, _08012780 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldrh r2, [r5, #2]
ldr r0, _08012784 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r5, #2]
movs r0, #0
ldrsb r0, [r7, r0]
cmp r0, #0
beq _08012788
movs r0, #0xc8
b _08012790
.align 2, 0
_08012768: .4byte 0x040000D4
_0801276C: .4byte gUnknown_020314E0
_08012770: .4byte 0x000005F6
_08012774: .4byte gUnknown_083BB16C
_08012778: .4byte 0x06010400
_0801277C: .4byte 0x80000040
_08012780: .4byte 0x000001FF
_08012784: .4byte 0xFFFFFE00
_08012788:
ldrb r0, [r6, #4]
mov r6, ip
ldrb r6, [r6, #4]
adds r0, r0, r6
_08012790:
strb r0, [r5]
_08012792:
ldr r1, _08012824 @ =gMain
ldr r0, [r1, #0x44]
adds r0, #0xc4
ldr r6, [r0]
ldrh r0, [r6]
cmp r0, #0
bne _080127A2
b _080128EA
_080127A2:
movs r2, #0xe
ldrsh r1, [r7, r2]
adds r0, r1, #0
movs r2, #0
bl SetMatrixScale
ldr r0, _08012828 @ =gUnknown_020314E0
ldr r3, [r0]
adds r0, r3, #0
adds r0, #0x4c
ldrh r0, [r0]
adds r0, #7
ldrh r2, [r7, #0x10]
subs r2, r2, r0
ldr r4, _0801282C @ =0x000002AA
adds r0, r3, r4
ldrh r0, [r0]
subs r2, r2, r0
strh r2, [r6, #2]
adds r0, r3, #0
adds r0, #0x4e
ldrh r1, [r0]
adds r1, #7
ldrh r0, [r7, #0x12]
subs r0, r0, r1
ldr r4, _08012830 @ =0x000005FC
adds r1, r3, r4
ldrh r1, [r1]
subs r0, r0, r1
adds r1, r3, #0
adds r1, #0xe6
ldrh r1, [r1]
movs r4, #0xb3
lsls r4, r4, #1
adds r3, r3, r4
subs r0, r0, r1
ldrh r3, [r3]
adds r0, r0, r3
strh r0, [r6, #4]
strh r2, [r7, #0x24]
ldrh r0, [r6, #4]
strh r0, [r7, #0x26]
movs r0, #8
adds r0, r0, r6
mov ip, r0
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r1, _08012834 @ =gOamBuffer
adds r5, r0, r1
movs r0, #1
ldrsb r0, [r7, r0]
cmp r0, #3
bne _0801283E
movs r1, #0x12
ldrsh r0, [r7, r1]
cmp r0, #0xf8
ble _08012838
ldrb r0, [r5, #5]
movs r1, #0xd
rsbs r1, r1, #0
ands r1, r0
movs r0, #8
orrs r1, r0
strb r1, [r5, #5]
b _08012852
.align 2, 0
_08012824: .4byte gMain
_08012828: .4byte gUnknown_020314E0
_0801282C: .4byte 0x000002AA
_08012830: .4byte 0x000005FC
_08012834: .4byte gOamBuffer
_08012838:
ldrb r0, [r5, #5]
movs r1, #0xc
b _0801284E
_0801283E:
movs r0, #3
ldrb r1, [r7, #1]
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r5, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
_0801284E:
orrs r0, r1
strb r0, [r5, #5]
_08012852:
ldr r3, _080128C0 @ =0x040000D4
mov r2, r8
lsls r1, r2, #0x10
asrs r1, r1, #0x10
ldr r4, _080128C4 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _080128C8 @ =0x000005F6
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
lsls r0, r2, #4
adds r0, r0, r2
adds r1, r1, r0
lsls r1, r1, #7
ldr r0, _080128CC @ =gUnknown_083BB16C
adds r1, r1, r0
str r1, [r3]
ldr r0, _080128D0 @ =0x06010400
str r0, [r3, #4]
ldr r0, _080128D4 @ =0x80000040
str r0, [r3, #8]
ldr r0, [r3, #8]
movs r3, #4
ldrsh r0, [r6, r3]
cmp r0, #0xc8
ble _0801288A
movs r0, #0xc8
strh r0, [r6, #4]
_0801288A:
movs r4, #4
ldrsh r0, [r6, r4]
movs r1, #0x14
rsbs r1, r1, #0
cmp r0, r1
bge _08012898
strh r1, [r6, #4]
_08012898:
mov r0, ip
movs r2, #2
ldrsh r1, [r0, r2]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r4, _080128D8 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldrh r2, [r5, #2]
ldr r0, _080128DC @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r5, #2]
movs r0, #0
ldrsb r0, [r7, r0]
cmp r0, #0
beq _080128E0
movs r0, #0xc8
b _080128E8
.align 2, 0
_080128C0: .4byte 0x040000D4
_080128C4: .4byte gUnknown_020314E0
_080128C8: .4byte 0x000005F6
_080128CC: .4byte gUnknown_083BB16C
_080128D0: .4byte 0x06010400
_080128D4: .4byte 0x80000040
_080128D8: .4byte 0x000001FF
_080128DC: .4byte 0xFFFFFE00
_080128E0:
ldrb r0, [r6, #4]
mov r6, ip
ldrb r6, [r6, #4]
adds r0, r0, r6
_080128E8:
strb r0, [r5]
_080128EA:
movs r3, #4
ldr r5, _080129D0 @ =gUnknown_020314E0
_080128EE:
ldr r2, [r5]
lsls r1, r3, #0x10
asrs r1, r1, #0x10
lsls r4, r1, #2
adds r4, r2, r4
subs r1, #1
lsls r0, r1, #2
adds r2, r2, r0
adds r0, r2, #0
adds r0, #0xd0
ldrh r3, [r0]
adds r0, r4, #0
adds r0, #0xd0
strh r3, [r0]
adds r2, #0xd2
ldrh r0, [r2]
adds r4, #0xd2
strh r0, [r4]
lsls r1, r1, #0x10
lsrs r3, r1, #0x10
cmp r1, #0
bgt _080128EE
ldr r0, _080129D0 @ =gUnknown_020314E0
ldr r2, [r0]
ldrh r0, [r7, #0x10]
subs r0, #7
adds r1, r2, #0
adds r1, #0xd0
strh r0, [r1]
ldrh r0, [r7, #0x12]
subs r0, #7
adds r1, #2
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x71
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08012940
b _08012A44
_08012940:
movs r3, #0
ldr r1, _080129D4 @ =gMain
mov sb, r1
movs r2, #0xd
rsbs r2, r2, #0
mov sl, r2
_0801294C:
lsls r2, r3, #0x10
asrs r4, r2, #0x10
mov r3, sb
ldr r1, [r3, #0x44]
lsls r0, r4, #2
adds r0, r0, r1
ldr r6, [r0, #4]
ldrh r0, [r6]
mov r8, r2
cmp r0, #0
beq _08012A0C
movs r0, #8
adds r0, r0, r6
mov ip, r0
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r1, _080129D8 @ =gOamBuffer
adds r5, r0, r1
movs r0, #3
ldrb r1, [r7, #1]
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r5, #5]
mov r0, sl
ands r0, r2
orrs r0, r1
strb r0, [r5, #5]
mov r1, ip
movs r3, #2
ldrsh r2, [r1, r3]
ldr r6, _080129D0 @ =gUnknown_020314E0
ldr r3, [r6]
adds r0, r4, #1
lsls r0, r0, #3
adds r0, r3, r0
adds r0, #0xd0
movs r6, #0
ldrsh r1, [r0, r6]
adds r0, r3, #0
adds r0, #0x4c
movs r6, #0
ldrsh r0, [r0, r6]
subs r1, r1, r0
adds r2, r2, r1
ldr r1, _080129DC @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r1, [r5, #2]
ldr r0, _080129E0 @ =0xFFFFFE00
ands r0, r1
orrs r0, r2
strh r0, [r5, #2]
cmp r4, #0
bne _080129E4
adds r0, r3, #0
adds r0, #0xda
ldrb r0, [r0]
adds r1, r3, #0
adds r1, #0x4e
ldrb r1, [r1]
subs r0, r0, r1
mov r2, ip
ldrb r2, [r2, #4]
adds r0, r0, r2
b _08012A0A
.align 2, 0
_080129D0: .4byte gUnknown_020314E0
_080129D4: .4byte gMain
_080129D8: .4byte gOamBuffer
_080129DC: .4byte 0x000001FF
_080129E0: .4byte 0xFFFFFE00
_080129E4:
cmp r4, #1
bne _08012A0C
mov r6, sb
ldr r0, [r6, #0x4c]
ands r0, r4
cmp r0, #0
bne _08012A08
adds r0, r3, #0
adds r0, #0xe2
ldrb r0, [r0]
adds r1, r3, #0
adds r1, #0x4e
ldrb r1, [r1]
subs r0, r0, r1
mov r1, ip
ldrb r1, [r1, #4]
adds r0, r0, r1
b _08012A0A
_08012A08:
movs r0, #0xc8
_08012A0A:
strb r0, [r5]
_08012A0C:
movs r0, #0x80
lsls r0, r0, #9
add r0, r8
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _0801294C
ldr r2, _08012A40 @ =gMain
ldr r0, [r2, #0x44]
ldr r0, [r0, #4]
movs r2, #0
movs r1, #1
strh r1, [r0]
ldr r3, _08012A40 @ =gMain
ldr r0, [r3, #0x44]
ldr r0, [r0, #8]
strh r1, [r0]
ldr r0, [r3, #0x44]
adds r0, #0xc4
ldr r0, [r0]
strh r1, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0]
strh r2, [r0]
b _08012AE4
.align 2, 0
_08012A40: .4byte gMain
_08012A44:
movs r3, #0
ldr r4, _08012B14 @ =gMain
mov sl, r4
movs r6, #3
mov sb, r6
movs r0, #0xd
rsbs r0, r0, #0
mov ip, r0
ldr r1, _08012B18 @ =0xFFFFFE00
mov r8, r1
_08012A58:
lsls r0, r3, #0x10
asrs r4, r0, #0x10
mov r2, sl
ldr r1, [r2, #0x44]
lsls r0, r4, #2
adds r0, r0, r1
ldr r6, [r0, #4]
ldrh r0, [r6]
cmp r0, #0
beq _08012AB8
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r1, _08012B1C @ =gOamBuffer
adds r5, r0, r1
ldrb r1, [r7, #1]
mov r3, sb
ands r1, r3
lsls r1, r1, #2
ldrb r2, [r5, #5]
mov r0, ip
ands r0, r2
orrs r0, r1
strb r0, [r5, #5]
movs r0, #0xa
ldrsh r3, [r6, r0]
ldr r1, _08012B20 @ =gUnknown_020314E0
ldr r2, [r1]
adds r0, r4, #1
lsls r0, r0, #3
adds r0, r2, r0
adds r0, #0xd0
movs r6, #0
ldrsh r1, [r0, r6]
adds r2, #0x4c
movs r6, #0
ldrsh r0, [r2, r6]
subs r1, r1, r0
adds r3, r3, r1
ldr r1, _08012B24 @ =0x000001FF
adds r0, r1, #0
ands r3, r0
ldrh r1, [r5, #2]
mov r0, r8
ands r0, r1
orrs r0, r3
strh r0, [r5, #2]
movs r0, #0xc8
strb r0, [r5]
_08012AB8:
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _08012A58
ldr r2, _08012B14 @ =gMain
ldr r0, [r2, #0x44]
ldr r0, [r0, #4]
movs r1, #0
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #8]
strh r1, [r0]
ldr r0, [r2, #0x44]
adds r0, #0xc4
ldr r0, [r0]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
_08012AE4:
ldr r3, _08012B14 @ =gMain
ldr r1, [r3, #0x44]
adds r0, r1, #0
adds r0, #0xac
ldr r6, [r0]
ldrh r0, [r6]
cmp r0, #0
beq _08012BC2
ldr r4, _08012B20 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _08012B28 @ =0x0000071C
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #0x3a
bhi _08012B2C
ldr r0, [r1]
ldrh r0, [r0, #2]
subs r0, #8
strh r0, [r6, #2]
ldr r0, [r3, #0x44]
ldr r0, [r0]
ldrh r0, [r0, #4]
subs r0, #8
b _08012B32
.align 2, 0
_08012B14: .4byte gMain
_08012B18: .4byte 0xFFFFFE00
_08012B1C: .4byte gOamBuffer
_08012B20: .4byte gUnknown_020314E0
_08012B24: .4byte 0x000001FF
_08012B28: .4byte 0x0000071C
_08012B2C:
movs r0, #0
strh r0, [r6, #2]
movs r0, #0xb4
_08012B32:
strh r0, [r6, #4]
ldr r3, _08012BD0 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0x6e
ldr r2, _08012BD4 @ =0x040000D4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #9
ldr r1, _08012BD8 @ =gUnknown_083BD36C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08012BDC @ =0x06011EE0
str r0, [r2, #4]
ldr r0, _08012BE0 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r4, #8
adds r4, r4, r6
mov ip, r4
ldr r4, _08012BE4 @ =gOamBuffer
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
mov r0, ip
movs r3, #2
ldrsh r1, [r0, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _08012BE8 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08012BEC @ =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]
mov r2, ip
ldrb r2, [r2, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r2, [r6, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r0, #3
ldrb r1, [r7, #1]
ands r1, r0
lsls r1, r1, #2
ldrb r3, [r2, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r2, #5]
ldr r3, _08012BD0 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _08012BF0 @ =0x0000071C
adds r0, r0, r4
ldrb r0, [r0]
cmp r0, #0xd
bhi _08012BC2
ldr r6, _08012BF4 @ =gMain
ldr r0, [r6, #0x44]
adds r0, #0xac
ldr r1, [r0]
movs r0, #0
strh r0, [r1]
_08012BC2:
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
_08012BD0: .4byte gUnknown_020314E0
_08012BD4: .4byte 0x040000D4
_08012BD8: .4byte gUnknown_083BD36C
_08012BDC: .4byte 0x06011EE0
_08012BE0: .4byte 0x80000100
_08012BE4: .4byte gOamBuffer
_08012BE8: .4byte 0x000001FF
_08012BEC: .4byte 0xFFFFFE00
_08012BF0: .4byte 0x0000071C
_08012BF4: .4byte gMain
thumb_func_start sub_12BF8
sub_12BF8: @ 0x08012BF8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r3, _08012C30 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r1, _08012C34 @ =0x00001330
adds r2, r0, r1
ldr r4, _08012C38 @ =0x00001334
adds r1, r0, r4
str r1, [r2]
ldr r6, _08012C3C @ =0x0000132C
adds r0, r0, r6
str r1, [r0]
mov r8, r1
ldr r1, _08012C40 @ =gMain
ldrb r0, [r1, #4]
subs r0, #3
mov sl, r3
cmp r0, #4
bhi _08012CA0
lsls r0, r0, #2
ldr r1, _08012C44 @ =_08012C48
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08012C30: .4byte gUnknown_020314E0
_08012C34: .4byte 0x00001330
_08012C38: .4byte 0x00001334
_08012C3C: .4byte 0x0000132C
_08012C40: .4byte gMain
_08012C44: .4byte _08012C48
_08012C48: @ jump table
.4byte _08012C5C @ case 0
.4byte _08012C78 @ case 1
.4byte _08012C78 @ case 2
.4byte _08012C88 @ case 3
.4byte _08012C78 @ case 4
_08012C5C:
movs r0, #2
mov r1, r8
strb r0, [r1, #1]
ldr r0, _08012C70 @ =gUnknown_02031590
ldrb r1, [r0, #0x16]
movs r0, #0xb8
muls r1, r0, r1
ldr r0, _08012C74 @ =gUnknown_0200B3B8
adds r6, r1, r0
b _08012CAC
.align 2, 0
_08012C70: .4byte gUnknown_02031590
_08012C74: .4byte gUnknown_0200B3B8
_08012C78:
movs r0, #1
mov r2, r8
strb r0, [r2, #1]
ldr r3, _08012C84 @ =gMain
ldr r0, [r3, #0x44]
b _08012CAA
.align 2, 0
_08012C84: .4byte gMain
_08012C88:
mov r4, r8
movs r0, #1
ldrsb r0, [r4, r0]
cmp r0, #2
ble _08012C96
movs r0, #2
strb r0, [r4, #1]
_08012C96:
ldr r6, _08012C9C @ =gMain
ldr r0, [r6, #0x44]
b _08012CAA
.align 2, 0
_08012C9C: .4byte gMain
_08012CA0:
movs r0, #3
mov r1, r8
strb r0, [r1, #1]
ldr r2, _08012DC0 @ =gMain
ldr r0, [r2, #0x44]
_08012CAA:
ldr r6, [r0]
_08012CAC:
mov r3, sl
ldr r1, [r3]
ldr r4, _08012DC4 @ =0x0000132C
adds r0, r1, r4
ldr r0, [r0]
ldrh r0, [r0, #0xa]
lsrs r5, r0, #0xc
ldr r2, _08012DC8 @ =0x040000D4
ldr r0, _08012DCC @ =0x000005F6
adds r1, r1, r0
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
lsls r0, r1, #4
adds r0, r0, r1
adds r0, r5, r0
lsls r0, r0, #7
ldr r1, _08012DD0 @ =gUnknown_083BB16C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08012DD4 @ =0x06010400
str r0, [r2, #4]
ldr r0, _08012DD8 @ =0x80000040
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r2, r8
movs r3, #0x28
ldrsh r1, [r2, r3]
lsrs r0, r1, #0x1f
adds r1, r1, r0
asrs r1, r1, #1
strh r1, [r2, #0x10]
movs r4, #0x2a
ldrsh r0, [r2, r4]
lsrs r2, r0, #0x1f
adds r0, r0, r2
asrs r0, r0, #1
mov r2, r8
strh r0, [r2, #0x12]
mov r3, sl
ldr r2, [r3]
adds r0, r2, #0
adds r0, #0x4c
ldrh r0, [r0]
adds r0, #7
subs r1, r1, r0
ldr r4, _08012DDC @ =0x000002AA
adds r0, r2, r4
ldrh r0, [r0]
subs r1, r1, r0
strh r1, [r6, #2]
adds r0, r2, #0
adds r0, #0x4e
ldrh r0, [r0]
adds r0, #7
mov r1, r8
ldrh r4, [r1, #0x12]
subs r4, r4, r0
ldr r3, _08012DE0 @ =0x000005FC
adds r0, r2, r3
ldrh r0, [r0]
subs r4, r4, r0
adds r0, r2, #0
adds r0, #0xe6
ldrh r0, [r0]
subs r4, r4, r0
movs r1, #0xab
lsls r1, r1, #2
adds r0, r2, r1
ldrh r0, [r0]
subs r4, r4, r0
movs r3, #0xe3
lsls r3, r3, #2
adds r0, r2, r3
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
subs r4, r4, r0
strh r4, [r6, #4]
lsls r4, r4, #0x10
asrs r4, r4, #0x10
movs r0, #0x3c
rsbs r0, r0, #0
cmp r4, r0
bge _08012D5E
ldr r0, _08012DE4 @ =0x0000FFC4
strh r0, [r6, #4]
_08012D5E:
movs r2, #4
ldrsh r0, [r6, r2]
cmp r0, #0xb4
ble _08012D6A
movs r0, #0xb4
strh r0, [r6, #4]
_08012D6A:
ldrh r0, [r6, #2]
mov r3, r8
strh r0, [r3, #0x24]
ldrh r0, [r6, #4]
strh r0, [r3, #0x26]
adds r7, r6, #0
adds r7, #8
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r3, _08012DE8 @ =gOamBuffer
adds r4, r0, r3
movs r0, #3
mov r2, r8
ldrb r1, [r2, #1]
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r4, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #5]
movs r0, #2
ldrsh r1, [r7, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08012DEC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r4, #2]
ldr r0, _08012DF0 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r4, #2]
mov r1, r8
movs r0, #0
ldrsb r0, [r1, r0]
mov sb, r3
cmp r0, #0
beq _08012DF4
movs r0, #0xc8
b _08012DFA
.align 2, 0
_08012DC0: .4byte gMain
_08012DC4: .4byte 0x0000132C
_08012DC8: .4byte 0x040000D4
_08012DCC: .4byte 0x000005F6
_08012DD0: .4byte gUnknown_083BB16C
_08012DD4: .4byte 0x06010400
_08012DD8: .4byte 0x80000040
_08012DDC: .4byte 0x000002AA
_08012DE0: .4byte 0x000005FC
_08012DE4: .4byte 0x0000FFC4
_08012DE8: .4byte gOamBuffer
_08012DEC: .4byte 0x000001FF
_08012DF0: .4byte 0xFFFFFE00
_08012DF4:
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
_08012DFA:
strb r0, [r4]
mov r2, sl
ldr r3, [r2]
movs r4, #0xe2
lsls r4, r4, #2
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08012E12
b _0801309C
_08012E12:
ldr r6, _08012F84 @ =gMain
ldr r0, [r6, #0x44]
ldr r6, [r0, #4]
ldrh r0, [r6]
cmp r0, #0
beq _08012E5E
mov r1, r8
ldrh r0, [r1, #0x24]
subs r0, #8
strh r0, [r6, #2]
ldrh r0, [r1, #0x26]
subs r0, #8
strh r0, [r6, #4]
adds r7, r6, #0
adds r7, #8
ldrh r2, [r6, #8]
lsls r2, r2, #3
add r2, sb
movs r3, #2
ldrsh r1, [r7, r3]
movs r4, #2
ldrsh r0, [r6, r4]
adds r1, r1, r0
ldr r3, _08012F88 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08012F8C @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
_08012E5E:
mov r4, sl
ldr r2, [r4]
movs r1, #0xe2
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _08012E78
cmp r0, #3
beq _08012E78
b _08012FBC
_08012E78:
ldr r4, _08012F90 @ =0x00000392
adds r0, r2, r4
ldrh r1, [r0]
cmp r1, #0
bne _08012E8E
movs r0, #1
strb r0, [r2, #0x1f]
mov r2, r8
strh r1, [r2, #0x30]
strh r1, [r2, #0x32]
strh r1, [r2, #6]
_08012E8E:
mov r3, sl
ldr r0, [r3]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x96
bne _08012E9E
movs r0, #1
strh r0, [r6]
_08012E9E:
mov r1, sl
ldr r0, [r1]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x9a
bne _08012EB0
movs r0, #0xf9
bl m4aSongNumStart
_08012EB0:
mov r2, sl
ldr r0, [r2]
adds r1, r0, r4
ldrh r0, [r1]
cmp r0, #0x95
bls _08012EEA
subs r0, #0x96
movs r1, #0x42
bl __modsi3
movs r1, #6
bl __divsi3
lsls r0, r0, #0x10
ldr r2, _08012F94 @ =0x040000D4
lsrs r5, r0, #0x10
asrs r0, r0, #7
ldr r1, _08012F98 @ =gUnknown_083BF16C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08012F9C @ =0x06010720
str r0, [r2, #4]
ldr r0, _08012FA0 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r3, r8
ldrh r0, [r3, #6]
subs r0, #0x28
strh r0, [r3, #6]
_08012EEA:
ldr r1, _08012F84 @ =gMain
ldrb r0, [r1, #0xf]
movs r1, #0x41
rsbs r1, r1, #0
ands r0, r1
cmp r0, #0
bne _08012F30
mov r2, sl
ldr r3, [r2]
adds r0, r3, r4
ldrh r1, [r0]
adds r1, #1
strh r1, [r0]
lsls r0, r5, #0x10
ldr r4, _08012FA4 @ =0xFFF90000
adds r0, r0, r4
lsrs r0, r0, #0x10
cmp r0, #3
bhi _08012F30
ldr r2, _08012F94 @ =0x040000D4
ldr r1, _08012FA8 @ =0x000005F6
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #4
lsls r0, r0, #5
ldr r1, _08012FAC @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _08012FB0 @ =0x05000220
str r0, [r2, #4]
ldr r0, _08012FB4 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_08012F30:
ldr r3, _08012FB8 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r2, _08012F90 @ =0x00000392
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #0xba
bne _08012F44
movs r0, #0
mov r4, r8
strb r0, [r4]
_08012F44:
ldr r1, [r3]
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0xd7
bhi _08012F50
b _0801310A
_08012F50:
movs r2, #0xe2
lsls r2, r2, #2
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _08012F6A
movs r0, #0xa5
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #2
strb r0, [r1]
_08012F6A:
ldr r0, [r3]
adds r0, r0, r2
movs r1, #0
strb r1, [r0]
movs r2, #0
strh r1, [r6]
ldr r0, [r3]
strb r2, [r0, #0x1f]
ldr r2, _08012F94 @ =0x040000D4
ldr r0, [r3]
ldr r1, _08012FA8 @ =0x000005F6
adds r0, r0, r1
b _080130F2
.align 2, 0
_08012F84: .4byte gMain
_08012F88: .4byte 0x000001FF
_08012F8C: .4byte 0xFFFFFE00
_08012F90: .4byte 0x00000392
_08012F94: .4byte 0x040000D4
_08012F98: .4byte gUnknown_083BF16C
_08012F9C: .4byte 0x06010720
_08012FA0: .4byte 0x80000100
_08012FA4: .4byte 0xFFF90000
_08012FA8: .4byte 0x000005F6
_08012FAC: .4byte gUnknown_08137E14
_08012FB0: .4byte 0x05000220
_08012FB4: .4byte 0x80000010
_08012FB8: .4byte gUnknown_020314E0
_08012FBC:
ldr r4, _0801307C @ =0x00000392
adds r0, r2, r4
ldrh r1, [r0]
cmp r1, #0
bne _08012FD2
movs r0, #1
strb r0, [r2, #0x1f]
mov r2, r8
strh r1, [r2, #0x30]
strh r1, [r2, #0x32]
strh r1, [r2, #6]
_08012FD2:
mov r3, sl
ldr r0, [r3]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #5
bne _08012FE2
movs r0, #1
strh r0, [r6]
_08012FE2:
mov r1, sl
ldr r0, [r1]
adds r1, r0, r4
ldrh r0, [r1]
cmp r0, #4
bls _0801301A
subs r0, #5
movs r1, #0x3f
bl __modsi3
movs r1, #7
bl __divsi3
ldr r2, _08013080 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #7
ldr r1, _08013084 @ =gUnknown_083BDF6C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08013088 @ =0x06010720
str r0, [r2, #4]
ldr r0, _0801308C @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r2, r8
ldrh r0, [r2, #6]
subs r0, #0x14
strh r0, [r2, #6]
_0801301A:
ldr r3, _08013090 @ =gMain
ldrb r0, [r3, #0xf]
movs r1, #0x81
rsbs r1, r1, #0
ands r0, r1
cmp r0, #0
bne _08013034
mov r0, sl
ldr r1, [r0]
adds r1, r1, r4
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_08013034:
mov r1, sl
ldr r0, [r1]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x17
bne _08013046
movs r0, #0xf9
bl m4aSongNumStart
_08013046:
mov r2, sl
ldr r0, [r2]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x14
bne _08013058
movs r0, #1
mov r3, r8
strb r0, [r3]
_08013058:
ldr r0, _08013094 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x43
bls _0801310A
movs r2, #0xe2
lsls r2, r2, #2
adds r1, r1, r2
movs r0, #0
strb r0, [r1]
strh r0, [r6]
ldr r2, _08013080 @ =0x040000D4
ldr r3, _08013094 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _08013098 @ =0x000005F6
adds r0, r0, r4
b _080130F2
.align 2, 0
_0801307C: .4byte 0x00000392
_08013080: .4byte 0x040000D4
_08013084: .4byte gUnknown_083BDF6C
_08013088: .4byte 0x06010720
_0801308C: .4byte 0x80000100
_08013090: .4byte gMain
_08013094: .4byte gUnknown_020314E0
_08013098: .4byte 0x000005F6
_0801309C:
ldr r6, _08013204 @ =0x000005F7
adds r0, r3, r6
ldrb r0, [r0]
cmp r0, #0
bne _0801310A
movs r4, #0xbf
lsls r4, r4, #3
adds r2, r3, r4
ldrh r0, [r2]
cmp r0, #0
beq _0801310A
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bne _0801310A
ldr r0, _08013208 @ =0x000005F6
adds r2, r3, r0
ldrb r3, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
ble _080130E8
subs r0, r3, #1
strb r0, [r2]
mov r2, sl
ldr r1, [r2]
ldr r3, _08013208 @ =0x000005F6
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _080130E8
adds r1, r1, r4
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r1]
_080130E8:
ldr r2, _0801320C @ =0x040000D4
mov r4, sl
ldr r0, [r4]
ldr r6, _08013208 @ =0x000005F6
adds r0, r0, r6
_080130F2:
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _08013210 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _08013214 @ =0x05000220
str r0, [r2, #4]
ldr r0, _08013218 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_0801310A:
ldr r1, _0801321C @ =gMain
ldrb r0, [r1, #4]
cmp r0, #6
ble _08013114
b _0801330C
_08013114:
cmp r0, #4
bge _0801311A
b _0801330C
_0801311A:
ldr r0, _08013220 @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x71
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov sl, r0
cmp r1, #0
bne _0801312E
b _08013280
_0801312E:
movs r3, #4
mov r5, sl
_08013132:
ldr r2, [r5]
lsls r1, r3, #0x10
asrs r1, r1, #0x10
lsls r4, r1, #2
adds r4, r2, r4
subs r1, #1
lsls r0, r1, #2
adds r2, r2, r0
adds r0, r2, #0
adds r0, #0xd0
ldrh r3, [r0]
adds r0, r4, #0
adds r0, #0xd0
strh r3, [r0]
adds r2, #0xd2
ldrh r0, [r2]
adds r4, #0xd2
strh r0, [r4]
lsls r1, r1, #0x10
lsrs r3, r1, #0x10
cmp r1, #0
bgt _08013132
mov r3, sl
ldr r2, [r3]
mov r4, r8
ldrh r0, [r4, #0x10]
subs r0, #7
adds r1, r2, #0
adds r1, #0xd0
strh r0, [r1]
ldrh r0, [r4, #0x12]
subs r0, #7
adds r2, #0xd2
strh r0, [r2]
movs r3, #0
ldr r6, _0801321C @ =gMain
mov sb, r6
_0801317C:
lsls r2, r3, #0x10
asrs r5, r2, #0x10
mov r0, sb
ldr r1, [r0, #0x44]
lsls r0, r5, #2
adds r0, r0, r1
ldr r6, [r0, #0x18]
ldrh r0, [r6]
mov ip, r2
cmp r0, #0
beq _0801325E
adds r7, r6, #0
adds r7, #8
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r1, _08013224 @ =gOamBuffer
adds r4, r0, r1
movs r0, #3
mov r2, r8
ldrb r1, [r2, #1]
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r4, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #5]
movs r3, #2
ldrsh r2, [r7, r3]
mov r6, sl
ldr r3, [r6]
adds r0, r5, #1
lsls r0, r0, #3
adds r0, r3, r0
adds r0, #0xd0
movs r6, #0
ldrsh r1, [r0, r6]
adds r0, r3, #0
adds r0, #0x4c
movs r6, #0
ldrsh r0, [r0, r6]
subs r1, r1, r0
adds r2, r2, r1
ldr r1, _08013228 @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r1, [r4, #2]
ldr r0, _0801322C @ =0xFFFFFE00
ands r0, r1
orrs r0, r2
strh r0, [r4, #2]
cmp r5, #0
bne _08013230
adds r0, r3, #0
adds r0, #0xda
ldrb r0, [r0]
adds r1, r3, #0
adds r1, #0x4e
ldrb r1, [r1]
subs r0, r0, r1
adds r1, r3, #0
adds r1, #0xe6
ldrb r1, [r1]
subs r0, r0, r1
ldrb r7, [r7, #4]
adds r0, r0, r7
b _0801325C
.align 2, 0
_08013204: .4byte 0x000005F7
_08013208: .4byte 0x000005F6
_0801320C: .4byte 0x040000D4
_08013210: .4byte gUnknown_08137E14
_08013214: .4byte 0x05000220
_08013218: .4byte 0x80000010
_0801321C: .4byte gMain
_08013220: .4byte gUnknown_020314E0
_08013224: .4byte gOamBuffer
_08013228: .4byte 0x000001FF
_0801322C: .4byte 0xFFFFFE00
_08013230:
cmp r5, #1
bne _0801325E
mov r2, sb
ldr r0, [r2, #0x4c]
ands r0, r5
cmp r0, #0
bne _0801325A
adds r0, r3, #0
adds r0, #0xe2
ldrb r0, [r0]
adds r1, r3, #0
adds r1, #0x4e
ldrb r1, [r1]
subs r0, r0, r1
adds r1, r3, #0
adds r1, #0xe6
ldrb r1, [r1]
subs r0, r0, r1
ldrb r7, [r7, #4]
adds r0, r0, r7
b _0801325C
_0801325A:
movs r0, #0xc8
_0801325C:
strb r0, [r4]
_0801325E:
movs r0, #0x80
lsls r0, r0, #9
add r0, ip
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _0801317C
ldr r3, _0801327C @ =gMain
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x18]
movs r1, #1
strh r1, [r0]
ldr r0, [r3, #0x44]
b _08013308
.align 2, 0
_0801327C: .4byte gMain
_08013280:
movs r3, #0
movs r4, #3
mov sb, r4
movs r6, #0xd
rsbs r6, r6, #0
mov ip, r6
ldr r7, _0801331C @ =0xFFFFFE00
_0801328E:
lsls r0, r3, #0x10
asrs r5, r0, #0x10
ldr r0, _08013320 @ =gMain
ldr r1, [r0, #0x44]
lsls r0, r5, #2
adds r0, r0, r1
ldr r6, [r0, #0x18]
ldrh r0, [r6]
cmp r0, #0
beq _080132F0
ldrh r0, [r6, #8]
lsls r0, r0, #3
ldr r1, _08013324 @ =gOamBuffer
adds r4, r0, r1
mov r2, r8
ldrb r1, [r2, #1]
mov r3, sb
ands r1, r3
lsls r1, r1, #2
ldrb r2, [r4, #5]
mov r0, ip
ands r0, r2
orrs r0, r1
strb r0, [r4, #5]
movs r0, #0xa
ldrsh r3, [r6, r0]
mov r1, sl
ldr r2, [r1]
adds r0, r5, #1
lsls r0, r0, #3
adds r0, r2, r0
adds r0, #0xd0
movs r6, #0
ldrsh r1, [r0, r6]
adds r2, #0x4c
movs r6, #0
ldrsh r0, [r2, r6]
subs r1, r1, r0
adds r3, r3, r1
ldr r1, _08013328 @ =0x000001FF
adds r0, r1, #0
ands r3, r0
ldrh r1, [r4, #2]
adds r0, r7, #0
ands r0, r1
orrs r0, r3
strh r0, [r4, #2]
movs r0, #0xc8
strb r0, [r4]
_080132F0:
adds r0, r5, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _0801328E
ldr r2, _08013320 @ =gMain
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x18]
movs r1, #0
strh r1, [r0]
ldr r0, [r2, #0x44]
_08013308:
ldr r0, [r0, #0x1c]
strh r1, [r0]
_0801330C:
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
_0801331C: .4byte 0xFFFFFE00
_08013320: .4byte gMain
_08013324: .4byte gOamBuffer
_08013328: .4byte 0x000001FF
thumb_func_start sub_1332C
sub_1332C: @ 0x0801332C
ldr r0, _08013338 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0x3c
strh r0, [r1, #0x26]
bx lr
.align 2, 0
_08013338: .4byte gUnknown_020314E0
thumb_func_start sub_1333C
sub_1333C: @ 0x0801333C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0xc
mov r0, sp
bl sub_13824
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
ldr r0, _0801336C @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x22
ldrb r0, [r0]
subs r0, #1
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bls _08013362
b _08013758
_08013362:
lsls r0, r0, #2
ldr r1, _08013370 @ =_08013374
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801336C: .4byte gUnknown_020314E0
_08013370: .4byte _08013374
_08013374: @ jump table
.4byte _080133C8 @ case 0
.4byte _08013488 @ case 1
.4byte _080134FC @ case 2
.4byte _08013614 @ case 3
.4byte _08013758 @ case 4
.4byte _08013428 @ case 5
.4byte _08013390 @ case 6
_08013390:
ldr r0, _080133A4 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _080133A8 @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
movs r2, #0
strh r2, [r1, #0x30]
ldr r0, [r0]
strh r2, [r0, #0x32]
b _080137CE
.align 2, 0
_080133A4: .4byte gUnknown_020314E0
_080133A8: .4byte 0x0000132C
_080133AC:
mov r1, sp
movs r0, #0
ldrsb r0, [r3, r0]
ldrh r1, [r1]
adds r0, r0, r1
mov r1, sp
strh r0, [r1]
mov r2, sp
movs r1, #1
ldrsb r1, [r3, r1]
ldrh r0, [r2, #2]
adds r0, r0, r1
strh r0, [r2, #2]
b _0801340C
_080133C8:
add r5, sp, #4
mov r0, sp
adds r1, r5, #0
adds r2, r7, #0
bl sub_13934
ldr r0, _0801341C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _08013420 @ =0x0000132C
adds r0, r0, r2
ldr r1, [r0]
adds r1, #0x30
add r4, sp, #8
adds r0, r7, #0
adds r2, r4, #0
bl sub_13D24
movs r1, #0
mov r8, r5
adds r5, r4, #0
ldr r2, _08013424 @ =gUnknown_086ACD50
_080133F2:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
lsls r0, r1, #2
adds r3, r0, r2
ldrh r0, [r3, #2]
cmp r0, r7
bls _080133AC
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _080133F2
_0801340C:
ldr r0, _0801341C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _08013420 @ =0x0000132C
adds r1, r1, r3
ldr r2, [r1]
mov r6, r8
ldrh r0, [r6]
b _080134DA
.align 2, 0
_0801341C: .4byte gUnknown_020314E0
_08013420: .4byte 0x0000132C
_08013424: .4byte gUnknown_086ACD50
_08013428:
add r5, sp, #4
mov r0, sp
adds r1, r5, #0
adds r2, r7, #0
bl sub_13934
ldr r0, _08013464 @ =gUnknown_020314E0
mov r8, r0
ldr r0, [r0]
ldr r6, _08013468 @ =0x0000132C
adds r0, r0, r6
ldr r1, [r0]
adds r1, #0x30
add r4, sp, #8
adds r0, r7, #0
adds r2, r4, #0
bl sub_13D24
mov r2, r8
ldr r1, [r2]
adds r1, r1, r6
ldr r2, [r1]
ldrh r0, [r5]
ldrh r3, [r4]
adds r0, r0, r3
strh r0, [r2, #0x30]
ldr r2, [r1]
ldrh r0, [r4, #2]
ldrh r1, [r5, #2]
b _080134EA
.align 2, 0
_08013464: .4byte gUnknown_020314E0
_08013468: .4byte 0x0000132C
_0801346C:
mov r1, sp
movs r0, #0
ldrsb r0, [r3, r0]
ldrh r1, [r1]
adds r0, r0, r1
mov r1, sp
strh r0, [r1]
mov r2, sp
movs r1, #1
ldrsb r1, [r3, r1]
ldrh r0, [r2, #2]
adds r0, r0, r1
strh r0, [r2, #2]
b _080134CC
_08013488:
add r5, sp, #4
mov r0, sp
adds r1, r5, #0
adds r2, r7, #0
bl sub_13934
ldr r0, _080134F0 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r6, _080134F4 @ =0x0000132C
adds r0, r0, r6
ldr r1, [r0]
adds r1, #0x30
add r4, sp, #8
adds r0, r7, #0
adds r2, r4, #0
bl sub_13D24
movs r1, #0
mov r8, r5
adds r5, r4, #0
ldr r2, _080134F8 @ =gUnknown_086ACD50
_080134B2:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
lsls r0, r1, #2
adds r3, r0, r2
ldrh r0, [r3, #2]
cmp r0, r7
bls _0801346C
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _080134B2
_080134CC:
ldr r0, _080134F0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _080134F4 @ =0x0000132C
adds r1, r1, r0
ldr r2, [r1]
mov r3, r8
ldrh r0, [r3]
_080134DA:
ldrh r5, [r5]
adds r0, r0, r5
strh r0, [r2, #0x30]
ldr r2, [r1]
add r0, sp, #8
add r1, sp, #4
ldrh r0, [r0, #2]
ldrh r1, [r1, #2]
_080134EA:
adds r0, r0, r1
strh r0, [r2, #0x32]
b _080137CE
.align 2, 0
_080134F0: .4byte gUnknown_020314E0
_080134F4: .4byte 0x0000132C
_080134F8: .4byte gUnknown_086ACD50
_080134FC:
mov r4, sp
add r5, sp, #4
mov r0, sp
adds r1, r5, #0
adds r2, r7, #0
bl sub_13934
ldr r2, _08013560 @ =gUnknown_02031520
movs r6, #0x22
ldrsh r1, [r2, r6]
lsls r1, r1, #1
mov r0, sp
ldrh r0, [r0]
subs r0, r0, r1
mov r1, sp
strh r0, [r1]
movs r0, #0x20
ldrsh r1, [r2, r0]
lsls r1, r1, #1
ldrh r0, [r4, #2]
subs r0, r0, r1
strh r0, [r4, #2]
ldr r6, _08013564 @ =gUnknown_020314E0
ldr r2, [r6]
movs r1, #0x9e
lsls r1, r1, #5
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r5
cmp r0, #0
bne _08013588
ldr r3, _08013568 @ =0x0000132C
adds r0, r2, r3
ldr r1, [r0]
adds r1, #0x30
add r4, sp, #8
adds r0, r7, #0
adds r2, r4, #0
bl sub_13D24
ldr r0, [r6]
movs r6, #0x9e
lsls r6, r6, #5
adds r0, r0, r6
movs r1, #1
strb r1, [r0]
adds r5, r4, #0
b _0801359C
.align 2, 0
_08013560: .4byte gUnknown_02031520
_08013564: .4byte gUnknown_020314E0
_08013568: .4byte 0x0000132C
_0801356C:
mov r1, sp
movs r0, #0
ldrsb r0, [r3, r0]
ldrh r1, [r1]
adds r0, r0, r1
mov r1, sp
strh r0, [r1]
mov r2, sp
movs r1, #1
ldrsb r1, [r3, r1]
ldrh r0, [r2, #2]
adds r0, r0, r1
strh r0, [r2, #2]
b _080135F0
_08013588:
ldr r0, _08013604 @ =0x0000132C
adds r2, r2, r0
ldr r0, [r2]
ldrh r0, [r0, #0x30]
add r1, sp, #8
strh r0, [r1]
ldr r0, [r2]
ldrh r0, [r0, #0x32]
strh r0, [r1, #2]
adds r5, r1, #0
_0801359C:
mov r0, sp
adds r1, r5, #0
movs r2, #0
bl sub_13B28
ldr r0, _08013608 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _08013604 @ =0x0000132C
adds r3, r2, r1
ldr r4, [r3]
add r1, sp, #8
mov r6, r8
ldrh r0, [r6]
ldrh r1, [r1]
adds r0, r0, r1
strh r0, [r4, #0x30]
ldr r3, [r3]
add r1, sp, #4
ldrh r0, [r5, #2]
ldrh r1, [r1, #2]
adds r0, r0, r1
strh r0, [r3, #0x32]
adds r2, #0x22
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #5
bne _080135F0
movs r1, #0
ldr r2, _0801360C @ =gUnknown_086ACD74
_080135D6:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
lsls r0, r1, #2
adds r3, r0, r2
ldrh r0, [r3, #2]
cmp r0, r7
bls _0801356C
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _080135D6
_080135F0:
ldr r3, _08013610 @ =gUnknown_02031520
movs r1, #0x22
ldrsh r0, [r3, r1]
mov r1, sp
lsls r0, r0, #1
ldrh r1, [r1]
adds r0, r0, r1
mov r1, sp
strh r0, [r1]
b _08013738
.align 2, 0
_08013604: .4byte 0x0000132C
_08013608: .4byte gUnknown_020314E0
_0801360C: .4byte gUnknown_086ACD74
_08013610: .4byte gUnknown_02031520
_08013614:
mov r4, sp
add r5, sp, #4
mov r0, sp
adds r1, r5, #0
adds r2, r7, #0
bl sub_13934
ldr r2, _08013674 @ =gUnknown_02031520
movs r0, #0x24
ldrsh r1, [r2, r0]
lsls r1, r1, #1
mov r0, sp
ldrh r0, [r0]
subs r0, r0, r1
mov r1, sp
strh r0, [r1]
movs r3, #0x20
ldrsh r1, [r2, r3]
lsls r1, r1, #1
ldrh r0, [r4, #2]
subs r0, r0, r1
strh r0, [r4, #2]
ldr r6, _08013678 @ =gUnknown_020314E0
ldr r2, [r6]
ldr r1, _0801367C @ =0x000013CC
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r5
cmp r0, #0
bne _080136A0
ldr r3, _08013680 @ =0x0000132C
adds r0, r2, r3
ldr r1, [r0]
adds r1, #0x30
add r4, sp, #8
adds r0, r7, #0
adds r2, r4, #0
bl sub_13D24
ldr r0, [r6]
ldr r6, _0801367C @ =0x000013CC
adds r0, r0, r6
movs r1, #1
strb r1, [r0]
adds r5, r4, #0
b _080136B4
.align 2, 0
_08013674: .4byte gUnknown_02031520
_08013678: .4byte gUnknown_020314E0
_0801367C: .4byte 0x000013CC
_08013680: .4byte 0x0000132C
_08013684:
movs r1, #0
ldrsb r1, [r3, r1]
mov r0, sp
ldrh r0, [r0]
subs r0, r0, r1
mov r1, sp
strh r0, [r1]
mov r2, sp
movs r1, #1
ldrsb r1, [r3, r1]
ldrh r0, [r2, #2]
adds r0, r0, r1
strh r0, [r2, #2]
b _0801371E
_080136A0:
ldr r0, _08013748 @ =0x0000132C
adds r2, r2, r0
ldr r0, [r2]
ldrh r0, [r0, #0x30]
add r1, sp, #8
strh r0, [r1]
ldr r0, [r2]
ldrh r0, [r0, #0x32]
strh r0, [r1, #2]
adds r5, r1, #0
_080136B4:
mov r0, sp
ldrh r1, [r0]
movs r0, #0x5f
subs r0, r0, r1
mov r1, sp
strh r0, [r1]
ldrh r0, [r5]
rsbs r0, r0, #0
add r4, sp, #8
strh r0, [r4]
mov r0, sp
adds r1, r4, #0
movs r2, #1
bl sub_13B28
ldrh r1, [r4]
rsbs r1, r1, #0
strh r1, [r4]
ldr r0, _0801374C @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _08013748 @ =0x0000132C
adds r5, r2, r3
ldr r3, [r5]
mov r6, r8
ldrh r0, [r6]
adds r1, r1, r0
strh r1, [r3, #0x30]
ldr r3, [r5]
add r1, sp, #4
ldrh r0, [r4, #2]
ldrh r1, [r1, #2]
adds r0, r0, r1
strh r0, [r3, #0x32]
adds r2, #0x22
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #5
bne _0801371E
movs r1, #0
ldr r2, _08013750 @ =gUnknown_086ACD74
_08013704:
lsls r0, r1, #0x10
asrs r1, r0, #0x10
lsls r0, r1, #2
adds r3, r0, r2
ldrh r0, [r3, #2]
cmp r0, r7
bls _08013684
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _08013704
_0801371E:
mov r0, sp
ldrh r0, [r0]
movs r1, #0x5f
subs r1, r1, r0
mov r0, sp
strh r1, [r0]
ldr r3, _08013754 @ =gUnknown_02031520
movs r2, #0x24
ldrsh r0, [r3, r2]
lsls r0, r0, #1
adds r1, r1, r0
mov r0, sp
strh r1, [r0]
_08013738:
mov r2, sp
movs r6, #0x20
ldrsh r1, [r3, r6]
lsls r1, r1, #1
ldrh r0, [r2, #2]
adds r0, r0, r1
strh r0, [r2, #2]
b _080137CE
.align 2, 0
_08013748: .4byte 0x0000132C
_0801374C: .4byte gUnknown_020314E0
_08013750: .4byte gUnknown_086ACD74
_08013754: .4byte gUnknown_02031520
_08013758:
ldr r0, _08013788 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x91
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08013794
ldr r6, _0801378C @ =0x00000127
adds r3, r2, r6
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #1
beq _080137B8
ldr r1, _08013790 @ =0x0000132C
adds r0, r2, r1
ldr r1, [r0]
ldrh r0, [r1, #0x30]
subs r0, #4
strh r0, [r1, #0x30]
movs r0, #1
b _080137B6
.align 2, 0
_08013788: .4byte gUnknown_020314E0
_0801378C: .4byte 0x00000127
_08013790: .4byte 0x0000132C
_08013794:
cmp r0, #0
bge _080137B8
ldr r6, _08013814 @ =0x00000127
adds r3, r2, r6
movs r1, #0
ldrsb r1, [r3, r1]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _080137B8
ldr r1, _08013818 @ =0x0000132C
adds r0, r2, r1
ldr r1, [r0]
ldrh r0, [r1, #0x30]
adds r0, #4
strh r0, [r1, #0x30]
movs r0, #0xff
_080137B6:
strb r0, [r3]
_080137B8:
ldr r0, _0801381C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _08013820 @ =0x000005F3
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080137CE
bl sub_1493C
_080137CE:
ldr r0, _0801381C @ =gUnknown_020314E0
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x22
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08013808
ldr r3, _08013818 @ =0x0000132C
adds r2, r2, r3
ldr r1, [r2]
mov r0, sp
ldrh r0, [r0]
strh r0, [r1, #0x28]
ldr r1, [r2]
mov r0, sp
ldrh r0, [r0, #2]
strh r0, [r1, #0x2a]
ldr r1, [r2]
movs r6, #0x28
ldrsh r0, [r1, r6]
lsls r0, r0, #7
str r0, [r1, #0x34]
ldr r1, [r2]
movs r2, #0x2a
ldrsh r0, [r1, r2]
lsls r0, r0, #7
str r0, [r1, #0x38]
_08013808:
add sp, #0xc
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08013814: .4byte 0x00000127
_08013818: .4byte 0x0000132C
_0801381C: .4byte gUnknown_020314E0
_08013820: .4byte 0x000005F3
thumb_func_start sub_13824
sub_13824: @ 0x08013824
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r7, r0, #0
ldr r0, _0801391C @ =gUnknown_020314E0
mov r8, r0
ldr r3, [r0]
ldr r1, _08013920 @ =0x0000132C
mov sb, r1
add r3, sb
ldr r1, [r3]
ldrh r2, [r1, #0x28]
ldrh r4, [r1, #0x2c]
subs r2, r2, r4
lsls r2, r2, #0x10
ldrh r0, [r1, #0x2a]
ldrh r1, [r1, #0x2e]
subs r0, r0, r1
lsls r0, r0, #0x10
ldr r1, _08013924 @ =0x0000FFFF
mov sl, r1
lsrs r6, r2, #0x10
orrs r6, r0
movs r5, #0
strh r4, [r7]
ldr r0, [r3]
ldrh r0, [r0, #0x2e]
strh r0, [r7, #2]
adds r0, r7, #0
adds r1, r6, #0
bl sub_14488
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
mov r3, r8
ldr r0, [r3]
movs r1, #0x92
lsls r1, r1, #1
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r3]
ldr r3, _08013928 @ =0x00000125
adds r0, r0, r3
strb r5, [r0]
mov r0, r8
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x22
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801390A
subs r1, #2
adds r3, r2, r1
ldrh r1, [r3]
mov r0, sl
ands r0, r1
cmp r0, #0
beq _0801390A
mov r0, sb
adds r1, r2, r0
ldr r0, [r1]
ldrh r0, [r0, #0x28]
strh r0, [r7]
ldr r0, [r1]
ldrh r0, [r0, #0x2a]
strh r0, [r7, #2]
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _0801392C @ =0xFFFF0000
ands r6, r1
orrs r6, r0
ldr r1, _08013930 @ =0x00000123
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
mov r3, sl
ands r6, r3
orrs r6, r0
adds r0, r7, #0
adds r1, r6, #0
bl sub_14488
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
mov r0, r8
ldr r1, [r0]
ldrb r2, [r7]
mov r3, sb
adds r0, r1, r3
ldr r0, [r0]
ldrh r0, [r0, #0x28]
subs r2, r2, r0
movs r0, #0x92
lsls r0, r0, #1
adds r1, r1, r0
strb r2, [r1]
mov r3, r8
ldr r1, [r3]
ldrb r2, [r7, #2]
mov r3, sb
adds r0, r1, r3
ldr r0, [r0]
ldrh r0, [r0, #0x2a]
subs r2, r2, r0
ldr r0, _08013928 @ =0x00000125
adds r1, r1, r0
strb r2, [r1]
_0801390A:
adds r0, r4, #0
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0801391C: .4byte gUnknown_020314E0
_08013920: .4byte 0x0000132C
_08013924: .4byte 0x0000FFFF
_08013928: .4byte 0x00000125
_0801392C: .4byte 0xFFFF0000
_08013930: .4byte 0x00000123
thumb_func_start sub_13934
sub_13934: @ 0x08013934
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r5, r1, #0
lsls r2, r2, #0x10
lsrs r4, r2, #0x10
movs r0, #0
strh r0, [r5]
strh r0, [r5, #2]
ldr r7, _0801399C @ =gUnknown_020314E0
ldr r1, [r7]
movs r0, #0x91
lsls r0, r0, #1
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _080139D6
movs r3, #0x92
lsls r3, r3, #1
adds r0, r1, r3
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r0, [r6]
subs r0, r0, r1
strh r0, [r6]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
ble _080139A4
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
cmp r0, #0
bge _080139D6
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x46
muls r0, r1, r0
ldr r1, _080139A0 @ =0x00004E20
bl __divsi3
strh r0, [r5]
ldr r0, [r7]
movs r2, #0x93
lsls r2, r2, #1
adds r1, r0, r2
b _080139D2
.align 2, 0
_0801399C: .4byte gUnknown_020314E0
_080139A0: .4byte 0x00004E20
_080139A4:
cmp r0, #0
bge _080139D6
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
cmp r0, #0
ble _080139D6
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x46
muls r0, r1, r0
ldr r1, _08013A30 @ =0x00004E20
bl __divsi3
strh r0, [r5]
ldr r0, [r7]
movs r3, #0x93
lsls r3, r3, #1
adds r1, r0, r3
_080139D2:
movs r0, #1
strb r0, [r1]
_080139D6:
ldr r1, _08013A34 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r3, _08013A38 @ =0x00000123
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r3, r1, #0
cmp r0, #0
bgt _080139EC
b _08013AF4
_080139EC:
ldr r1, _08013A3C @ =0x00000125
adds r0, r2, r1
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r0, [r6, #2]
subs r0, r0, r1
strh r0, [r6, #2]
ldr r3, _08013A40 @ =0x0000132C
adds r0, r2, r3
ldr r0, [r0]
movs r3, #0x12
ldrsh r1, [r0, r3]
movs r0, #0xb6
lsls r0, r0, #1
cmp r1, r0
ble _08013A64
movs r1, #0x91
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08013A44
adds r0, r4, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #6
adds r0, r0, r1
lsls r0, r0, #1
b _08013A52
.align 2, 0
_08013A30: .4byte 0x00004E20
_08013A34: .4byte gUnknown_020314E0
_08013A38: .4byte 0x00000123
_08013A3C: .4byte 0x00000125
_08013A40: .4byte 0x0000132C
_08013A44:
adds r0, r4, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x64
muls r0, r1, r0
_08013A52:
rsbs r0, r0, #0
ldr r1, _08013A60 @ =0x00004E20
bl __divsi3
strh r0, [r5, #2]
b _08013AE4
.align 2, 0
_08013A60: .4byte 0x00004E20
_08013A64:
movs r3, #0x91
lsls r3, r3, #1
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08013A8C
adds r0, r4, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x64
muls r0, r1, r0
rsbs r0, r0, #0
ldr r1, _08013A88 @ =0x00004E20
b _08013AA2
.align 2, 0
_08013A88: .4byte 0x00004E20
_08013A8C:
adds r0, r4, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r2, r0, #2
adds r2, r2, r0
lsls r0, r2, #4
subs r2, r2, r0
ldr r1, _08013ABC @ =0x00004E20
adds r0, r2, #0
_08013AA2:
bl __divsi3
strh r0, [r5, #2]
movs r0, #2
ldrsh r1, [r5, r0]
cmp r1, #0x59
ble _08013AC8
ldr r0, _08013AC0 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _08013AC4 @ =0x0000132C
adds r0, r0, r1
b _08013AD4
.align 2, 0
_08013ABC: .4byte 0x00004E20
_08013AC0: .4byte gUnknown_020314E0
_08013AC4: .4byte 0x0000132C
_08013AC8:
cmp r1, #0x45
ble _08013AE4
ldr r0, _08013B1C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r3, _08013B20 @ =0x0000132C
adds r0, r0, r3
_08013AD4:
ldr r1, [r0]
movs r2, #0x30
ldrsh r0, [r1, r2]
cmp r0, #0
bge _08013AE0
adds r0, #3
_08013AE0:
asrs r0, r0, #2
strh r0, [r1, #0x30]
_08013AE4:
ldr r0, _08013B1C @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0x93
lsls r3, r3, #1
adds r2, r1, r3
movs r1, #1
strb r1, [r2]
adds r3, r0, #0
_08013AF4:
ldr r1, [r3]
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
beq _08013B16
subs r2, #4
adds r0, r1, r2
movs r1, #0
strb r1, [r0]
ldr r0, [r3]
ldr r3, _08013B24 @ =0x00000123
adds r0, r0, r3
strb r1, [r0]
_08013B16:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08013B1C: .4byte gUnknown_020314E0
_08013B20: .4byte 0x0000132C
_08013B24: .4byte 0x00000123
thumb_func_start sub_13B28
sub_13B28: @ 0x08013B28
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
mov r8, r0
str r1, [sp, #8]
movs r3, #0
ldrsh r1, [r0, r3]
lsls r1, r1, #0x17
movs r4, #2
ldrsh r0, [r0, r4]
lsls r0, r0, #0x17
lsrs r5, r1, #0x10
orrs r5, r0
ldr r6, [sp, #8]
ldrh r1, [r6, #2]
lsls r1, r1, #0x10
ldrh r0, [r6]
orrs r0, r1
str r0, [sp, #4]
lsls r2, r2, #0x10
mov sb, r2
mov r0, sb
asrs r0, r0, #0x10
mov sl, r0
b _08013C4E
_08013B60:
ldr r2, _08013C04 @ =0xFFFFF500
adds r1, r5, r2
lsls r1, r1, #0x10
asrs r0, r5, #0x10
ldr r3, _08013C08 @ =0xFFFFE800
adds r0, r0, r3
lsls r0, r0, #0x10
lsrs r7, r1, #0x10
orrs r7, r0
lsls r0, r7, #0x10
asrs r0, r0, #0x10
adds r1, r0, #0
muls r1, r0, r1
asrs r0, r7, #0x10
adds r6, r0, #0
muls r6, r0, r6
adds r0, r6, #0
adds r1, r1, r0
ldr r2, _08013C0C @ =0xFFDC0000
adds r0, r1, r2
lsls r0, r0, #2
bl Sqrt
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
mov r3, sb
asrs r1, r3, #0x10
add r2, sp, #4
adds r3, r4, #0
bl sub_14B84
add r0, sp, #4
movs r4, #0
ldrsh r2, [r0, r4]
movs r1, #0xe1
lsls r1, r1, #1
cmp r2, r1
bgt _08013BB2
ldr r1, _08013C10 @ =0xFFFFFE3E
cmp r2, r1
bge _08013BB4
_08013BB2:
strh r1, [r0]
_08013BB4:
ldrh r0, [r0]
adds r0, r0, r5
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08013C14 @ =0xFFFF0000
ands r5, r1
orrs r5, r0
asrs r2, r5, #0x10
add r0, sp, #4
ldrh r1, [r0, #2]
adds r1, r1, r2
lsls r1, r1, #0x10
ldr r0, _08013C18 @ =0x0000FFFF
ands r5, r0
orrs r5, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _08013BDC
adds r0, #0x7f
_08013BDC:
asrs r1, r0, #7
mov r6, r8
strh r1, [r6]
asrs r0, r5, #0x10
cmp r0, #0
bge _08013BEA
adds r0, #0x7f
_08013BEA:
asrs r0, r0, #7
mov r2, r8
strh r0, [r2, #2]
movs r3, #0
str r3, [sp, #0x10]
cmp r1, #0x31
bgt _08013BFA
b _08013CF0
_08013BFA:
ldr r0, _08013C1C @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x1e]
b _08013C22
.align 2, 0
_08013C04: .4byte 0xFFFFF500
_08013C08: .4byte 0xFFFFE800
_08013C0C: .4byte 0xFFDC0000
_08013C10: .4byte 0xFFFFFE3E
_08013C14: .4byte 0xFFFF0000
_08013C18: .4byte 0x0000FFFF
_08013C1C: .4byte gUnknown_020314E0
_08013C20:
lsrs r0, r4, #0x10
_08013C22:
lsls r0, r0, #0x10
asrs r1, r0, #0x10
cmp r1, #3
bgt _08013C48
mov r4, r8
ldr r0, [r4]
adds r1, #1
lsls r4, r1, #0x10
asrs r1, r4, #0x10
mov r2, sp
mov r6, sb
asrs r3, r6, #0x10
bl sub_14AF4
lsls r0, r0, #0x10
cmp r0, #0
beq _08013C20
movs r0, #1
str r0, [sp, #0x10]
_08013C48:
ldr r1, [sp, #0x10]
cmp r1, #0
beq _08013CF0
_08013C4E:
ldr r0, _08013CAC @ =gUnknown_020314E0
ldr r1, [r0]
mov r2, sl
lsls r0, r2, #1
add r0, sl
lsls r0, r0, #2
adds r3, r1, r0
ldr r4, _08013CB0 @ =0x000013BC
adds r0, r3, r4
movs r1, #0
ldrsb r1, [r0, r1]
ldr r6, _08013CB4 @ =0x000013BD
adds r0, r3, r6
movs r2, #0
ldrsb r2, [r0, r2]
adds r4, #8
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r1, r1, r2
muls r0, r1, r0
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
str r6, [sp, #0xc]
cmp r0, #0
ble _08013CF0
ldr r1, _08013CB8 @ =0x000013BE
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bgt _08013CC4
ldr r2, _08013CBC @ =0x000013C1
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
lsls r0, r0, #2
ldr r3, _08013CC0 @ =gUnknown_086ACD84
adds r0, r0, r3
movs r4, #0x80
lsls r4, r4, #7
adds r1, r4, #0
b _08013CDC
.align 2, 0
_08013CAC: .4byte gUnknown_020314E0
_08013CB0: .4byte 0x000013BC
_08013CB4: .4byte 0x000013BD
_08013CB8: .4byte 0x000013BE
_08013CBC: .4byte 0x000013C1
_08013CC0: .4byte gUnknown_086ACD84
_08013CC4:
ldr r6, _08013CE8 @ =0x000013C1
adds r0, r3, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
lsls r0, r0, #2
ldr r1, _08013CEC @ =gUnknown_086ACD86
adds r0, r0, r1
movs r2, #0xc0
lsls r2, r2, #8
adds r1, r2, #0
_08013CDC:
ldrh r0, [r0]
adds r1, r1, r0
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
b _08013B60
.align 2, 0
_08013CE8: .4byte 0x000013C1
_08013CEC: .4byte gUnknown_086ACD86
_08013CF0:
ldr r3, [sp, #0xc]
lsls r0, r3, #0x10
cmp r0, #0
bgt _08013D08
ldr r0, _08013D04 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x22
movs r1, #5
strb r1, [r0]
b _08013D14
.align 2, 0
_08013D04: .4byte gUnknown_020314E0
_08013D08:
add r0, sp, #4
ldrh r1, [r0]
ldr r4, [sp, #8]
strh r1, [r4]
ldrh r0, [r0, #2]
strh r0, [r4, #2]
_08013D14:
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
thumb_func_start sub_13D24
sub_13D24: @ 0x08013D24
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x24
adds r4, r1, #0
str r2, [sp, #0xc]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #8]
ldrh r0, [r4]
rsbs r0, r0, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #2
ldrsh r1, [r4, r2]
bl ArcTan2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #0x10]
movs r1, #0
ldrsh r0, [r4, r1]
adds r1, r0, #0
muls r1, r0, r1
movs r2, #2
ldrsh r0, [r4, r2]
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
adds r1, r1, r0
lsls r0, r1, #2
bl Sqrt
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
str r0, [sp, #0x18]
ldr r0, [sp, #0x10]
ldr r1, [sp, #8]
cmp r0, r1
bls _08013D84
subs r4, r0, r1
ldr r1, _08013D80 @ =0x0000FFFF
b _08013D8C
.align 2, 0
_08013D80: .4byte 0x0000FFFF
_08013D84:
ldr r2, [sp, #8]
ldr r0, [sp, #0x10]
subs r4, r2, r0
movs r1, #1
_08013D8C:
movs r0, #0x80
lsls r0, r0, #8
cmp r4, r0
ble _08013DA0
movs r0, #0x80
lsls r0, r0, #9
subs r4, r0, r4
lsls r0, r1, #0x10
rsbs r0, r0, #0
lsrs r1, r0, #0x10
_08013DA0:
lsls r1, r1, #0x10
asrs r0, r1, #2
ldr r2, [sp, #8]
adds r0, r2, r0
str r0, [sp, #0x14]
mov r8, r1
cmp r0, #0
bge _08013DB8
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
str r0, [sp, #0x14]
_08013DB8:
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r4, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r2, [sp, #0x18]
muls r0, r2, r0
ldr r5, _08013E40 @ =0x00004E20
adds r1, r5, #0
bl __divsi3
str r0, [sp, #0x1c]
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r1, [sp, #0x18]
muls r0, r1, r0
adds r1, r5, #0
bl __divsi3
adds r7, r0, #0
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
ldr r1, _08013E44 @ =0x1F3F0000
cmp r0, r1
ble _08013E2A
cmp r7, #0x46
ble _08013E02
movs r0, #0x77
bl m4aSongNumStart
_08013E02:
movs r0, #0x8c
lsls r0, r0, #1
cmp r7, r0
ble _08013E2A
ldr r0, _08013E48 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _08013E4C @ =0x0000061C
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08013E2A
ldr r0, _08013E50 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bhi _08013E2A
movs r0, #6
bl sub_11B0
_08013E2A:
ldr r0, _08013E48 @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x31
ldrb r1, [r1]
cmp r1, #0
beq _08013E54
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #2
adds r0, r0, r7
b _08013E58
.align 2, 0
_08013E40: .4byte 0x00004E20
_08013E44: .4byte 0x1F3F0000
_08013E48: .4byte gUnknown_020314E0
_08013E4C: .4byte 0x0000061C
_08013E50: .4byte gMain
_08013E54:
movs r0, #0x1a
muls r0, r7, r0
_08013E58:
movs r1, #0x64
bl __divsi3
adds r7, r0, #0
ldr r1, [sp, #0x1c]
lsls r0, r1, #3
movs r1, #0xa
bl __divsi3
adds r6, r0, #0
ldr r2, _08014004 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08014008 @ =0x0000132C
adds r0, r0, r1
ldr r4, [r0]
movs r2, #6
ldrsh r0, [r4, r2]
ldr r5, _0801400C @ =0x00000EB8
muls r0, r5, r0
movs r1, #0xaf
lsls r1, r1, #0xa
bl __divsi3
mov sb, r0
mov r1, r8
asrs r0, r1, #0x10
rsbs r0, r0, #0
mov r8, r0
lsls r0, r0, #1
add r0, r8
lsls r0, r0, #3
add r0, r8
lsls r0, r0, #0xa
muls r0, r6, r0
adds r1, r5, #0
bl __divsi3
ldrh r1, [r4, #4]
adds r1, r1, r0
strh r1, [r4, #6]
ldr r0, [sp, #8]
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
str r0, [sp]
ldr r0, [sp, #8]
bl sub_C24
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
mov r2, sp
str r2, [sp, #0x20]
str r0, [sp, #4]
ldr r1, [sp, #0x14]
lsls r0, r1, #0x10
lsrs r5, r0, #0x10
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r2, [sp, #0x1c]
muls r0, r2, r0
ldr r1, [sp]
adds r0, r0, r1
str r0, [sp]
adds r0, r5, #0
bl sub_C24
ldr r2, [sp, #0x1c]
rsbs r1, r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r4, r1, #0
muls r4, r0, r4
ldr r0, [sp, #4]
adds r4, r4, r0
str r4, [sp, #4]
ldr r0, [sp]
ldr r7, _08014010 @ =0x00004E20
adds r1, r7, #0
bl __divsi3
str r0, [sp]
adds r0, r4, #0
adds r1, r7, #0
bl __divsi3
str r0, [sp, #4]
movs r4, #1
mov r0, sb
cmp r0, #0
bge _08013F20
subs r4, #2
rsbs r0, r0, #0
mov sb, r0
_08013F20:
mov r1, r8
muls r1, r4, r1
adds r4, r1, #0
adds r0, r5, #0
bl sub_C74
mov r1, sb
muls r1, r4, r1
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r7, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08014014 @ =0xFFFF0000
mov r2, sl
ands r2, r1
orrs r2, r0
mov sl, r2
adds r0, r5, #0
bl sub_C24
rsbs r1, r4, #0
mov r2, sb
muls r2, r1, r2
adds r1, r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r7, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08014018 @ =0x0000FFFF
mov r2, sl
ands r2, r1
orrs r2, r0
mov sl, r2
ldr r0, [sp]
adds r1, r0, #0
muls r1, r0, r1
ldr r0, [sp, #4]
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
adds r6, r1, r0
lsls r0, r6, #2
bl Sqrt
lsls r0, r0, #0x10
lsrs r6, r0, #0x11
mov r1, sl
lsls r0, r1, #0x10
asrs r0, r0, #0x10
ldr r1, [sp]
adds r0, r0, r1
str r0, [sp]
mov r2, sl
asrs r0, r2, #0x10
ldr r1, [sp, #4]
adds r0, r0, r1
str r0, [sp, #4]
mov r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
ldr r2, [sp, #0x20]
ldrh r1, [r2, #4]
rsbs r1, r1, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, _0801401C @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bne _08014020
ldr r0, _08014004 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08014020
ldr r2, _08014008 @ =0x0000132C
adds r0, r1, r2
ldr r0, [r0]
movs r1, #0x12
ldrsh r0, [r0, r1]
cmp r0, #0xd1
bgt _08014020
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r2, [sp, #0x18]
muls r0, r2, r0
adds r1, r7, #0
bl __divsi3
str r0, [sp]
adds r0, r5, #0
bl sub_C24
ldr r2, [sp, #0x18]
rsbs r1, r2, #0
b _0801403E
.align 2, 0
_08014004: .4byte gUnknown_020314E0
_08014008: .4byte 0x0000132C
_0801400C: .4byte 0x00000EB8
_08014010: .4byte 0x00004E20
_08014014: .4byte 0xFFFF0000
_08014018: .4byte 0x0000FFFF
_0801401C: .4byte gMain
_08014020:
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r6, r0
ldr r4, _08014070 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
str r0, [sp]
adds r0, r5, #0
bl sub_C24
rsbs r1, r6, #0
_0801403E:
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
ldr r1, _08014070 @ =0x00004E20
bl __divsi3
str r0, [sp, #4]
ldr r0, [sp, #8]
mov r1, sp
ldr r2, [sp, #0x10]
bl sub_14074
ldr r0, [sp]
ldr r1, [sp, #0xc]
strh r0, [r1]
ldr r0, [sp, #4]
strh r0, [r1, #2]
add sp, #0x24
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08014070: .4byte 0x00004E20
thumb_func_start sub_14074
sub_14074: @ 0x08014074
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov r8, r1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
adds r7, r5, #0
lsls r2, r2, #0x10
lsrs r4, r2, #0x10
mov ip, r4
ldr r0, _080140CC @ =gUnknown_020314E0
mov sl, r0
ldr r1, [r0]
ldr r2, _080140D0 @ =0x0000132C
adds r0, r1, r2
ldr r3, [r0]
movs r2, #0x30
ldrsh r0, [r3, r2]
adds r2, r0, #0
muls r2, r0, r2
mov sb, r2
movs r2, #0x32
ldrsh r0, [r3, r2]
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
add sb, r0
adds r1, #0x23
ldrb r0, [r1]
cmp r0, #2
beq _080140B8
b _08014230
_080140B8:
movs r1, #0x28
ldrsh r0, [r3, r1]
cmp r0, #0xe0
ble _080140DC
ldr r2, _080140D4 @ =0xFFFFD5E4
adds r0, r4, r2
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r7, _080140D8 @ =0x00006A1C
b _080140E8
.align 2, 0
_080140CC: .4byte gUnknown_020314E0
_080140D0: .4byte 0x0000132C
_080140D4: .4byte 0xFFFFD5E4
_080140D8: .4byte 0x00006A1C
_080140DC:
ldr r0, _080140FC @ =0x000055E4
mov r1, ip
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r7, _08014100 @ =0x000015E4
_080140E8:
movs r0, #0x90
lsls r0, r0, #5
cmp r2, r0
bhi _08014108
ldr r0, _08014104 @ =0x00003FFF
cmp sb, r0
bgt _08014108
movs r6, #0
b _0801439C
.align 2, 0
_080140FC: .4byte 0x000055E4
_08014100: .4byte 0x000015E4
_08014104: .4byte 0x00003FFF
_08014108:
mov r2, r8
ldr r0, [r2]
movs r1, #5
bl __divsi3
mov r1, r8
str r0, [r1]
ldr r0, [r1, #4]
movs r1, #5
bl __divsi3
mov r2, r8
str r0, [r2, #4]
ldr r0, _08014180 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r1, _08014184 @ =0x0000132C
adds r0, r4, r1
ldr r5, [r0]
movs r2, #6
ldrsh r0, [r5, r2]
lsls r0, r0, #2
movs r1, #0xa
bl __divsi3
strh r0, [r5, #6]
adds r4, #0x31
ldrb r0, [r4]
cmp r0, #0
beq _08014190
adds r0, r7, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0xe6
muls r0, r1, r0
ldr r4, _08014188 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _0801418C @ =0xFFFF0000
ands r6, r1
orrs r6, r0
adds r0, r7, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r1
lsls r0, r0, #2
subs r0, r0, r1
lsls r0, r0, #1
b _080141C8
.align 2, 0
_08014180: .4byte gUnknown_020314E0
_08014184: .4byte 0x0000132C
_08014188: .4byte 0x00004E20
_0801418C: .4byte 0xFFFF0000
_08014190:
adds r0, r7, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r1, _08014200 @ =0x0000011D
muls r0, r1, r0
ldr r4, _08014204 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08014208 @ =0xFFFF0000
ands r6, r1
orrs r6, r0
adds r0, r7, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r1
_080141C8:
rsbs r0, r0, #0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _0801420C @ =0x0000FFFF
ands r6, r1
orrs r6, r0
ldr r2, _08014210 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08014214 @ =0x00000716
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
ldr r1, [r2]
ldr r2, _08014218 @ =0x0000132C
adds r0, r1, r2
ldr r0, [r0]
movs r2, #0x10
ldrsh r0, [r0, r2]
cmp r0, #0x77
bgt _08014220
ldr r0, _0801421C @ =0x00000717
adds r1, r1, r0
movs r0, #0
strb r0, [r1]
b _0801439C
.align 2, 0
_08014200: .4byte 0x0000011D
_08014204: .4byte 0x00004E20
_08014208: .4byte 0xFFFF0000
_0801420C: .4byte 0x0000FFFF
_08014210: .4byte gUnknown_020314E0
_08014214: .4byte 0x00000716
_08014218: .4byte 0x0000132C
_0801421C: .4byte 0x00000717
_08014220:
ldr r2, _0801422C @ =0x00000717
adds r1, r1, r2
movs r0, #1
strb r0, [r1]
b _0801439C
.align 2, 0
_0801422C: .4byte 0x00000717
_08014230:
cmp r0, #1
beq _08014236
b _08014340
_08014236:
mov r1, r8
ldr r0, [r1]
movs r1, #5
bl __divsi3
mov r2, r8
str r0, [r2]
ldr r0, [r2, #4]
movs r1, #5
bl __divsi3
mov r1, r8
str r0, [r1, #4]
ldr r2, _08014298 @ =0x00005FFF
adds r0, r5, r2
lsls r0, r0, #0x10
ldr r1, _0801429C @ =0x3FFE0000
cmp r0, r1
bhi _080142A8
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #4
subs r1, r1, r0
lsls r1, r1, #2
ldr r4, _080142A0 @ =0x00004E20
adds r0, r1, #0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080142A4 @ =0xFFFF0000
ands r6, r1
orrs r6, r0
adds r0, r5, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
rsbs r0, r0, #0
b _0801438E
.align 2, 0
_08014298: .4byte 0x00005FFF
_0801429C: .4byte 0x3FFE0000
_080142A0: .4byte 0x00004E20
_080142A4: .4byte 0xFFFF0000
_080142A8:
ldr r1, _080142F0 @ =0xFFFFF000
adds r0, r5, r1
lsls r0, r0, #0x10
movs r1, #0xc0
lsls r1, r1, #0x17
cmp r0, r1
bhi _080142FC
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #4
subs r1, r1, r0
lsls r1, r1, #4
ldr r4, _080142F4 @ =0x00004E20
adds r0, r1, #0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080142F8 @ =0xFFFF0000
ands r6, r1
orrs r6, r0
adds r0, r5, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #4
rsbs r0, r0, #0
b _0801438E
.align 2, 0
_080142F0: .4byte 0xFFFFF000
_080142F4: .4byte 0x00004E20
_080142F8: .4byte 0xFFFF0000
_080142FC:
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #4
subs r1, r1, r0
lsls r1, r1, #3
ldr r4, _08014338 @ =0x00004E20
adds r0, r1, #0
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _0801433C @ =0xFFFF0000
ands r6, r1
orrs r6, r0
adds r0, r5, #0
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #3
rsbs r0, r0, #0
b _0801438E
.align 2, 0
_08014338: .4byte 0x00004E20
_0801433C: .4byte 0xFFFF0000
_08014340:
adds r0, r7, #0
bl sub_C74
ldr r5, _080143D4 @ =gUnknown_086ACDF4
mov r2, sl
ldr r1, [r2]
adds r1, #0x23
ldrb r1, [r1]
lsls r1, r1, #1
adds r1, r1, r5
movs r2, #0
ldrsh r1, [r1, r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
ldr r4, _080143D8 @ =0x00004E20
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080143DC @ =0xFFFF0000
ands r6, r1
orrs r6, r0
adds r0, r7, #0
bl sub_C24
mov r2, sl
ldr r1, [r2]
adds r1, #0x23
ldrb r1, [r1]
lsls r1, r1, #1
adds r1, r1, r5
movs r2, #0
ldrsh r1, [r1, r2]
rsbs r1, r1, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
_0801438E:
adds r1, r4, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _080143E0 @ =0x0000FFFF
ands r6, r1
orrs r6, r0
_0801439C:
lsls r0, r6, #0x10
asrs r0, r0, #0x10
mov r2, r8
ldr r1, [r2]
adds r4, r1, r0
str r4, [r2]
asrs r1, r6, #0x10
ldr r0, [r2, #4]
adds r0, r0, r1
str r0, [r2, #4]
ldr r1, _080143E4 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080143E8 @ =0x000005A4
adds r3, r0, r2
ldrb r2, [r3]
adds r5, r1, #0
cmp r2, #0
beq _0801446C
lsls r0, r4, #0x10
lsrs r1, r0, #0x10
movs r4, #1
cmp r2, #1
bne _080143EC
movs r0, #0
strb r0, [r3]
movs r0, #0x80
mov sb, r0
b _080143F2
.align 2, 0
_080143D4: .4byte gUnknown_086ACDF4
_080143D8: .4byte 0x00004E20
_080143DC: .4byte 0xFFFF0000
_080143E0: .4byte 0x0000FFFF
_080143E4: .4byte gUnknown_020314E0
_080143E8: .4byte 0x000005A4
_080143EC:
movs r2, #0xa0
lsls r2, r2, #2
mov sb, r2
_080143F2:
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _08014402
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
ldr r4, _0801447C @ =0x0000FFFF
_08014402:
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r0, #0xff
bgt _08014412
lsls r0, r4, #0x10
asrs r0, r0, #8
mov r1, r8
str r0, [r1]
_08014412:
ldr r0, [r5]
ldr r2, _08014480 @ =0x0000132C
adds r0, r0, r2
ldr r1, [r0]
movs r0, #0
strh r0, [r1, #6]
mov r1, r8
movs r2, #0
ldrsh r0, [r1, r2]
ldr r1, [r1, #4]
rsbs r1, r1, #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
mov r1, sb
muls r1, r0, r1
adds r0, r1, #0
ldr r5, _08014484 @ =0x00004E20
adds r1, r5, #0
bl __divsi3
mov r2, r8
str r0, [r2]
adds r0, r4, #0
bl sub_C24
mov r2, sb
rsbs r1, r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r5, #0
bl __divsi3
mov r1, r8
str r0, [r1, #4]
_0801446C:
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
_0801447C: .4byte 0x0000FFFF
_08014480: .4byte 0x0000132C
_08014484: .4byte 0x00004E20
thumb_func_start sub_14488
sub_14488: @ 0x08014488
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
adds r7, r0, #0
adds r4, r1, #0
ldr r1, _08014510 @ =0xFFFF0000
mov r0, r8
ands r0, r1
mov r8, r0
movs r0, #1
mov r2, r8
orrs r2, r0
mov r8, r2
ldr r2, _08014514 @ =0x0000FFFF
mov r3, r8
ands r3, r2
movs r0, #0x80
lsls r0, r0, #9
orrs r3, r0
mov r8, r3
lsls r0, r4, #0x10
cmp r0, #0
bge _080144CA
orrs r3, r2
mov r8, r3
rsbs r0, r4, #0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ands r4, r1
orrs r4, r0
_080144CA:
asrs r0, r4, #0x10
cmp r0, #0
bge _080144DE
mov r3, r8
orrs r3, r1
mov r8, r3
rsbs r0, r0, #0
lsls r0, r0, #0x10
ands r4, r2
orrs r4, r0
_080144DE:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
asrs r1, r4, #0x10
movs r2, #1
str r2, [sp, #8]
cmp r0, r1
ble _080144F0
movs r3, #0
str r3, [sp, #8]
_080144F0:
ldr r2, _08014518 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x22
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x23
strb r1, [r0]
ldr r1, _0801451C @ =gUnknown_086ACE0C
ldr r0, _08014520 @ =gMain
ldrb r0, [r0, #4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [sp, #0xc]
b _080145CC
.align 2, 0
_08014510: .4byte 0xFFFF0000
_08014514: .4byte 0x0000FFFF
_08014518: .4byte gUnknown_020314E0
_0801451C: .4byte gUnknown_086ACE0C
_08014520: .4byte gMain
_08014524:
ldrh r0, [r5]
strh r0, [r7]
ldrh r0, [r5, #2]
strh r0, [r7, #2]
mov r1, sp
mov r2, sb
ldrh r0, [r2]
strh r0, [r1]
b _0801456E
_08014536:
ldr r5, _080145A0 @ =gUnknown_020314E0
ldr r0, [r5]
adds r0, #0x22
strb r1, [r0]
adds r0, r7, #0
mov r1, sp
bl sub_1467C
lsls r0, r0, #0x10
cmp r0, #0
beq _0801454E
b _08014668
_0801454E:
ldr r0, [r5]
ldr r3, _080145A4 @ =0x000005F2
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801456E
adds r0, r7, #0
mov r1, sp
bl sub_14740
lsls r0, r0, #0x10
cmp r0, #0
beq _0801456E
b _08014668
_0801456E:
lsls r0, r4, #0x10
cmp r0, #0
bgt _0801457A
asrs r0, r4, #0x10
cmp r0, #0
ble _08014668
_0801457A:
ldr r0, [sp, #8]
cmp r0, #0
bne _080145AC
ldrh r0, [r7]
add r0, r8
strh r0, [r7]
subs r1, r4, #1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldr r0, _080145A8 @ =0xFFFF0000
ands r4, r0
orrs r4, r1
asrs r0, r4, #0x10
cmp r0, #0
ble _080145CC
movs r1, #1
str r1, [sp, #8]
b _080145CC
.align 2, 0
_080145A0: .4byte gUnknown_020314E0
_080145A4: .4byte 0x000005F2
_080145A8: .4byte 0xFFFF0000
_080145AC:
mov r2, r8
asrs r0, r2, #0x10
ldrh r3, [r7, #2]
adds r0, r0, r3
strh r0, [r7, #2]
asrs r1, r4, #0x10
subs r1, #1
lsls r1, r1, #0x10
ldr r0, _08014658 @ =0x0000FFFF
ands r4, r0
orrs r4, r1
lsls r0, r4, #0x10
cmp r0, #0
ble _080145CC
movs r0, #0
str r0, [sp, #8]
_080145CC:
adds r0, r7, #0
mov r1, sp
ldr r2, [sp, #0xc]
bl _call_via_r2
lsls r0, r0, #0x10
asrs r1, r0, #0x10
cmp r1, #0
beq _08014536
ldr r0, _0801465C @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x22
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08014668
adds r0, r1, #0
adds r0, #0x23
ldrb r0, [r0]
cmp r0, #3
bne _0801456E
movs r6, #0
add r5, sp, #4
movs r3, #2
add r3, sp
mov sb, r3
ldr r0, _08014658 @ =0x0000FFFF
mov sl, r0
_08014608:
ldr r0, _08014660 @ =gUnknown_086ACE60
lsls r3, r6, #2
adds r3, r3, r0
ldrh r1, [r3]
ldrh r2, [r7]
adds r1, r1, r2
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldr r2, _08014664 @ =0xFFFF0000
ldr r0, [sp, #4]
ands r0, r2
orrs r0, r1
str r0, [sp, #4]
ldrh r1, [r3, #2]
ldrh r3, [r7, #2]
adds r1, r1, r3
lsls r1, r1, #0x10
mov r2, sl
ands r0, r2
orrs r0, r1
str r0, [sp, #4]
adds r0, r5, #0
mov r1, sb
ldr r3, [sp, #0xc]
bl _call_via_r3
ldr r0, _0801465C @ =gUnknown_020314E0
ldr r0, [r0]
ldrh r1, [r0, #0x22]
mov r0, sl
ands r0, r1
cmp r0, #1
bne _0801464C
b _08014524
_0801464C:
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
cmp r6, #3
bls _08014608
b _0801456E
.align 2, 0
_08014658: .4byte 0x0000FFFF
_0801465C: .4byte gUnknown_020314E0
_08014660: .4byte gUnknown_086ACE60
_08014664: .4byte 0xFFFF0000
_08014668:
mov r0, sp
ldrh r0, [r0]
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_1467C
sub_1467C: @ 0x0801467C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov r8, r1
movs r7, #0
ldr r4, _08014734 @ =gUnknown_02031520
movs r1, #0x22
ldrsh r2, [r4, r1]
lsls r2, r2, #1
ldrh r3, [r0]
subs r2, r3, r2
lsls r2, r2, #0x10
mov ip, r2
movs r2, #0x24
ldrsh r1, [r4, r2]
lsls r1, r1, #1
subs r3, r3, r1
lsls r3, r3, #0x10
movs r2, #0x20
ldrsh r1, [r4, r2]
lsls r1, r1, #1
ldrh r0, [r0, #2]
subs r0, r0, r1
lsls r0, r0, #0x10
mov r1, ip
lsrs r6, r1, #0x10
orrs r6, r0
lsrs r1, r0, #0x10
lsrs r5, r3, #0x10
orrs r5, r0
cmp r1, #0x5f
bhi _08014724
lsls r0, r6, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x5f
bhi _080146E8
ldr r4, _08014738 @ =gUnknown_020314E0
ldr r0, [r4]
ldrb r1, [r0, #0x1e]
adds r1, #1
adds r0, r6, #0
mov r2, r8
movs r3, #0
bl sub_14AF4
lsls r0, r0, #0x10
cmp r0, #0
beq _080146E8
ldr r0, [r4]
adds r0, #0x22
movs r1, #3
strb r1, [r0]
movs r7, #1
_080146E8:
cmp r7, #0
bne _08014724
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x5f
bhi _08014724
movs r0, #0x5f
subs r0, r0, r5
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _0801473C @ =0xFFFF0000
ands r5, r1
orrs r5, r0
ldr r4, _08014738 @ =gUnknown_020314E0
ldr r0, [r4]
ldrb r1, [r0, #0x1e]
adds r1, #1
adds r0, r5, #0
mov r2, r8
movs r3, #1
bl sub_14AF4
lsls r0, r0, #0x10
cmp r0, #0
beq _08014724
ldr r0, [r4]
adds r0, #0x22
movs r1, #4
strb r1, [r0]
movs r7, #1
_08014724:
adds r0, r7, #0
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_08014734: .4byte gUnknown_02031520
_08014738: .4byte gUnknown_020314E0
_0801473C: .4byte 0xFFFF0000
thumb_func_start sub_14740
sub_14740: @ 0x08014740
push {r4, r5, r6, r7, lr}
adds r2, r0, #0
adds r7, r1, #0
movs r6, #0
ldr r0, _080147E8 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r5, _080147EC @ =0x000005A4
adds r1, r4, r5
ldrb r1, [r1]
adds r5, r0, #0
cmp r1, #2
bne _0801475A
b _08014924
_0801475A:
movs r0, #0
ldrsh r1, [r2, r0]
lsrs r0, r1, #0x1f
adds r1, r1, r0
asrs r1, r1, #1
adds r0, r4, #0
adds r0, #0xc4
ldrh r0, [r0]
subs r1, r1, r0
lsls r1, r1, #0x10
movs r3, #2
ldrsh r0, [r2, r3]
lsrs r2, r0, #0x1f
adds r0, r0, r2
asrs r0, r0, #1
adds r2, r4, #0
adds r2, #0xc6
ldrh r2, [r2]
subs r0, r0, r2
lsls r0, r0, #0x10
lsrs r3, r1, #0x10
orrs r3, r0
adds r1, r0, #0
lsrs r0, r1, #0x10
cmp r0, #0x2f
bls _08014790
b _08014924
_08014790:
lsls r2, r3, #0x10
lsrs r0, r2, #0x10
cmp r0, #0x2f
bls _0801479A
b _08014924
_0801479A:
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #4
asrs r1, r2, #0x10
adds r0, r0, r1
ldr r1, _080147F0 @ =gUnknown_0839A28C
adds r0, r0, r1
ldrb r2, [r0]
movs r0, #0x80
ands r0, r2
cmp r0, #0
bne _080147B6
b _08014924
_080147B6:
adds r1, r4, #0
adds r1, #0x22
movs r0, #2
strb r0, [r1]
ldr r0, [r5]
adds r0, #0x23
movs r1, #3
strb r1, [r0]
movs r0, #0x7f
ands r0, r2
lsls r0, r0, #9
strh r0, [r7]
ldr r2, [r5]
ldr r0, _080147F4 @ =0x000005A6
adds r1, r2, r0
movs r0, #0x14
strh r0, [r1]
ldr r1, _080147F8 @ =0x000005A9
adds r2, r2, r1
ldrb r0, [r2]
cmp r0, #0
beq _080147FC
movs r0, #0x18
b _080147FE
.align 2, 0
_080147E8: .4byte gUnknown_020314E0
_080147EC: .4byte 0x000005A4
_080147F0: .4byte gUnknown_0839A28C
_080147F4: .4byte 0x000005A6
_080147F8: .4byte 0x000005A9
_080147FC:
movs r0, #0x14
_080147FE:
strb r0, [r2]
ldr r1, [r5]
movs r2, #0xb3
lsls r2, r2, #3
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0xc8
bne _080148A4
ldr r3, _0801484C @ =0x000005AA
adds r0, r1, r3
ldrh r3, [r0]
cmp r3, #0
bne _0801487E
adds r2, #0xd
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r5]
adds r0, r1, r2
ldrb r2, [r0]
cmp r2, #3
bne _08014858
adds r0, r2, #0
adds r0, r1, r0
ldr r1, _08014850 @ =0x0000071C
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r5]
ldr r2, _08014854 @ =0x000005A4
adds r0, r0, r2
movs r1, #2
strb r1, [r0]
ldr r1, [r5]
adds r2, #2
adds r0, r1, r2
strh r3, [r0]
b _08014870
.align 2, 0
_0801484C: .4byte 0x000005AA
_08014850: .4byte 0x0000071C
_08014854: .4byte 0x000005A4
_08014858:
ldrb r0, [r0]
adds r0, r1, r0
ldr r3, _08014890 @ =0x0000071C
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
ldr r1, _08014894 @ =0x000005A4
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r1, [r5]
_08014870:
ldr r0, _08014898 @ =0x00002710
str r0, [r1, #0x3c]
ldr r0, [r5]
ldr r2, _0801489C @ =0x000005AA
adds r0, r0, r2
movs r1, #4
strh r1, [r0]
_0801487E:
movs r6, #1
ldr r0, _080148A0 @ =0x00000145
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
b _08014924
.align 2, 0
_08014890: .4byte 0x0000071C
_08014894: .4byte 0x000005A4
_08014898: .4byte 0x00002710
_0801489C: .4byte 0x000005AA
_080148A0: .4byte 0x00000145
_080148A4:
ldr r3, _080148E0 @ =0x000005AA
adds r0, r1, r3
ldrh r3, [r0]
cmp r3, #0
bne _08014916
ldr r2, _080148E4 @ =0x000005A5
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r5]
adds r0, r1, r2
ldrb r2, [r0]
cmp r2, #3
bne _080148F0
adds r0, r2, #0
adds r0, r1, r0
ldr r1, _080148E8 @ =0x0000071C
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r5]
ldr r2, _080148EC @ =0x000005A4
adds r0, r0, r2
movs r1, #2
strb r1, [r0]
ldr r1, [r5]
adds r2, #2
adds r0, r1, r2
strh r3, [r0]
b _08014908
.align 2, 0
_080148E0: .4byte 0x000005AA
_080148E4: .4byte 0x000005A5
_080148E8: .4byte 0x0000071C
_080148EC: .4byte 0x000005A4
_080148F0:
ldrb r0, [r0]
adds r0, r1, r0
ldr r3, _0801492C @ =0x0000071C
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
ldr r1, _08014930 @ =0x000005A4
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r1, [r5]
_08014908:
ldr r0, _08014934 @ =0x00002710
str r0, [r1, #0x3c]
ldr r0, [r5]
ldr r2, _08014938 @ =0x000005AA
adds r0, r0, r2
movs r1, #4
strh r1, [r0]
_08014916:
movs r6, #1
movs r0, #0x74
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_08014924:
adds r0, r6, #0
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0801492C: .4byte 0x0000071C
_08014930: .4byte 0x000005A4
_08014934: .4byte 0x00002710
_08014938: .4byte 0x000005AA
thumb_func_start sub_1493C
sub_1493C: @ 0x0801493C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
ldr r0, _08014A28 @ =gUnknown_020314E0
mov sb, r0
ldr r4, [r0]
ldr r1, _08014A2C @ =0x0000132C
mov r8, r1
adds r0, r4, r1
ldr r2, [r0]
ldrh r1, [r2, #0x28]
subs r1, #0xee
lsls r1, r1, #0x10
ldr r5, _08014A30 @ =0xFFFFFDD2
adds r0, r5, #0
ldrh r2, [r2, #0x2a]
adds r0, r0, r2
lsls r0, r0, #0x10
lsrs r3, r1, #0x10
orrs r3, r0
lsls r0, r3, #0x10
asrs r0, r0, #0x10
adds r1, r0, #0
muls r1, r0, r1
asrs r2, r3, #0x10
adds r0, r2, #0
muls r0, r2, r0
adds r7, r1, r0
ldr r0, _08014A34 @ =0x000006E3
cmp r7, r0
bgt _08014A04
ldrb r1, [r4, #0x1e]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08014A04
rsbs r0, r3, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r2, #0
bl ArcTan2
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
movs r5, #0x1e
adds r0, r4, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r5, r0
ldr r6, _08014A38 @ =0x00004E20
adds r1, r6, #0
bl __divsi3
str r0, [sp]
adds r0, r4, #0
bl sub_C24
rsbs r5, r5, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r5, r0
adds r1, r6, #0
bl __divsi3
str r0, [sp, #4]
mov r0, sb
ldr r4, [r0]
add r4, r8
ldr r5, [r4]
movs r1, #0x64
mov r8, r1
ldr r2, [sp]
mov r0, r8
muls r0, r2, r0
movs r2, #0x30
ldrsh r1, [r5, r2]
movs r6, #0x62
muls r1, r6, r1
adds r0, r0, r1
movs r1, #0x64
bl __divsi3
strh r0, [r5, #0x30]
ldr r4, [r4]
ldr r5, [sp, #4]
mov r0, r8
muls r0, r5, r0
movs r2, #0x32
ldrsh r1, [r4, r2]
muls r1, r6, r1
adds r0, r0, r1
movs r1, #0x64
bl __divsi3
strh r0, [r4, #0x32]
_08014A04:
ldr r0, _08014A28 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r5, _08014A3C @ =0x000005F4
adds r3, r1, r5
ldrh r0, [r3]
adds r2, r0, #0
cmp r2, #0x13
bhi _08014A5C
cmp r7, #0x27
bgt _08014A40
adds r0, #1
strh r0, [r3]
ldr r2, _08014A2C @ =0x0000132C
adds r0, r1, r2
ldr r1, [r0]
movs r0, #0x80
lsls r0, r0, #1
b _08014ADC
.align 2, 0
_08014A28: .4byte gUnknown_020314E0
_08014A2C: .4byte 0x0000132C
_08014A30: .4byte 0xFFFFFDD2
_08014A34: .4byte 0x000006E3
_08014A38: .4byte 0x00004E20
_08014A3C: .4byte 0x000005F4
_08014A40:
ldr r5, _08014A58 @ =0x0000132C
adds r0, r1, r5
ldr r1, [r0]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1, #0xe]
cmp r7, #0x64
ble _08014ADE
movs r0, #0
strh r0, [r3]
b _08014ADE
.align 2, 0
_08014A58: .4byte 0x0000132C
_08014A5C:
cmp r2, #0x1d
bhi _08014AA8
adds r0, #1
movs r6, #0
strh r0, [r3]
ldr r0, _08014AA4 @ =0x0000132C
adds r4, r1, r0
ldr r5, [r4]
ldrh r1, [r3]
movs r0, #0x1e
subs r0, r0, r1
lsls r0, r0, #7
movs r1, #0xa
bl __divsi3
adds r0, #0x80
strh r0, [r5, #0xe]
ldr r1, [r4]
movs r0, #0x77
strh r0, [r1, #0x10]
ldr r1, [r4]
adds r0, #0xa0
strh r0, [r1, #0x12]
ldr r0, [r4]
strh r6, [r0, #6]
ldr r1, [r4]
movs r2, #0x10
ldrsh r0, [r1, r2]
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r4]
movs r5, #0x12
ldrsh r0, [r1, r5]
lsls r0, r0, #8
str r0, [r1, #0x38]
b _08014ADE
.align 2, 0
_08014AA4: .4byte 0x0000132C
_08014AA8:
movs r0, #0
strh r0, [r3]
adds r1, #0x25
movs r0, #4
strb r0, [r1]
ldr r0, _08014AC0 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _08014AC4
bl sub_1A98C
b _08014AC8
.align 2, 0
_08014AC0: .4byte gMain
_08014AC4:
bl sub_32914
_08014AC8:
ldr r2, _08014AEC @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x22
movs r1, #7
strb r1, [r0]
ldr r0, [r2]
ldr r1, _08014AF0 @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
movs r0, #0x80
_08014ADC:
strh r0, [r1, #0xe]
_08014ADE:
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08014AEC: .4byte gUnknown_020314E0
_08014AF0: .4byte 0x0000132C
thumb_func_start sub_14AF4
sub_14AF4: @ 0x08014AF4
push {r4, r5, r6, r7, lr}
adds r7, r2, #0
movs r2, #0
mov ip, r2
asrs r2, r0, #0x10
lsls r4, r2, #1
adds r4, r4, r2
lsls r4, r4, #5
adds r4, r4, r0
lsls r4, r4, #0x10
ldr r2, _08014B70 @ =gUnknown_020314E0
lsls r3, r3, #0x10
asrs r6, r3, #0x10
lsls r0, r6, #1
adds r0, r0, r6
lsls r0, r0, #2
ldr r3, _08014B74 @ =0x000013BC
adds r0, r0, r3
ldr r3, [r2]
adds r3, r3, r0
ldr r5, _08014B78 @ =gUnknown_086ACDB8
lsls r1, r1, #0x10
asrs r1, r1, #0x10
movs r2, #2
ldrsb r2, [r3, r2]
lsls r0, r2, #2
adds r0, r0, r2
adds r1, r1, r0
adds r1, r1, r5
ldrb r0, [r1]
strb r0, [r3, #5]
ldr r0, _08014B7C @ =gUnknown_02031520
movs r1, #5
ldrsb r1, [r3, r1]
ldr r2, [r0, #0x68]
lsrs r4, r4, #0xf
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #0xb
adds r0, r0, r2
adds r4, r4, r0
ldrh r4, [r4]
movs r0, #0xf
ands r0, r4
cmp r0, #0
beq _08014B66
ldr r1, _08014B80 @ =0x0000FFF0
ands r1, r4
strh r1, [r7]
cmp r6, #1
bne _08014B62
movs r0, #0x80
lsls r0, r0, #8
subs r0, r0, r1
strh r0, [r7]
_08014B62:
movs r0, #1
mov ip, r0
_08014B66:
mov r0, ip
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_08014B70: .4byte gUnknown_020314E0
_08014B74: .4byte 0x000013BC
_08014B78: .4byte gUnknown_086ACDB8
_08014B7C: .4byte gUnknown_02031520
_08014B80: .4byte 0x0000FFF0
thumb_func_start sub_14B84
sub_14B84: @ 0x08014B84
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r5, r0, #0
mov r8, r2
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sl, r1
lsls r3, r3, #0x10
lsrs r7, r3, #0x10
ldr r0, _08014C20 @ =gUnknown_020314E0
ldr r2, [r0]
lsls r3, r1, #0x10
asrs r0, r3, #0x10
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r2, r1
ldr r6, _08014C24 @ =0x000013C1
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldr r0, _08014C28 @ =0x000013C4
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _08014BC8
b _08014D3E
_08014BC8:
adds r0, r2, #0
adds r0, #0x5c
movs r1, #0
ldrsh r0, [r0, r1]
mov sb, r3
cmp r0, #0
beq _08014BD8
b _08014CF2
_08014BD8:
lsls r0, r6, #0x10
asrs r2, r0, #0x10
subs r1, r2, #2
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r1
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r5, r5, r0
ldr r0, _08014C2C @ =0x00000B21
cmp r5, r0
bgt _08014C34
ldr r2, _08014C30 @ =0xFFFFF5D8
adds r4, r5, r2
lsls r0, r4, #0xb
movs r1, #0x96
lsls r1, r1, #2
bl __divsi3
movs r3, #0x90
lsls r3, r3, #7
adds r1, r3, #0
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
lsls r4, r4, #7
movs r1, #0x96
lsls r1, r1, #1
adds r0, r4, #0
bl __divsi3
adds r7, r0, #0
adds r7, #0x78
b _08014C68
.align 2, 0
_08014C20: .4byte gUnknown_020314E0
_08014C24: .4byte 0x000013C1
_08014C28: .4byte 0x000013C4
_08014C2C: .4byte 0x00000B21
_08014C30: .4byte 0xFFFFF5D8
_08014C34:
ldr r0, _08014D14 @ =gUnknown_086ACE2C
lsls r1, r2, #2
adds r6, r1, r0
adds r0, #2
adds r1, r1, r0
ldrh r0, [r1]
ldr r1, _08014D18 @ =0xFFFFF5D8
adds r4, r5, r1
muls r0, r4, r0
ldr r5, _08014D1C @ =0x00001518
adds r1, r5, #0
bl __divsi3
ldrh r1, [r6]
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
movs r0, #0xae
lsls r0, r0, #1
muls r0, r4, r0
adds r1, r5, #0
bl __divsi3
movs r2, #0xcb
lsls r2, r2, #1
adds r7, r0, r2
_08014C68:
mov r3, sl
lsls r0, r3, #0x10
mov sb, r0
cmp r0, #0
beq _08014C7E
movs r1, #0x80
lsls r1, r1, #8
adds r0, r1, #0
subs r0, r0, r6
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
_08014C7E:
ldr r2, _08014D20 @ =gUnknown_020314E0
mov sl, r2
ldr r0, [r2]
ldr r3, _08014D24 @ =0x0000132C
adds r0, r0, r3
ldr r2, [r0]
movs r0, #0x30
ldrsh r1, [r2, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #9
rsbs r0, r0, #0
cmp r0, #0
bge _08014C9C
adds r0, #0x7f
_08014C9C:
asrs r3, r0, #7
movs r0, #8
ldrsh r1, [r2, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
rsbs r0, r0, #0
cmp r0, #0
bge _08014CB0
adds r0, #0xff
_08014CB0:
asrs r0, r0, #8
adds r0, r3, r0
adds r0, r6, r0
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
adds r0, r6, #0
bl sub_C74
mov r1, sl
ldr r4, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r5, _08014D28 @ =0x00004E20
adds r1, r5, #0
bl __divsi3
adds r4, #0x60
strh r0, [r4]
adds r0, r6, #0
bl sub_C24
mov r2, sl
ldr r4, [r2]
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r5, #0
bl __divsi3
adds r4, #0x62
strh r0, [r4]
_08014CF2:
ldr r2, _08014D20 @ =gUnknown_020314E0
ldr r3, [r2]
adds r1, r3, #0
adds r1, #0x5c
movs r0, #1
strh r0, [r1]
mov r6, sb
cmp r6, #0
beq _08014D2C
adds r0, r3, #0
adds r0, #0x60
ldrh r0, [r0]
rsbs r0, r0, #0
mov r1, r8
strh r0, [r1]
b _08014D36
.align 2, 0
_08014D14: .4byte gUnknown_086ACE2C
_08014D18: .4byte 0xFFFFF5D8
_08014D1C: .4byte 0x00001518
_08014D20: .4byte gUnknown_020314E0
_08014D24: .4byte 0x0000132C
_08014D28: .4byte 0x00004E20
_08014D2C:
adds r0, r3, #0
adds r0, #0x60
ldrh r0, [r0]
mov r3, r8
strh r0, [r3]
_08014D36:
ldr r0, [r2]
adds r0, #0x62
ldrh r0, [r0]
b _08014DEA
_08014D3E:
adds r0, r5, #0
movs r1, #0x14
bl __divsi3
adds r5, r0, #0
adds r0, r7, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r5, r0
ldr r6, _08014DFC @ =0x00004E20
adds r1, r6, #0
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08014E00 @ =0xFFFF0000
ands r4, r1
orrs r4, r0
adds r0, r7, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r5, r0
rsbs r0, r0, #0
adds r1, r6, #0
bl __divsi3
lsls r0, r0, #0x10
ldr r1, _08014E04 @ =0x0000FFFF
ands r4, r1
orrs r4, r0
mov r0, r8
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r0, r4, r0
mov r3, r8
strh r0, [r3]
asrs r1, r4, #0x10
movs r0, #2
ldrsh r2, [r3, r0]
lsls r0, r2, #1
adds r0, r0, r2
lsrs r2, r0, #0x1f
adds r0, r0, r2
asrs r0, r0, #1
adds r1, r1, r0
strh r1, [r3, #2]
movs r2, #0
ldrsh r0, [r3, r2]
rsbs r1, r1, #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
muls r0, r5, r0
adds r1, r6, #0
bl __divsi3
mov r3, r8
strh r0, [r3]
adds r0, r4, #0
bl sub_C24
rsbs r5, r5, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r5, r0
adds r1, r6, #0
bl __divsi3
_08014DEA:
mov r6, r8
strh r0, [r6, #2]
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
_08014DFC: .4byte 0x00004E20
_08014E00: .4byte 0xFFFF0000
_08014E04: .4byte 0x0000FFFF
thumb_func_start sub_14E08
sub_14E08: @ 0x08014E08
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
mov r8, r1
add r2, sp, #4
movs r1, #0
strh r1, [r2]
ldr r0, _08014F0C @ =gUnknown_020314E0
ldr r0, [r0]
mov sl, r0
ldr r0, _08014F10 @ =0x0000132C
add r0, sl
ldr r0, [r0]
strh r1, [r0, #4]
mov r0, sb
movs r1, #0
ldrsh r4, [r0, r1]
adds r0, r4, #0
cmp r4, #0
bge _08014E3A
adds r0, r4, #7
_08014E3A:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _08014F14 @ =0xFFFF0000
mov ip, r2
ands r5, r2
orrs r5, r0
mov r7, sb
movs r0, #2
ldrsh r3, [r7, r0]
adds r0, r3, #0
cmp r3, #0
bge _08014E56
adds r0, r3, #7
_08014E56:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _08014F18 @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _08014E82
adds r2, #0x3f
_08014E82:
asrs r2, r2, #6
mov r0, sl
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r7, _08014F1C @ =gUnknown_02031520
mov ip, r7
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r0, [r0]
mov r4, sp
adds r4, #2
strb r0, [r4]
mov r0, sb
mov r1, sp
adds r2, r4, #0
bl sub_15054
ldrb r0, [r4]
movs r3, #0xf
ands r3, r0
lsrs r6, r0, #4
subs r0, r3, #1
cmp r0, #5
bls _08014F00
b _0801502C
_08014F00:
lsls r0, r0, #2
ldr r1, _08014F20 @ =_08014F24
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08014F0C: .4byte gUnknown_020314E0
_08014F10: .4byte 0x0000132C
_08014F14: .4byte 0xFFFF0000
_08014F18: .4byte 0x0000FFFF
_08014F1C: .4byte gUnknown_02031520
_08014F20: .4byte _08014F24
_08014F24: @ jump table
.4byte _08014F3C @ case 0
.4byte _08014FE8 @ case 1
.4byte _08014FE8 @ case 2
.4byte _08014F3C @ case 3
.4byte _08015018 @ case 4
.4byte _08014F3C @ case 5
_08014F3C:
ldr r2, _08014FB4 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r5, #1
strb r5, [r0]
mov r0, sp
ldrh r0, [r0]
mov r1, r8
strh r0, [r1]
ldr r4, _08014FB8 @ =0xFFFFC010
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bhi _08014FDC
ldr r0, [r2]
ldr r7, _08014FBC @ =0x0000132C
adds r3, r0, r7
ldr r2, [r3]
movs r0, #0x10
ldrsh r1, [r2, r0]
ldr r4, _08014FC0 @ =gUnknown_02031520
movs r7, #0x26
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
blt _08014F88
movs r0, #0x12
ldrsh r1, [r2, r0]
movs r7, #0x28
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
bge _08014FDC
_08014F88:
movs r1, #6
ldrsh r0, [r2, r1]
cmp r0, #0
bgt _08014FA6
cmp r0, #0
bne _08014FD2
ldr r0, _08014FC4 @ =gMain
ldr r0, [r0, #0x4c]
ands r0, r5
cmp r0, #0
beq _08014FC8
movs r0, #0x28
strh r0, [r2, #4]
ldr r0, [r3]
strh r5, [r0, #6]
_08014FA6:
movs r2, #0xf8
lsls r2, r2, #6
adds r0, r2, #0
mov r4, r8
strh r0, [r4]
b _08014FDC
.align 2, 0
_08014FB4: .4byte gUnknown_020314E0
_08014FB8: .4byte 0xFFFFC010
_08014FBC: .4byte 0x0000132C
_08014FC0: .4byte gUnknown_02031520
_08014FC4: .4byte gMain
_08014FC8:
ldr r0, _08014FE4 @ =0x0000FFD8
strh r0, [r2, #4]
ldr r1, [r3]
adds r0, #0x27
strh r0, [r1, #6]
_08014FD2:
movs r7, #0x82
lsls r7, r7, #7
adds r0, r7, #0
mov r1, r8
strh r0, [r1]
_08014FDC:
movs r0, #1
mov r2, sp
strh r0, [r2, #4]
b _0801502C
.align 2, 0
_08014FE4: .4byte 0x0000FFD8
_08014FE8:
ldr r2, _08015010 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08015014 @ =0x0000FFF0
ands r0, r1
mov r4, r8
strh r0, [r4]
movs r0, #1
mov r7, sp
strh r0, [r7, #4]
b _0801502C
.align 2, 0
_08015010: .4byte gUnknown_020314E0
_08015014: .4byte 0x0000FFF0
_08015018:
ldr r2, _0801504C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08015050 @ =0x000002A2
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r1, [r2]
movs r0, #1
strb r0, [r1, #0x1f]
movs r6, #0
_0801502C:
adds r0, r6, #0
add r1, sp, #4
mov r2, r8
bl sub_153CC
mov r2, sp
movs r4, #4
ldrsh r0, [r2, r4]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0801504C: .4byte gUnknown_020314E0
_08015050: .4byte 0x000002A2
thumb_func_start sub_15054
sub_15054: @ 0x08015054
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
adds r4, r0, #0
str r1, [sp]
mov ip, r2
movs r7, #0
movs r5, #0
movs r0, #0
str r0, [sp, #4]
ldr r0, _08015128 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0801512C @ =0x000005B2
adds r1, r2, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov r8, r0
cmp r1, #0
beq _08015084
b _08015298
_08015084:
adds r0, r2, #0
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08015094
b _0801539A
_08015094:
movs r6, #0xa9
lsls r6, r6, #2
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08015146
ldr r1, _08015130 @ =0x000002A3
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080150B4
b _0801539A
_080150B4:
movs r3, #0xc2
lsls r3, r3, #1
adds r0, r2, r3
ldrh r1, [r0]
ldrh r6, [r4]
adds r1, r1, r6
adds r3, #2
adds r0, r2, r3
ldrh r0, [r0]
ldrh r4, [r4, #2]
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r5, r1, #0x10
lsrs r0, r5, #0x10
cmp r0, #0x4f
bls _080150D8
b _0801539A
_080150D8:
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x57
bls _080150E2
b _0801539A
_080150E2:
ldr r2, _08015134 @ =gUnknown_08259C10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #4
asrs r1, r5, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08015138 @ =0x0000FFF0
ands r7, r0
movs r5, #0xf
ands r5, r0
cmp r5, #0
bne _08015104
b _0801539A
_08015104:
ldr r6, [sp]
strh r7, [r6]
mov r1, r8
ldr r0, [r1]
ldr r2, _0801513C @ =0x000002A2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _08015140
mov r3, ip
strb r5, [r3]
ldr r0, [r1]
adds r0, r0, r2
movs r1, #7
strb r1, [r0]
b _0801539A
.align 2, 0
_08015128: .4byte gUnknown_020314E0
_0801512C: .4byte 0x000005B2
_08015130: .4byte 0x000002A3
_08015134: .4byte gUnknown_08259C10
_08015138: .4byte 0x0000FFF0
_0801513C: .4byte 0x000002A2
_08015140:
movs r0, #1
mov r6, ip
b _08015398
_08015146:
mov r0, ip
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
cmp r0, #0
beq _08015154
b _0801539A
_08015154:
movs r1, #0xc2
lsls r1, r1, #1
adds r0, r2, r1
ldrh r3, [r4]
ldrh r1, [r0]
adds r1, r3, r1
movs r6, #0xc3
lsls r6, r6, #1
adds r0, r2, r6
ldrh r2, [r4, #2]
ldrh r0, [r0]
adds r0, r2, r0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r6, r1, #0x10
lsrs r0, r6, #0x10
mov sb, r3
mov sl, r2
cmp r0, #0x3f
bhi _080151A2
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _080151A2
ldr r2, _08015288 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r6, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _0801528C @ =0x0000FFF0
ands r7, r0
movs r5, #0xf
ands r5, r0
cmp r5, #0
beq _080151A6
movs r0, #0
str r0, [sp, #4]
_080151A2:
cmp r5, #0
bne _08015246
_080151A6:
mov r1, r8
ldr r2, [r1]
movs r3, #0xc4
lsls r3, r3, #1
adds r0, r2, r3
ldrh r1, [r0]
add r1, sb
movs r6, #0xc5
lsls r6, r6, #1
adds r0, r2, r6
ldrh r0, [r0]
add r0, sl
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r3, r1, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x3f
bhi _080151F0
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _080151F0
ldr r2, _08015288 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _0801528C @ =0x0000FFF0
ands r7, r0
movs r5, #0xf
ands r5, r0
cmp r5, #0
beq _080151F4
movs r0, #1
str r0, [sp, #4]
_080151F0:
cmp r5, #0
bne _08015246
_080151F4:
mov r1, r8
ldr r2, [r1]
movs r3, #0xc6
lsls r3, r3, #1
adds r0, r2, r3
ldrh r1, [r0]
add r1, sb
movs r6, #0xc7
lsls r6, r6, #1
adds r0, r2, r6
ldrh r0, [r0]
add r0, sl
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r3, r1, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x3f
bhi _08015240
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _08015240
ldr r2, _08015288 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _0801528C @ =0x0000FFF0
ands r7, r0
movs r5, #0xf
ands r5, r0
cmp r5, #0
bne _0801523C
b _0801539A
_0801523C:
movs r0, #2
str r0, [sp, #4]
_08015240:
cmp r5, #0
bne _08015246
b _0801539A
_08015246:
mov r2, r8
ldr r1, [r2]
ldr r3, _08015290 @ =0x0000016F
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08015266
movs r6, #0xb8
lsls r6, r6, #1
adds r0, r1, r6
ldr r1, [sp, #4]
adds r0, r0, r1
movs r1, #0x6b
strb r1, [r0]
_08015266:
ldr r2, [sp]
strh r7, [r2]
mov r3, ip
strb r5, [r3]
mov r6, r8
ldr r0, [r6]
ldr r2, _08015294 @ =0x00000624
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08015280
b _0801539A
_08015280:
movs r0, #2
strb r0, [r1]
b _0801539A
.align 2, 0
_08015288: .4byte gUnknown_08252B10
_0801528C: .4byte 0x0000FFF0
_08015290: .4byte 0x0000016F
_08015294: .4byte 0x00000624
_08015298:
mov r3, ip
ldrb r1, [r3]
movs r5, #0xf
adds r0, r5, #0
ands r0, r1
cmp r0, #0
bne _0801539A
ldr r6, _080153AC @ =0x000002E5
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08015320
movs r1, #0xbb
lsls r1, r1, #2
adds r0, r2, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0x18
rsbs r1, r1, #0
subs r1, r1, r0
lsls r1, r1, #1
ldrh r3, [r4]
adds r1, r1, r3
ldr r6, _080153B0 @ =0xFFFFFDBC
adds r0, r6, #0
ldrh r2, [r4, #2]
adds r0, r0, r2
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
lsls r3, r1, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x47
bhi _08015320
lsls r1, r2, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x47
bhi _08015320
ldr r2, _080153B4 @ =gUnknown_08254B10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #3
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r1, [r0]
ldr r0, _080153B8 @ =0x0000FFF0
ands r0, r1
ldr r3, [sp]
strh r0, [r3]
adds r0, r5, #0
ands r0, r1
mov r6, ip
strb r0, [r6]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _08015320
mov r2, r8
ldr r0, [r2]
ldr r3, _080153BC @ =0x000002E2
adds r0, r0, r3
strb r1, [r0]
movs r0, #6
strb r0, [r6]
_08015320:
mov r6, r8
ldr r1, [r6]
ldr r2, _080153C0 @ =0x000002E6
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0801539A
ldr r3, _080153C4 @ =0x000002EE
adds r0, r1, r3
movs r6, #0
ldrsh r1, [r0, r6]
subs r1, #0xb4
lsls r1, r1, #1
ldrh r0, [r4]
adds r1, r1, r0
ldr r2, _080153B0 @ =0xFFFFFDBC
adds r0, r2, #0
ldrh r4, [r4, #2]
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r5, r1, #0x10
lsrs r0, r5, #0x10
cmp r0, #0x47
bhi _0801539A
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x47
bhi _0801539A
ldr r2, _080153C8 @ =gUnknown_08257390
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #3
asrs r1, r5, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r1, [r0]
ldr r0, _080153B8 @ =0x0000FFF0
ands r0, r1
ldr r3, [sp]
strh r0, [r3]
movs r0, #0xf
ands r0, r1
mov r6, ip
strb r0, [r6]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _0801539A
mov r1, r8
ldr r0, [r1]
ldr r2, _080153BC @ =0x000002E2
adds r0, r0, r2
movs r1, #2
strb r1, [r0]
movs r0, #6
_08015398:
strb r0, [r6]
_0801539A:
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
_080153AC: .4byte 0x000002E5
_080153B0: .4byte 0xFFFFFDBC
_080153B4: .4byte gUnknown_08254B10
_080153B8: .4byte 0x0000FFF0
_080153BC: .4byte 0x000002E2
_080153C0: .4byte 0x000002E6
_080153C4: .4byte 0x000002EE
_080153C8: .4byte gUnknown_08257390
thumb_func_start sub_153CC
sub_153CC: @ 0x080153CC
push {r4, r5, r6, r7, lr}
adds r7, r1, #0
adds r6, r2, #0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
cmp r0, #0xe
bls _080153E0
bl _08016082
_080153E0:
lsls r0, r0, #2
ldr r1, _080153EC @ =_080153F0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080153EC: .4byte _080153F0
_080153F0: @ jump table
.4byte _0801542C @ case 0
.4byte _08015494 @ case 1
.4byte _080154E0 @ case 2
.4byte _08015578 @ case 3
.4byte _08015620 @ case 4
.4byte _0801564C @ case 5
.4byte _0801567C @ case 6
.4byte _08015764 @ case 7
.4byte _08015AA4 @ case 8
.4byte _08015AF0 @ case 9
.4byte _08015CA0 @ case 10
.4byte _08015E4C @ case 11
.4byte _08015EB4 @ case 12
.4byte _08015F20 @ case 13
.4byte _08015F8C @ case 14
_0801542C:
ldr r0, _0801545C @ =gUnknown_020314E0
ldr r2, [r0]
ldrh r0, [r2, #0x26]
cmp r0, #0
beq _0801543A
bl _08016082
_0801543A:
ldr r1, _08015460 @ =0x0000132C
adds r0, r2, r1
ldr r3, [r0]
movs r4, #0x28
ldrsh r1, [r3, r4]
ldr r0, _08015464 @ =0x00000167
cmp r1, r0
ble _08015470
movs r1, #0x2a
ldrsh r0, [r3, r1]
cmp r0, #0xc7
ble _08015468
adds r1, r2, #0
adds r1, #0x25
movs r0, #1
b _08015476
.align 2, 0
_0801545C: .4byte gUnknown_020314E0
_08015460: .4byte 0x0000132C
_08015464: .4byte 0x00000167
_08015468:
adds r1, r2, #0
adds r1, #0x25
movs r0, #3
b _08015476
_08015470:
adds r1, r2, #0
adds r1, #0x25
movs r0, #2
_08015476:
strb r0, [r1]
bl sub_1A98C
ldr r0, _08015490 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x22
movs r1, #7
strb r1, [r0]
movs r0, #1
strh r0, [r7]
bl _08016082
.align 2, 0
_08015490: .4byte gUnknown_020314E0
_08015494:
ldr r3, _080154B8 @ =gUnknown_020314E0
ldr r2, [r3]
adds r0, r2, #0
adds r0, #0x24
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _080154C0
ldr r4, _080154BC @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
movs r1, #2
strb r1, [r0, #1]
ldr r0, [r3]
adds r0, #0x24
strb r1, [r0]
bl _08016082
.align 2, 0
_080154B8: .4byte gUnknown_020314E0
_080154BC: .4byte 0x0000132C
_080154C0:
cmp r1, #2
beq _080154C8
bl _08016082
_080154C8:
ldr r4, _080154DC @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
strb r1, [r0, #1]
ldr r0, [r3]
adds r0, #0x24
movs r1, #3
strb r1, [r0]
bl _08016082
.align 2, 0
_080154DC: .4byte 0x0000132C
_080154E0:
ldr r1, _08015508 @ =gUnknown_020314E0
ldr r2, [r1]
adds r0, r2, #0
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #2
bne _08015510
ldr r1, _0801550C @ =0x0000132C
adds r0, r2, r1
ldr r1, [r0]
movs r2, #0
movs r0, #3
strb r0, [r1, #1]
ldr r0, [r5]
adds r0, #0x24
strb r2, [r0]
b _08015524
.align 2, 0
_08015508: .4byte gUnknown_020314E0
_0801550C: .4byte 0x0000132C
_08015510:
cmp r0, #3
bne _08015524
ldr r3, _0801556C @ =0x0000132C
adds r0, r2, r3
ldr r0, [r0]
movs r1, #2
strb r1, [r0, #1]
ldr r0, [r5]
adds r0, #0x24
strb r1, [r0]
_08015524:
ldr r0, [r5]
ldr r4, _08015570 @ =0x000002FB
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
bne _08015536
movs r0, #7
strb r0, [r1]
_08015536:
ldr r0, [r5]
movs r1, #0xbc
lsls r1, r1, #2
adds r2, r0, r1
ldrb r1, [r2]
movs r3, #0xf0
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _0801554E
movs r0, #0
strb r0, [r2]
_0801554E:
ldr r0, [r5]
ldr r2, _08015574 @ =0x000001AB
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
ands r0, r3
cmp r0, #0
bne _08015562
bl _08016082
_08015562:
movs r0, #0
strb r0, [r1]
bl _08016082
.align 2, 0
_0801556C: .4byte 0x0000132C
_08015570: .4byte 0x000002FB
_08015574: .4byte 0x000001AB
_08015578:
ldr r1, _080155B8 @ =gUnknown_020314E0
ldr r2, [r1]
movs r3, #0xc0
lsls r3, r3, #3
adds r0, r2, r3
ldrh r3, [r0]
adds r5, r1, #0
cmp r3, #0
beq _0801558E
bl _08016082
_0801558E:
ldr r4, _080155BC @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
movs r1, #0x10
ldrsh r0, [r0, r1]
cmp r0, #0x83
ble _080155C4
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r2, #0x3c]
ldr r3, _080155C0 @ =0x0000070E
adds r1, r2, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x62
bgt _08015604
adds r0, r2, #1
strb r0, [r1]
b _08015604
.align 2, 0
_080155B8: .4byte gUnknown_020314E0
_080155BC: .4byte 0x0000132C
_080155C0: .4byte 0x0000070E
_080155C4:
cmp r0, #0x5b
ble _080155E4
movs r0, #0xfa
lsls r0, r0, #3
str r0, [r2, #0x3c]
movs r4, #0xba
lsls r4, r4, #1
adds r0, r2, r4
strh r3, [r0]
ldr r0, _080155E0 @ =0x0000016F
adds r1, r2, r0
movs r0, #1
strb r0, [r1]
b _08015604
.align 2, 0
_080155E0: .4byte 0x0000016F
_080155E4:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r2, #0x3c]
ldr r3, _0801561C @ =0x000002B2
adds r1, r2, r3
movs r2, #0
ldrsb r2, [r1, r2]
cmp r2, #0
bne _08015604
movs r0, #1
strb r0, [r1]
ldr r0, [r5]
movs r4, #0xac
lsls r4, r4, #2
adds r0, r0, r4
strh r2, [r0]
_08015604:
ldr r0, [r5]
movs r1, #0xc0
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #0x2d
strh r1, [r0]
movs r0, #0x76
bl m4aSongNumStart
bl _08016082
.align 2, 0
_0801561C: .4byte 0x000002B2
_08015620:
ldr r1, _08015640 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x20
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r0, [r1]
ldr r4, _08015644 @ =0x00000165
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r1]
ldr r1, _08015648 @ =0x00000732
adds r0, r0, r1
strb r3, [r0]
bl _08016082
.align 2, 0
_08015640: .4byte gUnknown_020314E0
_08015644: .4byte 0x00000165
_08015648: .4byte 0x00000732
_0801564C:
ldr r4, _08015670 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _08015674 @ =0x000005B2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08015662
bl _08016082
_08015662:
movs r0, #1
bl sub_46FD4
ldr r0, [r4]
ldr r3, _08015678 @ =0x0000029E
b _0801588E
.align 2, 0
_08015670: .4byte gUnknown_020314E0
_08015674: .4byte 0x000005B2
_08015678: .4byte 0x0000029E
_0801567C:
ldr r5, _080156C4 @ =gUnknown_020314E0
ldr r1, [r5]
ldr r4, _080156C8 @ =0x0000132C
mov ip, r4
adds r0, r1, r4
ldr r0, [r0]
movs r2, #0x10
ldrsh r0, [r0, r2]
cmp r0, #0x31
bgt _080156D4
ldr r3, _080156CC @ =0x000002FA
adds r0, r1, r3
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _08015734
movs r2, #1
strb r2, [r0]
ldr r0, [r5]
ldr r4, _080156D0 @ =0x000002FB
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r5]
adds r0, #0x23
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
movs r1, #0xb0
lsls r1, r1, #8
adds r0, r1, #0
strh r0, [r6]
strh r2, [r7]
b _08015734
.align 2, 0
_080156C4: .4byte gUnknown_020314E0
_080156C8: .4byte 0x0000132C
_080156CC: .4byte 0x000002FA
_080156D0: .4byte 0x000002FB
_080156D4:
ldr r2, _08015744 @ =0x000002FA
adds r0, r1, r2
movs r4, #0
ldrsb r4, [r0, r4]
cmp r4, #1
bne _08015734
movs r3, #0
movs r2, #2
strb r2, [r0]
ldr r0, [r5]
ldr r1, _08015748 @ =0x000002FB
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x23
strb r3, [r0]
ldr r0, [r5]
adds r0, #0x22
strb r2, [r0]
movs r2, #0xa0
lsls r2, r2, #8
adds r0, r2, #0
strh r0, [r6]
strh r4, [r7]
ldr r1, [r5]
mov r4, ip
adds r2, r1, r4
ldr r0, [r2]
strh r3, [r0, #0x30]
ldr r0, [r2]
strh r3, [r0, #0x32]
ldr r4, _0801574C @ =0x00001378
adds r0, r1, r4
ldr r2, _08015750 @ =0x00001334
adds r1, r1, r2
movs r2, #0x44
bl memcpy
ldr r0, [r5]
ldr r3, _08015754 @ =0x00001330
adds r1, r0, r3
adds r4, r0, r4
str r4, [r1]
ldr r4, _08015758 @ =0x00001328
adds r0, r0, r4
movs r1, #0x78
strh r1, [r0]
_08015734:
ldr r0, _0801575C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _08015760 @ =0x00000732
adds r0, r0, r1
movs r1, #0xe
strb r1, [r0]
bl _08016082
.align 2, 0
_08015744: .4byte 0x000002FA
_08015748: .4byte 0x000002FB
_0801574C: .4byte 0x00001378
_08015750: .4byte 0x00001334
_08015754: .4byte 0x00001330
_08015758: .4byte 0x00001328
_0801575C: .4byte gUnknown_020314E0
_08015760: .4byte 0x00000732
_08015764:
ldr r0, _080157A8 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _080157AC @ =0x0000132C
adds r1, r2, r3
ldr r1, [r1]
movs r4, #0x10
ldrsh r1, [r1, r4]
adds r5, r0, #0
cmp r1, #0x32
bgt _0801580C
ldr r1, _080157B0 @ =0x00000732
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
bne _080157EA
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _080157DC
ldr r3, _080157B4 @ =0x0000072E
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _080157DC
cmp r0, #0
bne _080157B8
movs r0, #0xfa
lsls r0, r0, #3
b _080157C6
.align 2, 0
_080157A8: .4byte gUnknown_020314E0
_080157AC: .4byte 0x0000132C
_080157B0: .4byte 0x00000732
_080157B4: .4byte 0x0000072E
_080157B8:
cmp r0, #1
bne _080157C4
ldr r0, _080157C0 @ =0x00001388
b _080157C6
.align 2, 0
_080157C0: .4byte 0x00001388
_080157C4:
ldr r0, _080157F8 @ =0x00002710
_080157C6:
str r0, [r2, #0x3c]
ldr r0, _080157FC @ =gUnknown_020314E0
ldr r1, [r0]
ldr r4, _08015800 @ =0x0000072E
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0x99
bl m4aSongNumStart
_080157DC:
ldr r0, _080157FC @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08015804 @ =0x000006BC
adds r1, r1, r2
movs r2, #1
strb r2, [r1]
adds r5, r0, #0
_080157EA:
ldr r0, [r5]
ldr r3, _08015808 @ =0x00000732
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
bl _08016082
.align 2, 0
_080157F8: .4byte 0x00002710
_080157FC: .4byte gUnknown_020314E0
_08015800: .4byte 0x0000072E
_08015804: .4byte 0x000006BC
_08015808: .4byte 0x00000732
_0801580C:
cmp r1, #0x64
bgt _080158A8
ldr r4, _0801584C @ =0x00000732
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _0801588A
movs r3, #0xca
lsls r3, r3, #1
adds r0, r2, r3
movs r2, #0xa
strb r2, [r0]
ldr r1, [r5]
subs r4, #7
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08015878
cmp r0, #0
bne _08015850
movs r0, #0xfa
lsls r0, r0, #3
str r0, [r1, #0x3c]
adds r1, r1, r3
movs r0, #1
strb r0, [r1]
b _0801586C
.align 2, 0
_0801584C: .4byte 0x00000732
_08015850:
cmp r0, #1
bne _08015864
ldr r0, _08015860 @ =0x00001388
str r0, [r1, #0x3c]
adds r1, r1, r3
movs r0, #5
strb r0, [r1]
b _0801586C
.align 2, 0
_08015860: .4byte 0x00001388
_08015864:
ldr r0, _08015898 @ =0x00002710
str r0, [r1, #0x3c]
adds r0, r1, r3
strb r2, [r0]
_0801586C:
ldr r1, [r5]
ldr r0, _0801589C @ =0x0000072B
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08015878:
ldr r0, [r5]
movs r1, #0xcb
lsls r1, r1, #1
adds r2, r0, r1
movs r1, #0
strh r1, [r2]
ldr r2, _080158A0 @ =0x0000072C
adds r0, r0, r2
strh r1, [r0]
_0801588A:
ldr r0, [r5]
ldr r3, _080158A4 @ =0x00000732
_0801588E:
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
bl _08016082
.align 2, 0
_08015898: .4byte 0x00002710
_0801589C: .4byte 0x0000072B
_080158A0: .4byte 0x0000072C
_080158A4: .4byte 0x00000732
_080158A8:
cmp r1, #0x7e
bgt _08015918
movs r1, #0xe3
lsls r1, r1, #3
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080158C2
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r2, #0x3c]
_080158C2:
ldr r0, [r5]
adds r0, r0, r1
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
ldr r1, _0801590C @ =0x00000732
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r1, [r5]
ldr r2, _08015910 @ =0x0000071B
adds r3, r1, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _080158E6
bl _08016082
_080158E6:
subs r2, #2
adds r0, r1, r2
adds r2, #1
adds r1, r1, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
cmp r0, #0
bne _080158FA
b _08016082
_080158FA:
strb r4, [r3]
ldr r0, [r5]
ldr r3, _08015914 @ =0x0000071C
adds r0, r0, r3
movs r1, #0x3c
strb r1, [r0]
ldr r1, [r5]
b _08015C7E
.align 2, 0
_0801590C: .4byte 0x00000732
_08015910: .4byte 0x0000071B
_08015914: .4byte 0x0000071C
_08015918:
cmp r1, #0x94
bgt _08015988
ldr r1, _08015978 @ =0x00000719
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08015930
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r2, #0x3c]
_08015930:
ldr r0, [r5]
adds r0, r0, r1
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
ldr r1, _0801597C @ =0x00000732
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
ldr r1, [r5]
ldr r2, _08015980 @ =0x0000071B
adds r3, r1, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _08015952
b _08016082
_08015952:
subs r2, #3
adds r0, r1, r2
adds r2, #2
adds r1, r1, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
cmp r0, #0
bne _08015966
b _08016082
_08015966:
strb r4, [r3]
ldr r0, [r5]
ldr r3, _08015984 @ =0x0000071C
adds r0, r0, r3
movs r1, #0x3c
strb r1, [r0]
ldr r1, [r5]
b _08015C7E
.align 2, 0
_08015978: .4byte 0x00000719
_0801597C: .4byte 0x00000732
_08015980: .4byte 0x0000071B
_08015984: .4byte 0x0000071C
_08015988:
cmp r1, #0xac
bgt _080159F8
ldr r1, _080159E8 @ =0x0000071A
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080159A0
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r2, #0x3c]
_080159A0:
ldr r0, [r5]
adds r0, r0, r1
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
ldr r1, _080159EC @ =0x00000732
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
ldr r1, [r5]
ldr r2, _080159F0 @ =0x0000071B
adds r3, r1, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _080159C2
b _08016082
_080159C2:
subs r2, #3
adds r0, r1, r2
adds r2, #1
adds r1, r1, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
cmp r0, #0
bne _080159D6
b _08016082
_080159D6:
strb r4, [r3]
ldr r0, [r5]
ldr r3, _080159F4 @ =0x0000071C
adds r0, r0, r3
movs r1, #0x3c
strb r1, [r0]
ldr r1, [r5]
b _08015C7E
.align 2, 0
_080159E8: .4byte 0x0000071A
_080159EC: .4byte 0x00000732
_080159F0: .4byte 0x0000071B
_080159F4: .4byte 0x0000071C
_080159F8:
ldr r4, _08015A28 @ =0x00000732
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bne _08015A78
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _08015A6A
ldr r1, _08015A2C @ =0x0000072F
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08015A6A
cmp r0, #0
bne _08015A30
movs r0, #0xfa
lsls r0, r0, #3
b _08015A3E
.align 2, 0
_08015A28: .4byte 0x00000732
_08015A2C: .4byte 0x0000072F
_08015A30:
cmp r0, #1
bne _08015A3C
ldr r0, _08015A38 @ =0x00001388
b _08015A3E
.align 2, 0
_08015A38: .4byte 0x00001388
_08015A3C:
ldr r0, _08015A84 @ =0x00002710
_08015A3E:
str r0, [r2, #0x3c]
ldr r5, _08015A88 @ =gUnknown_020314E0
ldr r1, [r5]
ldr r4, _08015A8C @ =0x0000072F
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, _08015A90 @ =gMPlayInfo_SE1
ldr r1, _08015A94 @ =gUnknown_0869FC0C
bl MPlayStart
ldr r1, [r5]
adds r4, r1, r4
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #1
ble _08015A6A
ldr r2, _08015A98 @ =0x00000731
adds r1, r1, r2
movs r0, #1
strb r0, [r1]
_08015A6A:
ldr r0, _08015A88 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _08015A9C @ =0x000006BC
adds r1, r1, r3
movs r2, #2
strb r2, [r1]
adds r5, r0, #0
_08015A78:
ldr r0, [r5]
ldr r4, _08015AA0 @ =0x00000732
adds r0, r0, r4
movs r1, #6
strb r1, [r0]
b _08016082
.align 2, 0
_08015A84: .4byte 0x00002710
_08015A88: .4byte gUnknown_020314E0
_08015A8C: .4byte 0x0000072F
_08015A90: .4byte gMPlayInfo_SE1
_08015A94: .4byte gUnknown_0869FC0C
_08015A98: .4byte 0x00000731
_08015A9C: .4byte 0x000006BC
_08015AA0: .4byte 0x00000732
_08015AA4:
ldr r0, _08015AC0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08015AC4 @ =0x0000132C
adds r0, r1, r2
ldr r0, [r0]
movs r3, #0x10
ldrsh r0, [r0, r3]
cmp r0, #0x32
bgt _08015ACC
ldr r4, _08015AC8 @ =0x00000732
adds r1, r1, r4
movs r0, #8
strb r0, [r1]
b _08016082
.align 2, 0
_08015AC0: .4byte gUnknown_020314E0
_08015AC4: .4byte 0x0000132C
_08015AC8: .4byte 0x00000732
_08015ACC:
cmp r0, #0x64
bgt _08015AE0
ldr r0, _08015ADC @ =0x00000732
adds r1, r1, r0
movs r0, #7
strb r0, [r1]
b _08016082
.align 2, 0
_08015ADC: .4byte 0x00000732
_08015AE0:
ldr r2, _08015AEC @ =0x00000732
adds r1, r1, r2
movs r0, #9
strb r0, [r1]
b _08016082
.align 2, 0
_08015AEC: .4byte 0x00000732
_08015AF0:
ldr r4, _08015B48 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r3, _08015B4C @ =0x0000132C
adds r0, r1, r3
ldr r0, [r0]
movs r2, #0x10
ldrsh r0, [r0, r2]
cmp r0, #0x2e
bgt _08015B60
ldr r3, _08015B50 @ =0x00000732
adds r0, r1, r3
movs r1, #0xa
strb r1, [r0]
ldr r1, [r4]
movs r0, #0xe2
lsls r0, r0, #3
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08015B1C
b _08016082
_08015B1C:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r1, _08015B54 @ =0x00000714
adds r5, r3, r1
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08015B36
b _08016082
_08015B36:
ldr r2, _08015B58 @ =0x00000711
adds r0, r3, r2
adds r2, #1
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08015B5C @ =0x00000713
b _08015C64
.align 2, 0
_08015B48: .4byte gUnknown_020314E0
_08015B4C: .4byte 0x0000132C
_08015B50: .4byte 0x00000732
_08015B54: .4byte 0x00000714
_08015B58: .4byte 0x00000711
_08015B5C: .4byte 0x00000713
_08015B60:
cmp r0, #0x78
bgt _08015BC0
ldr r2, _08015BAC @ =0x00000732
adds r0, r1, r2
movs r1, #0xb
strb r1, [r0]
ldr r1, [r4]
ldr r3, _08015BB0 @ =0x00000711
adds r2, r1, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08015B7C
b _08016082
_08015B7C:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r0, _08015BB4 @ =0x00000714
adds r5, r3, r0
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08015B96
b _08016082
_08015B96:
movs r1, #0xe2
lsls r1, r1, #3
adds r0, r3, r1
ldr r2, _08015BB8 @ =0x00000712
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08015BBC @ =0x00000713
b _08015C64
.align 2, 0
_08015BAC: .4byte 0x00000732
_08015BB0: .4byte 0x00000711
_08015BB4: .4byte 0x00000714
_08015BB8: .4byte 0x00000712
_08015BBC: .4byte 0x00000713
_08015BC0:
cmp r0, #0xc1
bgt _08015C20
ldr r2, _08015C0C @ =0x00000732
adds r0, r1, r2
movs r1, #0xc
strb r1, [r0]
ldr r1, [r4]
ldr r3, _08015C10 @ =0x00000712
adds r2, r1, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08015BDC
b _08016082
_08015BDC:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r0, _08015C14 @ =0x00000714
adds r5, r3, r0
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08015BF6
b _08016082
_08015BF6:
movs r1, #0xe2
lsls r1, r1, #3
adds r0, r3, r1
ldr r2, _08015C18 @ =0x00000711
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08015C1C @ =0x00000713
b _08015C64
.align 2, 0
_08015C0C: .4byte 0x00000732
_08015C10: .4byte 0x00000712
_08015C14: .4byte 0x00000714
_08015C18: .4byte 0x00000711
_08015C1C: .4byte 0x00000713
_08015C20:
ldr r2, _08015C88 @ =0x00000732
adds r0, r1, r2
movs r1, #0xd
strb r1, [r0]
ldr r1, [r4]
ldr r3, _08015C8C @ =0x00000713
adds r2, r1, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08015C38
b _08016082
_08015C38:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r0, _08015C90 @ =0x00000714
adds r5, r3, r0
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08015C52
b _08016082
_08015C52:
movs r1, #0xe2
lsls r1, r1, #3
adds r0, r3, r1
ldr r2, _08015C94 @ =0x00000711
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08015C98 @ =0x00000712
_08015C64:
adds r1, r3, r2
ldrb r1, [r1]
ands r0, r1
cmp r0, #0
bne _08015C70
b _08016082
_08015C70:
strb r6, [r5]
ldr r0, [r4]
ldr r3, _08015C9C @ =0x00000715
adds r0, r0, r3
movs r1, #0x7e
strb r1, [r0]
ldr r1, [r4]
_08015C7E:
movs r0, #0xfa
lsls r0, r0, #4
str r0, [r1, #0x3c]
b _08016082
.align 2, 0
_08015C88: .4byte 0x00000732
_08015C8C: .4byte 0x00000713
_08015C90: .4byte 0x00000714
_08015C94: .4byte 0x00000711
_08015C98: .4byte 0x00000712
_08015C9C: .4byte 0x00000715
_08015CA0:
ldr r1, _08015D18 @ =gUnknown_020314E0
ldr r2, [r1]
ldr r4, _08015D1C @ =0x000005B2
adds r0, r2, r4
movs r3, #0
ldrsb r3, [r0, r3]
adds r5, r1, #0
cmp r3, #0
beq _08015CB4
b _08015DE0
_08015CB4:
ldr r1, _08015D20 @ =0x0000132C
adds r0, r2, r1
ldr r0, [r0]
movs r4, #0x10
ldrsh r0, [r0, r4]
cmp r0, #0xaa
ble _08015D30
movs r1, #0xbc
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #2
bls _08015CD0
b _08016082
_08015CD0:
adds r0, r2, #0
adds r0, #0x23
strb r3, [r0]
ldr r0, [r5]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
movs r2, #0xb0
lsls r2, r2, #8
adds r0, r2, #0
strh r0, [r6]
movs r0, #1
strh r0, [r7]
ldr r1, [r5]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08015D0E
ldr r3, _08015D24 @ =0x000001AB
adds r1, r1, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08015D0E
movs r0, #3
strb r0, [r1]
ldr r0, [r5]
ldr r4, _08015D28 @ =0x000002F2
adds r0, r0, r4
movs r1, #5
strh r1, [r0]
_08015D0E:
ldr r1, [r5]
ldr r0, _08015D2C @ =0x0000C350
str r0, [r1, #0x3c]
b _08016082
.align 2, 0
_08015D18: .4byte gUnknown_020314E0
_08015D1C: .4byte 0x000005B2
_08015D20: .4byte 0x0000132C
_08015D24: .4byte 0x000001AB
_08015D28: .4byte 0x000002F2
_08015D2C: .4byte 0x0000C350
_08015D30:
ldr r4, _08015D88 @ =0x000002FB
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bgt _08015D58
adds r0, r2, #0
adds r0, #0x23
strb r3, [r0]
ldr r0, [r5]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
movs r1, #0xf8
lsls r1, r1, #8
adds r0, r1, #0
strh r0, [r6]
movs r0, #1
strh r0, [r7]
_08015D58:
ldr r0, [r5]
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bne _08015D68
movs r0, #6
strb r0, [r1]
_08015D68:
ldr r1, [r5]
ldr r2, _08015D8C @ =0x0000029F
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08015D7A
b _08016082
_08015D7A:
cmp r0, #1
bne _08015D94
ldr r3, _08015D90 @ =0x00000286
adds r1, r1, r3
movs r0, #0x5a
strh r0, [r1]
b _08015DB6
.align 2, 0
_08015D88: .4byte 0x000002FB
_08015D8C: .4byte 0x0000029F
_08015D90: .4byte 0x00000286
_08015D94:
movs r4, #0xbe
lsls r4, r4, #2
adds r0, r1, r4
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
ldr r2, _08015DD0 @ =0x0000071B
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
ldr r3, _08015DD4 @ =0x0000071C
adds r0, r0, r3
movs r1, #0x3c
strb r1, [r0]
movs r0, #0xd8
bl m4aSongNumStart
_08015DB6:
ldr r2, _08015DD8 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r4, _08015DDC @ =0x0000029F
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
movs r1, #0xa8
lsls r1, r1, #2
adds r0, r0, r1
subs r1, #0x48
strh r1, [r0]
b _08016082
.align 2, 0
_08015DD0: .4byte 0x0000071B
_08015DD4: .4byte 0x0000071C
_08015DD8: .4byte gUnknown_020314E0
_08015DDC: .4byte 0x0000029F
_08015DE0:
movs r3, #0xe2
lsls r3, r3, #1
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0
beq _08015DEE
b _08016082
_08015DEE:
ldr r4, _08015E04 @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
movs r1, #0x10
ldrsh r0, [r0, r1]
cmp r0, #0x78
bgt _08015E08
subs r3, #2
adds r1, r2, r3
movs r0, #1
b _08015E10
.align 2, 0
_08015E04: .4byte 0x0000132C
_08015E08:
movs r4, #0xe1
lsls r4, r4, #1
adds r1, r2, r4
movs r0, #2
_08015E10:
strb r0, [r1]
ldr r2, [r5]
movs r0, #0xf1
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _08015E40
adds r1, r0, #0
movs r3, #0xe1
lsls r3, r3, #1
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
cmp r1, r0
beq _08015E38
b _08016082
_08015E38:
movs r4, #0xe2
lsls r4, r4, #1
adds r1, r2, r4
b _08015E46
_08015E40:
movs r0, #0xe2
lsls r0, r0, #1
adds r1, r2, r0
_08015E46:
movs r0, #0x78
strh r0, [r1]
b _08016082
_08015E4C:
ldr r6, _08015EA4 @ =gUnknown_020314E0
ldr r1, [r6]
ldr r5, _08015EA8 @ =0x00000616
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0
beq _08015E5C
b _08016082
_08015E5C:
ldr r2, _08015EAC @ =0x0000132C
adds r0, r1, r2
ldr r0, [r0]
ldrh r2, [r0, #0x32]
ldr r3, _08015EB0 @ =0x00000614
adds r0, r1, r3
strh r2, [r0]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _08015E78
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
_08015E78:
movs r0, #0xe3
lsls r0, r0, #1
adds r4, r1, r0
lsls r0, r2, #0x10
asrs r0, r0, #0x10
movs r1, #3
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
strh r1, [r4]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa8
ble _08015E9A
movs r0, #0xa8
strh r0, [r4]
_08015E9A:
ldr r0, [r6]
adds r0, r0, r5
movs r1, #0x14
strh r1, [r0]
b _08016082
.align 2, 0
_08015EA4: .4byte gUnknown_020314E0
_08015EA8: .4byte 0x00000616
_08015EAC: .4byte 0x0000132C
_08015EB0: .4byte 0x00000614
_08015EB4:
ldr r3, _08015F14 @ =gUnknown_020314E0
ldr r1, [r3]
movs r4, #0xb6
lsls r4, r4, #2
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08015ECA
b _08016082
_08015ECA:
ldrh r0, [r1, #0x26]
cmp r0, #0
beq _08015ED2
b _08016082
_08015ED2:
ldr r2, _08015F18 @ =0x000002DA
adds r1, r1, r2
ldrb r0, [r1]
movs r2, #0
ldrsb r2, [r1, r2]
cmp r2, #0
beq _08015EE2
b _08016082
_08015EE2:
adds r0, #1
strb r0, [r1]
ldr r0, [r3]
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r3]
adds r0, #0x23
strb r2, [r0]
ldr r0, [r3]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
movs r4, #0xd0
lsls r4, r4, #8
adds r0, r4, #0
strh r0, [r6]
movs r0, #1
strh r0, [r7]
ldr r1, [r3]
ldr r0, _08015F1C @ =0x00001388
str r0, [r1, #0x3c]
movs r0, #0xb7
bl m4aSongNumStart
b _08016020
.align 2, 0
_08015F14: .4byte gUnknown_020314E0
_08015F18: .4byte 0x000002DA
_08015F1C: .4byte 0x00001388
_08015F20:
ldr r4, _08015F80 @ =gUnknown_020314E0
ldr r1, [r4]
movs r5, #0xb6
lsls r5, r5, #2
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08015F36
b _08016082
_08015F36:
ldrh r2, [r1, #0x26]
cmp r2, #0
beq _08015F3E
b _08016082
_08015F3E:
ldr r0, _08015F84 @ =0x000002DA
adds r1, r1, r0
ldrb r0, [r1]
movs r3, #0
ldrsb r3, [r1, r3]
cmp r3, #1
beq _08015F4E
b _08016082
_08015F4E:
adds r0, #1
strb r0, [r1]
ldr r0, [r4]
adds r0, r0, r5
strb r2, [r0]
ldr r0, [r4]
adds r0, #0x23
strb r2, [r0]
ldr r0, [r4]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
movs r1, #0xcc
lsls r1, r1, #8
adds r0, r1, #0
strh r0, [r6]
strh r3, [r7]
movs r0, #0xb7
bl m4aSongNumStart
ldr r1, [r4]
ldr r0, _08015F88 @ =0x00001388
str r0, [r1, #0x3c]
b _08016020
.align 2, 0
_08015F80: .4byte gUnknown_020314E0
_08015F84: .4byte 0x000002DA
_08015F88: .4byte 0x00001388
_08015F8C:
ldr r0, _08015FE8 @ =gUnknown_020314E0
ldr r3, [r0]
movs r2, #0x13
ldrsb r2, [r3, r2]
adds r5, r0, #0
cmp r2, #2
ble _0801602C
cmp r2, #5
beq _0801602C
movs r2, #0xb8
lsls r2, r2, #2
adds r0, r3, r2
ldrh r2, [r0]
cmp r2, #0
bne _08016082
ldr r4, _08015FEC @ =0x000002DA
adds r0, r3, r4
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #2
bne _08015FF4
adds r0, r3, #0
adds r0, #0x23
strb r2, [r0]
ldr r0, [r5]
adds r0, #0x22
strb r1, [r0]
movs r1, #0xc8
lsls r1, r1, #8
adds r0, r1, #0
strh r0, [r6]
movs r0, #1
strh r0, [r7]
ldr r1, [r5]
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0xb7
bl m4aSongNumStart
ldr r1, [r5]
ldr r0, _08015FF0 @ =0x00001388
str r0, [r1, #0x3c]
b _08016020
.align 2, 0
_08015FE8: .4byte gUnknown_020314E0
_08015FEC: .4byte 0x000002DA
_08015FF0: .4byte 0x00001388
_08015FF4:
cmp r1, #3
bne _08016082
adds r0, r3, #0
adds r0, #0x23
strb r2, [r0]
ldr r0, [r5]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
movs r2, #0xc8
lsls r2, r2, #8
adds r0, r2, #0
strh r0, [r6]
movs r4, #1
strh r4, [r7]
movs r0, #0xb7
bl m4aSongNumStart
ldr r0, [r5]
ldr r3, _08016028 @ =0x000002D9
adds r0, r0, r3
strb r4, [r0]
_08016020:
movs r0, #7
bl sub_11B0
b _08016082
.align 2, 0
_08016028: .4byte 0x000002D9
_0801602C:
ldr r1, [r5]
movs r4, #0xb6
lsls r4, r4, #2
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08016082
ldr r0, _08016088 @ =0x000002DA
adds r2, r1, r0
ldrb r0, [r2]
movs r3, #0
ldrsb r3, [r2, r3]
cmp r3, #2
bne _08016082
adds r0, #1
movs r1, #0
strb r0, [r2]
ldr r0, [r5]
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x23
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x22
strb r3, [r0]
movs r1, #0xc8
lsls r1, r1, #8
adds r0, r1, #0
strh r0, [r6]
movs r0, #1
strh r0, [r7]
movs r0, #0xb7
bl m4aSongNumStart
ldr r1, [r5]
ldr r0, _0801608C @ =0x00001388
str r0, [r1, #0x3c]
movs r0, #7
bl sub_11B0
_08016082:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08016088: .4byte 0x000002DA
_0801608C: .4byte 0x00001388
thumb_func_start sub_16090
sub_16090: @ 0x08016090
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
mov r8, r1
add r2, sp, #4
movs r1, #0
strh r1, [r2]
ldr r0, _08016190 @ =gUnknown_020314E0
ldr r0, [r0]
mov sl, r0
ldr r0, _08016194 @ =0x0000132C
add r0, sl
ldr r0, [r0]
strh r1, [r0, #4]
mov r1, sb
movs r3, #0
ldrsh r4, [r1, r3]
adds r0, r4, #0
cmp r4, #0
bge _080160C2
adds r0, r4, #7
_080160C2:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r7, _08016198 @ =0xFFFF0000
mov ip, r7
mov r2, ip
ands r5, r2
orrs r5, r0
mov r7, sb
movs r0, #2
ldrsh r3, [r7, r0]
adds r0, r3, #0
cmp r3, #0
bge _080160E0
adds r0, r3, #7
_080160E0:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _0801619C @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _0801610C
adds r2, #0x3f
_0801610C:
asrs r2, r2, #6
mov r0, sl
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r7, _080161A0 @ =gUnknown_02031520
mov ip, r7
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r0, [r0]
mov r4, sp
adds r4, #2
strb r0, [r4]
mov r0, sb
mov r1, sp
adds r2, r4, #0
bl sub_162B8
ldrb r0, [r4]
movs r1, #0xf
ands r1, r0
lsrs r6, r0, #4
cmp r1, #3
bgt _080161A4
cmp r1, #2
bge _0801626C
cmp r1, #1
beq _080161A8
b _08016290
.align 2, 0
_08016190: .4byte gUnknown_020314E0
_08016194: .4byte 0x0000132C
_08016198: .4byte 0xFFFF0000
_0801619C: .4byte 0x0000FFFF
_080161A0: .4byte gUnknown_02031520
_080161A4:
cmp r1, #4
bne _08016290
_080161A8:
ldr r2, _08016208 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r5, #1
strb r5, [r0]
mov r0, sp
ldrh r0, [r0]
mov r1, r8
strh r0, [r1]
ldr r3, _0801620C @ =0xFFFFC010
adds r0, r0, r3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bhi _08016260
ldr r0, [r2]
ldr r4, _08016210 @ =0x0000132C
adds r3, r0, r4
ldr r2, [r3]
movs r7, #0x10
ldrsh r1, [r2, r7]
ldr r4, _08016214 @ =gUnknown_02031520
movs r7, #0x26
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
blt _080161F4
movs r0, #0x12
ldrsh r1, [r2, r0]
movs r7, #0x28
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
bge _08016260
_080161F4:
movs r1, #6
ldrsh r0, [r2, r1]
cmp r0, #0
ble _08016218
movs r2, #0xf8
lsls r2, r2, #6
adds r0, r2, #0
mov r3, r8
strh r0, [r3]
b _08016260
.align 2, 0
_08016208: .4byte gUnknown_020314E0
_0801620C: .4byte 0xFFFFC010
_08016210: .4byte 0x0000132C
_08016214: .4byte gUnknown_02031520
_08016218:
cmp r0, #0
beq _08016228
movs r4, #0x82
lsls r4, r4, #7
adds r0, r4, #0
mov r7, r8
strh r0, [r7]
b _08016260
_08016228:
ldr r0, _08016248 @ =gMain
ldr r0, [r0, #0x4c]
ands r0, r5
cmp r0, #0
beq _0801624C
movs r0, #0x28
strh r0, [r2, #4]
ldr r0, [r3]
strh r5, [r0, #6]
movs r1, #0xf8
lsls r1, r1, #6
adds r0, r1, #0
mov r2, r8
strh r0, [r2]
b _08016260
.align 2, 0
_08016248: .4byte gMain
_0801624C:
ldr r0, _08016268 @ =0x0000FFD8
strh r0, [r2, #4]
ldr r1, [r3]
adds r0, #0x27
strh r0, [r1, #6]
movs r3, #0x82
lsls r3, r3, #7
adds r0, r3, #0
mov r4, r8
strh r0, [r4]
_08016260:
movs r0, #1
mov r7, sp
strh r0, [r7, #4]
b _08016290
.align 2, 0
_08016268: .4byte 0x0000FFD8
_0801626C:
ldr r2, _080162B0 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _080162B4 @ =0x0000FFF0
ands r0, r1
mov r3, r8
strh r0, [r3]
movs r0, #1
mov r4, sp
strh r0, [r4, #4]
_08016290:
adds r0, r6, #0
add r1, sp, #4
mov r2, r8
bl sub_1642C
mov r7, sp
movs r1, #4
ldrsh r0, [r7, r1]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_080162B0: .4byte gUnknown_020314E0
_080162B4: .4byte 0x0000FFF0
thumb_func_start sub_162B8
sub_162B8: @ 0x080162B8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
adds r4, r0, #0
str r1, [sp]
str r2, [sp, #4]
movs r7, #0
movs r6, #0
movs r0, #0
str r0, [sp, #8]
ldr r0, _08016418 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0801641C @ =0x000005B2
adds r1, r2, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov sl, r0
cmp r1, #0
beq _080162E8
b _08016408
_080162E8:
adds r0, r2, #0
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov ip, r0
cmp r0, #0
beq _080162FA
b _08016408
_080162FA:
movs r5, #0xc2
lsls r5, r5, #1
adds r0, r2, r5
ldrh r3, [r4]
ldrh r1, [r0]
adds r1, r3, r1
adds r5, #2
adds r0, r2, r5
ldrh r2, [r4, #2]
ldrh r0, [r0]
adds r0, r2, r0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r5, r1, #0x10
lsrs r0, r5, #0x10
mov r8, r3
mov sb, r2
cmp r0, #0x3f
bhi _08016342
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _08016342
ldr r2, _08016420 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r5, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08016424 @ =0x0000FFF0
ands r7, r0
movs r6, #0xf
ands r6, r0
mov r0, ip
str r0, [sp, #8]
_08016342:
cmp r6, #0
bne _080163DA
mov r1, sl
ldr r2, [r1]
movs r3, #0xc4
lsls r3, r3, #1
adds r0, r2, r3
ldrh r1, [r0]
add r1, r8
movs r5, #0xc5
lsls r5, r5, #1
adds r0, r2, r5
ldrh r0, [r0]
add r0, sb
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r3, r1, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x3f
bhi _0801638C
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _0801638C
ldr r2, _08016420 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08016424 @ =0x0000FFF0
ands r7, r0
movs r6, #0xf
ands r6, r0
movs r0, #1
str r0, [sp, #8]
_0801638C:
cmp r6, #0
bne _080163DA
mov r1, sl
ldr r2, [r1]
movs r3, #0xc6
lsls r3, r3, #1
adds r0, r2, r3
ldrh r1, [r0]
add r1, r8
movs r5, #0xc7
lsls r5, r5, #1
adds r0, r2, r5
ldrh r0, [r0]
add r0, sb
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r3, r1, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x3f
bhi _080163D6
lsls r1, r4, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _080163D6
ldr r2, _08016420 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08016424 @ =0x0000FFF0
ands r7, r0
movs r6, #0xf
ands r6, r0
movs r0, #2
str r0, [sp, #8]
_080163D6:
cmp r6, #0
beq _08016408
_080163DA:
mov r1, sl
ldr r0, [r1]
movs r2, #0xb8
lsls r2, r2, #1
adds r0, r0, r2
ldr r3, [sp, #8]
adds r0, r0, r3
movs r1, #6
strb r1, [r0]
ldr r5, [sp]
strh r7, [r5]
ldr r0, [sp, #4]
strb r6, [r0]
mov r1, sl
ldr r0, [r1]
ldr r2, _08016428 @ =0x00000624
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _08016408
movs r0, #2
strb r0, [r1]
_08016408:
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08016418: .4byte gUnknown_020314E0
_0801641C: .4byte 0x000005B2
_08016420: .4byte gUnknown_08252B10
_08016424: .4byte 0x0000FFF0
_08016428: .4byte 0x00000624
thumb_func_start sub_1642C
sub_1642C: @ 0x0801642C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r1, #0
adds r5, r2, #0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
cmp r0, #0xe
bls _08016446
bl _080171B8
_08016446:
lsls r0, r0, #2
ldr r1, _08016450 @ =_08016454
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08016450: .4byte _08016454
_08016454: @ jump table
.4byte _08016490 @ case 0
.4byte _080164D8 @ case 1
.4byte _08016530 @ case 2
.4byte _08016580 @ case 3
.4byte _08016794 @ case 4
.4byte _080167CC @ case 5
.4byte _0801686C @ case 6
.4byte _080168B4 @ case 7
.4byte _08016C28 @ case 8
.4byte _08016C80 @ case 9
.4byte _08016E28 @ case 10
.4byte _08016EA2 @ case 11
.4byte _08016F08 @ case 12
.4byte _08017094 @ case 13
.4byte _0801716C @ case 14
_08016490:
ldr r0, _080164B4 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #0x26]
cmp r0, #0
beq _0801649E
bl _080171B8
_0801649E:
ldr r2, _080164B8 @ =0x0000132C
adds r0, r1, r2
ldr r0, [r0]
movs r3, #0x28
ldrsh r0, [r0, r3]
cmp r0, #0xc7
ble _080164BC
adds r1, #0x25
movs r0, #1
b _080164C0
.align 2, 0
_080164B4: .4byte gUnknown_020314E0
_080164B8: .4byte 0x0000132C
_080164BC:
adds r1, #0x25
movs r0, #3
_080164C0:
strb r0, [r1]
bl sub_32914
ldr r0, _080164D4 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x22
movs r1, #7
strb r1, [r0]
b _080168A4
.align 2, 0
_080164D4: .4byte gUnknown_020314E0
_080164D8:
ldr r3, _080164F0 @ =gUnknown_020314E0
ldr r2, [r3]
adds r0, r2, #0
adds r0, #0x24
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _080164F8
ldr r4, _080164F4 @ =0x0000132C
adds r0, r2, r4
b _0801656C
.align 2, 0
_080164F0: .4byte gUnknown_020314E0
_080164F4: .4byte 0x0000132C
_080164F8:
cmp r1, #2
bne _08016514
ldr r5, _08016510 @ =0x0000132C
adds r0, r2, r5
ldr r0, [r0]
strb r1, [r0, #1]
ldr r0, [r3]
adds r0, #0x24
movs r1, #3
strb r1, [r0]
bl _080171B8
.align 2, 0
_08016510: .4byte 0x0000132C
_08016514:
cmp r1, #3
beq _0801651C
bl _080171B8
_0801651C:
ldr r1, _0801652C @ =0x0000132C
adds r0, r2, r1
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #1]
bl _080171B8
.align 2, 0
_0801652C: .4byte 0x0000132C
_08016530:
ldr r3, _08016558 @ =gUnknown_020314E0
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08016560
ldr r2, _0801655C @ =0x0000132C
adds r0, r1, r2
ldr r1, [r0]
movs r2, #0
movs r0, #3
strb r0, [r1, #1]
ldr r0, [r3]
adds r0, #0x24
strb r2, [r0]
bl _080171B8
.align 2, 0
_08016558: .4byte gUnknown_020314E0
_0801655C: .4byte 0x0000132C
_08016560:
cmp r0, #3
beq _08016568
bl _080171B8
_08016568:
ldr r4, _0801657C @ =0x0000132C
adds r0, r1, r4
_0801656C:
ldr r0, [r0]
movs r1, #2
strb r1, [r0, #1]
ldr r0, [r3]
adds r0, #0x24
strb r1, [r0]
bl _080171B8
.align 2, 0
_0801657C: .4byte 0x0000132C
_08016580:
ldr r5, _080165D4 @ =gUnknown_020314E0
ldr r3, [r5]
movs r1, #0xc0
lsls r1, r1, #3
adds r0, r3, r1
ldrh r4, [r0]
cmp r4, #0
beq _08016594
bl _080171B8
_08016594:
ldr r6, _080165D8 @ =0x0000132C
adds r0, r3, r6
ldr r2, [r0]
movs r0, #0x12
ldrsh r1, [r2, r0]
ldr r0, _080165DC @ =0x00000103
cmp r1, r0
ble _080165A6
b _08016718
_080165A6:
movs r1, #0x10
ldrsh r0, [r2, r1]
cmp r0, #0x49
bgt _08016624
movs r0, #0x13
ldrsb r0, [r3, r0]
cmp r0, #2
ble _080165B8
b _0801676E
_080165B8:
ldr r2, _080165E0 @ =0x0000036B
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _080165C8
b _0801676E
_080165C8:
cmp r0, #1
bne _080165E8
ldr r4, _080165E4 @ =0x0000036D
adds r1, r3, r4
movs r0, #6
b _080165EE
.align 2, 0
_080165D4: .4byte gUnknown_020314E0
_080165D8: .4byte 0x0000132C
_080165DC: .4byte 0x00000103
_080165E0: .4byte 0x0000036B
_080165E4: .4byte 0x0000036D
_080165E8:
ldr r5, _08016614 @ =0x0000036D
adds r1, r3, r5
movs r0, #4
_080165EE:
strb r0, [r1]
ldr r5, _08016618 @ =gUnknown_020314E0
ldr r1, [r5]
movs r0, #0xdc
lsls r0, r0, #2
adds r2, r1, r0
movs r0, #0
strh r0, [r2]
ldr r2, _0801661C @ =0x0000036B
adds r1, r1, r2
movs r0, #1
strb r0, [r1]
movs r0, #7
bl sub_11B0
ldr r1, [r5]
ldr r3, _08016620 @ =0x0000132C
adds r4, r1, r3
b _0801667E
.align 2, 0
_08016614: .4byte 0x0000036D
_08016618: .4byte gUnknown_020314E0
_0801661C: .4byte 0x0000036B
_08016620: .4byte 0x0000132C
_08016624:
cmp r0, #0x73
bgt _080166DC
movs r0, #0x13
ldrsb r0, [r3, r0]
cmp r0, #2
ble _08016632
b _0801676E
_08016632:
ldr r5, _08016650 @ =0x0000036A
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _08016642
b _0801676E
_08016642:
cmp r0, #1
bne _08016654
movs r0, #0xdb
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #6
b _0801665C
.align 2, 0
_08016650: .4byte 0x0000036A
_08016654:
movs r2, #0xdb
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #4
_0801665C:
strb r0, [r1]
ldr r5, _080166BC @ =gUnknown_020314E0
ldr r1, [r5]
ldr r3, _080166C0 @ =0x0000036E
adds r2, r1, r3
movs r0, #0
strh r0, [r2]
ldr r4, _080166C4 @ =0x0000036A
adds r1, r1, r4
movs r0, #1
strb r0, [r1]
movs r0, #7
bl sub_11B0
ldr r1, [r5]
ldr r0, _080166C8 @ =0x0000132C
adds r4, r1, r0
_0801667E:
ldr r3, [r4]
movs r2, #0x30
ldrsh r0, [r3, r2]
lsrs r2, r0, #0x1f
adds r0, r0, r2
asrs r0, r0, #1
strh r0, [r3, #0x30]
ldr r3, [r4]
movs r4, #0x32
ldrsh r0, [r3, r4]
lsrs r2, r0, #0x1f
adds r0, r0, r2
asrs r0, r0, #1
strh r0, [r3, #0x32]
ldr r4, _080166CC @ =0x00001378
adds r0, r1, r4
ldr r2, _080166D0 @ =0x00001334
adds r1, r1, r2
movs r2, #0x44
bl memcpy
ldr r0, [r5]
ldr r3, _080166D4 @ =0x00001330
adds r1, r0, r3
adds r4, r0, r4
str r4, [r1]
ldr r4, _080166D8 @ =0x00001328
adds r0, r0, r4
movs r1, #0x19
strh r1, [r0]
b _0801676E
.align 2, 0
_080166BC: .4byte gUnknown_020314E0
_080166C0: .4byte 0x0000036E
_080166C4: .4byte 0x0000036A
_080166C8: .4byte 0x0000132C
_080166CC: .4byte 0x00001378
_080166D0: .4byte 0x00001334
_080166D4: .4byte 0x00001330
_080166D8: .4byte 0x00001328
_080166DC:
movs r0, #0xc3
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
ldr r2, _0801670C @ =0x00000306
adds r1, r3, r2
movs r0, #1
strb r0, [r1]
ldr r0, [r5]
ldr r3, _08016710 @ =0x0000070E
adds r1, r0, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x62
bgt _08016704
adds r0, r2, #1
strb r0, [r1]
_08016704:
ldr r1, [r5]
ldr r0, _08016714 @ =0x00001388
str r0, [r1, #0x3c]
b _0801676E
.align 2, 0
_0801670C: .4byte 0x00000306
_08016710: .4byte 0x0000070E
_08016714: .4byte 0x00001388
_08016718:
movs r1, #0x10
ldrsh r0, [r2, r1]
cmp r0, #0x6d
bgt _0801673E
movs r2, #0xca
lsls r2, r2, #2
adds r1, r3, r2
movs r0, #1
strb r0, [r1]
ldr r0, [r5]
adds r0, r0, r6
ldr r2, [r0]
movs r3, #0x32
ldrsh r0, [r2, r3]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r2, #0x32]
b _0801676E
_0801673E:
movs r5, #0xde
lsls r5, r5, #2
adds r1, r3, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne _08016752
movs r0, #1
strb r0, [r1]
b _08016754
_08016752:
strb r4, [r1]
_08016754:
ldr r0, _08016788 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r1, _0801678C @ =0x0000132C
adds r0, r3, r1
ldr r2, [r0]
movs r4, #0x32
ldrsh r0, [r2, r4]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r2, #0x32]
ldr r0, _08016790 @ =0x00000BB8
str r0, [r3, #0x3c]
_0801676E:
ldr r0, _08016788 @ =gUnknown_020314E0
ldr r0, [r0]
movs r5, #0xc0
lsls r5, r5, #3
adds r0, r0, r5
movs r1, #0x2d
strh r1, [r0]
movs r0, #0x76
bl m4aSongNumStart
bl _080171B8
.align 2, 0
_08016788: .4byte gUnknown_020314E0
_0801678C: .4byte 0x0000132C
_08016790: .4byte 0x00000BB8
_08016794:
ldr r1, _080167BC @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080167C0 @ =0x00000165
adds r0, r0, r2
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r0, [r1]
adds r0, #0x20
strb r2, [r0]
ldr r0, [r1]
ldr r4, _080167C4 @ =0x00000732
adds r0, r0, r4
strb r3, [r0]
ldr r0, [r1]
ldr r5, _080167C8 @ =0x00000342
adds r0, r0, r5
strb r3, [r0]
bl _080171B8
.align 2, 0
_080167BC: .4byte gUnknown_020314E0
_080167C0: .4byte 0x00000165
_080167C4: .4byte 0x00000732
_080167C8: .4byte 0x00000342
_080167CC:
ldr r0, _08016850 @ =gUnknown_020314E0
mov sb, r0
ldr r1, [r0]
ldr r2, _08016854 @ =0x0000132C
mov r8, r2
adds r0, r1, r2
ldr r2, [r0]
movs r3, #0x10
ldrsh r0, [r2, r3]
cmp r0, #0x77
bgt _0801685C
movs r4, #0x32
ldrsh r0, [r2, r4]
cmp r0, #0
bgt _080167EE
bl _080171B8
_080167EE:
movs r6, #0xda
lsls r6, r6, #8
movs r5, #0x30
ldrsh r0, [r2, r5]
adds r1, r0, #0
muls r1, r0, r1
movs r3, #0x32
ldrsh r0, [r2, r3]
adds r4, r0, #0
muls r4, r0, r4
adds r0, r4, #0
adds r7, r1, r0
lsls r0, r7, #2
bl Sqrt
lsls r0, r0, #0x10
lsrs r7, r0, #0x11
adds r0, r6, #0
bl sub_C74
mov r5, sb
ldr r1, [r5]
add r1, r8
ldr r4, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r7, r0
ldr r5, _08016858 @ =0x00004E20
adds r1, r5, #0
bl __divsi3
strh r0, [r4, #0x30]
adds r0, r6, #0
bl sub_C24
mov r2, sb
ldr r1, [r2]
add r1, r8
ldr r4, [r1]
rsbs r1, r7, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
adds r1, r5, #0
bl __divsi3
strh r0, [r4, #0x32]
bl _080171B8
.align 2, 0
_08016850: .4byte gUnknown_020314E0
_08016854: .4byte 0x0000132C
_08016858: .4byte 0x00004E20
_0801685C:
ldr r3, _08016868 @ =0x00000342
adds r1, r1, r3
movs r0, #1
strb r0, [r1]
bl _080171B8
.align 2, 0
_08016868: .4byte 0x00000342
_0801686C:
ldr r4, _080168AC @ =gUnknown_020314E0
ldr r3, [r4]
ldr r1, _080168B0 @ =0x00000366
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _08016882
bl _080171B8
_08016882:
movs r2, #0xda
lsls r2, r2, #2
adds r1, r3, r2
movs r2, #0
movs r0, #0x11
strh r0, [r1]
adds r0, r3, #0
adds r0, #0x23
strb r2, [r0]
ldr r0, [r4]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
movs r3, #0xd8
lsls r3, r3, #8
adds r0, r3, #0
strh r0, [r5]
_080168A4:
movs r0, #1
strh r0, [r6]
bl _080171B8
.align 2, 0
_080168AC: .4byte gUnknown_020314E0
_080168B0: .4byte 0x00000366
_080168B4:
ldr r1, _0801690C @ =gUnknown_020314E0
ldr r3, [r1]
ldr r4, _08016910 @ =0x0000132C
adds r0, r3, r4
ldr r0, [r0]
ldrh r4, [r0, #0x10]
adds r0, r3, #0
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r1
cmp r0, #0
ble _0801697C
ldr r5, _08016914 @ =0x00000732
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _0801695A
movs r2, #0xca
lsls r2, r2, #1
adds r0, r3, r2
movs r3, #0xa
strb r3, [r0]
ldr r1, [r1]
ldr r4, _08016918 @ =0x0000072B
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08016946
cmp r0, #0
bne _0801691C
movs r0, #0xfa
lsls r0, r0, #3
str r0, [r1, #0x3c]
adds r1, r1, r2
movs r0, #1
strb r0, [r1]
b _08016938
.align 2, 0
_0801690C: .4byte gUnknown_020314E0
_08016910: .4byte 0x0000132C
_08016914: .4byte 0x00000732
_08016918: .4byte 0x0000072B
_0801691C:
cmp r0, #1
bne _08016930
ldr r0, _0801692C @ =0x00001388
str r0, [r1, #0x3c]
adds r1, r1, r2
movs r0, #5
strb r0, [r1]
b _08016938
.align 2, 0
_0801692C: .4byte 0x00001388
_08016930:
ldr r0, _0801696C @ =0x00002710
str r0, [r1, #0x3c]
adds r0, r1, r2
strb r3, [r0]
_08016938:
mov r5, sb
ldr r1, [r5]
ldr r0, _08016970 @ =0x0000072B
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08016946:
mov r1, sb
ldr r0, [r1]
movs r3, #0xcb
lsls r3, r3, #1
adds r2, r0, r3
movs r1, #0
strh r1, [r2]
ldr r4, _08016974 @ =0x0000072C
adds r0, r0, r4
strh r1, [r0]
_0801695A:
mov r5, sb
ldr r0, [r5]
ldr r1, _08016978 @ =0x00000732
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
bl _080171B8
.align 2, 0
_0801696C: .4byte 0x00002710
_08016970: .4byte 0x0000072B
_08016974: .4byte 0x0000072C
_08016978: .4byte 0x00000732
_0801697C:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x48
bgt _08016A14
ldr r2, _080169B4 @ =0x00000732
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
bne _080169EE
movs r0, #0x13
ldrsb r0, [r3, r0]
cmp r0, #2
bgt _080169E0
ldr r4, _080169B8 @ =0x0000072E
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _080169E0
cmp r0, #0
bne _080169BC
movs r0, #0xfa
lsls r0, r0, #3
b _080169CA
.align 2, 0
_080169B4: .4byte 0x00000732
_080169B8: .4byte 0x0000072E
_080169BC:
cmp r0, #1
bne _080169C8
ldr r0, _080169C4 @ =0x00001388
b _080169CA
.align 2, 0
_080169C4: .4byte 0x00001388
_080169C8:
ldr r0, _08016A00 @ =0x00002710
_080169CA:
str r0, [r3, #0x3c]
ldr r0, _08016A04 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r5, _08016A08 @ =0x0000072E
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0x99
bl m4aSongNumStart
_080169E0:
ldr r0, _08016A04 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08016A0C @ =0x000006BC
adds r1, r1, r2
movs r2, #1
strb r2, [r1]
mov sb, r0
_080169EE:
mov r3, sb
ldr r0, [r3]
ldr r4, _08016A10 @ =0x00000732
adds r0, r0, r4
movs r1, #2
strb r1, [r0]
bl _080171B8
.align 2, 0
_08016A00: .4byte 0x00002710
_08016A04: .4byte gUnknown_020314E0
_08016A08: .4byte 0x0000072E
_08016A0C: .4byte 0x000006BC
_08016A10: .4byte 0x00000732
_08016A14:
cmp r0, #0x62
bgt _08016A88
movs r1, #0xe3
lsls r1, r1, #3
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08016A2E
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r3, #0x3c]
_08016A2E:
mov r5, sb
ldr r0, [r5]
adds r0, r0, r1
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
ldr r1, _08016A78 @ =0x00000732
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r1, [r5]
ldr r2, _08016A7C @ =0x0000071B
adds r3, r1, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _08016A52
b _080171B8
_08016A52:
ldr r5, _08016A80 @ =0x00000719
adds r0, r1, r5
subs r2, #1
adds r1, r1, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
cmp r0, #0
bne _08016A66
b _080171B8
_08016A66:
strb r4, [r3]
mov r3, sb
ldr r0, [r3]
ldr r4, _08016A84 @ =0x0000071C
adds r0, r0, r4
movs r1, #0x3c
strb r1, [r0]
ldr r1, [r3]
b _08016E0A
.align 2, 0
_08016A78: .4byte 0x00000732
_08016A7C: .4byte 0x0000071B
_08016A80: .4byte 0x00000719
_08016A84: .4byte 0x0000071C
_08016A88:
cmp r0, #0x76
bgt _08016AFC
ldr r1, _08016AEC @ =0x00000719
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08016AA0
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r3, #0x3c]
_08016AA0:
mov r5, sb
ldr r0, [r5]
adds r0, r0, r1
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
ldr r1, _08016AF0 @ =0x00000732
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
ldr r1, [r5]
ldr r2, _08016AF4 @ =0x0000071B
adds r3, r1, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _08016AC4
b _080171B8
_08016AC4:
movs r5, #0xe3
lsls r5, r5, #3
adds r0, r1, r5
subs r2, #1
adds r1, r1, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
cmp r0, #0
bne _08016ADA
b _080171B8
_08016ADA:
strb r4, [r3]
mov r3, sb
ldr r0, [r3]
ldr r4, _08016AF8 @ =0x0000071C
adds r0, r0, r4
movs r1, #0x3c
strb r1, [r0]
ldr r1, [r3]
b _08016E0A
.align 2, 0
_08016AEC: .4byte 0x00000719
_08016AF0: .4byte 0x00000732
_08016AF4: .4byte 0x0000071B
_08016AF8: .4byte 0x0000071C
_08016AFC:
cmp r0, #0x92
bgt _08016B70
ldr r1, _08016B60 @ =0x0000071A
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08016B14
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r3, #0x3c]
_08016B14:
mov r5, sb
ldr r0, [r5]
adds r0, r0, r1
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
ldr r1, _08016B64 @ =0x00000732
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
ldr r1, [r5]
ldr r2, _08016B68 @ =0x0000071B
adds r3, r1, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _08016B38
b _080171B8
_08016B38:
movs r5, #0xe3
lsls r5, r5, #3
adds r0, r1, r5
subs r2, #2
adds r1, r1, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
cmp r0, #0
bne _08016B4E
b _080171B8
_08016B4E:
strb r4, [r3]
mov r3, sb
ldr r0, [r3]
ldr r4, _08016B6C @ =0x0000071C
adds r0, r0, r4
movs r1, #0x3c
strb r1, [r0]
ldr r1, [r3]
b _08016E0A
.align 2, 0
_08016B60: .4byte 0x0000071A
_08016B64: .4byte 0x00000732
_08016B68: .4byte 0x0000071B
_08016B6C: .4byte 0x0000071C
_08016B70:
ldr r5, _08016BA0 @ =0x00000732
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bne _08016C00
movs r0, #0x13
ldrsb r0, [r3, r0]
cmp r0, #2
bgt _08016BF4
ldr r1, _08016BA4 @ =0x0000072F
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08016BF4
cmp r0, #0
bne _08016BA8
movs r0, #0xfa
lsls r0, r0, #3
b _08016BB6
.align 2, 0
_08016BA0: .4byte 0x00000732
_08016BA4: .4byte 0x0000072F
_08016BA8:
cmp r0, #1
bne _08016BB4
ldr r0, _08016BB0 @ =0x00001388
b _08016BB6
.align 2, 0
_08016BB0: .4byte 0x00001388
_08016BB4:
ldr r0, _08016C10 @ =0x00002710
_08016BB6:
str r0, [r3, #0x3c]
ldr r4, _08016C14 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r5, _08016C18 @ =0x0000072F
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r4]
movs r2, #0xe5
lsls r2, r2, #1
adds r0, r0, r2
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0xd
bne _08016BDC
movs r0, #0x99
bl m4aSongNumStart
_08016BDC:
ldr r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r4
cmp r0, #1
ble _08016BF4
ldr r4, _08016C1C @ =0x00000731
adds r1, r1, r4
movs r0, #1
strb r0, [r1]
_08016BF4:
mov r5, sb
ldr r0, [r5]
ldr r1, _08016C20 @ =0x000006BC
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
_08016C00:
mov r2, sb
ldr r0, [r2]
ldr r3, _08016C24 @ =0x00000732
adds r0, r0, r3
movs r1, #6
strb r1, [r0]
b _080171B8
.align 2, 0
_08016C10: .4byte 0x00002710
_08016C14: .4byte gUnknown_020314E0
_08016C18: .4byte 0x0000072F
_08016C1C: .4byte 0x00000731
_08016C20: .4byte 0x000006BC
_08016C24: .4byte 0x00000732
_08016C28:
ldr r0, _08016C4C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r4, _08016C50 @ =0x0000132C
adds r0, r1, r4
ldr r0, [r0]
ldrh r4, [r0, #0x10]
adds r0, r1, #0
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08016C58
ldr r5, _08016C54 @ =0x00000732
adds r1, r1, r5
movs r0, #7
strb r0, [r1]
b _080171B8
.align 2, 0
_08016C4C: .4byte gUnknown_020314E0
_08016C50: .4byte 0x0000132C
_08016C54: .4byte 0x00000732
_08016C58:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x32
bgt _08016C70
ldr r0, _08016C6C @ =0x00000732
adds r1, r1, r0
movs r0, #8
strb r0, [r1]
b _080171B8
.align 2, 0
_08016C6C: .4byte 0x00000732
_08016C70:
ldr r2, _08016C7C @ =0x00000732
adds r1, r1, r2
movs r0, #9
strb r0, [r1]
b _080171B8
.align 2, 0
_08016C7C: .4byte 0x00000732
_08016C80:
ldr r4, _08016CD8 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r3, _08016CDC @ =0x0000132C
adds r0, r1, r3
ldr r0, [r0]
movs r5, #0x10
ldrsh r0, [r0, r5]
cmp r0, #0x2e
bgt _08016CF4
ldr r2, _08016CE0 @ =0x00000732
adds r0, r1, r2
movs r1, #0xa
strb r1, [r0]
ldr r1, [r4]
movs r3, #0xe2
lsls r3, r3, #3
adds r2, r1, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08016CAC
b _080171B8
_08016CAC:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r0, _08016CE4 @ =0x00000714
adds r5, r3, r0
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08016CC6
b _080171B8
_08016CC6:
ldr r1, _08016CE8 @ =0x00000711
adds r0, r3, r1
ldr r2, _08016CEC @ =0x00000712
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08016CF0 @ =0x00000713
b _08016DF0
.align 2, 0
_08016CD8: .4byte gUnknown_020314E0
_08016CDC: .4byte 0x0000132C
_08016CE0: .4byte 0x00000732
_08016CE4: .4byte 0x00000714
_08016CE8: .4byte 0x00000711
_08016CEC: .4byte 0x00000712
_08016CF0: .4byte 0x00000713
_08016CF4:
cmp r0, #0x78
bgt _08016D50
ldr r5, _08016D40 @ =0x00000732
adds r0, r1, r5
movs r1, #0xb
strb r1, [r0]
ldr r1, [r4]
ldr r0, _08016D44 @ =0x00000711
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08016D10
b _080171B8
_08016D10:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r1, _08016D48 @ =0x00000714
adds r5, r3, r1
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08016D2A
b _080171B8
_08016D2A:
movs r2, #0xe2
lsls r2, r2, #3
adds r0, r3, r2
adds r2, #2
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08016D4C @ =0x00000713
b _08016DF0
.align 2, 0
_08016D40: .4byte 0x00000732
_08016D44: .4byte 0x00000711
_08016D48: .4byte 0x00000714
_08016D4C: .4byte 0x00000713
_08016D50:
cmp r0, #0xc1
bgt _08016DAC
ldr r5, _08016D9C @ =0x00000732
adds r0, r1, r5
movs r1, #0xc
strb r1, [r0]
ldr r1, [r4]
ldr r0, _08016DA0 @ =0x00000712
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08016D6C
b _080171B8
_08016D6C:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r1, _08016DA4 @ =0x00000714
adds r5, r3, r1
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08016D86
b _080171B8
_08016D86:
movs r2, #0xe2
lsls r2, r2, #3
adds r0, r3, r2
adds r2, #1
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08016DA8 @ =0x00000713
b _08016DF0
.align 2, 0
_08016D9C: .4byte 0x00000732
_08016DA0: .4byte 0x00000712
_08016DA4: .4byte 0x00000714
_08016DA8: .4byte 0x00000713
_08016DAC:
ldr r5, _08016E14 @ =0x00000732
adds r0, r1, r5
movs r1, #0xd
strb r1, [r0]
ldr r1, [r4]
ldr r0, _08016E18 @ =0x00000713
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08016DC4
b _080171B8
_08016DC4:
movs r0, #0xfa
lsls r0, r0, #2
str r0, [r1, #0x3c]
movs r6, #1
strb r6, [r2]
ldr r3, [r4]
ldr r1, _08016E1C @ =0x00000714
adds r5, r3, r1
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
beq _08016DDE
b _080171B8
_08016DDE:
movs r2, #0xe2
lsls r2, r2, #3
adds r0, r3, r2
adds r2, #1
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r2, _08016E20 @ =0x00000712
_08016DF0:
adds r1, r3, r2
ldrb r1, [r1]
ands r0, r1
cmp r0, #0
bne _08016DFC
b _080171B8
_08016DFC:
strb r6, [r5]
ldr r0, [r4]
ldr r3, _08016E24 @ =0x00000715
adds r0, r0, r3
movs r1, #0x7e
strb r1, [r0]
ldr r1, [r4]
_08016E0A:
movs r0, #0xfa
lsls r0, r0, #4
str r0, [r1, #0x3c]
b _080171B8
.align 2, 0
_08016E14: .4byte 0x00000732
_08016E18: .4byte 0x00000713
_08016E1C: .4byte 0x00000714
_08016E20: .4byte 0x00000712
_08016E24: .4byte 0x00000715
_08016E28:
ldr r0, _08016E54 @ =gUnknown_020314E0
ldr r3, [r0]
movs r4, #0xe2
lsls r4, r4, #1
adds r1, r3, r4
ldrh r1, [r1]
mov sb, r0
cmp r1, #0
beq _08016E3C
b _080171B8
_08016E3C:
ldr r5, _08016E58 @ =0x0000132C
adds r0, r3, r5
ldr r0, [r0]
movs r1, #0x10
ldrsh r0, [r0, r1]
cmp r0, #0x78
bgt _08016E5C
movs r2, #0xe1
lsls r2, r2, #1
adds r1, r3, r2
movs r0, #1
b _08016E64
.align 2, 0
_08016E54: .4byte gUnknown_020314E0
_08016E58: .4byte 0x0000132C
_08016E5C:
movs r4, #0xe1
lsls r4, r4, #1
adds r1, r3, r4
movs r0, #2
_08016E64:
strb r0, [r1]
mov r5, sb
ldr r2, [r5]
movs r0, #0xf1
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _08016E96
adds r1, r0, #0
movs r3, #0xe1
lsls r3, r3, #1
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
cmp r1, r0
beq _08016E8E
b _080171B8
_08016E8E:
movs r4, #0xe2
lsls r4, r4, #1
adds r1, r2, r4
b _08016E9C
_08016E96:
movs r5, #0xe2
lsls r5, r5, #1
adds r1, r2, r5
_08016E9C:
movs r0, #0x78
strh r0, [r1]
b _080171B8
_08016EA2:
ldr r6, _08016EF8 @ =gUnknown_020314E0
ldr r1, [r6]
ldr r5, _08016EFC @ =0x00000616
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0
beq _08016EB2
b _080171B8
_08016EB2:
ldr r2, _08016F00 @ =0x0000132C
adds r0, r1, r2
ldr r0, [r0]
ldrh r2, [r0, #0x32]
ldr r3, _08016F04 @ =0x00000614
adds r0, r1, r3
strh r2, [r0]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _08016ECE
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
_08016ECE:
movs r0, #0xe3
lsls r0, r0, #1
adds r4, r1, r0
lsls r0, r2, #0x10
asrs r0, r0, #0x10
movs r1, #3
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
strh r1, [r4]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa8
ble _08016EF0
movs r0, #0xa8
strh r0, [r4]
_08016EF0:
ldr r0, [r6]
adds r0, r0, r5
movs r1, #0x14
b _080171B6
.align 2, 0
_08016EF8: .4byte gUnknown_020314E0
_08016EFC: .4byte 0x00000616
_08016F00: .4byte 0x0000132C
_08016F04: .4byte 0x00000614
_08016F08:
ldr r5, _08017058 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r2, _0801705C @ =0x00000732
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xe
bne _08016F1A
b _080171B8
_08016F1A:
movs r0, #0xe
strb r0, [r1]
ldr r3, _08017060 @ =gUnknown_086ACE70
ldr r1, [r5]
ldr r2, _08017064 @ =0x0000034A
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r3
ldrh r3, [r0]
mov r8, r3
movs r4, #0
ldrsh r0, [r0, r4]
ldr r3, _08017068 @ =0x0000034B
adds r1, r1, r3
adds r1, r1, r0
movs r0, #0xa
strb r0, [r1]
ldr r1, [r5]
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r5]
adds r2, r1, r2
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #3
bne _08016F88
ldr r4, _0801706C @ =0x00001378
adds r0, r1, r4
ldr r2, _08017070 @ =0x00001334
adds r1, r1, r2
movs r2, #0x44
bl memcpy
ldr r1, [r5]
ldr r3, _08017074 @ =0x00001330
adds r0, r1, r3
adds r4, r1, r4
str r4, [r0]
ldr r4, _08017078 @ =0x00000342
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08016F88
movs r5, #0xd1
lsls r5, r5, #2
adds r1, r1, r5
movs r0, #1
strb r0, [r1]
_08016F88:
ldr r0, _08017058 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r6, _08017064 @ =0x0000034A
adds r1, r3, r6
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov sb, r0
cmp r1, #0xb
bne _08016FA6
ldr r0, _08017074 @ =0x00001330
adds r1, r3, r0
ldr r2, _08017070 @ =0x00001334
adds r0, r3, r2
str r0, [r1]
_08016FA6:
mov r3, sb
ldr r5, [r3]
adds r0, r5, r6
movs r1, #0
ldrsb r1, [r0, r1]
subs r0, r1, #1
adds r3, r0, #0
cmp r0, #0
bge _08016FBA
adds r3, r1, #2
_08016FBA:
asrs r3, r3, #2
lsls r3, r3, #2
ldr r2, _0801707C @ =gMain
subs r3, r0, r3
adds r1, r3, #0
adds r1, #0x2f
movs r0, #0xb8
muls r0, r1, r0
adds r0, r0, r2
movs r4, #0xbe
lsls r4, r4, #2
adds r0, r0, r4
movs r7, #0
movs r4, #0
movs r1, #1
strh r1, [r0]
ldr r1, _08017080 @ =0x00000355
adds r0, r5, r1
adds r0, r0, r3
strb r7, [r0]
mov r5, sb
ldr r2, [r5]
lsls r1, r3, #1
ldr r5, _08017084 @ =0x0000035E
adds r0, r2, r5
adds r0, r0, r1
strh r4, [r0]
ldr r0, _08017088 @ =0x00000359
adds r1, r2, r0
adds r1, r1, r3
adds r2, r2, r6
ldrb r0, [r2]
subs r0, #1
strb r0, [r1]
mov r1, sb
ldr r0, [r1]
adds r1, r0, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xc
ble _0801700E
strb r7, [r1]
_0801700E:
mov r2, r8
lsls r0, r2, #0x10
adds r3, r0, #0
cmp r3, #0
bne _08017030
mov r4, sb
ldr r0, [r4]
ldr r5, _0801708C @ =0x0000132C
adds r0, r0, r5
ldr r2, [r0]
movs r1, #0x32
ldrsh r0, [r2, r1]
movs r1, #0x78
rsbs r1, r1, #0
cmp r0, r1
ble _08017030
strh r1, [r2, #0x32]
_08017030:
asrs r0, r3, #0x10
cmp r0, #2
beq _08017038
b _080171B8
_08017038:
mov r2, sb
ldr r0, [r2]
ldr r3, _0801708C @ =0x0000132C
adds r0, r0, r3
ldr r2, [r0]
movs r4, #0x32
ldrsh r1, [r2, r4]
movs r0, #0xb4
rsbs r0, r0, #0
cmp r1, r0
bgt _08017050
b _080171B8
_08017050:
ldr r0, _08017090 @ =0x0000FF4C
strh r0, [r2, #0x32]
b _080171B8
.align 2, 0
_08017058: .4byte gUnknown_020314E0
_0801705C: .4byte 0x00000732
_08017060: .4byte gUnknown_086ACE70
_08017064: .4byte 0x0000034A
_08017068: .4byte 0x0000034B
_0801706C: .4byte 0x00001378
_08017070: .4byte 0x00001334
_08017074: .4byte 0x00001330
_08017078: .4byte 0x00000342
_0801707C: .4byte gMain
_08017080: .4byte 0x00000355
_08017084: .4byte 0x0000035E
_08017088: .4byte 0x00000359
_0801708C: .4byte 0x0000132C
_08017090: .4byte 0x0000FF4C
_08017094:
ldr r5, _08017144 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r2, _08017148 @ =0x00000732
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xf
bne _080170A6
b _080171B8
_080170A6:
movs r0, #0xf
strb r0, [r1]
ldr r2, _0801714C @ =gUnknown_086ACE70
ldr r1, [r5]
ldr r6, _08017150 @ =0x0000034A
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r2
movs r3, #0
ldrsh r7, [r0, r3]
ldr r4, _08017154 @ =0x0000034B
adds r1, r1, r4
adds r1, r1, r7
movs r0, #0xa
strb r0, [r1]
ldr r1, [r5]
adds r1, r1, r6
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r4, [r5]
adds r0, r4, r6
movs r1, #0
ldrsb r1, [r0, r1]
subs r0, r1, #1
adds r3, r0, #0
cmp r0, #0
bge _080170E6
adds r3, r1, #2
_080170E6:
asrs r3, r3, #2
lsls r3, r3, #2
ldr r2, _08017158 @ =gMain
subs r3, r0, r3
adds r1, r3, #0
adds r1, #0x2f
movs r0, #0xb8
muls r0, r1, r0
adds r0, r0, r2
movs r1, #0xbe
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #0
movs r1, #1
strh r1, [r0]
ldr r1, _0801715C @ =0x00000355
adds r0, r4, r1
adds r0, r0, r3
strb r2, [r0]
ldr r2, [r5]
lsls r1, r3, #1
ldr r4, _08017160 @ =0x0000035E
adds r0, r2, r4
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
ldr r0, _08017164 @ =0x00000359
adds r1, r2, r0
adds r1, r1, r3
adds r2, r2, r6
ldrb r0, [r2]
subs r0, #1
strb r0, [r1]
cmp r7, #1
bne _080171B8
ldr r0, [r5]
ldr r1, _08017168 @ =0x0000132C
adds r0, r0, r1
ldr r1, [r0]
movs r2, #0x32
ldrsh r0, [r1, r2]
movs r3, #0x96
rsbs r3, r3, #0
cmp r0, r3
ble _080171B8
strh r3, [r1, #0x32]
b _080171B8
.align 2, 0
_08017144: .4byte gUnknown_020314E0
_08017148: .4byte 0x00000732
_0801714C: .4byte gUnknown_086ACE70
_08017150: .4byte 0x0000034A
_08017154: .4byte 0x0000034B
_08017158: .4byte gMain
_0801715C: .4byte 0x00000355
_08017160: .4byte 0x0000035E
_08017164: .4byte 0x00000359
_08017168: .4byte 0x0000132C
_0801716C:
ldr r3, _08017190 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _08017194 @ =0x0000132C
adds r0, r1, r4
ldr r0, [r0]
movs r5, #0x12
ldrsh r0, [r0, r5]
cmp r0, #0x4f
bgt _0801719C
ldr r0, _08017198 @ =0x00000306
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
bne _080171B8
movs r0, #2
strb r0, [r1]
b _080171B8
.align 2, 0
_08017190: .4byte gUnknown_020314E0
_08017194: .4byte 0x0000132C
_08017198: .4byte 0x00000306
_0801719C:
ldr r4, _080171C4 @ =0x00000306
adds r2, r1, r4
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
bne _080171B8
movs r1, #0
movs r0, #3
strb r0, [r2]
ldr r0, [r3]
movs r5, #0xc3
lsls r5, r5, #2
adds r0, r0, r5
_080171B6:
strh r1, [r0]
_080171B8:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080171C4: .4byte 0x00000306
thumb_func_start sub_171C8
sub_171C8: @ 0x080171C8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
mov r8, r1
add r2, sp, #4
movs r1, #0
strh r1, [r2]
ldr r0, _080172CC @ =gUnknown_020314E0
ldr r0, [r0]
mov sl, r0
ldr r0, _080172D0 @ =0x0000132C
add r0, sl
ldr r0, [r0]
strh r1, [r0, #4]
mov r0, sb
movs r1, #0
ldrsh r4, [r0, r1]
adds r0, r4, #0
cmp r4, #0
bge _080171FA
adds r0, r4, #7
_080171FA:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _080172D4 @ =0xFFFF0000
mov ip, r2
ands r5, r2
orrs r5, r0
mov r7, sb
movs r0, #2
ldrsh r3, [r7, r0]
adds r0, r3, #0
cmp r3, #0
bge _08017216
adds r0, r3, #7
_08017216:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _080172D8 @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _08017242
adds r2, #0x3f
_08017242:
asrs r2, r2, #6
mov r0, sl
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r7, _080172DC @ =gUnknown_02031520
mov ip, r7
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r0, [r0]
mov r4, sp
adds r4, #2
strb r0, [r4]
mov r0, sb
mov r1, sp
adds r2, r4, #0
bl sub_173FC
ldrb r0, [r4]
movs r3, #0xf
ands r3, r0
lsrs r6, r0, #4
subs r0, r3, #1
cmp r0, #5
bls _080172C0
b _080173DA
_080172C0:
lsls r0, r0, #2
ldr r1, _080172E0 @ =_080172E4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080172CC: .4byte gUnknown_020314E0
_080172D0: .4byte 0x0000132C
_080172D4: .4byte 0xFFFF0000
_080172D8: .4byte 0x0000FFFF
_080172DC: .4byte gUnknown_02031520
_080172E0: .4byte _080172E4
_080172E4: @ jump table
.4byte _080172FC @ case 0
.4byte _080173A8 @ case 1
.4byte _080173A8 @ case 2
.4byte _080172FC @ case 3
.4byte _080173D8 @ case 4
.4byte _080172FC @ case 5
_080172FC:
ldr r2, _08017374 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r5, #1
strb r5, [r0]
mov r0, sp
ldrh r0, [r0]
mov r1, r8
strh r0, [r1]
ldr r4, _08017378 @ =0xFFFFC010
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bhi _0801739C
ldr r0, [r2]
ldr r7, _0801737C @ =0x0000132C
adds r3, r0, r7
ldr r2, [r3]
movs r0, #0x10
ldrsh r1, [r2, r0]
ldr r4, _08017380 @ =gUnknown_02031520
movs r7, #0x26
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
blt _08017348
movs r0, #0x12
ldrsh r1, [r2, r0]
movs r7, #0x28
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
bge _0801739C
_08017348:
movs r1, #6
ldrsh r0, [r2, r1]
cmp r0, #0
bgt _08017366
cmp r0, #0
bne _08017392
ldr r0, _08017384 @ =gMain
ldr r0, [r0, #0x4c]
ands r0, r5
cmp r0, #0
beq _08017388
movs r0, #0x28
strh r0, [r2, #4]
ldr r0, [r3]
strh r5, [r0, #6]
_08017366:
movs r2, #0xf8
lsls r2, r2, #6
adds r0, r2, #0
mov r4, r8
strh r0, [r4]
b _0801739C
.align 2, 0
_08017374: .4byte gUnknown_020314E0
_08017378: .4byte 0xFFFFC010
_0801737C: .4byte 0x0000132C
_08017380: .4byte gUnknown_02031520
_08017384: .4byte gMain
_08017388:
ldr r0, _080173A4 @ =0x0000FFD8
strh r0, [r2, #4]
ldr r1, [r3]
adds r0, #0x27
strh r0, [r1, #6]
_08017392:
movs r7, #0x82
lsls r7, r7, #7
adds r0, r7, #0
mov r1, r8
strh r0, [r1]
_0801739C:
movs r0, #1
mov r2, sp
strh r0, [r2, #4]
b _080173DA
.align 2, 0
_080173A4: .4byte 0x0000FFD8
_080173A8:
ldr r2, _080173D0 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _080173D4 @ =0x0000FFF0
ands r0, r1
mov r4, r8
strh r0, [r4]
movs r0, #1
mov r7, sp
strh r0, [r7, #4]
b _080173DA
.align 2, 0
_080173D0: .4byte gUnknown_020314E0
_080173D4: .4byte 0x0000FFF0
_080173D8:
movs r6, #4
_080173DA:
adds r0, r6, #0
add r1, sp, #4
mov r2, r8
bl sub_17634
mov r1, sp
movs r2, #4
ldrsh r0, [r1, r2]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_173FC
sub_173FC: @ 0x080173FC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
mov sb, r1
mov ip, r2
movs r7, #0
movs r3, #0
ldr r1, _08017494 @ =gUnknown_020314E0
ldr r5, [r1]
ldr r2, _08017498 @ =0x00000387
adds r0, r5, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r1
cmp r0, #2
bne _080174C0
mov r1, ip
ldrb r0, [r1]
cmp r0, #0
beq _0801742C
b _080175FE
_0801742C:
adds r2, #0x69
adds r0, r5, r2
ldrh r2, [r6]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _0801749C @ =0x000003F2
adds r1, r5, r0
ldrh r0, [r6, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r3, r2, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x5f
bls _0801744E
b _080175FE
_0801744E:
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x77
bls _08017458
b _080175FE
_08017458:
ldr r2, _080174A0 @ =gUnknown_083071D4
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _080174A4 @ =0x0000FFF0
ands r7, r0
movs r3, #0xf
ands r3, r0
cmp r3, #0
bne _0801747A
b _080175FE
_0801747A:
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r5, r1
ldrb r0, [r0]
subs r0, #3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _080174A8
movs r0, #1
mov r2, ip
strb r0, [r2]
b _080174AC
.align 2, 0
_08017494: .4byte gUnknown_020314E0
_08017498: .4byte 0x00000387
_0801749C: .4byte 0x000003F2
_080174A0: .4byte gUnknown_083071D4
_080174A4: .4byte 0x0000FFF0
_080174A8:
mov r0, ip
strb r3, [r0]
_080174AC:
mov r1, r8
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #4
strb r1, [r0]
mov r0, sb
strh r7, [r0]
b _080175FE
_080174C0:
cmp r0, #1
beq _080174C6
b _080175FE
_080174C6:
mov r1, ip
ldrb r0, [r1]
cmp r0, #0
beq _080174D0
b _080175FE
_080174D0:
ldr r2, _0801760C @ =0x000003A9
adds r0, r5, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801752C
movs r1, #0xf4
lsls r1, r1, #2
adds r0, r5, r1
ldrh r2, [r6]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _08017610 @ =0x000003D2
adds r1, r5, r0
ldrh r0, [r6, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r4, r2, #0x10
lsrs r0, r4, #0x10
cmp r0, #0x3f
bhi _0801752C
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _0801752C
ldr r2, _08017614 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r4, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08017618 @ =0x0000FFF0
ands r7, r0
movs r3, #0xf
ands r3, r0
cmp r3, #0
beq _08017530
movs r2, #0xe8
lsls r2, r2, #2
adds r1, r5, r2
movs r0, #4
strb r0, [r1]
_0801752C:
cmp r3, #0
bne _080175F4
_08017530:
mov r0, r8
ldr r5, [r0]
ldr r1, _0801761C @ =0x000003AA
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801758E
movs r2, #0xf5
lsls r2, r2, #2
adds r0, r5, r2
ldrh r2, [r6]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _08017620 @ =0x000003D6
adds r1, r5, r0
ldrh r0, [r6, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r4, r2, #0x10
lsrs r0, r4, #0x10
cmp r0, #0x3f
bhi _0801758E
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _0801758E
ldr r2, _08017614 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r4, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08017618 @ =0x0000FFF0
ands r7, r0
movs r3, #0xf
ands r3, r0
cmp r3, #0
beq _08017592
ldr r2, _08017624 @ =0x000003A1
adds r1, r5, r2
movs r0, #4
strb r0, [r1]
_0801758E:
cmp r3, #0
bne _080175F4
_08017592:
mov r0, r8
ldr r5, [r0]
ldr r1, _08017628 @ =0x000003AB
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080175F0
movs r2, #0xf6
lsls r2, r2, #2
adds r0, r5, r2
ldrh r2, [r6]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _0801762C @ =0x000003DA
adds r1, r5, r0
ldrh r0, [r6, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r4, r2, #0x10
lsrs r0, r4, #0x10
cmp r0, #0x3f
bhi _080175F0
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _080175F0
ldr r2, _08017614 @ =gUnknown_08252B10
asrs r0, r1, #0xa
asrs r1, r4, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08017618 @ =0x0000FFF0
ands r7, r0
movs r3, #0xf
ands r3, r0
cmp r3, #0
beq _080175FE
ldr r2, _08017630 @ =0x000003A2
adds r1, r5, r2
movs r0, #4
strb r0, [r1]
_080175F0:
cmp r3, #0
beq _080175FE
_080175F4:
mov r0, sb
strh r7, [r0]
movs r0, #6
mov r1, ip
strb r0, [r1]
_080175FE:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801760C: .4byte 0x000003A9
_08017610: .4byte 0x000003D2
_08017614: .4byte gUnknown_08252B10
_08017618: .4byte 0x0000FFF0
_0801761C: .4byte 0x000003AA
_08017620: .4byte 0x000003D6
_08017624: .4byte 0x000003A1
_08017628: .4byte 0x000003AB
_0801762C: .4byte 0x000003DA
_08017630: .4byte 0x000003A2
thumb_func_start sub_17634
sub_17634: @ 0x08017634
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
cmp r0, #0xe
bhi _080176A6
lsls r0, r0, #2
ldr r1, _08017648 @ =_0801764C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08017648: .4byte _0801764C
_0801764C: @ jump table
.4byte _080176A6 @ case 0
.4byte _080176A6 @ case 1
.4byte _080176A6 @ case 2
.4byte _08017688 @ case 3
.4byte _080176A6 @ case 4
.4byte _080176A6 @ case 5
.4byte _080176A6 @ case 6
.4byte _080176A6 @ case 7
.4byte _080176A6 @ case 8
.4byte _080176A6 @ case 9
.4byte _080176A6 @ case 10
.4byte _080176A6 @ case 11
.4byte _080176A6 @ case 12
.4byte _080176A6 @ case 13
.4byte _080176A6 @ case 14
_08017688:
ldr r2, _080176A8 @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r3, #0
movs r1, #6
strb r1, [r0]
ldr r1, [r2]
movs r0, #1
strb r0, [r1, #0x1f]
ldr r0, [r2]
ldr r1, _080176AC @ =0x00000387
adds r0, r0, r1
strb r3, [r0]
_080176A6:
bx lr
.align 2, 0
_080176A8: .4byte gUnknown_020314E0
_080176AC: .4byte 0x00000387
thumb_func_start sub_176B0
sub_176B0: @ 0x080176B0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov r8, r0
mov sl, r1
add r2, sp, #4
movs r1, #0
strh r1, [r2]
ldr r0, _080177B0 @ =gUnknown_020314E0
ldr r0, [r0]
mov sb, r0
ldr r0, _080177B4 @ =0x0000132C
add r0, sb
ldr r0, [r0]
strh r1, [r0, #4]
mov r0, r8
movs r1, #0
ldrsh r4, [r0, r1]
adds r0, r4, #0
cmp r4, #0
bge _080176E2
adds r0, r4, #7
_080176E2:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _080177B8 @ =0xFFFF0000
mov ip, r2
ands r5, r2
orrs r5, r0
mov r0, r8
movs r2, #2
ldrsh r3, [r0, r2]
adds r0, r3, #0
cmp r3, #0
bge _080176FE
adds r0, r3, #7
_080176FE:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _080177BC @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _0801772A
adds r2, #0x3f
_0801772A:
asrs r2, r2, #6
mov r0, sb
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r0, _080177C0 @ =gUnknown_02031520
mov ip, r0
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r0, [r0]
mov r4, sp
adds r4, #2
strb r0, [r4]
mov r0, r8
mov r1, sp
adds r2, r4, #0
bl sub_17898
ldrb r0, [r4]
movs r3, #0xf
ands r3, r0
lsrs r5, r0, #4
subs r0, r3, #1
cmp r0, #5
bhi _08017876
lsls r0, r0, #2
ldr r1, _080177C4 @ =_080177C8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080177B0: .4byte gUnknown_020314E0
_080177B4: .4byte 0x0000132C
_080177B8: .4byte 0xFFFF0000
_080177BC: .4byte 0x0000FFFF
_080177C0: .4byte gUnknown_02031520
_080177C4: .4byte _080177C8
_080177C8: @ jump table
.4byte _080177E0 @ case 0
.4byte _08017804 @ case 1
.4byte _08017804 @ case 2
.4byte _080177E0 @ case 3
.4byte _08017874 @ case 4
.4byte _080177E0 @ case 5
_080177E0:
ldr r2, _08017800 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #1
strb r1, [r0]
mov r0, sp
ldrh r0, [r0]
mov r2, sl
strh r0, [r2]
mov r4, sp
strh r1, [r4, #4]
b _08017876
.align 2, 0
_08017800: .4byte gUnknown_020314E0
_08017804:
ldr r2, _0801785C @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x23
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r3, #1
strb r3, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08017860 @ =0x0000FFF0
ands r0, r1
mov r1, sl
strh r0, [r1]
mov r4, sp
strh r3, [r4, #4]
ldr r1, [r2]
ldr r0, _08017864 @ =0x00000404
adds r3, r1, r0
movs r0, #0
ldrsb r0, [r3, r0]
adds r4, r2, #0
cmp r0, #0
bne _0801784E
ldr r2, _08017868 @ =0x00000406
adds r0, r1, r2
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
bne _0801784E
movs r0, #1
strb r0, [r3]
ldr r0, [r4]
ldr r1, _0801786C @ =0x0000040A
adds r0, r0, r1
strh r2, [r0]
_0801784E:
ldr r0, [r4]
ldr r2, _08017870 @ =0x0000040C
adds r0, r0, r2
movs r1, #0x28
strh r1, [r0]
b _08017876
.align 2, 0
_0801785C: .4byte gUnknown_020314E0
_08017860: .4byte 0x0000FFF0
_08017864: .4byte 0x00000404
_08017868: .4byte 0x00000406
_0801786C: .4byte 0x0000040A
_08017870: .4byte 0x0000040C
_08017874:
movs r5, #4
_08017876:
adds r0, r5, #0
add r1, sp, #4
mov r2, sl
bl sub_179D0
mov r4, sp
movs r1, #4
ldrsh r0, [r4, r1]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_17898
sub_17898: @ 0x08017898
push {r4, r5, r6, r7, lr}
adds r3, r0, #0
adds r7, r1, #0
adds r4, r2, #0
ldr r0, _08017924 @ =gUnknown_020314E0
ldr r5, [r0]
ldr r1, _08017928 @ =0x00000387
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08017938
ldrb r1, [r4]
movs r6, #0xf
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _080178C0
b _080179B8
_080178C0:
movs r1, #0xfc
lsls r1, r1, #2
adds r0, r5, r1
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _0801792C @ =0x000003F2
adds r1, r5, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r4, r2, #0x10
lsrs r0, r4, #0x10
cmp r0, #0x3f
bhi _080179B8
lsls r3, r1, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x57
bhi _080179B8
ldr r2, _08017930 @ =gUnknown_0832D604
asrs r0, r3, #0xa
asrs r1, r4, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrb r0, [r0]
adds r3, r6, #0
ands r3, r0
cmp r3, #0
beq _080179B8
ldr r1, _08017934 @ =0x0000132C
adds r0, r5, r1
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080179B8
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r5, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #8
bgt _080179B8
movs r0, #9
strb r0, [r1]
b _080179B8
.align 2, 0
_08017924: .4byte gUnknown_020314E0
_08017928: .4byte 0x00000387
_0801792C: .4byte 0x000003F2
_08017930: .4byte gUnknown_0832D604
_08017934: .4byte 0x0000132C
_08017938:
cmp r0, #2
bne _080179B8
ldrb r1, [r4]
movs r6, #0xf
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _080179B8
movs r1, #0xfc
lsls r1, r1, #2
adds r0, r5, r1
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _080179C0 @ =0x000003F2
adds r1, r5, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r3, r2, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x57
bhi _080179B8
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _080179B8
ldr r2, _080179C4 @ =gUnknown_08330204
asrs r1, r1, #0x10
movs r0, #0x58
muls r0, r1, r0
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r2, _080179C8 @ =0x0000FFF0
ands r2, r0
adds r3, r6, #0
ands r3, r0
cmp r3, #0
beq _080179B8
ldr r1, _080179CC @ =0x0000132C
adds r0, r5, r1
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080179B8
movs r0, #0xf7
lsls r0, r0, #2
adds r1, r5, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xc
beq _080179B8
movs r0, #0xb
strb r0, [r1]
strh r2, [r7]
movs r0, #6
strb r0, [r4]
_080179B8:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080179C0: .4byte 0x000003F2
_080179C4: .4byte gUnknown_08330204
_080179C8: .4byte 0x0000FFF0
_080179CC: .4byte 0x0000132C
thumb_func_start sub_179D0
sub_179D0: @ 0x080179D0
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080179F8 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _080179FC @ =0x0000132C
adds r1, r1, r3
ldr r1, [r1]
ldrh r3, [r1, #0x10]
ldrh r4, [r1, #0x12]
subs r0, #1
cmp r0, #0xe
bls _080179EC
b _08017C12
_080179EC:
lsls r0, r0, #2
ldr r1, _08017A00 @ =_08017A04
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080179F8: .4byte gUnknown_020314E0
_080179FC: .4byte 0x0000132C
_08017A00: .4byte _08017A04
_08017A04: @ jump table
.4byte _08017C12 @ case 0
.4byte _08017C12 @ case 1
.4byte _08017C12 @ case 2
.4byte _08017C12 @ case 3
.4byte _08017C12 @ case 4
.4byte _08017C12 @ case 5
.4byte _08017C12 @ case 6
.4byte _08017A40 @ case 7
.4byte _08017A88 @ case 8
.4byte _08017ACA @ case 9
.4byte _08017BA4 @ case 10
.4byte _08017BEC @ case 11
.4byte _08017C12 @ case 12
.4byte _08017C12 @ case 13
.4byte _08017C12 @ case 14
_08017A40:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017A68
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x38
bgt _08017A5C
ldr r0, [r2]
ldr r1, _08017A58 @ =0x0000041C
adds r2, r0, r1
b _08017C06
.align 2, 0
_08017A58: .4byte 0x0000041C
_08017A5C:
ldr r0, [r2]
ldr r3, _08017A64 @ =0x0000041D
b _08017C04
.align 2, 0
_08017A64: .4byte 0x0000041D
_08017A68:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x63
bgt _08017A7C
ldr r0, [r2]
ldr r1, _08017A78 @ =0x0000041F
adds r2, r0, r1
b _08017C06
.align 2, 0
_08017A78: .4byte 0x0000041F
_08017A7C:
ldr r0, [r2]
ldr r3, _08017A84 @ =0x0000041E
b _08017C04
.align 2, 0
_08017A84: .4byte 0x0000041E
_08017A88:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017AB0
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017AA4
ldr r0, [r2]
ldr r1, _08017AA0 @ =0x00000427
adds r2, r0, r1
b _08017C06
.align 2, 0
_08017AA0: .4byte 0x00000427
_08017AA4:
ldr r0, [r2]
ldr r3, _08017AAC @ =0x00000425
b _08017C04
.align 2, 0
_08017AAC: .4byte 0x00000425
_08017AB0:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017AC2
ldr r0, [r2]
movs r1, #0x85
lsls r1, r1, #3
adds r2, r0, r1
b _08017C06
_08017AC2:
ldr r0, [r2]
movs r3, #0x84
lsls r3, r3, #3
b _08017C04
_08017ACA:
ldr r1, [r2]
movs r3, #0x82
lsls r3, r3, #3
adds r0, r1, r3
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0
bne _08017B08
ldr r0, _08017B00 @ =0x0000042A
adds r1, r1, r0
movs r0, #0xb
strb r0, [r1]
ldr r2, [r2]
ldr r1, _08017B04 @ =0x0000132C
adds r3, r2, r1
ldr r0, [r3]
ldrh r0, [r0, #0x10]
subs r0, #7
adds r1, r2, #0
adds r1, #0xd0
strh r0, [r1]
ldr r0, [r3]
ldrh r0, [r0, #0x12]
subs r0, #7
adds r2, #0xd2
strh r0, [r2]
b _08017C12
.align 2, 0
_08017B00: .4byte 0x0000042A
_08017B04: .4byte 0x0000132C
_08017B08:
cmp r0, #3
bne _08017B3C
ldr r3, _08017B34 @ =0x0000042B
adds r1, r1, r3
movs r0, #0xb
strb r0, [r1]
ldr r2, [r2]
ldr r0, _08017B38 @ =0x0000132C
adds r3, r2, r0
ldr r0, [r3]
ldrh r0, [r0, #0x10]
subs r0, #7
adds r1, r2, #0
adds r1, #0xd4
strh r0, [r1]
ldr r0, [r3]
ldrh r0, [r0, #0x12]
subs r0, #7
adds r2, #0xd6
strh r0, [r2]
b _08017C12
.align 2, 0
_08017B34: .4byte 0x0000042B
_08017B38: .4byte 0x0000132C
_08017B3C:
cmp r0, #6
bne _08017B70
ldr r3, _08017B68 @ =0x0000042C
adds r1, r1, r3
movs r0, #0xb
strb r0, [r1]
ldr r2, [r2]
ldr r0, _08017B6C @ =0x0000132C
adds r3, r2, r0
ldr r0, [r3]
ldrh r0, [r0, #0x10]
subs r0, #7
adds r1, r2, #0
adds r1, #0xd8
strh r0, [r1]
ldr r0, [r3]
ldrh r0, [r0, #0x12]
subs r0, #7
adds r2, #0xda
strh r0, [r2]
b _08017C12
.align 2, 0
_08017B68: .4byte 0x0000042C
_08017B6C: .4byte 0x0000132C
_08017B70:
cmp r0, #9
bne _08017C12
ldr r3, _08017B9C @ =0x0000042D
adds r1, r1, r3
movs r0, #0xb
strb r0, [r1]
ldr r2, [r2]
ldr r0, _08017BA0 @ =0x0000132C
adds r3, r2, r0
ldr r0, [r3]
ldrh r0, [r0, #0x10]
subs r0, #7
adds r1, r2, #0
adds r1, #0xdc
strh r0, [r1]
ldr r0, [r3]
ldrh r0, [r0, #0x12]
subs r0, #7
adds r2, #0xde
strh r0, [r2]
b _08017C12
.align 2, 0
_08017B9C: .4byte 0x0000042D
_08017BA0: .4byte 0x0000132C
_08017BA4:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017BCC
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017BC0
ldr r0, [r2]
ldr r1, _08017BBC @ =0x00000429
adds r2, r0, r1
b _08017C06
.align 2, 0
_08017BBC: .4byte 0x00000429
_08017BC0:
ldr r0, [r2]
ldr r3, _08017BC8 @ =0x00000422
b _08017C04
.align 2, 0
_08017BC8: .4byte 0x00000422
_08017BCC:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017BE0
ldr r0, [r2]
ldr r1, _08017BDC @ =0x00000426
adds r2, r0, r1
b _08017C06
.align 2, 0
_08017BDC: .4byte 0x00000426
_08017BE0:
ldr r0, [r2]
ldr r3, _08017BE8 @ =0x00000421
b _08017C04
.align 2, 0
_08017BE8: .4byte 0x00000421
_08017BEC:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017C00
ldr r0, [r2]
ldr r1, _08017BFC @ =0x00000424
adds r2, r0, r1
b _08017C06
.align 2, 0
_08017BFC: .4byte 0x00000424
_08017C00:
ldr r0, [r2]
ldr r3, _08017C18 @ =0x00000423
_08017C04:
adds r2, r0, r3
_08017C06:
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
bgt _08017C12
movs r0, #0x18
strb r0, [r2]
_08017C12:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08017C18: .4byte 0x00000423
thumb_func_start sub_17C1C
sub_17C1C: @ 0x08017C1C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r3, r0, #0
ldr r0, _08017CF8 @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0xfe
lsls r2, r2, #2
adds r1, r1, r2
movs r2, #1
strb r2, [r1]
movs r1, #0
ldrsh r4, [r3, r1]
adds r1, r4, #0
mov ip, r0
cmp r4, #0
bge _08017C42
adds r1, r4, #7
_08017C42:
asrs r1, r1, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _08017CFC @ =0xFFFF0000
mov r8, r2
ands r6, r2
orrs r6, r0
movs r0, #2
ldrsh r3, [r3, r0]
adds r0, r3, #0
cmp r3, #0
bge _08017C5C
adds r0, r3, #7
_08017C5C:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r5, _08017D00 @ =0x0000FFFF
ands r6, r5
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, r8
ands r7, r4
orrs r7, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r7, r5
orrs r7, r0
orrs r6, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _08017C88
adds r2, #0x3f
_08017C88:
asrs r2, r2, #6
mov r0, ip
ldr r0, [r0]
mov r8, r0
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r6, r5
ldr r4, _08017D04 @ =gUnknown_02031520
adds r3, r3, r2
lsls r3, r3, #2
adds r2, r4, #0
adds r2, #0x38
adds r2, r3, r2
lsls r0, r6, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r7, #0x10
lsls r0, r7, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
adds r4, #0x58
adds r3, r3, r4
ldr r0, [r3]
adds r0, r0, r1
ldrb r1, [r0]
lsrs r1, r1, #4
movs r0, #0x80
lsls r0, r0, #3
add r0, r8
ldrh r3, [r0]
ldr r2, _08017D08 @ =0x00000402
add r2, r8
ldrh r4, [r2]
adds r0, r1, #0
subs r0, #8
cmp r0, #4
bls _08017CEE
b _08017F18
_08017CEE:
lsls r0, r0, #2
ldr r1, _08017D0C @ =_08017D10
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08017CF8: .4byte gUnknown_020314E0
_08017CFC: .4byte 0xFFFF0000
_08017D00: .4byte 0x0000FFFF
_08017D04: .4byte gUnknown_02031520
_08017D08: .4byte 0x00000402
_08017D0C: .4byte _08017D10
_08017D10: @ jump table
.4byte _08017D24 @ case 0
.4byte _08017D74 @ case 1
.4byte _08017DBE @ case 2
.4byte _08017E9C @ case 3
.4byte _08017EEC @ case 4
_08017D24:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017D50
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x38
bgt _08017D40
mov r3, ip
ldr r0, [r3]
ldr r4, _08017D3C @ =0x0000041C
b _08017F0A
.align 2, 0
_08017D3C: .4byte 0x0000041C
_08017D40:
mov r1, ip
ldr r0, [r1]
ldr r2, _08017D4C @ =0x0000041D
adds r1, r0, r2
b _08017F0C
.align 2, 0
_08017D4C: .4byte 0x0000041D
_08017D50:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x63
bgt _08017D64
mov r3, ip
ldr r0, [r3]
ldr r4, _08017D60 @ =0x0000041F
b _08017F0A
.align 2, 0
_08017D60: .4byte 0x0000041F
_08017D64:
mov r1, ip
ldr r0, [r1]
ldr r2, _08017D70 @ =0x0000041E
adds r1, r0, r2
b _08017F0C
.align 2, 0
_08017D70: .4byte 0x0000041E
_08017D74:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017DA0
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017D90
mov r3, ip
ldr r0, [r3]
ldr r4, _08017D8C @ =0x00000427
b _08017F0A
.align 2, 0
_08017D8C: .4byte 0x00000427
_08017D90:
mov r1, ip
ldr r0, [r1]
ldr r2, _08017D9C @ =0x00000425
adds r1, r0, r2
b _08017F0C
.align 2, 0
_08017D9C: .4byte 0x00000425
_08017DA0:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017DB2
mov r3, ip
ldr r0, [r3]
movs r4, #0x85
lsls r4, r4, #3
b _08017F0A
_08017DB2:
mov r1, ip
ldr r0, [r1]
movs r2, #0x84
lsls r2, r2, #3
adds r1, r0, r2
b _08017F0C
_08017DBE:
mov r3, ip
ldr r0, [r3]
movs r4, #0xfe
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r2, [r3]
ldr r1, _08017E10 @ =0x00000412
adds r0, r2, r1
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0
bne _08017E18
adds r4, #8
adds r0, r2, r4
ldr r1, [r0]
ldr r3, _08017E14 @ =0x00000434
adds r0, r2, r3
ldr r0, [r0]
cmp r1, r0
bne _08017DEC
b _08017F18
_08017DEC:
adds r4, #0x2e
adds r1, r2, r4
movs r0, #0x11
strb r0, [r1]
mov r0, ip
ldr r1, [r0]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r1, r2
ldrh r2, [r0]
adds r0, r1, r3
strh r2, [r0]
subs r3, #0x32
adds r0, r1, r3
ldrh r0, [r0]
adds r4, #8
b _08017E90
.align 2, 0
_08017E10: .4byte 0x00000412
_08017E14: .4byte 0x00000434
_08017E18:
cmp r0, #8
bne _08017E58
movs r1, #0x80
lsls r1, r1, #3
adds r0, r2, r1
ldr r1, [r0]
movs r3, #0x87
lsls r3, r3, #3
adds r0, r2, r3
ldr r0, [r0]
cmp r1, r0
beq _08017F18
ldr r4, _08017E54 @ =0x0000042F
adds r1, r2, r4
movs r0, #0x11
strb r0, [r1]
mov r0, ip
ldr r1, [r0]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r1, r2
ldrh r2, [r0]
adds r0, r1, r3
strh r2, [r0]
subs r3, #0x36
adds r0, r1, r3
ldrh r0, [r0]
adds r4, #0xb
b _08017E90
.align 2, 0
_08017E54: .4byte 0x0000042F
_08017E58:
cmp r0, #0x10
bne _08017F18
movs r1, #0x80
lsls r1, r1, #3
adds r0, r2, r1
ldr r1, [r0]
ldr r3, _08017E98 @ =0x0000043C
adds r0, r2, r3
ldr r0, [r0]
cmp r1, r0
beq _08017F18
movs r4, #0x86
lsls r4, r4, #3
adds r1, r2, r4
movs r0, #0x11
strb r0, [r1]
mov r0, ip
ldr r1, [r0]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r1, r2
ldrh r2, [r0]
adds r0, r1, r3
strh r2, [r0]
subs r3, #0x3a
adds r0, r1, r3
ldrh r0, [r0]
adds r4, #0xe
_08017E90:
adds r1, r1, r4
strh r0, [r1]
b _08017F18
.align 2, 0
_08017E98: .4byte 0x0000043C
_08017E9C:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017EC8
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017EBC
mov r1, ip
ldr r0, [r1]
ldr r2, _08017EB8 @ =0x00000429
adds r1, r0, r2
b _08017F0C
.align 2, 0
_08017EB8: .4byte 0x00000429
_08017EBC:
mov r3, ip
ldr r0, [r3]
ldr r4, _08017EC4 @ =0x00000422
b _08017F0A
.align 2, 0
_08017EC4: .4byte 0x00000422
_08017EC8:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0x45
bgt _08017EE0
mov r1, ip
ldr r0, [r1]
ldr r2, _08017EDC @ =0x00000426
adds r1, r0, r2
b _08017F0C
.align 2, 0
_08017EDC: .4byte 0x00000426
_08017EE0:
mov r3, ip
ldr r0, [r3]
ldr r4, _08017EE8 @ =0x00000421
b _08017F0A
.align 2, 0
_08017EE8: .4byte 0x00000421
_08017EEC:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r0, #0x72
bgt _08017F04
mov r1, ip
ldr r0, [r1]
ldr r2, _08017F00 @ =0x00000424
adds r1, r0, r2
b _08017F0C
.align 2, 0
_08017F00: .4byte 0x00000424
_08017F04:
mov r3, ip
ldr r0, [r3]
ldr r4, _08017F24 @ =0x00000423
_08017F0A:
adds r1, r0, r4
_08017F0C:
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bgt _08017F18
movs r0, #0x18
strb r0, [r1]
_08017F18:
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08017F24: .4byte 0x00000423
thumb_func_start sub_17F28
sub_17F28: @ 0x08017F28
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
mov r8, r1
add r2, sp, #4
movs r3, #0
strh r3, [r2]
ldr r0, _08018018 @ =gUnknown_020314E0
ldr r0, [r0]
mov sl, r0
ldr r0, _0801801C @ =0x0000132C
add r0, sl
ldr r0, [r0]
strh r3, [r0, #4]
mov r0, sb
movs r4, #2
ldrsh r1, [r0, r4]
ldr r0, _08018020 @ =0x000001FF
cmp r1, r0
bgt _08018030
mov r7, sb
movs r0, #0
ldrsh r4, [r7, r0]
adds r0, r4, #0
cmp r4, #0
bge _08017F66
adds r0, r4, #7
_08017F66:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _08018024 @ =0xFFFF0000
mov ip, r2
ands r5, r2
orrs r5, r0
mov r7, sb
movs r0, #2
ldrsh r3, [r7, r0]
adds r0, r3, #0
cmp r3, #0
bge _08017F82
adds r0, r3, #7
_08017F82:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _08018028 @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _08017FAE
adds r2, #0x3f
_08017FAE:
asrs r2, r2, #6
mov r0, sl
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r7, _0801802C @ =gUnknown_02031520
mov ip, r7
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r1, [r0]
mov r0, sp
adds r0, #2
strb r1, [r0]
adds r4, r0, #0
b _0801803E
.align 2, 0
_08018018: .4byte gUnknown_020314E0
_0801801C: .4byte 0x0000132C
_08018020: .4byte 0x000001FF
_08018024: .4byte 0xFFFF0000
_08018028: .4byte 0x0000FFFF
_0801802C: .4byte gUnknown_02031520
_08018030:
mov r0, sp
strh r3, [r0]
mov r1, sp
adds r1, #2
movs r0, #0
strb r0, [r1]
adds r4, r1, #0
_0801803E:
mov r0, sb
mov r1, sp
adds r2, r4, #0
bl sub_18180
ldrb r0, [r4]
movs r3, #0xf
ands r3, r0
lsrs r6, r0, #4
subs r0, r3, #1
cmp r0, #5
bls _08018058
b _0801815E
_08018058:
lsls r0, r0, #2
ldr r1, _08018064 @ =_08018068
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018064: .4byte _08018068
_08018068: @ jump table
.4byte _08018080 @ case 0
.4byte _0801812C @ case 1
.4byte _0801812C @ case 2
.4byte _08018080 @ case 3
.4byte _0801815C @ case 4
.4byte _08018080 @ case 5
_08018080:
ldr r2, _080180F8 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r5, #1
strb r5, [r0]
mov r0, sp
ldrh r0, [r0]
mov r1, r8
strh r0, [r1]
ldr r4, _080180FC @ =0xFFFFC010
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bhi _08018120
ldr r0, [r2]
ldr r7, _08018100 @ =0x0000132C
adds r3, r0, r7
ldr r2, [r3]
movs r0, #0x10
ldrsh r1, [r2, r0]
ldr r4, _08018104 @ =gUnknown_02031520
movs r7, #0x26
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
blt _080180CC
movs r0, #0x12
ldrsh r1, [r2, r0]
movs r7, #0x28
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
bge _08018120
_080180CC:
movs r1, #6
ldrsh r0, [r2, r1]
cmp r0, #0
bgt _080180EA
cmp r0, #0
bne _08018116
ldr r0, _08018108 @ =gMain
ldr r0, [r0, #0x4c]
ands r0, r5
cmp r0, #0
beq _0801810C
movs r0, #0x28
strh r0, [r2, #4]
ldr r0, [r3]
strh r5, [r0, #6]
_080180EA:
movs r2, #0xf8
lsls r2, r2, #6
adds r0, r2, #0
mov r4, r8
strh r0, [r4]
b _08018120
.align 2, 0
_080180F8: .4byte gUnknown_020314E0
_080180FC: .4byte 0xFFFFC010
_08018100: .4byte 0x0000132C
_08018104: .4byte gUnknown_02031520
_08018108: .4byte gMain
_0801810C:
ldr r0, _08018128 @ =0x0000FFD8
strh r0, [r2, #4]
ldr r1, [r3]
adds r0, #0x27
strh r0, [r1, #6]
_08018116:
movs r7, #0x82
lsls r7, r7, #7
adds r0, r7, #0
mov r1, r8
strh r0, [r1]
_08018120:
movs r0, #1
mov r2, sp
strh r0, [r2, #4]
b _0801815E
.align 2, 0
_08018128: .4byte 0x0000FFD8
_0801812C:
ldr r2, _08018154 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08018158 @ =0x0000FFF0
ands r0, r1
mov r4, r8
strh r0, [r4]
movs r0, #1
mov r7, sp
strh r0, [r7, #4]
b _0801815E
.align 2, 0
_08018154: .4byte gUnknown_020314E0
_08018158: .4byte 0x0000FFF0
_0801815C:
movs r6, #4
_0801815E:
adds r0, r6, #0
add r1, sp, #4
mov r2, r8
bl sub_182B4
mov r1, sp
movs r2, #4
ldrsh r0, [r1, r2]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_18180
sub_18180: @ 0x08018180
push {r4, r5, r6, r7, lr}
adds r3, r0, #0
adds r6, r1, #0
adds r5, r2, #0
ldr r0, _080181DC @ =gUnknown_020314E0
ldr r4, [r0]
ldr r1, _080181E0 @ =0x00000387
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _080181EC
ldrb r1, [r5]
movs r7, #0xf
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne _0801829C
movs r1, #0xfc
lsls r1, r1, #2
adds r0, r4, r1
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _080181E4 @ =0x000003F2
adds r1, r4, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r3, r2, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x77
bhi _0801829C
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x97
bhi _0801829C
ldr r2, _080181E8 @ =gUnknown_08340B58
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #3
b _08018278
.align 2, 0
_080181DC: .4byte gUnknown_020314E0
_080181E0: .4byte 0x00000387
_080181E4: .4byte 0x000003F2
_080181E8: .4byte gUnknown_08340B58
_080181EC:
cmp r0, #2
bne _08018234
ldrb r1, [r5]
movs r7, #0xf
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne _0801829C
movs r1, #0xfc
lsls r1, r1, #2
adds r0, r4, r1
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _0801822C @ =0x000003F2
adds r1, r4, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r3, r2, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x5f
bhi _0801829C
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x57
bhi _0801829C
ldr r2, _08018230 @ =gUnknown_083499D8
b _08018270
.align 2, 0
_0801822C: .4byte 0x000003F2
_08018230: .4byte gUnknown_083499D8
_08018234:
cmp r0, #3
bne _0801829C
ldrb r1, [r5]
movs r7, #0xf
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne _0801829C
movs r1, #0xfc
lsls r1, r1, #2
adds r0, r4, r1
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _080182A4 @ =0x000003F2
adds r1, r4, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r3, r2, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x5f
bhi _0801829C
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x67
bhi _0801829C
ldr r2, _080182A8 @ =gUnknown_0834DBD8
_08018270:
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
_08018278:
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r2, _080182AC @ =0x0000FFF0
ands r2, r0
adds r3, r7, #0
ands r3, r0
cmp r3, #0
beq _0801829C
ldr r1, _080182B0 @ =0x00000452
adds r0, r4, r1
movs r1, #8
strh r1, [r0]
strh r2, [r6]
movs r0, #6
strb r0, [r5]
_0801829C:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080182A4: .4byte 0x000003F2
_080182A8: .4byte gUnknown_0834DBD8
_080182AC: .4byte 0x0000FFF0
_080182B0: .4byte 0x00000452
thumb_func_start sub_182B4
sub_182B4: @ 0x080182B4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
cmp r0, #0xe
bhi _0801831C
lsls r0, r0, #2
ldr r1, _080182C8 @ =_080182CC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080182C8: .4byte _080182CC
_080182CC: @ jump table
.4byte _0801831C @ case 0
.4byte _0801831C @ case 1
.4byte _0801831C @ case 2
.4byte _08018308 @ case 3
.4byte _0801831C @ case 4
.4byte _0801831C @ case 5
.4byte _0801831C @ case 6
.4byte _0801831C @ case 7
.4byte _0801831C @ case 8
.4byte _0801831C @ case 9
.4byte _0801831C @ case 10
.4byte _0801831C @ case 11
.4byte _0801831C @ case 12
.4byte _0801831C @ case 13
.4byte _0801831C @ case 14
_08018308:
ldr r2, _08018320 @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #6
strb r1, [r0]
ldr r1, [r2]
movs r0, #1
strb r0, [r1, #0x1f]
_0801831C:
bx lr
.align 2, 0
_08018320: .4byte gUnknown_020314E0
thumb_func_start sub_18324
sub_18324: @ 0x08018324
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
mov r8, r1
add r2, sp, #4
movs r3, #0
strh r3, [r2]
ldr r0, _08018414 @ =gUnknown_020314E0
ldr r0, [r0]
mov sl, r0
ldr r0, _08018418 @ =0x0000132C
add r0, sl
ldr r0, [r0]
strh r3, [r0, #4]
mov r0, sb
movs r4, #2
ldrsh r1, [r0, r4]
ldr r0, _0801841C @ =0x000001FF
cmp r1, r0
bgt _0801842C
mov r7, sb
movs r0, #0
ldrsh r4, [r7, r0]
adds r0, r4, #0
cmp r4, #0
bge _08018362
adds r0, r4, #7
_08018362:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _08018420 @ =0xFFFF0000
mov ip, r2
ands r5, r2
orrs r5, r0
mov r7, sb
movs r0, #2
ldrsh r3, [r7, r0]
adds r0, r3, #0
cmp r3, #0
bge _0801837E
adds r0, r3, #7
_0801837E:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _08018424 @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _080183AA
adds r2, #0x3f
_080183AA:
asrs r2, r2, #6
mov r0, sl
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r7, _08018428 @ =gUnknown_02031520
mov ip, r7
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r1, [r0]
mov r0, sp
adds r0, #2
strb r1, [r0]
adds r4, r0, #0
b _0801843A
.align 2, 0
_08018414: .4byte gUnknown_020314E0
_08018418: .4byte 0x0000132C
_0801841C: .4byte 0x000001FF
_08018420: .4byte 0xFFFF0000
_08018424: .4byte 0x0000FFFF
_08018428: .4byte gUnknown_02031520
_0801842C:
mov r0, sp
strh r3, [r0]
mov r1, sp
adds r1, #2
movs r0, #0
strb r0, [r1]
adds r4, r1, #0
_0801843A:
mov r0, sb
mov r1, sp
adds r2, r4, #0
bl sub_1857C
ldrb r0, [r4]
movs r3, #0xf
ands r3, r0
lsrs r6, r0, #4
subs r0, r3, #1
cmp r0, #5
bls _08018454
b _0801855A
_08018454:
lsls r0, r0, #2
ldr r1, _08018460 @ =_08018464
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018460: .4byte _08018464
_08018464: @ jump table
.4byte _0801847C @ case 0
.4byte _08018528 @ case 1
.4byte _08018528 @ case 2
.4byte _0801847C @ case 3
.4byte _08018558 @ case 4
.4byte _0801847C @ case 5
_0801847C:
ldr r2, _080184F4 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r5, #1
strb r5, [r0]
mov r0, sp
ldrh r0, [r0]
mov r1, r8
strh r0, [r1]
ldr r4, _080184F8 @ =0xFFFFC010
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bhi _0801851C
ldr r0, [r2]
ldr r7, _080184FC @ =0x0000132C
adds r3, r0, r7
ldr r2, [r3]
movs r0, #0x10
ldrsh r1, [r2, r0]
ldr r4, _08018500 @ =gUnknown_02031520
movs r7, #0x26
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
blt _080184C8
movs r0, #0x12
ldrsh r1, [r2, r0]
movs r7, #0x28
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
bge _0801851C
_080184C8:
movs r1, #6
ldrsh r0, [r2, r1]
cmp r0, #0
bgt _080184E6
cmp r0, #0
bne _08018512
ldr r0, _08018504 @ =gMain
ldr r0, [r0, #0x4c]
ands r0, r5
cmp r0, #0
beq _08018508
movs r0, #0x28
strh r0, [r2, #4]
ldr r0, [r3]
strh r5, [r0, #6]
_080184E6:
movs r2, #0xf8
lsls r2, r2, #6
adds r0, r2, #0
mov r4, r8
strh r0, [r4]
b _0801851C
.align 2, 0
_080184F4: .4byte gUnknown_020314E0
_080184F8: .4byte 0xFFFFC010
_080184FC: .4byte 0x0000132C
_08018500: .4byte gUnknown_02031520
_08018504: .4byte gMain
_08018508:
ldr r0, _08018524 @ =0x0000FFD8
strh r0, [r2, #4]
ldr r1, [r3]
adds r0, #0x27
strh r0, [r1, #6]
_08018512:
movs r7, #0x82
lsls r7, r7, #7
adds r0, r7, #0
mov r1, r8
strh r0, [r1]
_0801851C:
movs r0, #1
mov r2, sp
strh r0, [r2, #4]
b _0801855A
.align 2, 0
_08018524: .4byte 0x0000FFD8
_08018528:
ldr r2, _08018550 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08018554 @ =0x0000FFF0
ands r0, r1
mov r4, r8
strh r0, [r4]
movs r0, #1
mov r7, sp
strh r0, [r7, #4]
b _0801855A
.align 2, 0
_08018550: .4byte gUnknown_020314E0
_08018554: .4byte 0x0000FFF0
_08018558:
movs r6, #4
_0801855A:
adds r0, r6, #0
add r1, sp, #4
mov r2, r8
bl sub_18784
mov r1, sp
movs r2, #4
ldrsh r0, [r1, r2]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_1857C
sub_1857C: @ 0x0801857C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov r8, r0
mov sl, r1
mov ip, r2
ldr r0, _08018758 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r1, _0801875C @ =0x00000387
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _0801860E
ldrb r1, [r2]
movs r5, #0xf
adds r0, r5, #0
ands r0, r1
cmp r0, #0
bne _0801860E
movs r3, #0xfc
lsls r3, r3, #2
adds r0, r4, r3
mov r1, r8
ldrh r2, [r1]
ldrh r0, [r0]
subs r2, r2, r0
adds r3, #2
adds r1, r4, r3
mov r3, r8
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r3, r2, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x6f
bhi _0801860E
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x7f
bhi _0801860E
ldr r2, _08018760 @ =gUnknown_083579C8
asrs r1, r1, #0x10
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #4
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r1, _08018764 @ =0x0000FFF0
ands r1, r0
adds r3, r5, #0
ands r3, r0
cmp r3, #0
beq _0801860E
ldr r0, _08018768 @ =0x00000452
adds r2, r4, r0
ldrh r0, [r2]
cmp r0, #0
bne _08018606
movs r0, #0x27
strh r0, [r2]
_08018606:
mov r0, sl
strh r1, [r0]
mov r1, ip
strb r3, [r1]
_0801860E:
movs r5, #0
ldr r3, _08018758 @ =gUnknown_020314E0
mov sb, r3
_08018614:
mov r0, sb
ldr r1, [r0]
lsls r0, r5, #0x10
asrs r6, r0, #0x10
lsls r0, r6, #2
adds r3, r1, r0
movs r1, #0x9f
lsls r1, r1, #3
adds r0, r3, r1
ldrh r4, [r0]
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
ble _0801869C
mov r0, ip
ldrb r1, [r0]
movs r7, #0xf
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne _0801869C
mov r1, r8
ldrh r2, [r1]
subs r2, r2, r4
ldr r0, _0801876C @ =0x000004FA
adds r1, r3, r0
mov r3, r8
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
cmp r0, #0x4f
bhi _0801869C
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x4f
bhi _0801869C
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #4
asrs r1, r2, #0x10
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _08018770 @ =gUnknown_0835E9C8
adds r0, r0, r1
ldrh r0, [r0]
ldr r1, _08018764 @ =0x0000FFF0
ands r1, r0
adds r3, r7, #0
ands r3, r0
cmp r3, #0
beq _0801869C
mov r3, sl
strh r1, [r3]
movs r0, #6
mov r1, ip
strb r0, [r1]
mov r3, sb
ldr r0, [r3]
ldr r1, _08018774 @ =0x000004D5
adds r0, r0, r1
adds r0, r0, r6
movs r1, #1
strb r1, [r0]
_0801869C:
lsls r0, r5, #0x10
movs r3, #0x80
lsls r3, r3, #9
adds r0, r0, r3
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _08018614
movs r5, #0
ldr r0, _08018758 @ =gUnknown_020314E0
mov sb, r0
_080186B2:
mov r3, sb
ldr r1, [r3]
lsls r2, r5, #0x10
asrs r5, r2, #0x10
lsls r0, r5, #2
adds r3, r1, r0
ldr r1, _08018778 @ =0x000004B4
adds r0, r3, r1
ldrh r4, [r0]
movs r1, #0
ldrsh r0, [r0, r1]
adds r7, r2, #0
cmp r0, #0
ble _0801873A
mov r0, ip
ldrb r1, [r0]
movs r6, #0xf
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _0801873A
mov r1, r8
ldrh r2, [r1]
subs r2, r2, r4
ldr r0, _0801877C @ =0x000004B6
adds r1, r3, r0
mov r3, r8
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
cmp r0, #0x4f
bhi _0801873A
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x4f
bhi _0801873A
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #4
asrs r1, r2, #0x10
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _08018770 @ =gUnknown_0835E9C8
adds r0, r0, r1
ldrh r0, [r0]
ldr r1, _08018764 @ =0x0000FFF0
ands r1, r0
adds r3, r6, #0
ands r3, r0
cmp r3, #0
beq _0801873A
mov r3, sl
strh r1, [r3]
movs r0, #6
mov r1, ip
strb r0, [r1]
mov r3, sb
ldr r0, [r3]
ldr r1, _08018780 @ =0x000004A4
adds r0, r0, r1
adds r0, r0, r5
movs r1, #8
strb r1, [r0]
_0801873A:
movs r3, #0x80
lsls r3, r3, #9
adds r0, r7, r3
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _080186B2
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
_08018758: .4byte gUnknown_020314E0
_0801875C: .4byte 0x00000387
_08018760: .4byte gUnknown_083579C8
_08018764: .4byte 0x0000FFF0
_08018768: .4byte 0x00000452
_0801876C: .4byte 0x000004FA
_08018770: .4byte gUnknown_0835E9C8
_08018774: .4byte 0x000004D5
_08018778: .4byte 0x000004B4
_0801877C: .4byte 0x000004B6
_08018780: .4byte 0x000004A4
thumb_func_start sub_18784
sub_18784: @ 0x08018784
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
cmp r0, #0xe
bhi _080187EC
lsls r0, r0, #2
ldr r1, _08018798 @ =_0801879C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018798: .4byte _0801879C
_0801879C: @ jump table
.4byte _080187EC @ case 0
.4byte _080187EC @ case 1
.4byte _080187EC @ case 2
.4byte _080187D8 @ case 3
.4byte _080187EC @ case 4
.4byte _080187EC @ case 5
.4byte _080187EC @ case 6
.4byte _080187EC @ case 7
.4byte _080187EC @ case 8
.4byte _080187EC @ case 9
.4byte _080187EC @ case 10
.4byte _080187EC @ case 11
.4byte _080187EC @ case 12
.4byte _080187EC @ case 13
.4byte _080187EC @ case 14
_080187D8:
ldr r2, _080187F0 @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #6
strb r1, [r0]
ldr r1, [r2]
movs r0, #1
strb r0, [r1, #0x1f]
_080187EC:
bx lr
.align 2, 0
_080187F0: .4byte gUnknown_020314E0
thumb_func_start sub_187F4
sub_187F4: @ 0x080187F4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
mov r8, r1
add r2, sp, #4
movs r3, #0
strh r3, [r2]
ldr r0, _080188E4 @ =gUnknown_020314E0
ldr r0, [r0]
mov sl, r0
ldr r0, _080188E8 @ =0x0000132C
add r0, sl
ldr r0, [r0]
strh r3, [r0, #4]
mov r0, sb
movs r4, #2
ldrsh r1, [r0, r4]
ldr r0, _080188EC @ =0x000001FF
cmp r1, r0
bgt _080188FC
mov r7, sb
movs r0, #0
ldrsh r4, [r7, r0]
adds r0, r4, #0
cmp r4, #0
bge _08018832
adds r0, r4, #7
_08018832:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _080188F0 @ =0xFFFF0000
mov ip, r2
ands r5, r2
orrs r5, r0
mov r7, sb
movs r0, #2
ldrsh r3, [r7, r0]
adds r0, r3, #0
cmp r3, #0
bge _0801884E
adds r0, r3, #7
_0801884E:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _080188F4 @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _0801887A
adds r2, #0x3f
_0801887A:
asrs r2, r2, #6
mov r0, sl
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r7, _080188F8 @ =gUnknown_02031520
mov ip, r7
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r1, [r0]
mov r0, sp
adds r0, #2
strb r1, [r0]
adds r4, r0, #0
b _0801890A
.align 2, 0
_080188E4: .4byte gUnknown_020314E0
_080188E8: .4byte 0x0000132C
_080188EC: .4byte 0x000001FF
_080188F0: .4byte 0xFFFF0000
_080188F4: .4byte 0x0000FFFF
_080188F8: .4byte gUnknown_02031520
_080188FC:
mov r0, sp
strh r3, [r0]
mov r1, sp
adds r1, #2
movs r0, #0
strb r0, [r1]
adds r4, r1, #0
_0801890A:
mov r0, sb
mov r1, sp
adds r2, r4, #0
bl sub_18A4C
ldrb r0, [r4]
movs r3, #0xf
ands r3, r0
lsrs r6, r0, #4
subs r0, r3, #1
cmp r0, #5
bls _08018924
b _08018A2A
_08018924:
lsls r0, r0, #2
ldr r1, _08018930 @ =_08018934
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018930: .4byte _08018934
_08018934: @ jump table
.4byte _0801894C @ case 0
.4byte _080189F8 @ case 1
.4byte _080189F8 @ case 2
.4byte _0801894C @ case 3
.4byte _08018A28 @ case 4
.4byte _0801894C @ case 5
_0801894C:
ldr r2, _080189C4 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r5, #1
strb r5, [r0]
mov r0, sp
ldrh r0, [r0]
mov r1, r8
strh r0, [r1]
ldr r4, _080189C8 @ =0xFFFFC010
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bhi _080189EC
ldr r0, [r2]
ldr r7, _080189CC @ =0x0000132C
adds r3, r0, r7
ldr r2, [r3]
movs r0, #0x10
ldrsh r1, [r2, r0]
ldr r4, _080189D0 @ =gUnknown_02031520
movs r7, #0x26
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
blt _08018998
movs r0, #0x12
ldrsh r1, [r2, r0]
movs r7, #0x28
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
bge _080189EC
_08018998:
movs r1, #6
ldrsh r0, [r2, r1]
cmp r0, #0
bgt _080189B6
cmp r0, #0
bne _080189E2
ldr r0, _080189D4 @ =gMain
ldr r0, [r0, #0x4c]
ands r0, r5
cmp r0, #0
beq _080189D8
movs r0, #0x28
strh r0, [r2, #4]
ldr r0, [r3]
strh r5, [r0, #6]
_080189B6:
movs r2, #0xf8
lsls r2, r2, #6
adds r0, r2, #0
mov r4, r8
strh r0, [r4]
b _080189EC
.align 2, 0
_080189C4: .4byte gUnknown_020314E0
_080189C8: .4byte 0xFFFFC010
_080189CC: .4byte 0x0000132C
_080189D0: .4byte gUnknown_02031520
_080189D4: .4byte gMain
_080189D8:
ldr r0, _080189F4 @ =0x0000FFD8
strh r0, [r2, #4]
ldr r1, [r3]
adds r0, #0x27
strh r0, [r1, #6]
_080189E2:
movs r7, #0x82
lsls r7, r7, #7
adds r0, r7, #0
mov r1, r8
strh r0, [r1]
_080189EC:
movs r0, #1
mov r2, sp
strh r0, [r2, #4]
b _08018A2A
.align 2, 0
_080189F4: .4byte 0x0000FFD8
_080189F8:
ldr r2, _08018A20 @ =gUnknown_020314E0
ldr r0, [r2]
subs r1, r3, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #2
strb r1, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08018A24 @ =0x0000FFF0
ands r0, r1
mov r4, r8
strh r0, [r4]
movs r0, #1
mov r7, sp
strh r0, [r7, #4]
b _08018A2A
.align 2, 0
_08018A20: .4byte gUnknown_020314E0
_08018A24: .4byte 0x0000FFF0
_08018A28:
movs r6, #4
_08018A2A:
adds r0, r6, #0
add r1, sp, #4
mov r2, r8
bl sub_18AE0
mov r1, sp
movs r2, #4
ldrsh r0, [r1, r2]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_18A4C
sub_18A4C: @ 0x08018A4C
push {r4, r5, r6, r7, lr}
adds r3, r0, #0
adds r7, r1, #0
adds r5, r2, #0
ldr r0, _08018AC8 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r1, _08018ACC @ =0x00000387
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08018AC2
ldrb r1, [r5]
movs r6, #0xf
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _08018AC2
movs r1, #0xfc
lsls r1, r1, #2
adds r0, r4, r1
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _08018AD0 @ =0x000003F2
adds r1, r4, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
lsls r1, r2, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x7f
bhi _08018AC2
lsls r3, r3, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x7f
bhi _08018AC2
ldr r2, _08018AD4 @ =gUnknown_083722E8
asrs r0, r3, #9
asrs r1, r1, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r2, _08018AD8 @ =0x0000FFF0
ands r2, r0
adds r3, r6, #0
ands r3, r0
cmp r3, #0
beq _08018AC2
ldr r0, _08018ADC @ =0x00000452
adds r1, r4, r0
movs r0, #9
strh r0, [r1]
strh r2, [r7]
strb r3, [r5]
_08018AC2:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08018AC8: .4byte gUnknown_020314E0
_08018ACC: .4byte 0x00000387
_08018AD0: .4byte 0x000003F2
_08018AD4: .4byte gUnknown_083722E8
_08018AD8: .4byte 0x0000FFF0
_08018ADC: .4byte 0x00000452
thumb_func_start sub_18AE0
sub_18AE0: @ 0x08018AE0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
cmp r0, #0xe
bhi _08018B48
lsls r0, r0, #2
ldr r1, _08018AF4 @ =_08018AF8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018AF4: .4byte _08018AF8
_08018AF8: @ jump table
.4byte _08018B48 @ case 0
.4byte _08018B48 @ case 1
.4byte _08018B48 @ case 2
.4byte _08018B34 @ case 3
.4byte _08018B48 @ case 4
.4byte _08018B48 @ case 5
.4byte _08018B48 @ case 6
.4byte _08018B48 @ case 7
.4byte _08018B48 @ case 8
.4byte _08018B48 @ case 9
.4byte _08018B48 @ case 10
.4byte _08018B48 @ case 11
.4byte _08018B48 @ case 12
.4byte _08018B48 @ case 13
.4byte _08018B48 @ case 14
_08018B34:
ldr r2, _08018B4C @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #0xf7
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #6
strb r1, [r0]
ldr r1, [r2]
movs r0, #1
strb r0, [r1, #0x1f]
_08018B48:
bx lr
.align 2, 0
_08018B4C: .4byte gUnknown_020314E0
thumb_func_start sub_18B50
sub_18B50: @ 0x08018B50
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
mov r8, r1
add r2, sp, #4
movs r1, #0
strh r1, [r2]
ldr r0, _08018C54 @ =gUnknown_020314E0
ldr r0, [r0]
mov sl, r0
ldr r0, _08018C58 @ =0x0000132C
add r0, sl
ldr r0, [r0]
strh r1, [r0, #4]
mov r0, sb
movs r1, #0
ldrsh r4, [r0, r1]
adds r0, r4, #0
cmp r4, #0
bge _08018B82
adds r0, r4, #7
_08018B82:
asrs r1, r0, #3
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
ldr r2, _08018C5C @ =0xFFFF0000
mov ip, r2
ands r5, r2
orrs r5, r0
mov r7, sb
movs r0, #2
ldrsh r3, [r7, r0]
adds r0, r3, #0
cmp r3, #0
bge _08018B9E
adds r0, r3, #7
_08018B9E:
asrs r0, r0, #3
lsls r2, r0, #0x10
ldr r7, _08018C60 @ =0x0000FFFF
ands r5, r7
lsls r1, r1, #3
subs r1, r4, r1
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r4, ip
ands r6, r4
orrs r6, r1
lsls r0, r0, #3
subs r0, r3, r0
lsls r0, r0, #0x10
ands r6, r7
orrs r6, r0
orrs r5, r2
asrs r4, r2, #0x10
adds r2, r4, #0
cmp r4, #0
bge _08018BCA
adds r2, #0x3f
_08018BCA:
asrs r2, r2, #6
mov r0, sl
adds r0, #0x24
movs r3, #0
ldrsb r3, [r0, r3]
lsls r1, r2, #6
subs r1, r4, r1
lsls r1, r1, #0x10
ands r5, r7
ldr r7, _08018C64 @ =gUnknown_02031520
mov ip, r7
adds r3, r3, r2
lsls r3, r3, #2
mov r2, ip
adds r2, #0x38
adds r2, r3, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
asrs r1, r1, #0xa
adds r1, r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
mov r4, ip
adds r4, #0x48
adds r4, r3, r4
movs r0, #0
ldrsh r2, [r1, r0]
asrs r1, r6, #0x10
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #3
lsls r2, r2, #6
adds r1, r1, r2
adds r1, r1, r0
ldr r2, [r4]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
mov r0, sp
strh r2, [r0]
mov r0, ip
adds r0, #0x58
adds r3, r3, r0
ldr r0, [r3]
adds r0, r0, r1
ldrb r0, [r0]
mov r4, sp
adds r4, #2
strb r0, [r4]
mov r0, sb
mov r1, sp
adds r2, r4, #0
bl sub_18DAC
ldrb r0, [r4]
movs r2, #0xf
ands r2, r0
lsrs r6, r0, #4
subs r0, r2, #1
cmp r0, #5
bls _08018C48
b _08018D8A
_08018C48:
lsls r0, r0, #2
ldr r1, _08018C68 @ =_08018C6C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018C54: .4byte gUnknown_020314E0
_08018C58: .4byte 0x0000132C
_08018C5C: .4byte 0xFFFF0000
_08018C60: .4byte 0x0000FFFF
_08018C64: .4byte gUnknown_02031520
_08018C68: .4byte _08018C6C
_08018C6C: @ jump table
.4byte _08018C84 @ case 0
.4byte _08018D30 @ case 1
.4byte _08018D30 @ case 2
.4byte _08018C84 @ case 3
.4byte _08018D88 @ case 4
.4byte _08018C84 @ case 5
_08018C84:
ldr r3, _08018CFC @ =gUnknown_020314E0
ldr r0, [r3]
subs r1, r2, #1
adds r0, #0x23
strb r1, [r0]
ldr r0, [r3]
adds r0, #0x22
movs r5, #1
strb r5, [r0]
mov r0, sp
ldrh r0, [r0]
mov r1, r8
strh r0, [r1]
ldr r2, _08018D00 @ =0xFFFFC010
adds r0, r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bhi _08018D24
ldr r0, [r3]
ldr r4, _08018D04 @ =0x0000132C
adds r3, r0, r4
ldr r2, [r3]
movs r7, #0x10
ldrsh r1, [r2, r7]
ldr r4, _08018D08 @ =gUnknown_02031520
movs r7, #0x26
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
blt _08018CD0
movs r0, #0x12
ldrsh r1, [r2, r0]
movs r7, #0x28
ldrsh r0, [r4, r7]
subs r0, #8
cmp r1, r0
bge _08018D24
_08018CD0:
movs r1, #6
ldrsh r0, [r2, r1]
cmp r0, #0
bgt _08018CEE
cmp r0, #0
bne _08018D1A
ldr r0, _08018D0C @ =gMain
ldr r0, [r0, #0x4c]
ands r0, r5
cmp r0, #0
beq _08018D10
movs r0, #0x28
strh r0, [r2, #4]
ldr r0, [r3]
strh r5, [r0, #6]
_08018CEE:
movs r2, #0xf8
lsls r2, r2, #6
adds r0, r2, #0
mov r4, r8
strh r0, [r4]
b _08018D24
.align 2, 0
_08018CFC: .4byte gUnknown_020314E0
_08018D00: .4byte 0xFFFFC010
_08018D04: .4byte 0x0000132C
_08018D08: .4byte gUnknown_02031520
_08018D0C: .4byte gMain
_08018D10:
ldr r0, _08018D2C @ =0x0000FFD8
strh r0, [r2, #4]
ldr r1, [r3]
adds r0, #0x27
strh r0, [r1, #6]
_08018D1A:
movs r7, #0x82
lsls r7, r7, #7
adds r0, r7, #0
mov r1, r8
strh r0, [r1]
_08018D24:
movs r0, #1
mov r2, sp
strh r0, [r2, #4]
b _08018D8A
.align 2, 0
_08018D2C: .4byte 0x0000FFD8
_08018D30:
ldr r2, _08018D68 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x23
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x22
movs r1, #1
strb r1, [r0]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08018D6C @ =0x0000FFF0
ands r0, r1
mov r4, r8
strh r0, [r4]
ldr r1, [r2]
ldr r7, _08018D70 @ =0x0000132C
adds r0, r1, r7
ldr r0, [r0]
movs r2, #0x10
ldrsh r0, [r0, r2]
cmp r0, #0x77
bgt _08018D74
movs r4, #0xa9
lsls r4, r4, #3
adds r1, r1, r4
b _08018D78
.align 2, 0
_08018D68: .4byte gUnknown_020314E0
_08018D6C: .4byte 0x0000FFF0
_08018D70: .4byte 0x0000132C
_08018D74:
ldr r7, _08018D84 @ =0x00000549
adds r1, r1, r7
_08018D78:
movs r0, #0x18
strb r0, [r1]
movs r0, #1
mov r1, sp
strh r0, [r1, #4]
b _08018D8A
.align 2, 0
_08018D84: .4byte 0x00000549
_08018D88:
movs r6, #4
_08018D8A:
adds r0, r6, #0
add r1, sp, #4
mov r2, r8
bl sub_18F38
mov r2, sp
movs r4, #4
ldrsh r0, [r2, r4]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_18DAC
sub_18DAC: @ 0x08018DAC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov ip, r0
mov sb, r1
adds r7, r2, #0
movs r1, #0
_08018DBE:
ldr r0, _08018E5C @ =gUnknown_020314E0
ldr r6, [r0]
lsls r1, r1, #0x10
asrs r5, r1, #0x10
ldr r2, _08018E60 @ =0x0000054F
adds r0, r6, r2
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sl, r1
cmp r0, #1
bne _08018E74
ldrb r1, [r7]
movs r3, #0xf
mov r8, r3
mov r0, r8
ands r0, r1
cmp r0, #0
beq _08018DE8
b _08018F16
_08018DE8:
lsls r1, r5, #2
adds r1, r6, r1
adds r2, #0x21
adds r0, r1, r2
mov r3, ip
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _08018E64 @ =0x00000572
adds r1, r1, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r4, r2, #0x10
lsrs r0, r4, #0x10
cmp r0, #0x3f
bls _08018E10
b _08018F16
_08018E10:
lsls r3, r1, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x3f
bls _08018E1A
b _08018F16
_08018E1A:
ldr r2, _08018E68 @ =gUnknown_08393A4C
asrs r0, r3, #0xa
asrs r1, r4, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r1, _08018E6C @ =0x0000FFF0
ands r1, r0
mov r3, r8
ands r3, r0
cmp r3, #0
beq _08018F16
movs r2, #0xe2
lsls r2, r2, #2
adds r0, r6, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08018F16
mov r3, sb
strh r1, [r3]
movs r0, #6
strb r0, [r7]
ldr r1, _08018E5C @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08018E70 @ =0x00000553
adds r0, r0, r2
adds r0, r0, r5
movs r1, #4
b _08018F14
.align 2, 0
_08018E5C: .4byte gUnknown_020314E0
_08018E60: .4byte 0x0000054F
_08018E64: .4byte 0x00000572
_08018E68: .4byte gUnknown_08393A4C
_08018E6C: .4byte 0x0000FFF0
_08018E70: .4byte 0x00000553
_08018E74:
cmp r0, #0
beq _08018F16
ldrb r1, [r7]
movs r4, #0xf
adds r0, r4, #0
ands r0, r1
cmp r0, #0
bne _08018F16
lsls r1, r5, #2
adds r1, r6, r1
movs r3, #0xae
lsls r3, r3, #3
adds r0, r1, r3
mov r3, ip
ldrh r2, [r3]
ldrh r0, [r0]
subs r2, r2, r0
ldr r0, _08018EF4 @ =0x00000572
adds r1, r1, r0
ldrh r0, [r3, #2]
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
lsls r3, r2, #0x10
lsrs r0, r3, #0x10
cmp r0, #0x3f
bhi _08018F16
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x3f
bhi _08018F16
ldr r2, _08018EF8 @ =gUnknown_08391A4C
asrs r0, r1, #0xa
asrs r1, r3, #0x10
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r1, _08018EFC @ =0x0000FFF0
ands r1, r0
adds r3, r4, #0
ands r3, r0
cmp r3, #0
beq _08018F16
mov r2, sb
strh r1, [r2]
movs r0, #6
strb r0, [r7]
ldr r3, _08018F00 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r2, _08018F04 @ =0x0000054F
adds r0, r1, r2
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08018F0C
ldr r3, _08018F08 @ =0x00000553
adds r0, r1, r3
adds r0, r0, r5
movs r1, #4
b _08018F14
.align 2, 0
_08018EF4: .4byte 0x00000572
_08018EF8: .4byte gUnknown_08391A4C
_08018EFC: .4byte 0x0000FFF0
_08018F00: .4byte gUnknown_020314E0
_08018F04: .4byte 0x0000054F
_08018F08: .4byte 0x00000553
_08018F0C:
ldr r2, _08018F34 @ =0x0000054D
adds r0, r1, r2
adds r0, r0, r5
movs r1, #0x18
_08018F14:
strb r1, [r0]
_08018F16:
movs r0, #0x80
lsls r0, r0, #9
add r0, sl
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _08018F26
b _08018DBE
_08018F26:
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
_08018F34: .4byte 0x0000054D
thumb_func_start sub_18F38
sub_18F38: @ 0x08018F38
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
cmp r0, #0xe
bhi _0801901C
lsls r0, r0, #2
ldr r1, _08018F4C @ =_08018F50
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018F4C: .4byte _08018F50
_08018F50: @ jump table
.4byte _0801901C @ case 0
.4byte _08018F8C @ case 1
.4byte _08018FAC @ case 2
.4byte _0801901C @ case 3
.4byte _0801901C @ case 4
.4byte _0801901C @ case 5
.4byte _0801901C @ case 6
.4byte _08018FD0 @ case 7
.4byte _08018FFC @ case 8
.4byte _0801901C @ case 9
.4byte _0801901C @ case 10
.4byte _0801901C @ case 11
.4byte _0801901C @ case 12
.4byte _0801901C @ case 13
.4byte _0801901C @ case 14
_08018F8C:
ldr r2, _08018FA4 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08018FA8 @ =0x00000532
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
movs r2, #0xa7
lsls r2, r2, #3
adds r0, r0, r2
b _08018FC0
.align 2, 0
_08018FA4: .4byte gUnknown_020314E0
_08018FA8: .4byte 0x00000532
_08018FAC:
ldr r2, _08018FC8 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _08018FCC @ =0x00000532
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
movs r1, #0xa7
lsls r1, r1, #3
adds r0, r0, r1
_08018FC0:
movs r1, #2
strb r1, [r0]
b _0801901C
.align 2, 0
_08018FC8: .4byte gUnknown_020314E0
_08018FCC: .4byte 0x00000532
_08018FD0:
ldr r2, _08018FF4 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _08018FF8 @ =0x00000532
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
movs r1, #0xa7
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
movs r2, #0xa8
lsls r2, r2, #3
adds r0, r0, r2
b _08019018
.align 2, 0
_08018FF4: .4byte gUnknown_020314E0
_08018FF8: .4byte 0x00000532
_08018FFC:
ldr r1, _08019020 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _08019024 @ =0x00000532
adds r0, r0, r3
movs r2, #1
strb r2, [r0]
ldr r0, [r1]
adds r3, #6
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r1]
movs r1, #0xa8
lsls r1, r1, #3
adds r0, r0, r1
_08019018:
movs r1, #0x64
strh r1, [r0]
_0801901C:
bx lr
.align 2, 0
_08019020: .4byte gUnknown_020314E0
_08019024: .4byte 0x00000532
thumb_func_start IdlePinballGameMain
IdlePinballGameMain: @ 0x08019028
push {lr}
ldr r1, _08019040 @ =gUnknown_08137918
ldr r0, _08019044 @ =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
_08019040: .4byte gUnknown_08137918
_08019044: .4byte gMain
thumb_func_start sub_19048
sub_19048: @ 0x08019048
push {r4, r5, lr}
ldr r1, _080190A4 @ =gMain
movs r2, #0
str r2, [r1, #0x54]
movs r0, #1
strb r0, [r1, #0xd]
ldr r0, _080190A8 @ =gUnknown_02031510
str r2, [r0]
adds r5, r1, #0
ldr r4, _080190AC @ =gUnknown_02031520
adds r3, r5, #7
_0801905E:
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r2, r0, r4
adds r1, r0, r3
ldrb r1, [r1]
strb r1, [r2]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
ble _0801905E
adds r4, r5, #0
ldrh r0, [r4, #0x30]
cmp r0, #0
bne _0801908E
bl Random
ldr r1, [r4, #0x4c]
adds r0, r0, r1
movs r1, #0x1e
bl __umodsi3
strh r0, [r4, #0x30]
_0801908E:
ldrh r4, [r5, #0x30]
movs r0, #3
ands r4, r0
adds r0, r4, #0
cmp r0, #1
beq _080190D8
cmp r0, #1
bgt _080190B0
cmp r0, #0
beq _080190BA
b _0801911E
.align 2, 0
_080190A4: .4byte gMain
_080190A8: .4byte gUnknown_02031510
_080190AC: .4byte gUnknown_02031520
_080190B0:
cmp r0, #2
beq _080190F4
cmp r0, #3
beq _08019110
b _0801911E
_080190BA:
ldr r1, _080190C8 @ =gUnknown_02031520
ldr r0, _080190CC @ =0x00000A14
strh r0, [r1, #6]
ldr r0, _080190D0 @ =gUnknown_081450F4
str r0, [r1, #0x10]
ldr r0, _080190D4 @ =gUnknown_081531F4
b _0801911C
.align 2, 0
_080190C8: .4byte gUnknown_02031520
_080190CC: .4byte 0x00000A14
_080190D0: .4byte gUnknown_081450F4
_080190D4: .4byte gUnknown_081531F4
_080190D8:
ldr r1, _080190E8 @ =gUnknown_02031520
movs r0, #0xf0
lsls r0, r0, #4
strh r0, [r1, #6]
ldr r0, _080190EC @ =gUnknown_0814F9B4
str r0, [r1, #0x10]
ldr r0, _080190F0 @ =gUnknown_08156E60
b _0801911C
.align 2, 0
_080190E8: .4byte gUnknown_02031520
_080190EC: .4byte gUnknown_0814F9B4
_080190F0: .4byte gUnknown_08156E60
_080190F4:
ldr r1, _08019104 @ =gUnknown_02031520
movs r0, #0xd2
lsls r0, r0, #4
strh r0, [r1, #6]
ldr r0, _08019108 @ =gUnknown_08148934
str r0, [r1, #0x10]
ldr r0, _0801910C @ =gUnknown_08154618
b _0801911C
.align 2, 0
_08019104: .4byte gUnknown_02031520
_08019108: .4byte gUnknown_08148934
_0801910C: .4byte gUnknown_08154618
_08019110:
ldr r1, _08019134 @ =gUnknown_02031520
ldr r0, _08019138 @ =0x00000E4C
strh r0, [r1, #6]
ldr r0, _0801913C @ =gUnknown_0814C174
str r0, [r1, #0x10]
ldr r0, _08019140 @ =gUnknown_08155A3C
_0801911C:
str r0, [r1, #0xc]
_0801911E:
bl sub_49ED4
adds r1, r4, #0
cmp r1, #1
beq _0801914E
cmp r1, #1
bgt _08019144
cmp r1, #0
beq _08019156
b _08019164
.align 2, 0
_08019134: .4byte gUnknown_02031520
_08019138: .4byte 0x00000E4C
_0801913C: .4byte gUnknown_0814C174
_08019140: .4byte gUnknown_08155A3C
_08019144:
cmp r1, #2
beq _08019156
cmp r1, #3
beq _0801915E
b _08019164
_0801914E:
movs r0, #0x20
bl m4aSongNumStart
b _08019164
_08019156:
movs r0, #0x1c
bl m4aSongNumStart
b _08019164
_0801915E:
movs r0, #0x20
bl m4aSongNumStart
_08019164:
ldr r3, _08019188 @ =gUnknown_02031520
ldr r1, _0801918C @ =gMain+0x74
movs r0, #0xcd
adds r0, r0, r1
mov ip, r0
ldrb r0, [r0]
movs r2, #0
strb r0, [r3, #5]
mov r0, ip
strb r2, [r0]
subs r1, #0x74
ldrh r0, [r1, #0x30]
adds r0, #1
strh r0, [r1, #0x30]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08019188: .4byte gUnknown_02031520
_0801918C: .4byte gMain+0x74
thumb_func_start sub_19190
sub_19190: @ 0x08019190
push {r4, r5, lr}
ldr r0, _080191A8 @ =gUnknown_020314E0
ldr r2, [r0]
ldrb r1, [r2, #0x1d]
cmp r1, #1
beq _080191C0
cmp r1, #1
bgt _080191AC
cmp r1, #0
beq _080191B2
b _0801927C
.align 2, 0
_080191A8: .4byte gUnknown_020314E0
_080191AC:
cmp r1, #2
beq _08019274
b _0801927C
_080191B2:
movs r0, #1
strb r0, [r2, #0x1d]
ldr r0, _080191BC @ =gMain
strb r1, [r0, #0xe]
b _0801927C
.align 2, 0
_080191BC: .4byte gMain
_080191C0:
ldr r0, _080191D0 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bhi _080191D4
bl sub_4ACF0
b _080191D8
.align 2, 0
_080191D0: .4byte gMain
_080191D4:
bl sub_4B000
_080191D8:
ldr r3, _08019214 @ =gMain
ldr r0, [r3, #0x54]
ldr r1, _08019218 @ =gUnknown_02031520
movs r4, #6
ldrsh r2, [r1, r4]
adds r1, r0, #0
adds r0, #1
str r0, [r3, #0x54]
cmp r1, r2
bls _080191F0
movs r0, #1
strb r0, [r3, #0xe]
_080191F0:
ldrb r0, [r3, #0x1c]
cmp r0, #0
beq _080191FA
movs r0, #1
strb r0, [r3, #0xe]
_080191FA:
ldrb r0, [r3, #0xe]
cmp r0, #0
beq _0801927C
ldrb r0, [r3, #4]
cmp r0, #1
bhi _0801921C
bl sub_1D4D0
movs r0, #0
bl sub_31BE8
b _08019224
.align 2, 0
_08019214: .4byte gMain
_08019218: .4byte gUnknown_02031520
_0801921C:
cmp r0, #3
bne _08019224
bl sub_356A0
_08019224:
ldr r4, _0801925C @ =gMain
ldrb r1, [r4, #0xf]
movs r3, #2
adds r0, r3, #0
ands r0, r1
ldr r2, _08019260 @ =gUnknown_020314E0
cmp r0, #0
beq _08019248
ldr r1, _08019264 @ =0x040000D4
ldr r0, [r2]
ldr r5, _08019268 @ =0x0000111A
adds r0, r0, r5
str r0, [r1]
ldr r0, _0801926C @ =0x05000200
str r0, [r1, #4]
ldr r0, _08019270 @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
_08019248:
ldr r0, [r2]
strb r3, [r0, #0x1d]
ldrb r0, [r4, #0xe]
cmp r0, #2
bne _0801927C
movs r0, #1
bl sub_4B408
b _0801927C
.align 2, 0
_0801925C: .4byte gMain
_08019260: .4byte gUnknown_020314E0
_08019264: .4byte 0x040000D4
_08019268: .4byte 0x0000111A
_0801926C: .4byte 0x05000200
_08019270: .4byte 0x80000100
_08019274:
ldr r1, _08019284 @ =gMain
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
_0801927C:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08019284: .4byte gMain
thumb_func_start sub_19288
sub_19288: @ 0x08019288
push {r4, r5, lr}
ldr r1, _080192E0 @ =gMain
adds r2, r1, #0
adds r2, #0x36
movs r0, #0
strb r0, [r2]
ldr r2, _080192E4 @ =gUnknown_02031520
ldrb r0, [r2, #5]
ldr r4, _080192E8 @ =0x00000141
adds r3, r1, r4
strb r0, [r3]
movs r3, #0
adds r5, r1, #7
adds r4, r2, #0
_080192A4:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
adds r2, r0, r5
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 _080192A4
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
ldr r2, _080192E0 @ =gMain
ldr r0, _080192E4 @ =gUnknown_02031520
movs r3, #6
ldrsh r1, [r0, r3]
ldr r0, [r2, #0x54]
cmp r0, r1
bhs _080192EC
movs r0, #1
bl SetMainGameState
b _080192F2
.align 2, 0
_080192E0: .4byte gMain
_080192E4: .4byte gUnknown_02031520
_080192E8: .4byte 0x00000141
_080192EC:
movs r0, #9
bl SetMainGameState
_080192F2:
ldr r1, _08019300 @ =gMain
movs r0, #0
str r0, [r1, #0x54]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08019300: .4byte gMain
thumb_func_start sub_19304
sub_19304: @ 0x08019304
push {lr}
ldr r0, _08019318 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bls _08019312
bl sub_19734
_08019312:
pop {r0}
bx r0
.align 2, 0
_08019318: .4byte gMain
thumb_func_start sub_1931C
sub_1931C: @ 0x0801931C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
str r0, [sp]
ldr r0, _080193BC @ =gUnknown_020314E0
mov r8, r0
ldr r1, [r0]
mov sb, r1
ldr r0, _080193C0 @ =0x000013BC
add r0, sb
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
ldr r2, _080193C4 @ =gUnknown_086ACE8C
adds r7, r0, r2
ldrh r0, [r7]
adds r0, #0x53
lsls r0, r0, #0x10
ldr r3, _080193C8 @ =0xFFFF0000
ldr r2, _080193CC @ =gUnknown_02031520
ldrh r1, [r2, #0x1c]
ldrh r2, [r7, #2]
adds r4, r1, r2
lsls r4, r4, #0x10
ldr r2, _080193D0 @ =0x0000FFFF
lsrs r0, r0, #0x10
mov sl, r0
ldrh r0, [r7, #4]
adds r0, #0x53
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ands r6, r3
orrs r6, r0
ldrh r7, [r7, #6]
adds r1, r1, r7
lsls r1, r1, #0x10
ands r6, r2
orrs r6, r1
asrs r1, r1, #0x10
mov r3, sl
orrs r3, r4
mov sl, r3
asrs r4, r4, #0x10
subs r1, r1, r4
ldr r2, [sp]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
lsls r2, r3, #0x10
asrs r2, r2, #0x10
subs r0, r0, r2
muls r1, r0, r1
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #1
lsls r1, r6, #0x10
asrs r1, r1, #0x10
subs r1, r1, r2
bl __divsi3
ldr r3, [sp]
asrs r1, r3, #0x10
subs r4, r4, r1
lsls r1, r4, #4
subs r1, r1, r4
lsls r1, r1, #1
adds r0, r0, r1
lsls r0, r0, #0x10
mov r2, r8
ldr r3, _080193C4 @ =gUnknown_086ACE8C
ldr r4, _080193CC @ =gUnknown_02031520
cmp r0, #0
blt _080193D8
ldr r1, _080193D4 @ =0x000013C4
add r1, sb
movs r0, #1
b _080193DE
.align 2, 0
_080193BC: .4byte gUnknown_020314E0
_080193C0: .4byte 0x000013BC
_080193C4: .4byte gUnknown_086ACE8C
_080193C8: .4byte 0xFFFF0000
_080193CC: .4byte gUnknown_02031520
_080193D0: .4byte 0x0000FFFF
_080193D4: .4byte 0x000013C4
_080193D8:
ldr r1, _08019460 @ =0x000013C4
add r1, sb
movs r0, #0xff
_080193DE:
strb r0, [r1]
ldr r2, [r2]
mov r8, r2
ldr r0, _08019464 @ =0x000013C8
add r0, r8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
adds r7, r0, r3
ldrh r3, [r7]
movs r0, #0x9c
subs r3, r0, r3
ldr r1, _08019468 @ =0xFFFF0000
mov sb, r1
ldrh r2, [r4, #0x1c]
ldrh r1, [r7, #2]
adds r4, r2, r1
lsls r4, r4, #0x10
ldr r5, _0801946C @ =0x0000FFFF
ldrh r1, [r7, #4]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r1, sb
ands r6, r1
orrs r6, r0
ldrh r7, [r7, #6]
adds r2, r2, r7
lsls r2, r2, #0x10
ands r6, r5
asrs r2, r2, #0x10
asrs r4, r4, #0x10
subs r2, r2, r4
ldr r1, [sp]
lsls r0, r1, #0x10
asrs r0, r0, #0x10
lsls r3, r3, #0x10
asrs r3, r3, #0x10
subs r0, r0, r3
adds r1, r2, #0
muls r1, r0, r1
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #1
lsls r1, r6, #0x10
asrs r1, r1, #0x10
subs r1, r1, r3
bl __divsi3
ldr r2, [sp]
asrs r1, r2, #0x10
subs r4, r4, r1
lsls r1, r4, #4
subs r1, r1, r4
lsls r1, r1, #1
adds r0, r0, r1
lsls r0, r0, #0x10
cmp r0, #0
blt _08019474
ldr r1, _08019470 @ =0x000013D0
add r1, r8
movs r0, #1
b _0801947A
.align 2, 0
_08019460: .4byte 0x000013C4
_08019464: .4byte 0x000013C8
_08019468: .4byte 0xFFFF0000
_0801946C: .4byte 0x0000FFFF
_08019470: .4byte 0x000013D0
_08019474:
ldr r1, _0801948C @ =0x000013D0
add r1, r8
movs r0, #0xff
_0801947A:
strb r0, [r1]
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801948C: .4byte 0x000013D0
thumb_func_start sub_19490
sub_19490: @ 0x08019490
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r4, _080194DC @ =gMain
ldrb r1, [r4, #0xf]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080194A8
bl sub_195C4
_080194A8:
movs r3, #0
ldr r0, _080194E0 @ =gUnknown_020314E0
mov r8, r0
ldr r1, _080194E4 @ =0x00000A28
adds r1, r1, r4
mov sb, r1
ldr r7, _080194E8 @ =0x040000D4
ldr r2, _080194EC @ =gOamBuffer
mov ip, r2
_080194BA:
mov r0, r8
ldr r2, [r0]
lsls r3, r3, #0x10
asrs r1, r3, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r2, r2, r0
ldr r1, _080194F0 @ =0x000013BC
adds r2, r2, r1
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0xa
ble _080194F4
movs r0, #0xa
b _080194FA
.align 2, 0
_080194DC: .4byte gMain
_080194E0: .4byte gUnknown_020314E0
_080194E4: .4byte 0x00000A28
_080194E8: .4byte 0x040000D4
_080194EC: .4byte gOamBuffer
_080194F0: .4byte 0x000013BC
_080194F4:
cmp r0, #0
bge _080194FC
movs r0, #0
_080194FA:
strb r0, [r2]
_080194FC:
asrs r6, r3, #0x10
movs r0, #0xb8
muls r0, r6, r0
mov r2, sb
adds r5, r0, r2
ldrh r0, [r5]
cmp r0, #0
beq _0801958A
mov r0, r8
ldr r4, [r0]
lsls r3, r6, #1
adds r0, r3, r6
lsls r0, r0, #2
adds r0, r4, r0
ldr r1, _080195A4 @ =0x000013BC
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsrs r0, r2, #0x1f
adds r2, r2, r0
ldr r0, _080195A8 @ =gUnknown_086ACEF4
adds r3, r3, r0
adds r1, r4, #0
adds r1, #0x58
ldrh r0, [r3]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r5, #2]
ldr r0, _080195AC @ =gUnknown_02031520
adds r4, #0x5a
ldrh r0, [r0, #0x1c]
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r5, #4]
asrs r2, r2, #1
lsls r2, r2, #9
ldr r0, _080195B0 @ =gUnknown_083FE44C
adds r2, r2, r0
str r2, [r7]
lsls r0, r6, #9
ldr r2, _080195B4 @ =0x06010000
adds r0, r0, r2
str r0, [r7, #4]
ldr r0, _080195B8 @ =0x80000100
str r0, [r7, #8]
ldr r0, [r7, #8]
adds r4, r5, #0
adds r4, #8
ldrh r3, [r5, #8]
lsls r3, r3, #3
add r3, ip
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r5, r2]
adds r1, r1, r0
ldr r2, _080195BC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _080195C0 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5, #8]
lsls r1, r1, #3
add r1, ip
ldrb r0, [r5, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
_0801958A:
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _080194BA
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080195A4: .4byte 0x000013BC
_080195A8: .4byte gUnknown_086ACEF4
_080195AC: .4byte gUnknown_02031520
_080195B0: .4byte gUnknown_083FE44C
_080195B4: .4byte 0x06010000
_080195B8: .4byte 0x80000100
_080195BC: .4byte 0x000001FF
_080195C0: .4byte 0xFFFFFE00
thumb_func_start sub_195C4
sub_195C4: @ 0x080195C4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r4, _08019630 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _08019634 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
ldr r0, [r0, #0x10]
bl sub_1931C
movs r3, #0
adds r6, r4, #0
_080195DE:
lsls r3, r3, #0x10
asrs r2, r3, #0x10
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
ldr r7, _08019638 @ =0x000013BC
adds r0, r0, r7
ldr r1, [r6]
adds r4, r1, r0
ldrb r1, [r4]
movs r0, #0
strb r1, [r4, #1]
strb r0, [r4, #2]
ldr r5, [r6]
adds r0, r5, #0
adds r0, #0xe
adds r0, r0, r2
ldrb r2, [r0]
mov r8, r3
cmp r2, #0
beq _0801963C
movs r0, #6
ldrsb r0, [r4, r0]
cmp r0, #0
bne _08019624
adds r0, r5, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08019624
movs r0, #0x72
bl m4aSongNumStart
_08019624:
movs r1, #0
movs r0, #1
strb r0, [r4, #6]
strb r1, [r4, #7]
b _08019650
.align 2, 0
_08019630: .4byte gUnknown_020314E0
_08019634: .4byte 0x0000132C
_08019638: .4byte 0x000013BC
_0801963C:
lsls r0, r1, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bne _08019650
ldrb r0, [r4, #7]
cmp r0, #2
bls _0801964C
strb r2, [r4, #6]
_0801964C:
adds r0, #1
strb r0, [r4, #7]
_08019650:
movs r5, #0
movs r0, #6
ldrsb r0, [r4, r0]
cmp r0, #0
beq _080196AC
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0xa
beq _08019666
movs r5, #1
b _08019694
_08019666:
ldr r2, [r6]
adds r3, r2, #0
adds r3, #0x5c
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0
beq _08019694
adds r0, r2, #0
adds r0, #0x60
ldrh r1, [r0]
ldr r7, _080196A8 @ =0x00001364
adds r0, r2, r7
strh r1, [r0]
adds r0, r2, #0
adds r0, #0x62
ldrh r1, [r0]
adds r7, #2
adds r0, r2, r7
strh r1, [r0]
strh r5, [r3]
movs r0, #7
bl sub_11B0
_08019694:
movs r0, #0
ldrsb r0, [r4, r0]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r0, #1
strb r0, [r4, #2]
ldrb r0, [r4]
adds r0, #4
b _080196FA
.align 2, 0
_080196A8: .4byte 0x00001364
_080196AC:
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
beq _080196C8
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r0, #6
strb r0, [r4, #2]
ldr r5, _080196C4 @ =0x0000FFFF
b _080196F6
.align 2, 0
_080196C4: .4byte 0x0000FFFF
_080196C8:
ldr r2, [r6]
adds r3, r2, #0
adds r3, #0x5c
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0
beq _080196F6
adds r0, r2, #0
adds r0, #0x60
ldrh r1, [r0]
ldr r7, _08019730 @ =0x00001364
adds r0, r2, r7
strh r1, [r0]
adds r0, r2, #0
adds r0, #0x62
ldrh r1, [r0]
adds r7, #2
adds r0, r2, r7
strh r1, [r0]
strh r5, [r3]
movs r0, #7
bl sub_11B0
_080196F6:
ldrb r0, [r4]
subs r0, #2
_080196FA:
strb r0, [r4]
movs r0, #3
ldrsb r0, [r4, r0]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
muls r0, r1, r0
movs r1, #0
strb r0, [r4, #3]
lsls r0, r0, #0x18
cmp r0, #0
bgt _08019712
strb r1, [r4, #4]
_08019712:
strb r5, [r4, #3]
movs r0, #0x80
lsls r0, r0, #9
add r0, r8
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _08019724
b _080195DE
_08019724:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08019730: .4byte 0x00001364
thumb_func_start sub_19734
sub_19734: @ 0x08019734
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r0, #1
mov sl, r0
ldr r4, _08019780 @ =gMain
ldrb r1, [r4, #0xf]
ands r0, r1
cmp r0, #0
bne _08019750
bl sub_19894
_08019750:
movs r3, #0
ldr r1, _08019784 @ =gUnknown_020314E0
mov sb, r1
ldr r2, _08019788 @ =0x040000D4
mov ip, r2
ldr r0, _0801978C @ =gOamBuffer
mov r8, r0
_0801975E:
mov r1, sb
ldr r2, [r1]
lsls r3, r3, #0x10
asrs r1, r3, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r2, r2, r0
ldr r0, _08019790 @ =0x000013BC
adds r2, r2, r0
movs r0, #0
ldrsb r0, [r2, r0]
adds r7, r3, #0
cmp r0, #0xa
ble _08019794
movs r0, #0xa
b _0801979A
.align 2, 0
_08019780: .4byte gMain
_08019784: .4byte gUnknown_020314E0
_08019788: .4byte 0x040000D4
_0801978C: .4byte gOamBuffer
_08019790: .4byte 0x000013BC
_08019794:
cmp r0, #0
bge _0801979C
movs r0, #0
_0801979A:
strb r0, [r2]
_0801979C:
asrs r6, r7, #0x10
movs r0, #0xb8
muls r0, r6, r0
ldr r1, _08019870 @ =gUnknown_0200B5E0
adds r5, r0, r1
ldrh r0, [r5]
cmp r0, #0
beq _08019850
mov r2, sb
ldr r4, [r2]
lsls r3, r6, #1
adds r0, r3, r6
lsls r0, r0, #2
adds r0, r4, r0
ldr r1, _08019874 @ =0x000013BC
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsrs r0, r2, #0x1f
adds r2, r2, r0
ldr r0, _08019878 @ =gUnknown_086ACEF4
adds r3, r3, r0
adds r1, r4, #0
adds r1, #0x58
ldrh r0, [r3]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r5, #2]
ldr r0, _0801987C @ =gUnknown_02031520
adds r4, #0x5a
ldrh r0, [r0, #0x1c]
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r5, #4]
asrs r2, r2, #1
lsls r2, r2, #9
ldr r0, _08019880 @ =gUnknown_083FE44C
adds r2, r2, r0
mov r0, ip
str r2, [r0]
lsls r0, r6, #9
ldr r1, _08019884 @ =0x06010000
adds r0, r0, r1
mov r2, ip
str r0, [r2, #4]
ldr r0, _08019888 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r1, #4
ldrsh r0, [r5, r1]
cmp r0, #0xb4
ble _08019808
movs r0, #0xb4
strh r0, [r5, #4]
_08019808:
adds r4, r5, #0
adds r4, #8
ldrh r3, [r5, #8]
lsls r3, r3, #3
add r3, r8
movs r2, #2
ldrsh r1, [r4, r2]
movs r2, #2
ldrsh r0, [r5, r2]
adds r1, r1, r0
ldr r2, _0801988C @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _08019890 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5, #8]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r5, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
ldrh r1, [r5, #8]
lsls r1, r1, #3
add r1, r8
mov r0, sl
lsls r3, r0, #2
ldrb r2, [r1, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
orrs r0, r3
strb r0, [r1, #5]
_08019850:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r7, r1
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _08019860
b _0801975E
_08019860:
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
_08019870: .4byte gUnknown_0200B5E0
_08019874: .4byte 0x000013BC
_08019878: .4byte gUnknown_086ACEF4
_0801987C: .4byte gUnknown_02031520
_08019880: .4byte gUnknown_083FE44C
_08019884: .4byte 0x06010000
_08019888: .4byte 0x80000100
_0801988C: .4byte 0x000001FF
_08019890: .4byte 0xFFFFFE00
thumb_func_start sub_19894
sub_19894: @ 0x08019894
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r4, _08019914 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _08019918 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
ldr r0, [r0, #0x10]
bl sub_1931C
movs r3, #0
adds r6, r4, #0
mov r8, r3
_080198B2:
lsls r3, r3, #0x10
asrs r2, r3, #0x10
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
ldr r7, _0801991C @ =0x000013BC
adds r0, r0, r7
ldr r1, [r6]
adds r4, r1, r0
ldrb r0, [r4]
strb r0, [r4, #1]
mov r0, r8
strb r0, [r4, #2]
ldr r1, [r6]
adds r0, r1, #0
adds r0, #0xe
adds r0, r0, r2
ldrb r0, [r0]
mov sb, r3
cmp r0, #0
beq _08019924
ldr r0, _08019920 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _08019924
movs r0, #6
ldrsb r0, [r4, r0]
cmp r0, #0
bne _08019908
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08019908
movs r0, #0x1a
ldrsb r0, [r1, r0]
cmp r0, #0
bne _08019908
movs r0, #0x72
bl m4aSongNumStart
_08019908:
movs r0, #1
strb r0, [r4, #6]
mov r1, r8
strb r1, [r4, #7]
b _0801993A
.align 2, 0
_08019914: .4byte gUnknown_020314E0
_08019918: .4byte 0x0000132C
_0801991C: .4byte 0x000013BC
_08019920: .4byte gMain
_08019924:
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0xa
bne _0801993A
ldrb r0, [r4, #7]
cmp r0, #2
bls _08019936
mov r7, r8
strb r7, [r4, #6]
_08019936:
adds r0, #1
strb r0, [r4, #7]
_0801993A:
movs r5, #0
movs r0, #6
ldrsb r0, [r4, r0]
cmp r0, #0
beq _08019998
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0xa
beq _08019950
movs r5, #1
b _0801997E
_08019950:
ldr r2, [r6]
adds r3, r2, #0
adds r3, #0x5c
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0
beq _0801997E
adds r0, r2, #0
adds r0, #0x60
ldrh r1, [r0]
ldr r7, _08019994 @ =0x00001364
adds r0, r2, r7
strh r1, [r0]
adds r0, r2, #0
adds r0, #0x62
ldrh r1, [r0]
adds r7, #2
adds r0, r2, r7
strh r1, [r0]
strh r5, [r3]
movs r0, #7
bl sub_11B0
_0801997E:
movs r0, #0
ldrsb r0, [r4, r0]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r0, #1
strb r0, [r4, #2]
ldrb r0, [r4]
adds r0, #4
b _080199E6
.align 2, 0
_08019994: .4byte 0x00001364
_08019998:
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
beq _080199B4
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r0, #6
strb r0, [r4, #2]
ldr r5, _080199B0 @ =0x0000FFFF
b _080199E2
.align 2, 0
_080199B0: .4byte 0x0000FFFF
_080199B4:
ldr r2, [r6]
adds r3, r2, #0
adds r3, #0x5c
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0
beq _080199E2
adds r0, r2, #0
adds r0, #0x60
ldrh r1, [r0]
ldr r7, _08019A1C @ =0x00001364
adds r0, r2, r7
strh r1, [r0]
adds r0, r2, #0
adds r0, #0x62
ldrh r1, [r0]
adds r7, #2
adds r0, r2, r7
strh r1, [r0]
strh r5, [r3]
movs r0, #7
bl sub_11B0
_080199E2:
ldrb r0, [r4]
subs r0, #2
_080199E6:
strb r0, [r4]
movs r0, #3
ldrsb r0, [r4, r0]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
muls r0, r1, r0
movs r1, #0
strb r0, [r4, #3]
lsls r0, r0, #0x18
cmp r0, #0
bgt _080199FE
strb r1, [r4, #4]
_080199FE:
strb r5, [r4, #3]
movs r0, #0x80
lsls r0, r0, #9
add r0, sb
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _08019A10
b _080198B2
_08019A10:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08019A1C: .4byte 0x00001364
thumb_func_start sub_19A20
sub_19A20: @ 0x08019A20
push {r4, r5, r6, lr}
ldr r4, _08019AF0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _08019AF4 @ =0x0000073D
adds r0, r0, r1
movs r6, #2
strb r6, [r0]
bl sub_1D5D8
movs r0, #0
bl sub_4E9F0
bl sub_1DAD8
bl sub_23954
bl sub_239A4
ldr r1, [r4]
movs r3, #0xb5
lsls r3, r3, #2
adds r2, r1, r3
movs r5, #0
movs r0, #0x49
strh r0, [r2]
ldr r0, _08019AF8 @ =0x000002D6
adds r2, r1, r0
movs r0, #0x9a
strh r0, [r2]
ldr r2, _08019AFC @ =0x000002DA
adds r1, r1, r2
strb r5, [r1]
bl sub_23E18
bl sub_1DDDC
ldr r0, [r4]
movs r3, #0xb8
lsls r3, r3, #1
adds r0, r0, r3
movs r1, #0xa
strb r1, [r0]
ldr r0, [r4]
ldr r2, _08019B00 @ =0x00000171
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
adds r3, #2
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r4]
movs r1, #0xb6
lsls r1, r1, #1
adds r0, r0, r1
strb r5, [r0]
bl sub_1EC48
bl sub_1F158
ldr r0, [r4]
ldr r2, _08019B04 @ =0x000001E5
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r4]
movs r3, #0xf3
lsls r3, r3, #1
adds r1, r0, r3
movs r0, #1
strb r0, [r1]
bl sub_1F2A4
bl sub_21B0C
bl sub_1F59C
ldr r0, [r4]
movs r2, #0xec
lsls r2, r2, #1
adds r1, r0, r2
subs r2, #0xd8
strh r2, [r1]
movs r3, #0xed
lsls r3, r3, #1
adds r1, r0, r3
strh r2, [r1]
ldr r1, _08019B08 @ =0x0000029F
adds r0, r0, r1
strb r6, [r0]
bl sub_2C9A4
ldr r0, [r4]
movs r2, #0xbb
lsls r2, r2, #2
adds r1, r0, r2
movs r2, #3
strh r2, [r1]
ldr r3, _08019B0C @ =0x000002EE
adds r0, r0, r3
strh r2, [r0]
bl sub_31B30
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08019AF0: .4byte gUnknown_020314E0
_08019AF4: .4byte 0x0000073D
_08019AF8: .4byte 0x000002D6
_08019AFC: .4byte 0x000002DA
_08019B00: .4byte 0x00000171
_08019B04: .4byte 0x000001E5
_08019B08: .4byte 0x0000029F
_08019B0C: .4byte 0x000002EE
thumb_func_start sub_19B10
sub_19B10: @ 0x08019B10
push {lr}
bl sub_19B90
bl sub_19E10
ldr r0, _08019B54 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _08019B26
bl sub_19F70
_08019B26:
bl sub_19FA0
ldr r0, _08019B58 @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xa7
lsls r2, r2, #2
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _08019B50
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08019B50
ldr r0, _08019B5C @ =gMPlayInfo_BGM
ldr r1, _08019B60 @ =0x0000FFFF
movs r2, #0x80
lsls r2, r2, #1
bl m4aMPlayVolumeControl
_08019B50:
pop {r0}
bx r0
.align 2, 0
_08019B54: .4byte gMain
_08019B58: .4byte gUnknown_020314E0
_08019B5C: .4byte gMPlayInfo_BGM
_08019B60: .4byte 0x0000FFFF
thumb_func_start sub_19B64
sub_19B64: @ 0x08019B64
ldr r2, _08019B88 @ =gUnknown_020314E0
ldr r3, [r2]
movs r1, #2
strb r1, [r3, #0x16]
ldr r1, [r2]
strb r0, [r1, #0x14]
ldr r0, [r2]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08019B86
ldr r0, _08019B8C @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x34]
movs r0, #0
strh r0, [r1]
_08019B86:
bx lr
.align 2, 0
_08019B88: .4byte gUnknown_020314E0
_08019B8C: .4byte gMain
thumb_func_start sub_19B90
sub_19B90: @ 0x08019B90
push {r4, lr}
ldr r4, _08019BA8 @ =gUnknown_020314E0
ldr r2, [r4]
movs r0, #0x16
ldrsb r0, [r2, r0]
cmp r0, #1
beq _08019BD0
cmp r0, #1
bgt _08019BAC
cmp r0, #0
beq _08019BB2
b _08019BFE
.align 2, 0
_08019BA8: .4byte gUnknown_020314E0
_08019BAC:
cmp r0, #2
beq _08019BE8
b _08019BFE
_08019BB2:
ldr r1, _08019BCC @ =gUnknown_086AD4C4
movs r0, #0x13
ldrsb r0, [r2, r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
ldr r1, [r4]
ldrb r0, [r1, #0x16]
adds r0, #1
strb r0, [r1, #0x16]
b _08019BFE
.align 2, 0
_08019BCC: .4byte gUnknown_086AD4C4
_08019BD0:
ldr r0, _08019BE4 @ =gUnknown_086AD4E8
movs r1, #0x13
ldrsb r1, [r2, r1]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
bl _call_via_r0
b _08019BFE
.align 2, 0
_08019BE4: .4byte gUnknown_086AD4E8
_08019BE8:
bl sub_19D04
ldr r0, [r4]
ldrb r1, [r0, #0x13]
movs r2, #0
strb r1, [r0, #0x15]
ldr r1, [r4]
ldrb r0, [r1, #0x14]
strb r0, [r1, #0x13]
ldr r0, [r4]
strb r2, [r0, #0x16]
_08019BFE:
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_19C04
sub_19C04: @ 0x08019C04
push {r4, r5, r6, lr}
ldr r0, _08019C3C @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0x15
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08019C7A
ldr r0, _08019C40 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _08019C50
ldr r2, _08019C44 @ =0x00000283
adds r0, r1, r2
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 _08019C48
movs r0, #0x1c
bl m4aSongNumStart
b _08019C7A
.align 2, 0
_08019C3C: .4byte gUnknown_020314E0
_08019C40: .4byte gMain
_08019C44: .4byte 0x00000283
_08019C48:
movs r0, #0x5b
bl m4aSongNumStart
b _08019C7A
_08019C50:
ldr r4, _08019C70 @ =0x00000283
adds r0, r1, r4
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 _08019C74
movs r0, #0x20
bl m4aSongNumStart
b _08019C7A
.align 2, 0
_08019C70: .4byte 0x00000283
_08019C74:
movs r0, #0x5c
bl m4aSongNumStart
_08019C7A:
ldr r5, _08019CB8 @ =gUnknown_020314E0
ldr r2, [r5]
ldrb r0, [r2, #0x15]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bls _08019CB2
ldr r3, _08019CBC @ =0x0000073C
adds r0, r2, r3
ldrb r1, [r0]
ldr r6, _08019CC0 @ =0x0000072E
adds r0, r2, r6
movs r4, #0
strb r1, [r0]
ldr r0, [r5]
ldr r2, _08019CC4 @ =0x0000073D
adds r1, r0, r2
ldrb r1, [r1]
adds r6, #1
adds r0, r0, r6
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r5]
adds r0, r0, r2
strb r4, [r0]
_08019CB2:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08019CB8: .4byte gUnknown_020314E0
_08019CBC: .4byte 0x0000073C
_08019CC0: .4byte 0x0000072E
_08019CC4: .4byte 0x0000073D
thumb_func_start sub_19CC8
sub_19CC8: @ 0x08019CC8
push {lr}
ldr r0, _08019CEC @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08019CF0 @ =0x00000714
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08019CFE
ldr r0, _08019CF4 @ =0x000006EE
adds r1, r1, r0
ldrh r0, [r1]
cmp r0, #0
beq _08019CF8
subs r0, #1
strh r0, [r1]
b _08019CFE
.align 2, 0
_08019CEC: .4byte gUnknown_020314E0
_08019CF0: .4byte 0x00000714
_08019CF4: .4byte 0x000006EE
_08019CF8:
movs r0, #2
bl sub_19B64
_08019CFE:
pop {r0}
bx r0
thumb_func_start sub_19D04
sub_19D04: @ 0x08019D04
push {r4, r5, r6, lr}
ldr r0, _08019D80 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #2
bne _08019D20
movs r0, #0x14
ldrsb r0, [r1, r0]
cmp r0, #2
ble _08019D20
movs r0, #0
bl sub_21238
_08019D20:
ldr r5, _08019D80 @ =gUnknown_020314E0
ldr r2, [r5]
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _08019DFC
movs r0, #0x14
ldrsb r0, [r2, r0]
cmp r0, #3
bne _08019D5C
ldr r3, _08019D84 @ =0x0000072E
adds r0, r2, r3
ldrb r1, [r0]
ldr r4, _08019D88 @ =0x0000073C
adds r0, r2, r4
movs r4, #0
strb r1, [r0]
ldr r0, [r5]
ldr r2, _08019D8C @ =0x0000072F
adds r1, r0, r2
ldrb r1, [r1]
ldr r6, _08019D90 @ =0x0000073D
adds r0, r0, r6
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r5]
adds r0, r0, r2
strb r4, [r0]
_08019D5C:
ldr r4, [r5]
movs r0, #0x14
ldrsb r0, [r4, r0]
cmp r0, #4
bne _08019D94
ldr r3, _08019D84 @ =0x0000072E
adds r0, r4, r3
ldrb r1, [r0]
ldr r2, _08019D88 @ =0x0000073C
adds r0, r4, r2
movs r4, #0
strb r1, [r0]
ldr r0, [r5]
subs r2, #0xd
adds r1, r0, r2
ldrb r1, [r1]
ldr r6, _08019D90 @ =0x0000073D
b _08019DEC
.align 2, 0
_08019D80: .4byte gUnknown_020314E0
_08019D84: .4byte 0x0000072E
_08019D88: .4byte 0x0000073C
_08019D8C: .4byte 0x0000072F
_08019D90: .4byte 0x0000073D
_08019D94:
cmp r0, #6
bne _08019DD0
ldr r3, _08019DC0 @ =0x0000072F
adds r0, r4, r3
ldrb r2, [r0]
ldr r1, _08019DC4 @ =0x0000073D
adds r0, r4, r1
movs r1, #0
strb r2, [r0]
ldr r0, [r5]
ldr r2, _08019DC8 @ =0x0000073C
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
ldr r4, _08019DCC @ =0x0000072E
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r3
strb r1, [r0]
b _08019DFC
.align 2, 0
_08019DC0: .4byte 0x0000072F
_08019DC4: .4byte 0x0000073D
_08019DC8: .4byte 0x0000073C
_08019DCC: .4byte 0x0000072E
_08019DD0:
cmp r0, #3
ble _08019DFC
ldr r3, _08019E04 @ =0x0000072E
adds r0, r4, r3
ldrb r1, [r0]
ldr r6, _08019E08 @ =0x0000073C
adds r0, r4, r6
movs r4, #0
strb r1, [r0]
ldr r0, [r5]
ldr r2, _08019E0C @ =0x0000072F
adds r1, r0, r2
ldrb r1, [r1]
adds r6, #1
_08019DEC:
adds r0, r0, r6
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r5]
adds r0, r0, r2
strb r4, [r0]
_08019DFC:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08019E04: .4byte 0x0000072E
_08019E08: .4byte 0x0000073C
_08019E0C: .4byte 0x0000072F
thumb_func_start sub_19E10
sub_19E10: @ 0x08019E10
push {r4, lr}
bl sub_1A0F4
bl sub_1DA74
ldr r4, _08019EA4 @ =gUnknown_020314E0
ldr r0, [r4]
movs r2, #0xa8
lsls r2, r2, #2
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _08019E4E
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08019E4E
bl Random
ldr r4, [r4]
ldr r1, _08019EA8 @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #0x64
bl __umodsi3
adds r0, #1
ldr r3, _08019EAC @ =0x0000029F
adds r4, r4, r3
strb r0, [r4]
_08019E4E:
ldr r4, _08019EA4 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6d
bgt _08019E68
bl sub_1D5D8
bl sub_1DAD8
bl sub_2C9A4
_08019E68:
bl sub_2CA9C
ldr r0, [r4]
adds r0, #0x68
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xa7
bgt _08019E7C
bl sub_239A4
_08019E7C:
ldr r0, [r4]
adds r0, #0x68
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0xdb
bgt _08019EBC
bl sub_23E18
ldr r0, [r4]
movs r1, #0xa9
lsls r1, r1, #2
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08019EB0
bl sub_1DC7C
b _08019EB4
.align 2, 0
_08019EA4: .4byte gUnknown_020314E0
_08019EA8: .4byte gMain
_08019EAC: .4byte 0x0000029F
_08019EB0:
bl sub_1EC48
_08019EB4:
bl sub_1F158
bl sub_1F59C
_08019EBC:
bl sub_1F698
ldr r4, _08019F64 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x68
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0x3f
ble _08019ED6
bl sub_1FA48
bl sub_1FBC4
_08019ED6:
ldr r0, [r4]
adds r0, #0x68
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x73
ble _08019EE6
bl sub_2C538
_08019EE6:
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x82
ble _08019EF6
bl sub_201B8
_08019EF6:
bl sub_2CE80
ldr r0, [r4]
adds r0, #0x68
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xa8
ble _08019F0A
bl sub_2D104
_08019F0A:
bl sub_203CC
bl sub_21B0C
bl sub_4E814
bl sub_1D128
bl sub_21D78
bl sub_31B30
ldr r0, [r4]
movs r3, #0xca
lsls r3, r3, #1
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08019F38
bl sub_225F0
_08019F38:
bl sub_472E4
ldr r2, [r4]
ldr r0, _08019F68 @ =0x00001328
adds r1, r2, r0
ldrh r0, [r1]
cmp r0, #0
beq _08019F5C
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08019F5C
ldr r3, _08019F6C @ =0x00001330
adds r1, r2, r3
adds r3, #4
adds r0, r2, r3
str r0, [r1]
_08019F5C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08019F64: .4byte gUnknown_020314E0
_08019F68: .4byte 0x00001328
_08019F6C: .4byte 0x00001330
thumb_func_start sub_19F70
sub_19F70: @ 0x08019F70
push {lr}
bl sub_1DDDC
bl sub_1A9E8
bl sub_1F2A4
bl sub_1FF0C
ldr r0, _08019F9C @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xc0
lsls r2, r2, #3
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _08019F96
subs r0, #1
strh r0, [r1]
_08019F96:
pop {r0}
bx r0
.align 2, 0
_08019F9C: .4byte gUnknown_020314E0
thumb_func_start sub_19FA0
sub_19FA0: @ 0x08019FA0
push {r4, r5, lr}
ldr r0, _0801A0DC @ =gUnknown_020314E0
ldr r2, [r0]
ldrb r1, [r2, #4]
adds r5, r0, #0
cmp r1, #0
beq _0801A038
movs r1, #0xe2
lsls r1, r1, #1
adds r0, r2, r1
ldrh r0, [r0]
cmp r0, #0
bne _08019FE2
movs r3, #0xf1
lsls r3, r3, #1
adds r1, r2, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
beq _08019FE2
subs r3, #0x22
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0
bne _08019FE2
ldr r3, _0801A0E0 @ =0x0000061C
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08019FE2
strb r0, [r1]
_08019FE2:
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, _0801A0E4 @ =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]
_0801A038:
ldr r1, [r5]
ldrb r0, [r1, #5]
cmp r0, #0
beq _0801A0D4
movs r2, #0xe2
lsls r2, r2, #1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0
bne _0801A076
movs r3, #0xf1
lsls r3, r3, #1
adds r2, r1, r3
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
beq _0801A076
subs r3, #0x22
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0
bne _0801A076
ldr r3, _0801A0E0 @ =0x0000061C
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801A076
movs r0, #1
strb r0, [r2]
_0801A076:
ldr r0, [r5]
ldr r2, _0801A0E8 @ =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, _0801A0EC @ =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]
ldr r0, [r5]
ldr r1, _0801A0F0 @ =0x00000301
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
_0801A0D4:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0801A0DC: .4byte gUnknown_020314E0
_0801A0E0: .4byte 0x0000061C
_0801A0E4: .4byte 0x00000712
_0801A0E8: .4byte 0x00000713
_0801A0EC: .4byte 0x00000711
_0801A0F0: .4byte 0x00000301
thumb_func_start sub_1A0F4
sub_1A0F4: @ 0x0801A0F4
push {r4, r5, r6, r7, lr}
ldr r2, _0801A140 @ =gMain
ldrb r1, [r2, #0xf]
movs r4, #1
adds r0, r4, #0
ands r0, r1
cmp r0, #0
bne _0801A106
b _0801A2B2
_0801A106:
ldr r1, _0801A144 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r6, _0801A148 @ =0x000005F7
adds r0, r0, r6
strb r4, [r0]
ldr r3, [r1]
adds r0, r3, #0
adds r0, #0xfa
movs r5, #0
ldrsb r5, [r0, r5]
adds r7, r1, #0
cmp r5, #0
beq _0801A1D4
movs r0, #2
strb r0, [r3, #0x1f]
ldr r0, [r7]
ldr r1, _0801A14C @ =0x000005FA
adds r0, r0, r1
strb r4, [r0]
ldr r2, [r7]
adds r1, r2, #0
adds r1, #0xea
ldrh r0, [r1]
cmp r0, #0
beq _0801A150
subs r0, #1
strh r0, [r1]
b _0801A1C0
.align 2, 0
_0801A140: .4byte gMain
_0801A144: .4byte gUnknown_020314E0
_0801A148: .4byte 0x000005F7
_0801A14C: .4byte 0x000005FA
_0801A150:
adds r1, r2, #0
adds r1, #0xee
ldrh r3, [r1]
mov ip, r3
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0
bne _0801A16E
adds r3, r2, #0
adds r3, #0xec
ldrh r0, [r3]
adds r1, r0, #0
cmp r1, #0
bne _0801A1B4
b _0801A1BA
_0801A16E:
adds r0, r2, #0
adds r0, #0x68
movs r6, #0
ldrsh r5, [r0, r6]
movs r0, #0
ldrsh r4, [r1, r0]
adds r1, r5, r4
adds r0, r2, #0
adds r0, #0xe8
movs r6, #0
ldrsh r3, [r0, r6]
cmp r1, r3
bgt _0801A194
adds r1, r2, #0
adds r1, #0xe6
ldrh r0, [r1]
add r0, ip
strh r0, [r1]
b _0801A1C0
_0801A194:
subs r0, r5, r4
cmp r0, r3
blt _0801A1A8
adds r1, r2, #0
adds r1, #0xe6
ldrh r0, [r1]
mov r2, ip
subs r0, r0, r2
strh r0, [r1]
b _0801A1C0
_0801A1A8:
adds r3, r2, #0
adds r3, #0xec
ldrh r0, [r3]
adds r1, r0, #0
cmp r1, #0
beq _0801A1BA
_0801A1B4:
subs r0, #1
strh r0, [r3]
b _0801A1C0
_0801A1BA:
adds r0, r2, #0
adds r0, #0xfa
strb r1, [r0]
_0801A1C0:
ldr r0, [r7]
adds r0, #0xf2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801A2B2
bl sub_1A2C0
b _0801A2B2
_0801A1D4:
adds r0, r3, #0
adds r0, #0xee
movs r4, #0
ldrsh r0, [r0, r4]
adds r1, r3, #0
adds r1, #0xe6
cmp r0, #0
beq _0801A1EC
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0
bne _0801A216
_0801A1EC:
movs r4, #0
strh r5, [r1]
strb r4, [r3, #0x1f]
ldrb r1, [r2, #0xf]
movs r0, #0xfe
ands r0, r1
strb r0, [r2, #0xf]
ldr r0, [r7]
adds r0, r0, r6
strb r4, [r0]
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0xfb
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801A216
ldr r5, _0801A2B8 @ =0x000005FA
adds r0, r1, r5
strb r4, [r0]
_0801A216:
ldr r3, [r7]
adds r1, r3, #0
adds r1, #0xe6
ldrh r4, [r1]
movs r6, #0
ldrsh r0, [r1, r6]
cmp r0, #0
ble _0801A264
adds r0, r3, #0
adds r0, #0xee
ldrh r0, [r0]
subs r0, r4, r0
movs r4, #0
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bgt _0801A2B2
movs r0, #0
strh r0, [r1]
strb r4, [r3, #0x1f]
ldrb r1, [r2, #0xf]
movs r0, #0xfe
ands r0, r1
strb r0, [r2, #0xf]
ldr r0, [r7]
ldr r1, _0801A2BC @ =0x000005F7
adds r0, r0, r1
strb r4, [r0]
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0xfb
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801A264
ldr r3, _0801A2B8 @ =0x000005FA
adds r0, r1, r3
strb r4, [r0]
_0801A264:
ldr r3, [r7]
adds r1, r3, #0
adds r1, #0xe6
ldrh r4, [r1]
movs r5, #0
ldrsh r0, [r1, r5]
cmp r0, #0
bge _0801A2B2
adds r0, r3, #0
adds r0, #0xee
ldrh r0, [r0]
adds r0, r4, r0
movs r4, #0
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
blt _0801A2B2
movs r0, #0
strh r0, [r1]
strb r4, [r3, #0x1f]
ldrb r1, [r2, #0xf]
movs r0, #0xfe
ands r0, r1
strb r0, [r2, #0xf]
ldr r0, [r7]
ldr r6, _0801A2BC @ =0x000005F7
adds r0, r0, r6
strb r4, [r0]
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0xfb
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801A2B2
ldr r2, _0801A2B8 @ =0x000005FA
adds r0, r1, r2
strb r4, [r0]
_0801A2B2:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801A2B8: .4byte 0x000005FA
_0801A2BC: .4byte 0x000005F7
thumb_func_start sub_1A2C0
sub_1A2C0: @ 0x0801A2C0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r2, _0801A328 @ =gUnknown_020314E0
ldr r4, [r2]
adds r5, r4, #0
adds r5, #0xf2
movs r0, #0
ldrsb r0, [r5, r0]
subs r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
ldr r1, _0801A32C @ =gMain
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x2c]
mov r8, r0
ldr r0, [r1, #0x4c]
movs r7, #7
ands r0, r7
lsrs r3, r0, #2
mov r6, r8
ldrh r0, [r6]
mov sb, r1
cmp r0, #0
bne _0801A2FC
b _0801A974
_0801A2FC:
movs r6, #0
movs r0, #0
mov r1, r8
strh r0, [r1, #2]
movs r0, #0xc8
strh r0, [r1, #4]
movs r1, #0
ldrsb r1, [r5, r1]
cmp r1, #4
bne _0801A3EC
adds r0, r4, #0
adds r0, #0xea
ldrh r5, [r0]
cmp r5, #0
beq _0801A330
movs r0, #0xb9
lsls r0, r0, #1
mov r2, r8
strh r0, [r2, #2]
movs r0, #0x2c
strh r0, [r2, #4]
b _0801A8B8
.align 2, 0
_0801A328: .4byte gUnknown_020314E0
_0801A32C: .4byte gMain
_0801A330:
adds r0, r4, #0
adds r0, #0xe4
strb r1, [r0]
ldr r1, _0801A3AC @ =0x040000D4
ldr r2, _0801A3B0 @ =gUnknown_086ACEF8
ldr r3, _0801A3B4 @ =gUnknown_020314E0
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, _0801A3B8 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0801A3BC @ =0x800012F0
str r0, [r1, #8]
ldr r0, [r1, #8]
bl sub_2CD98
ldr r4, _0801A3B4 @ =gUnknown_020314E0
ldr r3, [r4]
adds r1, r3, #0
adds r1, #0xf4
ldrh r2, [r1]
movs r7, #0
ldrsh r0, [r1, r7]
cmp r0, #0
ble _0801A3C0
subs r0, r2, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x77
bne _0801A384
bl m4aMPlayAllStop
movs r0, #0x10
bl m4aSongNumStart
_0801A384:
ldr r0, _0801A3B4 @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0xf6
ldrh r0, [r1]
subs r0, #0x28
strh r0, [r1]
movs r2, #0
ldrsh r0, [r1, r2]
movs r1, #0xa
bl __divsi3
movs r3, #0xb9
lsls r3, r3, #1
adds r0, r0, r3
mov r4, r8
strh r0, [r4, #2]
movs r0, #0x2c
strh r0, [r4, #4]
b _0801A8B8
.align 2, 0
_0801A3AC: .4byte 0x040000D4
_0801A3B0: .4byte gUnknown_086ACEF8
_0801A3B4: .4byte gUnknown_020314E0
_0801A3B8: .4byte 0x06015800
_0801A3BC: .4byte 0x800012F0
_0801A3C0:
ldr r0, _0801A3E4 @ =0x0000FF92
mov r7, r8
strh r0, [r7, #2]
movs r0, #0x2c
strh r0, [r7, #4]
mov r1, sb
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x2c]
strh r5, [r0]
adds r0, r3, #0
adds r0, #0xf2
strb r6, [r0]
ldr r2, _0801A3E8 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0xe4
strb r6, [r0]
b _0801A8B8
.align 2, 0
_0801A3E4: .4byte 0x0000FF92
_0801A3E8: .4byte gUnknown_020314E0
_0801A3EC:
adds r0, r4, #0
adds r0, #0xe4
movs r4, #4
mov sl, r4
mov r5, sl
strb r5, [r0]
ldr r6, _0801A4D8 @ =0x040000D4
ldr r1, _0801A4DC @ =gUnknown_086ACEF8
ldr r2, _0801A4E0 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0xf2
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #2
adds r2, r2, r1
adds r1, r3, #0
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #3
subs r0, r0, r1
lsls r0, r0, #6
ldr r1, [r2]
adds r1, r1, r0
str r1, [r6]
ldr r0, _0801A4E4 @ =0x06015800
str r0, [r6, #4]
ldr r0, _0801A4E8 @ =0x800010E0
str r0, [r6, #8]
ldr r0, [r6, #8]
ldr r3, _0801A4E0 @ =gUnknown_020314E0
ldr r5, [r3]
adds r1, r5, #0
adds r1, #0xf4
ldrh r2, [r1]
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0
bgt _0801A43A
b _0801A6C8
_0801A43A:
subs r0, r2, #1
strh r0, [r1]
adds r0, r5, #0
adds r0, #0xf0
ldrh r0, [r0]
cmp r0, #0
bne _0801A44A
b _0801A692
_0801A44A:
cmp r0, #0x28
bne _0801A456
ldr r0, _0801A4EC @ =gMPlayInfo_SE1
ldr r1, _0801A4F0 @ =gUnknown_0869F7C8
bl MPlayStart
_0801A456:
ldr r5, _0801A4E0 @ =gUnknown_020314E0
ldr r2, [r5]
adds r1, r2, #0
adds r1, #0xf0
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xf
bhi _0801A474
adds r1, #6
ldrh r0, [r1]
adds r0, #0xa0
strh r0, [r1]
_0801A474:
ldr r6, _0801A4E0 @ =gUnknown_020314E0
ldr r2, [r6]
adds r1, r2, #0
adds r1, #0xf0
ldrh r3, [r1]
adds r0, r3, #0
subs r0, #0x21
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #7
bls _0801A48C
b _0801A67A
_0801A48C:
cmp r3, #0x24
bls _0801A492
b _0801A5A0
_0801A492:
mov r3, sb
ldrh r0, [r3, #0x3c]
strh r7, [r3, #0x3c]
ldrh r0, [r1]
cmp r0, #0x23
bls _0801A4A0
b _0801A67A
_0801A4A0:
adds r0, r2, #0
adds r0, #0x25
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #3
bne _0801A4BA
ldr r4, _0801A4F4 @ =0x000001A5
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0801A4C8
_0801A4BA:
cmp r1, #4
bne _0801A500
ldr r5, _0801A4F8 @ =0x000006DC
adds r0, r2, r5
ldrb r0, [r0]
cmp r0, #9
bne _0801A500
_0801A4C8:
ldr r0, _0801A4E0 @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x70
movs r2, #0
strb r2, [r1]
ldr r2, _0801A4FC @ =gUnknown_02031520
b _0801A51C
.align 2, 0
_0801A4D8: .4byte 0x040000D4
_0801A4DC: .4byte gUnknown_086ACEF8
_0801A4E0: .4byte gUnknown_020314E0
_0801A4E4: .4byte 0x06015800
_0801A4E8: .4byte 0x800010E0
_0801A4EC: .4byte gMPlayInfo_SE1
_0801A4F0: .4byte gUnknown_0869F7C8
_0801A4F4: .4byte 0x000001A5
_0801A4F8: .4byte 0x000006DC
_0801A4FC: .4byte gUnknown_02031520
_0801A500:
ldr r3, _0801A534 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0x70
movs r1, #1
strb r1, [r0]
ldr r1, _0801A538 @ =0x040000D4
ldr r2, _0801A53C @ =gUnknown_02031520
ldr r0, [r2, #0x34]
str r0, [r1]
ldr r0, _0801A540 @ =0x05000200
str r0, [r1, #4]
ldr r0, _0801A544 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0801A51C:
ldr r0, _0801A548 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bne _0801A554
ldr r1, _0801A538 @ =0x040000D4
ldr r0, [r2, #0x34]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801A54C @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801A550 @ =0x80000060
b _0801A562
.align 2, 0
_0801A534: .4byte gUnknown_020314E0
_0801A538: .4byte 0x040000D4
_0801A53C: .4byte gUnknown_02031520
_0801A540: .4byte 0x05000200
_0801A544: .4byte 0x80000010
_0801A548: .4byte gMain
_0801A54C: .4byte 0x05000240
_0801A550: .4byte 0x80000060
_0801A554:
ldr r1, _0801A588 @ =0x040000D4
ldr r0, [r2, #0x34]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801A58C @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801A590 @ =0x80000070
_0801A562:
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0801A588 @ =0x040000D4
ldr r0, [r2, #0x34]
movs r6, #0xa0
lsls r6, r6, #1
adds r0, r0, r6
str r0, [r1]
ldr r0, _0801A594 @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801A598 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r7, _0801A59C @ =gUnknown_020314E0
ldr r0, [r7]
adds r0, #0x6f
movs r1, #2
b _0801A678
.align 2, 0
_0801A588: .4byte 0x040000D4
_0801A58C: .4byte 0x05000240
_0801A590: .4byte 0x80000070
_0801A594: .4byte 0x05000340
_0801A598: .4byte 0x80000030
_0801A59C: .4byte gUnknown_020314E0
_0801A5A0:
mov r3, sb
ldrh r0, [r3, #0x3c]
mov r4, sl
strh r4, [r3, #0x3c]
ldrh r0, [r1]
cmp r0, #0x27
bhi _0801A67A
adds r0, r2, #0
adds r0, #0x25
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #3
bne _0801A5C8
ldr r5, _0801A5E4 @ =0x000001A5
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0801A5D6
_0801A5C8:
cmp r1, #4
bne _0801A5F4
ldr r6, _0801A5E8 @ =0x000006DC
adds r0, r2, r6
ldrb r0, [r0]
cmp r0, #9
bne _0801A5F4
_0801A5D6:
ldr r0, _0801A5EC @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, #0x70
movs r2, #0
strb r2, [r1]
ldr r2, _0801A5F0 @ =gUnknown_02031520
b _0801A610
.align 2, 0
_0801A5E4: .4byte 0x000001A5
_0801A5E8: .4byte 0x000006DC
_0801A5EC: .4byte gUnknown_020314E0
_0801A5F0: .4byte gUnknown_02031520
_0801A5F4:
ldr r3, _0801A628 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0x70
movs r1, #1
strb r1, [r0]
ldr r1, _0801A62C @ =0x040000D4
ldr r2, _0801A630 @ =gUnknown_02031520
ldr r0, [r2, #0x30]
str r0, [r1]
ldr r0, _0801A634 @ =0x05000200
str r0, [r1, #4]
ldr r0, _0801A638 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0801A610:
ldr r0, _0801A63C @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bne _0801A648
ldr r1, _0801A62C @ =0x040000D4
ldr r0, [r2, #0x30]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801A640 @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801A644 @ =0x80000060
b _0801A656
.align 2, 0
_0801A628: .4byte gUnknown_020314E0
_0801A62C: .4byte 0x040000D4
_0801A630: .4byte gUnknown_02031520
_0801A634: .4byte 0x05000200
_0801A638: .4byte 0x80000010
_0801A63C: .4byte gMain
_0801A640: .4byte 0x05000240
_0801A644: .4byte 0x80000060
_0801A648:
ldr r1, _0801A6B0 @ =0x040000D4
ldr r0, [r2, #0x30]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801A6B4 @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801A6B8 @ =0x80000070
_0801A656:
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0801A6B0 @ =0x040000D4
ldr r0, [r2, #0x30]
movs r7, #0xa0
lsls r7, r7, #1
adds r0, r0, r7
str r0, [r1]
ldr r0, _0801A6BC @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801A6C0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0801A6C4 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x6f
movs r1, #1
_0801A678:
strb r1, [r0]
_0801A67A:
ldr r2, _0801A6C4 @ =gUnknown_020314E0
ldr r1, [r2]
adds r0, r1, #0
adds r0, #0xf0
ldrh r2, [r0]
cmp r2, #0
bne _0801A692
adds r0, #6
strh r2, [r0]
adds r1, #0xf8
movs r0, #0x3c
strh r0, [r1]
_0801A692:
ldr r3, _0801A6C4 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0xf6
movs r4, #0
ldrsh r0, [r0, r4]
movs r1, #0xa
bl __divsi3
adds r0, #0x7f
mov r5, r8
strh r0, [r5, #2]
movs r0, #0x2c
strh r0, [r5, #4]
b _0801A8B8
.align 2, 0
_0801A6B0: .4byte 0x040000D4
_0801A6B4: .4byte 0x05000240
_0801A6B8: .4byte 0x80000070
_0801A6BC: .4byte 0x05000340
_0801A6C0: .4byte 0x80000030
_0801A6C4: .4byte gUnknown_020314E0
_0801A6C8:
adds r7, r5, #0
adds r7, #0xf0
ldrh r0, [r7]
cmp r0, #0x1d
bls _0801A6D4
b _0801A8B8
_0801A6D4:
adds r1, r5, #0
adds r1, #0xf6
adds r4, r5, #0
adds r4, #0xf8
ldrh r0, [r4]
ldrh r2, [r1]
adds r0, r0, r2
strh r0, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x7f
mov r1, r8
strh r0, [r1, #2]
movs r0, #0x2c
strh r0, [r1, #4]
ldrh r0, [r7]
adds r0, #1
strh r0, [r7]
ldrh r0, [r4]
subs r0, #0xa
strh r0, [r4]
ldrh r0, [r7]
cmp r0, #0x18
bls _0801A7CE
adds r0, r5, #0
adds r0, #0x25
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #3
bne _0801A724
ldr r2, _0801A768 @ =0x000001A5
adds r0, r5, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0801A7CE
_0801A724:
cmp r1, #4
bne _0801A732
ldr r3, _0801A76C @ =0x000006DC
adds r0, r5, r3
ldrb r0, [r0]
cmp r0, #9
beq _0801A7CE
_0801A732:
mov r4, sb
ldrh r0, [r4, #0x3c]
mov r5, sl
strh r5, [r4, #0x3c]
ldrh r0, [r7]
cmp r0, #0x19
bls _0801A7BA
ldr r1, _0801A770 @ =gUnknown_02031520
ldr r3, [r1, #0x30]
str r3, [r6]
ldr r0, _0801A774 @ =0x05000200
str r0, [r6, #4]
ldr r0, _0801A778 @ =0x80000010
str r0, [r6, #8]
ldr r0, [r6, #8]
ldrb r0, [r4, #4]
adds r2, r1, #0
cmp r0, #1
bne _0801A784
adds r0, r3, #0
adds r0, #0x40
str r0, [r6]
ldr r0, _0801A77C @ =0x05000240
str r0, [r6, #4]
ldr r0, _0801A780 @ =0x80000060
b _0801A790
.align 2, 0
_0801A768: .4byte 0x000001A5
_0801A76C: .4byte 0x000006DC
_0801A770: .4byte gUnknown_02031520
_0801A774: .4byte 0x05000200
_0801A778: .4byte 0x80000010
_0801A77C: .4byte 0x05000240
_0801A780: .4byte 0x80000060
_0801A784:
adds r0, r3, #0
adds r0, #0x40
str r0, [r6]
ldr r0, _0801A850 @ =0x05000240
str r0, [r6, #4]
ldr r0, _0801A854 @ =0x80000070
_0801A790:
str r0, [r6, #8]
ldr r0, [r6, #8]
ldr r1, _0801A858 @ =0x040000D4
ldr r0, [r2, #0x30]
movs r6, #0xa0
lsls r6, r6, #1
adds r0, r0, r6
str r0, [r1]
ldr r0, _0801A85C @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801A860 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r7, _0801A864 @ =gUnknown_020314E0
ldr r0, [r7]
adds r0, #0x6f
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
adds r0, #0x70
strb r1, [r0]
_0801A7BA:
ldr r1, _0801A864 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0xf0
ldrh r0, [r0]
cmp r0, #0x1d
bne _0801A7CE
mov r2, sb
ldrh r0, [r2, #0x3c]
movs r0, #0
strh r0, [r2, #0x3c]
_0801A7CE:
ldr r3, _0801A864 @ =gUnknown_020314E0
ldr r2, [r3]
adds r0, r2, #0
adds r0, #0xf0
ldrh r0, [r0]
cmp r0, #0x1e
bne _0801A8B8
mov r4, sb
ldr r0, [r4, #0x44]
ldr r0, [r0, #0x2c]
movs r1, #0
movs r3, #0
strh r3, [r0]
adds r0, r2, #0
adds r0, #0xf2
strb r1, [r0]
ldr r5, _0801A864 @ =gUnknown_020314E0
ldr r0, [r5]
adds r0, #0xe4
strb r1, [r0]
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x25
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #3
bne _0801A812
ldr r6, _0801A868 @ =0x000001A5
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0801A8B8
_0801A812:
cmp r2, #4
bne _0801A820
ldr r7, _0801A86C @ =0x000006DC
adds r0, r1, r7
ldrb r0, [r0]
cmp r0, #9
beq _0801A8B8
_0801A820:
mov r1, sb
ldrh r0, [r1, #0x3c]
strh r3, [r1, #0x3c]
ldr r3, _0801A858 @ =0x040000D4
ldr r1, _0801A870 @ =gUnknown_02031520
ldr r4, [r1, #0x2c]
str r4, [r3]
ldr r0, _0801A874 @ =0x05000200
str r0, [r3, #4]
ldr r0, _0801A878 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
mov r2, sb
ldrb r0, [r2, #4]
adds r2, r1, #0
cmp r0, #1
bne _0801A880
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801A850 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801A87C @ =0x80000060
b _0801A88C
.align 2, 0
_0801A850: .4byte 0x05000240
_0801A854: .4byte 0x80000070
_0801A858: .4byte 0x040000D4
_0801A85C: .4byte 0x05000340
_0801A860: .4byte 0x80000030
_0801A864: .4byte gUnknown_020314E0
_0801A868: .4byte 0x000001A5
_0801A86C: .4byte 0x000006DC
_0801A870: .4byte gUnknown_02031520
_0801A874: .4byte 0x05000200
_0801A878: .4byte 0x80000010
_0801A87C: .4byte 0x80000060
_0801A880:
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801A94C @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801A950 @ =0x80000070
_0801A88C:
str r0, [r3, #8]
ldr r0, [r3, #8]
ldr r1, _0801A954 @ =0x040000D4
ldr r0, [r2, #0x2c]
movs r3, #0xa0
lsls r3, r3, #1
adds r0, r0, r3
str r0, [r1]
ldr r0, _0801A958 @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801A95C @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r4, _0801A960 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x6f
movs r1, #0
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x70
movs r1, #1
strb r1, [r0]
_0801A8B8:
movs r2, #0
ldr r5, [sp]
lsls r1, r5, #0x10
ldr r6, _0801A964 @ =gOamBuffer
mov ip, r6
ldr r7, _0801A968 @ =gUnknown_086B4568
mov sl, r7
asrs r1, r1, #0x10
movs r0, #0x5a
adds r6, r1, #0
muls r6, r0, r6
ldr r0, _0801A96C @ =0xFFFFFE00
mov sb, r0
_0801A8D2:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
add r4, r8
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
adds r0, r0, r6
add r0, sl
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r6
add r0, sl
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r6
add r1, sl
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
ldrh r5, [r2, #2]
lsls r1, r5, #0x17
lsrs r1, r1, #0x17
mov r7, r8
movs r5, #2
ldrsh r0, [r7, r5]
adds r1, r1, r0
ldr r7, _0801A970 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sb
ldrh r5, [r2, #2]
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, ip
mov r7, r8
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, #0xe
ble _0801A8D2
b _0801A97A
.align 2, 0
_0801A94C: .4byte 0x05000240
_0801A950: .4byte 0x80000070
_0801A954: .4byte 0x040000D4
_0801A958: .4byte 0x05000340
_0801A95C: .4byte 0x80000030
_0801A960: .4byte gUnknown_020314E0
_0801A964: .4byte gOamBuffer
_0801A968: .4byte gUnknown_086B4568
_0801A96C: .4byte 0xFFFFFE00
_0801A970: .4byte 0x000001FF
_0801A974:
movs r0, #1
mov r3, r8
strh r0, [r3]
_0801A97A:
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
thumb_func_start sub_1A98C
sub_1A98C: @ 0x0801A98C
push {lr}
ldr r0, _0801A9B0 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _0801A9E0
ldr r0, _0801A9B4 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _0801A9C8
cmp r0, #2
bgt _0801A9B8
cmp r0, #1
beq _0801A9C2
b _0801A9D8
.align 2, 0
_0801A9B0: .4byte gMain
_0801A9B4: .4byte gUnknown_020314E0
_0801A9B8:
cmp r0, #3
beq _0801A9CE
cmp r0, #4
beq _0801A9D4
b _0801A9D8
_0801A9C2:
bl sub_1AA38
b _0801A9D8
_0801A9C8:
bl sub_1AD84
b _0801A9D8
_0801A9CE:
bl sub_1AF84
b _0801A9D8
_0801A9D4:
bl sub_1C560
_0801A9D8:
ldr r0, _0801A9E4 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0x3c
strh r0, [r1, #0x26]
_0801A9E0:
pop {r0}
bx r0
.align 2, 0
_0801A9E4: .4byte gUnknown_020314E0
thumb_func_start sub_1A9E8
sub_1A9E8: @ 0x0801A9E8
push {lr}
ldr r2, _0801AA10 @ =gUnknown_020314E0
ldr r1, [r2]
ldrh r0, [r1, #0x26]
cmp r0, #0
beq _0801A9F8
subs r0, #1
strh r0, [r1, #0x26]
_0801A9F8:
ldr r0, [r2]
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _0801AA24
cmp r0, #2
bgt _0801AA14
cmp r0, #1
beq _0801AA1E
b _0801AA34
.align 2, 0
_0801AA10: .4byte gUnknown_020314E0
_0801AA14:
cmp r0, #3
beq _0801AA2A
cmp r0, #4
beq _0801AA30
b _0801AA34
_0801AA1E:
bl sub_1AAA0
b _0801AA34
_0801AA24:
bl sub_1ADF4
b _0801AA34
_0801AA2A:
bl sub_1AFD4
b _0801AA34
_0801AA30:
bl sub_1C5AC
_0801AA34:
pop {r0}
bx r0
thumb_func_start sub_1AA38
sub_1AA38: @ 0x0801AA38
push {r4, lr}
ldr r4, _0801AA88 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _0801AA8C @ =0x0000072F
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
ble _0801AA52
movs r0, #4
bl sub_19B64
_0801AA52:
ldr r0, [r4]
ldr r2, _0801AA90 @ =0x000005FC
adds r1, r0, r2
movs r2, #0
movs r3, #0
strh r3, [r1]
ldr r1, _0801AA94 @ =0x000005FB
adds r0, r0, r1
strb r2, [r0]
ldr r1, [r4]
ldr r2, _0801AA98 @ =0x000005FE
adds r0, r1, r2
strh r3, [r0]
movs r0, #0x71
strh r0, [r1, #0x28]
movs r0, #0xce
bl m4aSongNumStart
ldr r1, [r4]
ldr r0, _0801AA9C @ =0x0000C350
str r0, [r1, #0x3c]
movs r0, #8
bl sub_11B0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801AA88: .4byte gUnknown_020314E0
_0801AA8C: .4byte 0x0000072F
_0801AA90: .4byte 0x000005FC
_0801AA94: .4byte 0x000005FB
_0801AA98: .4byte 0x000005FE
_0801AA9C: .4byte 0x0000C350
thumb_func_start sub_1AAA0
sub_1AAA0: @ 0x0801AAA0
push {r4, r5, r6, lr}
ldr r6, _0801AB04 @ =gUnknown_020314E0
ldr r0, [r6]
mov ip, r0
ldrh r0, [r0, #0x28]
cmp r0, #0
bne _0801AAB0
b _0801AD3C
_0801AAB0:
subs r0, #1
movs r3, #0
movs r4, #0
mov r1, ip
strh r0, [r1, #0x28]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x64
bls _0801AB64
ldr r0, _0801AB08 @ =0x000005F7
add r0, ip
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
strb r1, [r0, #0x1f]
ldr r3, [r6]
ldr r5, _0801AB0C @ =0x0000132C
adds r2, r3, r5
ldr r0, [r2]
strh r4, [r0, #0x30]
ldr r0, [r2]
strh r4, [r0, #0x32]
ldr r0, [r2]
strh r4, [r0, #6]
ldrh r0, [r3, #0x28]
cmp r0, #0x6c
bls _0801AB38
ldr r2, _0801AB10 @ =0x000005FA
adds r0, r3, r2
strb r1, [r0]
ldr r2, [r6]
ldrh r0, [r2, #0x28]
cmp r0, #0x6e
bls _0801AB14
adds r2, r2, r5
ldr r1, [r2]
movs r0, #0xc3
strh r0, [r1, #0x10]
ldr r1, [r2]
movs r0, #0xde
b _0801AB20
.align 2, 0
_0801AB04: .4byte gUnknown_020314E0
_0801AB08: .4byte 0x000005F7
_0801AB0C: .4byte 0x0000132C
_0801AB10: .4byte 0x000005FA
_0801AB14:
adds r2, r2, r5
ldr r1, [r2]
movs r0, #0xc4
strh r0, [r1, #0x10]
ldr r1, [r2]
movs r0, #0xdd
_0801AB20:
strh r0, [r1, #0x12]
ldr r0, _0801AB34 @ =gUnknown_020314E0
ldr r0, [r0]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #6
strb r1, [r0]
b _0801ACFA
.align 2, 0
_0801AB34: .4byte gUnknown_020314E0
_0801AB38:
cmp r0, #0x68
bls _0801AB52
ldr r1, [r2]
movs r0, #0xc5
strh r0, [r1, #0x10]
ldr r1, [r2]
movs r0, #0xdb
strh r0, [r1, #0x12]
movs r4, #0xbd
lsls r4, r4, #2
adds r1, r3, r4
movs r0, #7
b _0801ACF8
_0801AB52:
ldr r0, [r2]
strb r1, [r0]
ldr r0, [r6]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #8
strb r1, [r0]
b _0801ACFA
_0801AB64:
cmp r0, #0x14
bls _0801ABFE
cmp r0, #0x4d
bls _0801AB9C
movs r0, #0xbd
lsls r0, r0, #2
add r0, ip
movs r1, #9
strb r1, [r0]
ldr r2, [r6]
ldrh r0, [r2, #0x28]
cmp r0, #0x4f
bls _0801AB80
b _0801ACFA
_0801AB80:
ldr r3, _0801AB98 @ =0x000002F6
adds r1, r2, r3
ldrh r0, [r1]
cmp r0, #0
bne _0801AB8C
b _0801ACFA
_0801AB8C:
subs r0, #1
strh r0, [r1]
ldrh r0, [r2, #0x28]
adds r0, #1
strh r0, [r2, #0x28]
b _0801ACFA
.align 2, 0
_0801AB98: .4byte 0x000002F6
_0801AB9C:
cmp r0, #0x48
bls _0801ABAA
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0xa
b _0801ACF8
_0801ABAA:
cmp r0, #0x43
bls _0801ABB8
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0xb
b _0801ACF8
_0801ABB8:
cmp r0, #0x2c
bls _0801ABC6
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0xc
b _0801ACF8
_0801ABC6:
cmp r0, #0x26
bls _0801ABD4
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0xd
b _0801ACF8
_0801ABD4:
cmp r0, #0x1c
bls _0801ABE2
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0xe
b _0801ACF8
_0801ABE2:
cmp r0, #0x17
bls _0801ABF0
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0xf
b _0801ACF8
_0801ABF0:
ldr r0, [r6]
movs r4, #0xbd
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0x10
strb r1, [r0]
b _0801ACFA
_0801ABFE:
cmp r0, #0x12
bls _0801AC28
ldr r1, _0801AC24 @ =0x0000132C
add r1, ip
ldr r2, [r1]
movs r0, #0xc1
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0xe2
strh r0, [r2, #0x12]
ldr r0, [r1]
strb r3, [r0]
ldr r0, [r6]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0x11
strb r1, [r0]
b _0801ACFA
.align 2, 0
_0801AC24: .4byte 0x0000132C
_0801AC28:
cmp r0, #0x10
bls _0801AC9C
mov r2, ip
strb r3, [r2, #0x1f]
ldr r0, [r6]
ldr r2, _0801AC8C @ =0x000005FE
adds r1, r0, r2
strh r4, [r1]
ldr r1, _0801AC90 @ =0x000005FB
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
subs r2, #4
adds r0, r0, r2
strb r3, [r0]
ldr r3, [r6]
ldr r0, _0801AC94 @ =0x0000132C
adds r1, r3, r0
ldr r0, [r1]
strh r4, [r0, #6]
ldr r2, [r1]
ldr r0, _0801AC98 @ =0x0000FF56
strh r0, [r2, #0x30]
ldr r2, [r1]
movs r0, #0xdc
strh r0, [r2, #0x32]
ldr r2, [r1]
movs r0, #0xbe
strh r0, [r2, #0x10]
ldr r1, [r1]
movs r0, #0xe8
strh r0, [r1, #0x12]
movs r1, #0xbd
lsls r1, r1, #2
adds r3, r3, r1
movs r0, #0x12
strb r0, [r3]
ldr r0, [r6]
ldrh r0, [r0, #0x28]
cmp r0, #0x12
bne _0801ACFA
movs r0, #0xc2
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
b _0801ACFA
.align 2, 0
_0801AC8C: .4byte 0x000005FE
_0801AC90: .4byte 0x000005FB
_0801AC94: .4byte 0x0000132C
_0801AC98: .4byte 0x0000FF56
_0801AC9C:
cmp r0, #0xc
bls _0801ACB8
ldr r0, _0801ACB4 @ =0x0000132C
add r0, ip
ldr r0, [r0]
strh r4, [r0, #6]
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0x13
b _0801ACF8
.align 2, 0
_0801ACB4: .4byte 0x0000132C
_0801ACB8:
cmp r0, #8
bls _0801ACD4
ldr r0, _0801ACD0 @ =0x0000132C
add r0, ip
ldr r0, [r0]
strh r4, [r0, #6]
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0x14
b _0801ACF8
.align 2, 0
_0801ACD0: .4byte 0x0000132C
_0801ACD4:
cmp r0, #4
bls _0801ACF0
ldr r0, _0801ACEC @ =0x0000132C
add r0, ip
ldr r0, [r0]
strh r4, [r0, #6]
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0x15
b _0801ACF8
.align 2, 0
_0801ACEC: .4byte 0x0000132C
_0801ACF0:
movs r1, #0xbd
lsls r1, r1, #2
add r1, ip
movs r0, #0x16
_0801ACF8:
strb r0, [r1]
_0801ACFA:
ldr r0, _0801AD34 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0801AD38 @ =0x0000132C
adds r2, r2, r3
ldr r1, [r2]
movs r4, #0x10
ldrsh r0, [r1, r4]
lsls r0, r0, #1
strh r0, [r1, #0x28]
ldr r1, [r2]
movs r3, #0x12
ldrsh r0, [r1, r3]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
ldr r1, [r2]
ldr r0, [r1, #0x28]
str r0, [r1, #0x2c]
ldr r1, [r2]
movs r4, #0x10
ldrsh r0, [r1, r4]
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r2]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #8
str r0, [r1, #0x38]
b _0801AD74
.align 2, 0
_0801AD34: .4byte gUnknown_020314E0
_0801AD38: .4byte 0x0000132C
_0801AD3C:
movs r3, #0
movs r0, #0x1e
mov r4, ip
strh r0, [r4, #0x26]
ldr r2, _0801AD7C @ =0x0000132C
add r2, ip
ldr r1, [r2]
movs r4, #0x10
ldrsh r0, [r1, r4]
lsls r0, r0, #1
strh r0, [r1, #0x28]
ldr r1, [r2]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
mov r0, ip
adds r0, #0x25
strb r3, [r0]
ldr r0, [r6]
ldr r4, _0801AD80 @ =0x000005F7
adds r0, r0, r4
strb r3, [r0]
ldr r0, [r6]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r0, r1
strb r3, [r0]
_0801AD74:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0801AD7C: .4byte 0x0000132C
_0801AD80: .4byte 0x000005F7
thumb_func_start sub_1AD84
sub_1AD84: @ 0x0801AD84
push {r4, lr}
ldr r4, _0801ADB4 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r0, _0801ADB8 @ =0x000186A0
str r0, [r1, #0x3c]
ldr r0, _0801ADBC @ =0x000002DA
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #3
bne _0801ADC0
movs r0, #4
strb r0, [r2]
movs r0, #0xb7
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
ldr r1, [r4]
movs r0, #0xfa
lsls r0, r0, #1
b _0801ADD8
.align 2, 0
_0801ADB4: .4byte gUnknown_020314E0
_0801ADB8: .4byte 0x000186A0
_0801ADBC: .4byte 0x000002DA
_0801ADC0:
movs r2, #0xb4
lsls r2, r2, #2
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801ADD6
movs r0, #0x96
lsls r0, r0, #1
b _0801ADD8
_0801ADD6:
movs r0, #0x78
_0801ADD8:
strh r0, [r1, #0x28]
ldr r0, _0801ADEC @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0801ADF0 @ =0x000005F7
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801ADEC: .4byte gUnknown_020314E0
_0801ADF0: .4byte 0x000005F7
thumb_func_start sub_1ADF4
sub_1ADF4: @ 0x0801ADF4
push {r4, r5, r6, lr}
ldr r5, _0801AE7C @ =gUnknown_020314E0
ldr r0, [r5]
ldrh r4, [r0, #0x28]
cmp r4, #0
beq _0801AEE0
ldr r1, _0801AE80 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r0, [r5]
strb r2, [r0, #0x1f]
ldr r5, [r5]
mov ip, r5
ldrh r0, [r5, #0x28]
subs r0, #1
strh r0, [r5, #0x28]
add r1, ip
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
ldr r2, [r1]
movs r0, #0x58
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0x94
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r3, [r0, #6]
ldr r2, [r1]
movs r3, #0x10
ldrsh r0, [r2, r3]
lsls r0, r0, #1
strh r0, [r2, #0x28]
ldr r1, [r1]
movs r4, #0x12
ldrsh r0, [r1, r4]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
movs r0, #0xb4
lsls r0, r0, #2
add r0, ip
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0801AE5A
b _0801AF78
_0801AE5A:
ldrh r1, [r5, #0x28]
adds r0, r1, #0
cmp r0, #0xc8
bls _0801AE64
b _0801AF78
_0801AE64:
cmp r0, #0xc8
bne _0801AEA8
mov r0, ip
adds r0, #0xe4
ldrb r0, [r0]
cmp r0, #0
beq _0801AE84
adds r0, r1, #1
mov r1, ip
strh r0, [r1, #0x28]
b _0801AECA
.align 2, 0
_0801AE7C: .4byte gUnknown_020314E0
_0801AE80: .4byte 0x0000132C
_0801AE84:
mov r2, ip
ldr r0, [r2, #0x48]
cmp r0, #0
beq _0801AEA2
movs r0, #0xb6
lsls r0, r0, #1
add r0, ip
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0801AEA2
bl sub_22978
b _0801AECA
_0801AEA2:
bl sub_22C6C
b _0801AECA
_0801AEA8:
mov r3, ip
ldr r0, [r3, #0x48]
cmp r0, #0
beq _0801AEC6
movs r0, #0xb6
lsls r0, r0, #1
add r0, ip
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0801AEC6
bl sub_22A30
b _0801AECA
_0801AEC6:
bl sub_22D54
_0801AECA:
ldr r0, _0801AEDC @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #0x28]
cmp r0, #9
bhi _0801AF78
adds r0, #1
strh r0, [r1, #0x28]
b _0801AF78
.align 2, 0
_0801AEDC: .4byte gUnknown_020314E0
_0801AEE0:
ldr r1, _0801AF50 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
strb r4, [r0]
ldr r0, [r5]
adds r0, #0x25
strb r4, [r0]
ldr r3, [r5]
adds r1, r3, r1
ldr r2, [r1]
movs r6, #0
movs r0, #0x58
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0xa2
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r4, [r0, #6]
ldr r2, [r1]
movs r4, #0x10
ldrsh r0, [r2, r4]
lsls r0, r0, #1
strh r0, [r2, #0x28]
ldr r1, [r1]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
ldr r4, _0801AF54 @ =0x000005F7
adds r3, r3, r4
strb r6, [r3]
ldr r1, [r5]
movs r2, #0xb4
lsls r2, r2, #2
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _0801AF60
ldr r3, _0801AF58 @ =0x000002DA
adds r1, r1, r3
movs r0, #3
strb r0, [r1]
ldr r1, [r5]
ldr r4, _0801AF5C @ =0x000002DE
adds r2, r1, r4
movs r0, #0x30
strh r0, [r2]
movs r0, #0xb8
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #0x1e
strh r0, [r1]
b _0801AF78
.align 2, 0
_0801AF50: .4byte 0x0000132C
_0801AF54: .4byte 0x000005F7
_0801AF58: .4byte 0x000002DA
_0801AF5C: .4byte 0x000002DE
_0801AF60:
strb r6, [r1, #0x1f]
ldr r1, [r5]
movs r0, #0x3c
strh r0, [r1, #0x26]
ldr r2, _0801AF80 @ =0x0000132C
adds r1, r1, r2
ldr r2, [r1]
movs r0, #0x14
strh r0, [r2, #0x30]
ldr r1, [r1]
movs r0, #0xc8
strh r0, [r1, #0x32]
_0801AF78:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0801AF80: .4byte 0x0000132C
thumb_func_start sub_1AF84
sub_1AF84: @ 0x0801AF84
push {r4, lr}
ldr r0, _0801AFC4 @ =gUnknown_020314E0
ldr r3, [r0]
movs r1, #0xdc
lsls r1, r1, #1
adds r0, r3, r1
movs r2, #0
strh r2, [r0]
movs r4, #0xdb
lsls r4, r4, #1
adds r0, r3, r4
strh r2, [r0]
movs r0, #0xb4
strh r0, [r3, #0x28]
adds r4, #4
adds r1, r3, r4
strh r0, [r1]
ldr r0, _0801AFC8 @ =0x0007A120
str r0, [r3, #0x3c]
ldr r0, _0801AFCC @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0xce
strh r1, [r0, #0x38]
ldrh r1, [r0, #0x3c]
strh r2, [r0, #0x3c]
ldr r0, _0801AFD0 @ =0x000005F7
adds r1, r3, r0
movs r0, #1
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801AFC4: .4byte gUnknown_020314E0
_0801AFC8: .4byte 0x0007A120
_0801AFCC: .4byte gMain
_0801AFD0: .4byte 0x000005F7
thumb_func_start sub_1AFD4
sub_1AFD4: @ 0x0801AFD4
push {r4, r5, r6, r7, lr}
ldr r7, _0801B074 @ =gUnknown_020314E0
ldr r2, [r7]
ldrh r0, [r2, #0x28]
adds r6, r0, #0
adds r5, r7, #0
cmp r6, #0x18
bls _0801B080
ldr r1, _0801B078 @ =0x0000132C
adds r0, r2, r1
ldr r0, [r0]
movs r3, #0
movs r2, #1
strb r2, [r0]
ldr r0, [r7]
strb r2, [r0, #0x1f]
ldr r4, [r7]
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, #0xdc
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0x62
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 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]
ldrh r0, [r4, #0x28]
cmp r0, #0x9b
bls _0801B054
adds r1, r0, #0
subs r1, #0x9c
cmp r1, #0
bge _0801B04A
adds r1, #7
_0801B04A:
asrs r1, r1, #3
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r4, r3
strb r1, [r0]
_0801B054:
ldr r1, [r5]
ldrh r0, [r1, #0x28]
cmp r0, #0x31
bhi _0801B060
adds r0, #1
strh r0, [r1, #0x28]
_0801B060:
ldr r0, [r5]
ldr r1, _0801B07C @ =0x000001A5
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_1B140
b _0801B12A
.align 2, 0
_0801B074: .4byte gUnknown_020314E0
_0801B078: .4byte 0x0000132C
_0801B07C: .4byte 0x000001A5
_0801B080:
cmp r6, #0
beq _0801B0A0
subs r0, #1
strh r0, [r2, #0x28]
ldrh r1, [r2, #0x28]
movs r0, #0x18
subs r0, r0, r1
cmp r0, #0
bge _0801B094
adds r0, #7
_0801B094:
asrs r1, r0, #3
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r2, r3
strb r1, [r0]
b _0801B12A
_0801B0A0:
ldr r4, _0801B130 @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
strb r6, [r0]
ldr r0, [r7]
strb r6, [r0, #0x1f]
ldr r3, [r7]
movs r5, #0
movs r0, #0x3c
strh r0, [r3, #0x26]
adds r2, r3, r4
ldr r1, [r2]
movs r0, #0x60
strh r0, [r1, #0x30]
ldr r1, [r2]
movs r0, #0xc0
strh r0, [r1, #0x32]
ldr r1, [r2]
movs r0, #0xdf
strh r0, [r1, #0x10]
ldr r1, [r2]
movs r0, #0x63
strh r0, [r1, #0x12]
ldr r0, [r2]
strh r6, [r0, #6]
ldr r0, _0801B134 @ =0x000005F7
adds r3, r3, r0
strb r5, [r3]
ldr r2, [r7]
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 r3, #0x12
ldrsh r0, [r1, r3]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
adds r2, #0x25
strb r5, [r2]
ldr r0, [r7]
movs r1, #0xbc
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0x13
strb r1, [r0]
movs r0, #0xc3
bl m4aSongNumStart
ldr r1, [r7]
ldr r2, _0801B138 @ =0x0000072E
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _0801B12A
ldr r3, _0801B13C @ =0x00000281
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0801B12A
movs r0, #6
bl sub_19B64
_0801B12A:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801B130: .4byte 0x0000132C
_0801B134: .4byte 0x000005F7
_0801B138: .4byte 0x0000072E
_0801B13C: .4byte 0x00000281
thumb_func_start sub_1B140
sub_1B140: @ 0x0801B140
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
movs r7, #0
ldr r0, _0801B228 @ =gMain
ldrb r0, [r0, #0xf]
ldr r1, _0801B22C @ =gUnknown_020314E0
mov r8, r1
cmp r0, #0
bne _0801B16A
ldr r0, [r1]
movs r3, #0xdd
lsls r3, r3, #1
adds r1, r0, r3
ldrh r0, [r1]
cmp r0, #0
beq _0801B16A
subs r0, #1
strh r0, [r1]
_0801B16A:
lsls r0, r2, #0x10
asrs r5, r0, #0x10
cmp r5, #0
beq _0801B176
bl sub_1BB68
_0801B176:
ldr r4, _0801B22C @ =gUnknown_020314E0
ldr r0, [r4]
movs r6, #0xdd
lsls r6, r6, #1
adds r0, r0, r6
ldrh r0, [r0]
cmp r0, #0x95
bne _0801B1B8
bl m4aMPlayAllStop
ldr r0, [r4]
ldr r2, _0801B230 @ =0x000006DE
adds r1, r0, r2
movs r2, #0
strh r5, [r1]
ldr r3, _0801B234 @ =0x000006DD
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r4]
movs r1, #0xd7
lsls r1, r1, #1
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r4]
ldr r2, _0801B238 @ =0x00000252
adds r0, r0, r2
strh r5, [r0]
ldr r0, _0801B228 @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0xce
strh r1, [r0, #0x38]
ldrh r1, [r0, #0x3c]
strh r5, [r0, #0x3c]
_0801B1B8:
ldr r1, [r4]
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0x92
bne _0801B1E6
adds r1, #0xe4
movs r0, #0x12
strb r0, [r1]
ldr r1, _0801B23C @ =0x040000D4
ldr r0, _0801B240 @ =gUnknown_084F61EC
str r0, [r1]
ldr r0, _0801B244 @ =0x06015C00
str r0, [r1, #4]
ldr r0, _0801B248 @ =0x800004A0
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0801B24C @ =gUnknown_081B45A4
str r0, [r1]
ldr r0, _0801B250 @ =0x05000180
str r0, [r1, #4]
ldr r0, _0801B254 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0801B1E6:
ldr r0, [r4]
adds r2, r0, r6
ldrh r1, [r2]
adds r0, r1, #0
subs r0, #0x91
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r4
cmp r0, #4
bls _0801B1FC
b _0801B332
_0801B1FC:
cmp r1, #0x92
bls _0801B2B8
ldr r1, _0801B228 @ =gMain
ldrh r0, [r1, #0x3c]
movs r0, #4
strh r0, [r1, #0x3c]
ldrh r0, [r2]
cmp r0, #0x94
bls _0801B210
b _0801B332
_0801B210:
ldrb r0, [r1, #4]
cmp r0, #1
bne _0801B264
ldr r1, _0801B23C @ =0x040000D4
ldr r2, _0801B258 @ =gUnknown_02031520
ldr r0, [r2, #0x30]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801B25C @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801B260 @ =0x80000060
b _0801B274
.align 2, 0
_0801B228: .4byte gMain
_0801B22C: .4byte gUnknown_020314E0
_0801B230: .4byte 0x000006DE
_0801B234: .4byte 0x000006DD
_0801B238: .4byte 0x00000252
_0801B23C: .4byte 0x040000D4
_0801B240: .4byte gUnknown_084F61EC
_0801B244: .4byte 0x06015C00
_0801B248: .4byte 0x800004A0
_0801B24C: .4byte gUnknown_081B45A4
_0801B250: .4byte 0x05000180
_0801B254: .4byte 0x80000010
_0801B258: .4byte gUnknown_02031520
_0801B25C: .4byte 0x05000240
_0801B260: .4byte 0x80000060
_0801B264:
ldr r1, _0801B29C @ =0x040000D4
ldr r2, _0801B2A0 @ =gUnknown_02031520
ldr r0, [r2, #0x30]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801B2A4 @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801B2A8 @ =0x80000070
_0801B274:
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0801B29C @ =0x040000D4
ldr r0, [r2, #0x30]
movs r3, #0xa0
lsls r3, r3, #1
adds r0, r0, r3
str r0, [r1]
ldr r0, _0801B2AC @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801B2B0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r2, _0801B2B4 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x6f
movs r3, #0
movs r1, #1
b _0801B328
.align 2, 0
_0801B29C: .4byte 0x040000D4
_0801B2A0: .4byte gUnknown_02031520
_0801B2A4: .4byte 0x05000240
_0801B2A8: .4byte 0x80000070
_0801B2AC: .4byte 0x05000340
_0801B2B0: .4byte 0x80000030
_0801B2B4: .4byte gUnknown_020314E0
_0801B2B8:
ldr r1, _0801B2E0 @ =gMain
ldrh r0, [r1, #0x3c]
movs r0, #7
strh r0, [r1, #0x3c]
ldrh r0, [r2]
cmp r0, #0x91
bls _0801B2C8
b _0801B44A
_0801B2C8:
ldrb r0, [r1, #4]
cmp r0, #1
bne _0801B2F4
ldr r1, _0801B2E4 @ =0x040000D4
ldr r2, _0801B2E8 @ =gUnknown_02031520
ldr r0, [r2, #0x34]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801B2EC @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801B2F0 @ =0x80000060
b _0801B304
.align 2, 0
_0801B2E0: .4byte gMain
_0801B2E4: .4byte 0x040000D4
_0801B2E8: .4byte gUnknown_02031520
_0801B2EC: .4byte 0x05000240
_0801B2F0: .4byte 0x80000060
_0801B2F4:
ldr r1, _0801B3FC @ =0x040000D4
ldr r2, _0801B400 @ =gUnknown_02031520
ldr r0, [r2, #0x34]
adds r0, #0x40
str r0, [r1]
ldr r0, _0801B404 @ =0x05000240
str r0, [r1, #4]
ldr r0, _0801B408 @ =0x80000070
_0801B304:
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0801B3FC @ =0x040000D4
ldr r0, [r2, #0x34]
movs r4, #0xa0
lsls r4, r4, #1
adds r0, r0, r4
str r0, [r1]
ldr r0, _0801B40C @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801B410 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r2, _0801B414 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x6f
movs r3, #0
movs r1, #2
_0801B328:
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x70
strb r3, [r0]
mov r8, r2
_0801B332:
mov r5, r8
ldr r0, [r5]
movs r6, #0xdd
lsls r6, r6, #1
adds r0, r0, r6
ldrh r0, [r0]
cmp r0, #0x91
beq _0801B344
b _0801B44A
_0801B344:
movs r0, #0xb
bl m4aSongNumStart
ldr r0, [r5]
movs r1, #0xd3
lsls r1, r1, #1
adds r0, r0, r1
movs r4, #0
strb r4, [r0]
ldr r0, [r5]
movs r2, #0xd4
lsls r2, r2, #1
adds r0, r0, r2
strb r4, [r0]
ldr r3, [r5]
ldr r2, _0801B418 @ =gUnknown_086AD2DE
adds r1, r3, r1
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r5, _0801B41C @ =0x000001A7
adds r1, r3, r5
strb r0, [r1]
movs r0, #6
movs r1, #0
bl sub_1C7F4
movs r0, #1
bl sub_21FBC
ldr r2, _0801B420 @ =gMain
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x1c]
movs r3, #1
strh r3, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x20]
strh r3, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x18]
strh r3, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x24]
strh r3, [r0]
ldr r1, _0801B3FC @ =0x040000D4
ldr r0, _0801B424 @ =gUnknown_081B8784
str r0, [r1]
ldr r0, _0801B428 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0801B42C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0801B430 @ =gUnknown_081B8984
str r0, [r1]
ldr r0, _0801B434 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0801B438 @ =0x80000620
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r6, _0801B43C @ =0x000002EA
adds r1, r2, r6
movs r0, #0x50
strh r0, [r1]
strh r4, [r2, #0x2a]
mov r1, r8
ldr r0, [r1]
movs r4, #0xdc
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #0xf
strh r1, [r0]
strh r3, [r2, #0x28]
movs r0, #0x8f
bl m4aSongNumStart
mov r5, r8
ldr r1, [r5]
movs r6, #0xf1
lsls r6, r6, #1
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _0801B440
movs r0, #0xd5
lsls r0, r0, #1
adds r1, r1, r0
movs r0, #1
b _0801B448
.align 2, 0
_0801B3FC: .4byte 0x040000D4
_0801B400: .4byte gUnknown_02031520
_0801B404: .4byte 0x05000240
_0801B408: .4byte 0x80000070
_0801B40C: .4byte 0x05000340
_0801B410: .4byte 0x80000030
_0801B414: .4byte gUnknown_020314E0
_0801B418: .4byte gUnknown_086AD2DE
_0801B41C: .4byte 0x000001A7
_0801B420: .4byte gMain
_0801B424: .4byte gUnknown_081B8784
_0801B428: .4byte 0x050003C0
_0801B42C: .4byte 0x80000010
_0801B430: .4byte gUnknown_081B8984
_0801B434: .4byte 0x06002000
_0801B438: .4byte 0x80000620
_0801B43C: .4byte 0x000002EA
_0801B440:
movs r2, #0xd5
lsls r2, r2, #1
adds r1, r1, r2
movs r0, #0
_0801B448:
strb r0, [r1]
_0801B44A:
mov r4, r8
ldr r3, [r4]
movs r5, #0xdd
lsls r5, r5, #1
adds r0, r3, r5
ldrh r0, [r0]
cmp r0, #0x90
bls _0801B45C
b _0801B6F2
_0801B45C:
movs r6, #0xdc
lsls r6, r6, #3
adds r1, r3, r6
movs r2, #0
movs r0, #0
strh r0, [r1]
ldr r0, _0801B4D8 @ =0x000006C4
adds r1, r3, r0
movs r0, #2
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0801B4DC @ =0x000006DB
adds r0, r0, r1
strb r2, [r0]
movs r7, #0
ldr r3, [r4]
movs r4, #0xdc
lsls r4, r4, #1
adds r2, r3, r4
ldrh r1, [r2]
movs r5, #0
ldrsh r0, [r2, r5]
cmp r0, #0
ble _0801B552
subs r0, r1, #1
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xe
ble _0801B540
movs r6, #0
ldrsh r1, [r2, r6]
movs r0, #0x1e
subs r0, r0, r1
lsls r1, r0, #3
subs r1, r1, r0
subs r4, #2
adds r0, r3, r4
strh r1, [r0]
movs r5, #0
ldrsh r0, [r2, r5]
cmp r0, #0xf
beq _0801B4B4
b _0801B614
_0801B4B4:
movs r6, #0xd3
lsls r6, r6, #1
adds r1, r3, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #3
bne _0801B4F0
ldr r1, _0801B4E0 @ =0x000005F6
adds r0, r3, r1
ldrb r1, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _0801B4E4
adds r0, r1, #0
adds r0, #0xa
b _0801B526
.align 2, 0
_0801B4D8: .4byte 0x000006C4
_0801B4DC: .4byte 0x000006DB
_0801B4E0: .4byte 0x000005F6
_0801B4E4:
ldr r4, _0801B4EC @ =0x000001A7
adds r1, r3, r4
movs r0, #0xc
b _0801B52A
.align 2, 0
_0801B4EC: .4byte 0x000001A7
_0801B4F0:
cmp r0, #6
bne _0801B518
ldr r0, _0801B504 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _0801B50C
ldr r5, _0801B508 @ =0x000001A7
adds r1, r3, r5
movs r0, #0x16
b _0801B52A
.align 2, 0
_0801B504: .4byte gMain
_0801B508: .4byte 0x000001A7
_0801B50C:
ldr r6, _0801B514 @ =0x000001A7
adds r1, r3, r6
movs r0, #0x17
b _0801B52A
.align 2, 0
_0801B514: .4byte 0x000001A7
_0801B518:
ldr r0, _0801B538 @ =gUnknown_086AD2DE
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
_0801B526:
ldr r2, _0801B53C @ =0x000001A7
adds r1, r3, r2
_0801B52A:
strb r0, [r1]
movs r0, #6
movs r1, #0
bl sub_1C7F4
movs r7, #1
b _0801B614
.align 2, 0
_0801B538: .4byte gUnknown_086AD2DE
_0801B53C: .4byte 0x000001A7
_0801B540:
movs r4, #0
ldrsh r1, [r2, r4]
lsls r0, r1, #3
subs r0, r0, r1
movs r5, #0xdb
lsls r5, r5, #1
adds r1, r3, r5
strh r0, [r1]
b _0801B614
_0801B552:
ldr r0, _0801B58C @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0801B5B2
ldr r6, _0801B590 @ =0x000006DD
adds r0, r3, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801B5B2
movs r0, #0x82
bl m4aSongNumStart
mov r1, r8
ldr r0, [r1]
movs r2, #0xd3
lsls r2, r2, #1
adds r1, r0, r2
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0801B594
subs r0, r2, #1
b _0801B596
.align 2, 0
_0801B58C: .4byte gMain
_0801B590: .4byte 0x000006DD
_0801B594:
movs r0, #7
_0801B596:
strb r0, [r1]
ldr r2, _0801B5EC @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xd4
lsls r3, r3, #1
adds r0, r0, r3
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
movs r4, #0xdc
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #0x1e
strh r1, [r0]
_0801B5B2:
ldr r0, _0801B5F0 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0801B614
ldr r5, _0801B5EC @ =gUnknown_020314E0
ldr r0, [r5]
ldr r6, _0801B5F4 @ =0x000006DD
adds r0, r0, r6
movs r4, #0
ldrsb r4, [r0, r4]
cmp r4, #0
bne _0801B614
movs r0, #0x82
bl m4aSongNumStart
ldr r0, [r5]
movs r2, #0xd3
lsls r2, r2, #1
adds r1, r0, r2
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
bgt _0801B5F8
adds r0, r2, #1
strb r0, [r1]
b _0801B5FA
.align 2, 0
_0801B5EC: .4byte gUnknown_020314E0
_0801B5F0: .4byte gMain
_0801B5F4: .4byte 0x000006DD
_0801B5F8:
strb r4, [r1]
_0801B5FA:
ldr r2, _0801B63C @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xd4
lsls r3, r3, #1
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
movs r4, #0xdc
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #0x1e
strh r1, [r0]
_0801B614:
adds r0, r7, #0
bl sub_21FBC
ldr r0, _0801B63C @ =gUnknown_020314E0
ldr r1, [r0]
movs r5, #0xd4
lsls r5, r5, #1
adds r0, r1, r5
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
beq _0801B64A
ldr r6, _0801B640 @ =0x000001A9
adds r1, r1, r6
ldrb r0, [r1]
cmp r0, #0
beq _0801B644
subs r0, #1
strb r0, [r1]
b _0801B662
.align 2, 0
_0801B63C: .4byte gUnknown_020314E0
_0801B640: .4byte 0x000001A9
_0801B644:
movs r0, #7
strb r0, [r1]
b _0801B662
_0801B64A:
ldr r0, _0801B65C @ =0x000001A9
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #6
bhi _0801B660
adds r0, #1
strb r0, [r1]
b _0801B662
.align 2, 0
_0801B65C: .4byte 0x000001A9
_0801B660:
strb r2, [r1]
_0801B662:
ldr r1, _0801B6C0 @ =0x040000D4
ldr r3, _0801B6C4 @ =gUnknown_086AD50C
ldr r4, _0801B6C8 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0801B6CC @ =0x000001A9
adds r0, r2, r5
ldrb r0, [r0]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r3
ldr r0, [r0]
str r0, [r1]
ldr r0, _0801B6D0 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0801B6D4 @ =0x80000620
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r3, _0801B6D8 @ =gMain
movs r6, #0x2a
ldrsh r0, [r3, r6]
lsls r0, r0, #2
movs r1, #0x50
subs r1, r1, r0
ldr r5, _0801B6DC @ =0x000002EA
adds r0, r3, r5
strh r1, [r0]
ldr r6, _0801B6E0 @ =0x00000252
adds r2, r2, r6
ldrh r0, [r2]
mov r8, r4
cmp r0, #0
beq _0801B6E4
ldrh r1, [r3, #0x2a]
movs r2, #0x2a
ldrsh r0, [r3, r2]
cmp r0, #0
ble _0801B6F2
subs r0, r1, #1
strh r0, [r3, #0x2a]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bne _0801B6F2
strh r0, [r3, #0x28]
movs r0, #0x90
strh r0, [r3, #0x26]
b _0801B6F2
.align 2, 0
_0801B6C0: .4byte 0x040000D4
_0801B6C4: .4byte gUnknown_086AD50C
_0801B6C8: .4byte gUnknown_020314E0
_0801B6CC: .4byte 0x000001A9
_0801B6D0: .4byte 0x06002000
_0801B6D4: .4byte 0x80000620
_0801B6D8: .4byte gMain
_0801B6DC: .4byte 0x000002EA
_0801B6E0: .4byte 0x00000252
_0801B6E4:
ldrh r1, [r3, #0x2a]
movs r4, #0x2a
ldrsh r0, [r3, r4]
cmp r0, #0x13
bgt _0801B6F2
adds r0, r1, #1
strh r0, [r3, #0x2a]
_0801B6F2:
mov r5, r8
ldr r2, [r5]
movs r6, #0xdc
lsls r6, r6, #1
adds r0, r2, r6
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
ble _0801B706
b _0801B85E
_0801B706:
ldr r0, _0801B76C @ =gMain
movs r3, #0x2a
ldrsh r1, [r0, r3]
adds r3, r0, #0
cmp r1, #0x13
bgt _0801B714
b _0801B85E
_0801B714:
ldrh r1, [r3, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0801B720
b _0801B82C
_0801B720:
ldr r4, _0801B770 @ =0x000006DD
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801B730
b _0801B82C
_0801B730:
ldr r5, _0801B774 @ =0x000001A7
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
ldr r1, _0801B778 @ =gUnknown_086AD000
adds r4, r0, r1
ldr r1, _0801B77C @ =gUnknown_086AD2DE
subs r6, #0x12
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #3
bne _0801B784
movs r3, #0xf1
lsls r3, r3, #1
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _0801B784
ldr r3, _0801B780 @ =0x000003E7
b _0801B7AC
.align 2, 0
_0801B76C: .4byte gMain
_0801B770: .4byte 0x000006DD
_0801B774: .4byte 0x000001A7
_0801B778: .4byte gUnknown_086AD000
_0801B77C: .4byte gUnknown_086AD2DE
_0801B780: .4byte 0x000003E7
_0801B784:
mov r5, r8
ldr r2, [r5]
movs r6, #0xd3
lsls r6, r6, #1
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #4
bne _0801B7AA
ldr r1, _0801B804 @ =0x000001AF
adds r0, r2, r1
ldrb r0, [r0]
ldr r3, _0801B808 @ =0x000003E7
cmp r0, #0
bne _0801B7AC
_0801B7AA:
ldrh r3, [r4, #6]
_0801B7AC:
ldr r4, _0801B80C @ =gUnknown_020314E0
ldr r2, [r4]
movs r5, #0xc9
lsls r5, r5, #1
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r3, #0x10
asrs r0, r0, #0x10
cmp r1, r0
blt _0801B824
ldr r6, _0801B810 @ =0x000006DD
adds r1, r2, r6
movs r0, #1
strb r0, [r1]
ldr r0, [r4]
ldr r2, _0801B814 @ =0x000001A7
adds r1, r0, r2
ldrb r1, [r1]
ldr r5, _0801B818 @ =0x000006DC
adds r0, r0, r5
strb r1, [r0]
ldr r0, [r4]
movs r6, #0xc9
lsls r6, r6, #1
adds r1, r0, r6
ldrb r0, [r1]
subs r0, r0, r3
strb r0, [r1]
bl m4aMPlayAllStop
movs r0, #0x83
bl m4aSongNumStart
ldr r0, [r4]
ldr r2, _0801B81C @ =0x000001AB
adds r1, r0, r2
movs r0, #0x13
strb r0, [r1]
ldr r0, [r4]
ldr r3, _0801B820 @ =0x00000376
adds r0, r0, r3
movs r1, #0x1e
strh r1, [r0]
b _0801B85E
.align 2, 0
_0801B804: .4byte 0x000001AF
_0801B808: .4byte 0x000003E7
_0801B80C: .4byte gUnknown_020314E0
_0801B810: .4byte 0x000006DD
_0801B814: .4byte 0x000001A7
_0801B818: .4byte 0x000006DC
_0801B81C: .4byte 0x000001AB
_0801B820: .4byte 0x00000376
_0801B824:
movs r0, #0x8a
bl m4aSongNumStart
b _0801B85E
_0801B82C:
ldrh r1, [r3, #0x18]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801B85E
ldr r0, _0801B928 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r4, _0801B92C @ =0x000006DD
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801B870
ldr r5, _0801B930 @ =0x00000252
adds r0, r2, r5
movs r1, #0x1e
strh r1, [r0]
movs r6, #0xdc
lsls r6, r6, #1
adds r0, r2, r6
strh r1, [r0]
movs r0, #0x66
bl m4aSongNumStart
_0801B85E:
ldr r0, _0801B928 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0801B92C @ =0x000006DD
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801B8B2
_0801B870:
bl sub_2A354
ldr r0, _0801B928 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0801B934 @ =0x000006DE
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0xb3
bne _0801B8B2
ldr r4, _0801B930 @ =0x00000252
adds r0, r2, r4
movs r1, #0x1e
strh r1, [r0]
movs r5, #0xdc
lsls r5, r5, #1
adds r0, r2, r5
strh r1, [r0]
ldr r1, _0801B938 @ =gUnknown_086AD2DE
movs r6, #0xd3
lsls r6, r6, #1
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #4
bne _0801B8B2
ldr r0, _0801B93C @ =0x000001AF
adds r1, r2, r0
movs r0, #1
strb r0, [r1]
_0801B8B2:
ldr r0, _0801B928 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0801B930 @ =0x00000252
adds r1, r2, r3
ldrh r5, [r1]
mov r8, r0
cmp r5, #0
bne _0801B8C6
bl _0801C554
_0801B8C6:
subs r0, r5, #1
strh r0, [r1]
movs r4, #0xdc
lsls r4, r4, #1
adds r1, r2, r4
movs r5, #0
ldrsh r0, [r1, r5]
cmp r0, #0xe
bgt _0801B8DC
movs r0, #0xf
strh r0, [r1]
_0801B8DC:
mov r6, r8
ldr r0, [r6]
adds r1, r0, r3
ldrh r0, [r1]
cmp r0, #4
bls _0801B8EA
b _0801BA38
_0801B8EA:
cmp r0, #1
bls _0801B9A8
ldr r5, _0801B940 @ =gMain
ldrh r0, [r5, #0x3c]
movs r0, #4
strh r0, [r5, #0x3c]
ldrh r0, [r1]
cmp r0, #3
bls _0801B8FE
b _0801BA38
_0801B8FE:
ldr r3, _0801B944 @ =0x040000D4
ldr r1, _0801B948 @ =gUnknown_02031520
ldr r4, [r1, #0x30]
str r4, [r3]
ldr r0, _0801B94C @ =0x05000200
str r0, [r3, #4]
ldr r0, _0801B950 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
ldrb r0, [r5, #4]
adds r2, r1, #0
cmp r0, #1
bne _0801B95C
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801B954 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801B958 @ =0x80000060
b _0801B968
.align 2, 0
_0801B928: .4byte gUnknown_020314E0
_0801B92C: .4byte 0x000006DD
_0801B930: .4byte 0x00000252
_0801B934: .4byte 0x000006DE
_0801B938: .4byte gUnknown_086AD2DE
_0801B93C: .4byte 0x000001AF
_0801B940: .4byte gMain
_0801B944: .4byte 0x040000D4
_0801B948: .4byte gUnknown_02031520
_0801B94C: .4byte 0x05000200
_0801B950: .4byte 0x80000010
_0801B954: .4byte 0x05000240
_0801B958: .4byte 0x80000060
_0801B95C:
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801B994 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801B998 @ =0x80000070
_0801B968:
str r0, [r3, #8]
ldr r0, [r3, #8]
ldr r1, _0801B99C @ =0x040000D4
ldr r0, [r2, #0x30]
movs r2, #0xa0
lsls r2, r2, #1
adds r0, r0, r2
str r0, [r1]
ldr r0, _0801B9A0 @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801B9A4 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
mov r3, r8
ldr r0, [r3]
adds r0, #0x6f
movs r1, #1
strb r1, [r0]
ldr r0, [r3]
adds r0, #0x70
b _0801BA36
.align 2, 0
_0801B994: .4byte 0x05000240
_0801B998: .4byte 0x80000070
_0801B99C: .4byte 0x040000D4
_0801B9A0: .4byte 0x05000340
_0801B9A4: .4byte 0x80000030
_0801B9A8:
ldr r5, _0801B9E4 @ =gMain
ldrh r0, [r5, #0x3c]
movs r0, #0
strh r0, [r5, #0x3c]
ldrh r0, [r1]
cmp r0, #0
beq _0801B9BA
bl _0801C554
_0801B9BA:
ldr r3, _0801B9E8 @ =0x040000D4
ldr r1, _0801B9EC @ =gUnknown_02031520
ldr r4, [r1, #0x2c]
str r4, [r3]
ldr r0, _0801B9F0 @ =0x05000200
str r0, [r3, #4]
ldr r0, _0801B9F4 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
ldrb r0, [r5, #4]
adds r2, r1, #0
cmp r0, #1
bne _0801BA00
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801B9F8 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801B9FC @ =0x80000060
b _0801BA0C
.align 2, 0
_0801B9E4: .4byte gMain
_0801B9E8: .4byte 0x040000D4
_0801B9EC: .4byte gUnknown_02031520
_0801B9F0: .4byte 0x05000200
_0801B9F4: .4byte 0x80000010
_0801B9F8: .4byte 0x05000240
_0801B9FC: .4byte 0x80000060
_0801BA00:
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801BA74 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801BA78 @ =0x80000070
_0801BA0C:
str r0, [r3, #8]
ldr r0, [r3, #8]
ldr r1, _0801BA7C @ =0x040000D4
ldr r0, [r2, #0x2c]
movs r4, #0xa0
lsls r4, r4, #1
adds r0, r0, r4
str r0, [r1]
ldr r0, _0801BA80 @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801BA84 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
mov r5, r8
ldr r0, [r5]
adds r0, #0x6f
movs r1, #0
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x70
movs r1, #1
_0801BA36:
strb r1, [r0]
_0801BA38:
mov r6, r8
ldr r1, [r6]
ldr r2, _0801BA88 @ =0x00000252
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0
beq _0801BA4A
bl _0801C554
_0801BA4A:
ldr r0, _0801BA8C @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _0801BA9C
ldr r3, _0801BA90 @ =0x00000283
adds r0, r1, r3
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 _0801BA94
movs r0, #0x1c
bl m4aSongNumStart
b _0801BAC6
.align 2, 0
_0801BA74: .4byte 0x05000240
_0801BA78: .4byte 0x80000070
_0801BA7C: .4byte 0x040000D4
_0801BA80: .4byte 0x05000340
_0801BA84: .4byte 0x80000030
_0801BA88: .4byte 0x00000252
_0801BA8C: .4byte gMain
_0801BA90: .4byte 0x00000283
_0801BA94:
movs r0, #0x5b
bl m4aSongNumStart
b _0801BAC6
_0801BA9C:
ldr r4, _0801BABC @ =0x00000283
adds r0, r1, r4
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 _0801BAC0
movs r0, #0x20
bl m4aSongNumStart
b _0801BAC6
.align 2, 0
_0801BABC: .4byte 0x00000283
_0801BAC0:
movs r0, #0x5c
bl m4aSongNumStart
_0801BAC6:
ldr r0, _0801BAE4 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0801BAEC
ldr r5, _0801BAE8 @ =0x000006DE
adds r1, r1, r5
movs r0, #0xaa
strh r0, [r1]
b _0801BAF0
.align 2, 0
_0801BAE4: .4byte gUnknown_020314E0
_0801BAE8: .4byte 0x000006DE
_0801BAEC:
movs r0, #0x18
strh r0, [r1, #0x28]
_0801BAF0:
ldr r0, _0801BB08 @ =gUnknown_020314E0
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _0801BB0C
movs r0, #1
movs r1, #0
bl sub_1C7F4
b _0801BB14
.align 2, 0
_0801BB08: .4byte gUnknown_020314E0
_0801BB0C:
movs r0, #0
movs r1, #0
bl sub_1C7F4
_0801BB14:
ldr r3, _0801BB54 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r6, _0801BB58 @ =0x000006C4
adds r0, r0, r6
movs r2, #0
strb r2, [r0]
ldr r0, [r3]
ldr r1, _0801BB5C @ =0x000006DB
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r0, [r3]
ldr r4, _0801BB60 @ =0x000006DD
adds r0, r0, r4
strb r2, [r0]
ldr r1, _0801BB64 @ =gMain
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x1c]
movs r4, #0
strh r2, [r0]
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x20]
strh r2, [r0]
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x18]
strh r2, [r0]
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x24]
strh r2, [r0]
ldr r0, [r3]
bl _0801C528
.align 2, 0
_0801BB54: .4byte gUnknown_020314E0
_0801BB58: .4byte 0x000006C4
_0801BB5C: .4byte 0x000006DB
_0801BB60: .4byte 0x000006DD
_0801BB64: .4byte gMain
thumb_func_start sub_1BB68
sub_1BB68: @ 0x0801BB68
movs r5, #0
mov r6, r8
ldr r1, [r6]
ldr r2, _0801BD0C @ =0x00000281
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _0801BB80
bl sub_1C544
_0801BB80:
movs r6, #0xdd
lsls r6, r6, #1
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0x95
bne _0801BC52
bl m4aMPlayAllStop
ldr r3, _0801BD10 @ =gMain
ldrb r1, [r3, #0xf]
movs r0, #1
orrs r0, r1
strb r0, [r3, #0xf]
mov r0, r8
ldr r4, [r0]
adds r0, r4, #0
adds r0, #0xea
movs r2, #0
strh r5, [r0]
adds r1, r4, #0
adds r1, #0xec
movs r0, #0x78
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe8
strh r5, [r0]
subs r0, #2
strh r5, [r0]
adds r0, #8
strh r5, [r0]
adds r1, #6
movs r0, #3
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
mov r4, r8
ldr r0, [r4]
adds r0, #0xfb
strb r2, [r0]
ldr r4, [r4]
adds r1, r4, #0
adds r1, #0xf4
movs r0, #0x50
strh r0, [r1]
adds r1, #2
ldr r0, _0801BD14 @ =0x0000F63C
strh r0, [r1]
subs r1, #6
movs r0, #0x32
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xf8
strh r5, [r0]
ldr r1, _0801BD18 @ =0x040000D4
ldr r0, _0801BD1C @ =gUnknown_086ACEF8
ldr r0, [r0, #0xc]
str r0, [r1]
ldr r0, _0801BD20 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0801BD24 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0801BD28 @ =gUnknown_086ACF18
ldr r0, [r0, #0xc]
str r0, [r1]
ldr r0, _0801BD2C @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0801BD30 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r3, #0x38]
movs r0, #0xce
strh r0, [r3, #0x38]
mov r0, r8
ldr r3, [r0]
adds r1, r3, r6
movs r0, #0x94
strh r0, [r1]
movs r1, #0xa0
lsls r1, r1, #2
adds r0, r3, r1
strb r2, [r0]
mov r3, r8
ldr r0, [r3]
movs r4, #0xd3
lsls r4, r4, #1
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r3]
subs r1, #0x24
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r3]
movs r3, #0xd8
lsls r3, r3, #1
adds r0, r0, r3
strb r2, [r0]
mov r4, r8
ldr r0, [r4]
subs r1, #0xaa
adds r0, r0, r1
strh r5, [r0]
_0801BC52:
mov r2, r8
ldr r1, [r2]
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0x92
bne _0801BC82
adds r1, #0xe4
movs r0, #0x12
strb r0, [r1]
ldr r1, _0801BD18 @ =0x040000D4
ldr r0, _0801BD34 @ =gUnknown_084F61EC
str r0, [r1]
ldr r0, _0801BD38 @ =0x06015C00
str r0, [r1, #4]
ldr r0, _0801BD3C @ =0x800004A0
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0801BD40 @ =gUnknown_081B4584
str r0, [r1]
ldr r0, _0801BD44 @ =0x05000180
str r0, [r1, #4]
ldr r0, _0801BD30 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0801BC82:
mov r3, r8
ldr r1, [r3]
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0x91
beq _0801BC90
b _0801BDAC
_0801BC90:
movs r4, #0xd4
lsls r4, r4, #1
adds r0, r1, r4
strb r5, [r0]
ldr r1, [r3]
movs r5, #0xa0
lsls r5, r5, #2
adds r0, r1, r5
movs r2, #0
ldrsb r2, [r0, r2]
movs r6, #0x9c
lsls r6, r6, #2
adds r0, r1, r6
adds r0, r0, r2
ldrb r3, [r0]
movs r0, #0xb3
lsls r0, r0, #3
adds r2, r1, r0
movs r4, #0
strh r3, [r2]
ldr r2, _0801BD48 @ =0x0000025D
adds r1, r1, r2
strb r4, [r1]
ldr r6, _0801BD4C @ =gUnknown_086A3700
mov r1, r8
ldr r5, [r1]
adds r0, r5, r0
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r6
ldrb r4, [r0, #0x15]
cmp r4, #0xcc
bgt _0801BCF8
adds r1, r5, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r6
ldrb r0, [r0, #0x15]
cmp r0, #0xcc
bgt _0801BCF8
mov r3, r8
ldr r1, [r3]
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0801BCF8:
bl sub_22FA4
ldr r0, _0801BD10 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _0801BD50
movs r0, #0x1e
bl m4aSongNumStart
b _0801BD56
.align 2, 0
_0801BD0C: .4byte 0x00000281
_0801BD10: .4byte gMain
_0801BD14: .4byte 0x0000F63C
_0801BD18: .4byte 0x040000D4
_0801BD1C: .4byte gUnknown_086ACEF8
_0801BD20: .4byte 0x06015800
_0801BD24: .4byte 0x80001200
_0801BD28: .4byte gUnknown_086ACF18
_0801BD2C: .4byte 0x050003C0
_0801BD30: .4byte 0x80000010
_0801BD34: .4byte gUnknown_084F61EC
_0801BD38: .4byte 0x06015C00
_0801BD3C: .4byte 0x800004A0
_0801BD40: .4byte gUnknown_081B4584
_0801BD44: .4byte 0x05000180
_0801BD48: .4byte 0x0000025D
_0801BD4C: .4byte gUnknown_086A3700
_0801BD50:
movs r0, #0x22
bl m4aSongNumStart
_0801BD56:
adds r0, r7, #0
bl sub_21FBC
ldr r3, _0801BE08 @ =gMain
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x20]
movs r5, #0
movs r4, #1
strh r4, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x24]
strh r4, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x18]
strh r4, [r0]
ldr r2, _0801BE0C @ =0x040000D4
ldr r0, _0801BE10 @ =gUnknown_081B8784
str r0, [r2]
ldr r0, _0801BE14 @ =0x050003C0
str r0, [r2, #4]
ldr r0, _0801BE18 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r6, _0801BE1C @ =0x000002EA
adds r1, r3, r6
movs r0, #0x50
strh r0, [r1]
strh r5, [r3, #0x2a]
ldr r0, _0801BE20 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xdc
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0xf
strh r1, [r0]
strh r4, [r3, #0x28]
ldr r0, _0801BE24 @ =gUnknown_081B4784
str r0, [r2]
ldr r0, _0801BE28 @ =0x06002000
str r0, [r2, #4]
ldr r0, _0801BE2C @ =0x80000620
str r0, [r2, #8]
ldr r0, [r2, #8]
_0801BDAC:
ldr r4, _0801BE20 @ =gUnknown_020314E0
ldr r2, [r4]
movs r3, #0xdd
lsls r3, r3, #1
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0x90
bls _0801BDBE
b _0801C2D8
_0801BDBE:
movs r5, #0xdc
lsls r5, r5, #3
adds r1, r2, r5
movs r6, #0
movs r0, #0
strh r0, [r1]
ldr r0, _0801BE30 @ =0x000006C4
adds r1, r2, r0
movs r0, #2
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0801BE34 @ =0x000006DB
adds r0, r0, r1
strb r6, [r0]
ldr r3, [r4]
movs r5, #0xdc
lsls r5, r5, #1
adds r2, r3, r5
ldrh r1, [r2]
movs r5, #0
ldrsh r0, [r2, r5]
cmp r0, #0
ble _0801BE74
subs r1, #1
strh r1, [r2]
movs r6, #0xd8
lsls r6, r6, #1
adds r0, r3, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801BE38
lsls r0, r1, #0x10
asrs r0, r0, #0x10
b _0801BE58
.align 2, 0
_0801BE08: .4byte gMain
_0801BE0C: .4byte 0x040000D4
_0801BE10: .4byte gUnknown_081B8784
_0801BE14: .4byte 0x050003C0
_0801BE18: .4byte 0x80000010
_0801BE1C: .4byte 0x000002EA
_0801BE20: .4byte gUnknown_020314E0
_0801BE24: .4byte gUnknown_081B4784
_0801BE28: .4byte 0x06002000
_0801BE2C: .4byte 0x80000620
_0801BE30: .4byte 0x000006C4
_0801BE34: .4byte 0x000006DB
_0801BE38:
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r0, #0xe
ble _0801BE64
movs r0, #0
ldrsh r1, [r2, r0]
movs r0, #0x1e
subs r0, r0, r1
lsls r1, r0, #3
subs r1, r1, r0
movs r4, #0xdb
lsls r4, r4, #1
adds r0, r3, r4
strh r1, [r0]
movs r5, #0
ldrsh r0, [r2, r5]
_0801BE58:
cmp r0, #0xf
beq _0801BE5E
b _0801C1FA
_0801BE5E:
bl sub_22FA4
b _0801C1FA
_0801BE64:
movs r6, #0
ldrsh r1, [r2, r6]
lsls r0, r1, #3
subs r0, r0, r1
movs r2, #0xdb
lsls r2, r2, #1
adds r1, r3, r2
b _0801C1F8
_0801BE74:
ldr r5, _0801BEAC @ =0x00000281
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _0801BE84
b _0801BFA6
_0801BE84:
ldr r0, _0801BEB0 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0801BEEC
movs r0, #0x82
bl m4aSongNumStart
ldr r2, [r4]
movs r3, #0xa0
lsls r3, r3, #2
adds r1, r2, r3
ldrb r3, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0801BEB4
subs r0, r3, #1
b _0801BEBA
.align 2, 0
_0801BEAC: .4byte 0x00000281
_0801BEB0: .4byte gMain
_0801BEB4:
adds r0, r2, r5
ldrb r0, [r0]
subs r0, #1
_0801BEBA:
strb r0, [r1]
ldr r5, _0801BEE8 @ =gUnknown_020314E0
ldr r4, [r5]
movs r6, #0xa0
lsls r6, r6, #2
adds r0, r4, r6
movs r1, #0
ldrsb r1, [r0, r1]
movs r2, #0x9c
lsls r2, r2, #2
adds r0, r4, r2
adds r0, r0, r1
ldrb r1, [r0]
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r4, r3
movs r2, #0
strh r1, [r0]
subs r6, #0xd8
adds r1, r4, r6
movs r0, #1
strb r0, [r1]
b _0801BF48
.align 2, 0
_0801BEE8: .4byte gUnknown_020314E0
_0801BEEC:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0801BFA6
movs r0, #0x82
bl m4aSongNumStart
ldr r0, [r4]
movs r1, #0xa0
lsls r1, r1, #2
adds r2, r0, r1
movs r1, #0
ldrsb r1, [r2, r1]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
cmp r1, r0
bge _0801BF1C
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
b _0801BF1E
_0801BF1C:
strb r6, [r2]
_0801BF1E:
ldr r5, _0801C000 @ =gUnknown_020314E0
ldr r4, [r5]
movs r2, #0xa0
lsls r2, r2, #2
adds r0, r4, r2
movs r1, #0
ldrsb r1, [r0, r1]
movs r3, #0x9c
lsls r3, r3, #2
adds r0, r4, r3
adds r0, r0, r1
ldrb r1, [r0]
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r4, r3
movs r2, #0
strh r1, [r0]
movs r6, #0xd4
lsls r6, r6, #1
adds r0, r4, r6
strb r2, [r0]
_0801BF48:
ldr r4, [r5]
movs r0, #0xdc
lsls r0, r0, #1
adds r1, r4, r0
movs r0, #0x1e
strh r0, [r1]
movs r1, #0x97
lsls r1, r1, #2
adds r0, r4, r1
strb r2, [r0]
ldr r0, [r5]
movs r4, #0xd8
lsls r4, r4, #1
adds r0, r0, r4
strb r2, [r0]
ldr r0, [r5]
ldr r7, _0801C004 @ =0x0000025D
adds r0, r0, r7
strb r2, [r0]
ldr r6, _0801C008 @ =gUnknown_086A3700
ldr r4, [r5]
adds r3, r4, r3
ldrh r1, [r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r6
ldrb r2, [r0, #0x15]
cmp r2, #0xcc
bgt _0801BFA6
adds r0, r7, #0
adds r1, r4, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r0, r0, r6
ldrb r0, [r0, #0x15]
cmp r0, #0xcc
bgt _0801BFA6
ldr r1, [r5]
adds r1, r1, r7
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0801BFA6:
ldr r0, _0801C00C @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0801C070
ldr r6, _0801C000 @ =gUnknown_020314E0
ldr r1, [r6]
movs r7, #0x97
lsls r7, r7, #2
adds r0, r1, r7
movs r4, #0
ldrsb r4, [r0, r4]
cmp r4, #0
bne _0801C014
ldr r2, _0801C008 @ =gUnknown_086A3700
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r1, r3
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r5, [r0, #0x15]
cmp r5, #0xcc
bgt _0801C058
movs r0, #0x82
bl m4aSongNumStart
ldr r1, [r6]
ldr r4, _0801C010 @ =0x0000059A
adds r0, r1, r4
strh r5, [r0]
movs r5, #0xdc
lsls r5, r5, #1
adds r2, r1, r5
movs r0, #0x1e
strh r0, [r2]
movs r0, #0xd8
lsls r0, r0, #1
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
b _0801C04E
.align 2, 0
_0801C000: .4byte gUnknown_020314E0
_0801C004: .4byte 0x0000025D
_0801C008: .4byte gUnknown_086A3700
_0801C00C: .4byte gMain
_0801C010: .4byte 0x0000059A
_0801C014:
cmp r4, #1
bne _0801C058
ldr r2, _0801C064 @ =gUnknown_086A3700
ldr r3, _0801C068 @ =0x0000059A
adds r0, r1, r3
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r5, [r0, #0x15]
cmp r5, #0xcc
bgt _0801C058
movs r0, #0x82
bl m4aSongNumStart
ldr r1, [r6]
ldr r2, _0801C068 @ =0x0000059A
adds r0, r1, r2
strh r5, [r0]
movs r3, #0xdc
lsls r3, r3, #1
adds r2, r1, r3
movs r0, #0x1e
strh r0, [r2]
movs r5, #0xd8
lsls r5, r5, #1
adds r1, r1, r5
strb r4, [r1]
_0801C04E:
ldr r1, [r6]
adds r1, r1, r7
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0801C058:
ldr r0, _0801C06C @ =gUnknown_020314E0
ldr r0, [r0]
movs r6, #0xd9
lsls r6, r6, #1
adds r1, r0, r6
b _0801C116
.align 2, 0
_0801C064: .4byte gUnknown_086A3700
_0801C068: .4byte 0x0000059A
_0801C06C: .4byte gUnknown_020314E0
_0801C070:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0801C11A
ldr r6, _0801C0BC @ =gUnknown_020314E0
ldr r1, [r6]
movs r7, #0x97
lsls r7, r7, #2
adds r0, r1, r7
movs r4, #0
ldrsb r4, [r0, r4]
cmp r4, #1
bne _0801C0C4
movs r2, #0xb3
lsls r2, r2, #3
adds r0, r1, r2
ldrh r5, [r0]
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0xcc
bgt _0801C10C
movs r0, #0x82
bl m4aSongNumStart
ldr r1, [r6]
ldr r2, _0801C0C0 @ =0x0000059A
adds r0, r1, r2
strh r5, [r0]
movs r3, #0xdc
lsls r3, r3, #1
adds r2, r1, r3
movs r0, #0x1e
strh r0, [r2]
movs r5, #0xd8
lsls r5, r5, #1
adds r1, r1, r5
strb r4, [r1]
b _0801C102
.align 2, 0
_0801C0BC: .4byte gUnknown_020314E0
_0801C0C0: .4byte 0x0000059A
_0801C0C4:
cmp r4, #2
bne _0801C10C
ldr r2, _0801C148 @ =gUnknown_086A3700
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r1, r3
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r5, [r0, #0x15]
cmp r5, #0xcc
bgt _0801C10C
movs r0, #0x82
bl m4aSongNumStart
ldr r1, [r6]
ldr r4, _0801C14C @ =0x0000059A
adds r0, r1, r4
strh r5, [r0]
movs r5, #0xdc
lsls r5, r5, #1
adds r2, r1, r5
movs r0, #0x1e
strh r0, [r2]
movs r0, #0xd8
lsls r0, r0, #1
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
_0801C102:
ldr r1, [r6]
adds r1, r1, r7
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
_0801C10C:
ldr r0, _0801C150 @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xd9
lsls r2, r2, #1
adds r1, r0, r2
_0801C116:
movs r0, #0
strh r0, [r1]
_0801C11A:
ldr r0, _0801C150 @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0x97
lsls r3, r3, #2
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0801C1FA
ldr r4, _0801C14C @ =0x0000059A
adds r2, r1, r4
ldrh r0, [r2]
cmp r0, #0x59
beq _0801C190
cmp r0, #0x59
bgt _0801C154
cmp r0, #0xe
beq _0801C168
cmp r0, #0x10
beq _0801C17C
b _0801C1EA
.align 2, 0
_0801C148: .4byte gUnknown_086A3700
_0801C14C: .4byte 0x0000059A
_0801C150: .4byte gUnknown_020314E0
_0801C154:
cmp r0, #0xb0
beq _0801C1B8
cmp r0, #0xb0
bgt _0801C162
cmp r0, #0x5a
beq _0801C1A4
b _0801C1EA
_0801C162:
cmp r0, #0xb1
beq _0801C1D2
b _0801C1EA
_0801C168:
movs r5, #0xd9
lsls r5, r5, #1
adds r1, r1, r5
ldrh r0, [r1]
cmp r0, #0x32
bne _0801C1EA
movs r0, #0
strh r0, [r1]
movs r0, #0x10
b _0801C1CA
_0801C17C:
movs r6, #0xd9
lsls r6, r6, #1
adds r1, r1, r6
ldrh r0, [r1]
cmp r0, #0x32
bne _0801C1EA
movs r0, #0
strh r0, [r1]
movs r0, #0xe
b _0801C1CA
_0801C190:
movs r0, #0xd9
lsls r0, r0, #1
adds r1, r1, r0
ldrh r0, [r1]
cmp r0, #0x32
bne _0801C1EA
movs r0, #0
strh r0, [r1]
movs r0, #0x5a
b _0801C1CA
_0801C1A4:
movs r3, #0xd9
lsls r3, r3, #1
adds r1, r1, r3
ldrh r0, [r1]
cmp r0, #0x32
bne _0801C1EA
movs r0, #0
strh r0, [r1]
movs r0, #0x59
b _0801C1CA
_0801C1B8:
movs r4, #0xd9
lsls r4, r4, #1
adds r1, r1, r4
ldrh r0, [r1]
cmp r0, #0x32
bne _0801C1EA
movs r0, #0
strh r0, [r1]
movs r0, #0xb1
_0801C1CA:
strh r0, [r2]
bl sub_22FA4
b _0801C1EA
_0801C1D2:
movs r5, #0xd9
lsls r5, r5, #1
adds r1, r1, r5
ldrh r0, [r1]
cmp r0, #0x32
bne _0801C1EA
movs r0, #0
strh r0, [r1]
movs r0, #0xb0
strh r0, [r2]
bl sub_22FA4
_0801C1EA:
ldr r0, _0801C220 @ =gUnknown_020314E0
ldr r0, [r0]
movs r6, #0xd9
lsls r6, r6, #1
adds r1, r0, r6
ldrh r0, [r1]
adds r0, #1
_0801C1F8:
strh r0, [r1]
_0801C1FA:
bl sub_23070
ldr r0, _0801C220 @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0xd4
lsls r2, r2, #1
adds r0, r1, r2
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
beq _0801C22E
ldr r3, _0801C224 @ =0x000001A9
adds r1, r1, r3
ldrb r0, [r1]
cmp r0, #0
beq _0801C228
subs r0, #1
strb r0, [r1]
b _0801C246
.align 2, 0
_0801C220: .4byte gUnknown_020314E0
_0801C224: .4byte 0x000001A9
_0801C228:
movs r0, #7
strb r0, [r1]
b _0801C246
_0801C22E:
ldr r4, _0801C240 @ =0x000001A9
adds r1, r1, r4
ldrb r0, [r1]
cmp r0, #6
bhi _0801C244
adds r0, #1
strb r0, [r1]
b _0801C246
.align 2, 0
_0801C240: .4byte 0x000001A9
_0801C244:
strb r2, [r1]
_0801C246:
ldr r1, _0801C2A4 @ =0x040000D4
ldr r3, _0801C2A8 @ =gUnknown_086AD50C
ldr r0, _0801C2AC @ =gUnknown_020314E0
ldr r2, [r0]
ldr r5, _0801C2B0 @ =0x000001A9
adds r0, r2, r5
ldrb r0, [r0]
lsrs r0, r0, #1
adds r0, #4
lsls r0, r0, #2
adds r0, r0, r3
ldr r0, [r0]
str r0, [r1]
ldr r0, _0801C2B4 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0801C2B8 @ =0x80000620
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r3, _0801C2BC @ =gMain
movs r6, #0x2a
ldrsh r0, [r3, r6]
lsls r0, r0, #2
movs r1, #0x50
subs r1, r1, r0
ldr r4, _0801C2C0 @ =0x000002EA
adds r0, r3, r4
strh r1, [r0]
adds r5, #0xa9
adds r2, r2, r5
ldrh r0, [r2]
cmp r0, #0
beq _0801C2C4
ldrh r1, [r3, #0x2a]
movs r6, #0x2a
ldrsh r0, [r3, r6]
cmp r0, #0
ble _0801C2D2
subs r0, r1, #1
strh r0, [r3, #0x2a]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bne _0801C2D2
strh r0, [r3, #0x28]
movs r0, #0x90
strh r0, [r3, #0x26]
b _0801C2D2
.align 2, 0
_0801C2A4: .4byte 0x040000D4
_0801C2A8: .4byte gUnknown_086AD50C
_0801C2AC: .4byte gUnknown_020314E0
_0801C2B0: .4byte 0x000001A9
_0801C2B4: .4byte 0x06002000
_0801C2B8: .4byte 0x80000620
_0801C2BC: .4byte gMain
_0801C2C0: .4byte 0x000002EA
_0801C2C4:
ldrh r1, [r3, #0x2a]
movs r2, #0x2a
ldrsh r0, [r3, r2]
cmp r0, #0x13
bgt _0801C2D2
adds r0, r1, #1
strh r0, [r3, #0x2a]
_0801C2D2:
movs r0, #0
bl sub_21FBC
_0801C2D8:
ldr r5, _0801C38C @ =gUnknown_020314E0
ldr r3, [r5]
movs r4, #0xdc
lsls r4, r4, #1
adds r0, r3, r4
movs r6, #0
ldrsh r0, [r0, r6]
cmp r0, #0
bgt _0801C31A
ldr r1, _0801C390 @ =gMain
movs r2, #0x2a
ldrsh r0, [r1, r2]
cmp r0, #0x13
ble _0801C31A
ldrh r1, [r1, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801C31A
ldr r6, _0801C394 @ =0x00000252
adds r0, r3, r6
movs r1, #0
movs r2, #0x1e
strh r2, [r0]
subs r6, #0xa2
adds r0, r3, r6
strb r1, [r0]
ldr r0, [r5]
adds r0, r0, r4
strh r2, [r0]
movs r0, #0x83
bl m4aSongNumStart
_0801C31A:
ldr r0, _0801C38C @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0801C394 @ =0x00000252
adds r1, r2, r3
ldrh r5, [r1]
mov r8, r0
cmp r5, #0
bne _0801C32C
b _0801C554
_0801C32C:
subs r0, r5, #1
strh r0, [r1]
movs r0, #0xdc
lsls r0, r0, #1
adds r1, r2, r0
movs r2, #0
ldrsh r0, [r1, r2]
cmp r0, #0xe
bgt _0801C342
movs r0, #0xf
strh r0, [r1]
_0801C342:
mov r4, r8
ldr r0, [r4]
adds r1, r0, r3
ldrh r0, [r1]
cmp r0, #4
bls _0801C350
b _0801C488
_0801C350:
cmp r0, #1
bls _0801C3FC
ldr r5, _0801C390 @ =gMain
ldrh r0, [r5, #0x3c]
movs r0, #4
strh r0, [r5, #0x3c]
ldrh r0, [r1]
cmp r0, #3
bls _0801C364
b _0801C488
_0801C364:
ldr r3, _0801C398 @ =0x040000D4
ldr r1, _0801C39C @ =gUnknown_02031520
ldr r4, [r1, #0x30]
str r4, [r3]
ldr r0, _0801C3A0 @ =0x05000200
str r0, [r3, #4]
ldr r0, _0801C3A4 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
ldrb r0, [r5, #4]
adds r2, r1, #0
cmp r0, #1
bne _0801C3B0
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801C3A8 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801C3AC @ =0x80000060
b _0801C3BC
.align 2, 0
_0801C38C: .4byte gUnknown_020314E0
_0801C390: .4byte gMain
_0801C394: .4byte 0x00000252
_0801C398: .4byte 0x040000D4
_0801C39C: .4byte gUnknown_02031520
_0801C3A0: .4byte 0x05000200
_0801C3A4: .4byte 0x80000010
_0801C3A8: .4byte 0x05000240
_0801C3AC: .4byte 0x80000060
_0801C3B0:
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801C3E8 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801C3EC @ =0x80000070
_0801C3BC:
str r0, [r3, #8]
ldr r0, [r3, #8]
ldr r1, _0801C3F0 @ =0x040000D4
ldr r0, [r2, #0x30]
movs r5, #0xa0
lsls r5, r5, #1
adds r0, r0, r5
str r0, [r1]
ldr r0, _0801C3F4 @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801C3F8 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
mov r6, r8
ldr r0, [r6]
adds r0, #0x6f
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
adds r0, #0x70
b _0801C486
.align 2, 0
_0801C3E8: .4byte 0x05000240
_0801C3EC: .4byte 0x80000070
_0801C3F0: .4byte 0x040000D4
_0801C3F4: .4byte 0x05000340
_0801C3F8: .4byte 0x80000030
_0801C3FC:
ldr r5, _0801C434 @ =gMain
ldrh r0, [r5, #0x3c]
movs r0, #0
strh r0, [r5, #0x3c]
ldrh r0, [r1]
cmp r0, #0
beq _0801C40C
b _0801C554
_0801C40C:
ldr r3, _0801C438 @ =0x040000D4
ldr r1, _0801C43C @ =gUnknown_02031520
ldr r4, [r1, #0x2c]
str r4, [r3]
ldr r0, _0801C440 @ =0x05000200
str r0, [r3, #4]
ldr r0, _0801C444 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
ldrb r0, [r5, #4]
adds r2, r1, #0
cmp r0, #1
bne _0801C450
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801C448 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801C44C @ =0x80000060
b _0801C45C
.align 2, 0
_0801C434: .4byte gMain
_0801C438: .4byte 0x040000D4
_0801C43C: .4byte gUnknown_02031520
_0801C440: .4byte 0x05000200
_0801C444: .4byte 0x80000010
_0801C448: .4byte 0x05000240
_0801C44C: .4byte 0x80000060
_0801C450:
adds r0, r4, #0
adds r0, #0x40
str r0, [r3]
ldr r0, _0801C4B0 @ =0x05000240
str r0, [r3, #4]
ldr r0, _0801C4B4 @ =0x80000070
_0801C45C:
str r0, [r3, #8]
ldr r0, [r3, #8]
ldr r1, _0801C4B8 @ =0x040000D4
ldr r0, [r2, #0x2c]
movs r2, #0xa0
lsls r2, r2, #1
adds r0, r0, r2
str r0, [r1]
ldr r0, _0801C4BC @ =0x05000340
str r0, [r1, #4]
ldr r0, _0801C4C0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
mov r3, r8
ldr r0, [r3]
adds r0, #0x6f
movs r1, #0
strb r1, [r0]
ldr r0, [r3]
adds r0, #0x70
movs r1, #1
_0801C486:
strb r1, [r0]
_0801C488:
mov r4, r8
ldr r1, [r4]
ldr r5, _0801C4C4 @ =0x00000252
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0
bne _0801C554
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0801C4CC
ldr r6, _0801C4C8 @ =0x000006DE
adds r1, r1, r6
movs r0, #0xaa
strh r0, [r1]
b _0801C4D0
.align 2, 0
_0801C4B0: .4byte 0x05000240
_0801C4B4: .4byte 0x80000070
_0801C4B8: .4byte 0x040000D4
_0801C4BC: .4byte 0x05000340
_0801C4C0: .4byte 0x80000030
_0801C4C4: .4byte 0x00000252
_0801C4C8: .4byte 0x000006DE
_0801C4CC:
movs r0, #0x18
strh r0, [r1, #0x28]
_0801C4D0:
mov r1, r8
ldr r0, [r1]
ldr r2, _0801C530 @ =0x000006C4
adds r0, r0, r2
movs r2, #0
strb r2, [r0]
ldr r0, [r1]
ldr r3, _0801C534 @ =0x000006DB
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
ldr r1, _0801C538 @ =gMain
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x20]
movs r4, #0
strh r2, [r0]
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x18]
strh r2, [r0]
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x24]
strh r2, [r0]
mov r5, r8
ldr r0, [r5]
movs r6, #0xe4
lsls r6, r6, #3
adds r0, r0, r6
strb r4, [r0]
ldr r0, [r5]
ldr r1, _0801C53C @ =0x0000071D
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
ldr r0, [r5]
ldr r2, _0801C540 @ =0x0000071E
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
adds r3, #0x44
adds r0, r0, r3
strb r1, [r0]
bl sub_2310C
ldr r0, [r5]
_0801C528:
adds r0, #0xe4
strb r4, [r0]
b _0801C554
.align 2, 0
_0801C530: .4byte 0x000006C4
_0801C534: .4byte 0x000006DB
_0801C538: .4byte gMain
_0801C53C: .4byte 0x0000071D
_0801C540: .4byte 0x0000071E
thumb_func_start sub_1C544
sub_1C544: @ 0x0801C544
movs r4, #0xdd
lsls r4, r4, #1
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x32
bne _0801C554
movs r0, #0x18
strh r0, [r1, #0x28]
_0801C554:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_1C560
sub_1C560: @ 0x0801C560
push {r4, lr}
ldr r3, _0801C598 @ =gUnknown_020314E0
ldr r1, [r3]
movs r4, #0
movs r2, #0
movs r0, #0x96
strh r0, [r1, #0x28]
ldr r0, _0801C59C @ =gMain
ldr r0, [r0, #0x44]
ldr r0, [r0, #0x34]
strh r2, [r0]
ldr r0, _0801C5A0 @ =0x000005F3
adds r1, r1, r0
strb r4, [r1]
ldr r0, [r3]
ldr r1, _0801C5A4 @ =0x00002710
str r1, [r0, #0x3c]
ldr r1, _0801C5A8 @ =0x000005F7
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
movs r0, #8
bl sub_11B0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801C598: .4byte gUnknown_020314E0
_0801C59C: .4byte gMain
_0801C5A0: .4byte 0x000005F3
_0801C5A4: .4byte 0x00002710
_0801C5A8: .4byte 0x000005F7
thumb_func_start sub_1C5AC
sub_1C5AC: @ 0x0801C5AC
push {r4, r5, r6, lr}
ldr r5, _0801C614 @ =gUnknown_020314E0
ldr r2, [r5]
ldrh r0, [r2, #0x28]
adds r1, r0, #0
cmp r1, #0
bne _0801C5BC
b _0801C728
_0801C5BC:
subs r0, #1
movs r4, #0
movs r6, #0
strh r0, [r2, #0x28]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x94
bls _0801C61C
ldr r1, _0801C618 @ =0x0000132C
adds r0, r2, r1
ldr r0, [r0]
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
strb r4, [r0, #0x1f]
ldr r3, [r5]
adds r1, r3, r1
ldr r0, [r1]
strh r6, [r0, #0x30]
ldr r0, [r1]
strh r6, [r0, #0x32]
ldr r2, [r1]
movs r0, #0x77
strh r0, [r2, #0x10]
ldr r2, [r1]
adds r0, #0xa0
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r6, [r0, #6]
ldr r2, [r1]
movs r5, #0x10
ldrsh r0, [r2, r5]
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]
movs r5, #0xe6
lsls r5, r5, #3
adds r3, r3, r5
strb r4, [r3]
b _0801C706
.align 2, 0
_0801C614: .4byte gUnknown_020314E0
_0801C618: .4byte 0x0000132C
_0801C61C:
cmp r0, #0x94
bne _0801C630
movs r0, #1
strb r0, [r2, #0x1f]
ldr r0, [r5]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r4, [r0]
b _0801C706
_0801C630:
cmp r0, #0x24
bls _0801C644
movs r0, #1
strb r0, [r2, #0x1f]
ldr r0, [r5]
movs r2, #0xe6
lsls r2, r2, #3
adds r0, r0, r2
strb r4, [r0]
b _0801C706
_0801C644:
cmp r0, #0x18
bls _0801C658
movs r1, #1
strb r1, [r2, #0x1f]
ldr r0, [r5]
movs r3, #0xe6
lsls r3, r3, #3
adds r0, r0, r3
strb r1, [r0]
b _0801C706
_0801C658:
cmp r0, #0x18
bne _0801C6B0
movs r0, #0x80
bl m4aSongNumStart
ldr r0, [r5]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r1, [r5]
ldr r3, _0801C6A4 @ =0x0000132C
adds r1, r1, r3
ldr r2, [r1]
movs r0, #0x49
strh r0, [r2, #0x30]
ldr r2, [r1]
movs r0, #0xec
strh r0, [r2, #0x32]
ldr r0, [r1]
strb r4, [r0]
ldr r0, [r5]
strb r4, [r0, #0x1f]
ldr r0, [r5]
ldr r2, _0801C6A8 @ =0x000005FA
adds r0, r0, r2
strb r4, [r0]
ldr r1, [r5]
adds r3, r1, r3
ldr r2, [r3]
movs r0, #0x88
strh r0, [r2, #0xe]
ldr r3, _0801C6AC @ =0x000005F7
adds r1, r1, r3
strb r4, [r1]
b _0801C706
.align 2, 0
_0801C6A4: .4byte 0x0000132C
_0801C6A8: .4byte 0x000005FA
_0801C6AC: .4byte 0x000005F7
_0801C6B0:
cmp r0, #0xc
bls _0801C6FC
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r2, r1
movs r1, #2
strb r1, [r0]
ldr r1, [r5]
ldrh r0, [r1, #0x28]
cmp r0, #0x15
bls _0801C6E8
ldr r2, _0801C6E4 @ =0x0000132C
adds r0, r1, r2
ldr r4, [r0]
ldrh r0, [r1, #0x28]
movs r1, #0x18
subs r1, r1, r0
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #4
movs r1, #3
bl __divsi3
adds r0, #0x90
strh r0, [r4, #0xe]
b _0801C706
.align 2, 0
_0801C6E4: .4byte 0x0000132C
_0801C6E8:
ldr r3, _0801C6F8 @ =0x0000132C
adds r0, r1, r3
ldr r1, [r0]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1, #0xe]
b _0801C706
.align 2, 0
_0801C6F8: .4byte 0x0000132C
_0801C6FC:
movs r5, #0xe6
lsls r5, r5, #3
adds r1, r2, r5
movs r0, #1
strb r0, [r1]
_0801C706:
ldr r0, _0801C724 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #0x28]
cmp r0, #0x28
bhi _0801C736
adds r1, #0xe6
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
ble _0801C736
subs r0, r2, #1
strh r0, [r1]
b _0801C736
.align 2, 0
_0801C724: .4byte gUnknown_020314E0
_0801C728:
movs r3, #0xe6
lsls r3, r3, #3
adds r0, r2, r3
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x25
strb r1, [r0]
_0801C736:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_start sub_1C73C
sub_1C73C: @ 0x0801C73C
push {r4, r5, r6, r7, lr}
ldr r7, _0801C7E0 @ =gMain
ldr r0, [r7, #0x44]
ldr r0, [r0, #0x34]
movs r6, #0
movs r4, #0
strh r4, [r0]
movs r0, #0
bl sub_4B408
ldr r5, _0801C7E4 @ =gUnknown_020314E0
ldr r1, [r5]
ldr r2, _0801C7E8 @ =0x0000132C
adds r1, r1, r2
ldr r0, [r1]
strh r4, [r0, #0x30]
ldr r0, [r1]
strh r4, [r0, #0x32]
ldr r0, [r1]
strb r6, [r0]
ldr r0, [r5]
strb r6, [r0, #0x1f]
ldr r1, [r5]
adds r2, r1, r2
ldr r2, [r2]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r2, #0xe]
movs r0, #0xe6
lsls r0, r0, #3
adds r1, r1, r0
strb r6, [r1]
ldr r0, [r5]
adds r0, #0x25
strb r6, [r0]
ldr r1, [r5]
ldr r2, _0801C7EC @ =0x00000282
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801C7BA
ldr r2, _0801C7F0 @ =0x00000723
adds r0, r1, r2
strb r6, [r0]
ldr r0, [r5]
movs r1, #0xe4
lsls r1, r1, #3
adds r0, r0, r1
strb r6, [r0]
ldr r0, [r5]
subs r2, #6
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
subs r1, #2
adds r0, r0, r1
strb r6, [r0]
ldr r0, [r5]
adds r2, #2
adds r0, r0, r2
strb r6, [r0]
_0801C7BA:
bl m4aMPlayAllStop
bl sub_D10
ldrb r0, [r7, #4]
strb r0, [r7, #5]
ldr r0, [r5]
movs r1, #0xa1
lsls r1, r1, #2
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r7, #4]
movs r0, #1
strb r0, [r7, #6]
strb r6, [r7, #3]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801C7E0: .4byte gMain
_0801C7E4: .4byte gUnknown_020314E0
_0801C7E8: .4byte 0x0000132C
_0801C7EC: .4byte 0x00000282
_0801C7F0: .4byte 0x00000723
thumb_func_start sub_1C7F4
sub_1C7F4: @ 0x0801C7F4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x30
lsls r0, r0, #0x10
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
str r1, [sp, #0x2c]
lsrs r1, r0, #0x10
str r1, [sp, #0x28]
asrs r0, r0, #0x10
ldr r2, _0801C824 @ =gUnknown_020314E0
mov sl, r2
cmp r0, #9
bls _0801C81A
bl _0801D0B8
_0801C81A:
lsls r0, r0, #2
ldr r1, _0801C828 @ =_0801C82C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801C824: .4byte gUnknown_020314E0
_0801C828: .4byte _0801C82C
_0801C82C: @ jump table
.4byte _0801C854 @ case 0
.4byte _0801C900 @ case 1
.4byte _0801C9A8 @ case 2
.4byte _0801CA4C @ case 3
.4byte _0801CCB8 @ case 4
.4byte _0801D0B8 @ case 5
.4byte _0801CDC0 @ case 6
.4byte _0801CF6C @ case 7
.4byte _0801D02C @ case 8
.4byte _0801CB24 @ case 9
_0801C854:
ldr r6, _0801C8D0 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r3, _0801C8D4 @ =0x000006DB
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
ldr r0, [r6]
ldr r4, [sp, #0x2c]
lsls r3, r4, #0x10
asrs r3, r3, #0x10
ldr r2, _0801C8D8 @ =0x00000749
adds r1, r0, r2
adds r1, r1, r3
ldr r5, _0801C8DC @ =0x000006D9
mov r8, r5
add r0, r8
adds r0, r0, r3
ldrb r0, [r0]
strb r0, [r1]
ldr r4, _0801C8E0 @ =0x040000D4
ldr r5, [r6]
adds r2, r5, r2
adds r2, r2, r3
ldrb r1, [r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801C8E4 @ =gUnknown_0848D68C
adds r0, r0, r1
str r0, [r4]
lsls r2, r3, #1
adds r0, r2, r3
lsls r0, r0, #8
ldr r1, _0801C8E8 @ =0x06010CA0
adds r0, r0, r1
str r0, [r4, #4]
ldr r0, _0801C8EC @ =0x80000180
str r0, [r4, #8]
ldr r0, [r4, #8]
add r5, r8
adds r5, r5, r3
movs r0, #0
ldrsb r0, [r5, r0]
lsls r0, r0, #0x14
lsrs r0, r0, #0xf
ldr r1, _0801C8F0 @ =gUnknown_081C00E4
adds r0, r0, r1
str r0, [r4]
ldr r0, _0801C8F4 @ =gUnknown_086AD798
adds r2, r2, r0
ldrh r0, [r2]
lsls r0, r0, #5
ldr r2, _0801C8F8 @ =0x05000200
adds r0, r0, r2
str r0, [r4, #4]
ldr r0, _0801C8FC @ =0x80000010
str r0, [r4, #8]
ldr r0, [r4, #8]
mov sl, r6
bl _0801D0B8
.align 2, 0
_0801C8D0: .4byte gUnknown_020314E0
_0801C8D4: .4byte 0x000006DB
_0801C8D8: .4byte 0x00000749
_0801C8DC: .4byte 0x000006D9
_0801C8E0: .4byte 0x040000D4
_0801C8E4: .4byte gUnknown_0848D68C
_0801C8E8: .4byte 0x06010CA0
_0801C8EC: .4byte 0x80000180
_0801C8F0: .4byte gUnknown_081C00E4
_0801C8F4: .4byte gUnknown_086AD798
_0801C8F8: .4byte 0x05000200
_0801C8FC: .4byte 0x80000010
_0801C900:
ldr r7, _0801C97C @ =gUnknown_086AD070
ldr r6, _0801C980 @ =gUnknown_020314E0
ldr r0, [r6]
ldr r3, [sp, #0x2c]
lsls r4, r3, #0x10
asrs r4, r4, #0x10
ldr r5, _0801C984 @ =0x00000749
mov r8, r5
adds r5, r0, r5
adds r5, r5, r4
movs r1, #0xe1
lsls r1, r1, #3
adds r0, r0, r1
ldr r0, [r0]
movs r1, #0x30
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r7
ldrh r0, [r0]
strb r0, [r5]
ldrh r2, [r7, #4]
lsls r2, r2, #0x14
ldr r3, _0801C988 @ =0x040000D4
ldr r0, [r6]
add r0, r8
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801C98C @ =gUnknown_083A8EEC
adds r0, r0, r1
str r0, [r3]
lsls r1, r4, #1
adds r4, r1, r4
lsls r4, r4, #8
ldr r5, _0801C990 @ =0x06010CA0
adds r4, r4, r5
str r4, [r3, #4]
ldr r0, _0801C994 @ =0x80000180
str r0, [r3, #8]
ldr r0, [r3, #8]
lsrs r2, r2, #0xf
ldr r0, _0801C998 @ =gUnknown_081C02E4
adds r2, r2, r0
str r2, [r3]
ldr r0, _0801C99C @ =gUnknown_086AD798
adds r1, r1, r0
ldrh r0, [r1]
lsls r0, r0, #5
ldr r1, _0801C9A0 @ =0x05000200
adds r0, r0, r1
str r0, [r3, #4]
ldr r0, _0801C9A4 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
mov sl, r6
b _0801D0B8
.align 2, 0
_0801C97C: .4byte gUnknown_086AD070
_0801C980: .4byte gUnknown_020314E0
_0801C984: .4byte 0x00000749
_0801C988: .4byte 0x040000D4
_0801C98C: .4byte gUnknown_083A8EEC
_0801C990: .4byte 0x06010CA0
_0801C994: .4byte 0x80000180
_0801C998: .4byte gUnknown_081C02E4
_0801C99C: .4byte gUnknown_086AD798
_0801C9A0: .4byte 0x05000200
_0801C9A4: .4byte 0x80000010
_0801C9A8:
ldr r5, _0801CA1C @ =gUnknown_020314E0
ldr r3, [r5]
ldr r4, [sp, #0x2c]
lsls r2, r4, #0x10
asrs r2, r2, #0x10
ldr r1, _0801CA20 @ =0x000006EC
adds r0, r3, r1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
ldr r1, _0801CA24 @ =gUnknown_086AD000
adds r7, r0, r1
ldr r1, _0801CA28 @ =0x00000749
adds r3, r3, r1
adds r3, r3, r2
ldrh r0, [r7]
strb r0, [r3]
ldrh r3, [r7, #4]
lsls r3, r3, #0x14
ldr r4, _0801CA2C @ =0x040000D4
ldr r0, [r5]
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, _0801CA30 @ =gUnknown_083A8EEC
adds r0, r0, r1
str r0, [r4]
lsls r1, r2, #1
adds r2, r1, r2
lsls r2, r2, #8
ldr r0, _0801CA34 @ =0x06010CA0
adds r2, r2, r0
str r2, [r4, #4]
ldr r0, _0801CA38 @ =0x80000180
str r0, [r4, #8]
ldr r0, [r4, #8]
lsrs r3, r3, #0xf
ldr r0, _0801CA3C @ =gUnknown_081C02E4
adds r3, r3, r0
str r3, [r4]
ldr r0, _0801CA40 @ =gUnknown_086AD798
adds r1, r1, r0
ldrh r0, [r1]
lsls r0, r0, #5
ldr r1, _0801CA44 @ =0x05000200
adds r0, r0, r1
str r0, [r4, #4]
ldr r0, _0801CA48 @ =0x80000010
str r0, [r4, #8]
ldr r0, [r4, #8]
mov sl, r5
b _0801D0B8
.align 2, 0
_0801CA1C: .4byte gUnknown_020314E0
_0801CA20: .4byte 0x000006EC
_0801CA24: .4byte gUnknown_086AD000
_0801CA28: .4byte 0x00000749
_0801CA2C: .4byte 0x040000D4
_0801CA30: .4byte gUnknown_083A8EEC
_0801CA34: .4byte 0x06010CA0
_0801CA38: .4byte 0x80000180
_0801CA3C: .4byte gUnknown_081C02E4
_0801CA40: .4byte gUnknown_086AD798
_0801CA44: .4byte 0x05000200
_0801CA48: .4byte 0x80000010
_0801CA4C:
ldr r7, _0801CAFC @ =gUnknown_020314E0
ldr r1, [r7]
ldr r2, [sp, #0x2c]
lsls r2, r2, #0x10
asrs r2, r2, #0x10
mov r8, r2
ldr r2, _0801CB00 @ =0x00000749
adds r0, r1, r2
add r0, r8
movs r3, #0xb3
lsls r3, r3, #3
adds r1, r1, r3
ldrh r1, [r1]
strb r1, [r0]
ldr r5, _0801CB04 @ =0x040000D4
ldr r4, _0801CB08 @ =gMonPortraitGroupGfx
mov sl, r4
ldr r6, [r7]
adds r6, r6, r2
add r6, r8
ldrb r0, [r6]
mov sb, r0
movs r1, #0xf
bl __udivsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x16
add r4, sl
mov r0, sb
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]
mov r1, r8
lsls r0, r1, #1
add r0, r8
lsls r0, r0, #3
ldr r2, _0801CB0C @ =0x06010CA0
adds r0, r0, r2
str r0, [r5, #4]
ldr r0, _0801CB10 @ =0x80000180
str r0, [r5, #8]
ldr r0, [r5, #8]
ldr r3, _0801CB14 @ =gMonPortraitGroupPals
mov r8, r3
ldrb r6, [r6]
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, #0x13
ldr r1, [r4]
adds r1, r1, r0
str r1, [r5]
ldr r0, _0801CB18 @ =0x050003A0
str r0, [r5, #4]
ldr r1, _0801CB1C @ =0x80000010
str r1, [r5, #8]
ldr r0, [r5, #8]
mov r4, r8
ldr r0, [r4]
movs r2, #0xf0
lsls r2, r2, #1
adds r0, r0, r2
str r0, [r5]
ldr r0, _0801CB20 @ =0x050003E0
str r0, [r5, #4]
str r1, [r5, #8]
ldr r0, [r5, #8]
mov sl, r7
b _0801D0B8
.align 2, 0
_0801CAFC: .4byte gUnknown_020314E0
_0801CB00: .4byte 0x00000749
_0801CB04: .4byte 0x040000D4
_0801CB08: .4byte gMonPortraitGroupGfx
_0801CB0C: .4byte 0x06010CA0
_0801CB10: .4byte 0x80000180
_0801CB14: .4byte gMonPortraitGroupPals
_0801CB18: .4byte 0x050003A0
_0801CB1C: .4byte 0x80000010
_0801CB20: .4byte 0x050003E0
_0801CB24:
ldr r0, _0801CB68 @ =gUnknown_020314E0
ldr r4, [r0]
movs r3, #0x97
lsls r3, r3, #2
adds r1, r4, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov sl, r0
cmp r1, #0
ble _0801CBEC
ldr r0, _0801CB6C @ =gMain+0x74
ldr r5, _0801CB70 @ =0x0000059A
adds r1, r4, r5
ldrh r3, [r1]
adds r0, r3, r0
ldrb r0, [r0]
cmp r0, #0
bne _0801CB80
ldr r0, [sp, #0x2c]
lsls r2, r0, #0x10
asrs r2, r2, #0x10
ldr r3, _0801CB74 @ =0x00000749
adds r0, r4, r3
adds r0, r0, r2
movs r1, #0xcd
strb r1, [r0]
ldr r5, _0801CB78 @ =0x040000D4
ldr r1, _0801CB7C @ =gMonPortraitGroupPals
mov r8, r1
mov r4, sl
ldr r0, [r4]
b _0801CC0C
.align 2, 0
_0801CB68: .4byte gUnknown_020314E0
_0801CB6C: .4byte gMain+0x74
_0801CB70: .4byte 0x0000059A
_0801CB74: .4byte 0x00000749
_0801CB78: .4byte 0x040000D4
_0801CB7C: .4byte gMonPortraitGroupPals
_0801CB80:
cmp r0, #3
bhi _0801CBC0
ldr r5, [sp, #0x2c]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
ldr r2, _0801CBAC @ =0x00000749
adds r0, r4, r2
adds r0, r0, r1
strb r3, [r0]
ldr r1, _0801CBB0 @ =0x040000D4
ldr r0, _0801CBB4 @ =gMonPortraitGroupPals
ldr r0, [r0]
movs r3, #0xf0
lsls r3, r3, #1
adds r0, r0, r3
str r0, [r1]
ldr r0, _0801CBB8 @ =0x050003A0
str r0, [r1, #4]
ldr r0, _0801CBBC @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
b _0801CC3E
.align 2, 0
_0801CBAC: .4byte 0x00000749
_0801CBB0: .4byte 0x040000D4
_0801CBB4: .4byte gMonPortraitGroupPals
_0801CBB8: .4byte 0x050003A0
_0801CBBC: .4byte 0x80000010
_0801CBC0:
ldr r5, [sp, #0x2c]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
ldr r2, _0801CBE0 @ =0x00000749
adds r0, r4, r2
adds r0, r0, r1
strb r3, [r0]
ldr r5, _0801CBE4 @ =0x040000D4
ldr r0, _0801CBE8 @ =gMonPortraitGroupPals
mov r8, r0
mov r3, sl
ldr r0, [r3]
adds r0, r0, r2
adds r0, r0, r1
b _0801CC10
.align 2, 0
_0801CBE0: .4byte 0x00000749
_0801CBE4: .4byte 0x040000D4
_0801CBE8: .4byte gMonPortraitGroupPals
_0801CBEC:
ldr r5, [sp, #0x2c]
lsls r2, r5, #0x10
asrs r2, r2, #0x10
ldr r3, _0801CC98 @ =0x00000749
adds r0, r4, r3
adds r0, r0, r2
movs r5, #0xb3
lsls r5, r5, #3
adds r1, r4, r5
ldrh r1, [r1]
strb r1, [r0]
ldr r5, _0801CC9C @ =0x040000D4
ldr r0, _0801CCA0 @ =gMonPortraitGroupPals
mov r8, r0
mov r1, sl
ldr r0, [r1]
_0801CC0C:
adds r0, r0, r3
adds r0, r0, r2
_0801CC10:
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, #0x13
ldr r1, [r4]
adds r1, r1, r0
str r1, [r5]
ldr r0, _0801CCA4 @ =0x050003A0
str r0, [r5, #4]
ldr r0, _0801CCA8 @ =0x80000010
str r0, [r5, #8]
ldr r0, [r5, #8]
_0801CC3E:
ldr r2, _0801CC9C @ =0x040000D4
mov r8, r2
ldr r3, _0801CCAC @ =gMonPortraitGroupGfx
mov sb, r3
mov r4, sl
ldr r0, [r4]
ldr r1, [sp, #0x2c]
lsls r5, r1, #0x10
asrs r5, r5, #0x10
ldr r2, _0801CC98 @ =0x00000749
adds r0, r0, r2
adds r0, r0, r5
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, sb
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
mov r3, r8
str r0, [r3]
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #3
ldr r4, _0801CCB0 @ =0x06010CA0
adds r0, r0, r4
str r0, [r3, #4]
ldr r0, _0801CCB4 @ =0x80000180
str r0, [r3, #8]
ldr r0, [r3, #8]
b _0801D0B8
.align 2, 0
_0801CC98: .4byte 0x00000749
_0801CC9C: .4byte 0x040000D4
_0801CCA0: .4byte gMonPortraitGroupPals
_0801CCA4: .4byte 0x050003A0
_0801CCA8: .4byte 0x80000010
_0801CCAC: .4byte gMonPortraitGroupGfx
_0801CCB0: .4byte 0x06010CA0
_0801CCB4: .4byte 0x80000180
_0801CCB8:
ldr r0, _0801CD28 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0x17
ldrsb r1, [r2, r1]
mov sl, r0
cmp r1, #2
bne _0801CD44
ldr r0, [sp, #0x2c]
lsls r5, r0, #0x10
asrs r5, r5, #0x10
ldr r1, _0801CD2C @ =0x00000749
mov r8, r1
adds r4, r2, r1
adds r4, r4, r5
ldr r6, _0801CD30 @ =gUnknown_086AD000
movs r3, #0xe1
lsls r3, r3, #3
adds r0, r2, r3
ldr r0, [r0]
movs r1, #0x30
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r1, r6, #0
adds r1, #0x78
adds r0, r0, r1
ldrh r0, [r0]
strb r0, [r4]
ldr r2, _0801CD34 @ =0x040000D4
mov r4, sl
ldr r0, [r4]
add r0, r8
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801CD38 @ =gUnknown_083A8EEC
adds r0, r0, r1
str r0, [r2]
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #8
ldr r5, _0801CD3C @ =0x06010CA0
adds r0, r0, r5
str r0, [r2, #4]
ldr r0, _0801CD40 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r6, #0x7c
ldrh r5, [r6]
b _0801CF30
.align 2, 0
_0801CD28: .4byte gUnknown_020314E0
_0801CD2C: .4byte 0x00000749
_0801CD30: .4byte gUnknown_086AD000
_0801CD34: .4byte 0x040000D4
_0801CD38: .4byte gUnknown_083A8EEC
_0801CD3C: .4byte 0x06010CA0
_0801CD40: .4byte 0x80000180
_0801CD44:
ldr r0, [sp, #0x2c]
lsls r5, r0, #0x10
asrs r5, r5, #0x10
ldr r1, _0801CDA8 @ =0x00000749
mov r8, r1
adds r4, r2, r1
adds r4, r4, r5
ldr r6, _0801CDAC @ =gUnknown_086AD000
movs r3, #0xe1
lsls r3, r3, #3
adds r0, r2, r3
ldr r0, [r0]
movs r1, #0x30
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r1, r6, #0
adds r1, #0x80
adds r0, r0, r1
ldrh r0, [r0]
strb r0, [r4]
ldr r2, _0801CDB0 @ =0x040000D4
mov r4, sl
ldr r0, [r4]
add r0, r8
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801CDB4 @ =gUnknown_083A8EEC
adds r0, r0, r1
str r0, [r2]
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #8
ldr r5, _0801CDB8 @ =0x06010CA0
adds r0, r0, r5
str r0, [r2, #4]
ldr r0, _0801CDBC @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r6, #0x84
ldrh r0, [r6]
lsls r0, r0, #0x14
lsrs r5, r0, #0x10
b _0801CF30
.align 2, 0
_0801CDA8: .4byte 0x00000749
_0801CDAC: .4byte gUnknown_086AD000
_0801CDB0: .4byte 0x040000D4
_0801CDB4: .4byte gUnknown_083A8EEC
_0801CDB8: .4byte 0x06010CA0
_0801CDBC: .4byte 0x80000180
_0801CDC0:
ldr r4, _0801CEF8 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0801CEFC @ =0x000001A7
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
ldr r1, _0801CF00 @ =gUnknown_086AD000
adds r7, r0, r1
ldr r0, [sp, #0x2c]
lsls r3, r0, #0x10
asrs r3, r3, #0x10
ldr r1, _0801CF04 @ =0x00000749
adds r2, r2, r1
adds r2, r2, r3
ldrh r0, [r7]
strb r0, [r2]
ldrh r0, [r7, #4]
lsls r0, r0, #0x14
lsrs r5, r0, #0x10
ldr r2, _0801CF08 @ =0x040000D4
ldr r0, [r4]
mov r8, r0
add r1, r8
adds r1, r1, r3
ldrb r1, [r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801CF0C @ =gUnknown_083A8EEC
adds r0, r0, r1
str r0, [r2]
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #8
ldr r1, _0801CF10 @ =0x06010CA0
adds r0, r0, r1
str r0, [r2, #4]
ldr r0, _0801CF14 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r2, r8
movs r3, #0xc9
lsls r3, r3, #1
adds r0, r2, r3
ldrb r0, [r0]
mov sl, r4
ldrh r7, [r7, #6]
cmp r0, r7
blo _0801CE5A
ldr r1, _0801CF18 @ =gUnknown_086AD2DE
movs r4, #0xd3
lsls r4, r4, #1
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
cmp r1, #3
bne _0801CE4C
adds r3, #0x50
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _0801CE5A
_0801CE4C:
cmp r1, #4
bne _0801CF30
ldr r0, _0801CF1C @ =0x000001AF
add r0, r8
ldrb r0, [r0]
cmp r0, #0
beq _0801CF30
_0801CE5A:
ldr r2, _0801CF08 @ =0x040000D4
lsls r0, r5, #1
ldr r1, _0801CF20 @ =gUnknown_081C02E4
adds r0, r0, r1
str r0, [r2]
mov r4, sp
str r4, [r2, #4]
ldr r0, _0801CF24 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
ldr r5, _0801CF28 @ =gUnknown_086AD798
mov sb, r5
add r7, sp, #0x20
_0801CE76:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r0, r5, #1
mov r1, sp
adds r6, r1, r0
ldrh r1, [r6]
movs r0, #0x1f
ands r0, r1
lsls r0, r0, #1
movs r1, #3
bl __divsi3
mov r8, r0
mov r2, r8
strh r2, [r7]
ldrh r0, [r6]
movs r3, #0xf8
lsls r3, r3, #2
adds r1, r3, #0
ands r0, r1
lsrs r0, r0, #4
movs r1, #3
bl __divsi3
adds r4, r0, #0
strh r4, [r7, #2]
ldrh r0, [r6]
movs r2, #0xf8
lsls r2, r2, #7
adds r1, r2, #0
ands r0, r1
lsrs r0, r0, #9
movs r1, #3
bl __divsi3
strh r0, [r7, #4]
lsls r4, r4, #5
mov r3, r8
orrs r4, r3
lsls r0, r0, #0xa
orrs r4, r0
strh r4, [r6]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #0xf
ble _0801CE76
ldr r1, _0801CF08 @ =0x040000D4
mov r4, sp
str r4, [r1]
ldr r5, [sp, #0x2c]
lsls r0, r5, #0x10
asrs r0, r0, #0xf
add r0, sb
ldrh r0, [r0]
lsls r0, r0, #5
ldr r2, _0801CF2C @ =0x05000200
adds r0, r0, r2
str r0, [r1, #4]
ldr r0, _0801CF24 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
b _0801D0B8
.align 2, 0
_0801CEF8: .4byte gUnknown_020314E0
_0801CEFC: .4byte 0x000001A7
_0801CF00: .4byte gUnknown_086AD000
_0801CF04: .4byte 0x00000749
_0801CF08: .4byte 0x040000D4
_0801CF0C: .4byte gUnknown_083A8EEC
_0801CF10: .4byte 0x06010CA0
_0801CF14: .4byte 0x80000180
_0801CF18: .4byte gUnknown_086AD2DE
_0801CF1C: .4byte 0x000001AF
_0801CF20: .4byte gUnknown_081C02E4
_0801CF24: .4byte 0x80000010
_0801CF28: .4byte gUnknown_086AD798
_0801CF2C: .4byte 0x05000200
_0801CF30:
ldr r2, _0801CF58 @ =0x040000D4
lsls r0, r5, #1
ldr r1, _0801CF5C @ =gUnknown_081C02E4
adds r0, r0, r1
str r0, [r2]
ldr r1, _0801CF60 @ =gUnknown_086AD798
ldr r3, [sp, #0x2c]
lsls r0, r3, #0x10
asrs r0, r0, #0xf
adds r0, r0, r1
ldrh r0, [r0]
lsls r0, r0, #5
ldr r4, _0801CF64 @ =0x05000200
adds r0, r0, r4
str r0, [r2, #4]
ldr r0, _0801CF68 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0801D0B8
.align 2, 0
_0801CF58: .4byte 0x040000D4
_0801CF5C: .4byte gUnknown_081C02E4
_0801CF60: .4byte gUnknown_086AD798
_0801CF64: .4byte 0x05000200
_0801CF68: .4byte 0x80000010
_0801CF6C:
ldr r5, _0801CFFC @ =gUnknown_020314E0
mov r8, r5
ldr r2, [r5]
ldr r0, [sp, #0x2c]
lsls r4, r0, #0x10
asrs r4, r4, #0x10
ldr r1, _0801D000 @ =0x000006EC
adds r0, r2, r1
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
ldr r1, _0801D004 @ =gUnknown_086AD000
adds r7, r0, r1
ldr r6, _0801D008 @ =0x00000749
adds r5, r2, r6
adds r5, r5, r4
movs r3, #0xe1
lsls r3, r3, #3
adds r2, r2, r3
ldr r0, [r2]
movs r1, #0x30
bl __umodsi3
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
adds r0, r7, r0
ldrh r0, [r0]
strb r0, [r5]
ldrh r2, [r7, #4]
lsls r2, r2, #0x14
ldr r3, _0801D00C @ =0x040000D4
mov r5, r8
ldr r0, [r5]
adds r0, r0, r6
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801D010 @ =gUnknown_083A8EEC
adds r0, r0, r1
str r0, [r3]
lsls r1, r4, #1
adds r4, r1, r4
lsls r4, r4, #8
ldr r0, _0801D014 @ =0x06010CA0
adds r4, r4, r0
str r4, [r3, #4]
ldr r0, _0801D018 @ =0x80000180
str r0, [r3, #8]
ldr r0, [r3, #8]
lsrs r2, r2, #0xf
ldr r0, _0801D01C @ =gUnknown_081C02E4
adds r2, r2, r0
str r2, [r3]
ldr r0, _0801D020 @ =gUnknown_086AD798
adds r1, r1, r0
ldrh r0, [r1]
lsls r0, r0, #5
ldr r1, _0801D024 @ =0x05000200
adds r0, r0, r1
str r0, [r3, #4]
ldr r0, _0801D028 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
mov sl, r8
b _0801D0B8
.align 2, 0
_0801CFFC: .4byte gUnknown_020314E0
_0801D000: .4byte 0x000006EC
_0801D004: .4byte gUnknown_086AD000
_0801D008: .4byte 0x00000749
_0801D00C: .4byte 0x040000D4
_0801D010: .4byte gUnknown_083A8EEC
_0801D014: .4byte 0x06010CA0
_0801D018: .4byte 0x80000180
_0801D01C: .4byte gUnknown_081C02E4
_0801D020: .4byte gUnknown_086AD798
_0801D024: .4byte 0x05000200
_0801D028: .4byte 0x80000010
_0801D02C:
ldr r2, _0801D0EC @ =gUnknown_020314E0
mov sb, r2
ldr r2, [r2]
ldr r3, _0801D0F0 @ =0x000006DC
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #3
ldr r1, _0801D0F4 @ =gUnknown_086AD000
adds r7, r0, r1
ldr r5, [sp, #0x2c]
lsls r4, r5, #0x10
asrs r4, r4, #0x10
ldr r0, _0801D0F8 @ =0x00000749
mov r8, r0
adds r5, r2, r0
adds r5, r5, r4
ldr r6, _0801D0FC @ =gUnknown_086AD79C
ldr r1, _0801D100 @ =0x000006DE
adds r2, r2, r1
ldrh r0, [r2]
movs r1, #0xc
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r6
movs r2, #0
ldrsh r0, [r0, r2]
lsls r0, r0, #1
adds r0, r7, r0
ldrh r0, [r0]
strb r0, [r5]
ldrh r2, [r7, #4]
lsls r2, r2, #0x14
ldr r3, _0801D104 @ =0x040000D4
mov r5, sb
ldr r0, [r5]
add r0, r8
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801D108 @ =gUnknown_083A8EEC
adds r0, r0, r1
str r0, [r3]
lsls r1, r4, #1
adds r4, r1, r4
lsls r4, r4, #8
ldr r0, _0801D10C @ =0x06010CA0
adds r4, r4, r0
str r4, [r3, #4]
ldr r0, _0801D110 @ =0x80000180
str r0, [r3, #8]
ldr r0, [r3, #8]
lsrs r2, r2, #0xf
ldr r0, _0801D114 @ =gUnknown_081C02E4
adds r2, r2, r0
str r2, [r3]
ldr r0, _0801D118 @ =gUnknown_086AD798
adds r1, r1, r0
ldrh r0, [r1]
lsls r0, r0, #5
ldr r1, _0801D11C @ =0x05000200
adds r0, r0, r1
str r0, [r3, #4]
ldr r0, _0801D120 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
mov sl, sb
_0801D0B8:
mov r2, sl
ldr r1, [r2]
ldr r3, [sp, #0x2c]
lsls r0, r3, #0x10
asrs r0, r0, #0x10
ldr r4, _0801D124 @ =0x00000747
adds r1, r1, r4
adds r1, r1, r0
add r5, sp, #0x28
ldrb r5, [r5]
strb r5, [r1]
ldr r1, [r2]
movs r0, #0xe1
lsls r0, r0, #3
adds r1, r1, r0
ldr r0, [r1]
adds r0, #1
str r0, [r1]
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
_0801D0EC: .4byte gUnknown_020314E0
_0801D0F0: .4byte 0x000006DC
_0801D0F4: .4byte gUnknown_086AD000
_0801D0F8: .4byte 0x00000749
_0801D0FC: .4byte gUnknown_086AD79C
_0801D100: .4byte 0x000006DE
_0801D104: .4byte 0x040000D4
_0801D108: .4byte gUnknown_083A8EEC
_0801D10C: .4byte 0x06010CA0
_0801D110: .4byte 0x80000180
_0801D114: .4byte gUnknown_081C02E4
_0801D118: .4byte gUnknown_086AD798
_0801D11C: .4byte 0x05000200
_0801D120: .4byte 0x80000010
_0801D124: .4byte 0x00000747
thumb_func_start sub_1D128
sub_1D128: @ 0x0801D128
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r1, _0801D154 @ =gUnknown_020314E0
ldr r3, [r1]
ldr r2, _0801D158 @ =0x000006C4
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r1
cmp r0, #3
bne _0801D15C
movs r3, #0
mov r8, r3
movs r0, #0xb4
mov sl, r0
movs r2, #0xb4
b _0801D1C4
.align 2, 0
_0801D154: .4byte gUnknown_020314E0
_0801D158: .4byte 0x000006C4
_0801D15C:
cmp r0, #2
bne _0801D190
ldr r0, _0801D174 @ =gMain
movs r2, #0x2a
ldrsh r1, [r0, r2]
cmp r1, #0x13
bgt _0801D178
movs r3, #0xb4
mov sl, r3
movs r2, #0xb4
b _0801D18A
.align 2, 0
_0801D174: .4byte gMain
_0801D178:
movs r1, #0xdc
lsls r1, r1, #3
adds r0, r3, r1
ldrh r0, [r0]
adds r0, #0x58
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
movs r2, #0x58
_0801D18A:
movs r3, #0x30
mov r8, r3
b _0801D1C4
_0801D190:
adds r0, r3, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x60
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
movs r1, #0xdc
lsls r1, r1, #3
adds r0, r3, r1
movs r1, #0x96
lsls r1, r1, #1
adds r2, r1, #0
ldrh r0, [r0]
adds r0, r2, r0
adds r1, r3, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
subs r2, r2, r1
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
_0801D1C4:
ldr r3, _0801D4A4 @ =gMain
ldr r0, [r3, #0x44]
ldr r6, [r0, #0x58]
mov r0, r8
strh r0, [r6, #2]
mov r1, sl
strh r1, [r6, #4]
mov r3, sb
ldr r0, [r3]
ldr r3, _0801D4A8 @ =0x000006E4
adds r1, r0, r3
mov r3, r8
strh r3, [r1]
ldrh r1, [r6, #4]
ldr r3, _0801D4AC @ =0x000006E6
adds r0, r0, r3
strh r1, [r0]
movs r1, #4
ldrsh r0, [r6, r1]
cmp r0, #0xc7
ble _0801D1F2
movs r0, #0xc8
strh r0, [r6, #4]
_0801D1F2:
movs r0, #0
mov r3, r8
lsls r3, r3, #0x10
str r3, [sp]
lsls r2, r2, #0x10
str r2, [sp, #4]
ldr r7, _0801D4B0 @ =gOamBuffer
mov ip, sb
_0801D202:
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
mov r1, ip
ldr r0, [r1]
ldr r2, _0801D4B4 @ =0x000006D3
adds r0, r0, r2
adds r0, r0, r4
ldrb r1, [r0]
lsls r1, r1, #4
ldrb r2, [r3, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
mov r1, ip
ldr r0, [r1]
ldr r2, _0801D4B8 @ =0x000006DB
adds r0, r0, r2
ldrb r1, [r0]
movs r0, #3
ands r1, r0
lsls r1, r1, #2
ldrb r2, [r3, #5]
subs r0, #0x10
ands r0, r2
orrs r0, r1
strb r0, [r3, #5]
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, _0801D4BC @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _0801D4C0 @ =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 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 _0801D202
mov r3, sb
ldr r0, [r3]
ldr r1, _0801D4C4 @ =0x000006C4
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0801D298
b _0801D3FA
_0801D298:
ldr r2, _0801D4A4 @ =gMain
ldr r0, [r2, #0x44]
ldr r6, [r0, #0x5c]
mov r3, r8
strh r3, [r6, #2]
mov r1, sl
lsls r0, r1, #0x10
asrs r0, r0, #0x10
subs r0, #0x20
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb3
ble _0801D2B8
movs r0, #0xb4
strh r0, [r6, #4]
_0801D2B8:
movs r0, #0
ldr r7, _0801D4B0 @ =gOamBuffer
ldr r2, _0801D4C0 @ =0xFFFFFE00
mov ip, r2
_0801D2C0:
lsls r4, r0, #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
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0xc0
orrs r0, r1
strb r0, [r2, #5]
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, _0801D4BC @ =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 _0801D2C0
ldr r3, _0801D4A4 @ =gMain
ldr r0, [r3, #0x44]
ldr r6, [r0, #0x50]
mov r0, r8
strh r0, [r6, #2]
mov r1, sb
ldr r0, [r1]
adds r0, #0x5a
ldrh r1, [r0]
ldr r2, _0801D4C8 @ =0x0000010B
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _0801D33C
movs r0, #0xc8
strh r0, [r6, #4]
_0801D33C:
movs r0, #0
ldr r7, _0801D4B0 @ =gOamBuffer
ldr r3, _0801D4C0 @ =0xFFFFFE00
mov ip, r3
_0801D344:
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, _0801D4BC @ =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 _0801D344
ldr r3, _0801D4A4 @ =gMain
ldr r0, [r3, #0x44]
ldr r6, [r0, #0x54]
mov r0, r8
strh r0, [r6, #2]
mov r1, sb
ldr r0, [r1]
adds r0, #0x5a
ldrh r1, [r0]
ldr r2, _0801D4CC @ =0x0000014D
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _0801D3AE
movs r0, #0xc8
strh r0, [r6, #4]
_0801D3AE:
movs r0, #0
ldr r7, _0801D4B0 @ =gOamBuffer
ldr r3, _0801D4C0 @ =0xFFFFFE00
mov r8, r3
_0801D3B6:
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, _0801D4BC @ =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, #5
ble _0801D3B6
_0801D3FA:
ldr r3, _0801D4A4 @ =gMain
ldr r0, [r3, #0x44]
ldr r6, [r0, #0x4c]
ldr r1, [sp]
asrs r0, r1, #0x10
subs r0, #8
strh r0, [r6, #2]
ldr r2, [sp, #4]
asrs r0, r2, #0x10
subs r0, #8
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _0801D41C
movs r0, #0xc8
strh r0, [r6, #4]
_0801D41C:
movs r0, #0
ldr r7, _0801D4B0 @ =gOamBuffer
movs r3, #3
mov ip, r3
movs r1, #0xd
rsbs r1, r1, #0
mov sl, r1
ldr r2, _0801D4C0 @ =0xFFFFFE00
mov r8, r2
_0801D42E:
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
mov r1, sb
ldr r0, [r1]
ldr r2, _0801D4B8 @ =0x000006DB
adds r0, r0, r2
ldrb r1, [r0]
mov r0, ip
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, [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, _0801D4BC @ =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, #5
ble _0801D42E
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
_0801D4A4: .4byte gMain
_0801D4A8: .4byte 0x000006E4
_0801D4AC: .4byte 0x000006E6
_0801D4B0: .4byte gOamBuffer
_0801D4B4: .4byte 0x000006D3
_0801D4B8: .4byte 0x000006DB
_0801D4BC: .4byte 0x000001FF
_0801D4C0: .4byte 0xFFFFFE00
_0801D4C4: .4byte 0x000006C4
_0801D4C8: .4byte 0x0000010B
_0801D4CC: .4byte 0x0000014D
thumb_func_start sub_1D4D0
sub_1D4D0: @ 0x0801D4D0
push {r4, r5, r6, r7, lr}
ldr r0, _0801D5C8 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0801D5CC @ =0x000006C4
adds r1, r1, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r7, r0, #0
cmp r1, #1
bne _0801D5C2
ldr r0, _0801D5D0 @ =gMain
ldr r1, [r0, #0x44]
ldr r4, [r1, #0x58]
movs r1, #0xb4
strh r1, [r4, #4]
movs r1, #0
adds r6, r0, #0
ldr r5, _0801D5D4 @ =gOamBuffer
_0801D4F6:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r3, r4, r0
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r4, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #5
ble _0801D4F6
ldr r0, [r6, #0x44]
ldr r4, [r0, #0x5c]
ldr r0, [r7]
adds r0, #0x5a
ldrh r1, [r0]
movs r2, #0x96
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r4, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb3
ble _0801D53A
movs r0, #0xb4
strh r0, [r4, #4]
_0801D53A:
movs r1, #0
ldr r5, _0801D5D4 @ =gOamBuffer
_0801D53E:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r3, r4, r0
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r4, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #5
ble _0801D53E
ldr r0, [r6, #0x44]
ldr r4, [r0, #0x50]
movs r0, #0xb4
strh r0, [r4, #4]
movs r1, #0
ldr r5, _0801D5D4 @ =gOamBuffer
_0801D56E:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r3, r4, r0
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r4, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #5
ble _0801D56E
ldr r0, [r6, #0x44]
ldr r4, [r0, #0x54]
movs r0, #0xb4
strh r0, [r4, #4]
movs r1, #0
ldr r5, _0801D5D4 @ =gOamBuffer
_0801D59E:
lsls r2, r1, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r3, r4, r0
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r4, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
strb r0, [r1]
adds r2, #1
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #5
ble _0801D59E
_0801D5C2:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801D5C8: .4byte gUnknown_020314E0
_0801D5CC: .4byte 0x000006C4
_0801D5D0: .4byte gMain
_0801D5D4: .4byte gOamBuffer
thumb_func_start sub_1D5D8
sub_1D5D8: @ 0x0801D5D8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _0801D60C @ =gUnknown_0200E6C0
mov sb, r0
movs r1, #0
mov r8, r1
movs r5, #0
ldr r1, _0801D610 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0801D614 @ =0x000002FB
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bls _0801D600
b _0801D930
_0801D600:
lsls r0, r0, #2
ldr r1, _0801D618 @ =_0801D61C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801D60C: .4byte gUnknown_0200E6C0
_0801D610: .4byte gUnknown_020314E0
_0801D614: .4byte 0x000002FB
_0801D618: .4byte _0801D61C
_0801D61C: @ jump table
.4byte _0801D63C @ case 0
.4byte _0801D65C @ case 1
.4byte _0801D6C4 @ case 2
.4byte _0801D760 @ case 3
.4byte _0801D7C8 @ case 4
.4byte _0801D860 @ case 5
.4byte _0801D860 @ case 6
.4byte _0801D8E0 @ case 7
_0801D63C:
ldr r0, _0801D658 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x24
bl __umodsi3
movs r1, #0x12
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
mov r5, r8
b _0801D930
.align 2, 0
_0801D658: .4byte gMain
_0801D65C:
ldr r4, _0801D6AC @ =gUnknown_020314E0
ldr r1, [r4]
ldr r3, _0801D6B0 @ =0x000002FE
adds r2, r1, r3
movs r3, #0
movs r0, #0
strh r0, [r2]
ldr r5, _0801D6B4 @ =0x000002FD
adds r1, r1, r5
strb r3, [r1]
ldr r0, [r4]
ldr r7, _0801D6B8 @ =0x000002FB
adds r0, r0, r7
movs r1, #2
strb r1, [r0]
ldr r2, _0801D6BC @ =gUnknown_086AD7C0
ldr r0, [r4]
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r2
ldrh r5, [r1]
adds r2, #4
adds r0, r0, r2
ldrh r0, [r0]
mov r8, r0
movs r0, #0xcf
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
ldr r1, [r4]
ldr r0, _0801D6C0 @ =0x0000C350
str r0, [r1, #0x3c]
b _0801D930
.align 2, 0
_0801D6AC: .4byte gUnknown_020314E0
_0801D6B0: .4byte 0x000002FE
_0801D6B4: .4byte 0x000002FD
_0801D6B8: .4byte 0x000002FB
_0801D6BC: .4byte gUnknown_086AD7C0
_0801D6C0: .4byte 0x0000C350
_0801D6C4:
ldr r3, _0801D6F0 @ =gUnknown_086AD7C0
ldr r0, _0801D6F4 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r6, _0801D6F8 @ =0x000002FD
adds r4, r2, r6
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r3, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r5, _0801D6FC @ =0x000002FE
adds r2, r2, r5
ldrh r1, [r2]
cmp r0, r1
ble _0801D700
adds r0, r1, #1
strh r0, [r2]
b _0801D736
.align 2, 0
_0801D6F0: .4byte gUnknown_086AD7C0
_0801D6F4: .4byte gUnknown_020314E0
_0801D6F8: .4byte 0x000002FD
_0801D6FC: .4byte 0x000002FE
_0801D700:
movs r5, #0
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r7, _0801D754 @ =gUnknown_020314E0
ldr r1, [r7]
ldr r2, _0801D758 @ =0x000002FD
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _0801D736
ldr r7, _0801D75C @ =0x000002FB
adds r0, r1, r7
strb r5, [r0]
ldr r1, _0801D754 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r6
strb r5, [r0]
ldr r0, [r1]
subs r2, #4
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
_0801D736:
ldr r0, _0801D754 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r5, _0801D758 @ =0x000002FD
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r5, [r1]
adds r1, r3, #4
adds r0, r0, r1
b _0801D92C
.align 2, 0
_0801D754: .4byte gUnknown_020314E0
_0801D758: .4byte 0x000002FD
_0801D75C: .4byte 0x000002FB
_0801D760:
ldr r4, _0801D7B0 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r7, _0801D7B4 @ =0x000002FE
adds r2, r1, r7
movs r0, #0
strh r0, [r2]
ldr r3, _0801D7B8 @ =0x000002FD
adds r1, r1, r3
movs r0, #7
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0801D7BC @ =0x000002FB
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
ldr r2, _0801D7C0 @ =gUnknown_086AD7C0
ldr r0, [r4]
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, r0, r2
ldrh r5, [r1]
adds r2, #4
adds r0, r0, r2
ldrh r0, [r0]
mov r8, r0
movs r0, #0xcf
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
ldr r1, [r4]
ldr r0, _0801D7C4 @ =0x000186A0
str r0, [r1, #0x3c]
b _0801D930
.align 2, 0
_0801D7B0: .4byte gUnknown_020314E0
_0801D7B4: .4byte 0x000002FE
_0801D7B8: .4byte 0x000002FD
_0801D7BC: .4byte 0x000002FB
_0801D7C0: .4byte gUnknown_086AD7C0
_0801D7C4: .4byte 0x000186A0
_0801D7C8:
ldr r2, _0801D7F4 @ =gUnknown_086AD7C0
ldr r5, _0801D7F8 @ =gUnknown_020314E0
ldr r3, [r5]
ldr r7, _0801D7FC @ =0x000002FD
adds r4, r3, r7
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #2
adds r0, r0, r2
movs r1, #0
ldrsh r0, [r0, r1]
ldr r2, _0801D800 @ =0x000002FE
adds r3, r3, r2
ldrh r1, [r3]
cmp r0, r1
ble _0801D804
adds r0, r1, #1
strh r0, [r3]
b _0801D82C
.align 2, 0
_0801D7F4: .4byte gUnknown_086AD7C0
_0801D7F8: .4byte gUnknown_020314E0
_0801D7FC: .4byte 0x000002FD
_0801D800: .4byte 0x000002FE
_0801D804:
movs r0, #0
strh r0, [r3]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r1, [r5]
ldr r3, _0801D84C @ =0x000002FD
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x12
bne _0801D82C
ldr r5, _0801D850 @ =0x000002FB
adds r1, r1, r5
movs r0, #5
strb r0, [r1]
movs r0, #0xd1
bl m4aSongNumStart
_0801D82C:
ldr r4, _0801D854 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0801D858 @ =0x000002FE
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #6
bne _0801D840
movs r0, #0xd0
bl m4aSongNumStart
_0801D840:
ldr r2, _0801D85C @ =gUnknown_086AD7C0
ldr r0, [r4]
ldr r1, _0801D84C @ =0x000002FD
adds r0, r0, r1
b _0801D91A
.align 2, 0
_0801D84C: .4byte 0x000002FD
_0801D850: .4byte 0x000002FB
_0801D854: .4byte gUnknown_020314E0
_0801D858: .4byte 0x000002FE
_0801D85C: .4byte gUnknown_086AD7C0
_0801D860:
ldr r3, _0801D88C @ =gUnknown_086AD7C0
ldr r5, _0801D890 @ =gUnknown_020314E0
ldr r2, [r5]
ldr r7, _0801D894 @ =0x000002FD
adds r4, r2, r7
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r3, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r5, _0801D898 @ =0x000002FE
adds r2, r2, r5
ldrh r1, [r2]
cmp r0, r1
ble _0801D89C
adds r0, r1, #1
strh r0, [r2]
b _0801D8BA
.align 2, 0
_0801D88C: .4byte gUnknown_086AD7C0
_0801D890: .4byte gUnknown_020314E0
_0801D894: .4byte 0x000002FD
_0801D898: .4byte 0x000002FE
_0801D89C:
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r7, _0801D8D8 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r2, _0801D8DC @ =0x000002FD
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x18
bne _0801D8BA
movs r0, #0x12
strb r0, [r1]
_0801D8BA:
ldr r0, _0801D8D8 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r5, _0801D8DC @ =0x000002FD
adds r0, r0, r5
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r5, [r1]
adds r1, r3, #4
adds r0, r0, r1
b _0801D92C
.align 2, 0
_0801D8D8: .4byte gUnknown_020314E0
_0801D8DC: .4byte 0x000002FD
_0801D8E0:
ldr r4, _0801DA3C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0801DA40 @ =0x000002FA
adds r0, r0, r7
movs r1, #0
strb r1, [r0]
ldr r0, [r4]
ldr r2, _0801DA44 @ =0x000002F9
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
ldr r3, _0801DA48 @ =0x000002FE
adds r2, r0, r3
movs r5, #0
strh r1, [r2]
subs r3, #1
adds r0, r0, r3
strb r5, [r0]
ldr r0, [r4]
adds r7, #1
adds r0, r0, r7
strb r5, [r0]
ldr r0, [r4]
adds r0, r0, r3
movs r1, #0x18
strb r1, [r0]
ldr r2, _0801DA4C @ =gUnknown_086AD7C0
ldr r0, [r4]
adds r0, r0, r3
_0801D91A:
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r2
ldrh r5, [r1]
adds r2, #4
adds r0, r0, r2
_0801D92C:
ldrh r0, [r0]
mov r8, r0
_0801D930:
mov r1, sb
ldrh r0, [r1]
cmp r0, #0
beq _0801DA20
ldr r2, _0801DA50 @ =gUnknown_086AD856
ldr r3, _0801DA3C @ =gUnknown_020314E0
ldr r4, [r3]
ldr r7, _0801DA44 @ =0x000002F9
adds r3, r4, r7
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r0, r0, r2
adds r1, r4, #0
adds r1, #0x58
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
mov r1, sb
strh r0, [r1, #2]
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r2, #2
adds r0, r0, r2
adds r1, r4, #0
adds r1, #0x5a
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
mov r2, sb
strh r0, [r2, #4]
ldr r2, _0801DA54 @ =0x040000D4
movs r3, #0xbf
lsls r3, r3, #2
adds r0, r4, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0801DA58 @ =gUnknown_0845710C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801DA5C @ =0x06014380
str r0, [r2, #4]
ldr r0, _0801DA60 @ =0x80000130
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0
lsls r1, r5, #0x10
ldr r5, _0801DA64 @ =gOamBuffer
mov ip, r5
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r6, r0, #2
ldr r7, _0801DA68 @ =0xFFFFFE00
mov sl, r7
_0801D9A6:
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
add r2, ip
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
adds r0, r0, r6
ldr r5, _0801DA6C @ =gUnknown_086B2E64
adds r0, r0, r5
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r6
adds r0, r0, r5
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r6
adds r1, r1, r5
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
ldrh r7, [r2, #2]
lsls r1, r7, #0x17
lsrs r1, r1, #0x17
mov r5, sb
movs r7, #2
ldrsh r0, [r5, r7]
adds r1, r1, r0
ldr r5, _0801DA70 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
mov r0, sl
ldrh r7, [r2, #2]
ands r0, r7
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, ip
mov r2, sb
ldrb r0, [r2, #4]
ldrb r5, [r1]
adds r0, r0, r5
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _0801D9A6
_0801DA20:
ldr r7, _0801DA3C @ =gUnknown_020314E0
ldr r0, [r7]
movs r1, #0xbf
lsls r1, r1, #2
adds r0, r0, r1
mov r2, r8
strb r2, [r0]
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
_0801DA3C: .4byte gUnknown_020314E0
_0801DA40: .4byte 0x000002FA
_0801DA44: .4byte 0x000002F9
_0801DA48: .4byte 0x000002FE
_0801DA4C: .4byte gUnknown_086AD7C0
_0801DA50: .4byte gUnknown_086AD856
_0801DA54: .4byte 0x040000D4
_0801DA58: .4byte gUnknown_0845710C
_0801DA5C: .4byte 0x06014380
_0801DA60: .4byte 0x80000130
_0801DA64: .4byte gOamBuffer
_0801DA68: .4byte 0xFFFFFE00
_0801DA6C: .4byte gUnknown_086B2E64
_0801DA70: .4byte 0x000001FF
thumb_func_start sub_1DA74
sub_1DA74: @ 0x0801DA74
ldr r0, _0801DAB0 @ =gUnknown_020314E0
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
beq _0801DAD4
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _0801DAC6
ldr r1, _0801DAB4 @ =0x000001A5
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801DABC
ldr r3, _0801DAB8 @ =0x000001AB
adds r0, r2, r3
ldrb r0, [r0]
movs r1, #0xf
ands r1, r0
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r2, r3
strb r1, [r0]
b _0801DAD4
.align 2, 0
_0801DAB0: .4byte gUnknown_020314E0
_0801DAB4: .4byte 0x000001A5
_0801DAB8: .4byte 0x000001AB
_0801DABC:
movs r0, #0xbc
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #3
b _0801DAD2
_0801DAC6:
cmp r0, #6
beq _0801DAD4
movs r3, #0xbc
lsls r3, r3, #2
adds r1, r2, r3
movs r0, #0
_0801DAD2:
strb r0, [r1]
_0801DAD4:
bx lr
thumb_func_start sub_1DAD8
sub_1DAD8: @ 0x0801DAD8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r0, _0801DB64 @ =gUnknown_0200E270
mov r8, r0
ldr r0, _0801DB68 @ =gUnknown_020314E0
ldr r4, [r0]
movs r2, #0xbc
lsls r2, r2, #2
adds r1, r4, r2
ldrb r1, [r1]
movs r5, #0xf
ldr r7, _0801DB6C @ =0x000002F1
adds r3, r4, r7
ldrb r2, [r3]
ands r5, r1
adds r1, r2, #0
adds r7, r0, #0
cmp r5, r1
beq _0801DBAC
ldr r6, _0801DB70 @ =0x000002F2
adds r0, r4, r6
ldrh r0, [r0]
cmp r0, #0
beq _0801DB78
cmp r0, #5
bne _0801DB58
ldr r3, _0801DB74 @ =0xFFFFCE50
add r3, r8
ldrb r1, [r3, #0xf]
movs r0, #1
movs r2, #0
orrs r0, r1
strb r0, [r3, #0xf]
adds r0, r4, #0
adds r0, #0xea
movs r3, #0
strh r2, [r0]
adds r1, r4, #0
adds r1, #0xec
movs r0, #3
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe8
strh r2, [r0]
subs r0, #2
strh r2, [r0]
adds r0, #8
strh r2, [r0]
adds r0, #4
strb r3, [r0]
ldr r0, [r7]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
adds r0, #0xfb
strb r3, [r0]
movs r0, #0xbd
bl m4aSongNumStart
_0801DB58:
ldr r1, [r7]
adds r1, r1, r6
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
b _0801DBAC
.align 2, 0
_0801DB64: .4byte gUnknown_0200E270
_0801DB68: .4byte gUnknown_020314E0
_0801DB6C: .4byte 0x000002F1
_0801DB70: .4byte 0x000002F2
_0801DB74: .4byte 0xFFFFCE50
_0801DB78:
cmp r1, r5
bls _0801DB80
subs r0, r2, #1
b _0801DB82
_0801DB80:
adds r0, r2, #1
_0801DB82:
strb r0, [r3]
ldr r0, [r7]
adds r0, r0, r6
movs r1, #4
strh r1, [r0]
ldr r2, _0801DC58 @ =0x040000D4
ldr r0, [r7]
ldr r1, _0801DC5C @ =0x000002F1
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0801DC60 @ =gUnknown_084ED0CC
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801DC64 @ =0x06013180
str r0, [r2, #4]
ldr r0, _0801DC68 @ =0x800000C0
str r0, [r2, #8]
ldr r0, [r2, #8]
_0801DBAC:
ldr r2, [r7]
ldr r7, _0801DC5C @ =0x000002F1
adds r0, r2, r7
ldrb r0, [r0]
movs r3, #2
cmp r0, #2
bhi _0801DBBC
movs r3, #3
_0801DBBC:
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xd0
subs r0, r0, r1
mov r1, r8
strh r0, [r1, #2]
adds r0, r2, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x50
subs r0, r0, r1
mov r2, r8
strh r0, [r2, #4]
movs r0, #0
ldr r7, _0801DC6C @ =gUnknown_0200E278
mov sl, r7
ldr r6, _0801DC70 @ =gOamBuffer
lsls r3, r3, #2
str r3, [sp]
movs r1, #0xd
rsbs r1, r1, #0
mov sb, r1
ldr r2, _0801DC74 @ =0xFFFFFE00
mov ip, r2
_0801DBEE:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r5, r4, #3
add r5, sl
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
mov r0, sb
ands r0, r2
ldr r7, [sp]
orrs r0, r7
strb r0, [r1, #5]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r6
movs r0, #2
ldrsh r1, [r5, r0]
mov r2, r8
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _0801DC78 @ =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
mov r7, r8
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, #1
ble _0801DBEE
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
_0801DC58: .4byte 0x040000D4
_0801DC5C: .4byte 0x000002F1
_0801DC60: .4byte gUnknown_084ED0CC
_0801DC64: .4byte 0x06013180
_0801DC68: .4byte 0x800000C0
_0801DC6C: .4byte gUnknown_0200E278
_0801DC70: .4byte gOamBuffer
_0801DC74: .4byte 0xFFFFFE00
_0801DC78: .4byte 0x000001FF
thumb_func_start sub_1DC7C
sub_1DC7C: @ 0x0801DC7C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r6, _0801DD7C @ =gUnknown_0200E100
ldr r2, _0801DD80 @ =gUnknown_020314E0
ldr r3, [r2]
ldr r1, _0801DD84 @ =0x000002A5
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
ldr r1, _0801DD88 @ =gUnknown_086AD862
adds r4, r0, r1
ldrh r0, [r6]
mov sb, r2
cmp r0, #0
bne _0801DCA4
b _0801DDCC
_0801DCA4:
ldrh r2, [r4]
mov r8, r2
ldr r2, _0801DD8C @ =0x040000D4
adds r0, r3, #0
adds r0, #0x6f
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
ldr r1, _0801DD90 @ =gUnknown_081379D8
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801DD94 @ =0x05000320
str r0, [r2, #4]
ldr r0, _0801DD98 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r0, r8
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0801DD9C @ =gUnknown_084B7FEC
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801DDA0 @ =0x06014680
str r0, [r2, #4]
ldr r0, _0801DDA4 @ =0x80000230
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0xc2
lsls r2, r2, #1
adds r1, r3, r2
ldr r0, _0801DDA8 @ =0x0000FF08
strh r0, [r1]
movs r0, #0xc3
lsls r0, r0, #1
adds r1, r3, r0
ldr r0, _0801DDAC @ =0x0000FEC4
strh r0, [r1]
ldrh r0, [r4, #4]
adds r0, #0x7c
adds r1, r3, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #2]
ldrh r0, [r4, #6]
adds r0, #0x96
adds r1, r3, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _0801DDB0 @ =gOamBuffer
ldr r1, _0801DDB4 @ =0xFFFFFE00
mov ip, r1
_0801DD1C:
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, _0801DDB8 @ =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 _0801DD1C
mov r1, r8
lsls r0, r1, #0x10
asrs r0, r0, #0x10
cmp r0, #4
beq _0801DD6E
cmp r0, #0xa
bne _0801DDC0
_0801DD6E:
mov r2, sb
ldr r0, [r2]
ldr r1, _0801DDBC @ =0x000002A3
adds r0, r0, r1
movs r1, #0
b _0801DDCA
.align 2, 0
_0801DD7C: .4byte gUnknown_0200E100
_0801DD80: .4byte gUnknown_020314E0
_0801DD84: .4byte 0x000002A5
_0801DD88: .4byte gUnknown_086AD862
_0801DD8C: .4byte 0x040000D4
_0801DD90: .4byte gUnknown_081379D8
_0801DD94: .4byte 0x05000320
_0801DD98: .4byte 0x80000010
_0801DD9C: .4byte gUnknown_084B7FEC
_0801DDA0: .4byte 0x06014680
_0801DDA4: .4byte 0x80000230
_0801DDA8: .4byte 0x0000FF08
_0801DDAC: .4byte 0x0000FEC4
_0801DDB0: .4byte gOamBuffer
_0801DDB4: .4byte 0xFFFFFE00
_0801DDB8: .4byte 0x000001FF
_0801DDBC: .4byte 0x000002A3
_0801DDC0:
mov r2, sb
ldr r0, [r2]
ldr r1, _0801DDD8 @ =0x000002A3
adds r0, r0, r1
movs r1, #1
_0801DDCA:
strb r1, [r0]
_0801DDCC:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801DDD8: .4byte 0x000002A3
thumb_func_start sub_1DDDC
sub_1DDDC: @ 0x0801DDDC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
ldr r1, _0801DE70 @ =gUnknown_020314E0
ldr r4, [r1]
movs r2, #0xa9
lsls r2, r2, #2
adds r0, r4, r2
movs r3, #0
ldrsb r3, [r0, r3]
mov sl, r1
cmp r3, #0
bne _0801DDFE
b _0801E518
_0801DDFE:
movs r0, #0x13
ldrsb r0, [r4, r0]
cmp r0, #2
ble _0801DE0E
ldr r3, _0801DE74 @ =0x0000016F
adds r1, r4, r3
movs r0, #1
strb r0, [r1]
_0801DE0E:
mov r4, sl
ldr r1, [r4]
ldr r3, _0801DE74 @ =0x0000016F
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0801DE4E
ldr r5, _0801DE78 @ =0x000002A2
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _0801DE44
movs r2, #0
movs r0, #9
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0801DE7C @ =0x000002A5
adds r0, r0, r1
movs r1, #8
strb r1, [r0]
ldr r0, [r4]
ldr r4, _0801DE80 @ =0x000002A6
adds r0, r0, r4
strh r2, [r0]
_0801DE44:
mov r5, sl
ldr r0, [r5]
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
_0801DE4E:
mov r1, sl
ldr r0, [r1]
ldr r2, _0801DE78 @ =0x000002A2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bls _0801DE64
bl _0801E780
_0801DE64:
lsls r0, r0, #2
ldr r1, _0801DE84 @ =_0801DE88
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801DE70: .4byte gUnknown_020314E0
_0801DE74: .4byte 0x0000016F
_0801DE78: .4byte 0x000002A2
_0801DE7C: .4byte 0x000002A5
_0801DE80: .4byte 0x000002A6
_0801DE84: .4byte _0801DE88
_0801DE88: @ jump table
.4byte _0801DEB4 @ case 0
.4byte _0801DF2C @ case 1
.4byte _0801DF68 @ case 2
.4byte _0801DFC0 @ case 3
.4byte _0801E0D0 @ case 4
.4byte _0801E174 @ case 5
.4byte _0801E1B4 @ case 6
.4byte _0801E2F8 @ case 7
.4byte _0801E34C @ case 8
.4byte _0801E44C @ case 9
.4byte _0801E4CC @ case 10
_0801DEB4:
ldr r1, _0801DF18 @ =gUnknown_086AD862
ldr r4, _0801DF1C @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0801DF20 @ =0x000002A5
adds r3, r2, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #3
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r1, _0801DF24 @ =0x000002A6
adds r2, r2, r1
ldrh r1, [r2]
cmp r0, r1
ble _0801DED8
b _0801E46E
_0801DED8:
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r1, [r4]
ldr r2, _0801DF20 @ =0x000002A5
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0801DEFA
ldr r3, _0801DF28 @ =0x000002A2
adds r1, r1, r3
movs r0, #1
strb r0, [r1]
_0801DEFA:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _0801DF0C
bl _0801E780
_0801DF0C:
movs r0, #0xd3
bl m4aSongNumStart
bl _0801E780
.align 2, 0
_0801DF18: .4byte gUnknown_086AD862
_0801DF1C: .4byte gUnknown_020314E0
_0801DF20: .4byte 0x000002A5
_0801DF24: .4byte 0x000002A6
_0801DF28: .4byte 0x000002A2
_0801DF2C:
ldr r6, _0801DF5C @ =gUnknown_020314E0
ldr r4, [r6]
ldr r5, _0801DF60 @ =0x000002A6
adds r0, r4, r5
ldrh r0, [r0]
movs r1, #0x2c
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x16
bl __udivsi3
adds r0, #4
ldr r1, _0801DF64 @ =0x000002A5
adds r4, r4, r1
strb r0, [r4]
ldr r1, [r6]
adds r1, r1, r5
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
bl _0801E780
.align 2, 0
_0801DF5C: .4byte gUnknown_020314E0
_0801DF60: .4byte 0x000002A6
_0801DF64: .4byte 0x000002A5
_0801DF68:
ldr r2, _0801DFA8 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _0801DFAC @ =0x000002A5
adds r0, r0, r3
movs r3, #0
movs r1, #6
strb r1, [r0]
ldr r1, [r2]
ldr r4, _0801DFB0 @ =0x000002A6
adds r0, r1, r4
movs r4, #0
strh r3, [r0]
ldr r5, _0801DFB4 @ =0x000002A2
adds r1, r1, r5
movs r0, #3
strb r0, [r1]
ldr r0, [r2]
ldr r1, _0801DFB8 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
strb r4, [r0, #1]
ldr r1, [r2]
ldr r0, _0801DFBC @ =0x00001388
str r0, [r1, #0x3c]
movs r0, #0xd5
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
bl _0801E780
.align 2, 0
_0801DFA8: .4byte gUnknown_020314E0
_0801DFAC: .4byte 0x000002A5
_0801DFB0: .4byte 0x000002A6
_0801DFB4: .4byte 0x000002A2
_0801DFB8: .4byte 0x0000132C
_0801DFBC: .4byte 0x00001388
_0801DFC0:
ldr r1, _0801DFE8 @ =gUnknown_086AD862
ldr r4, _0801DFEC @ =gUnknown_020314E0
ldr r2, [r4]
ldr r6, _0801DFF0 @ =0x000002A5
adds r3, r2, r6
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #3
adds r1, #2
adds r0, r0, r1
movs r5, #0
ldrsh r0, [r0, r5]
ldr r5, _0801DFF4 @ =0x000002A6
adds r2, r2, r5
ldrh r1, [r2]
cmp r0, r1
ble _0801DFF8
adds r0, r1, #1
strh r0, [r2]
b _0801E038
.align 2, 0
_0801DFE8: .4byte gUnknown_086AD862
_0801DFEC: .4byte gUnknown_020314E0
_0801DFF0: .4byte 0x000002A5
_0801DFF4: .4byte 0x000002A6
_0801DFF8:
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r4]
ldr r2, _0801E0C0 @ =0x000002A5
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xd
bne _0801E024
movs r0, #0xc
strb r0, [r1]
ldr r1, [r4]
adds r2, r1, r5
movs r0, #0x41
strh r0, [r2]
ldr r3, _0801E0C4 @ =0x000002A2
adds r1, r1, r3
movs r0, #4
strb r0, [r1]
_0801E024:
ldr r0, [r4]
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bne _0801E038
movs r0, #0xd4
bl m4aSongNumStart
_0801E038:
ldr r5, _0801E0C8 @ =gUnknown_020314E0
ldr r2, [r5]
ldr r4, _0801E0C0 @ =0x000002A5
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bne _0801E070
ldr r0, _0801E0CC @ =0x0000132C
adds r2, r2, r0
ldr r1, [r2]
ldrh r0, [r1, #0xa]
adds r0, #0x40
movs r3, #0
strh r0, [r1, #0xa]
ldr r1, [r2]
movs r0, #0x89
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r2]
movs r0, #0xbd
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r0, [r2]
strh r3, [r0, #0x30]
ldr r0, [r2]
strh r3, [r0, #0x32]
_0801E070:
ldr r2, [r5]
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _0801E0A4
ldr r1, _0801E0CC @ =0x0000132C
adds r2, r2, r1
ldr r1, [r2]
ldrh r0, [r1, #0xa]
adds r0, #0x40
movs r3, #0
strh r0, [r1, #0xa]
ldr r1, [r2]
movs r0, #0x8c
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r2]
movs r0, #0xb7
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r0, [r2]
strh r3, [r0, #0x30]
ldr r0, [r2]
strh r3, [r0, #0x32]
_0801E0A4:
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
beq _0801E0B4
b _0801E780
_0801E0B4:
ldr r2, _0801E0CC @ =0x0000132C
adds r0, r1, r2
ldr r1, [r0]
movs r0, #1
strb r0, [r1]
b _0801E780
.align 2, 0
_0801E0C0: .4byte 0x000002A5
_0801E0C4: .4byte 0x000002A2
_0801E0C8: .4byte gUnknown_020314E0
_0801E0CC: .4byte 0x0000132C
_0801E0D0:
ldr r5, _0801E154 @ =gUnknown_020314E0
ldr r0, [r5]
movs r3, #0x88
lsls r3, r3, #5
adds r0, r0, r3
movs r7, #1
strb r7, [r0]
ldr r0, [r5]
ldr r6, _0801E158 @ =0x000002A6
adds r0, r0, r6
ldrh r0, [r0]
cmp r0, #0x41
bne _0801E0F8
movs r0, #0x9f
bl m4aSongNumStart
ldr r0, _0801E15C @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0x9e
strh r1, [r0, #0x38]
_0801E0F8:
ldr r4, [r5]
adds r3, r4, r6
ldrh r0, [r3]
cmp r0, #0
bne _0801E104
b _0801E780
_0801E104:
subs r0, #1
strh r0, [r3]
ldr r2, _0801E15C @ =gMain
ldrh r0, [r3]
lsrs r0, r0, #2
movs r1, #0x10
subs r1, r1, r0
ldrh r0, [r2, #0x3c]
strh r1, [r2, #0x3c]
ldrh r0, [r3]
cmp r0, #0
beq _0801E11E
b _0801E780
_0801E11E:
movs r0, #0xa1
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #7
strb r0, [r1]
ldr r0, [r5]
ldr r1, _0801E160 @ =0x00000282
adds r0, r0, r1
strb r7, [r0]
ldr r0, [r5]
ldr r2, _0801E164 @ =0x0000072E
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0801E168 @ =0x0000073C
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
ldr r4, _0801E16C @ =0x0000072F
adds r1, r0, r4
ldrb r1, [r1]
ldr r5, _0801E170 @ =0x0000073D
adds r0, r0, r5
strb r1, [r0]
bl sub_1C73C
b _0801E780
.align 2, 0
_0801E154: .4byte gUnknown_020314E0
_0801E158: .4byte 0x000002A6
_0801E15C: .4byte gMain
_0801E160: .4byte 0x00000282
_0801E164: .4byte 0x0000072E
_0801E168: .4byte 0x0000073C
_0801E16C: .4byte 0x0000072F
_0801E170: .4byte 0x0000073D
_0801E174:
ldr r2, _0801E1A0 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _0801E1A4 @ =0x000002A5
adds r0, r0, r1
movs r3, #0
movs r1, #0xc
strb r1, [r0]
ldr r1, [r2]
ldr r4, _0801E1A8 @ =0x000002A6
adds r0, r1, r4
movs r4, #0
strh r3, [r0]
ldr r5, _0801E1AC @ =0x000002A2
adds r1, r1, r5
movs r0, #6
strb r0, [r1]
ldr r0, [r2]
ldr r1, _0801E1B0 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
strb r4, [r0, #1]
b _0801E780
.align 2, 0
_0801E1A0: .4byte gUnknown_020314E0
_0801E1A4: .4byte 0x000002A5
_0801E1A8: .4byte 0x000002A6
_0801E1AC: .4byte 0x000002A2
_0801E1B0: .4byte 0x0000132C
_0801E1B4:
ldr r1, _0801E1DC @ =gUnknown_086AD862
ldr r4, _0801E1E0 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0801E1E4 @ =0x000002A5
adds r3, r2, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #3
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r1, _0801E1E8 @ =0x000002A6
adds r2, r2, r1
ldrh r1, [r2]
cmp r0, r1
ble _0801E1EC
adds r0, r1, #1
strh r0, [r2]
b _0801E28A
.align 2, 0
_0801E1DC: .4byte gUnknown_086AD862
_0801E1E0: .4byte gUnknown_020314E0
_0801E1E4: .4byte 0x000002A5
_0801E1E8: .4byte 0x000002A6
_0801E1EC:
movs r6, #0
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r4]
ldr r2, _0801E2E4 @ =0x000002A5
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x1f
bne _0801E212
strb r6, [r1]
ldr r0, [r4]
ldr r3, _0801E2E8 @ =0x000002A2
adds r0, r0, r3
movs r1, #0xa
strb r1, [r0]
_0801E212:
ldr r2, [r4]
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x15
bne _0801E24E
ldr r0, _0801E2EC @ =0x0000132C
adds r2, r2, r0
ldr r1, [r2]
ldrh r0, [r1, #0xa]
subs r0, #0x40
strh r0, [r1, #0xa]
ldr r1, [r2]
movs r0, #0x83
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r2]
movs r0, #0xc7
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r1, [r2]
ldr r0, _0801E2F0 @ =0x0000FF88
strh r0, [r1, #0x30]
ldr r1, [r2]
movs r0, #0xd2
strh r0, [r1, #0x32]
ldr r1, [r2]
movs r0, #3
strb r0, [r1, #1]
_0801E24E:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xe
bne _0801E262
movs r0, #0xd3
bl m4aSongNumStart
_0801E262:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1b
bne _0801E276
movs r0, #0xd4
bl m4aSongNumStart
_0801E276:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
bne _0801E2CA
movs r0, #0xd6
bl m4aSongNumStart
_0801E28A:
ldr r1, _0801E2F4 @ =gUnknown_020314E0
ldr r3, [r1]
ldr r2, _0801E2E4 @ =0x000002A5
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
bne _0801E2CA
ldr r2, _0801E2EC @ =0x0000132C
adds r0, r3, r2
ldr r0, [r0]
movs r3, #0
strb r3, [r0]
ldr r1, [r1]
adds r1, r1, r2
ldr r2, [r1]
ldrh r0, [r2, #0xa]
subs r0, #0x40
strh r0, [r2, #0xa]
ldr r2, [r1]
movs r0, #0x85
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r0, #0xc0
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
_0801E2CA:
ldr r0, _0801E2F4 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _0801E2E4 @ =0x000002A5
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x16
beq _0801E2DE
b _0801E780
_0801E2DE:
movs r0, #0
strb r0, [r1, #0x1f]
b _0801E780
.align 2, 0
_0801E2E4: .4byte 0x000002A5
_0801E2E8: .4byte 0x000002A2
_0801E2EC: .4byte 0x0000132C
_0801E2F0: .4byte 0x0000FF88
_0801E2F4: .4byte gUnknown_020314E0
_0801E2F8:
ldr r4, _0801E33C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _0801E340 @ =0x000002A5
adds r0, r0, r5
movs r2, #0
movs r1, #0x1f
strb r1, [r0]
ldr r0, [r4]
ldr r3, _0801E344 @ =0x000002A6
adds r1, r0, r3
strh r2, [r1]
subs r5, #3
adds r0, r0, r5
movs r1, #8
strb r1, [r0]
ldr r1, [r4]
movs r0, #0xa
str r0, [r1, #0x3c]
movs r0, #0xb6
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
ldr r0, [r4]
ldr r2, _0801E348 @ =0x00000724
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
bne _0801E336
b _0801E780
_0801E336:
movs r0, #1
strh r0, [r1]
b _0801E780
.align 2, 0
_0801E33C: .4byte gUnknown_020314E0
_0801E340: .4byte 0x000002A5
_0801E344: .4byte 0x000002A6
_0801E348: .4byte 0x00000724
_0801E34C:
ldr r1, _0801E374 @ =gUnknown_086AD862
ldr r4, _0801E378 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0801E37C @ =0x000002A5
adds r3, r2, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #3
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r1, _0801E380 @ =0x000002A6
adds r2, r2, r1
ldrh r1, [r2]
cmp r0, r1
ble _0801E384
adds r0, r1, #1
strh r0, [r2]
b _0801E3D4
.align 2, 0
_0801E374: .4byte gUnknown_086AD862
_0801E378: .4byte gUnknown_020314E0
_0801E37C: .4byte 0x000002A5
_0801E380: .4byte 0x000002A6
_0801E384:
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r4]
ldr r2, _0801E430 @ =0x000002A5
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x2e
bne _0801E3AA
movs r0, #0
strb r0, [r1]
ldr r0, [r4]
ldr r3, _0801E434 @ =0x000002A2
adds r0, r0, r3
movs r1, #0xa
strb r1, [r0]
_0801E3AA:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x2a
bne _0801E3BE
movs r0, #0xd4
bl m4aSongNumStart
_0801E3BE:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x21
bne _0801E3D4
movs r0, #0xa6
lsls r0, r0, #1
bl m4aSongNumStart
_0801E3D4:
ldr r6, _0801E438 @ =gUnknown_020314E0
ldr r4, [r6]
ldr r5, _0801E430 @ =0x000002A5
adds r0, r4, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x2d
beq _0801E3E8
b _0801E780
_0801E3E8:
ldr r3, _0801E43C @ =gUnknown_086AD9EC
adds r5, #1
adds r2, r4, r5
ldrh r0, [r2]
movs r1, #7
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
ldr r3, _0801E440 @ =0x000002AA
adds r0, r4, r3
strh r1, [r0]
ldrh r0, [r2]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0801E412
ldr r0, _0801E444 @ =gUnknown_02032FB0
ldr r1, _0801E448 @ =gUnknown_086A0F30
bl MPlayStart
_0801E412:
ldr r0, [r6]
adds r0, r0, r5
ldrh r0, [r0]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x10
cmp r0, #0
beq _0801E426
b _0801E780
_0801E426:
movs r0, #0xc
bl sub_11B0
b _0801E780
.align 2, 0
_0801E430: .4byte 0x000002A5
_0801E434: .4byte 0x000002A2
_0801E438: .4byte gUnknown_020314E0
_0801E43C: .4byte gUnknown_086AD9EC
_0801E440: .4byte 0x000002AA
_0801E444: .4byte gUnknown_02032FB0
_0801E448: .4byte gUnknown_086A0F30
_0801E44C:
ldr r1, _0801E474 @ =gUnknown_086AD862
ldr r4, _0801E478 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0801E47C @ =0x000002A5
adds r3, r2, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #3
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r1, _0801E480 @ =0x000002A6
adds r2, r2, r1
ldrh r1, [r2]
cmp r0, r1
ble _0801E484
_0801E46E:
adds r0, r1, #1
strh r0, [r2]
b _0801E780
.align 2, 0
_0801E474: .4byte gUnknown_086AD862
_0801E478: .4byte gUnknown_020314E0
_0801E47C: .4byte 0x000002A5
_0801E480: .4byte 0x000002A6
_0801E484:
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r4]
ldr r2, _0801E4C4 @ =0x000002A5
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xd
bne _0801E4AA
movs r0, #0
strb r0, [r1]
ldr r0, [r4]
ldr r3, _0801E4C8 @ =0x000002A2
adds r0, r0, r3
movs r1, #0xa
strb r1, [r0]
_0801E4AA:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
beq _0801E4BA
b _0801E780
_0801E4BA:
movs r0, #0xd4
bl m4aSongNumStart
b _0801E780
.align 2, 0
_0801E4C4: .4byte 0x000002A5
_0801E4C8: .4byte 0x000002A2
_0801E4CC:
ldr r2, _0801E508 @ =gUnknown_020314E0
ldr r0, [r2]
movs r4, #0xa9
lsls r4, r4, #2
adds r0, r0, r4
movs r3, #0
strb r3, [r0]
ldr r0, [r2]
ldr r5, _0801E50C @ =0x000002A5
adds r0, r0, r5
strb r3, [r0]
ldr r1, [r2]
adds r4, #2
adds r0, r1, r4
strh r3, [r0]
ldr r5, _0801E510 @ =0x0000016F
adds r1, r1, r5
movs r0, #1
strb r0, [r1]
ldr r0, [r2]
movs r1, #0xba
lsls r1, r1, #1
adds r2, r0, r1
movs r1, #0x40
strh r1, [r2]
ldr r2, _0801E514 @ =0x000002AA
adds r0, r0, r2
strh r3, [r0]
b _0801E780
.align 2, 0
_0801E508: .4byte gUnknown_020314E0
_0801E50C: .4byte 0x000002A5
_0801E510: .4byte 0x0000016F
_0801E514: .4byte 0x000002AA
_0801E518:
ldr r5, _0801E560 @ =0x0000016F
adds r1, r4, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne _0801E526
b _0801E780
_0801E526:
movs r0, #0xba
lsls r0, r0, #1
adds r2, r4, r0
ldrh r0, [r2]
cmp r0, #0x8f
bhi _0801E56C
ldr r1, _0801E564 @ =gUnknown_08137968
lsrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r1
ldrh r2, [r0]
movs r1, #0xb8
lsls r1, r1, #1
adds r0, r4, r1
strb r2, [r0]
mov r3, sl
ldr r2, [r3]
adds r0, r2, r1
ldrb r0, [r0]
ldr r4, _0801E568 @ =0x00000171
adds r2, r2, r4
strb r0, [r2]
ldr r0, [r3]
adds r1, r0, r1
ldrb r1, [r1]
adds r5, #3
adds r0, r0, r5
strb r1, [r0]
b _0801E56E
.align 2, 0
_0801E560: .4byte 0x0000016F
_0801E564: .4byte gUnknown_08137968
_0801E568: .4byte 0x00000171
_0801E56C:
strb r3, [r1]
_0801E56E:
mov r0, sl
ldr r4, [r0]
movs r1, #0xb8
lsls r1, r1, #1
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
beq _0801E584
b _0801E6C4
_0801E584:
movs r2, #0xba
lsls r2, r2, #1
adds r0, r4, r2
ldrh r1, [r0]
movs r0, #7
ands r0, r1
cmp r0, #0
beq _0801E596
b _0801E6C4
_0801E596:
lsrs r0, r1, #3
cmp r0, #8
beq _0801E59E
b _0801E6C4
_0801E59E:
movs r3, #0xaa
lsls r3, r3, #2
adds r1, r4, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bls _0801E5BA
movs r0, #0x13
ldrsb r0, [r4, r0]
cmp r0, #2
ble _0801E5E8
_0801E5BA:
ldr r0, _0801E5E4 @ =gMain
ldr r5, [r0, #0x4c]
adds r0, r5, #0
movs r1, #5
bl __umodsi3
adds r0, #1
lsls r0, r0, #0x10
movs r1, #0xb6
lsls r1, r1, #1
adds r4, r4, r1
movs r1, #0
ldrsb r1, [r4, r1]
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r1, r0
bne _0801E61C
adds r0, r5, #1
movs r1, #5
b _0801E60E
.align 2, 0
_0801E5E4: .4byte gMain
_0801E5E8:
ldr r0, _0801E618 @ =gMain
ldr r5, [r0, #0x4c]
adds r0, r5, #0
movs r1, #6
bl __umodsi3
adds r0, #1
lsls r0, r0, #0x10
movs r2, #0xb6
lsls r2, r2, #1
adds r4, r4, r2
movs r1, #0
ldrsb r1, [r4, r1]
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r1, r0
bne _0801E61C
adds r0, r5, #1
movs r1, #6
_0801E60E:
bl __umodsi3
adds r0, #1
strb r0, [r4]
b _0801E61E
.align 2, 0
_0801E618: .4byte gMain
_0801E61C:
strb r2, [r4]
_0801E61E:
mov r3, sl
ldr r0, [r3]
movs r4, #0xb1
lsls r4, r4, #1
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0801E640
movs r0, #0
strb r0, [r1]
ldr r0, [r3]
movs r5, #0xb6
lsls r5, r5, #1
adds r0, r0, r5
movs r1, #6
strb r1, [r0]
_0801E640:
mov r0, sl
ldr r1, [r0]
movs r4, #0xb6
lsls r4, r4, #1
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bne _0801E68E
movs r2, #0xa9
lsls r2, r2, #2
adds r1, r1, r2
movs r3, #0
movs r0, #1
strb r0, [r1]
mov r5, sl
ldr r0, [r5]
ldr r1, _0801E700 @ =0x000002A2
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r5]
adds r2, #2
adds r1, r0, r2
movs r2, #0
strh r3, [r1]
ldr r5, _0801E704 @ =0x000002A5
adds r0, r0, r5
strb r2, [r0]
mov r1, sl
ldr r0, [r1]
ldr r5, _0801E708 @ =0x0000016F
adds r0, r0, r5
strb r2, [r0]
ldr r0, [r1]
movs r1, #0xaa
lsls r1, r1, #2
adds r0, r0, r1
strh r3, [r0]
_0801E68E:
mov r2, sl
ldr r3, [r2]
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bne _0801E6C4
ldr r2, _0801E70C @ =gUnknown_086AD9DC
movs r4, #0
ldrsh r1, [r2, r4]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
movs r5, #0xbc
lsls r5, r5, #1
adds r1, r3, r5
strh r0, [r1]
movs r0, #2
ldrsh r1, [r2, r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
movs r2, #0xbd
lsls r2, r2, #1
adds r1, r3, r2
strh r0, [r1]
_0801E6C4:
ldr r5, _0801E710 @ =gUnknown_020314E0
ldr r1, [r5]
movs r4, #0xba
lsls r4, r4, #1
adds r1, r1, r4
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bne _0801E6E2
movs r0, #0xc9
bl m4aSongNumStart
_0801E6E2:
ldr r1, [r5]
movs r3, #0xb6
lsls r3, r3, #1
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
beq _0801E742
cmp r0, #4
ble _0801E714
cmp r0, #5
beq _0801E772
b _0801E780
.align 2, 0
_0801E700: .4byte 0x000002A2
_0801E704: .4byte 0x000002A5
_0801E708: .4byte 0x0000016F
_0801E70C: .4byte gUnknown_086AD9DC
_0801E710: .4byte gUnknown_020314E0
_0801E714:
cmp r0, #0
blt _0801E780
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x66
bne _0801E726
movs r0, #0xc8
bl m4aSongNumStart
_0801E726:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x74
bne _0801E736
movs r0, #0xc8
bl m4aSongNumStart
_0801E736:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x82
bne _0801E780
b _0801E76A
_0801E742:
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x66
bne _0801E750
movs r0, #0xc8
bl m4aSongNumStart
_0801E750:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x76
bne _0801E760
movs r0, #0xc8
bl m4aSongNumStart
_0801E760:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x86
bne _0801E780
_0801E76A:
movs r0, #0xc8
bl m4aSongNumStart
b _0801E780
_0801E772:
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x68
bne _0801E780
movs r0, #0xc8
bl m4aSongNumStart
_0801E780:
ldr r1, _0801E7A4 @ =gUnknown_020314E0
ldr r0, [r1]
movs r4, #0xb6
lsls r4, r4, #1
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sl, r1
cmp r0, #6
bls _0801E798
b _0801EC32
_0801E798:
lsls r0, r0, #2
ldr r1, _0801E7A8 @ =_0801E7AC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E7A4: .4byte gUnknown_020314E0
_0801E7A8: .4byte _0801E7AC
_0801E7AC: @ jump table
.4byte _0801E7C8 @ case 0
.4byte _0801E814 @ case 1
.4byte _0801E8D0 @ case 2
.4byte _0801E998 @ case 3
.4byte _0801EA50 @ case 4
.4byte _0801EB00 @ case 5
.4byte _0801EC00 @ case 6
_0801E7C8:
mov r5, sl
ldr r2, [r5]
movs r0, #0xbc
lsls r0, r0, #1
adds r1, r2, r0
ldr r0, _0801E80C @ =0x000004E2
strh r0, [r1]
movs r3, #0xbd
lsls r3, r3, #1
adds r1, r2, r3
adds r0, #0x14
strh r0, [r1]
movs r4, #0xc0
lsls r4, r4, #1
adds r1, r2, r4
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r1]
movs r5, #0xc1
lsls r5, r5, #1
adds r1, r2, r5
subs r0, #0xf0
strh r0, [r1]
movs r0, #0xbe
lsls r0, r0, #1
adds r1, r2, r0
ldr r0, _0801E810 @ =0x0000055A
strh r0, [r1]
adds r3, #4
adds r1, r2, r3
adds r0, #0xf0
strh r0, [r1]
b _0801EC32
.align 2, 0
_0801E80C: .4byte 0x000004E2
_0801E810: .4byte 0x0000055A
_0801E814:
movs r6, #0
ldr r4, _0801E8C0 @ =gUnknown_020314E0
mov sb, r4
movs r5, #0xc8
lsls r5, r5, #1
mov r8, r5
ldr r0, _0801E8C4 @ =0x00004E20
mov sl, r0
_0801E824:
mov r1, sb
ldr r4, [r1]
movs r2, #0xa4
lsls r2, r2, #2
adds r0, r4, r2
ldr r0, [r0]
movs r3, #0x7f
ands r3, r0
lsls r3, r3, #9
lsls r1, r6, #0x10
asrs r7, r1, #0x10
lsls r6, r7, #2
adds r1, r6, r7
lsls r2, r1, #4
adds r1, r1, r2
lsls r2, r1, #8
adds r1, r1, r2
adds r3, r3, r1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
movs r1, #0x3c
bl __umodsi3
subs r0, #0x1e
lsls r0, r0, #0x10
mov r3, r8
adds r1, r4, r3
movs r0, #0xb4
strh r0, [r1]
adds r0, r5, #0
bl sub_C74
mov r4, sb
ldr r1, [r4]
adds r4, r1, r6
add r1, r8
movs r2, #0
ldrsh r1, [r1, r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
mov r1, sl
bl __divsi3
ldr r3, _0801E8C8 @ =0x00000564
adds r0, r0, r3
movs r1, #0xbc
lsls r1, r1, #1
adds r4, r4, r1
strh r0, [r4]
adds r0, r5, #0
bl sub_C24
mov r2, sb
ldr r1, [r2]
adds r4, r1, r6
add r1, r8
movs r3, #0
ldrsh r1, [r1, r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
mov r1, sl
bl __divsi3
ldr r5, _0801E8CC @ =0x000005DC
adds r0, r0, r5
movs r2, #0xbd
lsls r2, r2, #1
adds r1, r4, r2
strh r0, [r1]
adds r0, r7, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0801E824
b _0801EC32
.align 2, 0
_0801E8C0: .4byte gUnknown_020314E0
_0801E8C4: .4byte 0x00004E20
_0801E8C8: .4byte 0x00000564
_0801E8CC: .4byte 0x000005DC
_0801E8D0:
movs r6, #0
ldr r3, _0801E984 @ =gUnknown_020314E0
mov sb, r3
movs r4, #0xc8
lsls r4, r4, #1
mov r8, r4
ldr r5, _0801E988 @ =0x00004E20
mov sl, r5
_0801E8E0:
mov r0, sb
ldr r4, [r0]
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r4, r1
ldr r0, [r0]
movs r3, #0x7f
ands r3, r0
lsls r3, r3, #9
lsls r1, r6, #0x10
asrs r7, r1, #0x10
lsls r6, r7, #2
adds r1, r6, r7
lsls r2, r1, #4
adds r1, r1, r2
lsls r2, r1, #8
adds r1, r1, r2
adds r3, r3, r1
ldr r2, _0801E98C @ =0x00002710
adds r1, r2, #0
subs r1, r1, r3
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
movs r1, #0x3c
bl __umodsi3
subs r0, #0x1e
lsls r0, r0, #0x10
mov r3, r8
adds r1, r4, r3
movs r0, #0xb4
strh r0, [r1]
adds r0, r5, #0
bl sub_C74
mov r4, sb
ldr r1, [r4]
adds r4, r1, r6
add r1, r8
movs r2, #0
ldrsh r1, [r1, r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
mov r1, sl
bl __divsi3
ldr r3, _0801E990 @ =0x00000564
adds r0, r0, r3
movs r1, #0xbc
lsls r1, r1, #1
adds r4, r4, r1
strh r0, [r4]
adds r0, r5, #0
bl sub_C24
mov r2, sb
ldr r1, [r2]
adds r4, r1, r6
add r1, r8
movs r3, #0
ldrsh r1, [r1, r3]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
muls r0, r1, r0
mov r1, sl
bl __divsi3
ldr r5, _0801E994 @ =0x000005DC
adds r0, r0, r5
movs r2, #0xbd
lsls r2, r2, #1
adds r1, r4, r2
strh r0, [r1]
adds r0, r7, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0801E8E0
b _0801EC32
.align 2, 0
_0801E984: .4byte gUnknown_020314E0
_0801E988: .4byte 0x00004E20
_0801E98C: .4byte 0x00002710
_0801E990: .4byte 0x00000564
_0801E994: .4byte 0x000005DC
_0801E998:
movs r6, #0
_0801E99A:
mov r3, sl
ldr r5, [r3]
movs r4, #0xa4
lsls r4, r4, #2
adds r0, r5, r4
ldr r0, [r0]
movs r1, #0x2e
bl __umodsi3
movs r7, #0x17
subs r0, r7, r0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _0801E9C0
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_0801E9C0:
lsls r1, r6, #0x10
asrs r1, r1, #0x10
adds r2, r1, #1
lsls r0, r2, #2
adds r3, r5, r0
lsls r0, r1, #5
adds r0, r0, r1
adds r0, #0x79
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
movs r5, #0xbc
lsls r5, r5, #1
adds r0, r3, r5
strh r1, [r0]
lsls r0, r4, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #2
adds r1, r1, r0
ldr r0, _0801EA44 @ =0x0000053C
adds r1, r1, r0
movs r4, #0xbd
lsls r4, r4, #1
adds r3, r3, r4
strh r1, [r3]
lsls r2, r2, #0x10
lsrs r6, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #1
ble _0801E99A
mov r0, sl
ldr r5, [r0]
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r5, r1
ldr r0, [r0]
adds r0, #0x17
movs r1, #0x2e
bl __umodsi3
subs r0, r7, r0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _0801EA22
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_0801EA22:
movs r2, #0xbc
lsls r2, r2, #1
adds r1, r5, r2
ldr r0, _0801EA48 @ =0x0000055A
strh r0, [r1]
lsls r0, r4, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #2
adds r1, r1, r0
ldr r3, _0801EA4C @ =0x00000654
adds r1, r1, r3
movs r4, #0xbd
lsls r4, r4, #1
adds r2, r5, r4
strh r1, [r2]
b _0801EC32
.align 2, 0
_0801EA44: .4byte 0x0000053C
_0801EA48: .4byte 0x0000055A
_0801EA4C: .4byte 0x00000654
_0801EA50:
mov r5, sl
ldr r6, [r5]
movs r0, #0xbc
lsls r0, r0, #1
adds r1, r6, r0
ldr r0, _0801EAE8 @ =0x000004BA
strh r0, [r1]
ldr r5, _0801EAEC @ =gUnknown_0813798C
movs r1, #0xa4
lsls r1, r1, #2
adds r4, r6, r1
ldr r0, [r4]
movs r1, #0x3c
bl __umodsi3
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r5
ldr r2, _0801EAF0 @ =0x00000514
adds r1, r2, #0
ldrh r0, [r0]
adds r1, r1, r0
movs r3, #0xbd
lsls r3, r3, #1
adds r0, r6, r3
strh r1, [r0]
movs r0, #0xbe
lsls r0, r0, #1
adds r1, r6, r0
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r1]
ldr r0, [r4]
adds r0, #0x14
movs r1, #0x3c
bl __umodsi3
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r5
ldr r2, _0801EAF4 @ =0x00000582
adds r1, r2, #0
ldrh r0, [r0]
adds r1, r1, r0
movs r3, #0xbf
lsls r3, r3, #1
adds r0, r6, r3
strh r1, [r0]
movs r0, #0xc0
lsls r0, r0, #1
adds r1, r6, r0
ldr r0, _0801EAF8 @ =0x0000055A
strh r0, [r1]
ldr r0, [r4]
adds r0, #0x28
movs r1, #0x3c
bl __umodsi3
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r5
ldr r2, _0801EAFC @ =0x0000067C
adds r1, r2, #0
ldrh r0, [r0]
adds r1, r1, r0
movs r3, #0xc1
lsls r3, r3, #1
adds r0, r6, r3
b _0801EC30
.align 2, 0
_0801EAE8: .4byte 0x000004BA
_0801EAEC: .4byte gUnknown_0813798C
_0801EAF0: .4byte 0x00000514
_0801EAF4: .4byte 0x00000582
_0801EAF8: .4byte 0x0000055A
_0801EAFC: .4byte 0x0000067C
_0801EB00:
ldr r0, _0801EBF0 @ =gUnknown_086AD9DC
mov r4, sl
ldr r3, [r4]
movs r5, #0xb7
lsls r5, r5, #1
adds r1, r3, r5
movs r2, #0
ldrsb r2, [r1, r2]
lsls r2, r2, #2
adds r2, r2, r0
movs r0, #0
ldrsh r1, [r2, r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
adds r5, #0xa
adds r1, r3, r5
movs r4, #0
ldrsh r1, [r1, r4]
subs r1, r0, r1
str r1, [sp]
movs r0, #2
ldrsh r1, [r2, r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
movs r1, #0xbd
lsls r1, r1, #1
mov sb, r1
add r3, sb
movs r2, #0
ldrsh r1, [r3, r2]
subs r1, r0, r1
str r1, [sp, #4]
ldr r4, [sp]
adds r3, r4, #0
muls r3, r4, r3
mov r8, r3
adds r0, r1, #0
muls r0, r1, r0
add r8, r0
lsls r0, r4, #0x10
asrs r0, r0, #0x10
rsbs r1, r1, #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
lsls r1, r0, #3
subs r1, r1, r0
ldr r6, _0801EBF4 @ =0x00004E20
adds r0, r1, #0
adds r1, r6, #0
bl __divsi3
str r0, [sp, #8]
adds r0, r4, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r0, r0, r1
adds r1, r6, #0
bl __divsi3
str r0, [sp, #0xc]
mov r0, sl
ldr r1, [r0]
adds r5, r1, r5
ldrh r0, [r5]
ldr r2, [sp, #8]
adds r0, r2, r0
movs r4, #0
strh r0, [r5]
add r1, sb
ldrh r0, [r1]
ldr r3, [sp, #0xc]
adds r0, r3, r0
strh r0, [r1]
ldr r0, _0801EBF8 @ =0x000009C3
cmp r8, r0
bgt _0801EBCA
bl Random
mov r5, sl
ldr r2, [r5]
movs r1, #3
ands r1, r0
movs r3, #0xb7
lsls r3, r3, #1
adds r0, r2, r3
strb r1, [r0]
_0801EBCA:
mov r5, sl
ldr r2, [r5]
movs r1, #0xbe
lsls r1, r1, #1
adds r0, r2, r1
strh r4, [r0]
movs r3, #0xbf
lsls r3, r3, #1
adds r0, r2, r3
ldr r1, _0801EBFC @ =0x0000FED4
strh r1, [r0]
movs r5, #0xc0
lsls r5, r5, #1
adds r0, r2, r5
strh r4, [r0]
adds r3, #4
adds r0, r2, r3
b _0801EC30
.align 2, 0
_0801EBF0: .4byte gUnknown_086AD9DC
_0801EBF4: .4byte 0x00004E20
_0801EBF8: .4byte 0x000009C3
_0801EBFC: .4byte 0x0000FED4
_0801EC00:
mov r4, sl
ldr r3, [r4]
movs r5, #0xbc
lsls r5, r5, #1
adds r0, r3, r5
movs r2, #0
strh r2, [r0]
movs r1, #0xbd
lsls r1, r1, #1
adds r0, r3, r1
ldr r1, _0801EC44 @ =0x0000FED4
strh r1, [r0]
movs r4, #0xbe
lsls r4, r4, #1
adds r0, r3, r4
strh r2, [r0]
adds r5, #6
adds r0, r3, r5
strh r1, [r0]
adds r4, #4
adds r0, r3, r4
strh r2, [r0]
adds r5, #4
adds r0, r3, r5
_0801EC30:
strh r1, [r0]
_0801EC32:
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
_0801EC44: .4byte 0x0000FED4
thumb_func_start sub_1EC48
sub_1EC48: @ 0x0801EC48
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r1, _0801ECAC @ =gUnknown_020314E0
ldr r3, [r1]
ldr r2, _0801ECB0 @ =0x00000624
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _0801EC66
b _0801EE4A
_0801EC66:
cmp r0, #2
beq _0801EC6C
b _0801EE3C
_0801EC6C:
movs r0, #0xfa
lsls r0, r0, #1
str r0, [r3, #0x3c]
movs r0, #0xb6
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
ldr r3, _0801ECAC @ =gUnknown_020314E0
ldr r1, [r3]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
beq _0801EC8C
b _0801EE1E
_0801EC8C:
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #5
beq _0801EC96
b _0801EE1E
_0801EC96:
ldr r5, _0801ECB4 @ =0x00000625
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
ble _0801ECA4
b _0801EE1E
_0801ECA4:
cmp r0, #0
bne _0801ECB8
movs r0, #1
b _0801ECC2
.align 2, 0
_0801ECAC: .4byte gUnknown_020314E0
_0801ECB0: .4byte 0x00000624
_0801ECB4: .4byte 0x00000625
_0801ECB8:
cmp r0, #1
bne _0801ECC0
movs r0, #3
b _0801ECC2
_0801ECC0:
movs r0, #6
_0801ECC2:
strb r0, [r1]
ldr r6, _0801ED70 @ =gUnknown_020314E0
ldr r5, [r6]
ldr r1, _0801ED74 @ =0x00000625
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r0
cmp r0, #6
beq _0801ECDA
b _0801EE1E
_0801ECDA:
ldr r2, _0801ED78 @ =0x000006C6
adds r0, r5, r2
movs r7, #0
ldrsb r7, [r0, r7]
cmp r7, #0
beq _0801ECE8
b _0801EE1E
_0801ECE8:
movs r3, #0xb6
lsls r3, r3, #1
adds r0, r5, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r0
cmp r0, #4
bne _0801ED98
ldr r2, _0801ED7C @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
orrs r0, r1
strb r0, [r2, #0xf]
adds r0, r5, #0
adds r0, #0xea
movs r4, #0
movs r3, #0x32
strh r3, [r0]
adds r1, r5, #0
adds r1, #0xec
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
subs r1, #4
movs r0, #0xec
strh r0, [r1]
adds r0, r5, #0
adds r0, #0xe6
strh r7, [r0]
adds r0, #8
mov r1, r8
strh r1, [r0]
adds r0, #4
mov r5, sb
strb r5, [r0]
ldr r0, [r6]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
adds r0, #0xfb
strb r4, [r0]
ldr r4, [r6]
adds r1, r4, #0
adds r1, #0xf4
movs r0, #0x50
strh r0, [r1]
adds r1, #2
ldr r0, _0801ED80 @ =0x0000F63C
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xf0
strh r3, [r0]
adds r0, #8
strh r7, [r0]
ldr r1, _0801ED84 @ =0x040000D4
ldr r0, _0801ED88 @ =gUnknown_086ACEF8
ldr r0, [r0, #0x18]
str r0, [r1]
ldr r0, _0801ED8C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0801ED90 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0801ED94 @ =gUnknown_086ACF18
ldr r0, [r0, #0x18]
b _0801EE0C
.align 2, 0
_0801ED70: .4byte gUnknown_020314E0
_0801ED74: .4byte 0x00000625
_0801ED78: .4byte 0x000006C6
_0801ED7C: .4byte gMain
_0801ED80: .4byte 0x0000F63C
_0801ED84: .4byte 0x040000D4
_0801ED88: .4byte gUnknown_086ACEF8
_0801ED8C: .4byte 0x06015800
_0801ED90: .4byte 0x80001200
_0801ED94: .4byte gUnknown_086ACF18
_0801ED98:
ldr r2, _0801EEA8 @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
orrs r0, r1
strb r0, [r2, #0xf]
adds r0, r5, #0
adds r0, #0xea
movs r4, #0
movs r3, #0x32
strh r3, [r0]
adds r1, r5, #0
adds r1, #0xec
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
subs r1, #4
movs r0, #0xec
strh r0, [r1]
adds r0, r5, #0
adds r0, #0xe6
strh r7, [r0]
adds r1, #6
movs r0, #4
strh r0, [r1]
adds r0, r5, #0
adds r0, #0xf2
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
adds r0, #0xfa
strb r1, [r0]
ldr r0, [r6]
adds r0, #0xfb
strb r4, [r0]
ldr r4, [r6]
adds r1, r4, #0
adds r1, #0xf4
movs r0, #0x50
strh r0, [r1]
adds r1, #2
ldr r0, _0801EEAC @ =0x0000F63C
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xf0
strh r3, [r0]
adds r0, #8
strh r7, [r0]
ldr r1, _0801EEB0 @ =0x040000D4
ldr r0, _0801EEB4 @ =gUnknown_086ACEF8
ldr r0, [r0, #4]
str r0, [r1]
ldr r0, _0801EEB8 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0801EEBC @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0801EEC0 @ =gUnknown_086ACF18
ldr r0, [r0, #4]
_0801EE0C:
str r0, [r1]
ldr r0, _0801EEC4 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0801EEC8 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r2, #0x38]
movs r0, #0xce
strh r0, [r2, #0x38]
_0801EE1E:
ldr r2, _0801EECC @ =gUnknown_020314E0
ldr r0, [r2]
movs r6, #0xbb
lsls r6, r6, #1
adds r1, r0, r6
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r2]
movs r0, #0xc2
lsls r0, r0, #2
adds r1, r1, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0801EE3C:
ldr r2, _0801EECC @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0801EED0 @ =0x00000624
adds r1, r1, r3
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
_0801EE4A:
ldr r5, _0801EED4 @ =gUnknown_0200E048
mov sl, r5
ldr r6, _0801EECC @ =gUnknown_020314E0
ldr r0, [r6]
movs r1, #0xb6
lsls r1, r1, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0801EF4C
movs r6, #0
ldr r2, _0801EED8 @ =gUnknown_0844928C
mov sb, r2
ldr r3, _0801EECC @ =gUnknown_020314E0
mov r8, r3
movs r7, #0xb8
lsls r7, r7, #1
ldr r5, _0801EEB0 @ =0x040000D4
_0801EE72:
mov r0, r8
ldr r3, [r0]
lsls r0, r6, #0x10
asrs r4, r0, #0x10
adds r0, r3, r7
adds r2, r0, r4
ldrb r0, [r2]
movs r1, #0
ldrsb r1, [r2, r1]
cmp r1, #0
beq _0801EEE2
cmp r1, #0x64
ble _0801EEDC
subs r0, #1
movs r3, #0
strb r0, [r2]
mov r1, r8
ldr r0, [r1]
adds r0, r0, r7
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x64
bne _0801EEA4
strb r3, [r1]
_0801EEA4:
movs r1, #8
b _0801EEFA
.align 2, 0
_0801EEA8: .4byte gMain
_0801EEAC: .4byte 0x0000F63C
_0801EEB0: .4byte 0x040000D4
_0801EEB4: .4byte gUnknown_086ACEF8
_0801EEB8: .4byte 0x06015800
_0801EEBC: .4byte 0x80001200
_0801EEC0: .4byte gUnknown_086ACF18
_0801EEC4: .4byte 0x050003C0
_0801EEC8: .4byte 0x80000010
_0801EECC: .4byte gUnknown_020314E0
_0801EED0: .4byte 0x00000624
_0801EED4: .4byte gUnknown_0200E048
_0801EED8: .4byte gUnknown_0844928C
_0801EEDC:
movs r0, #0
ldrsb r0, [r2, r0]
b _0801EEF6
_0801EEE2:
movs r2, #0xa4
lsls r2, r2, #2
adds r0, r3, r2
ldr r0, [r0]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
_0801EEF6:
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_0801EEFA:
lsls r0, r1, #0x10
asrs r0, r0, #8
add r0, sb
str r0, [r5]
lsls r1, r6, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #8
ldr r3, _0801EF38 @ =0x06012E80
adds r0, r0, r3
str r0, [r5, #4]
ldr r0, _0801EF3C @ =0x80000080
str r0, [r5, #8]
ldr r0, [r5, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #2
ble _0801EE72
ldr r2, _0801EF40 @ =0x040000D4
ldr r5, _0801EF44 @ =gUnknown_020314E0
ldr r0, [r5]
adds r0, #0x6f
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
ldr r6, _0801EF48 @ =gUnknown_081379B8
b _0801F006
.align 2, 0
_0801EF38: .4byte 0x06012E80
_0801EF3C: .4byte 0x80000080
_0801EF40: .4byte 0x040000D4
_0801EF44: .4byte gUnknown_020314E0
_0801EF48: .4byte gUnknown_081379B8
_0801EF4C:
movs r6, #0
movs r0, #0xb8
lsls r0, r0, #1
mov sb, r0
ldr r1, _0801EFA0 @ =0x040000D4
mov r8, r1
_0801EF58:
ldr r2, _0801EFA4 @ =gUnknown_020314E0
ldr r1, [r2]
lsls r0, r6, #0x10
asrs r5, r0, #0x10
mov r3, sb
adds r0, r1, r3
adds r4, r0, r5
ldrb r7, [r4]
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
beq _0801EFAE
cmp r0, #0x64
ble _0801EFA8
movs r1, #0x69
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #9
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
subs r0, r7, #1
movs r3, #0
strb r0, [r4]
ldr r2, _0801EFA4 @ =gUnknown_020314E0
ldr r0, [r2]
add r0, sb
adds r2, r0, r5
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0x64
bne _0801EFC6
strb r3, [r2]
b _0801EFC6
.align 2, 0
_0801EFA0: .4byte 0x040000D4
_0801EFA4: .4byte gUnknown_020314E0
_0801EFA8:
movs r0, #0
ldrsb r0, [r4, r0]
b _0801EFC2
_0801EFAE:
movs r3, #0xa4
lsls r3, r3, #2
adds r0, r1, r3
ldr r0, [r0]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
_0801EFC2:
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_0801EFC6:
lsls r0, r1, #0x10
asrs r0, r0, #8
ldr r5, _0801F128 @ =gUnknown_083C806C
adds r0, r0, r5
mov r1, r8
str r0, [r1]
lsls r1, r6, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #8
ldr r2, _0801F12C @ =0x06012E80
adds r0, r0, r2
mov r3, r8
str r0, [r3, #4]
ldr r0, _0801F130 @ =0x80000080
str r0, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #2
ble _0801EF58
ldr r2, _0801F134 @ =0x040000D4
ldr r5, _0801F138 @ =gUnknown_020314E0
ldr r0, [r5]
adds r0, #0x6f
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
ldr r6, _0801F13C @ =gUnknown_08137998
_0801F006:
adds r0, r0, r6
str r0, [r2]
ldr r0, _0801F140 @ =0x05000320
str r0, [r2, #4]
ldr r0, _0801F144 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r6, #0
_0801F016:
ldr r0, _0801F138 @ =gUnknown_020314E0
ldr r4, [r0]
lsls r6, r6, #0x10
asrs r1, r6, #0x10
mov sb, r1
lsls r0, r1, #2
adds r7, r4, r0
movs r2, #0xbc
lsls r2, r2, #1
adds r5, r7, r2
movs r3, #0
ldrsh r0, [r5, r3]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
subs r0, #8
mov r1, sl
strh r0, [r1, #2]
movs r2, #0xbd
lsls r2, r2, #1
adds r2, r2, r7
mov r8, r2
movs r3, #0
ldrsh r0, [r2, r3]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
subs r0, #4
mov r1, sl
strh r0, [r1, #4]
movs r2, #0
ldrsh r0, [r5, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
rsbs r0, r0, #0
adds r0, #8
lsls r0, r0, #1
movs r3, #0xc2
lsls r3, r3, #1
adds r1, r7, r3
strh r0, [r1]
mov r5, r8
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
rsbs r0, r0, #0
adds r0, #7
lsls r0, r0, #1
movs r2, #0xc3
lsls r2, r2, #1
adds r1, r7, r2
strh r0, [r1]
mov r3, sl
movs r5, #4
ldrsh r1, [r3, r5]
movs r0, #0x28
rsbs r0, r0, #0
mov r8, r6
cmp r1, r0
bge _0801F0AE
ldr r0, _0801F148 @ =0x0000FFD8
strh r0, [r3, #4]
_0801F0AE:
movs r0, #0
mov r6, sb
lsls r6, r6, #1
mov ip, r6
ldr r7, _0801F14C @ =gOamBuffer
ldr r1, _0801F150 @ =0xFFFFFE00
mov sb, r1
_0801F0BC:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
mov r3, ip
adds r2, r4, r3
lsls r2, r2, #3
adds r2, #8
add r2, sl
ldrh r3, [r2]
lsls r3, r3, #3
adds r3, r3, r7
movs r5, #2
ldrsh r1, [r2, r5]
mov r6, sl
movs r5, #2
ldrsh r0, [r6, r5]
adds r1, r1, r0
ldr r6, _0801F154 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
ldrh r5, [r3, #2]
mov r0, sb
ands r0, r5
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r2]
lsls r1, r1, #3
adds r1, r1, r7
mov r3, sl
ldrb r0, [r3, #4]
ldrb r2, [r2, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _0801F0BC
movs r0, #0x80
lsls r0, r0, #9
add r0, r8
lsrs r6, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bgt _0801F118
b _0801F016
_0801F118:
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
_0801F128: .4byte gUnknown_083C806C
_0801F12C: .4byte 0x06012E80
_0801F130: .4byte 0x80000080
_0801F134: .4byte 0x040000D4
_0801F138: .4byte gUnknown_020314E0
_0801F13C: .4byte gUnknown_08137998
_0801F140: .4byte 0x05000320
_0801F144: .4byte 0x80000010
_0801F148: .4byte 0x0000FFD8
_0801F14C: .4byte gOamBuffer
_0801F150: .4byte 0xFFFFFE00
_0801F154: .4byte 0x000001FF
thumb_func_start sub_1F158
sub_1F158: @ 0x0801F158
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, _0801F270 @ =gMain
ldr r0, [r4, #0x4c]
movs r1, #0x37
bl __umodsi3
movs r1, #0xb
bl __udivsi3
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, _0801F274 @ =0x00002ED0
adds r7, r4, r0
ldr r2, _0801F278 @ =0x040000D4
ldr r6, _0801F27C @ =gUnknown_020314E0
ldr r3, [r6]
ldr r0, _0801F280 @ =0x000002F5
adds r4, r3, r0
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
subs r0, r0, r1
lsls r0, r0, #5
ldr r1, _0801F284 @ =gUnknown_084F5ACC
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801F288 @ =0x06012C20
str r0, [r2, #4]
ldr r0, _0801F28C @ =0x80000130
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0xbd
lsls r2, r2, #2
adds r3, r3, r2
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _0801F1B4
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
_0801F1B4:
ldr r2, _0801F290 @ =gUnknown_086AD9FC
lsls r0, r5, #0x10
asrs r0, r0, #0xe
adds r1, r0, r2
ldrh r3, [r1]
adds r2, #2
adds r0, r0, r2
ldrh r0, [r0]
strb r0, [r4]
ldr r1, [r6]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0xb3
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r0, #0xae
subs r0, r0, r1
strh r0, [r7, #4]
movs r1, #0
ldr r5, _0801F294 @ =gUnknown_086B3A04
mov sb, r5
ldr r6, _0801F298 @ =gOamBuffer
lsls r3, r3, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, r0, r3
lsls r0, r0, #1
mov ip, r0
ldr r0, _0801F29C @ =0xFFFFFE00
mov r8, r0
_0801F1F6:
lsls r3, r1, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
adds r4, r7, r4
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, sb
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 r5, [r2, #2]
mov sl, r5
mov r0, sl
lsls r1, r0, #0x17
lsrs r1, r1, #0x17
movs r5, #2
ldrsh r0, [r7, r5]
adds r1, r1, r0
ldr r5, _0801F2A0 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
mov r0, r8
mov r5, sl
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r1, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _0801F1F6
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
_0801F270: .4byte gMain
_0801F274: .4byte 0x00002ED0
_0801F278: .4byte 0x040000D4
_0801F27C: .4byte gUnknown_020314E0
_0801F280: .4byte 0x000002F5
_0801F284: .4byte gUnknown_084F5ACC
_0801F288: .4byte 0x06012C20
_0801F28C: .4byte 0x80000130
_0801F290: .4byte gUnknown_086AD9FC
_0801F294: .4byte gUnknown_086B3A04
_0801F298: .4byte gOamBuffer
_0801F29C: .4byte 0xFFFFFE00
_0801F2A0: .4byte 0x000001FF
thumb_func_start sub_1F2A4
sub_1F2A4: @ 0x0801F2A4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r5, _0801F3E8 @ =gUnknown_020314E0
ldr r4, [r5]
movs r1, #0xe3
lsls r1, r1, #1
adds r0, r4, r1
movs r2, #0xe4
lsls r2, r2, #1
mov sb, r2
adds r2, r4, r2
movs r3, #0
ldrsh r1, [r0, r3]
ldrh r3, [r2]
movs r6, #0
ldrsh r0, [r2, r6]
cmp r1, r0
beq _0801F39A
adds r0, r3, #2
strh r0, [r2]
movs r1, #0
ldrsh r0, [r2, r1]
movs r1, #0xe
bl __divsi3
movs r6, #0xe5
lsls r6, r6, #1
adds r2, r4, r6
strh r0, [r2]
movs r3, #0xe8
lsls r3, r3, #1
mov r8, r3
adds r1, r4, r3
movs r0, #0x50
strh r0, [r1]
movs r0, #0xec
lsls r0, r0, #1
mov ip, r0
adds r0, r4, r0
subs r3, #0xd0
strh r3, [r0]
movs r7, #0xed
lsls r7, r7, #1
adds r0, r4, r7
strh r3, [r0]
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0xb
bne _0801F314
movs r2, #0xe7
lsls r2, r2, #1
adds r1, r4, r2
movs r0, #0x78
strh r0, [r1]
_0801F314:
ldr r2, [r5]
adds r1, r2, r6
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0xb
ble _0801F336
movs r0, #0xc
strh r0, [r1]
mov r6, r8
adds r1, r2, r6
movs r0, #0x78
strh r0, [r1]
mov r1, ip
adds r0, r2, r1
strh r3, [r0]
adds r0, r2, r7
strh r3, [r0]
_0801F336:
ldr r0, [r5]
mov r3, sb
adds r2, r0, r3
movs r4, #0
ldrsh r0, [r2, r4]
cmp r0, #0xa7
bgt _0801F368
ldrh r0, [r2]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0801F368
movs r5, #0
ldrsh r0, [r2, r5]
movs r1, #0x15
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #8
movs r6, #0xa8
lsls r6, r6, #0x10
adds r0, r0, r6
lsrs r0, r0, #0x10
bl m4aSongNumStart
_0801F368:
ldr r4, _0801F3E8 @ =gUnknown_020314E0
ldr r1, [r4]
movs r2, #0xe3
lsls r2, r2, #1
adds r0, r1, r2
movs r3, #0xe4
lsls r3, r3, #1
adds r2, r1, r3
ldrh r3, [r0]
movs r5, #0
ldrsh r1, [r0, r5]
movs r6, #0
ldrsh r0, [r2, r6]
cmp r1, r0
bgt _0801F39A
strh r3, [r2]
cmp r1, #0xa7
ble _0801F39A
ldr r0, _0801F3EC @ =gMPlayInfo_SE1
ldr r1, _0801F3F0 @ =gUnknown_0869F2A0
bl MPlayStart
ldr r1, [r4]
ldr r0, _0801F3F4 @ =0x00000BB8
str r0, [r1, #0x3c]
_0801F39A:
ldr r5, _0801F3E8 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r2, _0801F3F8 @ =0x00000616
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _0801F3AC
subs r0, #1
strh r0, [r1]
_0801F3AC:
ldr r4, [r5]
ldr r3, _0801F3FC @ =0x00000614
adds r2, r4, r3
ldrh r0, [r2]
movs r6, #0
ldrsh r1, [r2, r6]
cmp r1, #0
ble _0801F478
subs r0, #3
movs r3, #0
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bge _0801F3CA
strh r3, [r2]
_0801F3CA:
ldr r0, [r5]
movs r2, #0xc3
lsls r2, r2, #3
adds r1, r0, r2
ldrh r2, [r1]
ldr r4, _0801F400 @ =0x0000061A
adds r0, r0, r4
movs r6, #0
ldrsh r0, [r0, r6]
subs r0, #1
cmp r2, r0
bge _0801F404
adds r0, r2, #1
strh r0, [r1]
b _0801F44E
.align 2, 0
_0801F3E8: .4byte gUnknown_020314E0
_0801F3EC: .4byte gMPlayInfo_SE1
_0801F3F0: .4byte gUnknown_0869F2A0
_0801F3F4: .4byte 0x00000BB8
_0801F3F8: .4byte 0x00000616
_0801F3FC: .4byte 0x00000614
_0801F400: .4byte 0x0000061A
_0801F404:
strh r3, [r1]
ldr r0, _0801F464 @ =gUnknown_02032FB0
ldr r1, _0801F468 @ =gUnknown_0869F240
bl MPlayStart
ldr r2, [r5]
movs r0, #0x64
str r0, [r2, #0x3c]
movs r1, #0xe5
lsls r1, r1, #1
adds r0, r2, r1
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0xb
bgt _0801F44E
ldr r4, _0801F46C @ =0x0000061C
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801F44E
movs r5, #0xe8
lsls r5, r5, #1
adds r1, r2, r5
movs r0, #0x50
strh r0, [r1]
movs r6, #0xec
lsls r6, r6, #1
adds r0, r2, r6
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0]
movs r3, #0xed
lsls r3, r3, #1
adds r0, r2, r3
strh r1, [r0]
_0801F44E:
ldr r5, _0801F470 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, _0801F474 @ =0x00000614
adds r0, r4, r6
movs r2, #0
ldrsh r1, [r0, r2]
movs r0, #0xe1
lsls r0, r0, #1
subs r0, r0, r1
b _0801F508
.align 2, 0
_0801F464: .4byte gUnknown_02032FB0
_0801F468: .4byte gUnknown_0869F240
_0801F46C: .4byte 0x0000061C
_0801F470: .4byte gUnknown_020314E0
_0801F474: .4byte 0x00000614
_0801F478:
cmp r1, #0
bge _0801F55C
adds r0, #3
movs r3, #0
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
ble _0801F48A
strh r3, [r2]
_0801F48A:
ldr r0, [r5]
movs r2, #0xc3
lsls r2, r2, #3
adds r1, r0, r2
ldrh r2, [r1]
ldr r4, _0801F4A8 @ =0x0000061A
adds r0, r0, r4
movs r6, #0
ldrsh r0, [r0, r6]
subs r0, #1
cmp r2, r0
bge _0801F4AC
adds r0, r2, #1
strh r0, [r1]
b _0801F4F6
.align 2, 0
_0801F4A8: .4byte 0x0000061A
_0801F4AC:
strh r3, [r1]
ldr r0, _0801F540 @ =gUnknown_02032FB0
ldr r1, _0801F544 @ =gUnknown_0869F240
bl MPlayStart
ldr r2, [r5]
movs r0, #0x64
str r0, [r2, #0x3c]
movs r1, #0xe5
lsls r1, r1, #1
adds r0, r2, r1
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0xb
bgt _0801F4F6
ldr r4, _0801F548 @ =0x0000061C
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801F4F6
movs r5, #0xe8
lsls r5, r5, #1
adds r1, r2, r5
movs r0, #0x50
strh r0, [r1]
movs r6, #0xec
lsls r6, r6, #1
adds r0, r2, r6
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0]
movs r3, #0xed
lsls r3, r3, #1
adds r0, r2, r3
strh r1, [r0]
_0801F4F6:
ldr r5, _0801F54C @ =gUnknown_020314E0
ldr r4, [r5]
ldr r6, _0801F550 @ =0x00000614
adds r0, r4, r6
movs r1, #0
ldrsh r0, [r0, r1]
movs r2, #0xe1
lsls r2, r2, #1
adds r0, r0, r2
_0801F508:
movs r1, #0xa
bl __divsi3
ldr r1, _0801F554 @ =0x0000061A
adds r4, r4, r1
strh r0, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
bgt _0801F520
movs r0, #5
strh r0, [r4]
_0801F520:
ldr r4, [r5]
movs r3, #0xc3
lsls r3, r3, #3
adds r0, r4, r3
ldrh r0, [r0]
lsls r0, r0, #4
adds r1, r4, r1
movs r5, #0
ldrsh r1, [r1, r5]
bl __divsi3
ldr r6, _0801F558 @ =0x000001E5
adds r1, r4, r6
strb r0, [r1]
b _0801F58A
.align 2, 0
_0801F540: .4byte gUnknown_02032FB0
_0801F544: .4byte gUnknown_0869F240
_0801F548: .4byte 0x0000061C
_0801F54C: .4byte gUnknown_020314E0
_0801F550: .4byte 0x00000614
_0801F554: .4byte 0x0000061A
_0801F558: .4byte 0x000001E5
_0801F55C:
ldr r0, _0801F598 @ =0x000001E5
adds r5, r4, r0
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
ble _0801F58A
movs r1, #0xc3
lsls r1, r1, #3
adds r4, r4, r1
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
ldrh r0, [r4]
movs r1, #0x28
bl __umodsi3
strh r0, [r4]
ldrh r0, [r4]
lsls r0, r0, #4
movs r1, #0x28
bl __divsi3
strb r0, [r5]
_0801F58A:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801F598: .4byte 0x000001E5
thumb_func_start sub_1F59C
sub_1F59C: @ 0x0801F59C
push {r4, r5, r6, r7, lr}
ldr r3, _0801F5D4 @ =gUnknown_020314E0
ldr r4, [r3]
ldr r1, _0801F5D8 @ =0x000001E5
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r2, _0801F5DC @ =gMain
ldr r0, [r2, #0x44]
ldr r6, [r0, #0x7c]
adds r0, r4, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xce
subs r0, r0, r1
strh r0, [r6, #2]
ldrb r0, [r2, #4]
cmp r0, #0
bne _0801F5E0
adds r0, r4, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0xae
b _0801F5E8
.align 2, 0
_0801F5D4: .4byte gUnknown_020314E0
_0801F5D8: .4byte 0x000001E5
_0801F5DC: .4byte gMain
_0801F5E0:
adds r0, r4, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x9a
_0801F5E8:
subs r0, r0, r1
strh r0, [r6, #4]
ldr r1, [r3]
ldr r2, _0801F678 @ =0x000001E5
adds r0, r1, r2
movs r3, #0xf3
lsls r3, r3, #1
adds r2, r1, r3
ldrb r3, [r0]
movs r1, #0
ldrsb r1, [r0, r1]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r1, r0
beq _0801F624
strb r3, [r2]
ldr r2, _0801F67C @ =0x040000D4
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
ldr r1, _0801F680 @ =gUnknown_084FA48C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801F684 @ =0x06010780
str r0, [r2, #4]
ldr r0, _0801F688 @ =0x80000090
str r0, [r2, #8]
ldr r0, [r2, #8]
_0801F624:
movs r0, #0
ldr r7, _0801F68C @ =gOamBuffer
ldr r1, _0801F690 @ =0xFFFFFE00
mov ip, r1
_0801F62C:
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, _0801F694 @ =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 _0801F62C
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801F678: .4byte 0x000001E5
_0801F67C: .4byte 0x040000D4
_0801F680: .4byte gUnknown_084FA48C
_0801F684: .4byte 0x06010780
_0801F688: .4byte 0x80000090
_0801F68C: .4byte gOamBuffer
_0801F690: .4byte 0xFFFFFE00
_0801F694: .4byte 0x000001FF
thumb_func_start sub_1F698
sub_1F698: @ 0x0801F698
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r2, #0
ldr r7, _0801F6EC @ =gUnknown_0200BDC8
ldr r0, _0801F6F0 @ =gUnknown_020314E0
ldr r4, [r0]
movs r1, #0xaf
lsls r1, r1, #2
adds r3, r4, r1
ldrh r1, [r3]
mov sb, r0
cmp r1, #0x3b
bhi _0801F712
adds r0, r1, #0
subs r0, #0x1b
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x13
bhi _0801F704
ldrh r0, [r3]
subs r0, #0x1b
movs r1, #5
bl __divsi3
ldr r2, _0801F6F4 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, _0801F6F8 @ =gUnknown_083C562C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801F6FC @ =0x06014280
str r0, [r2, #4]
ldr r0, _0801F700 @ =0x80000080
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r0, r4, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xb0
b _0801F760
.align 2, 0
_0801F6EC: .4byte gUnknown_0200BDC8
_0801F6F0: .4byte gUnknown_020314E0
_0801F6F4: .4byte 0x040000D4
_0801F6F8: .4byte gUnknown_083C562C
_0801F6FC: .4byte 0x06014280
_0801F700: .4byte 0x80000080
_0801F704:
strh r2, [r7]
mov r2, sb
ldr r0, [r2]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xb0
b _0801F760
_0801F712:
adds r0, r1, #0
subs r0, #0x64
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x13
bhi _0801F754
ldrh r0, [r3]
subs r0, #0x64
movs r1, #5
bl __divsi3
ldr r2, _0801F744 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, _0801F748 @ =gUnknown_083C562C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801F74C @ =0x06014280
str r0, [r2, #4]
ldr r0, _0801F750 @ =0x80000080
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r0, r4, #0
b _0801F75A
.align 2, 0
_0801F744: .4byte 0x040000D4
_0801F748: .4byte gUnknown_083C562C
_0801F74C: .4byte 0x06014280
_0801F750: .4byte 0x80000080
_0801F754:
strh r2, [r7]
mov r3, sb
ldr r0, [r3]
_0801F75A:
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x20
_0801F760:
subs r0, r0, r1
strh r0, [r7, #2]
ldrh r0, [r7]
ldr r1, _0801F880 @ =gUnknown_0200BD10
mov r8, r1
cmp r0, #0
beq _0801F7D8
mov r2, sb
ldr r0, [r2]
adds r0, #0x5a
ldrh r1, [r0]
movs r3, #0x94
lsls r3, r3, #1
adds r0, r3, #0
subs r0, r0, r1
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _0801F78C
movs r0, #0xb4
strh r0, [r7, #4]
_0801F78C:
movs r0, #0
ldr r6, _0801F884 @ =gOamBuffer
ldr r1, _0801F888 @ =0xFFFFFE00
mov ip, r1
_0801F794:
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, _0801F88C @ =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, #1
ble _0801F794
_0801F7D8:
mov r7, r8
ldrh r0, [r7]
cmp r0, #0
bne _0801F7E2
b _0801FA26
_0801F7E2:
mov r0, sb
ldr r3, [r0]
movs r6, #0xaf
lsls r6, r6, #2
adds r1, r3, r6
ldrh r0, [r1]
cmp r0, #0x77
bls _0801F7F4
b _0801F990
_0801F7F4:
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0801F802
movs r0, #0xc6
bl m4aSongNumStart
_0801F802:
mov r1, sb
ldr r0, [r1]
adds r0, r0, r6
ldrh r0, [r0]
movs r1, #0xf
ands r0, r1
ldr r2, _0801F890 @ =0x040000D4
lsrs r0, r0, #2
lsls r0, r0, #7
ldr r1, _0801F894 @ =gUnknown_083C542C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801F898 @ =0x06014200
str r0, [r2, #4]
ldr r0, _0801F89C @ =0x80000040
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r2, sb
ldr r4, [r2]
adds r5, r4, r6
ldrh r0, [r5]
lsls r0, r0, #0x10
movs r1, #0x5a
bl __divsi3
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
movs r3, #0xae
lsls r3, r3, #2
adds r0, r4, r3
ldrh r1, [r0]
subs r1, #2
strh r1, [r0]
movs r0, #0xad
lsls r0, r0, #2
adds r4, r4, r0
ldrh r0, [r4]
adds r0, r0, r1
strh r0, [r4]
ldrh r0, [r5]
cmp r0, #0x1d
bhi _0801F8A8
adds r0, r2, #0
bl sub_C24
adds r1, r0, #0
mov r2, sb
ldr r4, [r2]
adds r5, r4, r6
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
ldr r1, _0801F8A0 @ =0x00004E20
bl __divsi3
ldrh r1, [r5]
adds r1, r1, r0
ldr r3, _0801F8A4 @ =0x000002B6
adds r4, r4, r3
strh r1, [r4]
b _0801F8CC
.align 2, 0
_0801F880: .4byte gUnknown_0200BD10
_0801F884: .4byte gOamBuffer
_0801F888: .4byte 0xFFFFFE00
_0801F88C: .4byte 0x000001FF
_0801F890: .4byte 0x040000D4
_0801F894: .4byte gUnknown_083C542C
_0801F898: .4byte 0x06014200
_0801F89C: .4byte 0x80000040
_0801F8A0: .4byte 0x00004E20
_0801F8A4: .4byte 0x000002B6
_0801F8A8:
adds r0, r2, #0
bl sub_C24
adds r1, r0, #0
mov r0, sb
ldr r4, [r0]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
ldr r1, _0801F910 @ =0x00004E20
bl __divsi3
adds r0, #0x1e
ldr r1, _0801F914 @ =0x000002B6
adds r4, r4, r1
strh r0, [r4]
_0801F8CC:
ldr r2, _0801F918 @ =gUnknown_020314E0
ldr r1, [r2]
movs r3, #0xaf
lsls r3, r3, #2
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r2
cmp r0, #0x1b
bne _0801F934
ldr r0, _0801F91C @ =gMain
ldr r1, _0801F920 @ =0x00000D08
adds r0, r0, r1
movs r1, #1
strh r1, [r0]
movs r0, #0xc7
bl m4aSongNumStart
mov r2, sb
ldr r0, [r2]
movs r3, #0xb9
lsls r3, r3, #2
adds r1, r0, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0801F924
adds r0, r2, #1
strb r0, [r1]
b _0801F934
.align 2, 0
_0801F910: .4byte 0x00004E20
_0801F914: .4byte 0x000002B6
_0801F918: .4byte gUnknown_020314E0
_0801F91C: .4byte gMain
_0801F920: .4byte 0x00000D08
_0801F924:
movs r0, #2
strb r0, [r1]
mov r1, sb
ldr r0, [r1]
ldr r2, _0801F96C @ =0x000002EA
adds r0, r0, r2
movs r1, #0xbe
strh r1, [r0]
_0801F934:
mov r3, sb
ldr r0, [r3]
movs r1, #0xaf
lsls r1, r1, #2
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0x64
bne _0801F9B6
ldr r0, _0801F970 @ =gMain
ldr r2, _0801F974 @ =0x00000D08
adds r0, r0, r2
movs r1, #1
strh r1, [r0]
movs r0, #0xc7
bl m4aSongNumStart
mov r3, sb
ldr r0, [r3]
ldr r2, _0801F978 @ =0x000002E3
adds r1, r0, r2
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0801F97C
adds r0, r2, #1
strb r0, [r1]
b _0801F9B6
.align 2, 0
_0801F96C: .4byte 0x000002EA
_0801F970: .4byte gMain
_0801F974: .4byte 0x00000D08
_0801F978: .4byte 0x000002E3
_0801F97C:
movs r0, #2
strb r0, [r1]
mov r3, sb
ldr r0, [r3]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0xbe
strh r1, [r0]
b _0801F9B6
_0801F990:
movs r2, #0
strh r2, [r1]
movs r1, #0xad
lsls r1, r1, #2
adds r0, r3, r1
strh r2, [r0]
ldr r0, _0801FA34 @ =0x000002B6
adds r1, r3, r0
movs r0, #0xbe
strh r0, [r1]
movs r0, #0xae
lsls r0, r0, #2
adds r1, r3, r0
movs r0, #0x64
strh r0, [r1]
ldr r1, _0801FA38 @ =0x000002BA
adds r0, r3, r1
strh r2, [r0]
strh r2, [r7]
_0801F9B6:
mov r2, sb
ldr r4, [r2]
movs r3, #0xad
lsls r3, r3, #2
adds r0, r4, r3
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0x14
bl __divsi3
adds r0, #0x47
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #2]
ldr r2, _0801FA34 @ =0x000002B6
adds r0, r4, r2
ldrh r0, [r0]
adds r0, #0xf8
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xbe
ble _0801F9F2
movs r0, #0xbe
strh r0, [r7, #4]
_0801F9F2:
adds r5, r7, #0
adds r5, #8
ldr r4, _0801FA3C @ =gOamBuffer
ldrh r2, [r7, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
movs r3, #2
ldrsh r0, [r7, r3]
adds r1, r1, r0
ldr r3, _0801FA40 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0801FA44 @ =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 r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_0801FA26:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801FA34: .4byte 0x000002B6
_0801FA38: .4byte 0x000002BA
_0801FA3C: .4byte gOamBuffer
_0801FA40: .4byte 0x000001FF
_0801FA44: .4byte 0xFFFFFE00
thumb_func_start sub_1FA48
sub_1FA48: @ 0x0801FA48
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r7, _0801FAD0 @ =gUnknown_0200D9D0
ldr r0, _0801FAD4 @ =gUnknown_020314E0
ldr r6, [r0]
ldr r1, _0801FAD8 @ =0x000002B2
mov sb, r1
adds r1, r6, r1
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov sl, r0
cmp r1, #0
beq _0801FAF0
ldr r5, _0801FADC @ =gUnknown_086ADA58
movs r2, #0xac
lsls r2, r2, #2
mov r8, r2
adds r0, r6, r2
ldrh r4, [r0]
adds r0, r4, #0
movs r1, #5
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r5
ldrh r3, [r0]
cmp r4, #0x28
bne _0801FABA
movs r1, #0xaf
lsls r1, r1, #2
adds r0, r6, r1
movs r1, #0
strh r1, [r0]
movs r2, #0xad
lsls r2, r2, #2
adds r0, r6, r2
strh r1, [r0]
adds r2, #2
adds r0, r6, r2
strh r1, [r0]
movs r0, #0xae
lsls r0, r0, #2
adds r2, r6, r0
movs r0, #0x64
strh r0, [r2]
ldr r2, _0801FAE0 @ =0x000002BA
adds r0, r6, r2
strh r1, [r0]
ldr r0, _0801FAE4 @ =0xFFFFE340
adds r1, r7, r0
movs r0, #1
strh r0, [r1]
_0801FABA:
mov r2, sl
ldr r1, [r2]
mov r0, r8
adds r2, r1, r0
ldrh r0, [r2]
cmp r0, #0x35
bhi _0801FAE8
adds r0, #1
strh r0, [r2]
b _0801FB12
.align 2, 0
_0801FAD0: .4byte gUnknown_0200D9D0
_0801FAD4: .4byte gUnknown_020314E0
_0801FAD8: .4byte 0x000002B2
_0801FADC: .4byte gUnknown_086ADA58
_0801FAE0: .4byte 0x000002BA
_0801FAE4: .4byte 0xFFFFE340
_0801FAE8:
add r1, sb
movs r0, #0
strb r0, [r1]
b _0801FB12
_0801FAF0:
ldr r1, _0801FBA4 @ =0xFFFFD6F0
adds r0, r7, r1
ldr r0, [r0, #0x4c]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
movs r2, #0xde
lsls r2, r2, #1
adds r0, r6, r2
ldrh r0, [r0]
cmp r0, #1
bne _0801FB2E
_0801FB12:
ldr r2, _0801FBA8 @ =0x040000D4
lsls r1, r3, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0801FBAC @ =gUnknown_083C3C2C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801FBB0 @ =0x06012720
str r0, [r2, #4]
ldr r0, _0801FBB4 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
_0801FB2E:
mov r0, sl
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x37
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r0, #0xdd
subs r0, r0, r1
strh r0, [r7, #4]
movs r0, #0
ldr r6, _0801FBB8 @ =gOamBuffer
ldr r1, _0801FBBC @ =0xFFFFFE00
mov ip, r1
_0801FB50:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r3, r5, #3
adds r3, #8
adds r3, r7, r3
ldrh r4, [r3]
lsls r4, r4, #3
adds r4, r4, r6
movs r2, #2
ldrsh r1, [r3, r2]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _0801FBC0 @ =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, r6
ldrb r0, [r7, #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, #1
ble _0801FB50
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
_0801FBA4: .4byte 0xFFFFD6F0
_0801FBA8: .4byte 0x040000D4
_0801FBAC: .4byte gUnknown_083C3C2C
_0801FBB0: .4byte 0x06012720
_0801FBB4: .4byte 0x80000180
_0801FBB8: .4byte gOamBuffer
_0801FBBC: .4byte 0xFFFFFE00
_0801FBC0: .4byte 0x000001FF
thumb_func_start sub_1FBC4
sub_1FBC4: @ 0x0801FBC4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, _0801FC74 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _0801FC78 @ =0x000002C2
adds r3, r2, r5
movs r1, #0
ldrsb r1, [r3, r1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _0801FC7C @ =gUnknown_086ADA6E
adds r7, r0, r1
ldr r0, _0801FC80 @ =gUnknown_0200DCB0
mov sb, r0
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #9
subs r0, r0, r1
movs r1, #0
mov r8, r1
mov r6, sb
strh r0, [r6, #2]
adds r0, r2, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r6, #0x90
lsls r6, r6, #1
adds r0, r6, #0
subs r0, r0, r1
mov r1, sb
strh r0, [r1, #4]
ldr r6, _0801FC84 @ =0x000002BE
mov ip, r6
adds r1, r2, r6
ldr r6, _0801FC88 @ =0x000006BD
adds r0, r2, r6
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
ble _0801FCDC
ldr r0, _0801FC8C @ =0x000006BE
mov sl, r0
adds r0, r2, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0801FC38
b _0801FDFC
_0801FC38:
adds r6, #3
adds r0, r2, r6
ldrh r0, [r0]
cmp r0, #0
bne _0801FC5A
movs r0, #0x3b
strb r0, [r3]
ldr r1, [r4]
movs r2, #0xb0
lsls r2, r2, #2
adds r0, r1, r2
movs r3, #0
strh r3, [r0]
adds r1, r1, r6
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0801FC5A:
movs r1, #2
ldrsh r0, [r7, r1]
ldr r1, [r4]
movs r3, #0xb0
lsls r3, r3, #2
adds r2, r1, r3
ldrh r3, [r2]
cmp r0, r3
ble _0801FC90
adds r0, r3, #1
strh r0, [r2]
b _0801FDFC
.align 2, 0
_0801FC74: .4byte gUnknown_020314E0
_0801FC78: .4byte 0x000002C2
_0801FC7C: .4byte gUnknown_086ADA6E
_0801FC80: .4byte gUnknown_0200DCB0
_0801FC84: .4byte 0x000002BE
_0801FC88: .4byte 0x000006BD
_0801FC8C: .4byte 0x000006BE
_0801FC90:
movs r0, #1
strh r0, [r2]
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r4]
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x54
bne _0801FCC2
mov r0, r8
strb r0, [r1]
ldr r0, [r4]
add r0, sl
mov r1, r8
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, r6
movs r2, #0
strh r2, [r1]
add r0, ip
mov r3, r8
strb r3, [r0]
_0801FCC2:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x3c
beq _0801FD8E
cmp r0, #0x45
beq _0801FD8E
cmp r0, #0x4e
beq _0801FCDA
b _0801FDFC
_0801FCDA:
b _0801FD8E
_0801FCDC:
cmp r1, r0
bge _0801FD96
movs r1, #2
ldrsh r0, [r7, r1]
mov r8, r0
movs r0, #0xb0
lsls r0, r0, #2
adds r1, r2, r0
ldrh r2, [r1]
cmp r8, r2
bgt _0801FDAC
movs r0, #1
strh r0, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r1, [r4]
adds r0, r1, r6
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #1
bne _0801FD32
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bne _0801FD22
add r1, ip
movs r0, #1
strb r0, [r1]
ldr r0, [r4]
adds r0, r0, r5
movs r1, #0x54
strb r1, [r0]
_0801FD22:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bne _0801FDFC
b _0801FD8E
_0801FD32:
cmp r2, #2
bne _0801FD60
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x17
bne _0801FD50
mov r3, ip
adds r0, r1, r3
strb r2, [r0]
ldr r0, [r4]
adds r0, r0, r5
movs r1, #0x5f
strb r1, [r0]
_0801FD50:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
bne _0801FDFC
b _0801FD8E
_0801FD60:
cmp r2, #3
bne _0801FDFC
adds r0, r1, r5
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0x23
bne _0801FD80
mov r6, ip
adds r0, r1, r6
strb r2, [r0]
ldr r0, [r4]
adds r0, r0, r5
strb r3, [r0]
movs r0, #7
bl sub_19B64
_0801FD80:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x20
bne _0801FDFC
_0801FD8E:
movs r0, #0xd2
bl m4aSongNumStart
b _0801FDFC
_0801FD96:
cmp r0, #0
beq _0801FDFC
movs r1, #2
ldrsh r0, [r7, r1]
mov r8, r0
movs r0, #0xb0
lsls r0, r0, #2
adds r1, r2, r0
ldrh r2, [r1]
cmp r8, r2
ble _0801FDB2
_0801FDAC:
adds r0, r2, #1
strh r0, [r1]
b _0801FDFC
_0801FDB2:
movs r0, #1
strh r0, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r1, [r4]
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _0801FDD8
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x5f
bne _0801FDFC
movs r0, #0x54
b _0801FDFA
_0801FDD8:
cmp r0, #2
bne _0801FDEA
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x6d
bne _0801FDFC
movs r0, #0x5f
b _0801FDFA
_0801FDEA:
cmp r0, #3
bne _0801FDFC
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x3c
bne _0801FDFC
movs r0, #0x23
_0801FDFA:
strb r0, [r1]
_0801FDFC:
ldrh r5, [r7]
ldr r2, _0801FEE4 @ =0x040000D4
movs r3, #4
ldrsh r1, [r7, r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r4, _0801FEE8 @ =gUnknown_08447A8C
adds r0, r0, r4
str r0, [r2]
ldr r0, _0801FEEC @ =0x06013B80
str r0, [r2, #4]
ldr r3, _0801FEF0 @ =0x800000C0
str r3, [r2, #8]
ldr r0, [r2, #8]
movs r6, #6
ldrsh r1, [r7, r6]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
adds r0, r0, r4
str r0, [r2]
ldr r0, _0801FEF4 @ =0x06013A00
str r0, [r2, #4]
str r3, [r2, #8]
ldr r0, [r2, #8]
movs r0, #8
ldrsh r1, [r7, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
adds r0, r0, r4
str r0, [r2]
ldr r0, _0801FEF8 @ =0x06013880
str r0, [r2, #4]
str r3, [r2, #8]
ldr r0, [r2, #8]
movs r1, #0
ldr r2, _0801FEFC @ =gOamBuffer
mov ip, r2
ldr r3, _0801FF00 @ =gUnknown_086B2FC0
mov sl, r3
lsls r5, r5, #0x10
asrs r5, r5, #0x10
lsls r0, r5, #3
adds r0, r0, r5
lsls r6, r0, #2
ldr r5, _0801FF04 @ =0xFFFFFE00
mov r8, r5
_0801FE5E:
lsls r3, r1, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
add r4, sb
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
adds r0, r0, r6
add r0, sl
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r6
add r0, sl
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r6
add r1, sl
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
ldrh r7, [r2, #2]
lsls r1, r7, #0x17
lsrs r1, r1, #0x17
mov r5, sb
movs r7, #2
ldrsh r0, [r5, r7]
adds r1, r1, r0
ldr r5, _0801FF08 @ =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
add r1, ip
mov r2, sb
ldrb r0, [r2, #4]
ldrb r5, [r1]
adds r0, r0, r5
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r1, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #5
ble _0801FE5E
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
_0801FEE4: .4byte 0x040000D4
_0801FEE8: .4byte gUnknown_08447A8C
_0801FEEC: .4byte 0x06013B80
_0801FEF0: .4byte 0x800000C0
_0801FEF4: .4byte 0x06013A00
_0801FEF8: .4byte 0x06013880
_0801FEFC: .4byte gOamBuffer
_0801FF00: .4byte gUnknown_086B2FC0
_0801FF04: .4byte 0xFFFFFE00
_0801FF08: .4byte 0x000001FF
thumb_func_start sub_1FF0C
sub_1FF0C: @ 0x0801FF0C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r1, #0
ldr r6, _0801FF70 @ =gUnknown_020314E0
mov sb, r6
ldr r0, _0801FF74 @ =0x000002E3
mov sl, r0
movs r2, #0xba
lsls r2, r2, #2
mov r8, r2
movs r3, #0xbb
lsls r3, r3, #2
mov ip, r3
_0801FF2E:
mov r4, sb
ldr r3, [r4]
lsls r0, r1, #0x10
asrs r5, r0, #0x10
mov r7, sl
adds r1, r3, r7
adds r1, r1, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
str r0, [sp]
cmp r1, #0
ble _08020012
ldr r1, _0801FF78 @ =0x000002E5
adds r0, r3, r1
adds r4, r0, r5
movs r1, #0
ldrsb r1, [r4, r1]
lsls r1, r1, #2
ldr r2, _0801FF7C @ =gUnknown_086ADEB2
adds r1, r1, r2
lsls r2, r5, #1
mov r7, r8
adds r0, r3, r7
adds r2, r0, r2
ldrh r3, [r2]
ldrh r0, [r1]
cmp r0, r3
bls _0801FF80
adds r0, r3, #1
strh r0, [r2]
b _0801FFAE
.align 2, 0
_0801FF70: .4byte gUnknown_020314E0
_0801FF74: .4byte 0x000002E3
_0801FF78: .4byte 0x000002E5
_0801FF7C: .4byte gUnknown_086ADEB2
_0801FF80:
movs r3, #0
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
mov r1, sb
ldr r0, [r1]
ldr r2, _08020070 @ =0x000002E5
adds r0, r0, r2
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xb
ble _0801FFAE
strb r3, [r1]
mov r3, sb
ldr r1, [r3]
add r1, sl
adds r1, r1, r5
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
_0801FFAE:
ldr r3, [r6]
ldr r7, [sp]
asrs r4, r7, #0x10
ldr r5, _08020070 @ =0x000002E5
adds r0, r3, r5
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _0801FFD8
lsls r2, r4, #1
mov r0, ip
adds r1, r3, r0
adds r1, r1, r2
mov r7, r8
adds r0, r3, r7
adds r0, r0, r2
ldrh r0, [r0]
lsrs r0, r0, #1
strh r0, [r1]
_0801FFD8:
ldr r1, [r6]
adds r0, r1, r5
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r3, r4, #1
cmp r0, #0xb
bne _08020000
mov r0, ip
adds r2, r1, r0
adds r2, r2, r3
mov r4, r8
adds r0, r1, r4
adds r0, r0, r3
ldrh r1, [r0]
lsrs r1, r1, #1
movs r0, #0xe
subs r0, r0, r1
strh r0, [r2]
_08020000:
ldr r0, [r6]
add r0, ip
adds r2, r0, r3
movs r7, #0
ldrsh r0, [r2, r7]
cmp r0, #2
bgt _08020012
movs r0, #3
strh r0, [r2]
_08020012:
ldr r1, [sp]
movs r2, #0x80
lsls r2, r2, #9
adds r0, r1, r2
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _0801FF2E
ldr r1, [r6]
ldr r3, _08020074 @ =0x000002E2
adds r0, r1, r3
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
bne _08020032
b _0802018E
_08020032:
cmp r3, #1
bne _08020120
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #7
bne _08020040
b _08020136
_08020040:
cmp r0, #2
bgt _080200C4
ldr r4, _08020078 @ =0x000006BD
adds r1, r1, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08020136
adds r0, r2, #1
movs r2, #0
strb r0, [r1]
ldr r1, [r6]
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08020080
ldr r7, _0802007C @ =0x000002C2
adds r0, r1, r7
strb r2, [r0]
b _08020110
.align 2, 0
_08020070: .4byte 0x000002E5
_08020074: .4byte 0x000002E2
_08020078: .4byte 0x000006BD
_0802007C: .4byte 0x000002C2
_08020080:
cmp r0, #2
bne _0802009C
ldr r3, _08020098 @ =0x000002C2
adds r1, r1, r3
movs r0, #0xc
strb r0, [r1]
ldr r0, [r6]
movs r4, #0xb0
lsls r4, r4, #2
adds r0, r0, r4
strh r2, [r0]
b _08020136
.align 2, 0
_08020098: .4byte 0x000002C2
_0802009C:
cmp r0, #3
bne _08020136
ldr r7, _080200BC @ =0x000002C2
adds r1, r1, r7
movs r0, #0x18
strb r0, [r1]
ldr r0, [r6]
movs r4, #0xb0
lsls r4, r4, #2
adds r1, r0, r4
strh r2, [r1]
ldr r7, _080200C0 @ =0x000006C2
adds r0, r0, r7
strh r3, [r0]
b _08020136
.align 2, 0
_080200BC: .4byte 0x000002C2
_080200C0: .4byte 0x000006C2
_080200C4:
ldr r0, _080200FC @ =0x000006BD
adds r1, r1, r0
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _08020136
adds r0, r2, #1
movs r2, #0
strb r0, [r1]
ldr r1, [r6]
ldr r3, _080200FC @ =0x000006BD
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08020104
ldr r4, _08020100 @ =0x000002C2
adds r0, r1, r4
strb r2, [r0]
ldr r0, [r6]
movs r7, #0xb0
lsls r7, r7, #2
adds r0, r0, r7
strh r2, [r0]
b _08020136
.align 2, 0
_080200FC: .4byte 0x000006BD
_08020100: .4byte 0x000002C2
_08020104:
cmp r0, #2
bne _08020136
ldr r0, _0802011C @ =0x000002C2
adds r1, r1, r0
movs r0, #0xc
strb r0, [r1]
_08020110:
ldr r0, [r6]
movs r1, #0xb0
lsls r1, r1, #2
adds r0, r0, r1
strh r2, [r0]
b _08020136
.align 2, 0
_0802011C: .4byte 0x000002C2
_08020120:
movs r2, #0xc0
lsls r2, r2, #2
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne _08020132
movs r0, #1
b _08020134
_08020132:
movs r0, #0
_08020134:
strb r0, [r1]
_08020136:
ldr r0, [r6]
ldr r3, _080201A0 @ =0x000002E3
adds r0, r0, r3
movs r4, #0
strb r4, [r0]
ldr r0, [r6]
movs r7, #0xb9
lsls r7, r7, #2
adds r0, r0, r7
strb r4, [r0]
ldr r0, [r6]
ldr r1, _080201A4 @ =0x000002E2
adds r0, r0, r1
strb r4, [r0]
movs r0, #7
bl sub_11B0
movs r0, #0xb7
bl m4aSongNumStart
ldr r0, [r6]
ldr r1, _080201A8 @ =0x00000BB8
str r1, [r0, #0x3c]
ldr r2, _080201AC @ =0x000002E5
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r6]
ldr r3, _080201B0 @ =0x000002E6
adds r0, r0, r3
strb r4, [r0]
ldr r1, [r6]
adds r7, #4
adds r0, r1, r7
strh r4, [r0]
adds r2, #5
adds r0, r1, r2
strh r4, [r0]
adds r3, #6
adds r0, r1, r3
movs r2, #3
strh r2, [r0]
ldr r4, _080201B4 @ =0x000002EE
adds r1, r1, r4
strh r2, [r1]
_0802018E:
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
_080201A0: .4byte 0x000002E3
_080201A4: .4byte 0x000002E2
_080201A8: .4byte 0x00000BB8
_080201AC: .4byte 0x000002E5
_080201B0: .4byte 0x000002E6
_080201B4: .4byte 0x000002EE
thumb_func_start sub_201B8
sub_201B8: @ 0x080201B8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r1, #0
ldr r0, _080202D0 @ =gUnknown_020314E0
mov sl, r0
ldr r2, _080202D4 @ =0x040000D4
mov r8, r2
_080201CC:
mov r3, sl
ldr r0, [r3]
lsls r1, r1, #0x10
asrs r3, r1, #0x10
ldr r4, _080202D8 @ =0x000002E5
adds r0, r0, r4
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
ldr r5, _080202DC @ =gUnknown_086ADEB0
adds r0, r0, r5
movs r2, #0
ldrsh r0, [r0, r2]
lsls r0, r0, #8
ldr r4, _080202E0 @ =gUnknown_0847FD0C
adds r0, r0, r4
mov r5, r8
str r0, [r5]
lsls r0, r3, #8
ldr r2, _080202E4 @ =0x06012A20
adds r0, r0, r2
str r0, [r5, #4]
ldr r0, _080202E8 @ =0x80000080
str r0, [r5, #8]
ldr r0, [r5, #8]
movs r0, #0xb8
muls r0, r3, r0
ldr r4, _080202EC @ =gUnknown_0200DE20
adds r6, r0, r4
ldrh r0, [r6]
mov sb, r1
cmp r0, #0
beq _0802029A
lsls r1, r3, #4
subs r1, r1, r3
lsls r1, r1, #3
adds r1, #0x30
mov r5, sl
ldr r4, [r5]
adds r0, r4, #0
adds r0, #0x58
ldrh r0, [r0]
subs r1, r1, r0
lsls r3, r3, #1
movs r2, #1
subs r2, r2, r3
movs r5, #0xbb
lsls r5, r5, #2
adds r0, r4, r5
adds r0, r0, r3
movs r3, #0
ldrsh r0, [r0, r3]
subs r0, #0xe
muls r0, r2, r0
adds r1, r1, r0
strh r1, [r6, #2]
adds r0, r4, #0
adds r0, #0x5a
ldrh r1, [r0]
ldr r4, _080202F0 @ =0x0000012D
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _080202F4 @ =gOamBuffer
ldr r5, _080202F8 @ =0xFFFFFE00
mov ip, r5
_08020256:
lsls r3, r0, #0x10
asrs r3, r3, #0x10
lsls r5, r3, #3
adds r5, #8
adds r5, r6, r5
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
movs r0, #2
ldrsh r1, [r5, r0]
movs r4, #2
ldrsh r0, [r6, r4]
adds r1, r1, r0
ldr r4, _080202FC @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldrh r4, [r2, #2]
mov r0, ip
ands r0, r4
orrs r0, r1
strh r0, [r2, #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 r3, #1
lsls r3, r3, #0x10
lsrs r0, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _08020256
_0802029A:
movs r0, #0x80
lsls r0, r0, #9
add r0, sb
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _080201CC
mov r5, sl
ldr r2, [r5]
ldr r0, _08020300 @ =0x000006C2
adds r1, r2, r0
ldrh r0, [r1]
cmp r0, #0
beq _08020398
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08020398
adds r2, #0xe4
ldrb r0, [r2]
cmp r0, #0
beq _08020304
movs r0, #1
strh r0, [r1]
b _08020308
.align 2, 0
_080202D0: .4byte gUnknown_020314E0
_080202D4: .4byte 0x040000D4
_080202D8: .4byte 0x000002E5
_080202DC: .4byte gUnknown_086ADEB0
_080202E0: .4byte gUnknown_0847FD0C
_080202E4: .4byte 0x06012A20
_080202E8: .4byte 0x80000080
_080202EC: .4byte gUnknown_0200DE20
_080202F0: .4byte 0x0000012D
_080202F4: .4byte gOamBuffer
_080202F8: .4byte 0xFFFFFE00
_080202FC: .4byte 0x000001FF
_08020300: .4byte 0x000006C2
_08020304:
movs r0, #4
strb r0, [r2]
_08020308:
mov r1, sl
ldr r4, [r1]
ldr r2, _080203A8 @ =0x000006C2
adds r0, r4, r2
ldrh r5, [r0]
cmp r5, #0
bne _08020398
ldr r2, _080203AC @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
orrs r0, r1
strb r0, [r2, #0xf]
adds r1, r4, #0
adds r1, #0xea
movs r3, #0
movs r0, #0x46
strh r0, [r1]
adds r1, #2
movs r0, #0xa0
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe8
strh r5, [r0]
subs r0, #2
strh r5, [r0]
adds r0, #8
strh r5, [r0]
adds r1, #6
movs r0, #4
strb r0, [r1]
mov r4, sl
ldr r0, [r4]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r4]
adds r0, #0xfb
strb r3, [r0]
ldr r3, [r4]
adds r1, r3, #0
adds r1, #0xf4
movs r0, #0x78
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xf6
strh r5, [r0]
subs r1, #4
movs r0, #0x32
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xf8
strh r5, [r0]
ldr r1, _080203B0 @ =0x040000D4
ldr r0, _080203B4 @ =gUnknown_086ACEF8
ldr r0, [r0, #0x10]
str r0, [r1]
ldr r0, _080203B8 @ =0x06015800
str r0, [r1, #4]
ldr r0, _080203BC @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _080203C0 @ =gUnknown_086ACF18
ldr r0, [r0, #0x10]
str r0, [r1]
ldr r0, _080203C4 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _080203C8 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r2, #0x38]
movs r0, #0xce
strh r0, [r2, #0x38]
_08020398:
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
_080203A8: .4byte 0x000006C2
_080203AC: .4byte gMain
_080203B0: .4byte 0x040000D4
_080203B4: .4byte gUnknown_086ACEF8
_080203B8: .4byte 0x06015800
_080203BC: .4byte 0x80001200
_080203C0: .4byte gUnknown_086ACF18
_080203C4: .4byte 0x050003C0
_080203C8: .4byte 0x80000010
thumb_func_start sub_203CC
sub_203CC: @ 0x080203CC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
bl sub_20EC0
ldr r6, _0802042C @ =gUnknown_020314E0
ldr r5, [r6]
movs r1, #0xe3
lsls r1, r1, #1
adds r0, r5, r1
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xa7
ble _0802044C
ldr r4, _08020430 @ =gUnknown_086ADF48
ldr r0, _08020434 @ =gMain
ldr r0, [r0, #0x50]
movs r1, #0xa0
bl __umodsi3
movs r1, #5
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r4
ldrh r1, [r0]
ldr r3, _08020438 @ =0x00000744
adds r0, r5, r3
strb r1, [r0]
ldr r2, [r6]
movs r4, #0xf1
lsls r4, r4, #1
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020440
adds r0, r2, r3
ldrb r0, [r0]
adds r0, #6
ldr r5, _0802043C @ =0x00000745
adds r1, r2, r5
strb r0, [r1]
b _0802049C
.align 2, 0
_0802042C: .4byte gUnknown_020314E0
_08020430: .4byte gUnknown_086ADF48
_08020434: .4byte gMain
_08020438: .4byte 0x00000744
_0802043C: .4byte 0x00000745
_08020440:
ldr r7, _08020448 @ =0x00000744
adds r0, r2, r7
b _08020494
.align 2, 0
_08020448: .4byte 0x00000744
_0802044C:
ldr r0, _08020484 @ =gMain
ldr r0, [r0, #0x50]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
ldr r4, _08020488 @ =0x00000744
adds r1, r5, r4
strb r0, [r1]
ldr r2, [r6]
movs r5, #0xf1
lsls r5, r5, #1
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020490
adds r0, r2, r4
ldrb r0, [r0]
adds r0, #9
ldr r7, _0802048C @ =0x00000745
adds r1, r2, r7
strb r0, [r1]
b _0802049C
.align 2, 0
_08020484: .4byte gMain
_08020488: .4byte 0x00000744
_0802048C: .4byte 0x00000745
_08020490:
ldr r1, _080204C8 @ =0x00000744
adds r0, r2, r1
_08020494:
ldrb r1, [r0]
ldr r3, _080204CC @ =0x00000745
adds r0, r2, r3
strb r1, [r0]
_0802049C:
ldr r1, _080204D0 @ =gUnknown_020314E0
ldr r5, [r1]
movs r4, #0xf1
lsls r4, r4, #1
adds r3, r5, r4
movs r0, #0
ldrsb r0, [r3, r0]
mov sl, r1
cmp r0, #2
bne _080204D8
ldr r7, _080204D4 @ =0x000001E3
adds r0, r5, r7
movs r1, #1
strb r1, [r0]
mov r2, sl
ldr r0, [r2]
movs r3, #0xf2
lsls r3, r3, #1
adds r0, r0, r3
strb r1, [r0]
b _08020500
.align 2, 0
_080204C8: .4byte 0x00000744
_080204CC: .4byte 0x00000745
_080204D0: .4byte gUnknown_020314E0
_080204D4: .4byte 0x000001E3
_080204D8:
movs r1, #0
ldrsb r1, [r3, r1]
ldr r3, _0802060C @ =0x000001E3
adds r0, r5, r3
adds r0, r0, r1
movs r4, #0
movs r2, #1
strb r2, [r0]
mov r5, sl
ldr r0, [r5]
movs r7, #0xf1
lsls r7, r7, #1
adds r1, r0, r7
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
subs r2, r2, r1
adds r0, r0, r3
adds r0, r0, r2
strb r4, [r0]
_08020500:
mov r0, sl
ldr r1, [r0]
movs r3, #0xe2
lsls r3, r3, #1
adds r2, r1, r3
ldrh r4, [r2]
cmp r4, #0
bne _08020512
b _0802073A
_08020512:
cmp r4, #0x78
beq _08020518
b _080206CC
_08020518:
movs r5, #0xe1
lsls r5, r5, #1
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, r1, r0
movs r7, #0xf1
lsls r7, r7, #1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08020538
b _080206CC
_08020538:
movs r6, #0xe3
lsls r6, r6, #1
adds r0, r1, r6
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0xa7
ble _08020630
movs r5, #0
movs r3, #1
strb r3, [r1, #0x1f]
mov r7, sl
ldr r0, [r7]
ldr r1, _08020610 @ =0x0000061C
adds r0, r0, r1
strb r3, [r0]
ldr r1, [r7]
movs r7, #0xef
lsls r7, r7, #1
adds r2, r1, r7
movs r0, #0
mov r8, r0
strh r4, [r2]
adds r7, #2
adds r0, r1, r7
strh r4, [r0]
ldrh r2, [r2]
ldr r4, _08020614 @ =0x0000061E
adds r0, r1, r4
strh r2, [r0]
ldr r7, _08020618 @ =0x000005F7
adds r1, r1, r7
strb r3, [r1]
mov r1, sl
ldr r0, [r1]
movs r2, #0x82
lsls r2, r2, #2
adds r1, r0, r2
strh r5, [r1]
ldr r3, _0802061C @ =0x0000020A
adds r0, r0, r3
mov r4, r8
strb r4, [r0]
mov r7, sl
ldr r2, [r7]
movs r1, #0xf1
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _080205E4
adds r0, r2, r6
strh r5, [r0]
subs r3, #0x42
adds r0, r2, r3
strh r5, [r0]
movs r4, #0xe6
lsls r4, r4, #1
adds r0, r2, r4
strh r5, [r0]
movs r7, #0xe5
lsls r7, r7, #1
adds r0, r2, r7
strh r5, [r0]
subs r1, #0xe
adds r0, r2, r1
strh r5, [r0]
adds r3, #0xe
adds r1, r2, r3
ldr r0, _08020620 @ =0x0000FFFC
strh r0, [r1]
adds r4, #0xc
adds r0, r2, r4
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0]
adds r7, #0x10
adds r0, r2, r7
strh r1, [r0]
adds r1, #0xce
adds r0, r2, r1
strh r5, [r0]
subs r3, #6
adds r0, r2, r3
strh r5, [r0]
_080205E4:
mov r4, sl
ldr r1, [r4]
movs r5, #0xc4
lsls r5, r5, #3
adds r2, r1, r5
ldr r7, _08020624 @ =0x0000132C
adds r0, r1, r7
ldr r0, [r0]
ldr r0, [r0, #0x28]
str r0, [r2]
ldr r0, _08020628 @ =0x00007530
str r0, [r1, #0x3c]
ldr r0, _0802062C @ =0x0000062E
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0x62
bhi _0802063C
adds r0, #1
strb r0, [r1]
b _0802063C
.align 2, 0
_0802060C: .4byte 0x000001E3
_08020610: .4byte 0x0000061C
_08020614: .4byte 0x0000061E
_08020618: .4byte 0x000005F7
_0802061C: .4byte 0x0000020A
_08020620: .4byte 0x0000FFFC
_08020624: .4byte 0x0000132C
_08020628: .4byte 0x00007530
_0802062C: .4byte 0x0000062E
_08020630:
movs r0, #0x3c
strh r0, [r2]
ldr r0, _0802067C @ =gMPlayInfo_SE1
ldr r1, _08020680 @ =gUnknown_086A2FA0
bl MPlayStart
_0802063C:
ldr r0, _08020684 @ =gUnknown_020314E0
ldr r5, [r0]
movs r2, #0xe1
lsls r2, r2, #1
adds r1, r5, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
subs r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
movs r3, #0xf1
lsls r3, r3, #1
adds r1, r5, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov sl, r0
cmp r1, #2
bne _0802068C
lsls r3, r2, #0x10
asrs r1, r3, #0x10
ldr r4, _08020688 @ =0x00000744
adds r2, r5, r4
adds r2, r2, r1
lsls r0, r1, #3
subs r0, r0, r1
adds r0, #2
strb r0, [r2]
mov r8, r3
b _0802069C
.align 2, 0
_0802067C: .4byte gMPlayInfo_SE1
_08020680: .4byte gUnknown_086A2FA0
_08020684: .4byte gUnknown_020314E0
_08020688: .4byte 0x00000744
_0802068C:
lsls r2, r2, #0x10
asrs r1, r2, #0x10
ldr r7, _08020700 @ =0x00000744
adds r0, r5, r7
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
mov r8, r2
_0802069C:
ldr r3, _08020704 @ =0x040000D4
mov r1, sl
ldr r0, [r1]
mov r4, r8
asrs r2, r4, #0x10
ldr r5, _08020700 @ =0x00000744
adds r0, r0, r5
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08020708 @ =gUnknown_084C07EC
adds r0, r0, r1
str r0, [r3]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #7
ldr r7, _0802070C @ =0x06010480
adds r0, r0, r7
str r0, [r3, #4]
ldr r0, _08020710 @ =0x800000C0
str r0, [r3, #8]
ldr r0, [r3, #8]
_080206CC:
mov r0, sl
ldr r2, [r0]
movs r1, #0xf1
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020714
movs r3, #0xe1
lsls r3, r3, #1
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
ldr r4, _08020700 @ =0x00000744
adds r2, r2, r4
adds r2, r2, r0
lsls r1, r0, #3
subs r1, r1, r0
adds r1, #2
strb r1, [r2]
b _0802072A
.align 2, 0
_08020700: .4byte 0x00000744
_08020704: .4byte 0x040000D4
_08020708: .4byte gUnknown_084C07EC
_0802070C: .4byte 0x06010480
_08020710: .4byte 0x800000C0
_08020714:
movs r5, #0xe1
lsls r5, r5, #1
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, r2, r0
ldr r7, _080207B4 @ =0x00000743
adds r0, r0, r7
movs r1, #2
strb r1, [r0]
_0802072A:
mov r0, sl
ldr r1, [r0]
movs r2, #0xe2
lsls r2, r2, #1
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_0802073A:
mov r3, sl
ldr r5, [r3]
ldr r4, _080207B8 @ =0x0000061C
adds r0, r5, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0802074E
b _08020D82
_0802074E:
ldr r7, _080207BC @ =0x0000061E
mov sb, r7
mov r0, sb
adds r6, r5, r0
ldrh r7, [r6]
mov r8, r7
mov r1, r8
cmp r1, #1
bhi _08020762
b _08020928
_08020762:
movs r2, #0xef
lsls r2, r2, #1
adds r4, r5, r2
ldrh r0, [r4]
lsls r0, r0, #0x10
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
subs r0, r7, #1
strh r0, [r6]
ldrh r0, [r4]
cmp r0, #0
beq _08020796
subs r0, #1
strh r0, [r4]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x28
bne _08020796
ldrh r0, [r6]
cmp r0, #0x28
bls _08020796
movs r0, #0x3c
strh r0, [r4]
_08020796:
ldr r3, _080207C0 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _080207BC @ =0x0000061E
adds r2, r1, r4
ldrh r0, [r2]
cmp r0, #0x74
bne _08020832
adds r1, #0xe4
ldrb r0, [r1]
cmp r0, #0
beq _080207C4
movs r0, #0x78
strh r0, [r2]
b _08020832
.align 2, 0
_080207B4: .4byte 0x00000743
_080207B8: .4byte 0x0000061C
_080207BC: .4byte 0x0000061E
_080207C0: .4byte gUnknown_020314E0
_080207C4:
movs r0, #1
strb r0, [r1]
ldr r1, [r3]
movs r7, #0xf1
lsls r7, r7, #1
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020820
movs r2, #0xe1
lsls r2, r2, #1
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _080207FC
ldr r0, _080207F4 @ =gMPlayInfo_SE1
ldr r1, _080207F8 @ =gUnknown_086A0328
bl MPlayStart
b _08020804
.align 2, 0
_080207F4: .4byte gMPlayInfo_SE1
_080207F8: .4byte gUnknown_086A0328
_080207FC:
ldr r0, _08020810 @ =gMPlayInfo_SE1
ldr r1, _08020814 @ =gUnknown_086A0368
bl MPlayStart
_08020804:
ldr r0, _08020818 @ =gMPlayInfo_BGM
ldr r1, _0802081C @ =0x0000FFFF
movs r2, #0x40
bl m4aMPlayVolumeControl
b _08020832
.align 2, 0
_08020810: .4byte gMPlayInfo_SE1
_08020814: .4byte gUnknown_086A0368
_08020818: .4byte gMPlayInfo_BGM
_0802081C: .4byte 0x0000FFFF
_08020820:
ldr r0, _08020900 @ =gMPlayInfo_SE1
ldr r1, _08020904 @ =gUnknown_086A0328
bl MPlayStart
ldr r0, _08020908 @ =gMPlayInfo_BGM
ldr r1, _0802090C @ =0x0000FFFF
movs r2, #0x40
bl m4aMPlayVolumeControl
_08020832:
ldr r0, _08020910 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _08020914 @ =0x0000061E
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0x73
bne _08020856
adds r0, r1, #0
adds r0, #0xe4
ldrb r0, [r0]
cmp r0, #1
bne _08020856
ldr r0, _08020900 @ =gMPlayInfo_SE1
ldr r1, _0802090C @ =0x0000FFFF
movs r2, #0x80
lsls r2, r2, #2
bl m4aMPlayVolumeControl
_08020856:
adds r0, r5, #0
bl sub_C24
adds r1, r0, #0
ldr r0, _08020910 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r5, _08020918 @ =0x0000132C
adds r5, r5, r4
mov r8, r5
ldr r7, [r5]
mov sb, r7
movs r0, #0xc4
lsls r0, r0, #3
adds r6, r4, r0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _0802091C @ =0x00004E20
bl __divsi3
ldrh r5, [r6]
adds r5, r5, r0
ldr r1, _08020920 @ =gUnknown_086ADF8A
movs r2, #0xe1
lsls r2, r2, #1
adds r0, r4, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
lsls r0, r0, #1
adds r0, r0, r1
movs r3, #0
ldrsh r2, [r0, r3]
lsls r2, r2, #1
movs r7, #0
ldrsh r0, [r6, r7]
subs r2, r2, r0
movs r0, #0xf0
lsls r0, r0, #1
adds r6, r4, r0
ldrh r1, [r6]
movs r3, #0xef
lsls r3, r3, #1
adds r7, r4, r3
ldrh r0, [r7]
subs r0, r1, r0
muls r0, r2, r0
bl __divsi3
adds r5, r5, r0
mov r0, sb
strh r5, [r0, #0x28]
ldrh r1, [r6]
ldrh r2, [r7]
subs r2, r1, r2
lsls r0, r2, #2
adds r0, r0, r2
lsls r0, r0, #3
bl __divsi3
mov r1, r8
ldr r2, [r1]
ldr r3, _08020924 @ =0x00000622
adds r4, r4, r3
ldrh r1, [r4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
subs r1, r1, r0
strh r1, [r2, #0x2a]
mov r4, r8
ldr r1, [r4]
movs r5, #0x28
ldrsh r0, [r1, r5]
lsls r0, r0, #7
str r0, [r1, #0x34]
ldr r1, [r4]
movs r7, #0x2a
ldrsh r0, [r1, r7]
lsls r0, r0, #7
str r0, [r1, #0x38]
b _080209FE
.align 2, 0
_08020900: .4byte gMPlayInfo_SE1
_08020904: .4byte gUnknown_086A0328
_08020908: .4byte gMPlayInfo_BGM
_0802090C: .4byte 0x0000FFFF
_08020910: .4byte gUnknown_020314E0
_08020914: .4byte 0x0000061E
_08020918: .4byte 0x0000132C
_0802091C: .4byte 0x00004E20
_08020920: .4byte gUnknown_086ADF8A
_08020924: .4byte 0x00000622
_08020928:
mov r0, r8
cmp r0, #1
bne _080209FE
ldr r1, _08020A3C @ =0x0000132C
adds r2, r5, r1
ldr r3, [r2]
ldr r1, _08020A40 @ =gUnknown_086ADF8A
movs r4, #0xe1
lsls r4, r4, #1
adds r0, r5, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
lsls r0, r0, #1
adds r0, r0, r1
movs r5, #0
ldrsh r0, [r0, r5]
lsls r0, r0, #1
movs r6, #0
movs r5, #0
strh r0, [r3, #0x28]
ldr r1, [r2]
ldr r0, _08020A44 @ =0x000002BE
strh r0, [r1, #0x2a]
ldr r1, [r2]
movs r7, #0x28
ldrsh r0, [r1, r7]
lsls r0, r0, #7
str r0, [r1, #0x34]
ldr r1, [r2]
movs r3, #0x2a
ldrsh r0, [r1, r3]
lsls r0, r0, #7
str r0, [r1, #0x38]
ldr r0, [r2]
strh r5, [r0, #0x30]
ldr r1, [r2]
ldr r0, _08020A48 @ =0x0000FED4
strh r0, [r1, #0x32]
movs r0, #0x7c
bl m4aSongNumStart
mov r7, sl
ldr r1, [r7]
mov r2, sb
adds r0, r1, r2
strh r5, [r0]
strb r6, [r1, #0x1f]
ldr r0, [r7]
ldr r3, _08020A4C @ =0x000005F7
adds r0, r0, r3
strb r6, [r0]
ldr r2, [r7]
adds r4, r2, r4
movs r0, #0
ldrsb r0, [r4, r0]
subs r0, #1
lsls r1, r0, #1
adds r1, r1, r0
movs r4, #0xe2
lsls r4, r4, #3
adds r2, r2, r4
adds r2, r2, r1
mov r5, r8
strb r5, [r2]
ldr r3, [r7]
ldr r7, _08020A50 @ =0x00000714
adds r4, r3, r7
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
bne _080209F8
movs r1, #0xe2
lsls r1, r1, #3
adds r0, r3, r1
ldr r2, _08020A54 @ =0x00000711
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
ldr r5, _08020A58 @ =0x00000712
adds r1, r3, r5
ldrb r1, [r1]
ands r0, r1
subs r7, #1
adds r1, r3, r7
ldrb r1, [r1]
ands r0, r1
cmp r0, #0
beq _080209F8
mov r0, r8
strb r0, [r4]
mov r1, sl
ldr r0, [r1]
ldr r2, _08020A5C @ =0x00000715
adds r0, r0, r2
movs r1, #0x7e
strb r1, [r0]
mov r3, sl
ldr r1, [r3]
movs r0, #0xfa
lsls r0, r0, #4
str r0, [r1, #0x3c]
_080209F8:
movs r0, #0xb
bl sub_11B0
_080209FE:
ldr r0, _08020A60 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r4, _08020A64 @ =0x0000061E
adds r1, r3, r4
ldrh r1, [r1]
mov sl, r0
cmp r1, #0x63
bls _08020AFC
movs r5, #0xf1
lsls r5, r5, #1
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020A6C
movs r7, #0xe1
lsls r7, r7, #1
adds r0, r3, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
ldr r1, _08020A68 @ =0x00000744
adds r2, r3, r1
adds r2, r2, r0
lsls r1, r0, #3
subs r1, r1, r0
adds r1, #2
strb r1, [r2]
b _08020A82
.align 2, 0
_08020A3C: .4byte 0x0000132C
_08020A40: .4byte gUnknown_086ADF8A
_08020A44: .4byte 0x000002BE
_08020A48: .4byte 0x0000FED4
_08020A4C: .4byte 0x000005F7
_08020A50: .4byte 0x00000714
_08020A54: .4byte 0x00000711
_08020A58: .4byte 0x00000712
_08020A5C: .4byte 0x00000715
_08020A60: .4byte gUnknown_020314E0
_08020A64: .4byte 0x0000061E
_08020A68: .4byte 0x00000744
_08020A6C:
movs r2, #0xe1
lsls r2, r2, #1
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, r3, r0
ldr r3, _08020AC4 @ =0x00000743
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
_08020A82:
mov r4, sl
ldr r2, [r4]
ldr r5, _08020AC8 @ =0x0000061E
adds r0, r2, r5
ldrh r0, [r0]
cmp r0, #0x64
beq _08020A92
b _08020D82
_08020A92:
ldr r0, _08020ACC @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x98
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
movs r7, #0xf1
lsls r7, r7, #1
adds r0, r2, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020AD8
movs r1, #0xe1
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020AD8
ldr r1, _08020AD0 @ =0x040000D4
ldr r0, _08020AD4 @ =gUnknown_08395A4C
b _08020ADC
.align 2, 0
_08020AC4: .4byte 0x00000743
_08020AC8: .4byte 0x0000061E
_08020ACC: .4byte gMain
_08020AD0: .4byte 0x040000D4
_08020AD4: .4byte gUnknown_08395A4C
_08020AD8:
ldr r1, _08020AEC @ =0x040000D4
ldr r0, _08020AF0 @ =gUnknown_08397E6C
_08020ADC:
str r0, [r1]
ldr r0, _08020AF4 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08020AF8 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
b _08020D82
.align 2, 0
_08020AEC: .4byte 0x040000D4
_08020AF0: .4byte gUnknown_08397E6C
_08020AF4: .4byte 0x06015800
_08020AF8: .4byte 0x80001200
_08020AFC:
ldr r2, _08020B24 @ =gUnknown_086ADEE0
ldr r6, _08020B28 @ =0x0000020A
adds r4, r3, r6
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r1, r2, #2
adds r0, r0, r1
movs r5, #0x82
lsls r5, r5, #2
adds r1, r3, r5
ldrh r3, [r1]
ldrh r0, [r0]
mov r8, r2
cmp r0, r3
bls _08020B2C
adds r0, r3, #1
strh r0, [r1]
b _08020C1C
.align 2, 0
_08020B24: .4byte gUnknown_086ADEE0
_08020B28: .4byte 0x0000020A
_08020B2C:
movs r5, #0
movs r7, #0
strh r7, [r1]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
mov r1, sl
ldr r0, [r1]
ldr r2, _08020BC0 @ =0x0000020A
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x17
bne _08020B5C
movs r0, #0x7c
bl m4aSongNumStop
ldr r0, _08020BC4 @ =gMPlayInfo_BGM
ldr r1, _08020BC8 @ =0x0000FFFF
movs r2, #0x80
lsls r2, r2, #1
bl m4aMPlayVolumeControl
_08020B5C:
mov r3, sl
ldr r0, [r3]
adds r1, r0, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x19
ble _08020C1C
movs r0, #0x19
strb r0, [r1]
mov r4, sl
ldr r0, [r4]
ldr r1, _08020BCC @ =0x0000061C
adds r0, r0, r1
strb r5, [r0]
ldr r2, _08020BD0 @ =gMain
ldr r0, [r2, #0x44]
adds r0, #0x98
ldr r0, [r0]
strh r7, [r0]
ldr r0, [r4]
adds r0, #0xe4
strb r5, [r0]
ldr r4, [r4]
movs r3, #0xe1
lsls r3, r3, #1
adds r0, r4, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
movs r7, #0xf1
lsls r7, r7, #1
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08020BD8
lsls r3, r2, #0x10
asrs r1, r3, #0x10
ldr r0, _08020BD4 @ =0x00000744
adds r2, r4, r0
adds r2, r2, r1
lsls r0, r1, #3
adds r0, r0, r1
strb r0, [r2]
mov r8, r3
b _08020BE6
.align 2, 0
_08020BC0: .4byte 0x0000020A
_08020BC4: .4byte gMPlayInfo_BGM
_08020BC8: .4byte 0x0000FFFF
_08020BCC: .4byte 0x0000061C
_08020BD0: .4byte gMain
_08020BD4: .4byte 0x00000744
_08020BD8:
lsls r2, r2, #0x10
asrs r1, r2, #0x10
ldr r3, _08020C48 @ =0x00000744
adds r0, r4, r3
adds r0, r0, r1
strb r5, [r0]
mov r8, r2
_08020BE6:
ldr r3, _08020C4C @ =0x040000D4
ldr r4, _08020C50 @ =gUnknown_020314E0
ldr r0, [r4]
mov r5, r8
asrs r2, r5, #0x10
ldr r7, _08020C48 @ =0x00000744
adds r0, r0, r7
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08020C54 @ =gUnknown_084C07EC
adds r0, r0, r1
str r0, [r3]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #7
ldr r1, _08020C58 @ =0x06010480
adds r0, r0, r1
str r0, [r3, #4]
ldr r0, _08020C5C @ =0x800000C0
str r0, [r3, #8]
ldr r0, [r3, #8]
mov sl, r4
ldr r2, _08020C60 @ =gUnknown_086ADEE0
mov r8, r2
_08020C1C:
mov r3, sl
ldr r1, [r3]
ldr r4, _08020C64 @ =0x0000020A
adds r0, r1, r4
ldrb r0, [r0]
subs r0, #0x11
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #6
bhi _08020C76
ldr r5, _08020C68 @ =gMain
ldr r0, [r5, #0x4c]
movs r2, #3
ands r0, r2
lsrs r0, r0, #1
cmp r0, #0
beq _08020C70
adds r1, #0x4c
ldr r0, _08020C6C @ =0x0000FFFD
strh r0, [r1]
b _08020C76
.align 2, 0
_08020C48: .4byte 0x00000744
_08020C4C: .4byte 0x040000D4
_08020C50: .4byte gUnknown_020314E0
_08020C54: .4byte gUnknown_084C07EC
_08020C58: .4byte 0x06010480
_08020C5C: .4byte 0x800000C0
_08020C60: .4byte gUnknown_086ADEE0
_08020C64: .4byte 0x0000020A
_08020C68: .4byte gMain
_08020C6C: .4byte 0x0000FFFD
_08020C70:
adds r0, r1, #0
adds r0, #0x4c
strh r2, [r0]
_08020C76:
mov r7, sl
ldr r3, [r7]
ldr r1, _08020CD8 @ =0x0000020A
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
add r0, r8
ldrh r5, [r0]
movs r2, #0xe1
lsls r2, r2, #1
adds r0, r3, r2
movs r1, #0
ldrsb r1, [r0, r1]
ldr r4, _08020CDC @ =gMain
ldr r0, [r4, #0x44]
adds r0, #0x98
ldr r6, [r0]
subs r2, r1, #1
movs r0, #0xb1
adds r1, r2, #0
muls r1, r0, r1
adds r0, r3, #0
adds r0, #0x58
ldrh r0, [r0]
subs r0, #0x10
subs r1, r1, r0
strh r1, [r6, #2]
ldr r7, _08020CE0 @ =0x0000061C
adds r0, r3, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08020CE8
adds r0, r3, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r4, #0xbe
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r6, #4]
ldr r7, _08020CE4 @ =0x000001E3
adds r0, r3, r7
adds r0, r0, r2
movs r1, #0
b _08020CF4
.align 2, 0
_08020CD8: .4byte 0x0000020A
_08020CDC: .4byte gMain
_08020CE0: .4byte 0x0000061C
_08020CE4: .4byte 0x000001E3
_08020CE8:
movs r0, #0xb4
strh r0, [r6, #4]
ldr r1, _08020E14 @ =0x000001E3
adds r0, r3, r1
adds r0, r0, r2
movs r1, #1
_08020CF4:
strb r1, [r0]
movs r4, #0
lsls r1, r5, #0x10
ldr r2, _08020E18 @ =gOamBuffer
mov sb, r2
ldr r3, _08020E1C @ =gUnknown_086B4922
mov r8, r3
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
mov ip, r0
ldr r5, _08020E20 @ =0xFFFFFE00
mov sl, r5
_08020D10:
lsls r3, r4, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r2, [r5]
lsls r2, r2, #3
add r2, sb
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, ip
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, ip
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, ip
add r1, r8
ldrh r0, [r1]
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 r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _08020E24 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sl
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r4, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _08020D10
_08020D82:
ldr r0, _08020E28 @ =gMain
ldr r1, [r0, #0x44]
ldr r6, [r1, #0x74]
ldrh r1, [r6]
cmp r1, #0
bne _08020D90
b _08020EA4
_08020D90:
movs r2, #0
ldr r3, _08020E2C @ =0x040000D4
mov sl, r3
_08020D96:
lsls r2, r2, #0x10
asrs r5, r2, #0x10
ldr r4, _08020E28 @ =gMain
ldr r1, [r4, #0x44]
lsls r0, r5, #2
adds r0, r0, r1
ldr r6, [r0, #0x74]
movs r0, #0xb1
adds r1, r5, #0
muls r1, r0, r1
ldr r7, _08020E30 @ =gUnknown_020314E0
ldr r4, [r7]
adds r0, r4, #0
adds r0, #0x58
ldrh r0, [r0]
subs r0, #0x10
subs r1, r1, r0
strh r1, [r6, #2]
ldr r1, _08020E14 @ =0x000001E3
adds r0, r4, r1
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r2
cmp r0, #0
beq _08020E44
ldr r2, _08020E28 @ =gMain
ldr r0, [r2, #0x50]
movs r1, #5
bl __umodsi3
cmp r0, #0
bne _08020E02
ldr r3, _08020E34 @ =0x00000744
adds r0, r4, r3
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08020E38 @ =gUnknown_084C07EC
adds r0, r0, r1
mov r4, sl
str r0, [r4]
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #7
ldr r5, _08020E3C @ =0x06010480
adds r0, r0, r5
str r0, [r4, #4]
ldr r0, _08020E40 @ =0x800000C0
str r0, [r4, #8]
ldr r0, [r4, #8]
_08020E02:
ldr r7, _08020E30 @ =gUnknown_020314E0
ldr r0, [r7]
adds r0, #0x5a
ldrh r1, [r0]
movs r2, #0xbe
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
b _08020E46
.align 2, 0
_08020E14: .4byte 0x000001E3
_08020E18: .4byte gOamBuffer
_08020E1C: .4byte gUnknown_086B4922
_08020E20: .4byte 0xFFFFFE00
_08020E24: .4byte 0x000001FF
_08020E28: .4byte gMain
_08020E2C: .4byte 0x040000D4
_08020E30: .4byte gUnknown_020314E0
_08020E34: .4byte 0x00000744
_08020E38: .4byte gUnknown_084C07EC
_08020E3C: .4byte 0x06010480
_08020E40: .4byte 0x800000C0
_08020E44:
movs r0, #0xc8
_08020E46:
strh r0, [r6, #4]
movs r4, #0
ldr r7, _08020EB4 @ =gOamBuffer
ldr r3, _08020EB8 @ =0xFFFFFE00
mov sb, r3
_08020E50:
lsls r3, r4, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
movs r4, #2
ldrsh r1, [r5, r4]
movs r4, #2
ldrsh r0, [r6, r4]
adds r1, r1, r0
ldr r4, _08020EBC @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldrh r4, [r2, #2]
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #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 r3, #1
lsls r3, r3, #0x10
lsrs r4, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _08020E50
movs r0, #0x80
lsls r0, r0, #9
add r0, r8
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _08020EA4
b _08020D96
_08020EA4:
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
_08020EB4: .4byte gOamBuffer
_08020EB8: .4byte 0xFFFFFE00
_08020EBC: .4byte 0x000001FF
thumb_func_start sub_20EC0
sub_20EC0: @ 0x08020EC0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
ldr r0, _08020F24 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0xa4
ldr r7, [r0]
ldr r0, _08020F28 @ =gUnknown_020314E0
ldr r2, [r0]
movs r1, #0xe0
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
cmp r1, #0
bne _08020EE6
b _08021220
_08020EE6:
movs r0, #0xc8
lsls r0, r0, #2
cmp r1, r0
bne _08020F5C
movs r0, #1
strh r0, [r7]
movs r1, #0xdf
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08020F34
movs r0, #0xfe
lsls r0, r0, #1
adds r1, r2, r0
ldr r0, _08020F2C @ =0x00000442
str r0, [r1]
movs r0, #0x80
lsls r0, r0, #2
adds r1, r2, r0
ldr r0, _08020F30 @ =0x00001248
str r0, [r1]
movs r0, #0x81
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #0
strb r0, [r1]
b _08021210
.align 2, 0
_08020F24: .4byte gMain
_08020F28: .4byte gUnknown_020314E0
_08020F2C: .4byte 0x00000442
_08020F30: .4byte 0x00001248
_08020F34:
movs r0, #0xfe
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0xfa
lsls r0, r0, #3
str r0, [r1]
movs r0, #0x80
lsls r0, r0, #2
adds r1, r2, r0
ldr r0, _08020F58 @ =0x00000EEC
str r0, [r1]
movs r0, #0x81
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #4
strb r0, [r1]
b _08021210
.align 2, 0
_08020F58: .4byte 0x00000EEC
_08020F5C:
ldr r0, _08021084 @ =0x0000031F
cmp r1, r0
bne _08020F82
movs r1, #0xdf
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _08020F82
ldr r1, _08021088 @ =0x040000D4
ldr r0, _0802108C @ =gUnknown_084C07EC
str r0, [r1]
ldr r0, _08021090 @ =0x06010600
str r0, [r1, #4]
ldr r0, _08021094 @ =0x800000C0
str r0, [r1, #8]
ldr r0, [r1, #8]
_08020F82:
ldr r4, _08021098 @ =gUnknown_086ADF90
ldr r2, _0802109C @ =gUnknown_020314E0
mov sl, r2
ldr r3, [r2]
movs r1, #0x81
lsls r1, r1, #2
adds r0, r3, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #3
adds r0, r2, r4
mov r8, r0
subs r1, #8
mov sb, r1
adds r0, r3, r1
ldr r0, [r0]
adds r0, #0x78
mov ip, r0
mov r0, r8
ldr r0, [r0]
mov r1, ip
subs r5, r0, r1
adds r4, #4
adds r2, r2, r4
movs r0, #0x80
lsls r0, r0, #2
mov r8, r0
add r3, r8
ldr r0, [r3]
adds r0, #0xa0
ldr r1, [r2]
subs r6, r1, r0
adds r1, r5, #0
muls r1, r5, r1
adds r0, r6, #0
muls r0, r6, r0
adds r1, r1, r0
str r1, [sp, #8]
lsls r0, r5, #0x10
asrs r0, r0, #0x10
rsbs r1, r6, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r5, r4, #0x10
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r1, r1, r0
ldr r6, _080210A0 @ =0x00004E20
adds r0, r1, #0
adds r1, r6, #0
bl __divsi3
str r0, [sp]
adds r0, r5, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r0, r0, r1
adds r1, r6, #0
bl __divsi3
str r0, [sp, #4]
ldr r0, _080210A4 @ =gUnknown_086AD788
lsrs r4, r4, #0x1d
lsls r4, r4, #1
adds r4, r4, r0
ldr r0, _080210A8 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x18
bl __umodsi3
lsrs r0, r0, #3
ldrh r4, [r4]
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
mov r1, sl
ldr r5, [r1]
mov r2, sb
adds r1, r5, r2
ldr r0, [r1]
ldr r2, [sp]
adds r0, r0, r2
str r0, [r1]
mov r0, r8
adds r4, r5, r0
ldr r0, [r4]
ldr r2, [sp, #4]
adds r0, r0, r2
str r0, [r4]
ldrh r0, [r7]
cmp r0, #0
beq _0802114A
ldr r0, [r1]
movs r1, #0xa
bl __divsi3
adds r1, r5, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #2]
ldr r0, [r4]
movs r1, #0xa
bl __divsi3
adds r1, r5, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _080210AC
movs r0, #0xb4
strh r0, [r7, #4]
b _080210B6
.align 2, 0
_08021084: .4byte 0x0000031F
_08021088: .4byte 0x040000D4
_0802108C: .4byte gUnknown_084C07EC
_08021090: .4byte 0x06010600
_08021094: .4byte 0x800000C0
_08021098: .4byte gUnknown_086ADF90
_0802109C: .4byte gUnknown_020314E0
_080210A0: .4byte 0x00004E20
_080210A4: .4byte gUnknown_086AD788
_080210A8: .4byte gMain
_080210AC:
movs r1, #0x1e
rsbs r1, r1, #0
cmp r0, r1
bge _080210B6
strh r1, [r7, #4]
_080210B6:
ldr r2, _080211B8 @ =0x040000D4
lsls r1, r6, #0x10
asrs r1, r1, #0x10
adds r1, #0x1e
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
ldr r1, _080211BC @ =gMonHatchSpriteGroup5_Gfx
adds r0, r0, r1
str r0, [r2]
ldr r0, _080211C0 @ =0x060112A0
str r0, [r2, #4]
ldr r0, _080211C4 @ =0x80000090
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
ldr r6, _080211C8 @ =gOamBuffer
movs r1, #0xd
rsbs r1, r1, #0
mov sb, r1
ldr r2, _080211CC @ =0xFFFFFE00
mov r8, r2
_080210E2:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r4, r5, #3
adds r4, #8
adds r4, r7, r4
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r6
ldrb r1, [r2, #5]
mov r0, sb
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2, #5]
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r6
ldrb r1, [r2, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0x30
orrs r0, r1
strb r0, [r2, #5]
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r6
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _080211D0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _080210E2
_0802114A:
ldr r0, _080211D4 @ =0x000009C3
ldr r1, [sp, #8]
cmp r1, r0
bgt _08021210
ldr r3, _080211D8 @ =gUnknown_020314E0
ldr r1, [r3]
movs r2, #0x81
lsls r2, r2, #2
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
movs r5, #0
strb r0, [r1]
ldr r2, [r3]
movs r1, #0xdf
lsls r1, r1, #1
adds r0, r2, r1
movs r4, #0
ldrsb r4, [r0, r4]
cmp r4, #1
bne _080211EC
adds r1, #0x46
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _08021210
ldr r1, _080211B8 @ =0x040000D4
ldr r0, _080211DC @ =gUnknown_084C156C
str r0, [r1]
ldr r0, _080211E0 @ =0x06010600
str r0, [r1, #4]
ldr r0, _080211E4 @ =0x800000C0
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xf1
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #2
strb r0, [r1]
ldr r0, _080211E8 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0xa4
ldr r0, [r0]
strh r5, [r0]
ldr r0, [r3]
movs r1, #0xe0
lsls r1, r1, #1
adds r0, r0, r1
strh r4, [r0]
movs r0, #0x75
bl m4aSongNumStart
b _08021210
.align 2, 0
_080211B8: .4byte 0x040000D4
_080211BC: .4byte gMonHatchSpriteGroup5_Gfx
_080211C0: .4byte 0x060112A0
_080211C4: .4byte 0x80000090
_080211C8: .4byte gOamBuffer
_080211CC: .4byte 0xFFFFFE00
_080211D0: .4byte 0x000001FF
_080211D4: .4byte 0x000009C3
_080211D8: .4byte gUnknown_020314E0
_080211DC: .4byte gUnknown_084C156C
_080211E0: .4byte 0x06010600
_080211E4: .4byte 0x800000C0
_080211E8: .4byte gMain
_080211EC:
movs r1, #0x81
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _08021210
ldr r0, _08021230 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0xa4
ldr r0, [r0]
strh r5, [r0]
movs r0, #0xe0
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #1
strh r0, [r1]
_08021210:
ldr r0, _08021234 @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0xe0
lsls r2, r2, #1
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_08021220:
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08021230: .4byte gMain
_08021234: .4byte gUnknown_020314E0
thumb_func_start sub_21238
sub_21238: @ 0x08021238
push {r4, r5, lr}
lsls r0, r0, #0x10
cmp r0, #0
beq _0802127A
ldr r3, _080212E0 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r1, _080212E4 @ =0x00000714
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
ldr r0, [r3]
movs r2, #0xe2
lsls r2, r2, #3
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r3]
adds r1, r0, r2
ldrb r1, [r1]
ldr r4, _080212E8 @ =0x00000711
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r3]
adds r1, r0, r2
ldrb r1, [r1]
adds r4, #1
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r3]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _080212EC @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
_0802127A:
ldr r5, _080212E0 @ =gUnknown_020314E0
ldr r0, [r5]
movs r4, #0xe6
lsls r4, r4, #3
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r0, [r5]
ldr r2, _080212F0 @ =0x000005F3
adds r0, r0, r2
strb r1, [r0]
ldr r1, [r5]
movs r0, #0x16
ldrsb r0, [r1, r0]
cmp r0, #2
bne _080212A2
movs r0, #0x14
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _080212C0
_080212A2:
adds r0, r1, #0
adds r0, #0x72
ldrb r0, [r0]
movs r4, #0xf
ands r4, r0
cmp r4, #0
bne _080212C0
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r5]
ldr r1, _080212F4 @ =0x000006C4
adds r0, r0, r1
strb r4, [r0]
_080212C0:
ldr r0, _080212E0 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r0, [r2, #0x14]
ldr r1, _080212F8 @ =0x00FF00FF
ands r0, r1
ldr r1, _080212FC @ =0x00020006
cmp r0, r1
bne _080212DA
movs r4, #0xbc
lsls r4, r4, #2
adds r1, r2, r4
movs r0, #0
strb r0, [r1]
_080212DA:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080212E0: .4byte gUnknown_020314E0
_080212E4: .4byte 0x00000714
_080212E8: .4byte 0x00000711
_080212EC: .4byte 0x00000713
_080212F0: .4byte 0x000005F3
_080212F4: .4byte 0x000006C4
_080212F8: .4byte 0x00FF00FF
_080212FC: .4byte 0x00020006
thumb_func_start sub_21300
sub_21300: @ 0x08021300
ldr r2, _08021318 @ =gUnknown_020314E0
ldr r1, [r2]
movs r3, #0
movs r0, #1
strb r0, [r1, #0x17]
ldr r0, [r2]
movs r1, #0
strh r3, [r0, #0x18]
ldr r2, _0802131C @ =0x000006DD
adds r0, r0, r2
strb r1, [r0]
bx lr
.align 2, 0
_08021318: .4byte gUnknown_020314E0
_0802131C: .4byte 0x000006DD
thumb_func_start sub_21320
sub_21320: @ 0x08021320
push {r4, lr}
ldr r1, _08021340 @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
subs r0, #1
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r4, r1, #0
cmp r0, #6
bls _08021336
b _0802150C
_08021336:
lsls r0, r0, #2
ldr r1, _08021344 @ =_08021348
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08021340: .4byte gUnknown_020314E0
_08021344: .4byte _08021348
_08021348: @ jump table
.4byte _08021364 @ case 0
.4byte _080213B2 @ case 1
.4byte _080213E8 @ case 2
.4byte _0802144C @ case 3
.4byte _080214CC @ case 4
.4byte _080214E0 @ case 5
.4byte _080214F8 @ case 6
_08021364:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #8
bls _0802136E
b _0802150C
_0802136E:
adds r0, #1
strh r0, [r1, #0x18]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #7
bhi _08021386
movs r0, #0xe6
lsls r0, r0, #3
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
b _0802150C
_08021386:
cmp r0, #8
beq _0802138C
b _0802150C
_0802138C:
bl sub_219A8
ldr r0, [r4]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r0, [r4]
movs r2, #0xe1
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0
str r1, [r0]
movs r0, #1
bl sub_1C7F4
ldr r1, [r4]
b _080214EA
_080213B2:
bl sub_219EC
ldr r4, _080213E4 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080213CE
movs r0, #1
movs r1, #0
bl sub_1C7F4
_080213CE:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
beq _080213E0
b _0802150C
_080213E0:
b _080214EA
.align 2, 0
_080213E4: .4byte gUnknown_020314E0
_080213E8:
ldr r0, [r4]
ldr r3, _08021440 @ =0x00000714
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
ldr r0, [r4]
movs r2, #0xe2
lsls r2, r2, #3
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, r2
ldrb r1, [r1]
subs r3, #3
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, r2
ldrb r1, [r1]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r4]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _08021444 @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
ldr r1, [r4]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
bl sub_29D9C
ldr r0, [r4]
ldr r3, _08021448 @ =0x0000062D
adds r1, r0, r3
ldrb r0, [r1]
cmp r0, #0x62
bhi _0802150C
adds r0, #1
strb r0, [r1]
b _0802150C
.align 2, 0
_08021440: .4byte 0x00000714
_08021444: .4byte 0x00000713
_08021448: .4byte 0x0000062D
_0802144C:
ldr r0, _08021464 @ =gUnknown_020314E0
ldr r2, [r0]
ldrh r0, [r2, #0x28]
adds r1, r0, #0
cmp r1, #0x94
bne _08021468
adds r0, #1
strh r0, [r2, #0x28]
bl sub_2A054
b _08021484
.align 2, 0
_08021464: .4byte gUnknown_020314E0
_08021468:
cmp r1, #0x8b
beq _08021484
cmp r1, #0x18
bne _0802147A
movs r0, #0
movs r1, #0
bl sub_1C7F4
b _08021484
_0802147A:
cmp r1, #0
bne _08021484
ldrb r0, [r2, #0x17]
adds r0, #1
strb r0, [r2, #0x17]
_08021484:
ldr r4, _080214C0 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _080214C4 @ =0x000006DD
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080214B4
bl sub_2A354
ldr r1, [r4]
ldr r3, _080214C8 @ =0x000006DE
adds r2, r1, r3
ldrh r0, [r2]
cmp r0, #0xb3
bhi _080214B4
movs r0, #0x8c
strh r0, [r1, #0x28]
ldrh r0, [r2]
cmp r0, #0xb3
bne _080214B4
movs r0, #0x1e
strh r0, [r1, #0x28]
_080214B4:
ldr r0, _080214C0 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0
strh r0, [r1, #0x18]
b _0802150C
.align 2, 0
_080214C0: .4byte gUnknown_020314E0
_080214C4: .4byte 0x000006DD
_080214C8: .4byte 0x000006DE
_080214CC:
bl sub_219EC
ldr r0, _080214DC @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x34]
movs r0, #0
strh r0, [r1]
b _080214E6
.align 2, 0
_080214DC: .4byte gMain
_080214E0:
movs r0, #1
bl sub_21238
_080214E6:
ldr r0, _080214F4 @ =gUnknown_020314E0
ldr r1, [r0]
_080214EA:
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
b _0802150C
.align 2, 0
_080214F4: .4byte gUnknown_020314E0
_080214F8:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0
beq _08021506
subs r0, #1
strh r0, [r1, #0x18]
b _0802150C
_08021506:
movs r0, #1
bl sub_19B64
_0802150C:
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_21514
sub_21514: @ 0x08021514
push {r4, r5, lr}
ldr r5, _0802156C @ =gUnknown_020314E0
ldr r0, [r5]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
movs r4, #0
strb r4, [r0]
ldr r0, [r5]
ldr r1, _08021570 @ =0x000005F3
adds r0, r0, r1
strb r4, [r0]
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r5]
ldr r1, _08021574 @ =0x000006C4
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
adds r1, #0x5f
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
subs r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
subs r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
adds r1, #1
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
adds r1, #1
adds r0, r0, r1
strb r4, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0802156C: .4byte gUnknown_020314E0
_08021570: .4byte 0x000005F3
_08021574: .4byte 0x000006C4
thumb_func_start sub_21578
sub_21578: @ 0x08021578
push {r4, lr}
ldr r0, _080215A8 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _0802161C
ldr r4, _080215AC @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _080215B0 @ =0x00000283
adds r0, r0, r1
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bls _0802159C
b _080216AE
_0802159C:
lsls r0, r0, #2
ldr r1, _080215B4 @ =_080215B8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080215A8: .4byte gMain
_080215AC: .4byte gUnknown_020314E0
_080215B0: .4byte 0x00000283
_080215B4: .4byte _080215B8
_080215B8: @ jump table
.4byte _080215CC @ case 0
.4byte _080215E8 @ case 1
.4byte _080215CC @ case 2
.4byte _080215E8 @ case 3
.4byte _08021604 @ case 4
_080215CC:
ldr r0, [r4]
ldr r2, _080215E4 @ =0x000006EC
adds r0, r0, r2
movs r1, #0x2a
strb r1, [r0]
ldr r0, [r4]
movs r1, #0xa1
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #3
b _080216AC
.align 2, 0
_080215E4: .4byte 0x000006EC
_080215E8:
ldr r0, [r4]
ldr r2, _08021600 @ =0x000006EC
adds r0, r0, r2
movs r1, #0x2c
strb r1, [r0]
ldr r0, [r4]
movs r1, #0xa1
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #5
b _080216AC
.align 2, 0
_08021600: .4byte 0x000006EC
_08021604:
ldr r0, [r4]
ldr r2, _08021618 @ =0x000006EC
adds r0, r0, r2
movs r1, #0x2d
strb r1, [r0]
ldr r0, [r4]
movs r1, #0xa1
lsls r1, r1, #2
adds r0, r0, r1
b _080216AA
.align 2, 0
_08021618: .4byte 0x000006EC
_0802161C:
ldr r4, _08021640 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _08021644 @ =0x00000283
adds r0, r0, r2
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bhi _080216AE
lsls r0, r0, #2
ldr r1, _08021648 @ =_0802164C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08021640: .4byte gUnknown_020314E0
_08021644: .4byte 0x00000283
_08021648: .4byte _0802164C
_0802164C: @ jump table
.4byte _08021660 @ case 0
.4byte _0802167C @ case 1
.4byte _08021660 @ case 2
.4byte _0802167C @ case 3
.4byte _08021698 @ case 4
_08021660:
ldr r0, [r4]
ldr r1, _08021678 @ =0x000006EC
adds r0, r0, r1
movs r1, #0x29
strb r1, [r0]
ldr r0, [r4]
movs r2, #0xa1
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #2
b _080216AC
.align 2, 0
_08021678: .4byte 0x000006EC
_0802167C:
ldr r0, [r4]
ldr r1, _08021694 @ =0x000006EC
adds r0, r0, r1
movs r1, #0x2b
strb r1, [r0]
ldr r0, [r4]
movs r2, #0xa1
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #4
b _080216AC
.align 2, 0
_08021694: .4byte 0x000006EC
_08021698:
ldr r0, [r4]
ldr r1, _080216D8 @ =0x000006EC
adds r0, r0, r1
movs r1, #0x2d
strb r1, [r0]
ldr r0, [r4]
movs r2, #0xa1
lsls r2, r2, #2
adds r0, r0, r2
_080216AA:
movs r1, #6
_080216AC:
strb r1, [r0]
_080216AE:
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _080216DC
movs r0, #0x15
ldrsb r0, [r2, r0]
cmp r0, #2
bne _080216DC
movs r1, #0
movs r0, #0x96
strh r0, [r2, #0x28]
movs r0, #3
strb r0, [r2, #0x17]
ldr r0, [r4]
strh r1, [r0, #0x18]
b _080216F4
.align 2, 0
_080216D8: .4byte 0x000006EC
_080216DC:
ldr r0, [r4]
movs r1, #0
strb r1, [r0, #0x17]
ldr r0, [r4]
strh r1, [r0, #0x18]
movs r2, #0xe1
lsls r2, r2, #3
adds r0, r0, r2
str r1, [r0]
movs r0, #7
bl sub_1C7F4
_080216F4:
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_216FC
sub_216FC: @ 0x080216FC
push {r4, lr}
ldr r1, _0802171C @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r3, r1, #0
cmp r0, #8
bls _08021710
b _080219A2
_08021710:
lsls r0, r0, #2
ldr r1, _08021720 @ =_08021724
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802171C: .4byte gUnknown_020314E0
_08021720: .4byte _08021724
_08021724: @ jump table
.4byte _08021748 @ case 0
.4byte _0802175C @ case 1
.4byte _080217FC @ case 2
.4byte _08021824 @ case 3
.4byte _08021850 @ case 4
.4byte _08021938 @ case 5
.4byte _08021960 @ case 6
.4byte _08021988 @ case 7
.4byte _0802199C @ case 8
_08021748:
ldr r1, [r3]
ldrh r0, [r1, #0x18]
cmp r0, #0x3b
bhi _08021756
adds r0, #1
strh r0, [r1, #0x18]
b _080219A2
_08021756:
movs r0, #0
strh r0, [r1, #0x18]
b _08021990
_0802175C:
ldr r1, [r3]
ldrh r0, [r1, #0x18]
cmp r0, #8
bls _08021766
b _080219A2
_08021766:
adds r0, #1
strh r0, [r1, #0x18]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #7
bhi _0802177E
movs r0, #0xe6
lsls r0, r0, #3
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
b _080219A2
_0802177E:
cmp r0, #8
beq _08021784
b _080219A2
_08021784:
ldr r2, _080217A4 @ =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 _080217CE
lsls r0, r0, #2
ldr r1, _080217A8 @ =_080217AC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080217A4: .4byte 0x00000283
_080217A8: .4byte _080217AC
_080217AC: @ jump table
.4byte _080217C0 @ case 0
.4byte _080217C8 @ case 1
.4byte _080217C0 @ case 2
.4byte _080217C8 @ case 3
.4byte _080217C8 @ case 4
_080217C0:
movs r0, #0xe
bl m4aSongNumStart
b _080217CE
_080217C8:
movs r0, #0xf
bl m4aSongNumStart
_080217CE:
bl sub_219A8
ldr r2, _080217F8 @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xe6
lsls r3, r3, #3
adds r0, r0, r3
movs r3, #0
movs r1, #2
strb r1, [r0]
ldr r1, [r2]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r0, [r2]
movs r1, #0xe1
lsls r1, r1, #3
adds r0, r0, r1
str r3, [r0]
b _080219A2
.align 2, 0
_080217F8: .4byte gUnknown_020314E0
_080217FC:
bl sub_219EC
movs r0, #7
movs r1, #0
bl sub_1C7F4
ldr r0, _08021820 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
beq _0802181C
b _080219A2
_0802181C:
b _08021990
.align 2, 0
_08021820: .4byte gUnknown_020314E0
_08021824:
ldr r1, [r3]
ldrb r0, [r1, #0x17]
adds r0, #1
movs r2, #0
strb r0, [r1, #0x17]
ldr r0, [r3]
strh r2, [r0, #0x18]
movs r3, #0xe1
lsls r3, r3, #3
adds r1, r0, r3
str r2, [r1]
ldr r1, _0802184C @ =0x000006EC
adds r0, r0, r1
movs r1, #0x2e
strb r1, [r0]
movs r0, #7
movs r1, #0
bl sub_1C7F4
b _080219A2
.align 2, 0
_0802184C: .4byte 0x000006EC
_08021850:
ldr r4, _08021874 @ =gUnknown_020314E0
ldr r1, [r4]
ldrh r0, [r1, #0x28]
cmp r0, #0x91
bne _080218C4
adds r0, #1
strh r0, [r1, #0x28]
ldr r0, _08021878 @ =gMain
ldrh r2, [r0, #0x18]
movs r0, #1
ands r0, r2
cmp r0, #0
beq _0802187C
movs r0, #0x90
strh r0, [r1, #0x28]
bl m4aMPlayAllStop
b _080218B0
.align 2, 0
_08021874: .4byte gUnknown_020314E0
_08021878: .4byte gMain
_0802187C:
movs r0, #2
ands r0, r2
cmp r0, #0
beq _080218B0
bl m4aMPlayAllStop
movs r0, #0x66
bl m4aSongNumStart
ldr r1, [r4]
movs r0, #0x3c
strh r0, [r1, #0x28]
movs r0, #6
strb r0, [r1, #0x17]
ldr r1, [r4]
ldr r2, _08021924 @ =0x00000714
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080218B0
ldr r3, _08021928 @ =0x000006EE
adds r1, r1, r3
movs r0, #0x78
strh r0, [r1]
_080218B0:
ldr r0, _0802192C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _08021930 @ =0x000006EC
adds r0, r0, r1
movs r1, #0x2e
strb r1, [r0]
movs r0, #7
movs r1, #0
bl sub_1C7F4
_080218C4:
ldr r4, _0802192C @ =gUnknown_020314E0
ldr r0, [r4]
ldrh r0, [r0, #0x28]
cmp r0, #0x82
bne _080218E2
movs r0, #0x9f
bl m4aSongNumStart
ldr r1, [r4]
movs r0, #0x41
strh r0, [r1, #0x18]
ldr r1, _08021934 @ =gMain
ldrh r0, [r1, #0x38]
movs r0, #0x9f
strh r0, [r1, #0x38]
_080218E2:
ldr r1, [r4]
ldrh r0, [r1, #0x28]
cmp r0, #0x7d
bne _080218EE
adds r0, #1
strh r0, [r1, #0x28]
_080218EE:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0
beq _080219A2
movs r2, #0x88
lsls r2, r2, #5
adds r1, r1, r2
movs r0, #1
strb r0, [r1]
ldr r3, [r4]
ldrh r0, [r3, #0x18]
subs r0, #1
strh r0, [r3, #0x18]
ldr r2, _08021934 @ =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 _080219A2
ldrb r0, [r3, #0x17]
adds r0, #1
strb r0, [r3, #0x17]
b _080219A2
.align 2, 0
_08021924: .4byte 0x00000714
_08021928: .4byte 0x000006EE
_0802192C: .4byte gUnknown_020314E0
_08021930: .4byte 0x000006EC
_08021934: .4byte gMain
_08021938:
ldr r2, [r3]
ldrh r0, [r2, #0x18]
cmp r0, #0x1d
bhi _08021946
adds r0, #1
strh r0, [r2, #0x18]
b _080219A2
_08021946:
movs r1, #0
movs r0, #0
strh r0, [r2, #0x18]
strb r1, [r2, #0x17]
ldr r0, [r3]
ldr r3, _0802195C @ =0x00000282
adds r0, r0, r3
strb r1, [r0]
bl sub_1C73C
b _080219A2
.align 2, 0
_0802195C: .4byte 0x00000282
_08021960:
bl sub_219EC
ldr r0, _08021980 @ =gMain
ldr r0, [r0, #0x44]
ldr r0, [r0, #0x34]
movs r3, #0
strh r3, [r0]
ldr r2, _08021984 @ =gUnknown_020314E0
ldr r1, [r2]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r0, [r2]
strh r3, [r0, #0x18]
b _080219A2
.align 2, 0
_08021980: .4byte gMain
_08021984: .4byte gUnknown_020314E0
_08021988:
bl sub_21514
ldr r0, _08021998 @ =gUnknown_020314E0
ldr r1, [r0]
_08021990:
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
b _080219A2
.align 2, 0
_08021998: .4byte gUnknown_020314E0
_0802199C:
movs r0, #1
bl sub_19B64
_080219A2:
pop {r4}
pop {r0}
bx r0
thumb_func_start sub_219A8
sub_219A8: @ 0x080219A8
ldr r1, _080219D0 @ =0x040000D4
ldr r0, _080219D4 @ =gUnknown_0844838C
str r0, [r1]
ldr r0, _080219D8 @ =0x060113C0
str r0, [r1, #4]
ldr r0, _080219DC @ =0x80000180
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _080219E0 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x34]
movs r2, #1
movs r0, #1
strh r0, [r1]
ldr r0, _080219E4 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _080219E8 @ =0x000005F3
adds r0, r0, r1
strb r2, [r0]
bx lr
.align 2, 0
_080219D0: .4byte 0x040000D4
_080219D4: .4byte gUnknown_0844838C
_080219D8: .4byte 0x060113C0
_080219DC: .4byte 0x80000180
_080219E0: .4byte gMain
_080219E4: .4byte gUnknown_020314E0
_080219E8: .4byte 0x000005F3
thumb_func_start sub_219EC
sub_219EC: @ 0x080219EC
push {r4, r5, r6, r7, lr}
ldr r0, _08021A58 @ =gMain
ldr r0, [r0, #0x44]
ldr r6, [r0, #0x34]
ldr r5, _08021A5C @ =gUnknown_020314E0
ldr r4, [r5]
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r4, r1
ldr r0, [r0]
movs r1, #0x23
bl __umodsi3
movs r1, #7
bl __udivsi3
ldr r3, _08021A60 @ =0x0000020B
adds r4, r4, r3
strb r0, [r4]
ldrh r0, [r6]
cmp r0, #0
beq _08021AE8
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 r1, [r1]
movs r2, #0x8c
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _08021A40
movs r0, #0xc8
strh r0, [r6, #4]
_08021A40:
ldr r4, [r5]
adds r0, r4, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _08021A64
movs r0, #0xc8
strh r0, [r6, #4]
b _08021A9C
.align 2, 0
_08021A58: .4byte gMain
_08021A5C: .4byte gUnknown_020314E0
_08021A60: .4byte 0x0000020B
_08021A64:
adds r3, r4, r3
movs r1, #0x83
lsls r1, r1, #2
adds r0, r4, r1
movs r1, #0
ldrsb r1, [r3, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
beq _08021A9C
ldr r2, _08021AF0 @ =0x040000D4
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _08021AF4 @ =gUnknown_0844838C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08021AF8 @ =0x060113C0
str r0, [r2, #4]
ldr r0, _08021AFC @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
ldrb r1, [r3]
movs r2, #0x83
lsls r2, r2, #2
adds r0, r4, r2
strb r1, [r0]
_08021A9C:
movs r0, #0
ldr r7, _08021B00 @ =gOamBuffer
ldr r1, _08021B04 @ =0xFFFFFE00
mov ip, r1
_08021AA4:
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, _08021B08 @ =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 _08021AA4
_08021AE8:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08021AF0: .4byte 0x040000D4
_08021AF4: .4byte gUnknown_0844838C
_08021AF8: .4byte 0x060113C0
_08021AFC: .4byte 0x80000180
_08021B00: .4byte gOamBuffer
_08021B04: .4byte 0xFFFFFE00
_08021B08: .4byte 0x000001FF
thumb_func_start sub_21B0C
sub_21B0C: @ 0x08021B0C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
ldr r0, _08021BE8 @ =gMain
ldr r0, [r0, #0x44]
ldr r7, [r0, #0x44]
mov r0, sp
movs r1, #0
movs r2, #6
bl memset
ldr r5, _08021BEC @ =gUnknown_020314E0
ldr r6, [r5]
movs r0, #0xe5
lsls r0, r0, #1
adds r3, r6, r0
movs r1, #0xe6
lsls r1, r1, #1
adds r4, r6, r1
movs r2, #0
ldrsh r1, [r3, r2]
movs r2, #0
ldrsh r0, [r4, r2]
cmp r1, r0
bne _08021B44
b _08021C5C
_08021B44:
cmp r1, #0xc
bne _08021C40
movs r0, #0xe7
lsls r0, r0, #1
mov sb, r0
adds r1, r6, r0
ldrh r0, [r1]
adds r2, r0, #0
cmp r2, #0
beq _08021BF0
subs r0, #1
strh r0, [r1]
ldrh r4, [r1]
adds r0, r4, #0
movs r1, #0x14
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xa
bl __udivsi3
adds r0, #0xc
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
cmp r4, #0x28
bhi _08021C14
cmp r4, #2
bls _08021B98
movs r1, #0xea
lsls r1, r1, #1
adds r0, r6, r1
ldrh r1, [r0]
adds r1, #3
strh r1, [r0]
movs r2, #0xeb
lsls r2, r2, #1
adds r1, r6, r2
ldrh r0, [r1]
adds r0, #2
strh r0, [r1]
_08021B98:
ldr r5, [r5]
mov r0, sb
adds r6, r5, r0
ldrh r0, [r6]
lsls r0, r0, #7
movs r4, #0x28
movs r1, #0x28
bl __divsi3
adds r0, #0x80
movs r2, #0xed
lsls r2, r2, #1
adds r1, r5, r2
strh r0, [r1]
movs r1, #0xec
lsls r1, r1, #1
adds r5, r5, r1
strh r0, [r5]
mov r5, sp
ldrh r0, [r6]
subs r0, r4, r0
lsls r0, r0, #4
movs r1, #0x28
bl __divsi3
strh r0, [r5, #2]
mov r5, sp
ldrh r0, [r6]
subs r4, r4, r0
lsls r4, r4, #4
rsbs r4, r4, #0
adds r0, r4, #0
movs r1, #0x28
bl __divsi3
strh r0, [r5]
mov r1, sp
movs r0, #0
strh r0, [r1, #4]
b _08021C14
.align 2, 0
_08021BE8: .4byte gMain
_08021BEC: .4byte gUnknown_020314E0
_08021BF0:
movs r0, #0xd
strh r0, [r4]
strh r0, [r3]
mov r8, r0
movs r1, #0xe8
lsls r1, r1, #1
adds r0, r6, r1
strh r2, [r0]
movs r2, #0xeb
lsls r2, r2, #1
adds r1, r6, r2
movs r0, #0x78
strh r0, [r1]
movs r0, #0xee
lsls r0, r0, #1
adds r1, r6, r0
movs r0, #0x3c
strh r0, [r1]
_08021C14:
ldr r2, _08021C30 @ =0x040000D4
mov r1, r8
lsls r0, r1, #0x10
asrs r0, r0, #9
ldr r1, _08021C34 @ =gUnknown_084C00EC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08021C38 @ =0x06010AE0
str r0, [r2, #4]
ldr r0, _08021C3C @ =0x80000040
str r0, [r2, #8]
ldr r0, [r2, #8]
b _08021C5C
.align 2, 0
_08021C30: .4byte 0x040000D4
_08021C34: .4byte gUnknown_084C00EC
_08021C38: .4byte 0x06010AE0
_08021C3C: .4byte 0x80000040
_08021C40:
ldr r2, _08021C98 @ =0x040000D4
movs r1, #0
ldrsh r0, [r3, r1]
lsls r0, r0, #7
ldr r1, _08021C9C @ =gUnknown_084C00EC
adds r0, r0, r1
str r0, [r2]
ldr r0, _08021CA0 @ =0x06010AE0
str r0, [r2, #4]
ldr r0, _08021CA4 @ =0x80000040
str r0, [r2, #8]
ldr r0, [r2, #8]
ldrh r0, [r3]
strh r0, [r4]
_08021C5C:
ldr r0, _08021CA8 @ =gUnknown_020314E0
ldr r3, [r0]
movs r2, #0xe8
lsls r2, r2, #1
adds r1, r3, r2
ldrh r2, [r1]
adds r4, r0, #0
cmp r2, #0
beq _08021CAC
subs r0, r2, #1
strh r0, [r1]
movs r2, #0xeb
lsls r2, r2, #1
adds r0, r3, r2
ldrh r0, [r0]
adds r0, #0x50
strh r0, [r7, #4]
ldrh r0, [r1]
cmp r0, #0x13
bhi _08021CB0
adds r1, r0, #0
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, #0x10
adds r2, #4
adds r1, r3, r2
strh r0, [r1]
b _08021CB0
.align 2, 0
_08021C98: .4byte 0x040000D4
_08021C9C: .4byte gUnknown_084C00EC
_08021CA0: .4byte 0x06010AE0
_08021CA4: .4byte 0x80000040
_08021CA8: .4byte gUnknown_020314E0
_08021CAC:
movs r0, #0xb4
strh r0, [r7, #4]
_08021CB0:
ldr r1, [r4]
movs r2, #0xea
lsls r2, r2, #1
adds r0, r1, r2
ldrh r0, [r0]
adds r0, #0x77
strh r0, [r7, #2]
adds r2, #4
adds r0, r1, r2
movs r2, #0
ldrsh r0, [r0, r2]
movs r2, #0xed
lsls r2, r2, #1
adds r1, r1, r2
movs r2, #0
ldrsh r1, [r1, r2]
movs r2, #1
bl SetMatrixScale
movs r0, #0
ldr r6, _08021D6C @ =gOamBuffer
ldr r1, _08021D70 @ =0xFFFFFE00
mov ip, r1
movs r2, #4
rsbs r2, r2, #0
mov sb, r2
movs r1, #0xf
rsbs r1, r1, #0
mov r8, r1
_08021CEA:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r4, r5, #3
adds r4, #8
adds r4, r7, r4
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r6
movs r2, #2
ldrsh r1, [r4, r2]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
lsls r0, r5, #1
add r0, sp
movs r2, #0
ldrsh r0, [r0, r2]
adds r1, r1, r0
ldr r2, _08021D74 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r7, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r6
ldrb r1, [r2, #1]
mov r0, sb
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #1]
ldrh r2, [r4]
lsls r2, r2, #3
adds r2, r2, r6
ldrb r1, [r2, #3]
mov r0, r8
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #3]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #2
ble _08021CEA
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08021D6C: .4byte gOamBuffer
_08021D70: .4byte 0xFFFFFE00
_08021D74: .4byte 0x000001FF
thumb_func_start sub_21D78
sub_21D78: @ 0x08021D78
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r7, _08021DD8 @ =gUnknown_0200EBC8
ldr r4, _08021DDC @ =gUnknown_020314E0
ldr r6, [r4]
movs r0, #0xd2
lsls r0, r0, #1
adds r2, r6, r0
movs r3, #0
ldrsb r3, [r2, r3]
cmp r3, #0
bne _08021E2C
ldr r1, _08021DE0 @ =0x0000072E
adds r0, r6, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _08021DEC
ldr r1, _08021DE4 @ =0x00000281
adds r0, r6, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _08021DB0
b _08021F86
_08021DB0:
subs r1, #0xdc
adds r0, r6, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08021DC0
b _08021F86
_08021DC0:
movs r1, #1
strb r1, [r2]
ldr r2, [r4]
movs r4, #0xda
lsls r4, r4, #1
adds r0, r2, r4
strh r3, [r0]
ldr r3, _08021DE8 @ =0x000001A5
adds r0, r2, r3
strb r1, [r0]
b _08021F86
.align 2, 0
_08021DD8: .4byte gUnknown_0200EBC8
_08021DDC: .4byte gUnknown_020314E0
_08021DE0: .4byte 0x0000072E
_08021DE4: .4byte 0x00000281
_08021DE8: .4byte 0x000001A5
_08021DEC:
movs r0, #0x13
ldrsb r0, [r6, r0]
cmp r0, #6
bne _08021DF6
b _08021F86
_08021DF6:
ldr r5, _08021E28 @ =0x000001A5
adds r0, r6, r5
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #1
beq _08021E04
b _08021F86
_08021E04:
adds r0, r6, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _08021E14
b _08021F86
_08021E14:
strb r1, [r2]
ldr r0, [r4]
movs r4, #0xda
lsls r4, r4, #1
adds r1, r0, r4
movs r2, #0
strh r3, [r1]
adds r0, r0, r5
strb r2, [r0]
b _08021F86
.align 2, 0
_08021E28: .4byte 0x000001A5
_08021E2C:
ldr r5, _08021E7C @ =gUnknown_086AD456
movs r1, #0xda
lsls r1, r1, #1
adds r0, r6, r1
ldrh r4, [r0]
adds r0, r4, #0
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, _08021E80 @ =0x000001A5
adds r1, r6, r2
movs r2, #0
ldrsb r2, [r1, r2]
lsls r1, r2, #3
subs r1, r1, r2
lsls r1, r1, #1
adds r0, r0, r1
adds r0, r0, r5
ldrh r5, [r0]
cmp r4, #0
bne _08021E94
movs r0, #1
strh r0, [r7]
ldr r1, _08021E84 @ =0x040000D4
ldr r0, _08021E88 @ =gUnknown_083A8A8C
str r0, [r1]
ldr r0, _08021E8C @ =0x05000240
str r0, [r1, #4]
ldr r0, _08021E90 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
b _08021E9E
.align 2, 0
_08021E7C: .4byte gUnknown_086AD456
_08021E80: .4byte 0x000001A5
_08021E84: .4byte 0x040000D4
_08021E88: .4byte gUnknown_083A8A8C
_08021E8C: .4byte 0x05000240
_08021E90: .4byte 0x80000010
_08021E94:
cmp r4, #0x25
bne _08021E9E
movs r0, #0xca
bl m4aSongNumStart
_08021E9E:
ldr r4, _08021F90 @ =gUnknown_020314E0
ldr r0, [r4]
movs r3, #0xda
lsls r3, r3, #1
adds r0, r0, r3
ldrh r0, [r0]
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x10
mov r8, r4
cmp r0, #0
bne _08021ED4
ldr r2, _08021F94 @ =0x040000D4
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _08021F98 @ =gUnknown_084F6B0C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08021F9C @ =0x06013D00
str r0, [r2, #4]
ldr r0, _08021FA0 @ =0x80000280
str r0, [r2, #8]
ldr r0, [r2, #8]
_08021ED4:
mov r4, r8
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0xb5
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r0, #0x30
subs r0, r0, r1
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x32
rsbs r1, r1, #0
cmp r0, r1
bge _08021EFC
strh r1, [r7, #4]
_08021EFC:
movs r0, #0
ldr r6, _08021FA4 @ =gOamBuffer
ldr r1, _08021FA8 @ =0xFFFFFE00
mov ip, r1
_08021F04:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r3, r5, #3
adds r3, #8
adds r3, r7, r3
ldrh r4, [r3]
lsls r4, r4, #3
adds r4, r4, r6
movs r2, #2
ldrsh r1, [r3, r2]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _08021FAC @ =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, r6
ldrb r0, [r7, #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, #2
ble _08021F04
mov r3, r8
ldr r2, [r3]
movs r4, #0xda
lsls r4, r4, #1
adds r1, r2, r4
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x28
bls _08021F86
ldr r1, _08021FB0 @ =0x000001A5
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_4E9F0
mov r2, r8
ldr r0, [r2]
movs r3, #0xd2
lsls r3, r3, #1
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
ldr r0, _08021FB4 @ =gMain
ldr r4, _08021FB8 @ =0x00003B08
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
_08021F86:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08021F90: .4byte gUnknown_020314E0
_08021F94: .4byte 0x040000D4
_08021F98: .4byte gUnknown_084F6B0C
_08021F9C: .4byte 0x06013D00
_08021FA0: .4byte 0x80000280
_08021FA4: .4byte gOamBuffer
_08021FA8: .4byte 0xFFFFFE00
_08021FAC: .4byte 0x000001FF
_08021FB0: .4byte 0x000001A5
_08021FB4: .4byte gMain
_08021FB8: .4byte 0x00003B08
thumb_func_start sub_21FBC
sub_21FBC: @ 0x08021FBC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
ldr r5, _08022168 @ =gMain
ldr r1, [r5, #0x44]
ldr r7, [r1, #0x1c]
ldr r3, _0802216C @ =gUnknown_086AD2DE
ldr r4, _08022170 @ =gUnknown_020314E0
ldr r1, [r4]
movs r2, #0xd3
lsls r2, r2, #1
adds r1, r1, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
lsls r1, r1, #1
adds r1, r1, r3
ldrh r1, [r1]
lsls r1, r1, #3
ldr r2, _08022174 @ =gUnknown_086AD000
adds r1, r1, r2
mov r8, r1
lsls r0, r0, #0x10
mov sl, r4
cmp r0, #0
beq _0802202E
ldrh r0, [r1, #6]
movs r1, #0xa
bl __udivsi3
ldr r4, _08022178 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #0xa
ldr r6, _0802217C @ =gUnknown_08480E0C
adds r0, r0, r6
str r0, [r4]
ldr r0, _08022180 @ =0x06015DA0
str r0, [r4, #4]
ldr r5, _08022184 @ =0x80000020
str r5, [r4, #8]
ldr r0, [r4, #8]
mov r3, r8
ldrh r0, [r3, #6]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xa
adds r0, r0, r6
str r0, [r4]
ldr r0, _08022188 @ =0x06015E60
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
_0802202E:
ldrh r0, [r7]
cmp r0, #0
beq _08022094
mov r4, sl
ldr r0, [r4]
movs r6, #0xdb
lsls r6, r6, #1
adds r0, r0, r6
ldrh r0, [r0]
adds r0, #0x9c
strh r0, [r7, #2]
movs r0, #0x60
strh r0, [r7, #4]
movs r5, #0
ldr r6, _0802218C @ =gOamBuffer
ldr r0, _08022190 @ =0xFFFFFE00
mov r8, r0
_08022050:
lsls r4, r5, #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, _08022194 @ =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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _08022050
_08022094:
ldr r3, _08022168 @ =gMain
ldr r0, [r3, #0x44]
ldr r7, [r0, #0x20]
mov r4, sl
ldr r2, [r4]
ldr r6, _08022198 @ =0x000001A5
adds r0, r2, r6
movs r1, #0
ldrsb r1, [r0, r1]
rsbs r0, r1, #0
orrs r0, r1
lsrs r1, r0, #0x1f
ldrh r0, [r7]
cmp r0, #0
beq _0802214C
movs r3, #0xdb
lsls r3, r3, #1
adds r0, r2, r3
ldrh r0, [r0]
adds r0, #0x88
strh r0, [r7, #2]
movs r0, #0x58
strh r0, [r7, #4]
movs r5, #0
ldr r4, _0802218C @ =gOamBuffer
mov r8, r4
ldr r6, _0802219C @ =gUnknown_086B47DE
mov ip, r6
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #1
str r0, [sp, #8]
ldr r0, _08022190 @ =0xFFFFFE00
mov sb, r0
_080220D8:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r7, r0
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
ldr r4, [sp, #8]
adds r0, r0, r4
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r4
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r4
add r1, ip
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
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, _08022194 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #4
ble _080220D8
_0802214C:
ldr r3, _08022168 @ =gMain
ldr r0, [r3, #0x44]
ldr r7, [r0, #0x18]
ldrh r0, [r7]
cmp r0, #0
bne _0802215A
b _08022470
_0802215A:
movs r4, #0x2a
ldrsh r0, [r3, r4]
cmp r0, #0x13
bgt _080221A0
movs r0, #0xb4
b _080221A2
.align 2, 0
_08022168: .4byte gMain
_0802216C: .4byte gUnknown_086AD2DE
_08022170: .4byte gUnknown_020314E0
_08022174: .4byte gUnknown_086AD000
_08022178: .4byte 0x040000D4
_0802217C: .4byte gUnknown_08480E0C
_08022180: .4byte 0x06015DA0
_08022184: .4byte 0x80000020
_08022188: .4byte 0x06015E60
_0802218C: .4byte gOamBuffer
_08022190: .4byte 0xFFFFFE00
_08022194: .4byte 0x000001FF
_08022198: .4byte 0x000001A5
_0802219C: .4byte gUnknown_086B47DE
_080221A0:
movs r0, #0x56
_080221A2:
strh r0, [r7, #4]
mov r5, sp
ldr r4, _08022254 @ =gUnknown_086ADFC8
ldr r6, _08022258 @ =gMain
ldr r0, [r6, #0x4c]
movs r1, #0x1e
bl __umodsi3
movs r1, #5
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r4
ldrh r1, [r0]
rsbs r0, r1, #0
strh r0, [r5]
mov r0, sp
strh r1, [r0, #2]
add r1, sp, #4
ldrh r0, [r0]
strh r0, [r1]
mov r0, sp
ldrh r0, [r0, #2]
strh r0, [r1, #2]
mov r0, sl
ldr r2, [r0]
ldr r3, _0802225C @ =0x000001A5
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0802226C
movs r5, #0
movs r4, #0x28
adds r4, r4, r7
mov ip, r4
movs r6, #0x30
adds r6, r6, r7
mov sb, r6
ldr r6, _08022260 @ =gOamBuffer
ldr r0, _08022264 @ =0xFFFFFE00
mov r8, r0
_080221F8:
lsls r0, r5, #0x10
asrs r4, r0, #0x10
lsrs r0, r0, #0x1f
adds r0, r4, r0
asrs r0, r0, #1
lsls r1, r0, #1
adds r0, r1, r0
lsls r0, r0, #3
add r1, sp
ldrh r1, [r1]
adds r1, #0x24
adds r0, r0, r1
strh r0, [r7, #2]
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, _08022268 @ =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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _080221F8
b _0802233E
.align 2, 0
_08022254: .4byte gUnknown_086ADFC8
_08022258: .4byte gMain
_0802225C: .4byte 0x000001A5
_08022260: .4byte gOamBuffer
_08022264: .4byte 0xFFFFFE00
_08022268: .4byte 0x000001FF
_0802226C:
ldr r3, _080222EC @ =0x00000281
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
ble _080222FC
movs r5, #0
movs r4, #0x28
adds r4, r4, r7
mov ip, r4
movs r6, #0x30
adds r6, r6, r7
mov sb, r6
ldr r6, _080222F0 @ =gOamBuffer
ldr r0, _080222F4 @ =0xFFFFFE00
mov r8, r0
_0802228E:
lsls r0, r5, #0x10
asrs r4, r0, #0x10
lsrs r0, r0, #0x1f
adds r0, r4, r0
asrs r0, r0, #1
lsls r1, r0, #1
adds r0, r1, r0
lsls r0, r0, #3
add r1, sp
ldrh r1, [r1]
adds r1, #0x24
adds r0, r0, r1
strh r0, [r7, #2]
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, _080222F8 @ =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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _0802228E
b _0802233E
.align 2, 0
_080222EC: .4byte 0x00000281
_080222F0: .4byte gOamBuffer
_080222F4: .4byte 0xFFFFFE00
_080222F8: .4byte 0x000001FF
_080222FC:
movs r5, #0
movs r3, #0x28
adds r3, r3, r7
mov ip, r3
movs r4, #0x30
adds r4, r4, r7
mov sb, r4
ldr r4, _08022354 @ =gOamBuffer
ldr r6, _08022358 @ =0xFFFFFE00
mov r8, r6
movs r6, #0xb4
_08022312:
lsls r2, r5, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r5, r7, r0
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r4
ldrh r3, [r1, #2]
mov r0, r8
ands r0, r3
strh r0, [r1, #2]
ldrh r0, [r5]
lsls r0, r0, #3
adds r0, r0, r4
strb r6, [r0]
adds r2, #1
lsls r2, r2, #0x10
lsrs r5, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #3
ble _08022312
_0802233E:
mov r1, sl
ldr r0, [r1]
ldr r2, _0802235C @ =0x000001A5
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08022360
movs r0, #0xb4
b _08022376
.align 2, 0
_08022354: .4byte gOamBuffer
_08022358: .4byte 0xFFFFFE00
_0802235C: .4byte 0x000001A5
_08022360:
ldr r3, _08022370 @ =gMain
movs r4, #0x2a
ldrsh r0, [r3, r4]
cmp r0, #0x13
bgt _08022374
movs r0, #0xb4
b _08022376
.align 2, 0
_08022370: .4byte gMain
_08022374:
movs r0, #0x56
_08022376:
strh r0, [r7, #4]
movs r0, #0x30
strh r0, [r7, #2]
mov r6, sl
ldr r0, [r6]
movs r2, #0x97
lsls r2, r2, #2
adds r1, r0, r2
ldr r3, _080223D0 @ =0x0000025D
adds r0, r0, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bge _080223DC
mov r5, ip
ldrh r2, [r7, #0x28]
lsls r2, r2, #3
ldr r4, _080223D4 @ =gOamBuffer
adds r2, r2, r4
movs r6, #2
ldrsh r1, [r5, r6]
adds r1, #0x30
subs r3, #0x5e
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _080223D8 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r2, [r7, #0x28]
lsls r2, r2, #3
adds r2, r2, r4
ldrb r1, [r7, #4]
ldrb r5, [r5, #4]
adds r1, r1, r5
mov r4, sp
ldrb r0, [r4, #4]
adds r0, r0, r1
strb r0, [r2]
b _080223F6
.align 2, 0
_080223D0: .4byte 0x0000025D
_080223D4: .4byte gOamBuffer
_080223D8: .4byte 0xFFFFFE00
_080223DC:
ldrh r1, [r7, #0x28]
lsls r1, r1, #3
ldr r6, _08022448 @ =gOamBuffer
adds r1, r1, r6
ldrh r2, [r1, #2]
ldr r0, _0802244C @ =0xFFFFFE00
ands r0, r2
strh r0, [r1, #2]
ldrh r0, [r7, #0x28]
lsls r0, r0, #3
adds r0, r0, r6
movs r1, #0xb4
strb r1, [r0]
_080223F6:
mov r1, sl
ldr r0, [r1]
movs r2, #0x97
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08022454
mov r5, sb
ldrh r2, [r7, #0x30]
lsls r2, r2, #3
ldr r3, _08022448 @ =gOamBuffer
adds r2, r2, r3
movs r4, #2
ldrsh r1, [r5, r4]
movs r6, #2
ldrsh r0, [r7, r6]
adds r1, r1, r0
ldr r3, _08022450 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0802244C @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r2, [r7, #0x30]
lsls r2, r2, #3
ldr r4, _08022448 @ =gOamBuffer
adds r2, r2, r4
ldrb r1, [r7, #4]
ldrb r5, [r5, #4]
adds r1, r1, r5
mov r6, sp
ldrh r0, [r6, #6]
adds r0, r0, r1
strb r0, [r2]
b _08022470
.align 2, 0
_08022448: .4byte gOamBuffer
_0802244C: .4byte 0xFFFFFE00
_08022450: .4byte 0x000001FF
_08022454:
ldrh r1, [r7, #0x30]
lsls r1, r1, #3
ldr r0, _08022490 @ =gOamBuffer
adds r1, r1, r0
ldrh r2, [r1, #2]
ldr r0, _08022494 @ =0xFFFFFE00
ands r0, r2
strh r0, [r1, #2]
ldrh r0, [r7, #0x30]
lsls r0, r0, #3
ldr r1, _08022490 @ =gOamBuffer
adds r0, r0, r1
movs r1, #0xb4
strb r1, [r0]
_08022470:
ldr r2, _08022498 @ =gMain
ldr r0, [r2, #0x44]
ldr r7, [r0, #0x24]
ldrh r0, [r7]
cmp r0, #0
bne _0802247E
b _080225BE
_0802247E:
movs r0, #0x30
strh r0, [r7, #2]
movs r3, #0x2a
ldrsh r0, [r2, r3]
cmp r0, #0x13
bgt _0802249C
movs r0, #0xb4
b _0802249E
.align 2, 0
_08022490: .4byte gOamBuffer
_08022494: .4byte 0xFFFFFE00
_08022498: .4byte gMain
_0802249C:
movs r0, #0x58
_0802249E:
strh r0, [r7, #4]
mov r4, sl
ldr r1, [r4]
movs r6, #0xd3
lsls r6, r6, #1
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
ldr r2, _080224EC @ =gUnknown_086AD2DE
adds r0, r0, r2
ldrh r3, [r0]
cmp r3, #4
bne _080224F8
ldr r3, _080224F0 @ =0x000001AF
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, #0
beq _080224DC
movs r4, #0xdc
lsls r4, r4, #1
adds r0, r1, r4
movs r6, #0
ldrsh r0, [r0, r6]
movs r1, #5
bl __divsi3
lsls r0, r0, #0x10
cmp r0, #0
beq _08022522
_080224DC:
ldr r4, _080224F4 @ =gUnknown_086ADFD4
mov r1, sl
ldr r0, [r1]
movs r2, #0xdc
lsls r2, r2, #1
adds r0, r0, r2
b _08022544
.align 2, 0
_080224EC: .4byte gUnknown_086AD2DE
_080224F0: .4byte 0x000001AF
_080224F4: .4byte gUnknown_086ADFD4
_080224F8:
cmp r3, #3
bne _0802253C
movs r4, #0xd5
lsls r4, r4, #1
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08022526
movs r6, #0xdc
lsls r6, r6, #1
adds r0, r1, r6
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #5
bl __divsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _08022526
_08022522:
movs r1, #4
b _08022556
_08022526:
ldr r4, _08022538 @ =gUnknown_086ADFD4
mov r2, sl
ldr r0, [r2]
movs r3, #0xdc
lsls r3, r3, #1
adds r0, r0, r3
movs r6, #0
ldrsh r0, [r0, r6]
b _08022548
.align 2, 0
_08022538: .4byte gUnknown_086ADFD4
_0802253C:
ldr r4, _080225D0 @ =gUnknown_086ADFD4
movs r2, #0xdc
lsls r2, r2, #1
adds r0, r1, r2
_08022544:
movs r3, #0
ldrsh r0, [r0, r3]
_08022548:
movs r1, #5
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, r0, r4
ldrh r1, [r0]
_08022556:
ldr r2, _080225D4 @ =0x040000D4
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _080225D8 @ =gUnknown_0847FF0C
adds r0, r0, r1
str r0, [r2]
ldr r0, _080225DC @ =0x06016220
str r0, [r2, #4]
ldr r0, _080225E0 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r5, #0
ldr r6, _080225E4 @ =gOamBuffer
ldr r4, _080225E8 @ =0xFFFFFE00
mov r8, r4
_0802257A:
lsls r4, r5, #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, _080225EC @ =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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _0802257A
_080225BE:
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080225D0: .4byte gUnknown_086ADFD4
_080225D4: .4byte 0x040000D4
_080225D8: .4byte gUnknown_0847FF0C
_080225DC: .4byte 0x06016220
_080225E0: .4byte 0x80000180
_080225E4: .4byte gOamBuffer
_080225E8: .4byte 0xFFFFFE00
_080225EC: .4byte 0x000001FF
thumb_func_start sub_225F0
sub_225F0: @ 0x080225F0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r5, _08022680 @ =gMain
ldr r0, [r5, #0x44]
adds r0, #0x9c
ldr r7, [r0]
ldr r2, _08022684 @ =gUnknown_020314E0
ldr r3, [r2]
movs r1, #0xcb
lsls r1, r1, #1
adds r0, r3, r1
ldrh r4, [r0]
movs r6, #0xca
lsls r6, r6, #1
adds r0, r3, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #1
lsls r1, r0, #3
adds r1, r1, r0
adds r1, #0x13
mov sl, r2
cmp r4, r1
blt _0802262A
b _08022958
_0802262A:
cmp r4, #0
bne _08022690
movs r1, #0
movs r0, #1
strh r0, [r7]
ldr r2, _08022688 @ =0x00000193
adds r0, r3, r2
strb r1, [r0]
movs r2, #0
_0802263C:
mov r3, sl
ldr r4, [r3]
lsls r1, r2, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #1
movs r5, #0xcc
lsls r5, r5, #1
adds r0, r4, r5
adds r0, r0, r2
movs r5, #0
strh r5, [r0]
lsls r0, r1, #2
adds r3, r4, r0
movs r6, #0xce
lsls r6, r6, #1
adds r2, r3, r6
movs r0, #0x46
strh r0, [r2]
movs r0, #0xcf
lsls r0, r0, #1
adds r2, r3, r0
movs r0, #0xb4
strh r0, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #1
ble _0802263C
ldr r1, _0802268C @ =0x00000195
adds r0, r4, r1
strb r5, [r0]
b _08022908
.align 2, 0
_08022680: .4byte gMain
_08022684: .4byte gUnknown_020314E0
_08022688: .4byte 0x00000193
_0802268C: .4byte 0x00000195
_08022690:
adds r0, r3, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _080226B6
ldrb r0, [r3, #5]
cmp r0, #0
bne _080226AE
ldrh r1, [r5, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080226B6
_080226AE:
ldr r2, _0802279C @ =0x00000195
adds r1, r3, r2
movs r0, #1
strb r0, [r1]
_080226B6:
mov r3, sl
ldr r5, [r3]
ldr r4, _080227A0 @ =0x00000193
mov sb, r4
adds r6, r5, r4
movs r0, #0xca
lsls r0, r0, #1
mov r8, r0
adds r0, r5, r0
movs r1, #0
ldrsb r1, [r6, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
blt _080226D8
b _0802280E
_080226D8:
movs r1, #0xcb
lsls r1, r1, #1
adds r0, r5, r1
ldrh r0, [r0]
subs r4, r0, #1
adds r0, r4, #0
movs r1, #9
bl __modsi3
cmp r0, #0
beq _080226F0
b _0802280E
_080226F0:
ldr r2, _0802279C @ =0x00000195
adds r0, r5, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080227A4
adds r0, r4, #0
movs r1, #0x12
bl __modsi3
movs r1, #9
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r2, r0, #1
movs r3, #0xcc
lsls r3, r3, #1
adds r1, r5, r3
adds r1, r1, r2
movs r2, #0x11
strh r2, [r1]
lsls r0, r0, #2
adds r2, r5, r0
movs r4, #0xce
lsls r4, r4, #1
adds r1, r2, r4
movs r0, #0xbc
strh r0, [r1]
movs r5, #0xcf
lsls r5, r5, #1
adds r1, r2, r5
movs r0, #0x8c
strh r0, [r1]
movs r0, #0x7e
bl m4aSongNumStart
mov r6, sl
ldr r1, [r6]
movs r3, #0xc9
lsls r3, r3, #1
adds r2, r1, r3
mov r4, r8
adds r0, r1, r4
add r1, sb
ldrb r0, [r0]
ldrb r1, [r1]
subs r0, r0, r1
ldrb r5, [r2]
adds r0, r0, r5
strb r0, [r2]
ldr r0, [r6]
adds r1, r0, r3
ldrb r0, [r1]
cmp r0, #0x63
bls _08022766
movs r0, #0x63
strb r0, [r1]
_08022766:
mov r6, sl
ldr r2, [r6]
mov r0, r8
adds r3, r2, r0
movs r1, #0
ldrsb r1, [r3, r1]
mov r5, sb
adds r4, r2, r5
movs r0, #0
ldrsb r0, [r4, r0]
subs r1, r1, r0
movs r0, #0x64
muls r0, r1, r0
str r0, [r2, #0x3c]
movs r1, #0
ldrsb r1, [r3, r1]
lsls r0, r1, #3
adds r0, r0, r1
adds r0, #1
movs r6, #0xcb
lsls r6, r6, #1
adds r2, r2, r6
strh r0, [r2]
ldrb r0, [r3]
strb r0, [r4]
b _0802280E
.align 2, 0
_0802279C: .4byte 0x00000195
_080227A0: .4byte 0x00000193
_080227A4:
adds r0, r4, #0
movs r1, #0x12
bl __modsi3
movs r1, #9
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r2, r0, #1
movs r3, #0xcc
lsls r3, r3, #1
adds r1, r5, r3
adds r1, r1, r2
movs r2, #0x11
strh r2, [r1]
lsls r0, r0, #2
adds r2, r5, r0
movs r4, #0xce
lsls r4, r4, #1
adds r1, r2, r4
movs r0, #0xbc
strh r0, [r1]
movs r5, #0xcf
lsls r5, r5, #1
adds r1, r2, r5
movs r0, #0x8c
strh r0, [r1]
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
movs r0, #0x7e
bl m4aSongNumStart
mov r6, sl
ldr r1, [r6]
movs r2, #0xc9
lsls r2, r2, #1
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r6]
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0x63
bls _08022806
movs r0, #0x63
strb r0, [r1]
_08022806:
mov r0, sl
ldr r1, [r0]
movs r0, #0x64
str r0, [r1, #0x3c]
_0802280E:
movs r2, #0
ldr r1, _08022848 @ =gUnknown_086B481A
mov r8, r1
ldr r3, _0802284C @ =gOamBuffer
mov ip, r3
_08022818:
mov r5, sl
ldr r4, [r5]
lsls r1, r2, #0x10
asrs r3, r1, #0x10
lsls r0, r3, #2
adds r2, r4, r0
movs r6, #0xce
lsls r6, r6, #1
adds r0, r2, r6
ldrh r0, [r0]
strh r0, [r7, #2]
movs r0, #0xcf
lsls r0, r0, #1
adds r2, r2, r0
ldrh r0, [r2]
strh r0, [r7, #4]
movs r5, #0
ldrsh r0, [r2, r5]
mov sb, r1
cmp r0, #0xa0
ble _08022850
movs r0, #0
b _0802286A
.align 2, 0
_08022848: .4byte gUnknown_086B481A
_0802284C: .4byte gOamBuffer
_08022850:
lsls r1, r3, #1
movs r6, #0xcc
lsls r6, r6, #1
adds r0, r4, r6
adds r0, r0, r1
movs r2, #0
ldrsh r1, [r0, r2]
movs r0, #0x11
subs r0, r0, r1
lsrs r1, r0, #0x1f
adds r0, r0, r1
lsls r0, r0, #0xf
lsrs r0, r0, #0x10
_0802286A:
mov r3, sb
asrs r5, r3, #0x10
lsls r3, r5, #3
adds r3, #8
adds r3, r7, r3
ldrh r2, [r3]
lsls r2, r2, #3
add r2, ip
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #1
add r1, r8
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, [r3]
lsls r2, r2, #3
add r2, ip
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, _08022968 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
ldr r0, _0802296C @ =0xFFFFFE00
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r3]
lsls r1, r1, #3
add r1, ip
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
mov r4, sl
ldr r3, [r4]
lsls r1, r5, #1
subs r6, #0x67
adds r0, r3, r6
adds r1, r0, r1
ldrh r2, [r1]
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #0
ble _080228FA
subs r0, r2, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080228FA
lsls r0, r5, #2
adds r2, r3, r0
movs r5, #0xce
lsls r5, r5, #1
adds r1, r2, r5
movs r0, #0x46
strh r0, [r1]
adds r6, #6
adds r1, r2, r6
movs r0, #0xb4
strh r0, [r1]
_080228FA:
movs r0, #0x80
lsls r0, r0, #9
add r0, sb
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _08022818
_08022908:
mov r0, sl
ldr r3, [r0]
movs r2, #0xcb
lsls r2, r2, #1
adds r1, r3, r2
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldrh r2, [r1]
movs r4, #0xca
lsls r4, r4, #1
adds r3, r3, r4
movs r1, #0
ldrsb r1, [r3, r1]
subs r1, #1
lsls r0, r1, #3
adds r0, r0, r1
adds r0, #0x13
cmp r2, r0
bne _08022958
ldr r0, _08022970 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x9c
ldr r1, [r0]
movs r0, #0
strh r0, [r1]
strb r0, [r3]
mov r5, sl
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _08022958
ldr r6, _08022974 @ =0x000006DE
adds r1, r1, r6
movs r0, #0xaa
strh r0, [r1]
_08022958:
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
_08022968: .4byte 0x000001FF
_0802296C: .4byte 0xFFFFFE00
_08022970: .4byte gMain
_08022974: .4byte 0x000006DE
thumb_func_start sub_22978
sub_22978: @ 0x08022978
push {r4, r5, lr}
ldr r3, _08022A00 @ =gUnknown_020314E0
ldr r1, [r3]
movs r0, #0xb2
lsls r0, r0, #2
adds r2, r1, r0
movs r4, #0
movs r5, #0
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r2]
ldr r0, _08022A04 @ =0x000002CA
adds r2, r1, r0
movs r0, #0x82
lsls r0, r0, #4
strh r0, [r2]
ldr r0, _08022A08 @ =0x000002C3
adds r1, r1, r0
strb r4, [r1]
ldr r4, [r3]
movs r1, #0xb1
lsls r1, r1, #2
adds r0, r4, r1
strh r5, [r0]
ldr r0, _08022A0C @ =gMain
ldr r1, _08022A10 @ =0x00003DE8
adds r0, r0, r1
movs r2, #1
movs r1, #1
strh r1, [r0]
movs r1, #0xf6
lsls r1, r1, #1
adds r0, r4, r1
strb r2, [r0]
ldr r2, [r3]
movs r0, #0xfa
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0xf0
strh r0, [r1]
movs r0, #0xfb
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0xa0
strh r0, [r1]
adds r1, r2, #0
adds r1, #0xe4
movs r0, #3
strb r0, [r1]
ldr r1, _08022A14 @ =0x040000D4
ldr r0, _08022A18 @ =gUnknown_083A808C
str r0, [r1]
ldr r0, _08022A1C @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08022A20 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08022A24 @ =gUnknown_0848FD8C
str r0, [r1]
ldr r0, _08022A28 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08022A2C @ =0x80000650
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08022A00: .4byte gUnknown_020314E0
_08022A04: .4byte 0x000002CA
_08022A08: .4byte 0x000002C3
_08022A0C: .4byte gMain
_08022A10: .4byte 0x00003DE8
_08022A14: .4byte 0x040000D4
_08022A18: .4byte gUnknown_083A808C
_08022A1C: .4byte 0x050003C0
_08022A20: .4byte 0x80000010
_08022A24: .4byte gUnknown_0848FD8C
_08022A28: .4byte 0x06015800
_08022A2C: .4byte 0x80000650
thumb_func_start sub_22A30
sub_22A30: @ 0x08022A30
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r6, #0
ldr r7, _08022A68 @ =gUnknown_0200EEA8
ldr r1, _08022A6C @ =gUnknown_086ADFE2
ldr r4, _08022A70 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r5, _08022A74 @ =0x000002C3
adds r3, r2, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0xb1
lsls r1, r1, #2
adds r2, r2, r1
ldrh r1, [r2]
ldrh r0, [r0]
cmp r0, r1
bls _08022A78
adds r0, r1, #1
strh r0, [r2]
b _08022B2E
.align 2, 0
_08022A68: .4byte gUnknown_0200EEA8
_08022A6C: .4byte gUnknown_086ADFE2
_08022A70: .4byte gUnknown_020314E0
_08022A74: .4byte 0x000002C3
_08022A78:
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r1, [r4]
movs r2, #0xb1
lsls r2, r2, #2
adds r0, r1, r2
strh r6, [r0]
ldr r3, _08022C30 @ =0x000002C3
adds r1, r1, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x29
bne _08022AAE
movs r0, #0x28
strb r0, [r1]
strh r6, [r7]
ldr r0, [r4]
movs r1, #0xb4
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r0, [r4]
adds r0, #0xe4
movs r1, #0
strb r1, [r0]
_08022AAE:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08022AC4
movs r0, #0xa3
lsls r0, r0, #1
bl m4aSongNumStart
_08022AC4:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _08022AD8
ldr r0, _08022C34 @ =0x00000147
bl m4aSongNumStart
_08022AD8:
ldr r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xd
bne _08022AEE
movs r0, #0xa4
lsls r0, r0, #1
bl m4aSongNumStart
_08022AEE:
ldr r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x27
bne _08022B1C
movs r2, #0xfa
lsls r2, r2, #1
adds r0, r1, r2
strh r6, [r0]
movs r3, #0xfb
lsls r3, r3, #1
adds r0, r1, r3
strh r6, [r0]
ldr r1, _08022C38 @ =0x040000D4
ldr r0, _08022C3C @ =gUnknown_084FD18C
str r0, [r1]
ldr r0, _08022C40 @ =0x06011CE0
str r0, [r1, #4]
ldr r0, _08022C44 @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
_08022B1C:
ldr r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xe
bne _08022B2E
ldr r0, _08022C48 @ =0x001E8480
str r0, [r1, #0x3c]
_08022B2E:
ldr r0, _08022C4C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r5, _08022C30 @ =0x000002C3
adds r0, r1, r5
ldrb r0, [r0]
subs r0, #0xe
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x17
bhi _08022B5A
movs r2, #0xa4
lsls r2, r2, #2
adds r0, r1, r2
ldr r0, [r0]
movs r1, #7
bl __umodsi3
cmp r0, #0
bne _08022B5A
ldr r0, _08022C50 @ =0x00000149
bl m4aSongNumStart
_08022B5A:
ldr r0, _08022C4C @ =gUnknown_020314E0
ldr r4, [r0]
movs r3, #0xb2
lsls r3, r3, #2
adds r0, r4, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0x14
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #2]
ldr r1, _08022C54 @ =0x000002CA
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0x14
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #4]
ldr r1, _08022C58 @ =gUnknown_086ADFE2
ldr r3, _08022C30 @ =0x000002C3
adds r4, r4, r3
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r0, r0, r1
movs r2, #0
ldr r5, _08022C5C @ =gUnknown_086B28A0
mov sb, r5
ldr r6, _08022C60 @ =gOamBuffer
movs r3, #0
ldrsh r1, [r0, r3]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
mov ip, r0
ldr r5, _08022C64 @ =0xFFFFFE00
mov r8, r5
_08022BB6:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
adds r4, r7, r4
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, sb
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]
mov sl, r0
mov r5, sl
lsls r1, r5, #0x17
lsrs r1, r1, #0x17
movs r5, #2
ldrsh r0, [r7, r5]
adds r1, r1, r0
ldr r5, _08022C68 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
mov r0, r8
mov r5, sl
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
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 _08022BB6
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
_08022C30: .4byte 0x000002C3
_08022C34: .4byte 0x00000147
_08022C38: .4byte 0x040000D4
_08022C3C: .4byte gUnknown_084FD18C
_08022C40: .4byte 0x06011CE0
_08022C44: .4byte 0x80000100
_08022C48: .4byte 0x001E8480
_08022C4C: .4byte gUnknown_020314E0
_08022C50: .4byte 0x00000149
_08022C54: .4byte 0x000002CA
_08022C58: .4byte gUnknown_086ADFE2
_08022C5C: .4byte gUnknown_086B28A0
_08022C60: .4byte gOamBuffer
_08022C64: .4byte 0xFFFFFE00
_08022C68: .4byte 0x000001FF
thumb_func_start sub_22C6C
sub_22C6C: @ 0x08022C6C
push {r4, r5, r6, lr}
ldr r4, _08022D14 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r0, _08022D18 @ =0x000002C6
adds r1, r2, r0
movs r0, #0
strh r0, [r1]
movs r5, #0xb2
lsls r5, r5, #2
adds r1, r2, r5
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r1]
ldr r6, _08022D1C @ =0x000002CA
adds r1, r2, r6
ldr r0, _08022D20 @ =0x0000FFD8
strh r0, [r1]
movs r0, #0xb3
lsls r0, r0, #2
adds r1, r2, r0
ldr r0, _08022D24 @ =0x0000FFDC
strh r0, [r1]
ldr r0, _08022D28 @ =0x000002CE
adds r1, r2, r0
movs r0, #0x3c
strh r0, [r1]
ldr r0, _08022D2C @ =gMain
ldr r1, _08022D30 @ =0x00000B98
adds r0, r0, r1
movs r3, #1
movs r1, #1
strh r1, [r0]
movs r0, #0xf6
lsls r0, r0, #1
adds r2, r2, r0
strb r3, [r2]
ldr r4, [r4]
adds r5, r4, r5
movs r1, #0
ldrsh r0, [r5, r1]
movs r1, #0x14
bl __divsi3
ldr r5, _08022D34 @ =gUnknown_086AE088
ldrh r1, [r5]
subs r0, r0, r1
movs r2, #0xfa
lsls r2, r2, #1
adds r1, r4, r2
strh r0, [r1]
adds r6, r4, r6
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0x14
bl __divsi3
ldrh r1, [r5, #2]
subs r0, r0, r1
movs r2, #0xfb
lsls r2, r2, #1
adds r1, r4, r2
strh r0, [r1]
adds r4, #0xe4
movs r0, #2
strb r0, [r4]
ldr r1, _08022D38 @ =0x040000D4
ldr r0, _08022D3C @ =gUnknown_083A806C
str r0, [r1]
ldr r0, _08022D40 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08022D44 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08022D48 @ =gUnknown_083A704C
str r0, [r1]
ldr r0, _08022D4C @ =0x06015800
str r0, [r1, #4]
ldr r0, _08022D50 @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08022D14: .4byte gUnknown_020314E0
_08022D18: .4byte 0x000002C6
_08022D1C: .4byte 0x000002CA
_08022D20: .4byte 0x0000FFD8
_08022D24: .4byte 0x0000FFDC
_08022D28: .4byte 0x000002CE
_08022D2C: .4byte gMain
_08022D30: .4byte 0x00000B98
_08022D34: .4byte gUnknown_086AE088
_08022D38: .4byte 0x040000D4
_08022D3C: .4byte gUnknown_083A806C
_08022D40: .4byte 0x050003C0
_08022D44: .4byte 0x80000010
_08022D48: .4byte gUnknown_083A704C
_08022D4C: .4byte 0x06015800
_08022D50: .4byte 0x80000800
thumb_func_start sub_22D54
sub_22D54: @ 0x08022D54
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, _08022E38 @ =gUnknown_020314E0
ldr r5, [r4]
ldr r0, _08022E3C @ =0x000002C6
mov sb, r0
adds r0, r5, r0
ldrh r6, [r0]
adds r0, r6, #0
movs r1, #0x38
bl __umodsi3
lsls r0, r0, #0x10
lsrs r7, r0, #0x13
ldr r1, _08022E40 @ =gUnknown_0200BC58
mov r8, r1
mov sl, r4
cmp r6, #0x81
bls _08022D82
b _08022EA0
_08022D82:
adds r0, r6, #0
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _08022D96
movs r0, #0xb8
bl m4aSongNumStart
_08022D96:
mov r2, sl
ldr r1, [r2]
mov r3, sb
adds r2, r1, r3
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
movs r5, #0xb2
lsls r5, r5, #2
adds r2, r1, r5
movs r3, #0xb3
lsls r3, r3, #2
adds r0, r1, r3
ldrh r0, [r0]
ldrh r5, [r2]
adds r0, r0, r5
strh r0, [r2]
ldr r0, _08022E44 @ =0x000002CA
adds r2, r1, r0
adds r3, #2
adds r4, r1, r3
ldrh r0, [r4]
ldrh r5, [r2]
adds r0, r0, r5
strh r0, [r2]
ldrh r6, [r4]
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #7
bgt _08022DE2
ldr r0, _08022E48 @ =0xFFFFF468
add r0, r8
ldr r0, [r0, #0x4c]
movs r1, #3
bl __umodsi3
cmp r0, #0
bne _08022DE6
_08022DE2:
subs r0, r6, #1
strh r0, [r4]
_08022DE6:
ldr r0, _08022E38 @ =gUnknown_020314E0
ldr r6, [r0]
ldr r2, _08022E3C @ =0x000002C6
adds r1, r6, r2
ldrh r1, [r1]
mov sl, r0
cmp r1, #0x4d
bhi _08022E50
movs r3, #0xb2
lsls r3, r3, #2
adds r0, r6, r3
movs r5, #0
ldrsh r0, [r0, r5]
movs r1, #0x14
bl __divsi3
ldr r1, _08022E4C @ =gUnknown_086AE088
lsls r5, r7, #0x10
lsrs r4, r5, #0xe
adds r4, r4, r1
ldrh r1, [r4]
subs r0, r0, r1
movs r7, #0xfa
lsls r7, r7, #1
adds r1, r6, r7
strh r0, [r1]
ldr r1, _08022E44 @ =0x000002CA
adds r0, r6, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0x14
bl __divsi3
ldrh r1, [r4, #2]
subs r0, r0, r1
movs r3, #0xfb
lsls r3, r3, #1
adds r1, r6, r3
strh r0, [r1]
b _08022E64
.align 2, 0
_08022E38: .4byte gUnknown_020314E0
_08022E3C: .4byte 0x000002C6
_08022E40: .4byte gUnknown_0200BC58
_08022E44: .4byte 0x000002CA
_08022E48: .4byte 0xFFFFF468
_08022E4C: .4byte gUnknown_086AE088
_08022E50:
movs r5, #0xfa
lsls r5, r5, #1
adds r0, r6, r5
movs r1, #0
strh r1, [r0]
movs r2, #0xfb
lsls r2, r2, #1
adds r0, r6, r2
strh r1, [r0]
lsls r5, r7, #0x10
_08022E64:
mov r3, sl
ldr r1, [r3]
ldr r7, _08022E88 @ =0x000002C6
adds r0, r1, r7
ldrh r0, [r0]
cmp r0, #0x4e
bne _08022E76
ldr r0, _08022E8C @ =0x000186A0
str r0, [r1, #0x3c]
_08022E76:
ldr r1, _08022E90 @ =0x040000D4
ldr r0, _08022E94 @ =gUnknown_084FD18C
str r0, [r1]
ldr r0, _08022E98 @ =0x06011CE0
str r0, [r1, #4]
ldr r0, _08022E9C @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
b _08022EBA
.align 2, 0
_08022E88: .4byte 0x000002C6
_08022E8C: .4byte 0x000186A0
_08022E90: .4byte 0x040000D4
_08022E94: .4byte gUnknown_084FD18C
_08022E98: .4byte 0x06011CE0
_08022E9C: .4byte 0x80000100
_08022EA0:
movs r2, #0
mov r0, r8
strh r2, [r0]
movs r3, #0xb4
lsls r3, r3, #2
adds r1, r5, r3
movs r0, #2
strb r0, [r1]
mov r5, sl
ldr r0, [r5]
adds r0, #0xe4
strb r2, [r0]
lsls r5, r7, #0x10
_08022EBA:
mov r7, sl
ldr r4, [r7]
movs r1, #0xb2
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0x14
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
mov r3, r8
strh r0, [r3, #2]
ldr r7, _08022F90 @ =0x000002CA
adds r0, r4, r7
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0x14
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
mov r2, r8
strh r0, [r2, #4]
movs r2, #0
ldr r3, _08022F94 @ =gOamBuffer
mov ip, r3
ldr r7, _08022F98 @ =gUnknown_086B4850
mov sl, r7
asrs r1, r5, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r6, r0, #1
ldr r0, _08022F9C @ =0xFFFFFE00
mov sb, r0
_08022F08:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
add r4, r8
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
adds r0, r0, r6
add r0, sl
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r6
add r0, sl
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r6
add r1, sl
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
ldrh r5, [r2, #2]
lsls r1, r5, #0x17
lsrs r1, r1, #0x17
mov r7, r8
movs r5, #2
ldrsh r0, [r7, r5]
adds r1, r1, r0
ldr r7, _08022FA0 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sb
ldrh r5, [r2, #2]
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, ip
mov r7, r8
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, #4
ble _08022F08
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
_08022F90: .4byte 0x000002CA
_08022F94: .4byte gOamBuffer
_08022F98: .4byte gUnknown_086B4850
_08022F9C: .4byte 0xFFFFFE00
_08022FA0: .4byte 0x000001FF
thumb_func_start sub_22FA4
sub_22FA4: @ 0x08022FA4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r4, _0802301C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _08023020 @ =0x0000020E
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
movs r0, #9
bl sub_1C7F4
ldr r0, [r4]
adds r0, #0xe4
movs r1, #0xe
strb r1, [r0]
ldr r0, _08023024 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x10]
movs r0, #1
strh r0, [r1]
movs r2, #0
mov r8, r4
ldr r7, _08023028 @ =gUnknown_086A3707
mov ip, r7
ldr r4, _0802302C @ =0x040000D4
ldr r0, _08023030 @ =0x06015800
mov sb, r0
ldr r6, _08023034 @ =0x80000020
_08022FE0:
lsls r2, r2, #0x10
asrs r3, r2, #0x10
mov r1, r8
ldr r5, [r1]
movs r7, #0xb3
lsls r7, r7, #3
adds r0, r5, r7
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 _0802303C
ldr r0, _08023038 @ =gUnknown_083FFD4C
str r0, [r4]
lsls r0, r3, #6
add r0, sb
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08023020 @ =0x0000020E
adds r1, r5, r0
ldrh r0, [r1]
adds r0, #4
strh r0, [r1]
b _08023052
.align 2, 0
_0802301C: .4byte gUnknown_020314E0
_08023020: .4byte 0x0000020E
_08023024: .4byte gMain
_08023028: .4byte gUnknown_086A3707
_0802302C: .4byte 0x040000D4
_08023030: .4byte 0x06015800
_08023034: .4byte 0x80000020
_08023038: .4byte gUnknown_083FFD4C
_0802303C:
ldrb r0, [r1]
subs r0, #0x41
lsls r0, r0, #6
ldr r1, _0802306C @ =gUnknown_083FF04C
adds r0, r0, r1
str r0, [r4]
lsls r0, r3, #6
add r0, sb
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
_08023052:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r2, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _08022FE0
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802306C: .4byte gUnknown_083FF04C
thumb_func_start sub_23070
sub_23070: @ 0x08023070
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _080230F4 @ =gMain
ldr r0, [r0, #0x44]
ldr r6, [r0, #0x10]
movs r0, #0
ldr r1, _080230F8 @ =gUnknown_020314E0
mov r8, r1
ldr r7, _080230FC @ =gOamBuffer
ldr r2, _08023100 @ =0xFFFFFE00
mov ip, r2
_08023088:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r4, r5, #3
mov r3, r8
ldr r1, [r3]
ldr r2, _08023104 @ =0x0000020E
adds r0, r1, r2
ldrh r0, [r0]
adds r0, #0x98
movs r3, #0xdb
lsls r3, r3, #1
adds r2, r1, r3
adds r0, r4, r0
ldrh r2, [r2]
adds r0, r0, r2
strh r0, [r6, #2]
movs r0, #0x60
strh r0, [r6, #4]
adds r4, #8
adds r4, r6, r4
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08023108 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #9
ble _08023088
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080230F4: .4byte gMain
_080230F8: .4byte gUnknown_020314E0
_080230FC: .4byte gOamBuffer
_08023100: .4byte 0xFFFFFE00
_08023104: .4byte 0x0000020E
_08023108: .4byte 0x000001FF
thumb_func_start sub_2310C
sub_2310C: @ 0x0802310C
ldr r0, _08023124 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x10]
movs r2, #0
movs r0, #0
strh r0, [r1]
ldr r0, _08023128 @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0xe4
strb r2, [r0]
bx lr
.align 2, 0
_08023124: .4byte gMain
_08023128: .4byte gUnknown_020314E0
thumb_func_start sub_2312C
sub_2312C: @ 0x0802312C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r4, _080231B8 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r2, _080231BC @ =0x0000020E
adds r1, r0, r2
movs r2, #0
movs r3, #0
strh r3, [r1]
ldr r7, _080231C0 @ =0x000006DB
adds r0, r0, r7
strb r2, [r0]
ldr r0, [r4]
movs r1, #0x84
lsls r1, r1, #2
adds r0, r0, r1
strh r3, [r0]
movs r0, #3
movs r1, #0
bl sub_1C7F4
ldr r0, [r4]
adds r0, #0xe4
movs r1, #0xd
strb r1, [r0]
ldr r0, _080231C4 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x10]
movs r0, #1
strh r0, [r1]
movs r5, #0
mov r8, r4
ldr r2, _080231C8 @ =gUnknown_086A3707
mov ip, r2
ldr r3, _080231CC @ =0x040000D4
ldr r7, _080231D0 @ =0x06015800
mov sb, r7
ldr r6, _080231D4 @ =0x80000020
_0802317C:
lsls r0, r5, #0x10
asrs r2, r0, #0x10
mov r0, r8
ldr r4, [r0]
movs r1, #0xb3
lsls r1, r1, #3
adds r0, r4, r1
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r2, r0
mov r7, ip
adds r1, r0, r7
ldrb r0, [r1]
cmp r0, #0x20
bne _080231DC
ldr r0, _080231D8 @ =gUnknown_083FFD4C
str r0, [r3]
lsls r0, r2, #6
add r0, sb
str r0, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
ldr r0, _080231BC @ =0x0000020E
adds r1, r4, r0
ldrh r0, [r1]
adds r0, #4
strh r0, [r1]
b _080231F2
.align 2, 0
_080231B8: .4byte gUnknown_020314E0
_080231BC: .4byte 0x0000020E
_080231C0: .4byte 0x000006DB
_080231C4: .4byte gMain
_080231C8: .4byte gUnknown_086A3707
_080231CC: .4byte 0x040000D4
_080231D0: .4byte 0x06015800
_080231D4: .4byte 0x80000020
_080231D8: .4byte gUnknown_083FFD4C
_080231DC:
ldrb r0, [r1]
subs r0, #0x41
lsls r0, r0, #6
ldr r1, _08023230 @ =gUnknown_083FF04C
adds r0, r0, r1
str r0, [r3]
lsls r0, r2, #6
add r0, sb
str r0, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
_080231F2:
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, #9
ble _0802317C
ldr r0, _08023234 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x14]
movs r0, #1
strh r0, [r1]
movs r5, #0
ldr r2, _08023238 @ =gUnknown_086ACFE0
mov r8, r2
ldr r3, _0802323C @ =0x040000D4
ldr r6, _08023240 @ =0x06015800
ldr r4, _08023244 @ =0x80000020
_08023218:
lsls r0, r5, #0x10
asrs r2, r0, #0x10
lsls r0, r2, #1
mov r7, r8
adds r1, r0, r7
movs r7, #0
ldrsh r0, [r1, r7]
cmp r0, #0x20
bne _0802324C
ldr r0, _08023248 @ =gUnknown_083FFD4C
b _08023258
.align 2, 0
_08023230: .4byte gUnknown_083FF04C
_08023234: .4byte gMain
_08023238: .4byte gUnknown_086ACFE0
_0802323C: .4byte 0x040000D4
_08023240: .4byte 0x06015800
_08023244: .4byte 0x80000020
_08023248: .4byte gUnknown_083FFD4C
_0802324C:
movs r7, #0
ldrsh r0, [r1, r7]
subs r0, #0x41
lsls r0, r0, #6
ldr r1, _080232EC @ =gUnknown_083FF04C
adds r0, r0, r1
_08023258:
str r0, [r3]
adds r0, r2, #0
adds r0, #0xa
lsls r0, r0, #6
adds r0, r0, r6
str r0, [r3, #4]
str r4, [r3, #8]
ldr r0, [r3, #8]
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, #9
ble _08023218
movs r5, #0
ldr r2, _080232F0 @ =gUnknown_020314E0
mov ip, r2
ldr r7, _080232F4 @ =0x00000212
movs r6, #0
movs r4, #0x8a
lsls r4, r4, #2
_08023286:
mov r0, ip
ldr r2, [r0]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r3, r1, #1
adds r0, r2, r7
adds r0, r0, r3
strh r3, [r0]
lsls r0, r1, #2
adds r2, r2, r0
adds r2, r2, r4
strh r6, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #9
ble _08023286
movs r5, #0
ldr r1, _080232F0 @ =gUnknown_020314E0
mov ip, r1
movs r7, #0
ldr r6, _080232F8 @ =0x000013D4
ldr r4, _080232FC @ =0x000013E8
_080232B6:
mov r2, ip
ldr r3, [r2]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r2, r3, r6
adds r2, r2, r0
adds r0, r1, #0
adds r0, #0xa
lsls r0, r0, #1
strh r0, [r2]
lsls r0, r1, #2
adds r3, r3, r0
adds r3, r3, r4
strh r7, [r3]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #9
ble _080232B6
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080232EC: .4byte gUnknown_083FF04C
_080232F0: .4byte gUnknown_020314E0
_080232F4: .4byte 0x00000212
_080232F8: .4byte 0x000013D4
_080232FC: .4byte 0x000013E8
thumb_func_start sub_23300
sub_23300: @ 0x08023300
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r0, _080233E4 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _080233E8 @ =0x000006C4
adds r1, r1, r2
movs r4, #0
strb r4, [r1]
ldr r1, [r0]
movs r3, #0x84
lsls r3, r3, #2
adds r1, r1, r3
ldrh r2, [r1]
adds r3, r2, #0
mov r8, r0
cmp r3, #0
bne _080233FC
adds r0, r2, #1
strh r0, [r1]
ldr r1, _080233EC @ =gMain
ldr r0, [r1, #0x44]
ldr r7, [r0, #0x10]
strh r4, [r7, #2]
movs r0, #0xb4
strh r0, [r7, #4]
movs r5, #0
ldr r6, _080233F0 @ =gOamBuffer
ldr r4, _080233F4 @ =0xFFFFFE00
mov r8, r4
_08023342:
lsls r4, r5, #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, _080233F8 @ =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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #9
ble _08023342
ldr r3, _080233EC @ =gMain
ldr r0, [r3, #0x44]
ldr r7, [r0, #0x14]
movs r0, #0
strh r0, [r7, #2]
movs r0, #0xb4
strh r0, [r7, #4]
movs r5, #0
ldr r6, _080233F0 @ =gOamBuffer
ldr r4, _080233F4 @ =0xFFFFFE00
mov r8, r4
_0802339C:
lsls r4, r5, #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, _080233F8 @ =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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #9
ble _0802339C
b _08023934
.align 2, 0
_080233E4: .4byte gUnknown_020314E0
_080233E8: .4byte 0x000006C4
_080233EC: .4byte gMain
_080233F0: .4byte gOamBuffer
_080233F4: .4byte 0xFFFFFE00
_080233F8: .4byte 0x000001FF
_080233FC:
cmp r3, #0xc2
bls _08023402
b _0802385C
_08023402:
adds r0, r2, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x9b
bls _08023410
b _08023688
_08023410:
ldr r1, _0802343C @ =gMain
ldr r0, [r1, #0x44]
ldr r7, [r0, #0x10]
movs r5, #0
ldr r3, _08023440 @ =gOamBuffer
mov sb, r3
ldr r4, _08023444 @ =0x00000637
mov sl, r4
_08023420:
mov r0, r8
ldr r3, [r0]
lsls r0, r5, #0x10
asrs r2, r0, #0x10
lsls r1, r2, #1
ldr r4, _08023448 @ =0x00000212
adds r0, r3, r4
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #0
beq _0802344C
subs r0, #1
strh r0, [r1]
b _0802347C
.align 2, 0
_0802343C: .4byte gMain
_08023440: .4byte gOamBuffer
_08023444: .4byte 0x00000637
_08023448: .4byte 0x00000212
_0802344C:
lsls r0, r2, #2
adds r0, r3, r0
movs r1, #0x8a
lsls r1, r1, #2
adds r4, r0, r1
movs r2, #0
ldrsh r1, [r4, r2]
movs r6, #0xc8
lsls r6, r6, #3
subs r1, r6, r1
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
movs r1, #0x64
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
strh r1, [r4]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, sl
ble _0802347C
strh r6, [r4]
_0802347C:
lsls r6, r5, #0x10
asrs r6, r6, #0x10
lsls r2, r6, #3
adds r4, r2, #0
adds r4, #0x50
mov r3, r8
ldr r5, [r3]
adds r0, r5, #0
adds r0, #0x58
ldrh r0, [r0]
subs r4, r4, r0
lsls r0, r6, #2
adds r0, r5, r0
movs r1, #0x8a
lsls r1, r1, #2
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
str r2, [sp]
bl __divsi3
subs r0, #0xa0
ldr r3, _08023530 @ =0x0000020E
adds r1, r5, r3
subs r4, r4, r0
ldrh r1, [r1]
adds r4, r4, r1
strh r4, [r7, #2]
ldr r4, _08023534 @ =0x000006E6
adds r5, r5, r4
ldrh r0, [r5]
adds r0, #0x24
strh r0, [r7, #4]
ldr r2, [sp]
adds r2, #8
adds r5, r7, r2
ldrh r3, [r5]
lsls r3, r3, #3
add r3, sb
movs r0, #2
ldrsh r2, [r5, r0]
movs r1, #2
ldrsh r0, [r7, r1]
adds r2, r2, r0
ldr r4, _08023538 @ =0x000001FF
adds r0, r4, #0
ands r2, r0
ldrh r0, [r3, #2]
ldr r4, _0802353C @ =0xFFFFFE00
adds r1, r4, #0
ands r0, r1
orrs r0, r2
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r6, #1
lsls r6, r6, #0x10
lsrs r5, r6, #0x10
asrs r6, r6, #0x10
cmp r6, #9
ble _08023420
ldr r5, _08023540 @ =gMain
ldr r0, [r5, #0x44]
ldr r7, [r0, #0x14]
movs r5, #0
ldr r0, _08023544 @ =0x00000637
mov sl, r0
ldr r1, _08023548 @ =gOamBuffer
mov sb, r1
_08023512:
mov r2, r8
ldr r4, [r2]
lsls r2, r5, #0x10
asrs r3, r2, #0x10
lsls r1, r3, #1
ldr r5, _0802354C @ =0x000013D4
adds r0, r4, r5
adds r1, r0, r1
ldrh r0, [r1]
adds r6, r2, #0
cmp r0, #0
beq _08023550
subs r0, #1
strh r0, [r1]
b _0802357E
.align 2, 0
_08023530: .4byte 0x0000020E
_08023534: .4byte 0x000006E6
_08023538: .4byte 0x000001FF
_0802353C: .4byte 0xFFFFFE00
_08023540: .4byte gMain
_08023544: .4byte 0x00000637
_08023548: .4byte gOamBuffer
_0802354C: .4byte 0x000013D4
_08023550:
lsls r0, r3, #2
adds r0, r4, r0
ldr r1, _0802366C @ =0x000013E8
adds r4, r0, r1
movs r2, #0
ldrsh r1, [r4, r2]
movs r5, #0xc8
lsls r5, r5, #3
subs r1, r5, r1
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
movs r1, #0x64
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
strh r1, [r4]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, sl
ble _0802357E
strh r5, [r4]
_0802357E:
asrs r6, r6, #0x10
lsls r2, r6, #3
adds r4, r2, #0
adds r4, #0x50
mov r3, r8
ldr r5, [r3]
adds r0, r5, #0
adds r0, #0x58
ldrh r0, [r0]
subs r4, r4, r0
lsls r0, r6, #2
adds r0, r5, r0
ldr r1, _0802366C @ =0x000013E8
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
str r2, [sp]
bl __divsi3
subs r0, #0xa0
subs r4, r4, r0
strh r4, [r7, #2]
ldr r4, _08023670 @ =0x000006E6
adds r5, r5, r4
ldrh r0, [r5]
adds r0, #0x34
strh r0, [r7, #4]
ldr r2, [sp]
adds r2, #8
adds r5, r7, r2
ldrh r3, [r5]
lsls r3, r3, #3
add r3, sb
movs r0, #2
ldrsh r2, [r5, r0]
movs r1, #2
ldrsh r0, [r7, r1]
adds r2, r2, r0
ldr r4, _08023674 @ =0x000001FF
adds r0, r4, #0
ands r2, r0
ldrh r0, [r3, #2]
ldr r4, _08023678 @ =0xFFFFFE00
adds r1, r4, #0
ands r0, r1
orrs r0, r2
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r6, #1
lsls r6, r6, #0x10
lsrs r5, r6, #0x10
asrs r6, r6, #0x10
cmp r6, #9
ble _08023512
mov r5, r8
ldr r0, [r5]
movs r1, #0x84
lsls r1, r1, #2
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0x9b
beq _0802360A
b _08023934
_0802360A:
movs r0, #0
ldr r7, _0802367C @ =0x00000212
movs r6, #0
movs r4, #0x8a
lsls r4, r4, #2
_08023614:
ldr r2, [r5]
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r3, r1, #1
adds r0, r2, r7
adds r0, r0, r3
strh r3, [r0]
lsls r0, r1, #2
adds r2, r2, r0
adds r2, r2, r4
strh r6, [r2]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #9
ble _08023614
movs r0, #0
ldr r7, _08023680 @ =gUnknown_020314E0
movs r6, #0
ldr r5, _08023684 @ =0x000013D4
ldr r4, _0802366C @ =0x000013E8
_08023640:
ldr r3, [r7]
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r2, r3, r5
adds r2, r2, r0
adds r0, r1, #0
adds r0, #0xa
lsls r0, r0, #1
strh r0, [r2]
lsls r0, r1, #2
adds r3, r3, r0
adds r3, r3, r4
strh r6, [r3]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #9
ble _08023640
b _08023934
.align 2, 0
_0802366C: .4byte 0x000013E8
_08023670: .4byte 0x000006E6
_08023674: .4byte 0x000001FF
_08023678: .4byte 0xFFFFFE00
_0802367C: .4byte 0x00000212
_08023680: .4byte gUnknown_020314E0
_08023684: .4byte 0x000013D4
_08023688:
ldr r1, _080236B0 @ =gMain
ldr r0, [r1, #0x44]
ldr r7, [r0, #0x10]
movs r5, #0
ldr r2, _080236B4 @ =gOamBuffer
mov sb, r2
_08023694:
mov r3, r8
ldr r2, [r3]
lsls r0, r5, #0x10
asrs r4, r0, #0x10
lsls r1, r4, #1
ldr r3, _080236B8 @ =0x00000212
adds r0, r2, r3
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #0
beq _080236BC
subs r0, #1
strh r0, [r1]
b _080236E2
.align 2, 0
_080236B0: .4byte gMain
_080236B4: .4byte gOamBuffer
_080236B8: .4byte 0x00000212
_080236BC:
lsls r4, r4, #2
adds r4, r2, r4
movs r0, #0x8a
lsls r0, r0, #2
adds r4, r4, r0
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xfa
lsls r1, r1, #3
subs r1, r1, r0
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
movs r1, #0x64
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
strh r1, [r4]
_080236E2:
lsls r6, r5, #0x10
asrs r6, r6, #0x10
lsls r2, r6, #3
adds r4, r2, #0
adds r4, #0x50
mov r3, r8
ldr r5, [r3]
adds r0, r5, #0
adds r0, #0x58
ldrh r0, [r0]
subs r4, r4, r0
lsls r0, r6, #2
adds r0, r5, r0
movs r1, #0x8a
lsls r1, r1, #2
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
str r2, [sp]
bl __divsi3
ldr r3, _08023790 @ =0x0000020E
adds r1, r5, r3
subs r4, r4, r0
ldrh r1, [r1]
adds r4, r4, r1
strh r4, [r7, #2]
ldr r4, _08023794 @ =0x000006E6
adds r5, r5, r4
ldrh r0, [r5]
adds r0, #0x24
strh r0, [r7, #4]
ldr r2, [sp]
adds r2, #8
adds r5, r7, r2
ldrh r3, [r5]
lsls r3, r3, #3
add r3, sb
movs r0, #2
ldrsh r2, [r5, r0]
movs r1, #2
ldrsh r0, [r7, r1]
adds r2, r2, r0
ldr r4, _08023798 @ =0x000001FF
adds r0, r4, #0
ands r2, r0
ldrh r0, [r3, #2]
ldr r4, _0802379C @ =0xFFFFFE00
adds r1, r4, #0
ands r0, r1
orrs r0, r2
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r6, #1
lsls r6, r6, #0x10
lsrs r5, r6, #0x10
asrs r6, r6, #0x10
cmp r6, #9
ble _08023694
ldr r5, _080237A0 @ =gMain
ldr r0, [r5, #0x44]
ldr r7, [r0, #0x14]
movs r5, #0
ldr r0, _080237A4 @ =gOamBuffer
mov sb, r0
_08023772:
mov r1, r8
ldr r3, [r1]
lsls r2, r5, #0x10
asrs r4, r2, #0x10
lsls r1, r4, #1
ldr r5, _080237A8 @ =0x000013D4
adds r0, r3, r5
adds r1, r0, r1
ldrh r0, [r1]
adds r6, r2, #0
cmp r0, #0
beq _080237AC
subs r0, #1
strh r0, [r1]
b _080237D0
.align 2, 0
_08023790: .4byte 0x0000020E
_08023794: .4byte 0x000006E6
_08023798: .4byte 0x000001FF
_0802379C: .4byte 0xFFFFFE00
_080237A0: .4byte gMain
_080237A4: .4byte gOamBuffer
_080237A8: .4byte 0x000013D4
_080237AC:
lsls r4, r4, #2
adds r4, r3, r4
ldr r0, _0802384C @ =0x000013E8
adds r4, r4, r0
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xfa
lsls r1, r1, #3
subs r1, r1, r0
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
movs r1, #0x64
bl __divsi3
ldrh r1, [r4]
adds r1, r1, r0
strh r1, [r4]
_080237D0:
asrs r6, r6, #0x10
lsls r2, r6, #3
adds r4, r2, #0
adds r4, #0x50
mov r3, r8
ldr r5, [r3]
adds r0, r5, #0
adds r0, #0x58
ldrh r0, [r0]
subs r4, r4, r0
lsls r0, r6, #2
adds r0, r5, r0
ldr r1, _0802384C @ =0x000013E8
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
str r2, [sp]
bl __divsi3
subs r4, r4, r0
strh r4, [r7, #2]
ldr r4, _08023850 @ =0x000006E6
adds r5, r5, r4
ldrh r0, [r5]
adds r0, #0x34
strh r0, [r7, #4]
ldr r2, [sp]
adds r2, #8
adds r5, r7, r2
ldrh r3, [r5]
lsls r3, r3, #3
add r3, sb
movs r0, #2
ldrsh r2, [r5, r0]
movs r1, #2
ldrsh r0, [r7, r1]
adds r2, r2, r0
ldr r4, _08023854 @ =0x000001FF
adds r0, r4, #0
ands r2, r0
ldrh r0, [r3, #2]
ldr r4, _08023858 @ =0xFFFFFE00
adds r1, r4, #0
ands r0, r1
orrs r0, r2
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r6, #1
lsls r6, r6, #0x10
lsrs r5, r6, #0x10
asrs r6, r6, #0x10
cmp r6, #9
ble _08023772
b _08023934
.align 2, 0
_0802384C: .4byte 0x000013E8
_08023850: .4byte 0x000006E6
_08023854: .4byte 0x000001FF
_08023858: .4byte 0xFFFFFE00
_0802385C:
ldr r0, _08023944 @ =gMain
ldr r1, [r0, #0x44]
ldr r7, [r1, #0x10]
ldrh r1, [r7]
cmp r1, #0
beq _080238BA
strh r4, [r7, #2]
movs r0, #0xb4
strh r0, [r7, #4]
movs r5, #0
ldr r6, _08023948 @ =gOamBuffer
ldr r0, _0802394C @ =0xFFFFFE00
mov sb, r0
_08023876:
lsls r4, r5, #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, _08023950 @ =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 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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #9
ble _08023876
_080238BA:
ldr r3, _08023944 @ =gMain
ldr r0, [r3, #0x44]
ldr r7, [r0, #0x14]
ldrh r0, [r7]
cmp r0, #0
beq _0802391A
movs r0, #0
strh r0, [r7, #2]
movs r0, #0xb4
strh r0, [r7, #4]
movs r5, #0
ldr r6, _08023948 @ =gOamBuffer
ldr r4, _0802394C @ =0xFFFFFE00
mov sb, r4
_080238D6:
lsls r4, r5, #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, _08023950 @ =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 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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #9
ble _080238D6
_0802391A:
ldr r3, _08023944 @ =gMain
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x10]
movs r2, #0
movs r1, #0
strh r1, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x14]
strh r1, [r0]
mov r4, r8
ldr r0, [r4]
adds r0, #0xe4
strb r2, [r0]
_08023934:
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
_08023944: .4byte gMain
_08023948: .4byte gOamBuffer
_0802394C: .4byte 0xFFFFFE00
_08023950: .4byte 0x000001FF
thumb_func_start sub_23954
sub_23954: @ 0x08023954
push {r4, lr}
ldr r2, _08023998 @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #0xf6
lsls r1, r1, #1
adds r0, r0, r1
movs r3, #0
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
movs r4, #0xf7
lsls r4, r4, #1
adds r0, r0, r4
strb r3, [r0]
ldr r0, [r2]
ldr r1, _0802399C @ =0x000001ED
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r2]
adds r4, #2
adds r1, r0, r4
movs r4, #0
strh r3, [r1]
ldr r1, _080239A0 @ =0x000002DA
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r2]
subs r1, #1
adds r0, r0, r1
strb r4, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08023998: .4byte gUnknown_020314E0
_0802399C: .4byte 0x000001ED
_080239A0: .4byte 0x000002DA
thumb_func_start sub_239A4
sub_239A4: @ 0x080239A4
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 r8, r0
movs r7, #0
movs r6, #0
ldr r1, _080239DC @ =gUnknown_0200D638
mov sb, r1
mov ip, r6
ldr r1, _080239E0 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xf6
lsls r2, r2, #1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bhi _08023A22
lsls r0, r0, #2
ldr r1, _080239E4 @ =_080239E8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080239DC: .4byte gUnknown_0200D638
_080239E0: .4byte gUnknown_020314E0
_080239E4: .4byte _080239E8
_080239E8: @ jump table
.4byte _08023A22 @ case 0
.4byte _08023A22 @ case 1
.4byte _08023A00 @ case 2
.4byte _08023A06 @ case 3
.4byte _08023A10 @ case 4
.4byte _08023A1A @ case 5
_08023A00:
movs r3, #4
mov r8, r3
b _08023A0A
_08023A06:
movs r4, #8
mov r8, r4
_08023A0A:
movs r7, #4
movs r6, #3
b _08023A22
_08023A10:
movs r6, #0xc
mov r8, r6
movs r7, #0xc
movs r6, #5
b _08023A22
_08023A1A:
movs r0, #0x21
mov r8, r0
movs r7, #0
movs r6, #0
_08023A22:
ldr r1, _08023AD4 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #1
adds r1, r0, r2
ldr r5, _08023AD8 @ =0x000001ED
adds r2, r0, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
movs r0, #0
ldrsb r0, [r2, r0]
cmp r1, r0
beq _08023A9A
ldr r3, _08023ADC @ =gUnknown_086AD2EE
lsls r0, r0, #3
adds r1, r3, #4
adds r0, r0, r1
ldr r2, _08023AE0 @ =0x040000D4
movs r4, #0
ldrsh r1, [r0, r4]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08023AE4 @ =gUnknown_084FB68C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08023AE8 @ =0x060122A0
str r0, [r2, #4]
ldr r0, _08023AEC @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, _08023AD4 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
adds r3, #6
adds r0, r0, r3
movs r3, #0
ldrsh r0, [r0, r3]
lsls r0, r0, #9
ldr r1, _08023AF0 @ =gUnknown_084FD18C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08023AF4 @ =0x06011CE0
str r0, [r2, #4]
ldr r0, _08023AF8 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r4, _08023AD4 @ =gUnknown_020314E0
ldr r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
movs r2, #0xf7
lsls r2, r2, #1
adds r1, r1, r2
strb r0, [r1]
_08023A9A:
ldr r3, _08023AD4 @ =gUnknown_020314E0
ldr r2, [r3]
movs r4, #0xf6
lsls r4, r4, #1
mov sl, r4
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _08023AB2
b _08023C06
_08023AB2:
ldr r0, _08023ADC @ =gUnknown_086AD2EE
adds r3, r2, r5
movs r1, #0
ldrsb r1, [r3, r1]
lsls r1, r1, #3
adds r0, #2
adds r1, r1, r0
movs r0, #0xf8
lsls r0, r0, #1
adds r4, r2, r0
ldrh r2, [r4]
ldrh r0, [r1]
cmp r0, r2
bls _08023AFC
adds r0, r2, #1
strh r0, [r4]
b _08023BEE
.align 2, 0
_08023AD4: .4byte gUnknown_020314E0
_08023AD8: .4byte 0x000001ED
_08023ADC: .4byte gUnknown_086AD2EE
_08023AE0: .4byte 0x040000D4
_08023AE4: .4byte gUnknown_084FB68C
_08023AE8: .4byte 0x060122A0
_08023AEC: .4byte 0x80000240
_08023AF0: .4byte gUnknown_084FD18C
_08023AF4: .4byte 0x06011CE0
_08023AF8: .4byte 0x80000100
_08023AFC:
ldrb r0, [r3]
adds r0, #1
movs r2, #0
strb r0, [r3]
ldr r3, _08023C94 @ =gUnknown_020314E0
ldr r1, [r3]
movs r4, #0xf8
lsls r4, r4, #1
adds r0, r1, r4
strh r2, [r0]
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, r8
blt _08023B22
strb r7, [r1]
ldr r0, [r3]
add r0, sl
strb r6, [r0]
_08023B22:
ldr r6, _08023C94 @ =gUnknown_020314E0
ldr r0, [r6]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x12
bne _08023B36
bl sub_32484
_08023B36:
ldr r1, _08023C94 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x13
bne _08023B66
bl sub_325E0
ldr r0, _08023C98 @ =gMain
ldrb r0, [r0, #2]
cmp r0, #3
beq _08023B66
ldr r2, _08023C94 @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r0, r3
movs r4, #0
ldrsh r0, [r0, r4]
movs r1, #1
bl SaveFile_SetPokedexFlags
_08023B66:
ldr r5, _08023C94 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r4, _08023C9C @ =0x000001ED
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
bne _08023B7C
bl sub_28BFC
_08023B7C:
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
beq _08023B8E
cmp r0, #0x1b
bne _08023B9E
_08023B8E:
movs r6, #0xf8
lsls r6, r6, #1
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0
bne _08023B9E
bl m4aMPlayAllStop
_08023B9E:
ldr r0, _08023C94 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08023C9C @ =0x000001ED
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bne _08023BC2
movs r3, #0xf8
lsls r3, r3, #1
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0
bne _08023BC2
movs r0, #0x16
bl m4aSongNumStart
_08023BC2:
ldr r5, _08023C94 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r4, _08023C9C @ =0x000001ED
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1d
bne _08023BDA
movs r0, #5
bl sub_19B64
_08023BDA:
ldr r0, [r5]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1c
bne _08023BEE
movs r0, #0x92
bl m4aSongNumStart
_08023BEE:
ldr r2, _08023CA0 @ =gUnknown_086AD2EE
ldr r1, _08023C94 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r4, _08023C9C @ =0x000001ED
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
adds r0, r0, r2
ldrh r0, [r0]
mov ip, r0
_08023C06:
ldr r6, _08023C94 @ =gUnknown_020314E0
ldr r3, [r6]
adds r0, r3, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x58
subs r0, r0, r1
movs r1, #0xf4
lsls r1, r1, #1
adds r2, r3, r1
strh r0, [r2]
adds r0, r3, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x90
subs r0, r0, r1
movs r6, #0xf5
lsls r6, r6, #1
adds r4, r3, r6
strh r0, [r4]
movs r1, #0xfa
lsls r1, r1, #1
adds r0, r3, r1
ldrh r0, [r0]
ldrh r2, [r2]
adds r0, r0, r2
mov r2, sb
strh r0, [r2, #2]
adds r6, #2
adds r0, r3, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08023CC4
subs r1, #7
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x20
bne _08023CA4
movs r2, #0xf8
lsls r2, r2, #1
adds r1, r3, r2
ldrh r0, [r1]
cmp r0, #0xd0
bls _08023CA4
adds r1, r0, #0
movs r0, #0x80
lsls r0, r0, #1
subs r0, r0, r1
cmp r0, #0
bge _08023C74
adds r0, #0xf
_08023C74:
asrs r0, r0, #4
ldr r1, _08023C98 @ =gMain
adds r0, #1
lsls r0, r0, #1
ldr r1, [r1, #0x4c]
ands r1, r0
cmp r1, #0
beq _08023CC4
movs r6, #0xfb
lsls r6, r6, #1
adds r0, r3, r6
ldrh r0, [r0]
ldrh r4, [r4]
adds r0, r0, r4
b _08023CBA
.align 2, 0
_08023C94: .4byte gUnknown_020314E0
_08023C98: .4byte gMain
_08023C9C: .4byte 0x000001ED
_08023CA0: .4byte gUnknown_086AD2EE
_08023CA4:
ldr r3, _08023CC0 @ =gUnknown_020314E0
ldr r0, [r3]
movs r4, #0xf5
lsls r4, r4, #1
adds r1, r0, r4
movs r6, #0xfb
lsls r6, r6, #1
adds r0, r0, r6
ldrh r0, [r0]
ldrh r1, [r1]
adds r0, r0, r1
_08023CBA:
mov r1, sb
strh r0, [r1, #4]
b _08023CCA
.align 2, 0
_08023CC0: .4byte gUnknown_020314E0
_08023CC4:
movs r0, #0xc8
mov r2, sb
strh r0, [r2, #4]
_08023CCA:
movs r2, #0
mov r3, ip
lsls r1, r3, #0x10
ldr r7, _08023DFC @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov sl, r0
_08023CDC:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
mov r4, sb
adds r5, r4, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
ldr r6, _08023E00 @ =gUnknown_086B4D4E
adds r0, r0, r6
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 r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
movs r0, #1
lsls r0, r0, #2
str r0, [sp]
ldrb r2, [r1, #5]
movs r4, #0xd
rsbs r4, r4, #0
mov r8, r4
mov r0, r8
ands r0, r2
ldr r6, [sp]
orrs r0, r6
strb r0, [r1, #5]
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
mov ip, r1
mov r1, sb
movs r6, #2
ldrsh r0, [r1, r6]
mov r6, ip
adds r1, r6, r0
ldr r6, _08023E04 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
ldr r0, _08023E08 @ =0xFFFFFE00
mov ip, r0
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
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 _08023CDC
ldr r6, _08023E0C @ =gUnknown_0200D918
mov sb, r6
ldr r1, _08023E10 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xf4
lsls r2, r2, #1
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r6, #2]
ldr r0, [r1]
movs r3, #0xf5
lsls r3, r3, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r6, #4]
movs r2, #0
ldr r7, _08023DFC @ =gOamBuffer
mov sl, r8
mov r8, ip
_08023D92:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
ldr r6, _08023E14 @ =gUnknown_0200D920
adds r5, r0, r6
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r2, [r1, #5]
mov r0, sl
ands r0, r2
ldr r2, [sp]
orrs r0, r2
strb r0, [r1, #5]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r7
movs r6, #2
ldrsh r1, [r5, r6]
mov r2, sb
movs r6, #2
ldrsh r0, [r2, r6]
adds r1, r1, r0
ldr r2, _08023E04 @ =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
mov r3, sb
ldrb r0, [r3, #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, #3
ble _08023D92
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
_08023DFC: .4byte gOamBuffer
_08023E00: .4byte gUnknown_086B4D4E
_08023E04: .4byte 0x000001FF
_08023E08: .4byte 0xFFFFFE00
_08023E0C: .4byte gUnknown_0200D918
_08023E10: .4byte gUnknown_020314E0
_08023E14: .4byte gUnknown_0200D920
thumb_func_start sub_23E18
sub_23E18: @ 0x08023E18
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r0, #1
str r0, [sp]
ldr r1, _08023F00 @ =gUnknown_0200D860
mov sl, r1
ldr r5, _08023F04 @ =0xFFFFD860
add r5, sl
ldr r0, [r5, #0x4c]
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r7, _08023F08 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r2, _08023F0C @ =0x00000746
mov sb, r2
add r0, sb
movs r3, #0
mov r8, r3
mov r6, r8
strb r6, [r0]
ldr r0, [r7]
movs r1, #0xb6
lsls r1, r1, #2
adds r0, r0, r1
mov r2, sp
ldrb r2, [r2]
strb r2, [r0]
ldr r6, [r7]
ldr r3, _08023F10 @ =0x000002DA
adds r0, r6, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08023F30
ldr r5, _08023F14 @ =gUnknown_086AE0B4
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #6
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
adds r0, r0, r5
ldrh r1, [r0]
ldr r2, _08023F0C @ =0x00000746
adds r0, r6, r2
strb r1, [r0]
ldr r5, [r7]
ldr r2, _08023F18 @ =gUnknown_086AE0A4
ldr r3, _08023F10 @ =0x000002DA
adds r1, r5, r3
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0]
movs r6, #0xb5
lsls r6, r6, #2
adds r3, r5, r6
strh r0, [r3]
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0, #2]
ldr r7, _08023F1C @ =0x000002D6
adds r2, r5, r7
strh r0, [r2]
adds r1, r5, #0
adds r1, #0x58
ldrh r0, [r3]
ldrh r1, [r1]
subs r0, r0, r1
mov r1, sl
strh r0, [r1, #2]
adds r1, r5, #0
adds r1, #0x5a
ldrh r0, [r2]
ldrh r1, [r1]
subs r0, r0, r1
mov r2, sl
strh r0, [r2, #4]
adds r0, r4, #0
movs r1, #6
bl __modsi3
lsls r0, r0, #0x10
cmp r0, #0
beq _08023EDE
b _08024226
_08023EDE:
ldr r2, _08023F20 @ =0x040000D4
mov r3, sb
adds r0, r5, r3
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08023F24 @ =gUnknown_08449D8C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08023F28 @ =0x06013300
str r0, [r2, #4]
ldr r0, _08023F2C @ =0x80000140
str r0, [r2, #8]
ldr r0, [r2, #8]
b _08024226
.align 2, 0
_08023F00: .4byte gUnknown_0200D860
_08023F04: .4byte 0xFFFFD860
_08023F08: .4byte gUnknown_020314E0
_08023F0C: .4byte 0x00000746
_08023F10: .4byte 0x000002DA
_08023F14: .4byte gUnknown_086AE0B4
_08023F18: .4byte gUnknown_086AE0A4
_08023F1C: .4byte 0x000002D6
_08023F20: .4byte 0x040000D4
_08023F24: .4byte gUnknown_08449D8C
_08023F28: .4byte 0x06013300
_08023F2C: .4byte 0x80000140
_08023F30:
cmp r0, #3
beq _08023F36
b _080241D4
_08023F36:
movs r1, #0xb4
lsls r1, r1, #2
adds r0, r6, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _08024004
movs r2, #0xf6
lsls r2, r2, #1
adds r4, r6, r2
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #1
bne _08023FCA
movs r3, #2
strb r3, [r4]
ldr r0, [r7]
add r0, sb
mov r6, sp
ldrb r6, [r6]
strb r6, [r0]
ldr r2, _08023FEC @ =0x040000D4
ldr r4, [r7]
mov r1, sb
adds r0, r4, r1
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08023FF0 @ =gUnknown_08449D8C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08023FF4 @ =0x06013300
str r0, [r2, #4]
ldr r0, _08023FF8 @ =0x80000140
str r0, [r2, #8]
ldr r0, [r2, #8]
ldrb r0, [r5, #0xf]
movs r1, #1
orrs r0, r1
strb r0, [r5, #0xf]
adds r0, r4, #0
adds r0, #0xea
movs r2, #0
mov r6, r8
strh r6, [r0]
adds r1, r4, #0
adds r1, #0xec
movs r0, #0x3c
strh r0, [r1]
subs r1, #4
movs r0, #0x48
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe6
strh r6, [r0]
adds r0, #8
strh r3, [r0]
adds r0, #4
strb r2, [r0]
ldr r0, [r7]
adds r0, #0xfa
mov r1, sp
ldrb r1, [r1]
strb r1, [r0]
ldr r0, [r7]
adds r0, #0xfb
strb r2, [r0]
ldr r0, [r7]
ldr r2, _08023FFC @ =0x000002DE
adds r0, r0, r2
movs r1, #0x30
strh r1, [r0]
_08023FCA:
ldr r0, [r7]
ldr r3, _08024000 @ =0x000002D9
adds r1, r0, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne _08023FDA
b _080240FA
_08023FDA:
mov r6, r8
strb r6, [r1]
ldr r0, [r7]
ldr r7, _08023FFC @ =0x000002DE
adds r0, r0, r7
movs r1, #0x30
strh r1, [r0]
b _080240FA
.align 2, 0
_08023FEC: .4byte 0x040000D4
_08023FF0: .4byte gUnknown_08449D8C
_08023FF4: .4byte 0x06013300
_08023FF8: .4byte 0x80000140
_08023FFC: .4byte 0x000002DE
_08024000: .4byte 0x000002D9
_08024004:
ldr r0, _0802407C @ =0x000002DE
adds r2, r6, r0
ldrh r0, [r2]
cmp r0, #0
bne _080240A8
movs r5, #0xb8
lsls r5, r5, #2
adds r0, r6, r5
ldrh r0, [r0]
cmp r0, #0x1e
bne _0802406A
mov r1, r8
strb r1, [r6, #0x1f]
ldr r1, [r7]
movs r4, #0
movs r0, #0x3c
strh r0, [r1, #0x26]
ldr r2, _08024080 @ =0x0000132C
adds r1, r1, r2
ldr r2, [r1]
movs r0, #0x14
strh r0, [r2, #0x30]
ldr r2, [r1]
movs r0, #0xc8
strh r0, [r2, #0x32]
ldr r2, [r1]
movs r0, #0x58
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0xa3
strh r0, [r2, #0x12]
ldr r0, [r1]
mov r3, r8
strh r3, [r0, #6]
ldr r2, [r1]
movs r6, #0x10
ldrsh r0, [r2, r6]
lsls r0, r0, #1
strh r0, [r2, #0x28]
ldr r1, [r1]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
movs r0, #0xb9
bl m4aSongNumStart
ldr r0, [r7]
ldr r3, _08024084 @ =0x000005FA
adds r0, r0, r3
strb r4, [r0]
_0802406A:
ldr r0, [r7]
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, #0
beq _08024088
subs r0, #1
strh r0, [r1]
b _080240FA
.align 2, 0
_0802407C: .4byte 0x000002DE
_08024080: .4byte 0x0000132C
_08024084: .4byte 0x000005FA
_08024088:
bl sub_23954
ldr r0, [r7]
ldr r6, _080240A4 @ =0x000002DA
adds r0, r0, r6
mov r1, r8
strb r1, [r0]
ldr r0, [r7]
movs r2, #0xb4
lsls r2, r2, #2
adds r0, r0, r2
strb r1, [r0]
b _080240FA
.align 2, 0
_080240A4: .4byte 0x000002DA
_080240A8:
ldr r3, _08024184 @ =0x0000132C
adds r4, r6, r3
ldr r1, [r4]
movs r0, #0x58
strh r0, [r1, #0x10]
ldr r5, [r4]
ldrh r0, [r2]
movs r1, #3
bl __udivsi3
movs r1, #0xa3
subs r1, r1, r0
strh r1, [r5, #0x12]
ldr r0, [r4]
mov r7, r8
strh r7, [r0, #6]
ldr r1, [r4]
movs r2, #0x10
ldrsh r0, [r1, r2]
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]
movs r7, #0x10
ldrsh r0, [r1, r7]
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r4]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r3, _08024188 @ =0x000005FA
adds r0, r6, r3
mov r6, sp
ldrb r6, [r6]
strb r6, [r0]
_080240FA:
ldr r6, _0802418C @ =gUnknown_020314E0
ldr r7, [r6]
ldr r1, _08024190 @ =gUnknown_086AE0A4
ldr r0, _08024194 @ =0x000002DA
adds r0, r0, r7
mov r8, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0]
movs r2, #0xb5
lsls r2, r2, #2
adds r5, r7, r2
strh r0, [r5]
mov r3, r8
movs r4, #0
ldrsb r4, [r3, r4]
lsls r4, r4, #2
adds r4, r4, r1
ldr r1, _08024198 @ =0x000002DE
adds r0, r7, r1
ldrh r0, [r0]
movs r1, #3
bl __udivsi3
ldrh r1, [r4, #2]
subs r1, r1, r0
ldr r3, _0802419C @ =0x000002D6
adds r2, r7, r3
strh r1, [r2]
adds r1, r7, #0
adds r1, #0x58
ldrh r0, [r5]
ldrh r1, [r1]
subs r0, r0, r1
mov r1, sl
strh r0, [r1, #2]
adds r1, r7, #0
adds r1, #0x5a
ldrh r0, [r2]
ldrh r1, [r1]
subs r0, r0, r1
mov r2, sl
strh r0, [r2, #4]
movs r0, #0x13
ldrsb r0, [r7, r0]
cmp r0, #2
bgt _080241AE
mov r3, r8
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #3
bne _080241A0
movs r1, #0xb4
lsls r1, r1, #2
adds r0, r7, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
beq _080241A0
movs r2, #0xe5
lsls r2, r2, #3
adds r1, r7, r2
movs r0, #1
b _080241B6
.align 2, 0
_08024184: .4byte 0x0000132C
_08024188: .4byte 0x000005FA
_0802418C: .4byte gUnknown_020314E0
_08024190: .4byte gUnknown_086AE0A4
_08024194: .4byte 0x000002DA
_08024198: .4byte 0x000002DE
_0802419C: .4byte 0x000002D6
_080241A0:
ldr r0, [r6]
movs r3, #0xe5
lsls r3, r3, #3
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
b _080241B8
_080241AE:
movs r0, #0xe5
lsls r0, r0, #3
adds r1, r7, r0
movs r0, #0
_080241B6:
strb r0, [r1]
_080241B8:
ldr r0, [r6]
ldr r1, _080241D0 @ =0x000002DE
adds r6, r0, r1
ldrh r0, [r6]
cmp r0, #0
beq _08024226
subs r0, #1
strh r0, [r6]
movs r2, #2
str r2, [sp]
b _08024226
.align 2, 0
_080241D0: .4byte 0x000002DE
_080241D4:
movs r3, #0xf6
lsls r3, r3, #1
adds r0, r6, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _0802420C
movs r1, #0xe5
lsls r1, r1, #3
adds r0, r6, r1
mov r2, r8
strb r2, [r0]
ldr r0, [r7]
adds r0, r0, r3
movs r1, #4
strb r1, [r0]
ldr r0, [r7]
adds r3, #1
adds r1, r0, r3
movs r0, #8
strb r0, [r1]
ldr r0, [r7]
movs r6, #0xf8
lsls r6, r6, #1
adds r0, r0, r6
mov r1, r8
strh r1, [r0]
_0802420C:
ldr r0, [r7]
movs r2, #0xb5
lsls r2, r2, #2
adds r1, r0, r2
mov r3, r8
strh r3, [r1]
ldr r6, _080242A4 @ =0x000002D6
adds r0, r0, r6
strh r3, [r0]
mov r7, sl
strh r3, [r7, #2]
movs r0, #0xa0
strh r0, [r7, #4]
_08024226:
movs r0, #0
ldr r6, _080242A8 @ =gOamBuffer
ldr r1, [sp]
lsls r1, r1, #2
mov ip, r1
movs r2, #0xd
rsbs r2, r2, #0
mov sb, r2
ldr r3, _080242AC @ =0xFFFFFE00
mov r8, r3
_0802423A:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r4, r5, #3
adds r4, #8
add r4, sl
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
mov r0, sb
ands r0, r2
mov r7, ip
orrs r0, r7
strb r0, [r1, #5]
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r6
movs r0, #2
ldrsh r1, [r4, r0]
mov r2, sl
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _080242B0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
mov r3, sl
ldrb r0, [r3, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #1
ble _0802423A
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
_080242A4: .4byte 0x000002D6
_080242A8: .4byte gOamBuffer
_080242AC: .4byte 0xFFFFFE00
_080242B0: .4byte 0x000001FF
thumb_func_start sub_242B4
sub_242B4: @ 0x080242B4
push {r4, r5, lr}
ldr r0, _080242C8 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _080242D0
ldr r0, _080242CC @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xb4
lsls r1, r1, #2
b _080242D6
.align 2, 0
_080242C8: .4byte gMain
_080242CC: .4byte gUnknown_020314E0
_080242D0:
ldr r0, _0802431C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _08024320 @ =0x00000343
_080242D6:
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r5, _0802431C @ =gUnknown_020314E0
ldr r0, [r5]
ldr r1, _08024324 @ =0x000005A5
adds r0, r0, r1
movs r4, #0
strb r4, [r0]
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r5]
ldr r1, _08024328 @ =0x000006C4
adds r0, r0, r1
strb r4, [r0]
movs r2, #0
ldr r5, _0802432C @ =0x0000071D
_080242FC:
ldr r0, _0802431C @ =gUnknown_020314E0
ldr r3, [r0]
ldr r0, _08024330 @ =0x00000723
adds r1, r3, r0
lsls r0, r2, #0x10
asrs r2, r0, #0x10
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r4, r0, #0
cmp r2, r1
bge _08024334
adds r0, r3, r5
adds r0, r0, r2
movs r1, #1
b _0802433A
.align 2, 0
_0802431C: .4byte gUnknown_020314E0
_08024320: .4byte 0x00000343
_08024324: .4byte 0x000005A5
_08024328: .4byte 0x000006C4
_0802432C: .4byte 0x0000071D
_08024330: .4byte 0x00000723
_08024334:
adds r0, r3, r5
adds r0, r0, r2
movs r1, #0
_0802433A:
strb r1, [r0]
movs r1, #0x80
lsls r1, r1, #9
adds r0, r4, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _080242FC
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_24350
sub_24350: @ 0x08024350
push {r4, r5, lr}
ldr r4, _0802439C @ =gUnknown_020314E0
ldr r0, [r4]
movs r3, #0
strb r3, [r0, #0x17]
ldr r1, [r4]
movs r5, #0
strh r3, [r1, #0x18]
ldr r0, _080243A0 @ =0x00000724
adds r2, r1, r0
subs r0, #0x1c
strh r0, [r2]
ldr r0, _080243A4 @ =0x000005A5
adds r1, r1, r0
strb r5, [r1]
ldr r2, [r4]
movs r1, #0xfc
lsls r1, r1, #1
adds r0, r2, r1
strh r3, [r0]
adds r1, #2
adds r0, r2, r1
strh r3, [r0]
ldr r0, _080243A8 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _080243B0
movs r3, #0xfe
lsls r3, r3, #1
adds r1, r2, r3
ldr r0, _080243AC @ =0x000002EE
str r0, [r1]
subs r0, #0xee
adds r1, r2, r0
movs r0, #0x82
lsls r0, r0, #3
b _080243C4
.align 2, 0
_0802439C: .4byte gUnknown_020314E0
_080243A0: .4byte 0x00000724
_080243A4: .4byte 0x000005A5
_080243A8: .4byte gMain
_080243AC: .4byte 0x000002EE
_080243B0:
movs r3, #0xfe
lsls r3, r3, #1
adds r1, r2, r3
movs r0, #0xf5
lsls r0, r0, #3
str r0, [r1]
movs r0, #0x80
lsls r0, r0, #2
adds r1, r2, r0
subs r0, #0xd4
_080243C4:
str r0, [r1]
ldr r0, [r4]
movs r1, #0x81
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #0
strb r2, [r0]
ldr r0, [r4]
ldr r3, _080243FC @ =0x00000206
adds r1, r0, r3
movs r3, #0
strh r2, [r1]
movs r4, #0xfc
lsls r4, r4, #1
adds r1, r0, r4
strh r2, [r1]
adds r4, #2
adds r1, r0, r4
strh r2, [r1]
ldr r4, _08024400 @ =0x000005AA
adds r1, r0, r4
strh r2, [r1]
ldr r1, _08024404 @ =0x000005A9
adds r0, r0, r1
strb r3, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080243FC: .4byte 0x00000206
_08024400: .4byte 0x000005AA
_08024404: .4byte 0x000005A9
thumb_func_start sub_24408
sub_24408: @ 0x08024408
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
ldr r2, _08024440 @ =gMain
ldr r0, [r2, #0x44]
adds r0, #0xa4
ldr r0, [r0]
mov sb, r0
movs r0, #1
mov sl, r0
ldr r1, _08024444 @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
bls _08024434
bl _080252F6
_08024434:
lsls r0, r0, #2
ldr r1, _08024448 @ =_0802444C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08024440: .4byte gMain
_08024444: .4byte gUnknown_020314E0
_08024448: .4byte _0802444C
_0802444C: @ jump table
.4byte _08024470 @ case 0
.4byte _080244A0 @ case 1
.4byte _08024784 @ case 2
.4byte _08024AB4 @ case 3
.4byte _08024EFC @ case 4
.4byte _080250E4 @ case 5
.4byte _08025208 @ case 6
.4byte _08025294 @ case 7
.4byte _080252B8 @ case 8
_08024470:
ldr r1, _08024494 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08024498 @ =0x000006C4
adds r0, r0, r2
movs r1, #3
strb r1, [r0]
ldr r3, _0802449C @ =gMain
ldr r0, [r3, #0x44]
adds r0, #0xa4
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
ldr r4, _08024494 @ =gUnknown_020314E0
ldr r1, [r4]
ldrb r0, [r1, #0x17]
adds r0, #1
bl _080252F4
.align 2, 0
_08024494: .4byte gUnknown_020314E0
_08024498: .4byte 0x000006C4
_0802449C: .4byte gMain
_080244A0:
ldr r3, _080244D0 @ =gUnknown_086AD52C
ldr r5, _080244D4 @ =gUnknown_020314E0
ldr r2, [r5]
movs r6, #0x81
lsls r6, r6, #2
adds r4, r2, r6
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r3, #2
adds r0, r0, r1
movs r7, #0
ldrsh r0, [r0, r7]
ldr r7, _080244D8 @ =0x00000206
adds r2, r2, r7
ldrh r1, [r2]
cmp r0, r1
ble _080244DC
adds r0, r1, #1
strh r0, [r2]
b _080245FE
.align 2, 0
_080244D0: .4byte gUnknown_086AD52C
_080244D4: .4byte gUnknown_020314E0
_080244D8: .4byte 0x00000206
_080244DC:
ldrb r0, [r4]
adds r0, #1
movs r5, #0
strb r0, [r4]
ldr r0, _0802459C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r4, _080245A0 @ =0x00000206
adds r2, r1, r4
strh r5, [r2]
ldr r4, _080245A4 @ =gMain
ldrb r0, [r4, #4]
cmp r0, #0
bne _080245D4
adds r1, r1, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xd
ble _08024520
movs r0, #0
strb r0, [r1]
ldr r0, _0802459C @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #3
strb r0, [r1, #0x17]
ldr r2, _0802459C @ =gUnknown_020314E0
ldr r1, [r2]
movs r3, #0xfc
lsls r3, r3, #1
adds r0, r1, r3
strh r5, [r0]
movs r4, #0xfd
lsls r4, r4, #1
adds r0, r1, r4
strh r5, [r0]
_08024520:
ldr r5, _0802459C @ =gUnknown_020314E0
ldr r1, [r5]
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bne _0802453E
adds r0, r1, r7
ldrh r0, [r0]
cmp r0, #0
bne _0802453E
movs r0, #0x15
bl m4aSongNumStart
_0802453E:
ldr r4, _0802459C @ =gUnknown_020314E0
ldr r3, [r4]
movs r5, #0x81
lsls r5, r5, #2
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bne _08024576
movs r6, #0xa7
lsls r6, r6, #2
adds r1, r3, r6
movs r0, #0x8c
strh r0, [r1]
ldr r2, _080245A8 @ =gUnknown_086A3700
movs r7, #0xb3
lsls r7, r7, #3
adds r0, r3, r7
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrh r0, [r0]
movs r1, #0
bl sub_528DC
_08024576:
ldr r2, [r4]
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bne _080245B8
movs r1, #0xfc
lsls r1, r1, #1
adds r0, r2, r1
ldr r1, _080245AC @ =0x0000FFF8
strh r1, [r0]
movs r3, #0xfd
lsls r3, r3, #1
adds r1, r2, r3
ldr r0, _080245B0 @ =0x0000FFE2
strh r0, [r1]
ldr r3, _080245B4 @ =gUnknown_086AD52C
b _080245FE
.align 2, 0
_0802459C: .4byte gUnknown_020314E0
_080245A0: .4byte 0x00000206
_080245A4: .4byte gMain
_080245A8: .4byte gUnknown_086A3700
_080245AC: .4byte 0x0000FFF8
_080245B0: .4byte 0x0000FFE2
_080245B4: .4byte gUnknown_086AD52C
_080245B8:
movs r5, #0xfc
lsls r5, r5, #1
adds r0, r2, r5
movs r1, #0
strh r1, [r0]
movs r6, #0xfd
lsls r6, r6, #1
adds r0, r2, r6
strh r1, [r0]
ldr r3, _080245D0 @ =gUnknown_086AD52C
b _080245FE
.align 2, 0
_080245D0: .4byte gUnknown_086AD52C
_080245D4:
adds r1, r1, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #9
ble _080245FE
strh r5, [r2]
movs r0, #0xa
strb r0, [r1]
ldr r7, _08024754 @ =gUnknown_020314E0
ldr r1, [r7]
movs r0, #2
strb r0, [r1, #0x17]
ldr r1, [r7]
movs r2, #0xfc
lsls r2, r2, #1
adds r0, r1, r2
strh r5, [r0]
movs r4, #0xfd
lsls r4, r4, #1
adds r0, r1, r4
strh r5, [r0]
_080245FE:
ldr r5, _08024754 @ =gUnknown_020314E0
ldr r4, [r5]
movs r6, #0x81
lsls r6, r6, #2
adds r2, r4, r6
movs r1, #0
ldrsb r1, [r2, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r0, r3
ldrh r5, [r1]
adds r1, r3, #4
adds r0, r0, r1
ldrh r6, [r0]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0xc
bne _08024656
movs r7, #0xfd
lsls r7, r7, #1
adds r3, r4, r7
ldrh r0, [r3]
adds r0, #2
strh r0, [r3]
movs r0, #0xfe
lsls r0, r0, #1
adds r2, r4, r0
movs r1, #0xfc
lsls r1, r1, #1
adds r0, r4, r1
movs r7, #0
ldrsh r1, [r0, r7]
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
movs r0, #0x80
lsls r0, r0, #2
adds r2, r4, r0
movs r4, #0
ldrsh r1, [r3, r4]
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
_08024656:
ldr r7, _08024754 @ =gUnknown_020314E0
ldr r4, [r7]
movs r1, #0xfe
lsls r1, r1, #1
adds r0, r4, r1
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
mov r2, sb
strh r0, [r2, #2]
movs r3, #0x80
lsls r3, r3, #2
adds r0, r4, r3
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
mov r4, sb
strh r0, [r4, #4]
ldr r2, _08024758 @ =0x040000D4
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
ldr r1, _0802475C @ =gUnknown_0202C7A0
adds r0, r0, r1
str r0, [r2]
ldr r0, _08024760 @ =0x060112A0
str r0, [r2, #4]
ldr r0, _08024764 @ =0x80000090
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _08024768 @ =gUnknown_020315D0
str r0, [r2]
ldr r0, _0802476C @ =0x050003A0
str r0, [r2, #4]
ldr r0, _08024770 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0
lsls r1, r6, #0x10
ldr r5, _08024774 @ =gUnknown_086B4B0E
mov r8, r5
ldr r6, _08024778 @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
mov ip, r0
_080246CC:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
mov r7, sb
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, r8
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 r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
str r1, [sp, #0xc]
movs r1, #2
ldrsh r0, [r7, r1]
ldr r7, [sp, #0xc]
adds r1, r7, r0
ldr r7, _0802477C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldr r0, _08024780 @ =0xFFFFFE00
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
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]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
mov r5, sl
lsls r4, r5, #2
ldrb r2, [r1, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
orrs r0, r4
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r2, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _080246CC
bl _080252F6
.align 2, 0
_08024754: .4byte gUnknown_020314E0
_08024758: .4byte 0x040000D4
_0802475C: .4byte gUnknown_0202C7A0
_08024760: .4byte 0x060112A0
_08024764: .4byte 0x80000090
_08024768: .4byte gUnknown_020315D0
_0802476C: .4byte 0x050003A0
_08024770: .4byte 0x80000010
_08024774: .4byte gUnknown_086B4B0E
_08024778: .4byte gOamBuffer
_0802477C: .4byte 0x000001FF
_08024780: .4byte 0xFFFFFE00
_08024784:
ldr r0, _080247B0 @ =gUnknown_020314E0
mov sl, r0
ldr r4, [r0]
ldr r1, _080247B4 @ =0x00000206
adds r0, r4, r1
ldrh r0, [r0]
cmp r0, #0xef
bhi _080247BC
movs r2, #1
mov sl, r2
cmp r0, #0
bne _080247AA
ldr r3, _080247B8 @ =0x00000346
adds r1, r4, r3
movs r0, #3
strb r0, [r1]
movs r0, #0xdd
bl m4aSongNumStart
_080247AA:
movs r5, #0
b _0802499E
.align 2, 0
_080247B0: .4byte gUnknown_020314E0
_080247B4: .4byte 0x00000206
_080247B8: .4byte 0x00000346
_080247BC:
cmp r0, #0xf0
bne _080247F4
movs r5, #0xfe
lsls r5, r5, #1
adds r1, r4, r5
ldr r0, _080247F0 @ =0x000008D4
str r0, [r1]
movs r6, #0x80
lsls r6, r6, #2
adds r1, r4, r6
movs r0, #0xb9
lsls r0, r0, #2
str r0, [r1]
movs r7, #0x81
lsls r7, r7, #2
adds r1, r4, r7
movs r0, #0
strb r0, [r1]
movs r0, #2
mov sl, r0
movs r5, #0
movs r0, #0x15
bl m4aSongNumStart
b _0802499E
.align 2, 0
_080247F0: .4byte 0x000008D4
_080247F4:
ldr r3, _080248A0 @ =gUnknown_086AD750
movs r1, #0x81
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #3
adds r1, r2, r3
movs r5, #0xfe
lsls r5, r5, #1
adds r0, r4, r5
ldr r0, [r0]
adds r0, #0x78
ldr r1, [r1]
subs r6, r1, r0
adds r3, #4
adds r2, r2, r3
movs r1, #0x80
lsls r1, r1, #2
adds r0, r4, r1
ldr r0, [r0]
adds r0, #0xa0
ldr r1, [r2]
subs r7, r1, r0
adds r1, r6, #0
muls r1, r6, r1
adds r0, r7, #0
muls r0, r7, r0
adds r1, r1, r0
str r1, [sp, #8]
lsls r0, r6, #0x10
asrs r0, r0, #0x10
rsbs r1, r7, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r4, r0, #0x10
lsrs r2, r4, #0x10
mov r8, r2
mov r3, sl
ldr r2, [r3]
adds r5, #0xa
adds r0, r2, r5
ldrh r1, [r0]
ldr r0, _080248A4 @ =0x00000143
movs r6, #1
mov sl, r6
cmp r1, r0
bhi _0802485C
movs r7, #2
mov sl, r7
_0802485C:
movs r1, #0x81
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bgt _080248AC
movs r5, #0
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #1
ldr r4, _080248A8 @ =0x00004E20
adds r0, r1, #0
adds r1, r4, #0
bl __divsi3
str r0, [sp]
mov r0, r8
bl sub_C24
adds r1, r0, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #1
rsbs r0, r0, #0
b _080248F0
.align 2, 0
_080248A0: .4byte gUnknown_086AD750
_080248A4: .4byte 0x00000143
_080248A8: .4byte 0x00004E20
_080248AC:
ldr r0, _08024934 @ =gUnknown_086AD788
lsrs r4, r4, #0x1d
lsls r4, r4, #1
adds r4, r4, r0
ldr r0, _08024938 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x18
bl __umodsi3
lsrs r0, r0, #3
ldrh r4, [r4]
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r1, r1, r0
ldr r4, _0802493C @ =0x00004E20
adds r0, r1, #0
adds r1, r4, #0
bl __divsi3
str r0, [sp]
mov r0, r8
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r0, r0, r1
_080248F0:
adds r1, r4, #0
bl __divsi3
str r0, [sp, #4]
ldr r4, _08024940 @ =gUnknown_020314E0
ldr r2, [r4]
movs r3, #0xfe
lsls r3, r3, #1
adds r1, r2, r3
ldr r0, [r1]
ldr r6, [sp]
adds r0, r0, r6
str r0, [r1]
movs r7, #0x80
lsls r7, r7, #2
adds r1, r2, r7
ldr r0, [r1]
ldr r3, [sp, #4]
adds r0, r0, r3
str r0, [r1]
ldr r0, _08024944 @ =0x000009C3
ldr r6, [sp, #8]
cmp r6, r0
bgt _08024964
adds r7, #4
adds r3, r2, r7
ldrb r1, [r3]
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #5
bgt _08024948
adds r0, r1, #1
strb r0, [r3]
b _08024964
.align 2, 0
_08024934: .4byte gUnknown_086AD788
_08024938: .4byte gMain
_0802493C: .4byte 0x00004E20
_08024940: .4byte gUnknown_020314E0
_08024944: .4byte 0x000009C3
_08024948:
movs r2, #0
movs r1, #3
strb r1, [r3]
ldr r0, [r4]
strb r1, [r0, #0x17]
ldr r1, [r4]
movs r3, #0xfc
lsls r3, r3, #1
adds r0, r1, r3
strh r2, [r0]
movs r4, #0xfd
lsls r4, r4, #1
adds r0, r1, r4
strh r2, [r0]
_08024964:
ldr r0, _0802497C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r6, _08024980 @ =0x00000206
adds r0, r1, r6
ldrh r2, [r0]
ldr r0, _08024984 @ =0x0000017B
cmp r2, r0
bhi _08024988
adds r1, #0xe6
ldrh r0, [r1]
adds r0, #1
b _0802499C
.align 2, 0
_0802497C: .4byte gUnknown_020314E0
_08024980: .4byte 0x00000206
_08024984: .4byte 0x0000017B
_08024988:
ldr r0, _08024A0C @ =0x0000018F
cmp r2, r0
bls _0802499E
adds r1, #0xe6
ldrh r2, [r1]
movs r7, #0
ldrsh r0, [r1, r7]
cmp r0, #0
ble _0802499E
subs r0, r2, #1
_0802499C:
strh r0, [r1]
_0802499E:
ldr r2, _08024A10 @ =0x040000D4
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
ldr r1, _08024A14 @ =gUnknown_0202C7A0
adds r0, r0, r1
str r0, [r2]
ldr r0, _08024A18 @ =0x060112A0
str r0, [r2, #4]
ldr r0, _08024A1C @ =0x80000090
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _08024A20 @ =gUnknown_020314E0
ldr r4, [r0]
ldr r0, _08024A24 @ =0x00000206
adds r1, r4, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
movs r1, #0xfe
lsls r1, r1, #1
adds r0, r4, r1
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
mov r2, sb
strh r0, [r2, #2]
movs r3, #0x80
lsls r3, r3, #2
adds r0, r4, r3
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
mov r4, sb
strh r0, [r4, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _08024A28
movs r0, #0xb4
strh r0, [r4, #4]
b _08024A34
.align 2, 0
_08024A0C: .4byte 0x0000018F
_08024A10: .4byte 0x040000D4
_08024A14: .4byte gUnknown_0202C7A0
_08024A18: .4byte 0x060112A0
_08024A1C: .4byte 0x80000090
_08024A20: .4byte gUnknown_020314E0
_08024A24: .4byte 0x00000206
_08024A28:
movs r1, #0x1e
rsbs r1, r1, #0
cmp r0, r1
bge _08024A34
mov r5, sb
strh r1, [r5, #4]
_08024A34:
movs r2, #0
ldr r6, _08024AA8 @ =gOamBuffer
mov r7, sl
lsls r7, r7, #2
mov ip, r7
movs r0, #0xd
rsbs r0, r0, #0
mov sl, r0
ldr r1, _08024AAC @ =0xFFFFFE00
mov r8, r1
_08024A48:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r2, sb
adds r5, r2, r0
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
mov r0, sl
ands r0, r2
mov r3, ip
orrs r0, r3
strb r0, [r1, #5]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r6
movs r7, #2
ldrsh r1, [r5, r7]
mov r2, sb
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _08024AB0 @ =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
mov r3, sb
ldrb r0, [r3, #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, #3
ble _08024A48
bl _080252F6
.align 2, 0
_08024AA8: .4byte gOamBuffer
_08024AAC: .4byte 0xFFFFFE00
_08024AB0: .4byte 0x000001FF
_08024AB4:
ldr r3, _08024B5C @ =gUnknown_086AD580
ldr r5, _08024B60 @ =gUnknown_020314E0
ldr r4, [r5]
movs r1, #0x81
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #3
ldr r5, _08024B64 @ =gMain
ldrb r1, [r5, #4]
movs r0, #0xe8
muls r0, r1, r0
adds r2, r2, r0
adds r1, r2, r3
movs r5, #0xfe
lsls r5, r5, #1
adds r0, r4, r5
ldr r0, [r0]
adds r0, #0x78
ldr r1, [r1]
subs r6, r1, r0
adds r3, #4
adds r2, r2, r3
movs r1, #0x80
lsls r1, r1, #2
adds r0, r4, r1
ldr r0, [r0]
adds r0, #0xa0
ldr r1, [r2]
subs r7, r1, r0
adds r1, r6, #0
muls r1, r6, r1
adds r0, r7, #0
muls r0, r7, r0
adds r1, r1, r0
str r1, [sp, #8]
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 sl, r0
mov r2, sl
lsrs r2, r2, #0x10
mov r8, r2
mov r0, r8
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r1, r1, r0
ldr r4, _08024B68 @ =0x00004E20
adds r0, r1, #0
adds r1, r4, #0
bl __divsi3
str r0, [sp]
mov r0, r8
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r0, r0, r1
adds r1, r4, #0
bl __divsi3
str r0, [sp, #4]
ldr r3, _08024B60 @ =gUnknown_020314E0
ldr r5, [r3]
ldr r4, _08024B6C @ =0x000005A9
adds r1, r5, r4
ldrb r0, [r1]
cmp r0, #0
beq _08024B70
subs r0, #1
strb r0, [r1]
movs r5, #0xe
b _08024BFA
.align 2, 0
_08024B5C: .4byte gUnknown_086AD580
_08024B60: .4byte gUnknown_020314E0
_08024B64: .4byte gMain
_08024B68: .4byte 0x00004E20
_08024B6C: .4byte 0x000005A9
_08024B70:
ldr r2, _08024BA8 @ =gUnknown_086A3700
movs r1, #0xb3
lsls r1, r1, #3
adds r0, r5, r1
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #0x13]
cmp r0, #0
beq _08024BB4
ldr r0, _08024BAC @ =gUnknown_086AD788
mov r2, sl
lsrs r4, r2, #0x1d
lsls r4, r4, #1
adds r4, r4, r0
ldr r3, _08024BB0 @ =gMain
ldr r0, [r3, #0x4c]
movs r1, #0x18
bl __umodsi3
lsrs r0, r0, #3
ldrh r4, [r4]
adds r0, r0, r4
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
b _08024BDA
.align 2, 0
_08024BA8: .4byte gUnknown_086A3700
_08024BAC: .4byte gUnknown_086AD788
_08024BB0: .4byte gMain
_08024BB4:
ldr r0, _08024C1C @ =gUnknown_086AD788
mov r4, sl
lsrs r2, r4, #0x1d
lsls r2, r2, #1
adds r2, r2, r0
ldr r5, _08024C20 @ =gMain
ldr r0, [r5, #0x4c]
movs r1, #0x1f
ands r0, r1
lsrs r4, r0, #3
ldrh r2, [r2]
adds r4, r4, r2
movs r1, #0x18
bl __udivsi3
lsls r0, r0, #1
subs r4, r4, r0
lsls r4, r4, #0x10
lsrs r5, r4, #0x10
_08024BDA:
ldr r0, _08024C24 @ =gUnknown_020314E0
ldr r2, [r0]
movs r0, #0xfe
lsls r0, r0, #1
adds r1, r2, r0
ldr r0, [r1]
ldr r3, [sp]
adds r0, r0, r3
str r0, [r1]
movs r4, #0x80
lsls r4, r4, #2
adds r1, r2, r4
ldr r0, [r1]
ldr r2, [sp, #4]
adds r0, r0, r2
str r0, [r1]
_08024BFA:
ldr r0, _08024C28 @ =0x000009C3
ldr r3, [sp, #8]
cmp r3, r0
bgt _08024C40
ldr r4, _08024C24 @ =gUnknown_020314E0
ldr r0, [r4]
movs r2, #0x81
lsls r2, r2, #2
adds r1, r0, r2
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x1b
bgt _08024C2C
adds r0, r2, #1
strb r0, [r1]
b _08024C40
.align 2, 0
_08024C1C: .4byte gUnknown_086AD788
_08024C20: .4byte gMain
_08024C24: .4byte gUnknown_020314E0
_08024C28: .4byte 0x000009C3
_08024C2C:
bl m4aMPlayAllStop
movs r0, #0xd
bl m4aSongNumStart
ldr r0, [r4]
movs r1, #0xc8
strh r1, [r0, #0x18]
movs r1, #6
strb r1, [r0, #0x17]
_08024C40:
ldr r0, _08024C68 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _08024C70
ldr r0, _08024C6C @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0x81
lsls r3, r3, #2
adds r1, r1, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
movs r4, #1
mov sl, r4
cmp r1, #0x1a
ble _08024CA0
movs r0, #2
mov sl, r0
b _08024CA0
.align 2, 0
_08024C68: .4byte gMain
_08024C6C: .4byte gUnknown_020314E0
_08024C70:
ldr r0, _08024C94 @ =gUnknown_020314E0
ldr r3, [r0]
movs r2, #0x81
lsls r2, r2, #2
adds r1, r3, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
cmp r1, #0x1b
ble _08024C9C
movs r4, #3
mov sl, r4
ldr r0, _08024C98 @ =0x00000367
adds r1, r3, r0
movs r0, #1
strb r0, [r1]
b _08024CA0
.align 2, 0
_08024C94: .4byte gUnknown_020314E0
_08024C98: .4byte 0x00000367
_08024C9C:
movs r1, #1
mov sl, r1
_08024CA0:
ldr r2, _08024CE8 @ =gUnknown_020314E0
ldr r4, [r2]
movs r3, #0xfe
lsls r3, r3, #1
adds r0, r4, r3
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
mov r1, sb
strh r0, [r1, #2]
movs r2, #0x80
lsls r2, r2, #2
adds r0, r4, r2
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
mov r3, sb
strh r0, [r3, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _08024CEC
movs r0, #0xb4
strh r0, [r3, #4]
b _08024CF8
.align 2, 0
_08024CE8: .4byte gUnknown_020314E0
_08024CEC:
movs r1, #0x1e
rsbs r1, r1, #0
cmp r0, r1
bge _08024CF8
mov r4, sb
strh r1, [r4, #4]
_08024CF8:
ldr r2, _08024DA0 @ =0x040000D4
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #5
ldr r1, _08024DA4 @ =gUnknown_0202C7A0
adds r0, r0, r1
str r0, [r2]
ldr r0, _08024DA8 @ =0x060112A0
str r0, [r2, #4]
ldr r0, _08024DAC @ =0x80000090
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0
ldr r5, _08024DB0 @ =gOamBuffer
mov r8, r5
mov r0, sl
lsls r0, r0, #2
mov sl, r0
ldr r1, _08024DB4 @ =0xFFFFFE00
mov ip, r1
_08024D24:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r2, sb
adds r5, r2, r0
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r2, [r1, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
mov r3, sl
orrs r0, r3
strb r0, [r1, #5]
ldrh r3, [r5]
lsls r3, r3, #3
add r3, r8
movs r1, #2
ldrsh r0, [r5, r1]
str r0, [sp, #0xc]
mov r2, sb
movs r1, #2
ldrsh r0, [r2, r1]
ldr r2, [sp, #0xc]
adds r1, r2, r0
ldr r2, _08024DB8 @ =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
add r1, r8
mov r3, sb
ldrb r0, [r3, #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, #3
ble _08024D24
ldr r4, _08024DBC @ =gUnknown_020314E0
ldr r4, [r4]
mov r8, r4
ldr r5, _08024DC0 @ =0x000005AA
mov sl, r5
mov r1, r8
add r1, sl
ldrh r0, [r1]
cmp r0, #0
beq _08024DC4
subs r0, #1
strh r0, [r1]
b _080252F6
.align 2, 0
_08024DA0: .4byte 0x040000D4
_08024DA4: .4byte gUnknown_0202C7A0
_08024DA8: .4byte 0x060112A0
_08024DAC: .4byte 0x80000090
_08024DB0: .4byte gOamBuffer
_08024DB4: .4byte 0xFFFFFE00
_08024DB8: .4byte 0x000001FF
_08024DBC: .4byte gUnknown_020314E0
_08024DC0: .4byte 0x000005AA
_08024DC4:
ldr r0, _08024EA0 @ =0x0000132C
mov sb, r0
mov r0, r8
add r0, sb
ldr r5, [r0]
movs r1, #0x10
ldrsh r4, [r5, r1]
subs r4, #0xc
movs r0, #0xfe
lsls r0, r0, #1
add r0, r8
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
subs r6, r4, r0
movs r2, #0x12
ldrsh r4, [r5, r2]
subs r4, #0xe
movs r0, #0x80
lsls r0, r0, #2
add r0, r8
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
subs r7, r4, r0
adds r1, r6, #0
muls r1, r6, r1
adds r0, r7, #0
muls r0, r7, r0
adds r1, r1, r0
cmp r1, #0x51
ble _08024E0A
b _080252F6
_08024E0A:
ldr r4, _08024EA4 @ =0x000005A5
mov r3, r8
adds r1, r3, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r5, _08024EA8 @ =gUnknown_020314E0
ldr r1, [r5]
mov r6, sl
adds r2, r1, r6
movs r0, #4
strh r0, [r2]
ldr r7, _08024EAC @ =0x000005A9
adds r1, r1, r7
movs r0, #0x14
strb r0, [r1]
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, #1
bls _08024E38
movs r0, #4
strb r0, [r1, #0x17]
_08024E38:
movs r0, #0x75
bl m4aSongNumStart
ldr r1, _08024EA8 @ =gUnknown_020314E0
ldr r0, [r1]
add r0, sb
ldr r1, [r0]
ldrh r0, [r1, #0x30]
rsbs r0, r0, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0x32
ldrsh r1, [r1, r2]
bl ArcTan2
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r3, _08024EA8 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, r0, r4
ldrb r0, [r0]
cmp r0, #1
bls _08024EB0
adds r0, r5, #0
bl sub_C74
ldr r4, _08024EA8 @ =gUnknown_020314E0
ldr r1, [r4]
add r1, sb
ldr r4, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x32
bl __divsi3
strh r0, [r4, #0x30]
adds r0, r5, #0
bl sub_C24
adds r1, r0, #0
ldr r5, _08024EA8 @ =gUnknown_020314E0
ldr r0, [r5]
add r0, sb
ldr r4, [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
b _08024EE2
.align 2, 0
_08024EA0: .4byte 0x0000132C
_08024EA4: .4byte 0x000005A5
_08024EA8: .4byte gUnknown_020314E0
_08024EAC: .4byte 0x000005A9
_08024EB0:
adds r0, r5, #0
bl sub_C74
ldr r6, _08024EF4 @ =gUnknown_020314E0
ldr r1, [r6]
add r1, sb
ldr r4, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x7d
bl __divsi3
strh r0, [r4, #0x30]
adds r0, r5, #0
bl sub_C24
adds r1, r0, #0
ldr r0, [r6]
add r0, sb
ldr r4, [r0]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #5
_08024EE2:
rsbs r0, r0, #0
ldr r1, _08024EF8 @ =0x00004E20
bl __divsi3
strh r0, [r4, #0x32]
movs r0, #7
bl sub_11B0
b _080252F6
.align 2, 0
_08024EF4: .4byte gUnknown_020314E0
_08024EF8: .4byte 0x00004E20
_08024EFC:
ldr r7, _0802508C @ =gUnknown_020314E0
ldr r0, [r7]
adds r0, #0xe4
movs r5, #0
movs r1, #9
strb r1, [r0]
ldr r1, _08025090 @ =0x040000D4
ldr r0, _08025094 @ =gUnknown_086ACF80
str r0, [r1]
ldr r0, _08025098 @ =0x050003E0
str r0, [r1, #4]
ldr r0, _0802509C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _080250A0 @ =gUnknown_081428D4
str r0, [r1]
ldr r0, _080250A4 @ =0x06015800
str r0, [r1, #4]
ldr r0, _080250A8 @ =0x80000E00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r7]
ldr r2, _080250AC @ =0x000005F6
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #9
ldr r4, _080250B0 @ =gUnknown_08138014
adds r0, r0, r4
str r0, [r1]
ldr r0, _080250B4 @ =0x060164C0
str r0, [r1, #4]
ldr r3, _080250B8 @ =0x80000040
str r3, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r7]
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
adds r0, #4
lsls r0, r0, #6
adds r0, r0, r4
str r0, [r1]
ldr r0, _080250BC @ =0x06016760
str r0, [r1, #4]
str r3, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r7]
subs r2, #0x50
adds r1, r0, r2
strh r5, [r1]
ldr r3, _080250C0 @ =0x000005A4
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
ldr r4, [r7]
movs r5, #0xfe
lsls r5, r5, #1
adds r0, r4, r5
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r0, #8
movs r6, #0xa2
lsls r6, r6, #2
adds r1, r4, r6
strh r0, [r1]
movs r7, #0x80
lsls r7, r7, #2
adds r0, r4, r7
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
subs r0, #0x1f
ldr r2, _080250C4 @ =0x0000028A
adds r1, r4, r2
strh r0, [r1]
movs r2, #0
ldr r5, _0802508C @ =gUnknown_020314E0
ldr r4, _080250C8 @ =0x000006D3
movs r3, #0xd
_08024FA8:
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, #5
ble _08024FA8
ldr r3, _0802508C @ =gUnknown_020314E0
ldr r1, [r3]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r4, [r3]
movs r5, #0xfe
lsls r5, r5, #1
adds r0, r4, r5
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
mov r6, sb
strh r0, [r6, #2]
movs r7, #0x80
lsls r7, r7, #2
adds r0, r4, r7
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _0802500A
movs r0, #0xb4
strh r0, [r6, #4]
_0802500A:
ldr r1, _08025090 @ =0x040000D4
ldr r0, _080250CC @ =gUnknown_0202D760
str r0, [r1]
ldr r0, _080250D0 @ =0x060112A0
str r0, [r1, #4]
ldr r0, _080250D4 @ =0x80000090
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r2, #0
ldr r6, _080250D8 @ =gOamBuffer
movs r1, #0xd
rsbs r1, r1, #0
mov r8, r1
ldr r3, _080250DC @ =0xFFFFFE00
mov sl, r3
_08025028:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r7, sb
adds r5, r7, r0
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r6
ldrb r1, [r2, #5]
mov r0, r8
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2, #5]
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 r7, _080250E0 @ =0x000001FF
adds r0, r7, #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, r6
mov r2, sb
ldrb r0, [r2, #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, #3
ble _08025028
ldr r3, _0802508C @ =gUnknown_020314E0
ldr r1, [r3]
movs r0, #0
strh r0, [r1, #0x18]
b _080252F6
.align 2, 0
_0802508C: .4byte gUnknown_020314E0
_08025090: .4byte 0x040000D4
_08025094: .4byte gUnknown_086ACF80
_08025098: .4byte 0x050003E0
_0802509C: .4byte 0x80000010
_080250A0: .4byte gUnknown_081428D4
_080250A4: .4byte 0x06015800
_080250A8: .4byte 0x80000E00
_080250AC: .4byte 0x000005F6
_080250B0: .4byte gUnknown_08138014
_080250B4: .4byte 0x060164C0
_080250B8: .4byte 0x80000040
_080250BC: .4byte 0x06016760
_080250C0: .4byte 0x000005A4
_080250C4: .4byte 0x0000028A
_080250C8: .4byte 0x000006D3
_080250CC: .4byte gUnknown_0202D760
_080250D0: .4byte 0x060112A0
_080250D4: .4byte 0x80000090
_080250D8: .4byte gOamBuffer
_080250DC: .4byte 0xFFFFFE00
_080250E0: .4byte 0x000001FF
_080250E4:
ldr r5, _080251E4 @ =gUnknown_020314E0
ldr r4, [r5]
movs r6, #0xb5
lsls r6, r6, #3
adds r0, r4, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r7, #0
mov sl, r7
cmp r0, #0x10
bgt _08025100
movs r0, #2
mov sl, r0
_08025100:
mov r1, sb
ldrh r0, [r1]
cmp r0, #0
bne _0802510A
b _080252F6
_0802510A:
movs r2, #0xfe
lsls r2, r2, #1
adds r0, r4, r2
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
mov r3, sb
strh r0, [r3, #2]
movs r5, #0x80
lsls r5, r5, #2
adds r0, r4, r5
ldr r0, [r0]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
mov r6, sb
strh r0, [r6, #4]
movs r2, #0
ldr r6, _080251E8 @ =gOamBuffer
mov r7, sl
lsls r7, r7, #2
mov ip, r7
movs r0, #0xd
rsbs r0, r0, #0
mov sl, r0
ldr r1, _080251EC @ =0xFFFFFE00
mov r8, r1
_08025152:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r2, sb
adds r5, r2, r0
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
mov r0, sl
ands r0, r2
mov r3, ip
orrs r0, r3
strb r0, [r1, #5]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r6
movs r7, #2
ldrsh r1, [r5, r7]
mov r2, sb
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _080251F0 @ =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
mov r3, sb
ldrb r0, [r3, #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, #3
ble _08025152
ldr r1, _080251F4 @ =0x040000D4
ldr r4, _080251F8 @ =gUnknown_0202D760
str r4, [r1]
ldr r0, _080251FC @ =0x060112A0
str r0, [r1, #4]
ldr r0, _08025200 @ =0x80000090
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r5, _080251E4 @ =gUnknown_020314E0
ldr r0, [r5]
movs r6, #0xb5
lsls r6, r6, #3
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x17
beq _080251D4
b _080252F6
_080251D4:
ldr r7, _08025204 @ =gMain
ldr r0, [r7, #0x44]
adds r0, #0xa4
ldr r1, [r0]
movs r0, #0
strh r0, [r1]
b _080252F6
.align 2, 0
_080251E4: .4byte gUnknown_020314E0
_080251E8: .4byte gOamBuffer
_080251EC: .4byte 0xFFFFFE00
_080251F0: .4byte 0x000001FF
_080251F4: .4byte 0x040000D4
_080251F8: .4byte gUnknown_0202D760
_080251FC: .4byte 0x060112A0
_08025200: .4byte 0x80000090
_08025204: .4byte gMain
_08025208:
mov r1, sb
ldrh r0, [r1]
cmp r0, #0
beq _08025268
movs r0, #0
strh r0, [r1, #2]
movs r0, #0xc8
strh r0, [r1, #4]
movs r2, #0
ldr r6, _08025280 @ =gOamBuffer
ldr r3, _08025284 @ =0xFFFFFE00
mov r8, r3
_08025220:
lsls r4, r2, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
mov r7, sb
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 r7, _08025288 @ =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, [r5]
lsls r1, r1, #3
adds r1, r1, r6
mov r2, sb
ldrb r0, [r2, #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, #3
ble _08025220
_08025268:
ldr r3, _0802528C @ =gMain
ldr r0, [r3, #0x44]
adds r0, #0xa4
ldr r1, [r0]
movs r0, #0
strh r0, [r1]
ldr r4, _08025290 @ =gUnknown_020314E0
ldr r1, [r4]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080252F4
.align 2, 0
_08025280: .4byte gOamBuffer
_08025284: .4byte 0xFFFFFE00
_08025288: .4byte 0x000001FF
_0802528C: .4byte gMain
_08025290: .4byte gUnknown_020314E0
_08025294:
bl sub_242B4
ldr r2, _080252B0 @ =gUnknown_020314E0
ldr r1, [r2]
ldrb r0, [r1, #0x17]
adds r0, #1
movs r3, #0
strb r0, [r1, #0x17]
ldr r0, [r2]
ldr r5, _080252B4 @ =0x00000367
adds r0, r0, r5
strb r3, [r0]
b _080252F6
.align 2, 0
_080252B0: .4byte gUnknown_020314E0
_080252B4: .4byte 0x00000367
_080252B8:
ldr r6, _080252C8 @ =gUnknown_020314E0
ldr r1, [r6]
ldrh r0, [r1, #0x18]
cmp r0, #0
beq _080252CC
subs r0, #1
strh r0, [r1, #0x18]
b _080252F6
.align 2, 0
_080252C8: .4byte gUnknown_020314E0
_080252CC:
ldr r7, _080252E4 @ =0x0000071F
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _080252E8
movs r0, #3
bl sub_19B64
b _080252EE
.align 2, 0
_080252E4: .4byte 0x0000071F
_080252E8:
movs r0, #1
bl sub_19B64
_080252EE:
ldr r0, _08025308 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0
_080252F4:
strb r0, [r1, #0x17]
_080252F6:
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
_08025308: .4byte gUnknown_020314E0
thumb_func_start sub_2530C
sub_2530C: @ 0x0802530C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _080253D0 @ =gMain
ldr r1, [r0, #0x44]
ldr r5, [r1, #0x48]
ldrh r1, [r5]
mov r8, r0
ldr r0, _080253D4 @ =gUnknown_020314E0
mov sb, r0
cmp r1, #0
beq _08025360
movs r0, #0
ldr r6, _080253D8 @ =gOamBuffer
ldr r1, _080253DC @ =0xFFFFFE00
mov ip, r1
movs r7, #0xc8
_08025330:
lsls r2, r0, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r4, r5, r0
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrh r3, [r1, #2]
mov r0, ip
ands r0, r3
orrs r0, r7
strh r0, [r1, #2]
ldrh r0, [r4]
lsls r0, r0, #3
adds r0, r0, r6
movs r1, #0xb4
strb r1, [r0]
adds r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #5
ble _08025330
_08025360:
mov r1, r8
ldr r0, [r1, #0x44]
ldr r1, [r0, #0x48]
movs r0, #0
strh r0, [r1]
mov r1, r8
ldr r0, [r1, #0x44]
ldr r5, [r0, #0x30]
ldrh r0, [r5]
cmp r0, #0
beq _080253B0
movs r0, #0
ldr r6, _080253D8 @ =gOamBuffer
ldr r1, _080253DC @ =0xFFFFFE00
mov ip, r1
movs r7, #0xc8
_08025380:
lsls r2, r0, #0x10
asrs r2, r2, #0x10
lsls r0, r2, #3
adds r0, #8
adds r4, r5, r0
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrh r3, [r1, #2]
mov r0, ip
ands r0, r3
orrs r0, r7
strh r0, [r1, #2]
ldrh r0, [r4]
lsls r0, r0, #3
adds r0, r0, r6
movs r1, #0xb4
strb r1, [r0]
adds r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #5
ble _08025380
_080253B0:
mov r1, r8
ldr r0, [r1, #0x44]
ldr r1, [r0, #0x30]
movs r2, #0
movs r0, #0
strh r0, [r1]
mov r1, sb
ldr r0, [r1]
adds r0, #0xe4
strb r2, [r0]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080253D0: .4byte gMain
_080253D4: .4byte gUnknown_020314E0
_080253D8: .4byte gOamBuffer
_080253DC: .4byte 0xFFFFFE00
thumb_func_start sub_253E0
sub_253E0: @ 0x080253E0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r0, #1
mov r8, r0
ldr r0, _08025490 @ =gMain
ldr r0, [r0, #0x44]
ldr r0, [r0, #0x48]
mov r1, r8
strh r1, [r0]
ldr r4, _08025494 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _08025498 @ =0x000006CC
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08025410
bl sub_2971C
_08025410:
ldr r3, [r4]
ldr r2, _0802549C @ =0x000006C7
adds r0, r3, r2
ldr r4, _080254A0 @ =0x000006C6
adds r1, r3, r4
movs r2, #0
ldrsb r2, [r0, r2]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r2, r0
blt _08025428
b _0802564C
_08025428:
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08025464
ldr r1, _080254A4 @ =0x000006CA
adds r0, r3, r1
ldrh r0, [r0]
cmp r0, #0
bne _08025464
adds r1, r3, #0
adds r1, #0xe4
movs r0, #0xb
strb r0, [r1]
ldr r1, _080254A8 @ =0x040000D4
ldr r0, _080254AC @ =gUnknown_083A05CC
str r0, [r1]
ldr r0, _080254B0 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _080254B4 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _080254B8 @ =gUnknown_0839DDAC
str r0, [r1]
ldr r0, _080254BC @ =0x06015800
str r0, [r1, #4]
ldr r0, _080254C0 @ =0x80001400
str r0, [r1, #8]
ldr r0, [r1, #8]
_08025464:
ldr r1, _080254C4 @ =gUnknown_086AD3FE
ldr r3, _08025494 @ =gUnknown_020314E0
ldr r2, [r3]
ldr r6, _08025498 @ =0x000006CC
adds r4, r2, r6
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r1, _080254A4 @ =0x000006CA
adds r2, r2, r1
ldrh r1, [r2]
adds r5, r3, #0
cmp r0, r1
ble _080254C8
adds r0, r1, #1
strh r0, [r2]
b _08025650
.align 2, 0
_08025490: .4byte gMain
_08025494: .4byte gUnknown_020314E0
_08025498: .4byte 0x000006CC
_0802549C: .4byte 0x000006C7
_080254A0: .4byte 0x000006C6
_080254A4: .4byte 0x000006CA
_080254A8: .4byte 0x040000D4
_080254AC: .4byte gUnknown_083A05CC
_080254B0: .4byte 0x050003C0
_080254B4: .4byte 0x80000010
_080254B8: .4byte gUnknown_0839DDAC
_080254BC: .4byte 0x06015800
_080254C0: .4byte 0x80001400
_080254C4: .4byte gUnknown_086AD3FE
_080254C8:
movs r7, #0
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r3, [r5]
ldr r2, _0802559C @ =0x000006CC
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bgt _080254E6
b _0802562C
_080254E6:
subs r2, #5
adds r1, r3, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r5]
adds r0, r0, r6
strb r7, [r0]
movs r3, #0
mov r8, r3
ldr r1, [r5]
ldr r4, _080255A0 @ =0x000006C9
adds r1, r1, r4
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
ldr r3, [r5]
adds r2, r3, r2
ldr r1, _080255A4 @ =0x000006C6
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
bne _0802552E
adds r0, r3, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
blt _0802553A
adds r0, r3, #0
adds r0, #0xe4
strb r7, [r0]
_0802552E:
ldr r0, [r5]
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bge _080255B4
_0802553A:
ldr r0, [r5]
ldr r2, _080255A4 @ =0x000006C6
adds r0, r0, r2
movs r1, #0
strb r1, [r0]
ldr r0, [r5]
ldr r3, _080255A8 @ =0x000006C7
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
ldr r4, _080255AC @ =0x00000625
adds r0, r0, r4
strb r1, [r0]
movs r2, #0
ldr r6, _080255B0 @ =gMain
adds r4, r5, #0
adds r3, #6
_0802555C:
ldr r1, [r4]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r3
adds r1, r1, r0
strb r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _0802555C
ldr r0, [r6, #0x4c]
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
ldr r0, [r5]
ldr r1, _080255A0 @ =0x000006C9
adds r0, r0, r1
movs r2, #0
movs r1, #5
strb r1, [r0]
ldr r1, [r5]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r0, [r6, #0x44]
ldr r0, [r0, #0x48]
strh r2, [r0]
b _080255CE
.align 2, 0
_0802559C: .4byte 0x000006CC
_080255A0: .4byte 0x000006C9
_080255A4: .4byte 0x000006C6
_080255A8: .4byte 0x000006C7
_080255AC: .4byte 0x00000625
_080255B0: .4byte gMain
_080255B4:
cmp r0, #0
bne _080255BC
movs r3, #0
b _080255CE
_080255BC:
ldr r0, _08025620 @ =gMain
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
ldr r0, [r0, #0x4c]
bl __umodsi3
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
_080255CE:
ldr r1, [r5]
lsls r3, r3, #0x10
asrs r2, r3, #0x10
ldr r7, _08025624 @ =0x000006CD
adds r0, r1, r7
adds r0, r0, r2
ldrb r0, [r0]
movs r2, #0xd9
lsls r2, r2, #3
adds r1, r1, r2
strb r0, [r1]
ldr r0, [r5]
ldr r6, _08025628 @ =0x000006C9
adds r0, r0, r6
asrs r1, r3, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bge _08025650
adds r4, r5, #0
adds r5, r7, #0
_080255FA:
ldr r0, [r4]
asrs r1, r3, #0x10
adds r0, r0, r5
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r0, [r4]
adds r0, r0, r6
lsls r3, r1, #0x10
asrs r1, r3, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
blt _080255FA
b _08025650
.align 2, 0
_08025620: .4byte gMain
_08025624: .4byte 0x000006CD
_08025628: .4byte 0x000006C9
_0802562C:
cmp r0, #1
bne _0802566C
movs r4, #0xd9
lsls r4, r4, #3
adds r0, r3, r4
movs r1, #0
ldrsb r1, [r0, r1]
ldr r2, _08025648 @ =0x000006D3
adds r0, r3, r2
adds r0, r0, r1
movs r1, #0xd
strb r1, [r0]
b _08025650
.align 2, 0
_08025648: .4byte 0x000006D3
_0802564C:
movs r3, #0
mov r8, r3
_08025650:
ldr r0, _080256CC @ =gUnknown_020314E0
ldr r0, [r0]
ldr r4, _080256D0 @ =0x000006CC
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _0802566C
movs r0, #0x8c
bl m4aSongNumStart
bl sub_29664
_0802566C:
ldr r0, _080256CC @ =gUnknown_020314E0
ldr r5, [r0]
ldr r1, _080256D0 @ =0x000006CC
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bne _08025682
movs r2, #0
mov r8, r2
_08025682:
ldr r0, _080256D4 @ =gMain
ldr r0, [r0, #0x44]
ldr r7, [r0, #0x48]
mov r3, r8
cmp r3, #0
beq _080256DC
movs r0, #0xd9
lsls r0, r0, #3
adds r4, r5, r0
movs r0, #0
ldrsb r0, [r4, r0]
movs r1, #3
bl __modsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x14
adds r1, r5, #0
adds r1, #0x58
ldrh r1, [r1]
subs r1, #0x60
subs r0, r0, r1
strh r0, [r7, #2]
movs r0, #0
ldrsb r0, [r4, r0]
movs r1, #3
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x14
adds r2, r5, #0
adds r2, #0x5a
ldr r3, _080256D8 @ =0xFFFFFED4
adds r1, r3, #0
ldrh r2, [r2]
adds r1, r1, r2
subs r0, r0, r1
b _080256DE
.align 2, 0
_080256CC: .4byte gUnknown_020314E0
_080256D0: .4byte 0x000006CC
_080256D4: .4byte gMain
_080256D8: .4byte 0xFFFFFED4
_080256DC:
movs r0, #0xc8
_080256DE:
strh r0, [r7, #4]
movs r4, #4
ldrsh r0, [r7, r4]
cmp r0, #0xc7
ble _080256EC
movs r0, #0xc8
strh r0, [r7, #4]
_080256EC:
movs r2, #0
ldr r0, _080257EC @ =gOamBuffer
mov ip, r0
ldr r1, _080257F0 @ =gUnknown_086AD3FE
mov sl, r1
ldr r3, _080257F4 @ =gUnknown_020314E0
mov sb, r3
ldr r4, _080257F8 @ =0x000006CC
mov r8, r4
_080256FE:
lsls r5, r2, #0x10
asrs r5, r5, #0x10
lsls r6, r5, #3
adds r6, #8
adds r6, r7, r6
ldrh r4, [r6]
lsls r4, r4, #3
add r4, ip
lsls r3, r5, #1
adds r3, r3, r5
lsls r0, r3, #1
str r0, [sp]
mov r1, sb
ldr r0, [r1]
add r0, r8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
add r0, sl
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, [sp]
adds r2, r1, r0
ldr r0, _080257FC @ =gUnknown_086B53E4
adds r2, r2, r0
ldrh r0, [r2]
strh r0, [r4]
adds r4, #2
adds r2, r3, #1
lsls r2, r2, #1
str r2, [sp]
mov r1, sb
ldr r0, [r1]
add r0, r8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
add r0, sl
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, [sp]
adds r2, r1, r0
ldr r0, _080257FC @ =gUnknown_086B53E4
adds r2, r2, r0
ldrh r0, [r2]
strh r0, [r4]
adds r3, #2
lsls r3, r3, #1
mov r1, sb
ldr r0, [r1]
add r0, r8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
add r0, sl
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
adds r3, r3, r0
ldr r0, _080257FC @ =gUnknown_086B53E4
adds r3, r3, r0
ldrh r0, [r3]
strh r0, [r4, #2]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
ldrb r0, [r2, #5]
movs r1, #0xc
orrs r0, r1
strb r0, [r2, #5]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, ip
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, _08025800 @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldr r0, _08025804 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, ip
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r2, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #5
ble _080256FE
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
_080257EC: .4byte gOamBuffer
_080257F0: .4byte gUnknown_086AD3FE
_080257F4: .4byte gUnknown_020314E0
_080257F8: .4byte 0x000006CC
_080257FC: .4byte gUnknown_086B53E4
_08025800: .4byte 0x000001FF
_08025804: .4byte 0xFFFFFE00
thumb_func_start sub_25808
sub_25808: @ 0x08025808
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r1, _08025834 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _08025838 @ =0x00000602
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r7, r1, #0
cmp r0, #8
bls _08025828
b _08025F36
_08025828:
lsls r0, r0, #2
ldr r1, _0802583C @ =_08025840
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08025834: .4byte gUnknown_020314E0
_08025838: .4byte 0x00000602
_0802583C: .4byte _08025840
_08025840: @ jump table
.4byte _08025864 @ case 0
.4byte _080258A8 @ case 1
.4byte _0802592C @ case 2
.4byte _08025A7C @ case 3
.4byte _08025AF8 @ case 4
.4byte _08025C18 @ case 5
.4byte _08025C78 @ case 6
.4byte _08025D60 @ case 7
.4byte _08025DD0 @ case 8
_08025864:
ldr r1, [r7]
ldr r3, _08025878 @ =0x00000604
adds r2, r1, r3
ldrh r0, [r2]
cmp r0, #0x3b
bhi _0802587C
adds r0, #1
strh r0, [r2]
b _08025890
.align 2, 0
_08025878: .4byte 0x00000604
_0802587C:
ldr r4, _0802589C @ =0x00000602
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r0, [r7]
ldr r6, _080258A0 @ =0x00000604
adds r0, r0, r6
strh r2, [r0]
_08025890:
ldr r0, _080258A4 @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0xce
strh r1, [r0, #0x38]
b _08025F36
.align 2, 0
_0802589C: .4byte 0x00000602
_080258A0: .4byte 0x00000604
_080258A4: .4byte gMain
_080258A8:
ldr r0, [r7]
adds r0, #0xe4
movs r5, #0
movs r1, #5
strb r1, [r0]
ldr r1, _08025900 @ =0x040000D4
ldr r0, _08025904 @ =gUnknown_083A07CC
str r0, [r1]
ldr r0, _08025908 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0802590C @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08025910 @ =gUnknown_083A27EC
str r0, [r1]
ldr r0, _08025914 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08025918 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0802591C @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x8c
ldr r1, [r0]
movs r4, #0
movs r0, #1
strh r0, [r1]
movs r0, #0x8d
bl m4aSongNumStart
ldr r1, [r7]
ldr r0, _08025920 @ =0x00000602
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r7]
ldr r2, _08025924 @ =0x00000604
adds r1, r0, r2
strh r5, [r1]
ldr r3, _08025928 @ =0x00000603
adds r0, r0, r3
strb r4, [r0]
b _08025F36
.align 2, 0
_08025900: .4byte 0x040000D4
_08025904: .4byte gUnknown_083A07CC
_08025908: .4byte 0x06015800
_0802590C: .4byte 0x80001000
_08025910: .4byte gUnknown_083A27EC
_08025914: .4byte 0x050003C0
_08025918: .4byte 0x80000010
_0802591C: .4byte gMain
_08025920: .4byte 0x00000602
_08025924: .4byte 0x00000604
_08025928: .4byte 0x00000603
_0802592C:
ldr r2, _08025954 @ =gUnknown_086AE0C0
ldr r1, [r7]
ldr r4, _08025958 @ =0x00000603
adds r3, r1, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #1
adds r0, r0, r2
movs r6, #0
ldrsh r0, [r0, r6]
ldr r2, _0802595C @ =0x00000604
adds r1, r1, r2
ldrh r2, [r1]
cmp r0, r2
ble _08025964
adds r0, r2, #1
strh r0, [r1]
ldr r3, _08025960 @ =gMain
b _08025996
.align 2, 0
_08025954: .4byte gUnknown_086AE0C0
_08025958: .4byte 0x00000603
_0802595C: .4byte 0x00000604
_08025960: .4byte gMain
_08025964:
movs r2, #0
strh r2, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r7]
ldr r3, _08025A60 @ =0x00000603
adds r1, r0, r3
movs r0, #0
ldrsb r0, [r1, r0]
ldr r3, _08025A64 @ =gMain
cmp r0, #7
ble _08025996
movs r0, #7
strb r0, [r1]
ldr r1, [r7]
ldr r4, _08025A68 @ =0x00000602
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r3, #0x44]
adds r0, #0x8c
ldr r0, [r0]
strh r2, [r0]
_08025996:
ldr r2, [r7]
ldr r6, _08025A60 @ =0x00000603
adds r0, r2, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, [r3, #0x44]
adds r0, #0x8c
ldr r6, [r0]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x7c
subs r0, r0, r1
strh r0, [r6, #2]
adds r2, #0x5a
ldrh r1, [r2]
movs r0, #0xf4
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _080259CE
movs r0, #0xc8
strh r0, [r6, #4]
_080259CE:
movs r2, #0
lsls r0, r5, #0x10
ldr r7, _08025A6C @ =gOamBuffer
mov r8, r7
ldr r1, _08025A70 @ =gUnknown_086B50AE
mov ip, r1
asrs r1, r0, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
mov sl, r0
ldr r3, _08025A74 @ =0xFFFFFE00
mov sb, r3
_080259E8:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r4, r8
adds r2, r0, r4
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, sl
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, sl
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, sl
add r1, ip
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _08025A78 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #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 _080259E8
b _08025F36
.align 2, 0
_08025A60: .4byte 0x00000603
_08025A64: .4byte gMain
_08025A68: .4byte 0x00000602
_08025A6C: .4byte gOamBuffer
_08025A70: .4byte gUnknown_086B50AE
_08025A74: .4byte 0xFFFFFE00
_08025A78: .4byte 0x000001FF
_08025A7C:
ldr r0, [r7]
adds r0, #0xe4
movs r3, #0
movs r1, #6
strb r1, [r0]
ldr r1, _08025AD0 @ =0x040000D4
ldr r0, _08025AD4 @ =gUnknown_083A29EC
str r0, [r1]
ldr r0, _08025AD8 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08025ADC @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08025AE0 @ =gUnknown_083A320C
str r0, [r1]
ldr r0, _08025AE4 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08025AE8 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08025AEC @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x90
ldr r1, [r0]
movs r2, #1
movs r0, #1
strh r0, [r1]
ldr r1, [r7]
ldr r4, _08025AF0 @ =0x00000602
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r7]
ldr r6, _08025AF4 @ =0x00000604
adds r1, r0, r6
strh r3, [r1]
movs r7, #0x88
lsls r7, r7, #5
adds r0, r0, r7
strb r2, [r0]
b _08025F36
.align 2, 0
_08025AD0: .4byte 0x040000D4
_08025AD4: .4byte gUnknown_083A29EC
_08025AD8: .4byte 0x06015800
_08025ADC: .4byte 0x80000400
_08025AE0: .4byte gUnknown_083A320C
_08025AE4: .4byte 0x050003C0
_08025AE8: .4byte 0x80000010
_08025AEC: .4byte gMain
_08025AF0: .4byte 0x00000602
_08025AF4: .4byte 0x00000604
_08025AF8:
ldr r1, [r7]
ldr r0, _08025B10 @ =0x00000604
adds r2, r1, r0
ldrh r0, [r2]
lsrs r5, r0, #1
cmp r0, #0xe
bhi _08025B18
adds r0, #1
strh r0, [r2]
ldr r3, _08025B14 @ =gMain
b _08025B3E
.align 2, 0
_08025B10: .4byte 0x00000604
_08025B14: .4byte gMain
_08025B18:
ldr r3, _08025BFC @ =gMain
ldr r0, [r3, #0x44]
adds r0, #0x90
ldr r0, [r0]
movs r4, #0
movs r2, #0
strh r2, [r0]
ldr r6, _08025C00 @ =0x00000602
adds r1, r1, r6
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r7]
adds r6, #2
adds r1, r0, r6
strh r2, [r1]
ldr r1, _08025C04 @ =0x00000603
adds r0, r0, r1
strb r4, [r0]
_08025B3E:
ldr r0, [r3, #0x44]
adds r0, #0x90
ldr r6, [r0]
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r6, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r2, #0x96
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _08025B6C
movs r0, #0xc8
strh r0, [r6, #4]
_08025B6C:
movs r2, #0
lsls r0, r5, #0x10
ldr r3, _08025C08 @ =gOamBuffer
mov r8, r3
ldr r4, _08025C0C @ =gUnknown_086B4F6A
mov ip, r4
asrs r1, r0, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
mov sl, r0
ldr r7, _08025C10 @ =0xFFFFFE00
mov sb, r7
_08025B86:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r1, r8
adds r2, r0, r1
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, sl
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, sl
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, sl
add r1, ip
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _08025C14 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #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 _08025B86
b _08025F36
.align 2, 0
_08025BFC: .4byte gMain
_08025C00: .4byte 0x00000602
_08025C04: .4byte 0x00000603
_08025C08: .4byte gOamBuffer
_08025C0C: .4byte gUnknown_086B4F6A
_08025C10: .4byte 0xFFFFFE00
_08025C14: .4byte 0x000001FF
_08025C18:
ldr r0, [r7]
adds r0, #0xe4
movs r1, #7
strb r1, [r0]
ldr r1, _08025C58 @ =0x040000D4
ldr r0, _08025C5C @ =gUnknown_083A340C
str r0, [r1]
ldr r0, _08025C60 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08025C64 @ =0x80001000
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08025C68 @ =gUnknown_083A542C
str r0, [r1]
ldr r0, _08025C6C @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08025C70 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, [r7]
ldr r3, _08025C74 @ =0x00000602
adds r1, r1, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
bl sub_29924
movs r0, #0x8e
bl m4aSongNumStart
b _08025F36
.align 2, 0
_08025C58: .4byte 0x040000D4
_08025C5C: .4byte gUnknown_083A340C
_08025C60: .4byte 0x06015800
_08025C64: .4byte 0x80001000
_08025C68: .4byte gUnknown_083A542C
_08025C6C: .4byte 0x050003C0
_08025C70: .4byte 0x80000010
_08025C74: .4byte 0x00000602
_08025C78:
ldr r2, _08025CB0 @ =gMain
ldrh r0, [r2, #0x3c]
movs r0, #0
strh r0, [r2, #0x3c]
movs r0, #0x80
lsls r0, r0, #0x13
ldrh r1, [r0]
movs r0, #0xf8
lsls r0, r0, #5
ands r0, r1
lsrs r0, r0, #8
movs r1, #0xa0
ldrh r3, [r2, #0x38]
orrs r0, r1
strh r0, [r2, #0x38]
ldr r0, [r7]
ldr r4, _08025CB4 @ =0x00000604
adds r0, r0, r4
ldrh r0, [r0]
adds r3, r2, #0
cmp r0, #0x48
bhi _08025CF2
cmp r0, #7
bhi _08025CB8
ldrh r0, [r3, #0x3c]
movs r0, #0x10
b _08025CF0
.align 2, 0
_08025CB0: .4byte gMain
_08025CB4: .4byte 0x00000604
_08025CB8:
movs r2, #0
adds r6, r7, #0
ldr r5, _08025D04 @ =0x000006D3
movs r4, #0xd
_08025CC0:
ldr r1, [r6]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r5
adds r1, r1, r0
strb r4, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _08025CC0
ldr r0, [r7]
ldr r6, _08025D08 @ =0x00000604
adds r0, r0, r6
ldrh r1, [r0]
movs r0, #8
subs r0, r0, r1
cmp r0, #0
bge _08025CEA
adds r0, #3
_08025CEA:
asrs r0, r0, #2
adds r0, #0x10
ldrh r1, [r3, #0x3c]
_08025CF0:
strh r0, [r3, #0x3c]
_08025CF2:
ldr r1, [r7]
ldr r0, _08025D08 @ =0x00000604
adds r2, r1, r0
ldrh r0, [r2]
cmp r0, #0x47
bhi _08025D0C
adds r0, #1
strh r0, [r2]
b _08025D28
.align 2, 0
_08025D04: .4byte 0x000006D3
_08025D08: .4byte 0x00000604
_08025D0C:
ldr r2, _08025D4C @ =0x00000602
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
movs r3, #0
strb r0, [r1]
ldr r0, [r7]
ldr r4, _08025D50 @ =0x00000604
adds r1, r0, r4
movs r2, #0
strh r3, [r1]
ldr r6, _08025D54 @ =0x00000603
adds r0, r0, r6
strb r2, [r0]
_08025D28:
ldr r1, [r7]
ldr r7, _08025D50 @ =0x00000604
adds r0, r1, r7
ldrh r0, [r0]
cmp r0, #8
bhi _08025D36
b _08025F36
_08025D36:
ldr r2, _08025D58 @ =0x000006CA
adds r0, r1, r2
ldrh r1, [r0]
ldr r0, _08025D5C @ =0x00006FFF
cmp r1, r0
bls _08025D44
b _08025F36
_08025D44:
bl sub_29A6C
b _08025F36
.align 2, 0
_08025D4C: .4byte 0x00000602
_08025D50: .4byte 0x00000604
_08025D54: .4byte 0x00000603
_08025D58: .4byte 0x000006CA
_08025D5C: .4byte 0x00006FFF
_08025D60:
ldr r0, [r7]
adds r0, #0xe4
movs r1, #8
strb r1, [r0]
ldr r1, _08025DAC @ =0x040000D4
ldr r0, _08025DB0 @ =gUnknown_083A562C
str r0, [r1]
ldr r0, _08025DB4 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08025DB8 @ =0x80000C00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08025DBC @ =gUnknown_083A6E4C
str r0, [r1]
ldr r0, _08025DC0 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08025DC4 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08025DC8 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x94
ldr r1, [r0]
movs r2, #0
movs r0, #1
strh r0, [r1]
ldr r1, [r7]
ldr r3, _08025DCC @ =0x00000602
adds r1, r1, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r7]
movs r4, #0x88
lsls r4, r4, #5
adds r0, r0, r4
strb r2, [r0]
b _08025F36
.align 2, 0
_08025DAC: .4byte 0x040000D4
_08025DB0: .4byte gUnknown_083A562C
_08025DB4: .4byte 0x06015800
_08025DB8: .4byte 0x80000C00
_08025DBC: .4byte gUnknown_083A6E4C
_08025DC0: .4byte 0x050003C0
_08025DC4: .4byte 0x80000010
_08025DC8: .4byte gMain
_08025DCC: .4byte 0x00000602
_08025DD0:
ldr r2, _08025DF8 @ =gUnknown_086AE0D0
ldr r1, [r7]
ldr r5, _08025DFC @ =0x00000603
adds r3, r1, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #1
adds r0, r0, r2
movs r6, #0
ldrsh r0, [r0, r6]
ldr r2, _08025E00 @ =0x00000604
adds r1, r1, r2
ldrh r2, [r1]
cmp r0, r2
ble _08025E08
adds r0, r2, #1
strh r0, [r1]
ldr r3, _08025E04 @ =gMain
b _08025E6C
.align 2, 0
_08025DF8: .4byte gUnknown_086AE0D0
_08025DFC: .4byte 0x00000603
_08025E00: .4byte 0x00000604
_08025E04: .4byte gMain
_08025E08:
movs r4, #0
movs r2, #0
strh r2, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r1, [r7]
ldr r3, _08025F44 @ =0x00000603
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r3, _08025F48 @ =gMain
cmp r0, #0xa
ble _08025E6C
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r0, [r3, #0x44]
adds r0, #0x94
ldr r0, [r0]
strh r2, [r0]
ldr r0, [r7]
ldr r6, _08025F4C @ =0x000006C6
adds r0, r0, r6
strb r4, [r0]
ldr r0, [r7]
ldr r1, _08025F50 @ =0x000006C7
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r7]
subs r6, #0xa1
adds r0, r0, r6
strb r4, [r0]
ldrh r0, [r3, #0x38]
movs r0, #0xce
strh r0, [r3, #0x38]
ldrh r0, [r3, #0x3c]
strh r2, [r3, #0x3c]
ldr r0, [r3, #0x44]
adds r0, #0x94
ldr r0, [r0]
strh r2, [r0]
ldr r0, [r7]
adds r0, r0, r5
movs r1, #0xa
strb r1, [r0]
ldr r0, [r7]
adds r0, #0xe4
strb r4, [r0]
_08025E6C:
ldr r2, [r7]
ldr r7, _08025F44 @ =0x00000603
adds r0, r2, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, [r3, #0x44]
adds r0, #0x94
ldr r6, [r0]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x60
subs r0, r0, r1
strh r0, [r6, #2]
adds r2, #0x5a
ldrh r1, [r2]
movs r2, #0x96
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _08025EA8
movs r0, #0xc8
strh r0, [r6, #4]
_08025EA8:
movs r2, #0
lsls r0, r5, #0x10
ldr r3, _08025F54 @ =gOamBuffer
mov r8, r3
ldr r4, _08025F58 @ =gUnknown_086B4E62
mov ip, r4
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
mov sl, r0
ldr r7, _08025F5C @ =0xFFFFFE00
mov sb, r7
_08025EC2:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r1, r8
adds r2, r0, r1
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, sl
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, sl
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, sl
add r1, ip
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _08025F60 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #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, #3
ble _08025EC2
_08025F36:
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
_08025F44: .4byte 0x00000603
_08025F48: .4byte gMain
_08025F4C: .4byte 0x000006C6
_08025F50: .4byte 0x000006C7
_08025F54: .4byte gOamBuffer
_08025F58: .4byte gUnknown_086B4E62
_08025F5C: .4byte 0xFFFFFE00
_08025F60: .4byte 0x000001FF
thumb_func_start sub_25F64
sub_25F64: @ 0x08025F64
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
ldr r5, _0802607C @ =gUnknown_020314E0
ldr r1, [r5]
movs r2, #0
movs r0, #1
strb r0, [r1, #0x17]
ldr r0, [r5]
movs r3, #0
strh r2, [r0, #0x18]
ldr r1, _08026080 @ =0x000006DB
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x36
strb r3, [r0]
bl Random
ldr r4, [r5]
ldr r6, _08026084 @ =gMain
ldr r1, [r6, #0x4c]
adds r0, r0, r1
movs r1, #6
bl __umodsi3
adds r4, #0x32
strb r0, [r4]
ldr r2, [r5]
ldr r0, _08026088 @ =gUnknown_08055A68
mov sb, r0
adds r0, r2, #0
adds r0, #0x32
movs r3, #0
ldrsb r3, [r0, r3]
ldrb r1, [r6, #4]
lsls r0, r1, #3
subs r0, r0, r1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
ldrh r0, [r0]
adds r2, #0x35
strb r0, [r2]
ldr r1, [r5]
ldr r2, _0802608C @ =gUnknown_08137928
mov r8, r2
adds r0, r1, #0
adds r0, #0x35
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
add r0, r8
ldrh r0, [r0]
ldr r2, _08026090 @ =0x000006DA
adds r1, r1, r2
strb r0, [r1]
ldr r4, [r5]
adds r0, r4, #0
adds r0, #0x32
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
movs r1, #6
bl __modsi3
ldrb r2, [r6, #4]
lsls r1, r2, #3
subs r1, r1, r2
adds r1, r1, r0
lsls r1, r1, #1
add r1, sb
ldrh r0, [r1]
adds r4, #0x35
strb r0, [r4]
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x35
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
add r0, r8
ldrh r0, [r0]
ldr r2, _08026094 @ =0x000006D9
adds r1, r1, r2
strb r0, [r1]
movs r0, #0
movs r1, #0
bl sub_1C7F4
movs r0, #0
movs r1, #1
bl sub_1C7F4
movs r2, #0
ldr r4, _08026098 @ =0x000006D3
movs r3, #0xd
adds r6, r5, #0
_08026032:
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, #5
ble _08026032
ldr r1, _0802609C @ =0x040000D4
ldr r0, _080260A0 @ =gUnknown_083A8AAC
str r0, [r1]
ldr r0, _080260A4 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _080260A8 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _080260AC @ =gUnknown_084FA20C
str r0, [r1]
ldr r0, _080260B0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _080260B4 @ =0x80000140
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r6]
adds r0, #0xe4
movs r1, #0xc
strb r1, [r0]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0802607C: .4byte gUnknown_020314E0
_08026080: .4byte 0x000006DB
_08026084: .4byte gMain
_08026088: .4byte gUnknown_08055A68
_0802608C: .4byte gUnknown_08137928
_08026090: .4byte 0x000006DA
_08026094: .4byte 0x000006D9
_08026098: .4byte 0x000006D3
_0802609C: .4byte 0x040000D4
_080260A0: .4byte gUnknown_083A8AAC
_080260A4: .4byte 0x050003C0
_080260A8: .4byte 0x80000010
_080260AC: .4byte gUnknown_084FA20C
_080260B0: .4byte 0x06015800
_080260B4: .4byte 0x80000140
thumb_func_start sub_260B8
sub_260B8: @ 0x080260B8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r1, _080260E4 @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
subs r0, #1
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r1
cmp r0, #5
bls _080260D8
b _0802674E
_080260D8:
lsls r0, r0, #2
ldr r1, _080260E8 @ =_080260EC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080260E4: .4byte gUnknown_020314E0
_080260E8: .4byte _080260EC
_080260EC: @ jump table
.4byte _08026104 @ case 0
.4byte _080261E0 @ case 1
.4byte _080262E4 @ case 2
.4byte _08026318 @ case 3
.4byte _08026318 @ case 4
.4byte _08026608 @ case 5
_08026104:
ldr r3, _08026198 @ =gMain
ldrh r0, [r3, #0x38]
movs r5, #0
movs r4, #0
ldr r0, _0802619C @ =0x00001C10
strh r0, [r3, #0x38]
ldrh r0, [r3, #0x3a]
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r3, #0x3a]
mov r0, sb
ldr r1, [r0]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
mov r2, sb
ldr r1, [r2]
movs r6, #0xdc
lsls r6, r6, #3
adds r0, r1, r6
strh r4, [r0]
ldr r7, _080261A0 @ =0x000005FE
adds r0, r1, r7
strh r4, [r0]
ldr r0, _080261A4 @ =0x000005FB
adds r1, r1, r0
movs r2, #1
strb r2, [r1]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x50]
strh r2, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x54]
strh r2, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x5c]
strh r2, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x58]
strh r2, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x4c]
strh r2, [r0]
mov r1, sb
ldr r2, [r1]
adds r6, #0x10
adds r0, r2, r6
movs r1, #0x1e
strh r1, [r0]
adds r7, #0xf4
adds r0, r2, r7
strh r1, [r0]
ldr r1, _080261A8 @ =0x000006F4
adds r0, r2, r1
strh r4, [r0]
ldrb r0, [r3, #4]
cmp r0, #0
bne _080261B0
movs r3, #0xb8
lsls r3, r3, #1
adds r0, r2, r3
movs r1, #0xa
strb r1, [r0]
mov r4, sb
ldr r0, [r4]
ldr r5, _080261AC @ =0x00000171
adds r0, r0, r5
strb r1, [r0]
ldr r0, [r4]
movs r6, #0xb9
lsls r6, r6, #1
adds r0, r0, r6
strb r1, [r0]
b _080261CC
.align 2, 0
_08026198: .4byte gMain
_0802619C: .4byte 0x00001C10
_080261A0: .4byte 0x000005FE
_080261A4: .4byte 0x000005FB
_080261A8: .4byte 0x000006F4
_080261AC: .4byte 0x00000171
_080261B0:
movs r7, #0xb8
lsls r7, r7, #1
adds r0, r2, r7
strb r5, [r0]
mov r1, sb
ldr r0, [r1]
ldr r2, _080261DC @ =0x00000171
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r1]
movs r3, #0xb9
lsls r3, r3, #1
adds r0, r0, r3
strb r5, [r0]
_080261CC:
mov r4, sb
ldr r0, [r4]
movs r5, #0xba
lsls r5, r5, #1
adds r0, r0, r5
movs r1, #0
strh r1, [r0]
b _0802674E
.align 2, 0
_080261DC: .4byte 0x00000171
_080261E0:
mov r6, sb
ldr r1, [r6]
ldr r7, _080262CC @ =0x000005FC
adds r0, r1, r7
movs r3, #0
ldrsh r2, [r0, r3]
cmp r2, #0
bne _080261FA
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r0, [r6]
strh r2, [r0, #0x18]
_080261FA:
ldr r0, _080262D0 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _08026296
mov r4, sb
ldr r3, [r4]
movs r4, #0xba
lsls r4, r4, #1
adds r2, r3, r4
ldrh r0, [r2]
cmp r0, #0x8e
bhi _08026224
ldr r1, _080262D4 @ =gUnknown_08137944
lsrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r5, #0xb8
lsls r5, r5, #1
adds r0, r3, r5
strb r1, [r0]
_08026224:
mov r6, sb
ldr r2, [r6]
adds r1, r2, r4
ldrh r0, [r1]
subs r0, #0x12
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x8e
bhi _08026254
ldr r3, _080262D4 @ =gUnknown_08137944
ldrh r1, [r1]
adds r0, r1, #0
subs r0, #0x12
cmp r0, #0
bge _08026244
adds r0, #7
_08026244:
asrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
movs r7, #0xb9
lsls r7, r7, #1
adds r1, r2, r7
strb r0, [r1]
_08026254:
mov r0, sb
ldr r2, [r0]
movs r3, #0xba
lsls r3, r3, #1
adds r1, r2, r3
ldrh r0, [r1]
subs r0, #0x24
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x8e
bhi _08026286
ldr r3, _080262D4 @ =gUnknown_08137944
ldrh r1, [r1]
adds r0, r1, #0
subs r0, #0x24
cmp r0, #0
bge _08026278
adds r0, #7
_08026278:
asrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
ldr r4, _080262D8 @ =0x00000171
adds r1, r2, r4
strb r0, [r1]
_08026286:
mov r5, sb
ldr r1, [r5]
movs r6, #0xba
lsls r6, r6, #1
adds r1, r1, r6
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_08026296:
mov r7, sb
ldr r4, [r7]
movs r1, #0xde
lsls r1, r1, #3
adds r0, r4, r1
ldrh r0, [r0]
lsls r0, r0, #5
ldr r2, _080262DC @ =0x000006F2
adds r1, r4, r2
ldrh r1, [r1]
bl __divsi3
movs r3, #0xdc
lsls r3, r3, #3
adds r1, r4, r3
strh r0, [r1]
ldr r5, _080262E0 @ =0x000006C4
adds r4, r4, r5
movs r0, #1
strb r0, [r4]
ldr r1, [r7]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
bl sub_26778
b _0802674E
.align 2, 0
_080262CC: .4byte 0x000005FC
_080262D0: .4byte gMain
_080262D4: .4byte gUnknown_08137944
_080262D8: .4byte 0x00000171
_080262DC: .4byte 0x000006F2
_080262E0: .4byte 0x000006C4
_080262E4:
ldr r1, _08026338 @ =gUnknown_020314E0
ldr r2, [r1]
ldrh r0, [r2, #0x18]
cmp r0, #0xe
bhi _08026312
adds r0, #1
strh r0, [r2, #0x18]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xf
bne _08026312
ldrb r0, [r2, #0x17]
adds r0, #1
strb r0, [r2, #0x17]
ldr r1, [r1]
ldr r6, _0802633C @ =0x000006F2
adds r2, r1, r6
movs r0, #6
strh r0, [r2]
ldr r7, _08026340 @ =0x000006F4
adds r1, r1, r7
movs r0, #0
strh r0, [r1]
_08026312:
movs r0, #0
bl sub_26820
_08026318:
ldr r0, _08026338 @ =gUnknown_020314E0
ldr r5, [r0]
movs r2, #0x17
ldrsb r2, [r5, r2]
mov sb, r0
cmp r2, #3
bne _08026344
movs r0, #0xde
lsls r0, r0, #3
adds r4, r5, r0
ldrh r0, [r4]
subs r0, #1
strh r0, [r4]
ldr r2, _0802633C @ =0x000006F2
adds r1, r5, r2
b _0802647C
.align 2, 0
_08026338: .4byte gUnknown_020314E0
_0802633C: .4byte 0x000006F2
_08026340: .4byte 0x000006F4
_08026344:
cmp r2, #4
beq _0802634A
b _08026494
_0802634A:
movs r3, #0xde
lsls r3, r3, #3
adds r0, r5, r3
ldrh r1, [r0]
adds r1, #1
strh r1, [r0]
ldrb r0, [r5, #5]
cmp r0, #0
beq _080263C0
movs r0, #0x17
ldrsb r0, [r5, r0]
cmp r0, #4
bne _080263C0
ldr r4, _08026380 @ =0x000006F4
adds r1, r5, r4
ldrh r0, [r1]
cmp r0, #0
bne _080263CE
ldr r0, _08026384 @ =gMain
ldrb r0, [r0, #0xa]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08026388
movs r0, #0x30
b _0802638A
.align 2, 0
_08026380: .4byte 0x000006F4
_08026384: .4byte gMain
_08026388:
movs r0, #1
_0802638A:
strh r0, [r1]
mov r5, sb
ldr r1, [r5]
ldr r6, _08026428 @ =0x000006F4
adds r0, r1, r6
ldrh r2, [r0]
ldr r7, _0802642C @ =0x000006F6
adds r0, r1, r7
strh r2, [r0]
ldr r2, _08026430 @ =0x00000163
adds r0, r1, r2
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x21
strb r1, [r0]
ldr r1, [r5]
ldr r3, _08026434 @ =0x00000724
adds r2, r1, r3
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r2]
movs r4, #0xb6
lsls r4, r4, #1
adds r1, r1, r4
movs r0, #2
strb r0, [r1]
_080263C0:
mov r5, sb
ldr r0, [r5]
ldr r6, _08026428 @ =0x000006F4
adds r0, r0, r6
ldrh r0, [r0]
cmp r0, #0
beq _0802646E
_080263CE:
mov r7, sb
ldr r2, [r7]
ldr r0, _08026428 @ =0x000006F4
adds r1, r2, r0
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
ldr r0, _08026438 @ =gMain
ldrb r0, [r0, #0xa]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08026412
ldr r1, _0802643C @ =0x00000283
adds r0, r2, r1
movs r1, #4
strb r1, [r0]
ldr r2, [r7]
ldr r3, _08026428 @ =0x000006F4
adds r1, r2, r3
ldrh r0, [r1]
cmp r0, #0x17
bhi _08026412
movs r0, #0x18
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x32
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bne _08026412
movs r0, #0
strh r0, [r1]
_08026412:
mov r5, sb
ldr r4, [r5]
ldr r6, _08026428 @ =0x000006F4
adds r1, r4, r6
ldrh r0, [r1]
cmp r0, #0
bne _08026440
movs r0, #5
strb r0, [r4, #0x17]
b _0802646E
.align 2, 0
_08026428: .4byte 0x000006F4
_0802642C: .4byte 0x000006F6
_08026430: .4byte 0x00000163
_08026434: .4byte 0x00000724
_08026438: .4byte gMain
_0802643C: .4byte 0x00000283
_08026440:
movs r7, #0xde
lsls r7, r7, #3
adds r6, r4, r7
ldr r0, _08026488 @ =0x000006F2
adds r5, r4, r0
ldrh r0, [r6]
ldrh r2, [r5]
cmp r0, r2
bne _0802646E
ldrh r1, [r1]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #1
ldr r3, _0802648C @ =0x000006F6
adds r1, r4, r3
ldrh r1, [r1]
bl __divsi3
movs r1, #0x28
subs r1, r1, r0
movs r0, #0
strh r1, [r5]
strh r0, [r6]
_0802646E:
ldr r0, _08026490 @ =gUnknown_020314E0
ldr r1, [r0]
movs r5, #0xde
lsls r5, r5, #3
adds r4, r1, r5
ldr r6, _08026488 @ =0x000006F2
adds r1, r1, r6
_0802647C:
ldrh r0, [r4]
ldrh r1, [r1]
bl __umodsi3
strh r0, [r4]
b _080264E2
.align 2, 0
_08026488: .4byte 0x000006F2
_0802648C: .4byte 0x000006F6
_08026490: .4byte gUnknown_020314E0
_08026494:
movs r7, #0xde
lsls r7, r7, #3
adds r4, r5, r7
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
ldr r0, _08026554 @ =0x000006F2
adds r1, r5, r0
ldrh r0, [r4]
ldrh r1, [r1]
bl __umodsi3
strh r0, [r4]
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r2, #0
bne _080264E2
strh r2, [r5, #0x18]
ldrb r0, [r5, #0x17]
adds r0, #1
strb r0, [r5, #0x17]
ldr r1, _08026558 @ =gMain
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x5c]
strh r2, [r0]
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x50]
strh r2, [r0]
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x54]
strh r2, [r0]
ldr r0, [r1, #0x44]
adds r0, #0x88
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
movs r0, #0x93
bl m4aSongNumStart
_080264E2:
ldr r6, _0802655C @ =gUnknown_020314E0
ldr r5, [r6]
movs r7, #0xde
lsls r7, r7, #3
adds r4, r5, r7
ldrh r0, [r4]
lsls r0, r0, #5
ldr r2, _08026554 @ =0x000006F2
adds r1, r5, r2
ldrh r1, [r1]
bl __divsi3
movs r3, #0xdc
lsls r3, r3, #3
adds r1, r5, r3
strh r0, [r1]
ldrh r0, [r4]
cmp r0, #0
bne _0802651C
ldr r4, _08026560 @ =0x000006DA
adds r0, r5, r4
ldrb r1, [r0]
ldr r2, _08026564 @ =0x000006D9
adds r0, r5, r2
strb r1, [r0]
movs r0, #0
movs r1, #0
bl sub_1C7F4
_0802651C:
ldr r4, [r6]
adds r0, r4, r7
ldrh r5, [r0]
cmp r5, #1
beq _08026528
b _0802674E
_08026528:
ldr r0, _08026558 @ =gMain
movs r1, #0xa
ldrsb r1, [r0, r1]
cmp r1, #0
beq _08026568
adds r4, #0x32
movs r0, #0
ldrsb r0, [r4, r0]
adds r0, #1
movs r1, #7
bl __modsi3
strb r0, [r4]
ldr r0, [r6]
adds r0, #0x33
movs r1, #0
strb r1, [r0]
ldr r0, [r6]
adds r0, #0x34
strb r5, [r0]
b _080265A8
.align 2, 0
_08026554: .4byte 0x000006F2
_08026558: .4byte gMain
_0802655C: .4byte gUnknown_020314E0
_08026560: .4byte 0x000006DA
_08026564: .4byte 0x000006D9
_08026568:
adds r4, #0x32
movs r0, #0
ldrsb r0, [r4, r0]
adds r0, #1
movs r1, #6
bl __modsi3
strb r0, [r4]
ldr r4, [r6]
adds r0, r4, #0
adds r0, #0x32
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #1
movs r1, #6
bl __modsi3
adds r4, #0x33
strb r0, [r4]
ldr r4, [r6]
adds r0, r4, #0
adds r0, #0x32
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #2
movs r1, #6
bl __modsi3
adds r4, #0x34
strb r0, [r4]
_080265A8:
ldr r5, _080265F4 @ =gUnknown_020314E0
ldr r2, [r5]
ldr r4, _080265F8 @ =gUnknown_08055A68
adds r0, r2, #0
adds r0, #0x32
movs r3, #0
ldrsb r3, [r0, r3]
ldr r6, _080265FC @ =gMain
ldrb r1, [r6, #4]
lsls r0, r1, #3
subs r0, r0, r1
adds r0, r0, r3
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
adds r2, #0x35
strb r0, [r2]
ldr r1, [r5]
ldr r2, _08026600 @ =gUnknown_08137928
adds r0, r1, #0
adds r0, #0x35
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r7, _08026604 @ =0x000006DA
adds r1, r1, r7
strb r0, [r1]
movs r0, #0
movs r1, #1
bl sub_1C7F4
movs r0, #0x81
bl m4aSongNumStart
b _0802674E
.align 2, 0
_080265F4: .4byte gUnknown_020314E0
_080265F8: .4byte gUnknown_08055A68
_080265FC: .4byte gMain
_08026600: .4byte gUnknown_08137928
_08026604: .4byte 0x000006DA
_08026608:
ldr r0, _08026640 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #0x18]
cmp r0, #0x31
bhi _08026628
adds r0, #1
strh r0, [r1, #0x18]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x32
bne _08026628
movs r0, #0
strb r0, [r1, #0x17]
movs r0, #1
bl sub_19B64
_08026628:
ldr r0, _08026640 @ =gUnknown_020314E0
ldr r2, [r0]
ldrh r3, [r2, #0x18]
mov sb, r0
cmp r3, #0x1c
bls _08026636
b _08026742
_08026636:
cmp r3, #7
bhi _08026644
adds r0, r3, #0
lsrs r3, r0, #2
b _08026654
.align 2, 0
_08026640: .4byte gUnknown_020314E0
_08026644:
ldrh r0, [r2, #0x18]
subs r0, #8
movs r1, #3
bl __divsi3
adds r0, #2
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
_08026654:
ldr r0, _08026760 @ =gMain
ldr r1, [r0, #0x44]
adds r1, #0x88
ldr r6, [r1]
ldrh r1, [r6]
cmp r1, #0
beq _08026724
mov r0, sb
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r6, #2]
movs r4, #0xdc
lsls r4, r4, #3
adds r2, r1, r4
movs r5, #0x96
lsls r5, r5, #1
adds r0, r5, #0
ldrh r2, [r2]
adds r0, r0, r2
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _08026696
movs r0, #0xc8
strh r0, [r6, #4]
_08026696:
movs r2, #0
lsls r1, r3, #0x10
ldr r7, _08026764 @ =gOamBuffer
mov r8, r7
ldr r0, _08026768 @ =gUnknown_086B51CE
mov ip, r0
asrs r1, r1, #0x10
movs r0, #0x36
adds r3, r1, #0
muls r3, r0, r3
str r3, [sp]
ldr r4, _0802676C @ =0xFFFFFE00
mov sl, r4
_080266B0:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
adds r4, r6, r4
ldrh r2, [r4]
lsls r2, r2, #3
add r2, r8
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
ldr r5, [sp]
adds r0, r0, r5
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r5
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r5
add r1, ip
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, r8
ldrh r5, [r2, #2]
lsls r1, r5, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _08026770 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sl
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #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, #8
ble _080266B0
_08026724:
mov r4, sb
ldr r3, [r4]
ldrh r0, [r3, #0x18]
cmp r0, #0x1c
bne _08026742
ldr r5, _08026760 @ =gMain
ldr r0, [r5, #0x44]
adds r0, #0x88
ldr r1, [r0]
movs r2, #0
movs r0, #0
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xe4
strb r2, [r0]
_08026742:
mov r6, sb
ldr r0, [r6]
ldr r7, _08026774 @ =0x000006C4
adds r0, r0, r7
movs r1, #0
strb r1, [r0]
_0802674E:
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
_08026760: .4byte gMain
_08026764: .4byte gOamBuffer
_08026768: .4byte gUnknown_086B51CE
_0802676C: .4byte 0xFFFFFE00
_08026770: .4byte 0x000001FF
_08026774: .4byte 0x000006C4
thumb_func_start sub_26778
sub_26778: @ 0x08026778
push {r4, r5, lr}
ldr r0, _080267E0 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x64
bl __umodsi3
movs r1, #0xa
bl __udivsi3
ldr r4, _080267E4 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r1, _080267E8 @ =0x0000070C
adds r3, r2, r1
movs r5, #0
movs r1, #0
strh r1, [r3]
ldr r1, _080267EC @ =gUnknown_08137AB8
lsls r0, r0, #0x10
asrs r3, r0, #0x10
lsls r0, r3, #1
adds r0, r0, r1
ldrh r1, [r0]
ldr r0, _080267F0 @ =0x0000072F
adds r2, r2, r0
strb r1, [r2]
ldr r0, [r4]
ldr r2, _080267F4 @ =0x0000072E
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
subs r2, #3
adds r0, r0, r2
strb r1, [r0]
cmp r3, #7
beq _080267C2
cmp r3, #9
bne _080267FC
_080267C2:
ldr r0, [r4]
movs r1, #0xe5
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r4]
ldr r2, _080267F8 @ =0x0000072A
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
subs r2, #1
adds r0, r0, r2
strb r1, [r0]
b _08026816
.align 2, 0
_080267E0: .4byte gMain
_080267E4: .4byte gUnknown_020314E0
_080267E8: .4byte 0x0000070C
_080267EC: .4byte gUnknown_08137AB8
_080267F0: .4byte 0x0000072F
_080267F4: .4byte 0x0000072E
_080267F8: .4byte 0x0000072A
_080267FC:
ldr r0, [r4]
movs r1, #0xe5
lsls r1, r1, #3
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r4]
ldr r2, _0802681C @ =0x0000072A
adds r0, r0, r2
strb r5, [r0]
ldr r0, [r4]
adds r1, #1
adds r0, r0, r1
strb r5, [r0]
_08026816:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0802681C: .4byte 0x0000072A
thumb_func_start sub_26820
sub_26820: @ 0x08026820
push {r4, lr}
lsls r0, r0, #0x10
asrs r1, r0, #0x10
cmp r1, #0
beq _08026878
ldr r2, _0802686C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _08026870 @ =0x0000072A
adds r0, r0, r1
movs r3, #1
strb r3, [r0]
ldr r0, [r2]
movs r4, #0xe5
lsls r4, r4, #3
adds r0, r0, r4
strb r3, [r0]
ldr r0, [r2]
adds r1, #7
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r2]
adds r4, #6
adds r0, r0, r4
movs r1, #3
strb r1, [r0]
ldr r0, [r2]
subs r4, #3
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r2]
adds r4, #4
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r2]
ldr r1, _08026874 @ =0x00000729
adds r0, r0, r1
strb r3, [r0]
b _080268AC
.align 2, 0
_0802686C: .4byte gUnknown_020314E0
_08026870: .4byte 0x0000072A
_08026874: .4byte 0x00000729
_08026878:
ldr r2, _080268BC @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _080268C0 @ =0x00000729
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r2]
ldr r4, _080268C4 @ =0x0000072A
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r2]
subs r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r4, #4
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r2]
adds r3, #3
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r4, #1
adds r0, r0, r4
movs r1, #2
strb r1, [r0]
_080268AC:
ldr r0, [r2]
ldr r1, _080268C8 @ =0x0000070E
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080268BC: .4byte gUnknown_020314E0
_080268C0: .4byte 0x00000729
_080268C4: .4byte 0x0000072A
_080268C8: .4byte 0x0000070E
thumb_func_start sub_268CC
sub_268CC: @ 0x080268CC
push {r4, r5, r6, r7, lr}
ldr r5, _08026974 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r1, _08026978 @ =0x000006BC
adds r0, r0, r1
movs r6, #0
strb r6, [r0]
ldr r0, [r5]
ldr r2, _0802697C @ =0x000006BD
adds r0, r0, r2
strb r6, [r0]
ldr r7, _08026980 @ =gMain
ldrb r0, [r7, #4]
cmp r0, #0
bne _08026902
ldr r0, [r5]
ldr r1, _08026984 @ =0x000002BE
adds r0, r0, r1
strb r6, [r0]
ldr r0, [r5]
ldr r2, _08026988 @ =0x000002C2
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
adds r1, #2
adds r0, r0, r1
strh r6, [r0]
_08026902:
ldr r0, [r5]
ldr r2, _0802698C @ =0x000006BE
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
movs r1, #0xd8
lsls r1, r1, #3
adds r0, r0, r1
movs r4, #0
strh r6, [r0]
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r5]
ldr r2, _08026990 @ =0x000006C4
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r7, #0x44]
ldr r0, [r0, #0x34]
strh r6, [r0]
ldr r0, [r5]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
subs r2, #0xd1
adds r0, r0, r2
strb r4, [r0]
ldr r0, [r5]
ldr r2, _08026994 @ =0x00000736
adds r1, r0, r2
strb r4, [r1]
ldr r1, _08026998 @ =0x00000739
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
adds r2, #1
adds r1, r0, r2
strb r4, [r1]
ldr r1, _0802699C @ =0x0000073A
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r5]
adds r2, #1
adds r1, r0, r2
strb r4, [r1]
ldr r1, _080269A0 @ =0x0000073B
adds r0, r0, r1
strb r4, [r0]
bl sub_4D648
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08026974: .4byte gUnknown_020314E0
_08026978: .4byte 0x000006BC
_0802697C: .4byte 0x000006BD
_08026980: .4byte gMain
_08026984: .4byte 0x000002BE
_08026988: .4byte 0x000002C2
_0802698C: .4byte 0x000006BE
_08026990: .4byte 0x000006C4
_08026994: .4byte 0x00000736
_08026998: .4byte 0x00000739
_0802699C: .4byte 0x0000073A
_080269A0: .4byte 0x0000073B
thumb_func_start sub_269A4
sub_269A4: @ 0x080269A4
push {r4, r5, lr}
ldr r2, _080269F4 @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0
strb r3, [r0, #0x17]
ldr r0, [r2]
strh r3, [r0, #0x18]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r2, [r2]
adds r4, r2, #0
adds r4, #0x6c
movs r5, #0xe1
lsls r5, r5, #4
adds r0, r5, #0
ldrh r1, [r4]
adds r0, r0, r1
ldr r5, _080269F8 @ =0x00000296
adds r1, r2, r5
strh r0, [r1]
strh r3, [r4]
ldr r0, _080269FC @ =0x00000724
adds r2, r2, r0
subs r0, #0x1c
strh r0, [r2]
ldr r1, _08026A00 @ =0x040000D4
ldr r0, _08026A04 @ =gUnknown_081C0064
str r0, [r1]
ldr r0, _08026A08 @ =0x05000180
str r0, [r1, #4]
ldr r0, _08026A0C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080269F4: .4byte gUnknown_020314E0
_080269F8: .4byte 0x00000296
_080269FC: .4byte 0x00000724
_08026A00: .4byte 0x040000D4
_08026A04: .4byte gUnknown_081C0064
_08026A08: .4byte 0x05000180
_08026A0C: .4byte 0x80000010
thumb_func_start sub_26A10
sub_26A10: @ 0x08026A10
push {r4, r5, r6, lr}
ldr r4, _08026A68 @ =gUnknown_020314E0
ldr r1, [r4]
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 _08026A4C
ldr r3, _08026A6C @ =0x00000296
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #1
bhi _08026A4C
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #5
bgt _08026A4C
bl m4aMPlayAllStop
movs r0, #0x13
bl m4aSongNumStart
ldr r0, [r4]
movs r1, #0xc8
strh r1, [r0, #0x18]
movs r1, #6
strb r1, [r0, #0x17]
_08026A4C:
ldr r1, _08026A68 @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #7
bls _08026A5E
b _08026E9E
_08026A5E:
lsls r0, r0, #2
ldr r1, _08026A70 @ =_08026A74
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08026A68: .4byte gUnknown_020314E0
_08026A6C: .4byte 0x00000296
_08026A70: .4byte _08026A74
_08026A74: @ jump table
.4byte _08026A94 @ case 0
.4byte _08026AC4 @ case 1
.4byte _08026C10 @ case 2
.4byte _08026C68 @ case 3
.4byte _08026C88 @ case 4
.4byte _08026CC0 @ case 5
.4byte _08026E5C @ case 6
.4byte _08026E84 @ case 7
_08026A94:
ldr r0, _08026ABC @ =gMain
ldrb r2, [r0, #0xf]
cmp r2, #0
bne _08026AAE
ldr r0, [r5]
ldrb r1, [r0, #0x17]
adds r1, #1
strb r1, [r0, #0x17]
ldr r0, [r5]
movs r1, #0xe1
lsls r1, r1, #3
adds r0, r0, r1
str r2, [r0]
_08026AAE:
ldr r0, [r5]
ldr r2, _08026AC0 @ =0x000006BC
adds r0, r0, r2
movs r1, #0
strb r1, [r0]
b _08026E9E
.align 2, 0
_08026ABC: .4byte gMain
_08026AC0: .4byte 0x000006BC
_08026AC4:
movs r0, #4
movs r1, #0
bl sub_1C7F4
ldr r4, _08026B5C @ =gUnknown_020314E0
ldr r0, [r4]
ldrh r0, [r0, #0x18]
cmp r0, #0x23
bne _08026ADC
movs r0, #0x17
bl m4aSongNumStart
_08026ADC:
ldr r1, [r4]
ldr r3, _08026B60 @ =0x000006BC
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08026B1E
ldrb r0, [r1, #0x17]
adds r0, #1
movs r5, #0
strb r0, [r1, #0x17]
ldr r0, [r4]
ldrh r0, [r0, #0x18]
cmp r0, #0x22
bhi _08026B02
movs r0, #0x17
bl m4aSongNumStart
_08026B02:
ldr r0, [r4]
ldr r1, _08026B64 @ =0x000006BD
adds r0, r0, r1
strb r5, [r0]
ldr r0, [r4]
ldr r2, _08026B68 @ =0x000006BE
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
ldr r0, [r4]
movs r3, #0xd8
lsls r3, r3, #3
adds r0, r0, r3
strh r5, [r0]
_08026B1E:
ldr r5, _08026B5C @ =gUnknown_020314E0
ldr r6, [r5]
ldrh r4, [r6, #0x18]
adds r0, r4, #0
movs r1, #0x28
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0xa
bl __udivsi3
adds r4, #1
movs r3, #0
strh r4, [r6, #0x18]
lsls r0, r0, #0x10
asrs r2, r0, #0x10
cmp r2, #0
bne _08026B74
ldr r1, _08026B6C @ =0x00000736
adds r0, r6, r1
strb r3, [r0]
ldr r0, [r5]
ldr r2, _08026B70 @ =0x00000737
adds r0, r0, r2
strb r3, [r0]
ldr r0, [r5]
adds r1, #2
adds r0, r0, r1
strb r3, [r0]
b _08026BD8
.align 2, 0
_08026B5C: .4byte gUnknown_020314E0
_08026B60: .4byte 0x000006BC
_08026B64: .4byte 0x000006BD
_08026B68: .4byte 0x000006BE
_08026B6C: .4byte 0x00000736
_08026B70: .4byte 0x00000737
_08026B74:
cmp r2, #1
bne _08026B9C
ldr r0, _08026B94 @ =0x00000736
adds r1, r6, r0
movs r0, #3
strb r0, [r1]
ldr r0, [r5]
ldr r1, _08026B98 @ =0x00000737
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r5]
movs r2, #0xe7
lsls r2, r2, #3
adds r0, r0, r2
strb r3, [r0]
b _08026BD8
.align 2, 0
_08026B94: .4byte 0x00000736
_08026B98: .4byte 0x00000737
_08026B9C:
cmp r2, #2
bne _08026BC0
ldr r3, _08026BBC @ =0x00000736
adds r0, r6, r3
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
movs r1, #0xe7
lsls r1, r1, #3
adds r0, r0, r1
strb r2, [r0]
b _08026BD8
.align 2, 0
_08026BBC: .4byte 0x00000736
_08026BC0:
ldr r2, _08026C04 @ =0x00000736
adds r0, r6, r2
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
ldr r3, _08026C08 @ =0x00000737
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r2, #2
adds r0, r0, r2
strb r1, [r0]
_08026BD8:
ldr r0, [r5]
ldr r3, _08026C04 @ =0x00000736
adds r1, r0, r3
ldrb r1, [r1]
ldr r2, _08026C0C @ =0x00000739
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
adds r3, #1
adds r1, r0, r3
ldrb r1, [r1]
adds r2, #1
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
adds r3, #1
adds r1, r0, r3
ldrb r1, [r1]
adds r2, #1
adds r0, r0, r2
strb r1, [r0]
b _08026E9E
.align 2, 0
_08026C04: .4byte 0x00000736
_08026C08: .4byte 0x00000737
_08026C0C: .4byte 0x00000739
_08026C10:
bl sub_219A8
ldr r5, _08026C5C @ =gUnknown_020314E0
ldr r0, [r5]
movs r3, #0xe6
lsls r3, r3, #3
adds r0, r0, r3
movs r4, #0
movs r1, #2
strb r1, [r0]
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r5]
ldr r2, _08026C60 @ =0x00000736
adds r1, r0, r2
strb r4, [r1]
ldr r3, _08026C64 @ =0x00000739
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r5]
adds r2, #1
adds r1, r0, r2
strb r4, [r1]
adds r3, #1
adds r0, r0, r3
strb r4, [r0]
ldr r0, [r5]
adds r2, #1
adds r1, r0, r2
strb r4, [r1]
adds r3, #1
adds r0, r0, r3
strb r4, [r0]
ldr r1, [r5]
b _08026E72
.align 2, 0
_08026C5C: .4byte gUnknown_020314E0
_08026C60: .4byte 0x00000736
_08026C64: .4byte 0x00000739
_08026C68:
bl sub_219EC
ldr r0, _08026C84 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
beq _08026C80
b _08026E9E
_08026C80:
b _08026E72
.align 2, 0
_08026C84: .4byte gUnknown_020314E0
_08026C88:
ldr r0, [r5]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r2, #0
movs r1, #3
strb r1, [r0]
ldr r1, [r5]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r0, [r5]
strh r2, [r0, #0x18]
movs r3, #0xe1
lsls r3, r3, #3
adds r1, r0, r3
str r2, [r1]
ldr r1, _08026CBC @ =0x000006EC
adds r0, r0, r1
movs r1, #0x2f
strb r1, [r0]
movs r0, #7
movs r1, #0
bl sub_1C7F4
b _08026E9E
.align 2, 0
_08026CBC: .4byte 0x000006EC
_08026CC0:
ldr r4, _08026D34 @ =gUnknown_020314E0
ldr r1, [r4]
ldrh r0, [r1, #0x28]
cmp r0, #0x91
beq _08026CCC
b _08026DC6
_08026CCC:
adds r0, #1
strh r0, [r1, #0x28]
ldr r2, _08026D38 @ =0x000006EC
adds r1, r1, r2
movs r0, #0x2f
strb r0, [r1]
movs r0, #7
movs r1, #0
bl sub_1C7F4
ldr r0, _08026D3C @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08026D92
ldr r0, [r4]
movs r1, #0x90
strh r1, [r0, #0x28]
bl m4aMPlayAllStop
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0x36
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bgt _08026D80
adds r1, r2, #0
adds r1, #0x34
movs r0, #0
ldrsb r0, [r1, r0]
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r3, _08026D40 @ =0x000006BC
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08026D44
adds r0, r2, #0
adds r0, #0x33
ldrb r1, [r0]
subs r0, #1
b _08026D4A
.align 2, 0
_08026D34: .4byte gUnknown_020314E0
_08026D38: .4byte 0x000006EC
_08026D3C: .4byte gMain
_08026D40: .4byte 0x000006BC
_08026D44:
ldrb r1, [r1]
adds r0, r2, #0
adds r0, #0x32
_08026D4A:
strb r1, [r0]
ldr r6, _08026D7C @ =gUnknown_020314E0
ldr r5, [r6]
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #1
movs r1, #6
bl __modsi3
adds r5, #0x33
strb r0, [r5]
ldr r5, [r6]
adds r4, #2
adds r0, r4, #0
movs r1, #6
bl __modsi3
adds r5, #0x34
strb r0, [r5]
ldr r1, [r6]
adds r1, #0x36
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08026DC6
.align 2, 0
_08026D7C: .4byte gUnknown_020314E0
_08026D80:
adds r1, r2, #0
adds r1, #0x32
movs r0, #6
strb r0, [r1]
ldr r0, [r4]
adds r0, #0x36
movs r1, #0
strb r1, [r0]
b _08026DC6
_08026D92:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08026DC6
bl m4aMPlayAllStop
movs r0, #0x66
bl m4aSongNumStart
ldr r1, [r4]
movs r0, #0x3c
strh r0, [r1, #0x28]
movs r0, #6
strb r0, [r1, #0x17]
ldr r1, [r4]
ldr r2, _08026E14 @ =0x00000714
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08026DC6
ldr r3, _08026E18 @ =0x000006EE
adds r1, r1, r3
movs r0, #0x78
strh r0, [r1]
_08026DC6:
ldr r0, _08026E1C @ =gUnknown_020314E0
ldr r3, [r0]
ldrh r4, [r3, #0x28]
adds r2, r4, #0
adds r5, r0, #0
cmp r2, #0x82
bne _08026E3A
adds r0, r4, #1
strh r0, [r3, #0x28]
ldrh r1, [r3, #0x18]
ldr r0, _08026E20 @ =0x000001E9
cmp r1, r0
bhi _08026E2C
bl sub_2E094
ldr r5, [r5]
ldrb r0, [r5, #0x1c]
cmp r0, #0
beq _08026DF8
ldrh r1, [r5, #0x18]
ldr r0, _08026E24 @ =0x000001AB
cmp r1, r0
bls _08026DF8
adds r0, #1
strh r0, [r5, #0x18]
_08026DF8:
ldr r0, _08026E1C @ =gUnknown_020314E0
ldr r3, [r0]
ldrh r2, [r3, #0x18]
movs r1, #0xc5
lsls r1, r1, #1
adds r5, r0, #0
cmp r2, r1
bne _08026E30
movs r0, #1
strb r0, [r3, #0x1c]
ldr r1, [r5]
ldr r0, _08026E28 @ =0x0007A120
str r0, [r1, #0x3c]
b _08026E30
.align 2, 0
_08026E14: .4byte 0x00000714
_08026E18: .4byte 0x000006EE
_08026E1C: .4byte gUnknown_020314E0
_08026E20: .4byte 0x000001E9
_08026E24: .4byte 0x000001AB
_08026E28: .4byte 0x0007A120
_08026E2C:
movs r0, #0x78
strh r0, [r3, #0x28]
_08026E30:
ldr r1, [r5]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
b _08026E9E
_08026E3A:
cmp r2, #0
bne _08026E9E
ldrb r0, [r3, #0x17]
adds r0, #1
strb r0, [r3, #0x17]
ldr r0, [r5]
strh r2, [r0, #0x18]
ldr r2, _08026E58 @ =0x0000062C
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0x62
bhi _08026E9E
adds r0, #1
strb r0, [r1]
b _08026E9E
.align 2, 0
_08026E58: .4byte 0x0000062C
_08026E5C:
bl sub_219EC
ldr r0, _08026E7C @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x34]
movs r0, #0
strh r0, [r1]
bl sub_268CC
ldr r0, _08026E80 @ =gUnknown_020314E0
ldr r1, [r0]
_08026E72:
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
b _08026E9E
.align 2, 0
_08026E7C: .4byte gMain
_08026E80: .4byte gUnknown_020314E0
_08026E84:
ldr r1, [r5]
ldrh r0, [r1, #0x18]
adds r4, r0, #0
cmp r4, #0
beq _08026E94
subs r0, #1
strh r0, [r1, #0x18]
b _08026E9E
_08026E94:
movs r0, #1
bl sub_19B64
ldr r0, [r5]
strb r4, [r0, #0x17]
_08026E9E:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_start sub_26EA4
sub_26EA4: @ 0x08026EA4
push {r4, r5, r6, lr}
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, _08026EE0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08026EE4 @ =0x000006C4
adds r1, r1, r2
movs r2, #0
strb r2, [r1]
adds r6, r0, #0
ldr r5, _08026EE8 @ =0x0000071D
_08026EBE:
ldr r0, _08026EE0 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r0, _08026EEC @ =0x00000723
adds r1, r3, r0
lsls r0, r2, #0x10
asrs r2, r0, #0x10
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r4, r0, #0
cmp r2, r1
bge _08026EF0
adds r0, r3, r5
adds r0, r0, r2
movs r1, #1
b _08026EF6
.align 2, 0
_08026EE0: .4byte gUnknown_020314E0
_08026EE4: .4byte 0x000006C4
_08026EE8: .4byte 0x0000071D
_08026EEC: .4byte 0x00000723
_08026EF0:
adds r0, r3, r5
adds r0, r0, r2
movs r1, #0
_08026EF6:
strb r1, [r0]
movs r1, #0x80
lsls r1, r1, #9
adds r0, r4, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _08026EBE
ldr r0, _08026F30 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x34]
movs r2, #0
movs r0, #0
strh r0, [r1]
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r6]
ldr r1, _08026F34 @ =0x000005F3
adds r0, r0, r1
strb r2, [r0]
bl sub_4D648
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08026F30: .4byte gMain
_08026F34: .4byte 0x000005F3
thumb_func_start sub_26F38
sub_26F38: @ 0x08026F38
push {r4, r5, r6, r7, lr}
ldr r4, _08026F88 @ =gUnknown_020314E0
ldr r0, [r4]
movs r3, #0
strb r3, [r0, #0x17]
ldr r0, [r4]
movs r6, #0
strh r3, [r0, #0x18]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r5, [r4]
adds r2, r5, #0
adds r2, #0x6c
movs r7, #0xe1
lsls r7, r7, #5
adds r0, r7, #0
ldrh r1, [r2]
adds r0, r0, r1
ldr r7, _08026F8C @ =0x00000296
adds r1, r5, r7
strh r0, [r1]
strh r3, [r2]
ldr r0, _08026F90 @ =0x00000724
adds r1, r5, r0
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r1]
movs r2, #0xb3
lsls r2, r2, #3
adds r1, r5, r2
ldrh r0, [r1]
cmp r0, #0xd
bne _08026F94
subs r7, #0x37
adds r0, r5, r7
strb r6, [r0]
b _08026FFC
.align 2, 0
_08026F88: .4byte gUnknown_020314E0
_08026F8C: .4byte 0x00000296
_08026F90: .4byte 0x00000724
_08026F94:
cmp r0, #0x58
bne _08026FC4
ldr r0, _08026FAC @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _08026FB4
ldr r0, _08026FB0 @ =0x0000025F
adds r1, r5, r0
movs r0, #1
strb r0, [r1]
b _08026FFC
.align 2, 0
_08026FAC: .4byte gMain
_08026FB0: .4byte 0x0000025F
_08026FB4:
ldr r2, _08026FC0 @ =0x0000025F
adds r1, r5, r2
movs r0, #7
strb r0, [r1]
b _08026FFC
.align 2, 0
_08026FC0: .4byte 0x0000025F
_08026FC4:
cmp r0, #0xaf
bne _08026FD8
ldr r7, _08026FD4 @ =0x0000025F
adds r1, r5, r7
movs r0, #3
strb r0, [r1]
b _08026FFC
.align 2, 0
_08026FD4: .4byte 0x0000025F
_08026FD8:
ldr r2, _08027054 @ =gUnknown_086A3700
ldrh r1, [r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #0x14]
subs r0, #1
ldr r2, _08027058 @ =0x0000025F
adds r1, r5, r2
strb r0, [r1]
ldr r0, [r4]
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bge _08026FFC
strb r6, [r1]
_08026FFC:
ldr r1, _0802705C @ =0x040000D4
ldr r0, _08027060 @ =gUnknown_081C0064
str r0, [r1]
ldr r0, _08027064 @ =0x05000180
str r0, [r1, #4]
ldr r0, _08027068 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r4]
ldr r1, _0802706C @ =0x0000072E
adds r0, r0, r1
movs r3, #0
strb r3, [r0]
ldr r0, [r4]
ldr r2, _08027070 @ =0x0000072A
adds r0, r0, r2
strb r3, [r0]
ldr r0, [r4]
ldr r7, _08027074 @ =0x00000252
adds r1, r0, r7
movs r2, #0
strh r3, [r1]
ldr r1, _08027078 @ =0x0000025E
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r7, #0x19
adds r0, r0, r7
strb r2, [r0]
ldr r0, [r4]
adds r1, #0xe
adds r0, r0, r1
strb r2, [r0]
ldr r0, [r4]
ldr r2, _0802707C @ =0x0000026E
adds r0, r0, r2
strh r3, [r0]
movs r0, #3
movs r1, #0
bl sub_1C7F4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08027054: .4byte gUnknown_086A3700
_08027058: .4byte 0x0000025F
_0802705C: .4byte 0x040000D4
_08027060: .4byte gUnknown_081C0064
_08027064: .4byte 0x05000180
_08027068: .4byte 0x80000010
_0802706C: .4byte 0x0000072E
_08027070: .4byte 0x0000072A
_08027074: .4byte 0x00000252
_08027078: .4byte 0x0000025E
_0802707C: .4byte 0x0000026E
thumb_func_start sub_27080
sub_27080: @ 0x08027080
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r4, _080270E0 @ =gUnknown_020314E0
ldr r1, [r4]
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 _080270C0
ldr r3, _080270E4 @ =0x00000296
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #1
bhi _080270C0
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #7
bgt _080270C0
bl m4aMPlayAllStop
movs r0, #0x13
bl m4aSongNumStart
ldr r0, [r4]
movs r1, #0xc8
strh r1, [r0, #0x18]
movs r1, #8
strb r1, [r0, #0x17]
_080270C0:
ldr r1, _080270E0 @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r6, r1, #0
cmp r0, #0xa
bls _080270D4
bl _080278E6
_080270D4:
lsls r0, r0, #2
ldr r1, _080270E8 @ =_080270EC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080270E0: .4byte gUnknown_020314E0
_080270E4: .4byte 0x00000296
_080270E8: .4byte _080270EC
_080270EC: @ jump table
.4byte _08027118 @ case 0
.4byte _08027390 @ case 1
.4byte _08027414 @ case 2
.4byte _08027424 @ case 3
.4byte _08027452 @ case 4
.4byte _08027474 @ case 5
.4byte _080274B4 @ case 6
.4byte _08027506 @ case 7
.4byte _080277D8 @ case 8
.4byte _0802789C @ case 9
.4byte _080278B0 @ case 10
_08027118:
ldr r0, [r6]
movs r5, #0x94
lsls r5, r5, #2
adds r0, r0, r5
ldrh r0, [r0]
cmp r0, #1
bhi _08027208
movs r2, #0
adds r3, r6, #0
ldr r4, _080271F4 @ =0x00000263
_0802712C:
ldr r1, [r3]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r4
adds r1, r1, r0
strb r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #7
ble _0802712C
bl Random
ldr r1, _080271F8 @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #5
bl __umodsi3
ldr r5, _080271FC @ =gUnknown_020314E0
ldr r2, [r5]
lsls r0, r0, #0x10
asrs r3, r0, #0x10
ldr r4, _080271F4 @ =0x00000263
adds r1, r2, r4
adds r1, r1, r3
ldrb r1, [r1]
movs r6, #0x98
lsls r6, r6, #2
adds r2, r2, r6
strb r1, [r2]
adds r1, r0, #0
asrs r0, r1, #0x10
cmp r0, #6
bgt _0802718E
adds r3, r4, #0
_08027176:
ldr r0, [r5]
asrs r1, r1, #0x10
adds r0, r0, r3
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
lsls r1, r1, #0x10
asrs r0, r1, #0x10
cmp r0, #6
ble _08027176
_0802718E:
bl Random
ldr r1, _080271F8 @ =gMain
ldr r1, [r1, #0x4c]
adds r2, r0, r1
movs r0, #3
ands r2, r0
ldr r4, _080271FC @ =gUnknown_020314E0
ldr r1, [r4]
ldr r3, _080271F4 @ =0x00000263
adds r0, r1, r3
adds r0, r2, r0
ldrb r0, [r0]
ldr r7, _08027200 @ =0x00000261
adds r1, r1, r7
strb r0, [r1]
lsls r1, r2, #0x10
cmp r2, #5
bgt _080271CC
_080271B4:
ldr r0, [r4]
asrs r1, r1, #0x10
adds r0, r0, r3
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
lsls r1, r1, #0x10
asrs r0, r1, #0x10
cmp r0, #5
ble _080271B4
_080271CC:
bl Random
ldr r1, _080271F8 @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #3
bl __umodsi3
ldr r1, _080271FC @ =gUnknown_020314E0
ldr r2, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r3, _080271F4 @ =0x00000263
adds r1, r2, r3
adds r1, r1, r0
ldrb r0, [r1]
ldr r5, _08027204 @ =0x00000262
adds r2, r2, r5
strb r0, [r2]
b _08027362
.align 2, 0
_080271F4: .4byte 0x00000263
_080271F8: .4byte gMain
_080271FC: .4byte gUnknown_020314E0
_08027200: .4byte 0x00000261
_08027204: .4byte 0x00000262
_08027208:
movs r2, #0
adds r3, r6, #0
ldr r4, _08027378 @ =0x00000263
_0802720E:
ldr r1, [r3]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r4
adds r1, r1, r0
strb r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #7
ble _0802720E
bl Random
ldr r1, _0802737C @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #6
bl __umodsi3
ldr r5, _08027380 @ =gUnknown_020314E0
ldr r2, [r5]
lsls r0, r0, #0x10
asrs r3, r0, #0x10
ldr r4, _08027378 @ =0x00000263
adds r1, r2, r4
adds r1, r1, r3
ldrb r1, [r1]
movs r6, #0x98
lsls r6, r6, #2
adds r2, r2, r6
strb r1, [r2]
adds r1, r0, #0
asrs r0, r1, #0x10
cmp r0, #6
bgt _08027270
adds r3, r4, #0
_08027258:
ldr r0, [r5]
asrs r1, r1, #0x10
adds r0, r0, r3
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
lsls r1, r1, #0x10
asrs r0, r1, #0x10
cmp r0, #6
ble _08027258
_08027270:
bl Random
ldr r1, _0802737C @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #7
bl __umodsi3
ldr r5, _08027380 @ =gUnknown_020314E0
ldr r2, [r5]
lsls r0, r0, #0x10
asrs r3, r0, #0x10
ldr r4, _08027378 @ =0x00000263
adds r1, r2, r4
adds r1, r1, r3
ldrb r1, [r1]
ldr r7, _08027384 @ =0x00000261
adds r2, r2, r7
strb r1, [r2]
adds r1, r0, #0
asrs r0, r1, #0x10
cmp r0, #5
bgt _080272B8
adds r3, r4, #0
_080272A0:
ldr r0, [r5]
asrs r1, r1, #0x10
adds r0, r0, r3
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
lsls r1, r1, #0x10
asrs r0, r1, #0x10
cmp r0, #5
ble _080272A0
_080272B8:
bl Random
ldr r1, _0802737C @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #6
bl __umodsi3
ldr r5, _08027380 @ =gUnknown_020314E0
ldr r2, [r5]
lsls r0, r0, #0x10
asrs r3, r0, #0x10
ldr r4, _08027378 @ =0x00000263
adds r1, r2, r4
adds r1, r1, r3
ldrb r1, [r1]
ldr r3, _08027388 @ =0x00000262
adds r2, r2, r3
strb r1, [r2]
adds r1, r0, #0
asrs r0, r1, #0x10
cmp r0, #4
bgt _08027300
adds r3, r4, #0
_080272E8:
ldr r0, [r5]
asrs r1, r1, #0x10
adds r0, r0, r3
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
lsls r1, r1, #0x10
asrs r0, r1, #0x10
cmp r0, #4
ble _080272E8
_08027300:
ldr r0, _0802737C @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bne _08027362
ldr r1, _08027380 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r5, _0802738C @ =0x00000283
adds r0, r0, r5
ldrb r0, [r0]
cmp r0, #4
bhi _08027362
movs r2, #0
adds r5, r1, #0
_0802731A:
ldr r0, [r5]
lsls r1, r2, #0x10
asrs r4, r1, #0x10
movs r6, #0x98
lsls r6, r6, #2
adds r0, r0, r6
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bne _08027356
bl Random
ldr r1, _0802737C @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #5
bl __umodsi3
ldr r1, [r5]
adds r2, r1, r6
adds r2, r2, r4
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r7, _08027378 @ =0x00000263
adds r1, r1, r7
adds r1, r1, r0
ldrb r0, [r1]
strb r0, [r2]
_08027356:
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0802731A
_08027362:
ldr r0, _08027380 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0x94
lsls r0, r0, #2
adds r2, r1, r0
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080278E4
.align 2, 0
_08027378: .4byte 0x00000263
_0802737C: .4byte gMain
_08027380: .4byte gUnknown_020314E0
_08027384: .4byte 0x00000261
_08027388: .4byte 0x00000262
_0802738C: .4byte 0x00000283
_08027390:
ldr r1, [r6]
ldr r2, _080273FC @ =0x0000026B
adds r0, r1, r2
movs r2, #0
ldrsb r2, [r0, r2]
movs r3, #0x98
lsls r3, r3, #2
adds r0, r1, r3
adds r0, r0, r2
ldrb r0, [r0]
ldr r2, _08027400 @ =0x0000025E
adds r1, r1, r2
strb r0, [r1]
ldr r3, [r6]
ldr r5, _08027404 @ =gUnknown_086ACFA0
adds r2, r3, r2
movs r1, #0
ldrsb r1, [r2, r1]
lsls r1, r1, #2
ldr r4, _08027408 @ =gMain
ldrb r0, [r4, #4]
lsls r0, r0, #5
adds r1, r1, r0
adds r1, r1, r5
ldrh r1, [r1]
movs r6, #0x96
lsls r6, r6, #2
adds r0, r3, r6
strh r1, [r0]
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #2
ldrb r1, [r4, #4]
lsls r1, r1, #5
adds r0, r0, r1
adds r0, r0, r5
ldrh r1, [r0, #2]
ldr r7, _0802740C @ =0x0000025A
adds r0, r3, r7
strh r1, [r0]
ldr r0, _08027410 @ =0x0000026E
adds r1, r3, r0
movs r0, #0x50
strh r0, [r1]
ldr r0, [r4, #0x44]
adds r0, #0xa0
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
ldrb r0, [r3, #0x17]
adds r0, #1
strb r0, [r3, #0x17]
b _080278E6
.align 2, 0
_080273FC: .4byte 0x0000026B
_08027400: .4byte 0x0000025E
_08027404: .4byte gUnknown_086ACFA0
_08027408: .4byte gMain
_0802740C: .4byte 0x0000025A
_08027410: .4byte 0x0000026E
_08027414:
bl sub_278F4
ldr r0, _08027420 @ =gUnknown_020314E0
ldr r1, [r0]
b _080277B8
.align 2, 0
_08027420: .4byte gUnknown_020314E0
_08027424:
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r1, [r6]
ldrh r0, [r1, #0x18]
cmp r0, #7
bhi _0802743A
b _08027684
_0802743A:
bl sub_219A8
ldr r0, [r6]
movs r2, #0xe6
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #2
strb r1, [r0]
ldr r1, [r6]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080278E4
_08027452:
bl sub_219EC
ldr r0, _08027470 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
beq _0802746A
b _080278E6
_0802746A:
ldrb r0, [r1, #0x17]
adds r0, #1
b _080278E4
.align 2, 0
_08027470: .4byte gUnknown_020314E0
_08027474:
ldr r0, [r6]
movs r3, #0xa5
lsls r3, r3, #2
adds r0, r0, r3
movs r5, #0
movs r1, #3
strb r1, [r0]
ldr r0, [r6]
movs r4, #0xb3
lsls r4, r4, #3
adds r1, r0, r4
ldrh r1, [r1]
movs r7, #0xb4
lsls r7, r7, #3
adds r0, r0, r7
strh r1, [r0]
movs r0, #1
bl sub_31CF8
ldr r1, [r6]
adds r4, r1, r4
ldrh r2, [r4]
ldr r3, _080274B0 @ =0x000005A2
adds r0, r1, r3
strh r2, [r0]
strh r5, [r1, #0x18]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080278E4
.align 2, 0
_080274B0: .4byte 0x000005A2
_080274B4:
ldr r1, [r6]
ldrh r0, [r1, #0x28]
cmp r0, #0x94
beq _080274BE
b _080278E6
_080274BE:
adds r0, #1
strh r0, [r1, #0x28]
ldr r0, _080274F0 @ =gMain
movs r5, #0xc5
lsls r5, r5, #4
adds r0, r0, r5
ldrh r0, [r0]
cmp r0, #0
beq _080274F4
movs r7, #0xaf
lsls r7, r7, #2
adds r0, r1, r7
ldrh r0, [r0]
cmp r0, #0x4f
bhi _080274DE
b _080278E6
_080274DE:
bl sub_2D204
ldr r1, [r6]
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #6
beq _080274EE
b _080278E6
_080274EE:
b _08027682
.align 2, 0
_080274F0: .4byte gMain
_080274F4:
bl sub_2D204
ldr r1, [r6]
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #6
beq _08027504
b _080278E6
_08027504:
b _08027682
_08027506:
ldr r3, [r6]
ldrh r0, [r3, #0x28]
adds r1, r0, #0
cmp r1, #0x94
beq _08027512
b _080276BA
_08027512:
adds r0, #1
strh r0, [r3, #0x28]
ldrh r1, [r3, #0x18]
ldr r0, _08027530 @ =0x00000117
cmp r1, r0
bls _08027520
b _080276B4
_08027520:
cmp r1, #0
bne _08027534
bl sub_2312C
movs r0, #0x12
bl m4aSongNumStart
b _0802758E
.align 2, 0
_08027530: .4byte 0x00000117
_08027534:
bl sub_23300
ldr r1, [r6]
ldrh r0, [r1, #0x18]
cmp r0, #0xe5
bhi _08027550
movs r0, #0x84
lsls r0, r0, #2
adds r1, r1, r0
ldrh r0, [r1]
cmp r0, #0x96
bne _08027550
subs r0, #1
strh r0, [r1]
_08027550:
ldr r4, _0802768C @ =gUnknown_020314E0
ldr r0, [r4]
ldrh r1, [r0, #0x18]
movs r0, #0x87
lsls r0, r0, #1
cmp r1, r0
bne _08027570
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r4]
ldr r1, _08027690 @ =0x000006C4
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
_08027570:
ldr r1, [r4]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0802757C
movs r0, #0xb5
strh r0, [r1, #0x18]
_0802757C:
ldr r1, [r4]
ldrh r0, [r1, #0x18]
cmp r0, #0xb4
bne _0802758E
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r4]
ldr r0, _08027694 @ =0x004C4B40
str r0, [r1, #0x3c]
_0802758E:
ldr r0, _0802768C @ =gUnknown_020314E0
ldr r2, [r0]
ldrh r1, [r2, #0x18]
adds r6, r0, #0
cmp r1, #0x1d
bhi _08027600
ldr r1, _08027698 @ =gMain
movs r0, #1
strh r0, [r1, #0x2c]
ldrh r1, [r2, #0x18]
movs r3, #0xa6
lsls r3, r3, #2
adds r0, r2, r3
strh r1, [r0]
movs r2, #0
lsls r0, r1, #0x10
asrs r0, r0, #0x10
ldr r5, _0802769C @ =gUnknown_03005C00
mov r8, r5
cmp r2, r0
bgt _080275F0
adds r7, r0, #0
movs r4, #0xc1
lsls r4, r4, #8
_080275BE:
movs r0, #2
lsls r2, r2, #0x10
asrs r3, r2, #0x10
_080275C4:
lsls r1, r0, #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, r5
strh r4, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xb
ble _080275C4
movs r1, #0x80
lsls r1, r1, #9
adds r0, r2, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r7
ble _080275BE
_080275F0:
ldr r1, _080276A0 @ =0x040000D4
mov r2, r8
str r2, [r1]
ldr r0, _080276A4 @ =0x06002000
str r0, [r1, #4]
ldr r0, _080276A8 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
_08027600:
ldr r0, [r6]
ldrh r0, [r0, #0x18]
subs r0, #0xf0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1d
bhi _08027680
movs r2, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r3, _0802769C @ =gUnknown_03005C00
mov r8, r3
cmp r2, r0
bgt _08027654
mov r5, r8
ldr r4, _080276AC @ =0x000001FF
adds r7, r0, #0
_08027622:
movs r0, #2
lsls r2, r2, #0x10
asrs r3, r2, #0x10
_08027628:
lsls r1, r0, #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, r5
strh r4, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xb
ble _08027628
movs r1, #0x80
lsls r1, r1, #9
adds r0, r2, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r7
ble _08027622
_08027654:
ldr r1, _080276A0 @ =0x040000D4
mov r2, r8
str r2, [r1]
ldr r0, _080276A4 @ =0x06002000
str r0, [r1, #4]
ldr r0, _080276A8 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r6]
ldrh r1, [r0, #0x18]
ldr r0, _080276B0 @ =0x0000010D
cmp r1, r0
bne _08027680
ldr r0, _08027698 @ =gMain
movs r1, #0
strh r1, [r0, #0x2c]
ldrh r2, [r0, #0x38]
strh r1, [r0, #0x38]
ldrh r2, [r0, #0x3c]
strh r1, [r0, #0x3c]
ldrh r2, [r0, #0x3a]
strh r1, [r0, #0x3a]
_08027680:
ldr r1, [r6]
_08027682:
ldrh r0, [r1, #0x18]
_08027684:
adds r0, #1
strh r0, [r1, #0x18]
b _080278E6
.align 2, 0
_0802768C: .4byte gUnknown_020314E0
_08027690: .4byte 0x000006C4
_08027694: .4byte 0x004C4B40
_08027698: .4byte gMain
_0802769C: .4byte gUnknown_03005C00
_080276A0: .4byte 0x040000D4
_080276A4: .4byte 0x06002000
_080276A8: .4byte 0x80000400
_080276AC: .4byte 0x000001FF
_080276B0: .4byte 0x0000010D
_080276B4:
movs r0, #0x28
strh r0, [r3, #0x28]
b _080278E6
_080276BA:
cmp r1, #0x18
beq _080276C0
b _080278E6
_080276C0:
ldr r5, _080277C0 @ =0x00000723
adds r0, r3, r5
ldrb r1, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08027748
ldr r2, _080277C4 @ =0x00000721
adds r0, r3, r2
strb r1, [r0]
ldr r0, [r6]
adds r1, r0, r5
ldrb r1, [r1]
ldr r3, _080277C8 @ =0x00000722
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r6]
adds r2, r0, r2
movs r1, #0
ldrsb r1, [r2, r1]
ldr r7, _080277CC @ =0x0000071D
adds r0, r0, r7
adds r0, r0, r1
movs r4, #1
strb r4, [r0]
ldr r0, [r6]
movs r1, #0xe4
lsls r1, r1, #3
adds r0, r0, r1
movs r3, #0x78
strb r3, [r0]
ldr r1, [r6]
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r6]
adds r0, r1, r5
ldrb r2, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08027748
adds r7, #5
adds r0, r1, r7
strb r2, [r0]
ldr r0, [r6]
adds r2, r7, #0
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
subs r7, #5
adds r0, r0, r7
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
movs r1, #0xe4
lsls r1, r1, #3
adds r0, r0, r1
strb r3, [r0]
ldr r1, [r6]
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08027748:
ldr r2, [r6]
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0x2a
bne _08027780
adds r3, #0x58
adds r1, r2, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r5, _080277D0 @ =0x0000062B
adds r1, r2, r5
ldrb r0, [r1]
cmp r0, #0x62
bhi _0802776E
adds r0, #1
strb r0, [r1]
_0802776E:
ldr r1, [r6]
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0xf
bne _08027780
ldr r7, _080277D4 @ =0x00000286
adds r1, r1, r7
movs r0, #0x5c
strh r0, [r1]
_08027780:
ldr r2, [r6]
movs r0, #0xbe
lsls r0, r0, #3
adds r1, r2, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xf
bne _0802779E
ldr r3, _080277D4 @ =0x00000286
adds r1, r2, r3
movs r0, #0x5c
strh r0, [r1]
_0802779E:
ldr r0, [r6]
ldr r5, _080277D0 @ =0x0000062B
adds r1, r0, r5
ldrb r0, [r1]
cmp r0, #0x62
bhi _080277AE
adds r0, #1
strb r0, [r1]
_080277AE:
ldr r1, [r6]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r1, [r6]
_080277B8:
movs r0, #0
strh r0, [r1, #0x18]
b _080278E6
.align 2, 0
_080277C0: .4byte 0x00000723
_080277C4: .4byte 0x00000721
_080277C8: .4byte 0x00000722
_080277CC: .4byte 0x0000071D
_080277D0: .4byte 0x0000062B
_080277D4: .4byte 0x00000286
_080277D8:
ldr r6, _0802787C @ =gMain
ldr r0, [r6, #0x44]
adds r0, #0x80
ldr r4, [r0]
movs r7, #8
adds r7, r7, r4
ldr r5, _08027880 @ =gOamBuffer
ldrh r1, [r4, #8]
lsls r1, r1, #3
adds r1, r1, r5
movs r0, #2
ldrsh r2, [r7, r0]
ldr r3, _08027884 @ =0x000001FF
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #2]
ldr r0, _08027888 @ =0xFFFFFE00
ands r0, r3
orrs r0, r2
strh r0, [r1, #2]
ldrh r1, [r4, #8]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r7, #4]
subs r0, #0x38
movs r5, #0
strb r0, [r1]
ldr r0, [r6, #0x44]
adds r0, #0x80
ldr r0, [r0]
movs r7, #0
mov r8, r7
strh r5, [r0]
bl sub_278F4
ldr r0, [r6, #0x44]
adds r0, #0xa0
ldr r0, [r0]
strh r5, [r0]
ldr r4, _0802788C @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0xe4
mov r1, r8
strb r1, [r0]
bl sub_219EC
ldr r0, [r6, #0x44]
ldr r0, [r0, #0x34]
strh r5, [r0]
ldr r0, [r4]
movs r2, #0xd2
lsls r2, r2, #1
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
ldr r1, [r4]
movs r3, #0xda
lsls r3, r3, #1
adds r0, r1, r3
strh r5, [r0]
ldr r5, _08027890 @ =0x000001A5
adds r0, r1, r5
mov r6, r8
strb r6, [r0]
ldr r1, [r4]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r1, [r4]
ldr r7, _08027894 @ =0x00000714
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080278E6
ldr r0, _08027898 @ =0x000006EE
adds r1, r1, r0
movs r0, #0x78
strh r0, [r1]
b _080278E6
.align 2, 0
_0802787C: .4byte gMain
_08027880: .4byte gOamBuffer
_08027884: .4byte 0x000001FF
_08027888: .4byte 0xFFFFFE00
_0802788C: .4byte gUnknown_020314E0
_08027890: .4byte 0x000001A5
_08027894: .4byte 0x00000714
_08027898: .4byte 0x000006EE
_0802789C:
bl sub_26EA4
ldr r0, _080278AC @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080278E4
.align 2, 0
_080278AC: .4byte gUnknown_020314E0
_080278B0:
ldr r1, [r6]
ldrh r0, [r1, #0x18]
cmp r0, #0
beq _080278BE
subs r0, #1
strh r0, [r1, #0x18]
b _080278E6
_080278BE:
ldr r2, _080278D4 @ =0x0000071F
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _080278D8
movs r0, #3
bl sub_19B64
b _080278DE
.align 2, 0
_080278D4: .4byte 0x0000071F
_080278D8:
movs r0, #1
bl sub_19B64
_080278DE:
ldr r0, _080278F0 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0
_080278E4:
strb r0, [r1, #0x17]
_080278E6:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080278F0: .4byte gUnknown_020314E0
thumb_func_start sub_278F4
sub_278F4: @ 0x080278F4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _080279C4 @ =gMain
mov sl, r0
ldr r0, [r0, #0x4c]
movs r1, #0x4b
bl __umodsi3
movs r1, #3
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
mov r1, sl
ldr r2, [r1, #0x44]
adds r0, r2, #0
adds r0, #0x80
ldr r7, [r0]
ldr r6, _080279C8 @ =gUnknown_020314E0
ldr r3, [r6]
ldr r0, _080279CC @ =0x0000026E
mov sb, r0
adds r0, r3, r0
ldrh r1, [r0]
cmp r1, #0
bne _08027932
b _08027B74
_08027932:
adds r0, r2, #0
adds r0, #0xa0
ldr r7, [r0]
cmp r1, #0x50
bne _0802798C
adds r1, r3, #0
adds r1, #0xe4
movs r5, #0
movs r0, #0xf
strb r0, [r1]
ldr r2, _080279D0 @ =0x040000D4
ldr r1, _080279D4 @ =gUnknown_086AD474
ldr r3, [r6]
ldr r0, _080279D8 @ =0x0000025F
adds r4, r3, r0
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r2]
ldr r0, _080279DC @ =0x06015800
str r0, [r2, #4]
ldr r0, _080279E0 @ =0x80000E00
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #5
ldr r1, _080279E4 @ =gUnknown_0815C4C4
adds r0, r0, r1
str r0, [r2]
ldr r0, _080279E8 @ =0x050003E0
str r0, [r2, #4]
ldr r0, _080279EC @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, _080279F0 @ =0x00000626
adds r3, r3, r1
strb r5, [r3]
ldr r0, [r6]
movs r2, #0xc5
lsls r2, r2, #3
adds r0, r0, r2
strh r5, [r0]
_0802798C:
ldr r0, [r6]
add r0, sb
ldrh r0, [r0]
cmp r0, #0x3c
bne _0802799E
ldr r0, _080279F4 @ =gMPlayInfo_SE1
ldr r1, _080279F8 @ =gUnknown_0869F58C
bl MPlayStart
_0802799E:
ldr r2, _080279FC @ =gUnknown_086AE0E6
ldr r1, [r6]
ldr r5, _080279F0 @ =0x00000626
adds r3, r1, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #1
adds r0, r0, r2
movs r2, #0
ldrsh r0, [r0, r2]
adds r5, #2
adds r1, r1, r5
ldrh r2, [r1]
cmp r0, r2
ble _08027A00
adds r0, r2, #1
strh r0, [r1]
b _08027A46
.align 2, 0
_080279C4: .4byte gMain
_080279C8: .4byte gUnknown_020314E0
_080279CC: .4byte 0x0000026E
_080279D0: .4byte 0x040000D4
_080279D4: .4byte gUnknown_086AD474
_080279D8: .4byte 0x0000025F
_080279DC: .4byte 0x06015800
_080279E0: .4byte 0x80000E00
_080279E4: .4byte gUnknown_0815C4C4
_080279E8: .4byte 0x050003E0
_080279EC: .4byte 0x80000010
_080279F0: .4byte 0x00000626
_080279F4: .4byte gMPlayInfo_SE1
_080279F8: .4byte gUnknown_0869F58C
_080279FC: .4byte gUnknown_086AE0E6
_08027A00:
movs r2, #1
strh r2, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r6]
ldr r3, _08027B48 @ =0x00000626
adds r1, r0, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x1d
bne _08027A46
movs r0, #0x1c
strb r0, [r1]
ldr r0, [r6]
add r0, sb
strh r2, [r0]
mov r5, sl
ldr r0, [r5, #0x44]
adds r0, #0xa0
ldr r1, [r0]
movs r0, #0
strh r0, [r1]
ldr r0, [r5, #0x44]
adds r0, #0x80
ldr r0, [r0]
strh r2, [r0]
ldr r0, _08027B4C @ =gMPlayInfo_SE1
ldr r1, _08027B50 @ =gUnknown_0869F5C8
bl MPlayStart
ldr r0, [r6]
adds r0, #0xe4
movs r1, #0
strb r1, [r0]
_08027A46:
ldr r3, _08027B54 @ =gUnknown_020314E0
ldr r2, [r3]
movs r6, #0x96
lsls r6, r6, #2
adds r0, r2, r6
adds r1, r2, #0
adds r1, #0x58
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
adds r0, #8
strh r0, [r7, #2]
ldr r1, _08027B58 @ =0x0000025A
adds r0, r2, r1
adds r2, #0x5a
ldrh r0, [r0]
ldrh r1, [r2]
subs r0, r0, r1
adds r0, #8
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x1e
rsbs r1, r1, #0
cmp r0, r1
bge _08027A7E
ldr r0, _08027B5C @ =0x0000FFE2
strh r0, [r7, #4]
_08027A7E:
movs r2, #4
ldrsh r0, [r7, r2]
cmp r0, #0xc8
ble _08027A8A
movs r0, #0xc8
strh r0, [r7, #4]
_08027A8A:
movs r0, #0
ldr r3, _08027B60 @ =gOamBuffer
mov sl, r3
ldr r5, _08027B64 @ =gUnknown_086B4202
mov sb, r5
ldr r6, _08027B54 @ =gUnknown_020314E0
mov r8, r6
ldr r1, _08027B48 @ =0x00000626
mov ip, r1
_08027A9C:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r6, r7, r0
ldrh r2, [r6]
lsls r2, r2, #3
add r2, sl
lsls r3, r4, #1
adds r3, r3, r4
mov r5, r8
ldr r0, [r5]
add r0, ip
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r5, r3, #1
mov r1, r8
ldr r0, [r1]
add r0, ip
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
adds r0, r0, r5
lsls r0, r0, #1
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r3, #2
mov r5, r8
ldr r0, [r5]
add r0, ip
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
subs r0, r0, r1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
ldrh r0, [r0]
strh r0, [r2, #2]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, sl
ldrh r3, [r2, #2]
lsls r1, r3, #0x17
lsrs r1, r1, #0x17
movs r5, #2
ldrsh r0, [r7, r5]
adds r1, r1, r0
ldr r5, _08027B68 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
ldr r0, _08027B6C @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, sl
ldrb r0, [r7, #4]
ldrb r6, [r1]
adds r0, r0, r6
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #4
ble _08027A9C
ldr r0, _08027B54 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _08027B70 @ =0x0000026E
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
b _08027CE8
.align 2, 0
_08027B48: .4byte 0x00000626
_08027B4C: .4byte gMPlayInfo_SE1
_08027B50: .4byte gUnknown_0869F5C8
_08027B54: .4byte gUnknown_020314E0
_08027B58: .4byte 0x0000025A
_08027B5C: .4byte 0x0000FFE2
_08027B60: .4byte gOamBuffer
_08027B64: .4byte gUnknown_086B4202
_08027B68: .4byte 0x000001FF
_08027B6C: .4byte 0xFFFFFE00
_08027B70: .4byte 0x0000026E
_08027B74:
ldr r6, _08027CF8 @ =0x0000132C
adds r0, r3, r6
ldr r2, [r0]
movs r1, #0x10
ldrsh r0, [r2, r1]
subs r0, #8
movs r6, #0x96
lsls r6, r6, #2
adds r1, r3, r6
movs r6, #0
ldrsh r1, [r1, r6]
subs r4, r0, r1
movs r1, #0x12
ldrsh r0, [r2, r1]
subs r0, #8
ldr r2, _08027CFC @ =0x0000025A
adds r1, r3, r2
movs r6, #0
ldrsh r1, [r1, r6]
subs r5, r0, r1
adds r0, r4, #0
muls r0, r4, r0
adds r1, r5, #0
muls r1, r5, r1
adds r0, r0, r1
cmp r0, #0x51
bgt _08027C38
adds r0, r3, #0
adds r0, #0x24
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _08027BC4
adds r2, #4
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
ble _08027BD6
_08027BC4:
cmp r1, #2
bne _08027C38
ldr r5, _08027D00 @ =0x0000025E
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
ble _08027C38
_08027BD6:
ldr r4, _08027D04 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r6, _08027D08 @ =0x0000026B
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _08027C38
ldr r0, _08027D0C @ =0x00002710
str r0, [r1, #0x3c]
ldr r0, _08027D10 @ =gMPlayInfo_SE1
ldr r1, _08027D14 @ =gUnknown_0869F618
bl MPlayStart
ldr r1, [r4]
movs r2, #0
movs r0, #1
strb r0, [r1, #0x17]
ldr r0, [r4]
adds r1, r0, r6
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
ldr r3, _08027D18 @ =0x0000071D
adds r0, r0, r3
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
ldr r1, [r4]
adds r1, r1, r6
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, _08027D1C @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x80
ldr r0, [r0]
strh r2, [r0]
ldr r0, [r4]
adds r2, r0, r6
movs r1, #0
ldrsb r1, [r2, r1]
cmp r1, #3
bne _08027C38
movs r0, #0
strb r0, [r2]
ldr r0, [r4]
strb r1, [r0, #0x17]
_08027C38:
ldr r3, _08027D04 @ =gUnknown_020314E0
ldr r2, [r3]
movs r5, #0x96
lsls r5, r5, #2
adds r0, r2, r5
adds r1, r2, #0
adds r1, #0x58
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
subs r0, #8
strh r0, [r7, #2]
ldr r6, _08027CFC @ =0x0000025A
adds r0, r2, r6
adds r2, #0x5a
ldrh r0, [r0]
ldrh r1, [r2]
subs r0, r0, r1
subs r0, #8
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x1e
rsbs r1, r1, #0
cmp r0, r1
bge _08027C70
ldr r0, _08027D20 @ =0x0000FFE2
strh r0, [r7, #4]
_08027C70:
movs r1, #4
ldrsh r0, [r7, r1]
cmp r0, #0xc8
ble _08027C7C
movs r0, #0xc8
strh r0, [r7, #4]
_08027C7C:
mov r2, r8
lsls r0, r2, #0x10
asrs r0, r0, #0x10
cmp r0, #0xe
ble _08027C8A
movs r5, #0xe
mov r8, r5
_08027C8A:
ldr r2, _08027D24 @ =0x040000D4
ldr r1, _08027D28 @ =gUnknown_086AD49C
ldr r0, [r3]
ldr r6, _08027D2C @ =0x0000025F
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r1
mov r3, r8
lsls r1, r3, #0x10
asrs r1, r1, #7
ldr r0, [r0]
adds r0, r0, r1
str r0, [r2]
ldr r0, _08027D30 @ =0x060116C0
str r0, [r2, #4]
ldr r0, _08027D34 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r6, r7, #0
adds r6, #8
ldr r4, _08027D38 @ =gOamBuffer
ldrh r2, [r7, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r5, #2
ldrsh r1, [r6, r5]
movs r3, #2
ldrsh r0, [r7, r3]
adds r1, r1, r0
ldr r5, _08027D3C @ =0x000001FF
adds r0, r5, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _08027D40 @ =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]
_08027CE8:
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
_08027CF8: .4byte 0x0000132C
_08027CFC: .4byte 0x0000025A
_08027D00: .4byte 0x0000025E
_08027D04: .4byte gUnknown_020314E0
_08027D08: .4byte 0x0000026B
_08027D0C: .4byte 0x00002710
_08027D10: .4byte gMPlayInfo_SE1
_08027D14: .4byte gUnknown_0869F618
_08027D18: .4byte 0x0000071D
_08027D1C: .4byte gMain
_08027D20: .4byte 0x0000FFE2
_08027D24: .4byte 0x040000D4
_08027D28: .4byte gUnknown_086AD49C
_08027D2C: .4byte 0x0000025F
_08027D30: .4byte 0x060116C0
_08027D34: .4byte 0x80000100
_08027D38: .4byte gOamBuffer
_08027D3C: .4byte 0x000001FF
_08027D40: .4byte 0xFFFFFE00
thumb_func_start sub_27D44
sub_27D44: @ 0x08027D44
push {r4, r5, r6, lr}
ldr r4, _08027DC8 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _08027DCC @ =0x000005A5
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
ldr r0, [r4]
ldr r2, _08027DD0 @ =0x000005A9
adds r0, r0, r2
strb r1, [r0]
ldr r2, _08027DD4 @ =gMain
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x48]
movs r5, #0
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x30]
strh r1, [r0]
ldr r0, [r4]
ldr r1, _08027DD8 @ =0x000005F2
adds r0, r0, r1
strb r5, [r0]
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r4]
ldr r2, _08027DDC @ =0x000006C4
adds r0, r0, r2
strb r5, [r0]
bl sub_4D648
movs r2, #0
ldr r5, _08027DE0 @ =0x000006D3
movs r3, #0xd
adds r6, r4, #0
_08027D8E:
ldr r1, [r4]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r5
adds r1, r1, r0
strb r3, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _08027D8E
movs r2, #0
ldr r5, _08027DE4 @ =0x0000071D
_08027DAA:
ldr r3, [r6]
ldr r1, _08027DE8 @ =0x00000723
adds r0, r3, r1
lsls r1, r2, #0x10
asrs r2, r1, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r4, r1, #0
cmp r2, r0
bge _08027DEC
adds r0, r3, r5
adds r0, r0, r2
movs r1, #1
b _08027DF2
.align 2, 0
_08027DC8: .4byte gUnknown_020314E0
_08027DCC: .4byte 0x000005A5
_08027DD0: .4byte 0x000005A9
_08027DD4: .4byte gMain
_08027DD8: .4byte 0x000005F2
_08027DDC: .4byte 0x000006C4
_08027DE0: .4byte 0x000006D3
_08027DE4: .4byte 0x0000071D
_08027DE8: .4byte 0x00000723
_08027DEC:
adds r0, r3, r5
adds r0, r0, r2
movs r1, #0
_08027DF2:
strb r1, [r0]
movs r2, #0x80
lsls r2, r2, #9
adds r0, r4, r2
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _08027DAA
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_start sub_27E08
sub_27E08: @ 0x08027E08
push {r4, r5, r6, r7, lr}
ldr r3, _08027E9C @ =gUnknown_020314E0
ldr r0, [r3]
movs r5, #0
strb r5, [r0, #0x17]
ldr r0, [r3]
movs r6, #0
strh r5, [r0, #0x18]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #1
strb r1, [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, _08027EA0 @ =0x00000296
adds r1, r2, r7
strh r0, [r1]
strh r5, [r4]
ldr r0, _08027EA4 @ =0x000005A5
adds r2, r2, r0
strb r6, [r2]
ldr r0, [r3]
ldr r2, _08027EA8 @ =0x000005AA
adds r1, r0, r2
strh r5, [r1]
ldr r7, _08027EAC @ =0x000005A9
adds r0, r0, r7
strb r6, [r0]
ldr r0, [r3]
ldr r1, _08027EB0 @ =0x000006C6
adds r0, r0, r1
strb r6, [r0]
ldr r0, [r3]
ldr r2, _08027EB4 @ =0x000006C7
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r3]
adds r7, #0x7c
adds r0, r0, r7
strb r6, [r0]
ldr r0, [r3]
adds r2, #3
adds r1, r0, r2
strh r5, [r1]
adds r7, #0xa7
adds r0, r0, r7
strb r6, [r0]
ldr r0, [r3]
ldr r1, _08027EB8 @ =0x0000072F
adds r0, r0, r1
strb r6, [r0]
ldr r0, [r3]
adds r2, #0x67
adds r0, r0, r2
strb r6, [r0]
ldr r1, [r3]
ldr r7, _08027EBC @ =0x0000029A
adds r0, r1, r7
ldrh r0, [r0]
adds r5, r3, #0
cmp r0, #0
bne _08027EC8
ldr r0, _08027EC0 @ =0x00000724
adds r1, r1, r0
ldr r0, _08027EC4 @ =0x00001770
b _08027ECE
.align 2, 0
_08027E9C: .4byte gUnknown_020314E0
_08027EA0: .4byte 0x00000296
_08027EA4: .4byte 0x000005A5
_08027EA8: .4byte 0x000005AA
_08027EAC: .4byte 0x000005A9
_08027EB0: .4byte 0x000006C6
_08027EB4: .4byte 0x000006C7
_08027EB8: .4byte 0x0000072F
_08027EBC: .4byte 0x0000029A
_08027EC0: .4byte 0x00000724
_08027EC4: .4byte 0x00001770
_08027EC8:
ldr r2, _08027F6C @ =0x00000724
adds r1, r1, r2
ldr r0, _08027F70 @ =0x00001068
_08027ECE:
strh r0, [r1]
ldr r1, [r5]
ldr r7, _08027F74 @ =0x0000029A
adds r1, r1, r7
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r1, _08027F78 @ =0x040000D4
ldr r0, _08027F7C @ =gUnknown_081C0064
str r0, [r1]
ldr r0, _08027F80 @ =0x05000180
str r0, [r1, #4]
ldr r0, _08027F84 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r2, #0
ldr r6, _08027F88 @ =gMain
adds r4, r5, #0
ldr r3, _08027F8C @ =0x000006CD
_08027EF4:
ldr r1, [r4]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r3
adds r1, r1, r0
strb r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _08027EF4
ldr r4, [r5]
ldr r0, [r6, #0x4c]
movs r1, #6
bl __umodsi3
movs r2, #0xd9
lsls r2, r2, #3
adds r4, r4, r2
strb r0, [r4]
ldr r0, [r5]
ldr r4, _08027F90 @ =0x000006C9
adds r0, r0, r4
movs r1, #5
strb r1, [r0]
ldr r0, [r5]
adds r2, r0, r2
movs r1, #0
ldrsb r1, [r2, r1]
adds r0, r0, r4
lsls r2, r1, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bge _08027F64
adds r3, r5, #0
ldr r5, _08027F8C @ =0x000006CD
_08027F42:
ldr r0, [r3]
asrs r1, r2, #0x10
adds r0, r0, r5
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r0, [r3]
adds r0, r0, r4
lsls r2, r1, #0x10
asrs r1, r2, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
blt _08027F42
_08027F64:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08027F6C: .4byte 0x00000724
_08027F70: .4byte 0x00001068
_08027F74: .4byte 0x0000029A
_08027F78: .4byte 0x040000D4
_08027F7C: .4byte gUnknown_081C0064
_08027F80: .4byte 0x05000180
_08027F84: .4byte 0x80000010
_08027F88: .4byte gMain
_08027F8C: .4byte 0x000006CD
_08027F90: .4byte 0x000006C9
thumb_func_start sub_27F94
sub_27F94: @ 0x08027F94
push {r4, r5, lr}
ldr r4, _08027FEC @ =gUnknown_020314E0
ldr r1, [r4]
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 _08027FD0
ldr r3, _08027FF0 @ =0x00000296
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #1
bhi _08027FD0
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #9
bgt _08027FD0
bl m4aMPlayAllStop
movs r0, #0x13
bl m4aSongNumStart
ldr r0, [r4]
movs r1, #0xc8
strh r1, [r0, #0x18]
movs r1, #0xa
strb r1, [r0, #0x17]
_08027FD0:
ldr r1, _08027FEC @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #0xc
bls _08027FE2
b _080283FA
_08027FE2:
lsls r0, r0, #2
ldr r1, _08027FF4 @ =_08027FF8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027FEC: .4byte gUnknown_020314E0
_08027FF0: .4byte 0x00000296
_08027FF4: .4byte _08027FF8
_08027FF8: @ jump table
.4byte _0802802C @ case 0
.4byte _08028040 @ case 1
.4byte _08028074 @ case 2
.4byte _08028094 @ case 3
.4byte _080280E8 @ case 4
.4byte _080281FC @ case 5
.4byte _08028214 @ case 6
.4byte _08028284 @ case 7
.4byte _0802828A @ case 8
.4byte _08028358 @ case 9
.4byte _08028388 @ case 10
.4byte _080283A0 @ case 11
.4byte _080283B4 @ case 12
_0802802C:
bl sub_31F6C
ldr r0, _0802803C @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080283F8
.align 2, 0
_0802803C: .4byte gUnknown_020314E0
_08028040:
bl sub_3219C
ldr r0, _0802806C @ =gMain
ldrb r0, [r0, #2]
cmp r0, #3
beq _08028060
ldr r0, _08028070 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xb3
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #1
bl SaveFile_SetPokedexFlags
_08028060:
ldr r0, _08028070 @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080283F8
.align 2, 0
_0802806C: .4byte gMain
_08028070: .4byte gUnknown_020314E0
_08028074:
bl sub_28AE0
ldr r2, _0802808C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _08028090 @ =0x0000073D
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
ldr r1, [r2]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080283F8
.align 2, 0
_0802808C: .4byte gUnknown_020314E0
_08028090: .4byte 0x0000073D
_08028094:
movs r0, #3
movs r1, #0
bl sub_1C7F4
ldr r2, _080280D8 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r1, _080280DC @ =0x000006C5
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
ldr r3, _080280E0 @ =0x00000602
adds r0, r0, r3
strb r1, [r0]
ldr r1, [r2]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
movs r3, #0
ldr r5, _080280E4 @ =0x000006D3
movs r4, #0xf
_080280BE:
ldr r1, [r2]
lsls r0, r3, #0x10
asrs r0, r0, #0x10
adds r1, r1, r5
adds r1, r1, r0
strb r4, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _080280BE
b _080283FA
.align 2, 0
_080280D8: .4byte gUnknown_020314E0
_080280DC: .4byte 0x000006C5
_080280E0: .4byte 0x00000602
_080280E4: .4byte 0x000006D3
_080280E8:
ldr r4, _08028114 @ =gMain
ldrb r1, [r4, #0xf]
adds r3, r1, #0
cmp r3, #0
beq _080280F4
b _080281F6
_080280F4:
ldrb r0, [r4, #4]
cmp r0, #0
bne _08028124
ldr r2, [r5]
ldrh r0, [r2, #0x28]
cmp r0, #0x5e
beq _0802812C
cmp r0, #0x5d
beq _08028136
cmp r0, #0x49
bne _08028118
movs r0, #0x1d
bl m4aSongNumStart
b _080281F6
.align 2, 0
_08028114: .4byte gMain
_08028118:
cmp r0, #0x10
bhi _080281F6
movs r0, #0xa5
lsls r0, r0, #2
adds r1, r2, r0
b _080281EA
_08028124:
ldr r2, [r5]
ldrh r0, [r2, #0x28]
cmp r0, #0x44
bne _08028132
_0802812C:
bl m4aMPlayAllStop
b _080281F6
_08028132:
cmp r0, #0x43
bne _080281D4
_08028136:
movs r0, #1
orrs r0, r1
strb r0, [r4, #0xf]
adds r0, r2, #0
adds r0, #0xea
strh r3, [r0]
adds r1, r2, #0
adds r1, #0xec
movs r0, #0x78
strh r0, [r1]
adds r0, r2, #0
adds r0, #0xe8
strh r3, [r0]
subs r0, #2
strh r3, [r0]
adds r0, #8
strh r3, [r0]
adds r1, #6
movs r0, #2
strb r0, [r1]
ldr r0, [r5]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
adds r0, #0xfb
strb r1, [r0]
ldr r2, [r5]
adds r1, r2, #0
adds r1, #0xf4
movs r0, #0x50
strh r0, [r1]
adds r1, #2
ldr r0, _080281B4 @ =0x0000F63C
strh r0, [r1]
subs r1, #6
movs r0, #0x32
strh r0, [r1]
adds r0, r2, #0
adds r0, #0xf8
strh r3, [r0]
ldr r1, _080281B8 @ =0x040000D4
ldr r0, _080281BC @ =gUnknown_086ACEF8
ldr r0, [r0, #8]
str r0, [r1]
ldr r0, _080281C0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _080281C4 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _080281C8 @ =gUnknown_086ACF18
ldr r0, [r0, #8]
str r0, [r1]
ldr r0, _080281CC @ =0x050003C0
str r0, [r1, #4]
ldr r0, _080281D0 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r4, #0x38]
movs r0, #0xce
strh r0, [r4, #0x38]
b _080281F6
.align 2, 0
_080281B4: .4byte 0x0000F63C
_080281B8: .4byte 0x040000D4
_080281BC: .4byte gUnknown_086ACEF8
_080281C0: .4byte 0x06015800
_080281C4: .4byte 0x80001200
_080281C8: .4byte gUnknown_086ACF18
_080281CC: .4byte 0x050003C0
_080281D0: .4byte 0x80000010
_080281D4:
cmp r0, #0x2f
bne _080281E0
movs r0, #0x21
bl m4aSongNumStart
b _080281F6
_080281E0:
cmp r0, #0
bne _080281F6
movs r3, #0xa5
lsls r3, r3, #2
adds r1, r2, r3
_080281EA:
movs r0, #2
strb r0, [r1]
ldr r1, [r5]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
_080281F6:
bl sub_29334
b _080283FA
_080281FC:
ldr r0, [r5]
ldr r1, _08028210 @ =0x00000729
adds r0, r0, r1
movs r4, #0
movs r1, #1
strb r1, [r0]
bl sub_29334
b _08028262
.align 2, 0
_08028210: .4byte 0x00000729
_08028214:
ldr r0, [r5]
ldr r2, _0802822C @ =0x00000729
adds r0, r0, r2
movs r4, #0
strb r4, [r0]
ldr r1, [r5]
ldrh r0, [r1, #0x18]
cmp r0, #0
bne _08028230
adds r0, #1
strh r0, [r1, #0x18]
b _080283FA
.align 2, 0
_0802822C: .4byte 0x00000729
_08028230:
adds r1, #0xe4
movs r0, #0xa
strb r0, [r1]
ldr r1, _08028268 @ =0x040000D4
ldr r0, _0802826C @ =gUnknown_0839C78C
str r0, [r1]
ldr r0, _08028270 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08028274 @ =0x80000A00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08028278 @ =gUnknown_0839DBAC
str r0, [r1]
ldr r0, _0802827C @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08028280 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xa7
bl m4aSongNumStart
ldr r1, [r5]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
_08028262:
ldr r0, [r5]
strh r4, [r0, #0x18]
b _080283FA
.align 2, 0
_08028268: .4byte 0x040000D4
_0802826C: .4byte gUnknown_0839C78C
_08028270: .4byte 0x06015800
_08028274: .4byte 0x80000A00
_08028278: .4byte gUnknown_0839DBAC
_0802827C: .4byte 0x050003C0
_08028280: .4byte 0x80000010
_08028284:
bl sub_293D8
b _080283FA
_0802828A:
bl sub_29624
ldr r0, _0802832C @ =0x040000D4
ldr r1, _08028330 @ =gUnknown_086ACF80
str r1, [r0]
ldr r1, _08028334 @ =0x050003E0
str r1, [r0, #4]
ldr r2, _08028338 @ =0x80000010
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _0802833C @ =gUnknown_020306D0
str r1, [r0]
ldr r1, _08028340 @ =0x050003A0
str r1, [r0, #4]
str r2, [r0, #8]
ldr r0, [r0, #8]
ldr r4, _08028344 @ =gUnknown_020314E0
ldr r1, [r4]
movs r3, #0xa2
lsls r3, r3, #2
adds r2, r1, r3
movs r3, #0
movs r5, #0
movs r0, #0x76
strh r0, [r2]
ldr r0, _08028348 @ =0x0000028A
adds r2, r1, r0
movs r0, #0x84
lsls r0, r0, #1
strh r0, [r2]
movs r2, #0xe4
lsls r2, r2, #3
adds r1, r1, r2
strb r3, [r1]
ldr r0, [r4]
ldr r3, _0802834C @ =0x0000071D
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
ldr r0, [r4]
subs r2, #2
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
adds r3, #2
adds r0, r0, r3
strb r1, [r0]
bl sub_28C90
ldr r0, [r4]
ldr r1, _08028350 @ =0x000005F2
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r1, [r4]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r1, [r4]
movs r3, #0xa7
lsls r3, r3, #2
adds r2, r1, r3
movs r0, #0x8c
strh r0, [r2]
ldr r2, _08028354 @ =gUnknown_086A3700
movs r0, #0xb3
lsls r0, r0, #3
adds r1, r1, r0
ldrh r1, [r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrh r0, [r0]
movs r1, #0
bl sub_528DC
ldr r0, [r4]
strh r5, [r0, #0x18]
b _080283FA
.align 2, 0
_0802832C: .4byte 0x040000D4
_08028330: .4byte gUnknown_086ACF80
_08028334: .4byte 0x050003E0
_08028338: .4byte 0x80000010
_0802833C: .4byte gUnknown_020306D0
_08028340: .4byte 0x050003A0
_08028344: .4byte gUnknown_020314E0
_08028348: .4byte 0x0000028A
_0802834C: .4byte 0x0000071D
_08028350: .4byte 0x000005F2
_08028354: .4byte gUnknown_086A3700
_08028358:
ldr r1, [r5]
ldrh r2, [r1, #0x18]
cmp r2, #0
bne _0802836C
adds r0, r1, #0
adds r0, #0xec
strh r2, [r0]
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
_0802836C:
bl sub_28C90
ldr r0, [r5]
ldr r2, _08028384 @ =0x000005AA
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _080283FA
subs r0, #1
strh r0, [r1]
b _080283FA
.align 2, 0
_08028384: .4byte 0x000005AA
_08028388:
bl sub_28E2C
bl sub_2530C
ldr r0, _0802839C @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080283F8
.align 2, 0
_0802839C: .4byte gUnknown_020314E0
_080283A0:
bl sub_27D44
ldr r0, _080283B0 @ =gUnknown_020314E0
ldr r1, [r0]
ldrb r0, [r1, #0x17]
adds r0, #1
b _080283F8
.align 2, 0
_080283B0: .4byte gUnknown_020314E0
_080283B4:
ldr r0, [r5]
ldr r3, _080283CC @ =0x00000729
adds r0, r0, r3
movs r1, #0
strb r1, [r0]
ldr r1, [r5]
ldrh r0, [r1, #0x18]
cmp r0, #0
beq _080283D0
subs r0, #1
strh r0, [r1, #0x18]
b _080283FA
.align 2, 0
_080283CC: .4byte 0x00000729
_080283D0:
ldr r2, _080283E8 @ =0x0000071F
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _080283EC
movs r0, #3
bl sub_19B64
b _080283F2
.align 2, 0
_080283E8: .4byte 0x0000071F
_080283EC:
movs r0, #1
bl sub_19B64
_080283F2:
ldr r0, _08028400 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0
_080283F8:
strb r0, [r1, #0x17]
_080283FA:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08028400: .4byte gUnknown_020314E0
thumb_func_start sub_28404
sub_28404: @ 0x08028404
push {r4, r5, r6, r7, lr}
ldr r5, _08028500 @ =gUnknown_020314E0
ldr r0, [r5]
movs r3, #0
strb r3, [r0, #0x17]
ldr r0, [r5]
movs r6, #0
strh r3, [r0, #0x18]
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r2, [r5]
adds r4, r2, #0
adds r4, #0x6c
movs r7, #0xe1
lsls r7, r7, #3
adds r0, r7, #0
ldrh r1, [r4]
adds r0, r0, r1
ldr r7, _08028504 @ =0x00000296
adds r1, r2, r7
strh r0, [r1]
strh r3, [r4]
ldr r0, _08028508 @ =0x000005A5
adds r2, r2, r0
strb r6, [r2]
ldr r0, [r5]
ldr r2, _0802850C @ =0x000005AA
adds r1, r0, r2
strh r3, [r1]
ldr r7, _08028510 @ =0x000005A9
adds r0, r0, r7
strb r6, [r0]
ldr r2, [r5]
adds r0, r2, #0
adds r0, #0x7c
strh r3, [r0]
adds r1, r2, #0
adds r1, #0x80
movs r0, #0xe1
lsls r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, _08028514 @ =0x0000FA88
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x73
strb r6, [r0]
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0xbc
strh r3, [r0]
adds r0, #2
strh r3, [r0]
adds r0, #2
strh r3, [r0]
adds r0, #2
strh r3, [r0]
adds r0, #2
strh r3, [r0]
adds r0, #2
strh r3, [r0]
ldr r2, _08028518 @ =0x0000072F
adds r0, r1, r2
strb r6, [r0]
ldr r0, [r5]
ldr r7, _0802851C @ =0x00000731
adds r0, r0, r7
strb r6, [r0]
ldr r2, [r5]
adds r0, r2, #0
adds r0, #0x74
strh r3, [r0]
adds r1, r2, #0
adds r1, #0x76
movs r0, #0xa
strh r0, [r1]
adds r1, #2
movs r0, #0x14
strh r0, [r1]
adds r1, #2
movs r0, #0x1e
strh r0, [r1]
ldr r0, _08028520 @ =0x00000724
adds r1, r2, r0
ldr r0, _08028524 @ =0x00000CA8
strh r0, [r1]
ldr r1, _08028528 @ =0x00000714
adds r0, r2, r1
strb r6, [r0]
ldr r0, [r5]
movs r2, #0xe2
lsls r2, r2, #3
adds r0, r0, r2
strb r6, [r0]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0802852C @ =0x00000711
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r5]
adds r1, r0, r2
ldrb r1, [r1]
subs r7, #0x1f
adds r0, r0, r7
strb r1, [r0]
ldr r0, [r5]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _08028530 @ =0x00000713
adds r0, r0, r2
strb r1, [r0]
ldr r1, _08028534 @ =0x040000D4
ldr r0, _08028538 @ =gUnknown_081C0064
str r0, [r1]
ldr r0, _0802853C @ =0x05000180
str r0, [r1, #4]
ldr r0, _08028540 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08028500: .4byte gUnknown_020314E0
_08028504: .4byte 0x00000296
_08028508: .4byte 0x000005A5
_0802850C: .4byte 0x000005AA
_08028510: .4byte 0x000005A9
_08028514: .4byte 0x0000FA88
_08028518: .4byte 0x0000072F
_0802851C: .4byte 0x00000731
_08028520: .4byte 0x00000724
_08028524: .4byte 0x00000CA8
_08028528: .4byte 0x00000714
_0802852C: .4byte 0x00000711
_08028530: .4byte 0x00000713
_08028534: .4byte 0x040000D4
_08028538: .4byte gUnknown_081C0064
_0802853C: .4byte 0x05000180
_08028540: .4byte 0x80000010
thumb_func_start sub_28544
sub_28544: @ 0x08028544
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r1, _08028568 @ =gUnknown_020314E0
ldr r0, [r1]
ldrb r0, [r0, #0x17]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r1
cmp r0, #6
bls _0802855C
b _08028AD2
_0802855C:
lsls r0, r0, #2
ldr r1, _0802856C @ =_08028570
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028568: .4byte gUnknown_020314E0
_0802856C: .4byte _08028570
_08028570: @ jump table
.4byte _0802858C @ case 0
.4byte _080285A8 @ case 1
.4byte _080286C8 @ case 2
.4byte _080287E0 @ case 3
.4byte _08028A2C @ case 4
.4byte _08028A60 @ case 5
.4byte _08028A88 @ case 6
_0802858C:
mov r1, r8
ldr r0, [r1]
movs r2, #0xb3
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0xc8
strh r1, [r0]
bl sub_28AE0
mov r3, r8
ldr r1, [r3]
ldrb r0, [r1, #0x17]
adds r0, #1
b _08028AD0
_080285A8:
ldr r4, _080285CC @ =gMain
ldrb r1, [r4, #0xf]
adds r3, r1, #0
cmp r3, #0
bne _0802869E
ldrb r0, [r4, #4]
cmp r0, #0
bne _080285D0
mov r5, r8
ldr r2, [r5]
ldrh r0, [r2, #0x28]
cmp r0, #0x5e
beq _080285DA
cmp r0, #0x5d
beq _080285E4
cmp r0, #0x49
beq _08028688
b _08028690
.align 2, 0
_080285CC: .4byte gMain
_080285D0:
mov r5, r8
ldr r2, [r5]
ldrh r0, [r2, #0x28]
cmp r0, #0x44
bne _080285E0
_080285DA:
bl m4aMPlayAllStop
b _08028AD2
_080285E0:
cmp r0, #0x43
bne _08028684
_080285E4:
movs r0, #1
orrs r0, r1
strb r0, [r4, #0xf]
adds r0, r2, #0
adds r0, #0xea
strh r3, [r0]
adds r1, r2, #0
adds r1, #0xec
movs r0, #0x78
strh r0, [r1]
adds r0, r2, #0
adds r0, #0xe8
strh r3, [r0]
subs r0, #2
strh r3, [r0]
adds r0, #8
strh r3, [r0]
adds r1, #6
movs r0, #5
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
mov r2, r8
ldr r0, [r2]
adds r0, #0xfb
strb r1, [r0]
ldr r2, [r2]
adds r1, r2, #0
adds r1, #0xf4
movs r0, #0x50
strh r0, [r1]
adds r1, #2
ldr r0, _08028664 @ =0x0000F63C
strh r0, [r1]
subs r1, #6
movs r0, #0x32
strh r0, [r1]
adds r0, r2, #0
adds r0, #0xf8
strh r3, [r0]
ldr r1, _08028668 @ =0x040000D4
ldr r0, _0802866C @ =gUnknown_086ACEF8
ldr r0, [r0, #0x14]
str r0, [r1]
ldr r0, _08028670 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08028674 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08028678 @ =gUnknown_086ACF18
ldr r0, [r0, #0x14]
str r0, [r1]
ldr r0, _0802867C @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08028680 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r4, #0x38]
movs r0, #0xce
strh r0, [r4, #0x38]
b _08028AD2
.align 2, 0
_08028664: .4byte 0x0000F63C
_08028668: .4byte 0x040000D4
_0802866C: .4byte gUnknown_086ACEF8
_08028670: .4byte 0x06015800
_08028674: .4byte 0x80001200
_08028678: .4byte gUnknown_086ACF18
_0802867C: .4byte 0x050003C0
_08028680: .4byte 0x80000010
_08028684:
cmp r0, #0x2f
bne _08028690
_08028688:
movs r0, #0x2f
bl m4aSongNumStart
b _08028AD2
_08028690:
cmp r0, #0x28
beq _08028696
b _08028AD2
_08028696:
ldrb r0, [r2, #0x17]
adds r0, #1
strb r0, [r2, #0x17]
b _08028AD2
_0802869E:
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080286A8
b _08028AD2
_080286A8:
mov r3, r8
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0xf0
ldrh r0, [r0]
cmp r0, #1
beq _080286B8
b _08028AD2
_080286B8:
ldr r4, _080286C4 @ =0x000006C4
adds r1, r1, r4
movs r0, #3
strb r0, [r1]
b _08028AD2
.align 2, 0
_080286C4: .4byte 0x000006C4
_080286C8:
ldr r2, _080287A4 @ =0x040000D4
ldr r0, _080287A8 @ =gUnknown_086ACF80
str r0, [r2]
ldr r0, _080287AC @ =0x050003E0
str r0, [r2, #4]
ldr r1, _080287B0 @ =0x80000010
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _080287B4 @ =gUnknown_020306D0
str r0, [r2]
ldr r0, _080287B8 @ =0x050003A0
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
mov r5, r8
ldr r0, [r5]
movs r1, #0xe4
lsls r1, r1, #3
adds r0, r0, r1
movs r4, #0
strb r4, [r0]
ldr r0, [r5]
ldr r3, _080287BC @ =0x0000071D
adds r0, r0, r3
movs r1, #2
strb r1, [r0]
ldr r0, [r5]
ldr r5, _080287C0 @ =0x0000071E
adds r0, r0, r5
strb r1, [r0]
mov r3, r8
ldr r0, [r3]
adds r5, #1
adds r0, r0, r5
strb r1, [r0]
ldr r0, [r3]
ldr r1, _080287C4 @ =0x000005F2
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, _080287C8 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x84
ldr r0, [r0]
movs r3, #0
strh r1, [r0]
ldr r0, _080287CC @ =gUnknown_02030760
str r0, [r2]
ldr r0, _080287D0 @ =0x06010CA0
str r0, [r2, #4]
ldr r0, _080287D4 @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r5, r8
ldr r2, [r5]
movs r0, #0x28
strh r0, [r2, #0x28]
adds r1, r2, #0
adds r1, #0x80
movs r0, #0xe1
lsls r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, _080287D8 @ =0x0000FA88
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x73
strb r3, [r0]
ldr r3, [r5]
ldr r2, _080287DC @ =gUnknown_086AE124
adds r5, r3, #0
adds r5, #0x73
movs r0, #0
ldrsb r0, [r5, r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0xbc
strh r1, [r0]
movs r0, #0
ldrsb r0, [r5, r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0, #2]
adds r1, r3, #0
adds r1, #0xbe
strh r0, [r1]
strh r4, [r3, #0x18]
movs r0, #0xa2
lsls r0, r0, #1
bl m4aSongNumStart
mov r0, r8
ldr r1, [r0]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
mov r1, r8
ldr r2, [r1]
adds r0, r2, #0
adds r0, #0x80
ldrh r1, [r0]
adds r0, #0x40
strh r1, [r0]
subs r0, #0x3e
ldrh r1, [r0]
adds r0, #0x40
strh r1, [r0]
b _08028AD2
.align 2, 0
_080287A4: .4byte 0x040000D4
_080287A8: .4byte gUnknown_086ACF80
_080287AC: .4byte 0x050003E0
_080287B0: .4byte 0x80000010
_080287B4: .4byte gUnknown_020306D0
_080287B8: .4byte 0x050003A0
_080287BC: .4byte 0x0000071D
_080287C0: .4byte 0x0000071E
_080287C4: .4byte 0x000005F2
_080287C8: .4byte gMain
_080287CC: .4byte gUnknown_02030760
_080287D0: .4byte 0x06010CA0
_080287D4: .4byte 0x80000240
_080287D8: .4byte 0x0000FA88
_080287DC: .4byte gUnknown_086AE124
_080287E0:
ldr r4, _08028824 @ =gUnknown_020314E0
mov r8, r4
ldr r4, [r4]
ldr r5, _08028828 @ =0x000005A4
adds r0, r4, r5
ldrb r0, [r0]
cmp r0, #2
bne _08028830
adds r0, r4, #0
adds r0, #0xc0
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x76
movs r2, #0xa2
lsls r2, r2, #2
adds r1, r4, r2
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xc2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0xa
bl __divsi3
movs r5, #0x88
lsls r5, r5, #1
adds r0, r0, r5
ldr r2, _0802882C @ =0x0000028A
adds r1, r4, r2
strh r0, [r1]
b _08028974
.align 2, 0
_08028824: .4byte gUnknown_020314E0
_08028828: .4byte 0x000005A4
_0802882C: .4byte 0x0000028A
_08028830:
adds r0, r4, #0
adds r0, #0xbc
movs r5, #0
ldrsh r1, [r0, r5]
subs r0, #0x3c
movs r5, #0
ldrsh r0, [r0, r5]
subs r2, r1, r0
adds r0, r4, #0
adds r0, #0xbe
movs r5, #0
ldrsh r1, [r0, r5]
subs r0, #0x3c
movs r4, #0
ldrsh r0, [r0, r4]
subs r3, r1, r0
adds r4, r2, #0
muls r4, r2, r4
adds r0, r3, #0
muls r0, r3, r0
adds r4, r4, r0
lsls r0, r2, #0x10
asrs r0, r0, #0x10
rsbs r1, r3, #0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl ArcTan2
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, _0802888C @ =0x000009C3
cmp r4, r0
bgt _080288E8
movs r6, #0
movs r7, #0
mov r5, r8
ldr r2, [r5]
adds r1, r2, #0
adds r1, #0x7c
ldrh r0, [r1]
cmp r0, #0xc7
bhi _08028890
adds r0, #1
strh r0, [r1]
b _08028918
.align 2, 0
_0802888C: .4byte 0x000009C3
_08028890:
movs r0, #0
strh r0, [r1]
adds r1, r2, #0
adds r1, #0x73
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xa
bgt _080288A6
adds r0, r2, #1
b _080288A8
_080288A6:
movs r0, #0
_080288A8:
strb r0, [r1]
movs r0, #0xa2
lsls r0, r0, #1
bl m4aSongNumStart
ldr r0, _080288E0 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r2, _080288E4 @ =gUnknown_086AE124
adds r4, r3, #0
adds r4, #0x73
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0xbc
strh r1, [r0]
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #2]
adds r0, r3, #0
adds r0, #0xbe
strh r1, [r0]
b _08028918
.align 2, 0
_080288E0: .4byte gUnknown_020314E0
_080288E4: .4byte gUnknown_086AE124
_080288E8:
adds r0, r5, #0
bl sub_C74
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r1, r1, r0
ldr r4, _08028A0C @ =0x00004E20
adds r0, r1, #0
adds r1, r4, #0
bl __divsi3
adds r6, r0, #0
adds r0, r5, #0
bl sub_C24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
subs r0, r0, r1
adds r1, r4, #0
bl __divsi3
adds r7, r0, #0
_08028918:
ldr r5, _08028A10 @ =gUnknown_020314E0
ldr r0, [r5]
mov r8, r0
mov r4, r8
adds r4, #0x80
ldrh r0, [r4]
adds r0, r6, r0
strh r0, [r4]
mov r1, r8
adds r1, #0x82
ldrh r0, [r1]
adds r0, r7, r0
strh r0, [r1]
mov r1, r8
ldrh r0, [r1, #0x18]
movs r1, #0x50
bl __umodsi3
lsls r0, r0, #0x10
movs r1, #0x50
bl __divsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldrh r2, [r4]
mov r1, r8
adds r1, #0xc0
strh r2, [r1]
bl sub_C24
adds r1, r0, #0
ldr r4, [r5]
adds r5, r4, #0
adds r5, #0x82
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
ldr r1, _08028A0C @ =0x00004E20
bl __divsi3
ldrh r1, [r5]
adds r1, r1, r0
adds r4, #0xc2
strh r1, [r4]
_08028974:
ldr r0, _08028A10 @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r2, [r1, #0x18]
ldr r3, _08028A14 @ =0x000001F3
mov r8, r0
cmp r2, r3
bhi _08028994
movs r0, #0x28
strh r0, [r1, #0x28]
cmp r2, r3
bne _08028994
movs r2, #0xa5
lsls r2, r2, #2
adds r1, r1, r2
movs r0, #2
strb r0, [r1]
_08028994:
mov r3, r8
ldr r0, [r3]
ldrh r1, [r0, #0x18]
adds r1, #1
strh r1, [r0, #0x18]
bl sub_28EA0
mov r4, r8
ldr r0, [r4]
ldr r5, _08028A18 @ =0x000005AA
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, #0
beq _080289B4
subs r0, #1
strh r0, [r1]
_080289B4:
mov r0, r8
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
bne _080289CA
b _08028AD2
_080289CA:
ldr r3, _08028A1C @ =0x00000296
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #1
bls _080289D6
b _08028AD2
_080289D6:
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #4
ble _080289E0
b _08028AD2
_080289E0:
bl m4aMPlayAllStop
movs r0, #0x13
bl m4aSongNumStart
mov r4, r8
ldr r1, [r4]
movs r0, #4
strb r0, [r1, #0x17]
ldr r0, [r4]
movs r1, #0x96
strh r1, [r0, #0x18]
ldr r5, _08028A20 @ =0x000005F2
adds r0, r0, r5
movs r1, #0
strb r1, [r0]
ldr r0, _08028A24 @ =gMPlayInfo_SE1
ldr r1, _08028A28 @ =gUnknown_0869F58C
bl MPlayStart
b _08028AD2
.align 2, 0
_08028A0C: .4byte 0x00004E20
_08028A10: .4byte gUnknown_020314E0
_08028A14: .4byte 0x000001F3
_08028A18: .4byte 0x000005AA
_08028A1C: .4byte 0x00000296
_08028A20: .4byte 0x000005F2
_08028A24: .4byte gMPlayInfo_SE1
_08028A28: .4byte gUnknown_0869F58C
_08028A2C:
mov r0, r8
ldr r1, [r0]
ldrh r0, [r1, #0x18]
cmp r0, #0
beq _08028A3C
subs r0, #1
strh r0, [r1, #0x18]
b _08028A40
_08028A3C:
movs r0, #5
strb r0, [r1, #0x17]
_08028A40:
bl sub_28EA0
ldr r0, _08028A58 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _08028A5C @ =0x000005AA
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _08028AD2
subs r0, #1
strh r0, [r1]
b _08028AD2
.align 2, 0
_08028A58: .4byte gUnknown_020314E0
_08028A5C: .4byte 0x000005AA
_08028A60:
bl sub_28EA0
bl sub_292A0
bl sub_27D44
ldr r2, _08028A84 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x72
movs r3, #0
movs r1, #0xf0
strb r1, [r0]
ldr r1, [r2]
movs r0, #6
strb r0, [r1, #0x17]
ldr r0, [r2]
strh r3, [r0, #0x18]
b _08028AD2
.align 2, 0
_08028A84: .4byte gUnknown_020314E0
_08028A88:
mov r3, r8
ldr r0, [r3]
ldr r4, _08028AA4 @ =0x00000729
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r1, [r3]
ldrh r0, [r1, #0x18]
cmp r0, #0
beq _08028AA8
subs r0, #1
strh r0, [r1, #0x18]
b _08028AD2
.align 2, 0
_08028AA4: .4byte 0x00000729
_08028AA8:
ldr r5, _08028AC0 @ =0x0000071F
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _08028AC4
movs r0, #3
bl sub_19B64
b _08028ACA
.align 2, 0
_08028AC0: .4byte 0x0000071F
_08028AC4:
movs r0, #1
bl sub_19B64
_08028ACA:
ldr r0, _08028ADC @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0
_08028AD0:
strb r0, [r1, #0x17]
_08028AD2:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08028ADC: .4byte gUnknown_020314E0
thumb_func_start sub_28AE0
sub_28AE0: @ 0x08028AE0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x18
ldr r2, _08028BD4 @ =gUnknown_086A3700
ldr r0, _08028BD8 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xb3
lsls r1, r1, #3
adds r0, r0, r1
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
movs r7, #0
ldr r6, _08028BDC @ =gUnknown_086BB6F4
add r3, sp, #0xc
mov r8, r3
ldr r4, _08028BE0 @ =gUnknown_02030760
mov sl, r4
ldr r1, _08028BE4 @ =gUnknown_020306D0
mov sb, r1
ldrb r5, [r0, #0x11]
adds r0, r5, #0
movs r1, #5
bl __divsi3
adds r4, r0, #0
adds r0, r5, #0
movs r1, #5
bl __modsi3
lsls r4, r4, #0x10
asrs r4, r4, #0xe
adds r6, r4, r6
lsls r0, r0, #0x10
asrs r5, r0, #0x10
ldr r6, [r6]
mov ip, r6
ldr r3, _08028BE8 @ =gUnknown_086B15B4
adds r4, r4, r3
ldr r6, [r4]
_08028B3A:
lsls r3, r7, #0x10
asrs r3, r3, #0x10
lsls r2, r3, #2
mov r0, sp
adds r4, r0, r2
lsls r1, r5, #1
adds r1, r1, r5
adds r1, r3, r1
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
add r0, ip
str r0, [r4]
mov r1, r8
adds r0, r1, r2
adds r2, r2, r3
adds r2, r2, r5
lsls r2, r2, #5
adds r2, r6, r2
str r2, [r0]
adds r3, #1
lsls r3, r3, #0x10
lsrs r7, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _08028B3A
movs r7, #0
ldr r3, _08028BEC @ =0x040000D4
_08028B72:
lsls r1, r7, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #2
mov r4, sp
adds r0, r4, r2
ldr r0, [r0]
str r0, [r3]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
add r0, sl
str r0, [r3, #4]
ldr r0, _08028BF0 @ =0x80000240
str r0, [r3, #8]
ldr r0, [r3, #8]
add r2, r8
ldr r0, [r2]
str r0, [r3]
lsls r0, r1, #5
add r0, sb
str r0, [r3, #4]
ldr r2, _08028BF4 @ =0x80000010
str r2, [r3, #8]
ldr r0, [r3, #8]
adds r1, #1
lsls r1, r1, #0x10
lsrs r7, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #2
ble _08028B72
ldr r0, _08028BEC @ =0x040000D4
ldr r3, _08028BE8 @ =gUnknown_086B15B4
ldr r1, [r3]
movs r4, #0xf0
lsls r4, r4, #1
adds r1, r1, r4
str r1, [r0]
ldr r1, _08028BF8 @ =gUnknown_02030730
str r1, [r0, #4]
str r2, [r0, #8]
ldr r0, [r0, #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
_08028BD4: .4byte gUnknown_086A3700
_08028BD8: .4byte gUnknown_020314E0
_08028BDC: .4byte gUnknown_086BB6F4
_08028BE0: .4byte gUnknown_02030760
_08028BE4: .4byte gUnknown_020306D0
_08028BE8: .4byte gUnknown_086B15B4
_08028BEC: .4byte 0x040000D4
_08028BF0: .4byte 0x80000240
_08028BF4: .4byte 0x80000010
_08028BF8: .4byte gUnknown_02030730
thumb_func_start sub_28BFC
sub_28BFC: @ 0x08028BFC
push {r4, r5, r6, lr}
ldr r2, _08028C6C @ =gUnknown_086A3700
ldr r0, _08028C70 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xb3
lsls r1, r1, #3
adds r0, r0, r1
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldr r5, _08028C74 @ =gMonHatchSpriteGroupGfx
ldrb r6, [r0, #0x12]
adds r0, r6, #0
movs r1, #6
bl __divsi3
adds r4, r0, #0
lsls r4, r4, #0x10
asrs r4, r4, #0xe
adds r5, r4, r5
adds r0, r6, #0
movs r1, #6
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #3
subs r1, r1, r0
lsls r1, r1, #5
ldr r2, [r5]
adds r2, r2, r1
ldr r1, _08028C78 @ =gMonHatchSpriteGroupPals
adds r4, r4, r1
lsls r0, r0, #5
ldr r3, [r4]
adds r3, r3, r0
ldr r0, _08028C7C @ =0x040000D4
str r2, [r0]
ldr r1, _08028C80 @ =gUnknown_0202C7A0
str r1, [r0, #4]
ldr r1, _08028C84 @ =0x80000870
str r1, [r0, #8]
ldr r1, [r0, #8]
str r3, [r0]
ldr r1, _08028C88 @ =gUnknown_020315D0
str r1, [r0, #4]
ldr r1, _08028C8C @ =0x80000010
str r1, [r0, #8]
ldr r0, [r0, #8]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08028C6C: .4byte gUnknown_086A3700
_08028C70: .4byte gUnknown_020314E0
_08028C74: .4byte gMonHatchSpriteGroupGfx
_08028C78: .4byte gMonHatchSpriteGroupPals
_08028C7C: .4byte 0x040000D4
_08028C80: .4byte gUnknown_0202C7A0
_08028C84: .4byte 0x80000870
_08028C88: .4byte gUnknown_020315D0
_08028C8C: .4byte 0x80000010
thumb_func_start sub_28C90
sub_28C90: @ 0x08028C90
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r4, _08028D30 @ =gMain
ldr r0, [r4, #0x50]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, [r4, #0x44]
adds r0, #0x84
ldr r6, [r0]
ldrh r0, [r6]
cmp r0, #0
bne _08028CBA
b _08028E02
_08028CBA:
ldr r3, _08028D34 @ =gUnknown_020314E0
ldr r4, [r3]
adds r1, r4, #0
adds r1, #0xc4
movs r2, #0x60
movs r0, #0x60
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xc6
movs r1, #0x90
lsls r1, r1, #1
strh r1, [r0]
subs r0, #0x6e
ldrh r0, [r0]
subs r2, r2, r0
strh r2, [r6, #2]
adds r0, r4, #0
adds r0, #0x5a
ldrh r0, [r0]
subs r1, r1, r0
strh r1, [r6, #4]
ldr r1, _08028D38 @ =0x000005A9
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, #4
bls _08028D50
cmp r0, #0x14
beq _08028CF6
cmp r0, #0xc8
bne _08028D06
_08028CF6:
ldr r1, _08028D3C @ =0x040000D4
ldr r0, _08028D40 @ =gUnknown_02031060
str r0, [r1]
ldr r0, _08028D44 @ =0x06010CA0
str r0, [r1, #4]
ldr r0, _08028D48 @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
_08028D06:
ldr r0, [r3]
ldr r2, _08028D38 @ =0x000005A9
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #0x18
bne _08028D22
ldr r1, _08028D3C @ =0x040000D4
ldr r0, _08028D4C @ =gUnknown_02030760
str r0, [r1]
ldr r0, _08028D44 @ =0x06010CA0
str r0, [r1, #4]
ldr r0, _08028D48 @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
_08028D22:
ldr r1, [r3]
adds r1, r1, r2
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _08028D78
.align 2, 0
_08028D30: .4byte gMain
_08028D34: .4byte gUnknown_020314E0
_08028D38: .4byte 0x000005A9
_08028D3C: .4byte 0x040000D4
_08028D40: .4byte gUnknown_02031060
_08028D44: .4byte 0x06010CA0
_08028D48: .4byte 0x80000240
_08028D4C: .4byte gUnknown_02030760
_08028D50:
movs r2, #0xde
lsls r2, r2, #1
adds r0, r4, r2
ldrh r0, [r0]
cmp r0, #5
bne _08028D78
ldr r2, _08028E10 @ =0x040000D4
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08028E14 @ =gUnknown_02030760
adds r0, r0, r1
str r0, [r2]
ldr r0, _08028E18 @ =0x06010CA0
str r0, [r2, #4]
ldr r0, _08028E1C @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
_08028D78:
ldr r0, [r3]
movs r1, #0xb5
lsls r1, r1, #3
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #1
cmp r0, #0xc
bgt _08028D8E
movs r1, #2
_08028D8E:
movs r2, #4
ldrsh r0, [r6, r2]
cmp r0, #0xc7
ble _08028D9A
movs r0, #0xc8
strh r0, [r6, #4]
_08028D9A:
movs r0, #0
ldr r7, _08028E20 @ =gOamBuffer
ldr r2, _08028E24 @ =0xFFFFFE00
mov sb, r2
lsls r1, r1, #2
mov ip, r1
movs r1, #0xd
rsbs r1, r1, #0
mov r8, r1
_08028DAC:
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, _08028E28 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r4, #2]
mov r0, sb
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 r2, [r3, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r3]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r2, [r1, #5]
mov r0, r8
ands r0, r2
mov r2, ip
orrs r0, r2
strb r0, [r1, #5]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #3
ble _08028DAC
_08028E02:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08028E10: .4byte 0x040000D4
_08028E14: .4byte gUnknown_02030760
_08028E18: .4byte 0x06010CA0
_08028E1C: .4byte 0x80000240
_08028E20: .4byte gOamBuffer
_08028E24: .4byte 0xFFFFFE00
_08028E28: .4byte 0x000001FF
thumb_func_start sub_28E2C
sub_28E2C: @ 0x08028E2C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _08028E94 @ =gMain
ldr r1, [r0, #0x44]
adds r1, #0x84
ldr r5, [r1]
ldrh r1, [r5]
mov r8, r0
cmp r1, #0
beq _08028E7C
movs r0, #0
ldr r6, _08028E98 @ =gOamBuffer
ldr r1, _08028E9C @ =0xFFFFFE00
mov ip, r1
movs r7, #0xc8
_08028E4C:
lsls r2, r0, #0x10
asrs r2, r2, #0x10
lsls r4, r2, #3
adds r4, #8
adds r4, r5, r4
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrh r3, [r1, #2]
mov r0, ip
ands r0, r3
orrs r0, r7
strh r0, [r1, #2]
ldrh r0, [r4]
lsls r0, r0, #3
adds r0, r0, r6
movs r1, #0xb4
strb r1, [r0]
adds r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #3
ble _08028E4C
_08028E7C:
mov r1, r8
ldr r0, [r1, #0x44]
adds r0, #0x84
ldr r1, [r0]
movs r0, #0
strh r0, [r1]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08028E94: .4byte gMain
_08028E98: .4byte gOamBuffer
_08028E9C: .4byte 0xFFFFFE00
thumb_func_start sub_28EA0
sub_28EA0: @ 0x08028EA0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r4, _08028F64 @ =gMain
ldr r0, [r4, #0x50]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
ldr r0, [r4, #0x44]
adds r0, #0x84
ldr r7, [r0]
ldrh r0, [r7]
ldr r1, _08028F68 @ =gUnknown_020314E0
mov sl, r1
cmp r0, #0
bne _08028ED4
b _080290C4
_08028ED4:
ldr r6, [r1]
adds r4, r6, #0
adds r4, #0xc0
movs r2, #0
ldrsh r0, [r4, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x60
adds r1, r6, #0
adds r1, #0xc4
strh r0, [r1]
movs r0, #0xc2
adds r0, r0, r6
mov r8, r0
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
movs r2, #0x90
lsls r2, r2, #1
adds r5, r2, #0
adds r0, r0, r5
adds r1, r6, #0
adds r1, #0xc6
strh r0, [r1]
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
adds r0, #0x60
adds r1, r6, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #2]
mov r2, r8
movs r1, #0
ldrsh r0, [r2, r1]
movs r1, #0xa
bl __divsi3
adds r0, r0, r5
adds r1, r6, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #4]
movs r0, #0x17
ldrsb r0, [r6, r0]
cmp r0, #3
ble _08028F7A
ldrh r0, [r6, #0x18]
cmp r0, #0x59
bls _08028F74
adds r1, r0, #0
movs r0, #0x96
subs r0, r0, r1
cmp r0, #0
bge _08028F52
adds r0, #3
_08028F52:
lsls r1, r0, #0xe
ldr r2, _08028F6C @ =0x040000D4
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08028F70 @ =gUnknown_0844AA0C
b _08028FFC
.align 2, 0
_08028F64: .4byte gMain
_08028F68: .4byte gUnknown_020314E0
_08028F6C: .4byte 0x040000D4
_08028F70: .4byte gUnknown_0844AA0C
_08028F74:
movs r0, #0xbe
strh r0, [r7, #4]
b _0802900A
_08028F7A:
ldr r2, _08028FC8 @ =0x000005A9
adds r0, r6, r2
ldrb r0, [r0]
cmp r0, #4
bls _08028FE0
cmp r0, #0x14
beq _08028F8C
cmp r0, #0xc8
bne _08028F9C
_08028F8C:
ldr r1, _08028FCC @ =0x040000D4
ldr r0, _08028FD0 @ =gUnknown_02031060
str r0, [r1]
ldr r0, _08028FD4 @ =0x06010CA0
str r0, [r1, #4]
ldr r0, _08028FD8 @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
_08028F9C:
mov r6, sl
ldr r0, [r6]
ldr r2, _08028FC8 @ =0x000005A9
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #0x18
bne _08028FBA
ldr r1, _08028FCC @ =0x040000D4
ldr r0, _08028FDC @ =gUnknown_02030760
str r0, [r1]
ldr r0, _08028FD4 @ =0x06010CA0
str r0, [r1, #4]
ldr r0, _08028FD8 @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
_08028FBA:
mov r0, sl
ldr r1, [r0]
adds r1, r1, r2
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
b _0802900A
.align 2, 0
_08028FC8: .4byte 0x000005A9
_08028FCC: .4byte 0x040000D4
_08028FD0: .4byte gUnknown_02031060
_08028FD4: .4byte 0x06010CA0
_08028FD8: .4byte 0x80000240
_08028FDC: .4byte gUnknown_02030760
_08028FE0:
movs r1, #0xde
lsls r1, r1, #1
adds r0, r6, r1
ldrh r0, [r0]
cmp r0, #5
bne _0802900A
ldr r2, _0802901C @ =0x040000D4
mov r6, sb
lsls r1, r6, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08029020 @ =gUnknown_02030760
_08028FFC:
adds r0, r0, r1
str r0, [r2]
ldr r0, _08029024 @ =0x06010CA0
str r0, [r2, #4]
ldr r0, _08029028 @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
_0802900A:
mov r0, sl
ldr r1, [r0]
ldr r2, _0802902C @ =0x000005A4
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #2
beq _08029030
movs r3, #1
b _08029044
.align 2, 0
_0802901C: .4byte 0x040000D4
_08029020: .4byte gUnknown_02030760
_08029024: .4byte 0x06010CA0
_08029028: .4byte 0x80000240
_0802902C: .4byte 0x000005A4
_08029030:
movs r6, #0xb5
lsls r6, r6, #3
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r3, #1
cmp r0, #0xc
bgt _08029044
movs r3, #2
_08029044:
movs r1, #4
ldrsh r0, [r7, r1]
cmp r0, #0xc7
ble _08029052
movs r0, #0xc8
strh r0, [r7, #4]
b _0802905C
_08029052:
movs r1, #0x3c
rsbs r1, r1, #0
cmp r0, r1
bge _0802905C
strh r1, [r7, #4]
_0802905C:
movs r2, #0
ldr r6, _0802912C @ =gOamBuffer
ldr r0, _08029130 @ =0xFFFFFE00
mov sl, r0
lsls r3, r3, #2
mov r8, r3
movs r1, #0xd
rsbs r1, r1, #0
mov sb, r1
_0802906E:
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 r2, #2
ldrsh r1, [r5, r2]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _08029134 @ =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, r6
ldrb r0, [r7, #4]
ldrb r2, [r5, #4]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
mov r0, sb
ands r0, r2
mov r2, r8
orrs r0, r2
strb r0, [r1, #5]
adds r4, #1
lsls r4, r4, #0x10
lsrs r2, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _0802906E
_080290C4:
movs r1, #0
_080290C6:
lsls r0, r1, #0x10
asrs r5, r0, #0x10
ldr r6, _08029138 @ =gMain
ldr r1, [r6, #0x44]
lsls r4, r5, #2
adds r1, r4, r1
adds r1, #0xb4
ldr r7, [r1]
ldrh r1, [r7]
mov r8, r0
cmp r1, #0
beq _080291D2
ldr r0, _0802913C @ =gUnknown_020314E0
ldr r2, [r0]
adds r3, r2, r4
adds r0, r3, #0
adds r0, #0x84
adds r1, r2, #0
adds r1, #0x58
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r7, #2]
adds r3, #0x86
adds r0, r2, #0
adds r0, #0x5a
ldrh r3, [r3]
ldrh r0, [r0]
subs r3, r3, r0
strh r3, [r7, #4]
lsls r0, r5, #1
adds r2, #0x74
adds r2, r2, r0
ldrh r0, [r2]
lsrs r0, r0, #2
movs r1, #9
subs r1, r1, r0
lsls r1, r1, #1
adds r0, r4, r5
lsls r0, r0, #2
adds r1, r1, r0
ldr r2, _08029140 @ =gUnknown_086AE154
adds r1, r1, r2
ldrh r1, [r1]
lsls r3, r3, #0x10
asrs r0, r3, #0x10
cmp r0, #0xc7
ble _08029144
movs r0, #0xc8
strh r0, [r7, #4]
b _0802914E
.align 2, 0
_0802912C: .4byte gOamBuffer
_08029130: .4byte 0xFFFFFE00
_08029134: .4byte 0x000001FF
_08029138: .4byte gMain
_0802913C: .4byte gUnknown_020314E0
_08029140: .4byte gUnknown_086AE154
_08029144:
movs r2, #0x3c
rsbs r2, r2, #0
cmp r0, r2
bge _0802914E
strh r2, [r7, #4]
_0802914E:
movs r2, #0
lsls r1, r1, #0x10
ldr r6, _08029284 @ =gUnknown_086B263C
mov sl, r6
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #1
mov ip, r0
ldr r0, _08029288 @ =0xFFFFFE00
mov sb, r0
_08029164:
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
ldr r1, _0802928C @ =gOamBuffer
adds r2, r2, r1
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
ldr r6, _0802928C @ =gOamBuffer
adds r2, r2, r6
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
str r1, [sp]
movs r1, #2
ldrsh r0, [r7, r1]
ldr r6, [sp]
adds r1, r6, r0
ldr r6, _08029290 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
mov r0, sb
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
ldr r0, _0802928C @ =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, #2
ble _08029164
_080291D2:
ldr r6, _08029294 @ =gUnknown_020314E0
ldr r4, [r6]
ldr r1, _08029298 @ =0x000005A4
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, #2
beq _08029228
movs r0, #0x17
ldrsb r0, [r4, r0]
cmp r0, #3
bgt _08029228
mov r2, r8
asrs r3, r2, #0x10
lsls r0, r3, #1
adds r1, r4, #0
adds r1, #0x74
adds r1, r1, r0
ldrh r0, [r1]
cmp r0, #0
bne _0802923A
movs r0, #0x28
strh r0, [r1]
lsls r3, r3, #2
adds r2, r4, r3
adds r0, r4, #0
adds r0, #0xc4
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x84
strh r1, [r0]
adds r0, r4, #0
adds r0, #0xc6
ldrh r0, [r0]
adds r0, #0x10
adds r2, #0x86
strh r0, [r2]
ldr r6, _0802929C @ =gMain
ldr r0, [r6, #0x44]
adds r3, r3, r0
adds r3, #0xb4
ldr r1, [r3]
movs r0, #1
strh r0, [r1]
_08029228:
ldr r1, _08029294 @ =gUnknown_020314E0
ldr r0, [r1]
mov r2, r8
asrs r1, r2, #0xf
adds r0, #0x74
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0
beq _08029264
_0802923A:
ldr r6, _08029294 @ =gUnknown_020314E0
ldr r0, [r6]
mov r1, r8
asrs r3, r1, #0x10
lsls r1, r3, #1
adds r0, #0x74
adds r0, r0, r1
ldrh r1, [r0]
subs r1, #1
strh r1, [r0]
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
cmp r2, #0
bne _08029264
ldr r6, _0802929C @ =gMain
ldr r0, [r6, #0x44]
lsls r1, r3, #2
adds r1, r1, r0
adds r1, #0xb4
ldr r0, [r1]
strh r2, [r0]
_08029264:
movs r0, #0x80
lsls r0, r0, #9
add r0, r8
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
bgt _08029274
b _080290C6
_08029274:
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
_08029284: .4byte gUnknown_086B263C
_08029288: .4byte 0xFFFFFE00
_0802928C: .4byte gOamBuffer
_08029290: .4byte 0x000001FF
_08029294: .4byte gUnknown_020314E0
_08029298: .4byte 0x000005A4
_0802929C: .4byte gMain
thumb_func_start sub_292A0
sub_292A0: @ 0x080292A0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _08029328 @ =gMain
ldr r1, [r0, #0x44]
adds r1, #0x84
ldr r5, [r1]
ldrh r1, [r5]
mov r8, r0
cmp r1, #0
beq _080292F0
movs r0, #0
ldr r6, _0802932C @ =gOamBuffer
ldr r1, _08029330 @ =0xFFFFFE00
mov ip, r1
movs r7, #0xc8
_080292C0:
lsls r2, r0, #0x10
asrs r2, r2, #0x10
lsls r4, r2, #3
adds r4, #8
adds r4, r5, r4
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldrh r3, [r1, #2]
mov r0, ip
ands r0, r3
orrs r0, r7
strh r0, [r1, #2]
ldrh r0, [r4]
lsls r0, r0, #3
adds r0, r0, r6
movs r1, #0xb4
strb r1, [r0]
adds r2, #1
lsls r2, r2, #0x10
lsrs r0, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #3
ble _080292C0
_080292F0:
mov r1, r8
ldr r0, [r1, #0x44]
adds r0, #0x84
ldr r1, [r0]
movs r0, #0
strh r0, [r1]
mov r4, r8
movs r3, #0
_08029300:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
ldr r2, [r4, #0x44]
lsls r0, r1, #2
adds r0, r0, r2
adds r0, #0xb4
ldr r0, [r0]
strh r3, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #3
ble _08029300
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08029328: .4byte gMain
_0802932C: .4byte gOamBuffer
_08029330: .4byte 0xFFFFFE00
thumb_func_start sub_29334
sub_29334: @ 0x08029334
push {r4, r5, lr}
ldr r0, _08029384 @ =gUnknown_020314E0
ldr r2, [r0]
adds r1, r2, #0
adds r1, #0x68
movs r3, #0
ldrsh r1, [r1, r3]
adds r4, r0, #0
cmp r1, #0x8a
ble _080293A6
ldr r5, _08029388 @ =0x000006C5
adds r3, r2, r5
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
bne _08029398
ldr r0, _0802938C @ =0x00000625
adds r1, r2, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08029398
adds r5, #1
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #6
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
cmp r0, r1
bne _08029394
movs r0, #2
strb r0, [r3]
ldr r1, [r4]
ldr r0, _08029390 @ =0x000493E0
str r0, [r1, #0x3c]
b _08029398
.align 2, 0
_08029384: .4byte gUnknown_020314E0
_08029388: .4byte 0x000006C5
_0802938C: .4byte 0x00000625
_08029390: .4byte 0x000493E0
_08029394:
movs r0, #1
strb r0, [r3]
_08029398:
ldr r0, [r4]
ldr r2, _080293BC @ =0x00000625
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _080293C0 @ =0x000006C6
adds r0, r0, r3
strb r1, [r0]
_080293A6:
ldr r0, [r4]
ldr r5, _080293C4 @ =0x000006C5
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _080293C8
bl sub_25808
b _080293D0
.align 2, 0
_080293BC: .4byte 0x00000625
_080293C0: .4byte 0x000006C6
_080293C4: .4byte 0x000006C5
_080293C8:
cmp r0, #1
bne _080293D0
bl sub_253E0
_080293D0:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_293D8
sub_293D8: @ 0x080293D8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r1, _0802940C @ =gUnknown_086AD436
ldr r3, _08029410 @ =gUnknown_020314E0
ldr r2, [r3]
ldr r0, _08029414 @ =0x000006CC
adds r4, r2, r0
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r1, _08029418 @ =0x000006CA
adds r2, r2, r1
ldrh r1, [r2]
cmp r0, r1
ble _0802941C
adds r0, r1, #1
strh r0, [r2]
b _08029426
.align 2, 0
_0802940C: .4byte gUnknown_086AD436
_08029410: .4byte gUnknown_020314E0
_08029414: .4byte 0x000006CC
_08029418: .4byte 0x000006CA
_0802941C:
movs r0, #0
strh r0, [r2]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
_08029426:
ldr r2, _080295E4 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r4, _080295E8 @ =0x000006CC
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08029456
ldr r2, _080295EC @ =0x000006CA
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #3
bls _08029456
subs r4, #8
adds r1, r1, r4
movs r0, #3
strb r0, [r1]
ldr r0, _080295F0 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0x84
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
_08029456:
ldr r4, _080295E4 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _080295E8 @ =0x000006CC
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _0802948A
ldr r1, _080295F4 @ =0x040000D4
ldr r0, _080295F8 @ =gUnknown_020306D0
str r0, [r1]
ldr r0, _080295FC @ =0x050003A0
str r0, [r1, #4]
ldr r0, _08029600 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08029604 @ =gUnknown_02030760
str r0, [r1]
ldr r0, _08029608 @ =0x06010CA0
str r0, [r1, #4]
ldr r0, _0802960C @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
bl sub_28C90
_0802948A:
ldr r0, _080295F0 @ =gMain
ldr r1, [r0, #0x44]
ldr r7, [r1, #0x48]
ldrh r1, [r7]
cmp r1, #0
bne _08029498
b _080295A0
_08029498:
ldr r0, _080295E4 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r2, #0x94
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _080294C2
movs r0, #0xc8
strh r0, [r7, #4]
_080294C2:
movs r0, #0
ldr r4, _08029610 @ =gUnknown_086B55DC
mov sl, r4
ldr r1, _08029614 @ =gUnknown_086AD436
mov sb, r1
ldr r2, _080295E4 @ =gUnknown_020314E0
mov r8, r2
mov ip, r5
_080294D2:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r6, r5, #3
adds r6, #8
adds r6, r7, r6
ldrh r4, [r6]
lsls r4, r4, #3
ldr r0, _08029618 @ =gOamBuffer
adds r4, r4, r0
lsls r3, r5, #1
adds r3, r3, r5
lsls r1, r3, #1
str r1, [sp]
mov r2, r8
ldr r0, [r2]
add r0, ip
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
add r0, sb
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, [sp]
adds r2, r1, r0
add r2, sl
ldrh r0, [r2]
strh r0, [r4]
adds r4, #2
adds r2, r3, #1
lsls r2, r2, #1
str r2, [sp]
mov r2, r8
ldr r0, [r2]
add r0, ip
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
add r0, sb
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, [sp]
adds r2, r1, r0
add r2, sl
ldrh r0, [r2]
strh r0, [r4]
adds r3, #2
lsls r3, r3, #1
mov r2, r8
ldr r0, [r2]
add r0, ip
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
add r0, sb
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
adds r3, r3, r0
add r3, sl
ldrh r0, [r3]
strh r0, [r4, #2]
ldrh r2, [r6]
lsls r2, r2, #3
ldr r4, _08029618 @ =gOamBuffer
adds r2, r2, r4
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, _0802961C @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldr r0, _08029620 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
lsls r1, r1, #3
ldr r0, _08029618 @ =gOamBuffer
adds r1, r1, r0
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #5
ble _080294D2
_080295A0:
ldr r4, _080295F0 @ =gMain
ldr r0, [r4, #0x44]
ldr r1, [r0, #0x48]
movs r0, #1
strh r0, [r1]
ldr r0, _080295E4 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _080295E8 @ =0x000006CC
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
ble _080295D4
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r0, [r4, #0x44]
ldr r1, [r0, #0x48]
movs r0, #0
strh r0, [r1]
ldr r4, _080295E4 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0xe4
movs r1, #0
strb r1, [r0]
_080295D4:
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
_080295E4: .4byte gUnknown_020314E0
_080295E8: .4byte 0x000006CC
_080295EC: .4byte 0x000006CA
_080295F0: .4byte gMain
_080295F4: .4byte 0x040000D4
_080295F8: .4byte gUnknown_020306D0
_080295FC: .4byte 0x050003A0
_08029600: .4byte 0x80000010
_08029604: .4byte gUnknown_02030760
_08029608: .4byte 0x06010CA0
_0802960C: .4byte 0x80000240
_08029610: .4byte gUnknown_086B55DC
_08029614: .4byte gUnknown_086AD436
_08029618: .4byte gOamBuffer
_0802961C: .4byte 0x000001FF
_08029620: .4byte 0xFFFFFE00
thumb_func_start sub_29624
sub_29624: @ 0x08029624
push {r4, r5, lr}
ldr r0, _08029658 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0802965C @ =0x000006CC
adds r1, r1, r2
movs r2, #0
strb r2, [r1]
adds r5, r0, #0
ldr r4, _08029660 @ =0x000006D3
movs r3, #0xd
_08029638:
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, #5
ble _08029638
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08029658: .4byte gUnknown_020314E0
_0802965C: .4byte 0x000006CC
_08029660: .4byte 0x000006D3
thumb_func_start sub_29664
sub_29664: @ 0x08029664
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
movs r0, #0
ldr r7, _08029700 @ =gUnknown_020314E0
mov r8, r0
_08029670:
ldr r1, [r7]
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r6, r5, #2
adds r1, r1, r6
movs r2, #0xb8
lsls r2, r2, #3
adds r0, r1, r2
mov r2, r8
strh r2, [r0]
ldr r0, _08029704 @ =0x000005C2
adds r1, r1, r0
strh r2, [r1]
bl Random
ldr r4, [r7]
adds r4, r4, r6
movs r1, #0xc8
lsls r1, r1, #1
bl __umodsi3
movs r1, #0xc8
subs r1, r1, r0
movs r2, #0xbb
lsls r2, r2, #3
adds r4, r4, r2
strh r1, [r4]
bl Random
ldr r4, [r7]
adds r4, r4, r6
ldr r1, _08029708 @ =0x00000226
bl __umodsi3
movs r1, #0x50
subs r1, r1, r0
ldr r0, _0802970C @ =0x000005DA
adds r4, r4, r0
strh r1, [r4]
bl Random
ldr r4, [r7]
ldr r1, _08029710 @ =0x000005B9
adds r4, r4, r1
adds r4, r4, r5
movs r1, #0xf
bl __umodsi3
adds r0, #0xa
strb r0, [r4]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #5
ble _08029670
ldr r0, _08029700 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _08029714 @ =0x00000606
adds r0, r0, r2
movs r1, #0
strh r1, [r0]
ldr r0, _08029718 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x30]
movs r0, #1
strh r0, [r1]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08029700: .4byte gUnknown_020314E0
_08029704: .4byte 0x000005C2
_08029708: .4byte 0x00000226
_0802970C: .4byte 0x000005DA
_08029710: .4byte 0x000005B9
_08029714: .4byte 0x00000606
_08029718: .4byte gMain
thumb_func_start sub_2971C
sub_2971C: @ 0x0802971C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r0, _080298B8 @ =gMain
ldr r1, [r0, #0x44]
ldr r1, [r1, #0x30]
str r1, [sp]
ldrh r1, [r1]
cmp r1, #0
bne _08029738
b _080298A2
_08029738:
movs r3, #0
_0802973A:
ldr r0, _080298BC @ =gUnknown_020314E0
ldr r2, [r0]
ldr r1, _080298C0 @ =0x00000606
adds r0, r2, r1
ldrh r1, [r0]
lsrs r1, r1, #2
lsls r1, r1, #1
lsls r0, r3, #0x10
asrs r0, r0, #0x10
mov sb, r0
lsls r0, r0, #1
add r0, sb
lsls r0, r0, #3
adds r1, r1, r0
ldr r3, _080298C4 @ =gUnknown_086AE1A4
adds r1, r1, r3
ldrh r1, [r1]
mov sl, r1
mov r6, sb
lsls r5, r6, #2
adds r3, r2, r5
ldr r0, _080298C8 @ =0x000005DA
adds r4, r3, r0
ldr r1, _080298CC @ =0x000005B9
adds r2, r2, r1
add r2, sb
movs r0, #0
ldrsb r0, [r2, r0]
ldrh r2, [r4]
adds r0, r0, r2
strh r0, [r4]
ldr r6, _080298D0 @ =0x000005C2
adds r2, r3, r6
movs r0, #0
ldrsh r1, [r2, r0]
ldr r0, _080298D4 @ =0x000036AF
cmp r1, r0
bgt _0802979E
subs r6, #2
adds r1, r3, r6
adds r6, #0x18
adds r0, r3, r6
ldrh r0, [r0]
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
ldrh r0, [r4]
ldrh r6, [r2]
adds r0, r0, r6
strh r0, [r2]
_0802979E:
ldr r0, _080298BC @ =gUnknown_020314E0
ldr r6, [r0]
movs r1, #0xd9
lsls r1, r1, #3
adds r0, r6, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r0
movs r1, #3
bl __modsi3
adds r4, r0, #0
lsls r4, r4, #0x18
asrs r4, r4, #0x14
adds r0, r6, #0
adds r0, #0x58
ldrh r0, [r0]
subs r0, #0x60
subs r4, r4, r0
adds r5, r6, r5
movs r2, #0xb8
lsls r2, r2, #3
adds r0, r5, r2
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0x64
bl __divsi3
adds r4, r4, r0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
ldr r0, _080298D8 @ =0xFFFF0000
ands r7, r0
orrs r7, r4
mov r0, r8
movs r1, #3
bl __divsi3
adds r4, r0, #0
lsls r4, r4, #0x18
asrs r4, r4, #0x14
adds r6, #0x5a
ldr r1, _080298DC @ =0xFFFFFED4
adds r0, r1, #0
ldrh r6, [r6]
adds r0, r0, r6
subs r4, r4, r0
ldr r2, _080298D0 @ =0x000005C2
adds r5, r5, r2
movs r3, #0
ldrsh r0, [r5, r3]
movs r1, #0x64
bl __divsi3
adds r4, r4, r0
lsls r4, r4, #0x10
ldr r0, _080298E0 @ =0x0000FFFF
ands r7, r0
orrs r7, r4
asrs r4, r4, #0x10
cmp r4, #0xc7
ble _08029824
ands r7, r0
movs r0, #0xc8
lsls r0, r0, #0x10
orrs r7, r0
_08029824:
mov r5, sb
lsls r4, r5, #3
adds r4, #8
ldr r6, [sp]
adds r4, r6, r4
ldrh r2, [r4]
lsls r2, r2, #3
ldr r0, _080298E4 @ =gOamBuffer
adds r2, r2, r0
mov r1, sl
lsls r0, r1, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #1
ldr r3, _080298E8 @ =gUnknown_086B53B4
adds r0, r1, r3
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r3, #0
adds r0, #2
adds r0, r1, r0
ldrh r0, [r0]
strh r0, [r2]
ldr r5, _080298EC @ =gUnknown_086B53B8
adds r1, r1, r5
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r3, [r4]
lsls r3, r3, #3
ldr r6, _080298E4 @ =gOamBuffer
adds r3, r3, r6
ldrh r2, [r3, #2]
lsls r1, r2, #0x17
lsrs r1, r1, #0x17
lsls r0, r7, #0x10
asrs r0, r0, #0x10
adds r1, r1, r0
ldr r5, _080298F0 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
ldr r6, _080298F4 @ =0xFFFFFE00
adds r0, r6, #0
ands r2, r0
orrs r2, r1
strh r2, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
ldr r0, _080298E4 @ =gOamBuffer
adds r1, r1, r0
asrs r0, r7, #0x10
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
mov r0, sb
adds r0, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
bgt _080298A2
b _0802973A
_080298A2:
ldr r3, _080298BC @ =gUnknown_020314E0
ldr r1, [r3]
ldr r5, _080298C0 @ =0x00000606
adds r2, r1, r5
ldrh r0, [r2]
cmp r0, #0x2f
bhi _080298F8
adds r0, #1
strh r0, [r2]
b _0802990C
.align 2, 0
_080298B8: .4byte gMain
_080298BC: .4byte gUnknown_020314E0
_080298C0: .4byte 0x00000606
_080298C4: .4byte gUnknown_086AE1A4
_080298C8: .4byte 0x000005DA
_080298CC: .4byte 0x000005B9
_080298D0: .4byte 0x000005C2
_080298D4: .4byte 0x000036AF
_080298D8: .4byte 0xFFFF0000
_080298DC: .4byte 0xFFFFFED4
_080298E0: .4byte 0x0000FFFF
_080298E4: .4byte gOamBuffer
_080298E8: .4byte gUnknown_086B53B4
_080298EC: .4byte gUnknown_086B53B8
_080298F0: .4byte 0x000001FF
_080298F4: .4byte 0xFFFFFE00
_080298F8:
ldr r6, _0802991C @ =0x000006CA
adds r1, r1, r6
movs r2, #0
movs r0, #0xe2
lsls r0, r0, #7
strh r0, [r1]
ldr r1, _08029920 @ =gMain
ldr r0, [r1, #0x44]
ldr r0, [r0, #0x30]
strh r2, [r0]
_0802990C:
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
_0802991C: .4byte 0x000006CA
_08029920: .4byte gMain
thumb_func_start sub_29924
sub_29924: @ 0x08029924
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r0, #0
ldr r7, _08029A34 @ =gUnknown_020314E0
movs r1, #0x64
mov sb, r1
ldr r2, _08029A38 @ =gUnknown_086AE2F4
mov sl, r2
_0802993A:
ldr r4, [r7]
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r6, r5, #2
adds r4, r4, r6
adds r0, r5, #0
movs r1, #3
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xc
subs r0, #0x18
mov r1, sb
muls r1, r0, r1
movs r2, #0xb8
lsls r2, r2, #3
adds r0, r4, r2
strh r1, [r0]
adds r0, r5, #0
movs r1, #3
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xc
subs r0, #0x1c
mov r1, sb
muls r1, r0, r1
adds r0, r1, #0
ldr r2, _08029A3C @ =0x000005C2
adds r4, r4, r2
strh r0, [r4]
bl Random
ldr r4, [r7]
adds r4, r4, r6
adds r1, r6, #0
add r1, sl
mov r8, r1
movs r1, #0xc8
bl __umodsi3
subs r0, #0x3c
mov r2, r8
ldrh r1, [r2]
subs r1, r1, r0
movs r0, #0xbb
lsls r0, r0, #3
adds r4, r4, r0
strh r1, [r4]
bl Random
ldr r4, [r7]
adds r4, r4, r6
ldr r1, _08029A40 @ =gUnknown_086AE2F6
adds r6, r6, r1
movs r1, #0xc8
bl __umodsi3
subs r0, #0x3c
ldrh r1, [r6]
subs r1, r1, r0
ldr r2, _08029A44 @ =0x000005DA
adds r4, r4, r2
strh r1, [r4]
bl Random
ldr r1, [r7]
ldr r2, _08029A48 @ =0x000005B9
adds r1, r1, r2
adds r1, r1, r5
movs r2, #3
ands r0, r2
adds r0, #1
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #5
ble _0802993A
ldr r3, _08029A34 @ =gUnknown_020314E0
ldr r1, [r3]
movs r0, #0xb8
lsls r0, r0, #3
adds r2, r1, r0
movs r5, #0
ldr r0, _08029A4C @ =0x0000EA20
strh r0, [r2]
ldr r0, _08029A3C @ =0x000005C2
adds r2, r1, r0
ldr r0, _08029A50 @ =0x0000E890
strh r0, [r2]
ldr r2, _08029A48 @ =0x000005B9
adds r1, r1, r2
movs r4, #3
strb r4, [r1]
ldr r1, [r3]
movs r0, #0xba
lsls r0, r0, #3
adds r2, r1, r0
ldr r0, _08029A54 @ =0x0000F060
strh r0, [r2]
ldr r0, _08029A58 @ =0x000005D2
adds r2, r1, r0
ldr r0, _08029A5C @ =0x0000EED0
strh r0, [r2]
ldr r2, _08029A60 @ =0x000005BD
adds r1, r1, r2
strb r4, [r1]
ldr r0, [r3]
ldr r1, _08029A64 @ =0x00000606
adds r0, r0, r1
strh r5, [r0]
ldr r0, _08029A68 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x30]
movs 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
_08029A34: .4byte gUnknown_020314E0
_08029A38: .4byte gUnknown_086AE2F4
_08029A3C: .4byte 0x000005C2
_08029A40: .4byte gUnknown_086AE2F6
_08029A44: .4byte 0x000005DA
_08029A48: .4byte 0x000005B9
_08029A4C: .4byte 0x0000EA20
_08029A50: .4byte 0x0000E890
_08029A54: .4byte 0x0000F060
_08029A58: .4byte 0x000005D2
_08029A5C: .4byte 0x0000EED0
_08029A60: .4byte 0x000005BD
_08029A64: .4byte 0x00000606
_08029A68: .4byte gMain
thumb_func_start sub_29A6C
sub_29A6C: @ 0x08029A6C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
ldr r0, _08029D2C @ =gMain
ldr r0, [r0, #0x44]
ldr r0, [r0, #0x30]
mov sb, r0
ldrh r0, [r0]
cmp r0, #0
bne _08029A88
b _08029C52
_08029A88:
movs r5, #0
ldr r0, _08029D30 @ =gOamBuffer
mov r8, r0
ldr r1, _08029D34 @ =gUnknown_086B4E3E
mov sl, r1
_08029A92:
ldr r2, _08029D38 @ =gUnknown_020314E0
ldr r6, [r2]
ldr r0, _08029D3C @ =0x00000606
adds r4, r6, r0
ldrh r0, [r4]
movs r1, #5
bl __udivsi3
lsls r3, r5, #0x10
asrs r5, r3, #0x10
lsls r1, r5, #1
add r1, sp
mov ip, r1
lsls r0, r0, #0x10
asrs r0, r0, #0xf
lsls r1, r5, #5
adds r0, r0, r1
ldr r1, _08029D40 @ =gUnknown_086AE234
adds r0, r0, r1
ldrh r0, [r0]
mov r2, ip
strh r0, [r2]
ldrh r0, [r4]
mov ip, r3
cmp r0, #4
bls _08029B22
lsls r2, r5, #2
adds r0, r6, r2
ldr r3, _08029D44 @ =0x000005DA
adds r0, r0, r3
ldr r4, _08029D48 @ =0x000005B9
adds r1, r6, r4
adds r1, r1, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
ldrh r4, [r0]
adds r1, r1, r4
strh r1, [r0]
cmp r5, #4
bne _08029AFC
movs r0, #0xbd
lsls r0, r0, #3
adds r1, r6, r0
ldr r4, _08029D4C @ =0x000005BD
adds r0, r6, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
ldrh r4, [r1]
adds r0, r0, r4
strh r0, [r1]
_08029AFC:
ldr r0, _08029D38 @ =gUnknown_020314E0
ldr r1, [r0]
adds r1, r1, r2
movs r4, #0xb8
lsls r4, r4, #3
adds r2, r1, r4
adds r4, #0x18
adds r0, r1, r4
ldrh r0, [r0]
ldrh r4, [r2]
adds r0, r0, r4
strh r0, [r2]
ldr r0, _08029D50 @ =0x000005C2
adds r2, r1, r0
adds r1, r1, r3
ldrh r0, [r1]
ldrh r1, [r2]
adds r0, r0, r1
strh r0, [r2]
_08029B22:
ldr r2, _08029D38 @ =gUnknown_020314E0
ldr r5, [r2]
mov r4, ip
asrs r6, r4, #0x10
lsls r4, r6, #2
adds r4, r5, r4
movs r1, #0xb8
lsls r1, r1, #3
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0x64
bl __divsi3
adds r0, #0x60
adds r1, r5, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08029D54 @ =0xFFFF0000
ands r7, r1
orrs r7, r0
ldr r0, _08029D50 @ =0x000005C2
adds r4, r4, r0
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0x64
bl __divsi3
movs r2, #0x98
lsls r2, r2, #1
adds r0, r0, r2
adds r5, #0x5a
ldrh r1, [r5]
subs r0, r0, r1
lsls r0, r0, #0x10
ldr r1, _08029D58 @ =0x0000FFFF
ands r7, r1
orrs r7, r0
asrs r0, r0, #0x10
cmp r0, #0x9f
ble _08029B82
ands r7, r1
movs r0, #0xa0
lsls r0, r0, #0x10
orrs r7, r0
_08029B82:
lsls r4, r6, #3
adds r4, #8
add r4, sb
ldrh r2, [r4]
lsls r2, r2, #3
add r2, r8
lsls r5, r6, #1
mov r0, sp
adds r3, r0, r5
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
add r0, sl
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
mov r1, sl
adds r1, #2
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r2]
movs r0, #0
ldrsh r1, [r3, r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _08029D5C @ =gUnknown_086B4E42
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r2, #2]
ldrh r3, [r4]
lsls r3, r3, #3
add r3, r8
ldrh r2, [r3, #2]
lsls r1, r2, #0x17
lsrs r1, r1, #0x17
lsls r0, r7, #0x10
asrs r0, r0, #0x10
adds r1, r1, r0
ldr r0, _08029D60 @ =0x000001FF
mov ip, r0
mov r0, ip
ands r1, r0
ldr r0, _08029D64 @ =0xFFFFFE00
mov ip, r0
mov r0, ip
ands r2, r0
orrs r2, r1
strh r2, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, r8
asrs r0, r7, #0x10
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r3, [r4]
lsls r3, r3, #3
add r3, r8
ldr r1, _08029D68 @ =gUnknown_086AE30C
adds r0, r5, r1
movs r1, #0
ldrsh r2, [r0, r1]
movs r0, #3
ands r2, r0
ldrb r0, [r3, #1]
movs r1, #4
rsbs r1, r1, #0
mov ip, r1
mov r1, ip
ands r0, r1
orrs r0, r2
strb r0, [r3, #1]
ldrh r3, [r4]
lsls r3, r3, #3
add r3, r8
ldr r2, _08029D6C @ =gUnknown_086AE318
adds r5, r5, r2
movs r4, #0
ldrsh r2, [r5, r4]
movs r0, #7
ands r2, r0
lsls r2, r2, #1
ldrb r0, [r3, #3]
movs r4, #0xf
rsbs r4, r4, #0
adds r1, r4, #0
ands r0, r1
orrs r0, r2
strb r0, [r3, #3]
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
bgt _08029C52
b _08029A92
_08029C52:
ldr r4, _08029D38 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r6, _08029D3C @ =0x00000606
adds r0, r0, r6
ldrh r0, [r0]
adds r1, r0, #0
muls r1, r0, r1
movs r0, #0xd0
muls r0, r1, r0
movs r5, #0xa2
lsls r5, r5, #3
adds r1, r5, #0
bl __divsi3
adds r0, #0x80
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
mov r0, sp
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #4
bne _08029C84
lsls r0, r1, #0x10
rsbs r0, r0, #0
lsrs r1, r0, #0x10
_08029C84:
lsls r1, r1, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
movs r2, #2
bl SetMatrixScale
movs r1, #0x80
mov r0, sp
ldrh r0, [r0, #2]
cmp r0, #4
bne _08029CA0
rsbs r0, r1, #0
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_08029CA0:
lsls r1, r1, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
movs r2, #3
bl SetMatrixScale
ldr r0, [r4]
adds r0, r0, r6
ldrh r0, [r0]
adds r1, r0, #0
muls r1, r0, r1
adds r0, r1, #0
lsls r0, r0, #8
adds r1, r5, #0
bl __divsi3
adds r0, #0x80
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
mov r0, sp
movs r2, #6
ldrsh r0, [r0, r2]
cmp r0, #4
bne _08029CD6
lsls r0, r1, #0x10
rsbs r0, r0, #0
lsrs r1, r0, #0x10
_08029CD6:
lsls r1, r1, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
movs r2, #4
bl SetMatrixScale
ldr r0, [r4]
adds r0, r0, r6
ldrh r0, [r0]
adds r1, r0, #0
muls r1, r0, r1
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #6
adds r1, r5, #0
bl __divsi3
adds r0, #0x40
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
mov r0, sp
movs r4, #8
ldrsh r0, [r0, r4]
cmp r0, #4
bne _08029D0E
lsls r0, r1, #0x10
rsbs r0, r0, #0
lsrs r1, r0, #0x10
_08029D0E:
lsls r1, r1, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
movs r2, #5
bl SetMatrixScale
ldr r0, _08029D38 @ =gUnknown_020314E0
ldr r1, [r0]
adds r2, r1, r6
ldrh r0, [r2]
cmp r0, #0x2e
bhi _08029D70
adds r0, #1
strh r0, [r2]
b _08029D84
.align 2, 0
_08029D2C: .4byte gMain
_08029D30: .4byte gOamBuffer
_08029D34: .4byte gUnknown_086B4E3E
_08029D38: .4byte gUnknown_020314E0
_08029D3C: .4byte 0x00000606
_08029D40: .4byte gUnknown_086AE234
_08029D44: .4byte 0x000005DA
_08029D48: .4byte 0x000005B9
_08029D4C: .4byte 0x000005BD
_08029D50: .4byte 0x000005C2
_08029D54: .4byte 0xFFFF0000
_08029D58: .4byte 0x0000FFFF
_08029D5C: .4byte gUnknown_086B4E42
_08029D60: .4byte 0x000001FF
_08029D64: .4byte 0xFFFFFE00
_08029D68: .4byte gUnknown_086AE30C
_08029D6C: .4byte gUnknown_086AE318
_08029D70:
ldr r2, _08029D94 @ =0x000006CA
adds r1, r1, r2
movs r2, #0
movs r0, #0xe2
lsls r0, r0, #7
strh r0, [r1]
ldr r0, _08029D98 @ =gMain
ldr r0, [r0, #0x44]
ldr r0, [r0, #0x30]
strh r2, [r0]
_08029D84:
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08029D94: .4byte 0x000006CA
_08029D98: .4byte gMain
thumb_func_start sub_29D9C
sub_29D9C: @ 0x08029D9C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r3, _08029E60 @ =gMain
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x5c]
movs r2, #0
movs r5, #0
movs r1, #1
strh r1, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x50]
strh r1, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x54]
strh r1, [r0]
ldrh r0, [r3, #0x38]
ldr r0, _08029E64 @ =0x00001C10
strh r0, [r3, #0x38]
ldrh r0, [r3, #0x3a]
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r3, #0x3a]
ldr r4, _08029E68 @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0xdd
lsls r1, r1, #3
adds r0, r0, r1
strb r2, [r0]
ldr r1, [r4]
ldr r0, _08029E6C @ =0x000006F2
adds r2, r1, r0
movs r0, #8
strh r0, [r2]
ldr r2, _08029E70 @ =0x000006F4
adds r0, r1, r2
strh r5, [r0]
subs r2, #0x14
adds r0, r1, r2
strh r5, [r0]
ldr r0, _08029E74 @ =0x000006E9
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
mov r8, r3
adds r7, r4, #0
cmp r0, #0x19
bne _08029E02
movs r0, #0xa
strb r0, [r1]
_08029E02:
movs r3, #0
ldr r1, _08029E78 @ =gUnknown_086AD180
mov sb, r1
_08029E08:
ldr r5, [r7]
lsls r3, r3, #0x10
asrs r2, r3, #0xf
movs r1, #0xdf
lsls r1, r1, #3
adds r0, r5, r1
adds r4, r0, r2
subs r1, #0xf
adds r0, r5, r1
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #1
adds r2, r2, r0
add r2, sb
ldrh r0, [r2]
strh r0, [r4]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r6, r3, #0
cmp r0, #0x29
beq _08029E38
b _08029F2E
_08029E38:
mov r2, r8
ldrb r0, [r2, #4]
cmp r0, #0
bne _08029EBC
ldr r1, _08029E7C @ =0x00000283
adds r0, r5, r1
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bls _08029E56
b _08029F9E
_08029E56:
lsls r0, r0, #2
ldr r1, _08029E80 @ =_08029E84
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08029E60: .4byte gMain
_08029E64: .4byte 0x00001C10
_08029E68: .4byte gUnknown_020314E0
_08029E6C: .4byte 0x000006F2
_08029E70: .4byte 0x000006F4
_08029E74: .4byte 0x000006E9
_08029E78: .4byte gUnknown_086AD180
_08029E7C: .4byte 0x00000283
_08029E80: .4byte _08029E84
_08029E84: @ jump table
.4byte _08029E98 @ case 0
.4byte _08029EAA @ case 1
.4byte _08029E98 @ case 2
.4byte _08029EAA @ case 3
.4byte _08029F1C @ case 4
_08029E98:
ldr r0, [r7]
asrs r1, r6, #0xf
movs r2, #0xdf
lsls r2, r2, #3
adds r0, r0, r2
adds r0, r0, r1
movs r1, #0x2a
strh r1, [r0]
b _08029F9E
_08029EAA:
ldr r0, [r7]
asrs r1, r6, #0xf
movs r2, #0xdf
lsls r2, r2, #3
adds r0, r0, r2
adds r0, r0, r1
movs r1, #0x2c
strh r1, [r0]
b _08029F9E
_08029EBC:
ldr r1, _08029EDC @ =0x00000283
adds r0, r5, r1
ldrb r0, [r0]
movs r1, #5
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bhi _08029F9E
lsls r0, r0, #2
ldr r1, _08029EE0 @ =_08029EE4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08029EDC: .4byte 0x00000283
_08029EE0: .4byte _08029EE4
_08029EE4: @ jump table
.4byte _08029EF8 @ case 0
.4byte _08029F0A @ case 1
.4byte _08029EF8 @ case 2
.4byte _08029F0A @ case 3
.4byte _08029F1C @ case 4
_08029EF8:
ldr r0, [r7]
asrs r1, r6, #0xf
movs r2, #0xdf
lsls r2, r2, #3
adds r0, r0, r2
adds r0, r0, r1
movs r1, #0x29
strh r1, [r0]
b _08029F9E
_08029F0A:
ldr r0, [r7]
asrs r1, r6, #0xf
movs r2, #0xdf
lsls r2, r2, #3
adds r0, r0, r2
adds r0, r0, r1
movs r1, #0x2b
strh r1, [r0]
b _08029F9E
_08029F1C:
ldr r0, [r7]
asrs r1, r6, #0xf
movs r2, #0xdf
lsls r2, r2, #3
adds r0, r0, r2
adds r0, r0, r1
movs r1, #0x2d
strh r1, [r0]
b _08029F9E
_08029F2E:
cmp r0, #0xa
bne _08029F4C
ldr r0, _08029F44 @ =0x000005F6
adds r1, r5, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08029F48
adds r0, #0xa
b _08029F9C
.align 2, 0
_08029F44: .4byte 0x000005F6
_08029F48:
movs r0, #0xc
b _08029F9C
_08029F4C:
cmp r0, #3
bne _08029F88
movs r1, #0xf1
lsls r1, r1, #1
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bne _08029F9E
mov r2, r8
ldr r0, [r2, #0x4c]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _08029F84
ldr r0, _08029F7C @ =0x000005F6
adds r1, r5, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08029F80
adds r0, #0xa
b _08029F9C
.align 2, 0
_08029F7C: .4byte 0x000005F6
_08029F80:
movs r0, #0xc
b _08029F9C
_08029F84:
strh r1, [r4]
b _08029F9E
_08029F88:
cmp r0, #9
bne _08029F9E
ldr r1, _0802A040 @ =0x00000281
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _08029F9E
movs r0, #8
_08029F9C:
strh r0, [r4]
_08029F9E:
movs r2, #0x80
lsls r2, r2, #9
adds r0, r6, r2
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
bgt _08029FAE
b _08029E08
_08029FAE:
ldr r2, [r7]
ldr r0, _0802A044 @ =0x00000704
adds r1, r2, r0
movs r0, #0x15
strh r0, [r1]
ldr r1, _0802A048 @ =0x000006E9
adds r2, r2, r1
ldrb r1, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0x18
bgt _08029FCA
adds r0, r1, #1
strb r0, [r2]
_08029FCA:
ldr r0, [r7]
ldr r3, _0802A04C @ =0x000006EA
adds r0, r0, r3
movs r1, #5
strb r1, [r0]
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0x72
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #0xf0
ands r0, r1
cmp r0, #0
bne _08029FFE
adds r0, r2, #0
adds r0, #0x35
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xb
ble _08029FFE
adds r1, r2, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08029FFE:
ldr r0, [r7]
ldr r2, _0802A050 @ =0x000006EB
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
adds r2, #0xd
adds r1, r0, r2
ldrh r1, [r1]
subs r2, #0xc
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r7]
adds r2, #0xe
adds r1, r0, r2
ldrh r1, [r1]
subs r2, #0xd
adds r0, r0, r2
strb r1, [r0]
movs r0, #2
movs r1, #0
bl sub_1C7F4
movs r0, #2
movs r1, #1
bl sub_1C7F4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802A040: .4byte 0x00000281
_0802A044: .4byte 0x00000704
_0802A048: .4byte 0x000006E9
_0802A04C: .4byte 0x000006EA
_0802A050: .4byte 0x000006EB
thumb_func_start sub_2A054
sub_2A054: @ 0x0802A054
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _0802A128 @ =gMain
ldrb r3, [r0, #4]
mov r8, r0
ldr r0, _0802A12C @ =gUnknown_020314E0
mov sb, r0
cmp r3, #1
bne _0802A0E4
ldr r2, [r0]
movs r4, #0xdd
lsls r4, r4, #3
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0802A07E
b _0802A20C
_0802A07E:
ldrb r0, [r2, #5]
cmp r0, #0
bne _0802A090
mov r5, r8
ldrh r1, [r5, #0x18]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _0802A0E4
_0802A090:
movs r1, #0xdf
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0802A0E4
movs r5, #0xde
lsls r5, r5, #2
adds r1, r2, r5
movs r0, #2
strb r0, [r1]
mov r0, sb
ldr r2, [r0]
movs r1, #0xdc
lsls r1, r1, #3
adds r0, r2, r1
movs r5, #0
ldrsh r0, [r0, r5]
cmp r0, #0x10
bgt _0802A0C8
adds r1, #0xc
adds r0, r2, r1
ldrb r1, [r0]
ldr r5, _0802A130 @ =0x000006ED
adds r0, r2, r5
strb r1, [r0]
_0802A0C8:
mov r1, sb
ldr r0, [r1]
adds r0, r0, r4
strb r3, [r0]
ldr r1, [r1]
ldr r3, _0802A134 @ =0x000006F2
adds r2, r1, r3
movs r0, #0x28
strh r0, [r2]
movs r5, #0xde
lsls r5, r5, #3
adds r1, r1, r5
movs r0, #0x27
strh r0, [r1]
_0802A0E4:
mov r0, sb
ldr r2, [r0]
movs r1, #0xdd
lsls r1, r1, #3
adds r0, r2, r1
movs r6, #0
ldrsb r6, [r0, r6]
cmp r6, #0
beq _0802A0F8
b _0802A20C
_0802A0F8:
ldr r3, _0802A138 @ =0x000006C4
adds r0, r2, r3
movs r5, #1
strb r5, [r0]
mov r0, sb
ldr r2, [r0]
adds r3, #0x2c
adds r4, r2, r3
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
ldr r7, _0802A13C @ =0x000006F4
adds r3, r2, r7
ldrh r0, [r3]
cmp r0, #0
beq _0802A170
subs r0, #1
strh r0, [r3]
lsls r0, r0, #0x10
cmp r0, #0
bne _0802A140
adds r0, r2, r1
strb r5, [r0]
b _0802A1CA
.align 2, 0
_0802A128: .4byte gMain
_0802A12C: .4byte gUnknown_020314E0
_0802A130: .4byte 0x000006ED
_0802A134: .4byte 0x000006F2
_0802A138: .4byte 0x000006C4
_0802A13C: .4byte 0x000006F4
_0802A140:
ldr r0, _0802A168 @ =0x000006F2
adds r5, r2, r0
ldrh r0, [r4]
ldrh r1, [r5]
cmp r0, r1
bne _0802A1CA
ldrh r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #1
ldr r3, _0802A16C @ =0x000006F6
adds r1, r2, r3
ldrh r1, [r1]
bl __divsi3
movs r1, #0x28
subs r1, r1, r0
strh r1, [r5]
strh r6, [r4]
b _0802A1CA
.align 2, 0
_0802A168: .4byte 0x000006F2
_0802A16C: .4byte 0x000006F6
_0802A170:
ldrb r0, [r2, #5]
cmp r0, #0
bne _0802A182
mov r0, r8
ldrh r1, [r0, #0x18]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _0802A1CA
_0802A182:
bl Random
mov r1, sb
ldr r4, [r1]
movs r1, #0xc8
bl __umodsi3
adds r0, #0x64
adds r2, r4, r7
strh r0, [r2]
ldr r0, _0802A1F8 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bne _0802A1BA
movs r3, #0xde
lsls r3, r3, #2
adds r0, r4, r3
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #1
bne _0802A1BA
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r2]
movs r5, #0xdf
lsls r5, r5, #2
adds r0, r4, r5
strb r1, [r0]
_0802A1BA:
ldr r0, _0802A1FC @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _0802A200 @ =0x000006F4
adds r1, r0, r2
ldrh r1, [r1]
ldr r3, _0802A204 @ =0x000006F6
adds r0, r0, r3
strh r1, [r0]
_0802A1CA:
ldr r0, _0802A1FC @ =gUnknown_020314E0
ldr r5, [r0]
movs r0, #0xde
lsls r0, r0, #3
adds r4, r5, r0
ldr r1, _0802A208 @ =0x000006F2
adds r6, r5, r1
ldrh r0, [r4]
ldrh r1, [r6]
bl __umodsi3
strh r0, [r4]
ldrh r0, [r4]
lsls r0, r0, #5
ldrh r1, [r6]
bl __divsi3
movs r2, #0xdc
lsls r2, r2, #3
adds r5, r5, r2
strh r0, [r5]
b _0802A27C
.align 2, 0
_0802A1F8: .4byte gMain
_0802A1FC: .4byte gUnknown_020314E0
_0802A200: .4byte 0x000006F4
_0802A204: .4byte 0x000006F6
_0802A208: .4byte 0x000006F2
_0802A20C:
ldr r7, _0802A2DC @ =gUnknown_020314E0
ldr r6, [r7]
movs r3, #0xde
lsls r3, r3, #3
adds r4, r6, r3
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
ldr r0, _0802A2E0 @ =0x000006F2
adds r5, r6, r0
ldrh r0, [r4]
ldrh r1, [r5]
bl __umodsi3
strh r0, [r4]
ldrh r0, [r4]
lsls r0, r0, #5
ldrh r1, [r5]
bl __divsi3
movs r2, #0xdc
lsls r2, r2, #3
adds r1, r6, r2
strh r0, [r1]
ldrh r4, [r4]
cmp r4, #0
bne _0802A2AC
movs r0, #0x8c
strh r0, [r6, #0x28]
mov r3, r8
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x5c]
strh r4, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x50]
strh r4, [r0]
ldr r0, [r3, #0x44]
ldr r0, [r0, #0x54]
strh r4, [r0]
strh r4, [r1]
ldr r5, _0802A2E4 @ =0x000006C4
adds r1, r6, r5
movs r0, #0
strb r0, [r1]
ldr r0, _0802A2E8 @ =gMPlayInfo_BGM
bl m4aMPlayStop
ldr r0, [r7]
ldr r1, _0802A2EC @ =0x000006DD
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
ldr r2, _0802A2F0 @ =0x000006DE
adds r0, r0, r2
strh r4, [r0]
_0802A27C:
ldr r5, _0802A2DC @ =gUnknown_020314E0
ldr r2, [r5]
movs r3, #0xde
lsls r3, r3, #3
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, #0
bne _0802A2AC
ldr r1, _0802A2F4 @ =0x000006ED
adds r0, r2, r1
ldrb r1, [r0]
ldr r4, _0802A2F8 @ =0x000006EC
adds r0, r2, r4
strb r1, [r0]
movs r0, #2
movs r1, #0
bl sub_1C7F4
ldr r0, [r5]
adds r4, r0, r4
ldrb r1, [r4]
ldr r2, _0802A2FC @ =0x000006DC
adds r0, r0, r2
strb r1, [r0]
_0802A2AC:
ldr r0, _0802A2DC @ =gUnknown_020314E0
ldr r3, [r0]
movs r5, #0xde
lsls r5, r5, #3
adds r1, r3, r5
ldrh r1, [r1]
mov sb, r0
cmp r1, #1
bne _0802A33A
ldr r0, _0802A300 @ =0x000006EB
adds r2, r3, r0
ldr r1, _0802A304 @ =0x000006EA
adds r0, r3, r1
ldrb r3, [r2]
movs r1, #0
ldrsb r1, [r2, r1]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bge _0802A308
adds r0, r3, #1
b _0802A30A
.align 2, 0
_0802A2DC: .4byte gUnknown_020314E0
_0802A2E0: .4byte 0x000006F2
_0802A2E4: .4byte 0x000006C4
_0802A2E8: .4byte gMPlayInfo_BGM
_0802A2EC: .4byte 0x000006DD
_0802A2F0: .4byte 0x000006DE
_0802A2F4: .4byte 0x000006ED
_0802A2F8: .4byte 0x000006EC
_0802A2FC: .4byte 0x000006DC
_0802A300: .4byte 0x000006EB
_0802A304: .4byte 0x000006EA
_0802A308:
movs r0, #0
_0802A30A:
strb r0, [r2]
mov r3, sb
ldr r2, [r3]
ldr r5, _0802A348 @ =0x000006EB
adds r0, r2, r5
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #1
movs r3, #0xdf
lsls r3, r3, #3
adds r0, r2, r3
adds r0, r0, r1
ldrh r0, [r0]
adds r5, #2
adds r2, r2, r5
strb r0, [r2]
movs r0, #2
movs r1, #1
bl sub_1C7F4
ldr r0, _0802A34C @ =gMPlayInfo_SE1
ldr r1, _0802A350 @ =gUnknown_0869F45C
bl MPlayStart
_0802A33A:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802A348: .4byte 0x000006EB
_0802A34C: .4byte gMPlayInfo_SE1
_0802A350: .4byte gUnknown_0869F45C
thumb_func_start sub_2A354
sub_2A354: @ 0x0802A354
push {r4, r5, r6, r7, lr}
ldr r4, _0802A3C4 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _0802A3C8 @ =0x000006DE
adds r0, r0, r5
ldrh r0, [r0]
cmp r0, #0xb3
bhi _0802A3A6
cmp r0, #4
bne _0802A36E
movs r0, #0x14
bl m4aSongNumStart
_0802A36E:
ldr r1, [r4]
ldr r2, _0802A3CC @ =0x000006DC
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #3
bne _0802A388
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0x78
bne _0802A388
movs r0, #0xb2
bl m4aSongNumStart
_0802A388:
ldr r0, _0802A3C4 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _0802A3C8 @ =0x000006DE
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x4f
bhi _0802A3A6
movs r0, #8
movs r1, #0
bl sub_1C7F4
_0802A3A6:
ldr r1, _0802A3C4 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r4, _0802A3CC @ =0x000006DC
adds r0, r0, r4
ldrb r0, [r0]
adds r5, r1, #0
cmp r0, #0x2d
bls _0802A3B8
b _0802AAD2
_0802A3B8:
lsls r0, r0, #2
ldr r1, _0802A3D0 @ =_0802A3D4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802A3C4: .4byte gUnknown_020314E0
_0802A3C8: .4byte 0x000006DE
_0802A3CC: .4byte 0x000006DC
_0802A3D0: .4byte _0802A3D4
_0802A3D4: @ jump table
.4byte _0802A48C @ case 0
.4byte _0802A48C @ case 1
.4byte _0802A48C @ case 2
.4byte _0802A4B0 @ case 3
.4byte _0802A648 @ case 4
.4byte _0802A668 @ case 5
.4byte _0802A690 @ case 6
.4byte _0802A718 @ case 7
.4byte _0802A778 @ case 8
.4byte _0802A798 @ case 9
.4byte _0802A830 @ case 10
.4byte _0802A830 @ case 11
.4byte _0802A830 @ case 12
.4byte _0802A864 @ case 13
.4byte _0802AAD2 @ case 14
.4byte _0802AAD2 @ case 15
.4byte _0802AAD2 @ case 16
.4byte _0802A8CC @ case 17
.4byte _0802A8CC @ case 18
.4byte _0802A8CC @ case 19
.4byte _0802A924 @ case 20
.4byte _0802A940 @ case 21
.4byte _0802A964 @ case 22
.4byte _0802A9A8 @ case 23
.4byte _0802A9E0 @ case 24
.4byte _0802A9E0 @ case 25
.4byte _0802A9E0 @ case 26
.4byte _0802A9E0 @ case 27
.4byte _0802A9E0 @ case 28
.4byte _0802A9E0 @ case 29
.4byte _0802A9E0 @ case 30
.4byte _0802A9E0 @ case 31
.4byte _0802A9E0 @ case 32
.4byte _0802AA24 @ case 33
.4byte _0802AA44 @ case 34
.4byte _0802AA64 @ case 35
.4byte _0802AA84 @ case 36
.4byte _0802AA84 @ case 37
.4byte _0802AA84 @ case 38
.4byte _0802AA84 @ case 39
.4byte _0802AA84 @ case 40
.4byte _0802AAC0 @ case 41
.4byte _0802AAC0 @ case 42
.4byte _0802AAC0 @ case 43
.4byte _0802AAC0 @ case 44
.4byte _0802AAC0 @ case 45
_0802A48C:
ldr r2, [r5]
ldr r1, _0802A4A8 @ =0x000006DC
adds r0, r2, r1
ldrb r1, [r0]
adds r1, #1
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #5
adds r0, r0, r1
lsls r0, r0, #3
ldr r3, _0802A4AC @ =0x00000724
adds r2, r2, r3
strh r0, [r2]
b _0802AAD2
.align 2, 0
_0802A4A8: .4byte 0x000006DC
_0802A4AC: .4byte 0x00000724
_0802A4B0:
ldr r4, [r5]
adds r0, r4, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _0802A578
ldr r2, _0802A560 @ =0x000006DE
adds r0, r4, r2
ldrh r0, [r0]
cmp r0, #0x7c
bls _0802A4E2
movs r0, #0xd7
lsls r0, r0, #1
adds r1, r4, r0
ldrb r0, [r1]
cmp r0, #0x63
bhi _0802A4E2
adds r0, #1
strb r0, [r1]
ldr r0, [r5]
adds r0, r0, r2
movs r1, #0x7c
strh r1, [r0]
_0802A4E2:
ldr r3, [r5]
ldr r1, _0802A560 @ =0x000006DE
adds r0, r3, r1
ldrh r0, [r0]
cmp r0, #4
beq _0802A4F0
b _0802AAD2
_0802A4F0:
movs r2, #0xe3
lsls r2, r2, #1
adds r0, r3, r2
movs r2, #0
movs r1, #0xa8
strh r1, [r0]
movs r4, #0xe4
lsls r4, r4, #1
adds r0, r3, r4
strh r1, [r0]
movs r1, #0xe6
lsls r1, r1, #1
adds r0, r3, r1
movs r1, #0xd
strh r1, [r0]
adds r4, #2
adds r0, r3, r4
strh r1, [r0]
movs r1, #0xe8
lsls r1, r1, #1
adds r0, r3, r1
strh r2, [r0]
adds r4, #0xc
adds r1, r3, r4
movs r0, #0x78
strh r0, [r1]
movs r0, #0xee
lsls r0, r0, #1
adds r1, r3, r0
movs r0, #0x3c
strh r0, [r1]
ldr r1, _0802A564 @ =0x040000D4
ldr r0, _0802A568 @ =gUnknown_084C156C
str r0, [r1]
ldr r0, _0802A56C @ =0x06010600
str r0, [r1, #4]
ldr r0, _0802A570 @ =0x800000C0
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r5]
movs r3, #0xf1
lsls r3, r3, #1
adds r1, r0, r3
movs r0, #2
strb r0, [r1]
ldr r0, _0802A574 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0xa4
ldr r0, [r0]
strh r2, [r0]
ldr r0, [r5]
subs r4, #0x16
adds r0, r0, r4
movs r1, #1
strh r1, [r0]
b _0802AAD2
.align 2, 0
_0802A560: .4byte 0x000006DE
_0802A564: .4byte 0x040000D4
_0802A568: .4byte gUnknown_084C156C
_0802A56C: .4byte 0x06010600
_0802A570: .4byte 0x800000C0
_0802A574: .4byte gMain
_0802A578:
ldr r7, _0802A640 @ =0x000006DE
adds r0, r4, r7
ldrh r6, [r0]
cmp r6, #0x78
bne _0802A61E
ldr r2, _0802A644 @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
movs r3, #0
orrs r0, r1
strb r0, [r2, #0xf]
adds r0, r4, #0
adds r0, #0xea
movs r2, #0
strh r3, [r0]
adds r1, r4, #0
adds r1, #0xec
movs r0, #0xfa
strh r0, [r1]
subs r1, #4
adds r0, #0x16
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe6
strh r3, [r0]
adds r1, #6
movs r0, #2
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xf2
strb r2, [r0]
ldr r0, [r5]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
adds r0, #0xfb
strb r2, [r0]
ldr r0, [r5]
movs r4, #0xdf
lsls r4, r4, #1
adds r0, r0, r4
strb r1, [r0]
ldr r4, [r5]
movs r0, #0xe0
lsls r0, r0, #1
adds r1, r4, r0
movs r0, #0xc8
lsls r0, r0, #2
strh r0, [r1]
movs r1, #0xf1
lsls r1, r1, #1
adds r0, r4, r1
strb r2, [r0]
ldr r2, [r5]
movs r4, #0xe3
lsls r4, r4, #1
adds r0, r2, r4
movs r1, #0xa8
strh r1, [r0]
adds r4, #2
adds r0, r2, r4
strh r1, [r0]
movs r1, #0xe6
lsls r1, r1, #1
adds r0, r2, r1
movs r1, #0xd
strh r1, [r0]
adds r4, #2
adds r0, r2, r4
strh r1, [r0]
movs r1, #0xe8
lsls r1, r1, #1
adds r0, r2, r1
strh r3, [r0]
movs r3, #0xeb
lsls r3, r3, #1
adds r0, r2, r3
strh r6, [r0]
adds r4, #0x12
adds r1, r2, r4
movs r0, #0x3c
strh r0, [r1]
_0802A61E:
ldr r1, [r5]
movs r2, #0xe0
lsls r2, r2, #1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0
bne _0802A62E
b _0802AAD2
_0802A62E:
adds r1, r1, r7
ldrh r0, [r1]
cmp r0, #0xaf
bhi _0802A638
b _0802AAD2
_0802A638:
movs r0, #0xb0
strh r0, [r1]
b _0802AAD2
.align 2, 0
_0802A640: .4byte 0x000006DE
_0802A644: .4byte gMain
_0802A648:
ldr r1, [r5]
ldr r3, _0802A660 @ =0x000006DE
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0x82
beq _0802A656
b _0802AAD2
_0802A656:
ldr r4, _0802A664 @ =0x00000286
adds r1, r1, r4
movs r0, #0x5a
strh r0, [r1]
b _0802AAD2
.align 2, 0
_0802A660: .4byte 0x000006DE
_0802A664: .4byte 0x00000286
_0802A668:
ldr r4, [r5]
ldr r0, _0802A688 @ =0x000006DE
adds r1, r4, r0
ldrh r0, [r1]
cmp r0, #0x5f
beq _0802A676
b _0802AAD2
_0802A676:
movs r0, #0xc
strh r0, [r1]
ldr r0, _0802A68C @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #3
bl __umodsi3
adds r0, #0x21
b _0802A744
.align 2, 0
_0802A688: .4byte 0x000006DE
_0802A68C: .4byte gMain
_0802A690:
ldr r4, [r5]
ldr r3, _0802A6BC @ =0x000006DE
adds r1, r4, r3
ldrh r0, [r1]
cmp r0, #0x5f
beq _0802A69E
b _0802AAD2
_0802A69E:
movs r0, #0xc
strh r0, [r1]
ldr r0, _0802A6C0 @ =0x000006E9
adds r1, r4, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bgt _0802A6C8
ldr r0, _0802A6C4 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #3
bl __umodsi3
adds r0, #0x18
b _0802A744
.align 2, 0
_0802A6BC: .4byte 0x000006DE
_0802A6C0: .4byte 0x000006E9
_0802A6C4: .4byte gMain
_0802A6C8:
cmp r0, #0xa
bgt _0802A6E0
ldr r0, _0802A6DC @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #5
bl __umodsi3
adds r0, #0x18
b _0802A768
.align 2, 0
_0802A6DC: .4byte gMain
_0802A6E0:
movs r0, #0
ldrsb r0, [r1, r0]
movs r1, #5
bl __modsi3
lsls r0, r0, #0x18
cmp r0, #0
bne _0802A704
ldr r0, _0802A700 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #5
bl __umodsi3
adds r0, #0x1c
b _0802A744
.align 2, 0
_0802A700: .4byte gMain
_0802A704:
ldr r0, _0802A714 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #7
bl __umodsi3
adds r0, #0x18
b _0802A768
.align 2, 0
_0802A714: .4byte gMain
_0802A718:
ldr r4, [r5]
ldr r0, _0802A74C @ =0x000006DE
adds r1, r4, r0
ldrh r0, [r1]
cmp r0, #0x5f
beq _0802A726
b _0802AAD2
_0802A726:
movs r0, #0xc
strh r0, [r1]
ldr r1, _0802A750 @ =0x000006E9
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #9
bgt _0802A75C
ldr r0, _0802A754 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #3
bl __umodsi3
adds r0, #0x24
_0802A744:
ldr r2, _0802A758 @ =0x000006DC
adds r1, r4, r2
strb r0, [r1]
b _0802AAD2
.align 2, 0
_0802A74C: .4byte 0x000006DE
_0802A750: .4byte 0x000006E9
_0802A754: .4byte gMain
_0802A758: .4byte 0x000006DC
_0802A75C:
ldr r0, _0802A770 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #5
bl __umodsi3
adds r0, #0x24
_0802A768:
ldr r3, _0802A774 @ =0x000006DC
adds r1, r4, r3
strb r0, [r1]
b _0802AAD2
.align 2, 0
_0802A770: .4byte gMain
_0802A774: .4byte 0x000006DC
_0802A778:
ldr r0, [r5]
ldr r4, _0802A794 @ =0x000006DE
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x96
beq _0802A786
b _0802AAD2
_0802A786:
movs r0, #4
bl sub_19B64
ldr r1, [r5]
movs r0, #0x64
strh r0, [r1, #0x28]
b _0802AAD2
.align 2, 0
_0802A794: .4byte 0x000006DE
_0802A798:
ldr r1, [r5]
ldr r2, _0802A818 @ =0x00000281
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _0802A7AA
b _0802AAD2
_0802A7AA:
ldr r4, _0802A81C @ =0x000006DE
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x95
bne _0802A7C6
movs r3, #0xdd
lsls r3, r3, #1
adds r2, r1, r3
movs r0, #0xb4
strh r0, [r2]
ldr r0, _0802A820 @ =0x000006C4
adds r1, r1, r0
movs r0, #3
strb r0, [r1]
_0802A7C6:
ldr r2, [r5]
adds r1, r2, r4
ldrh r0, [r1]
cmp r0, #0x96
bne _0802A7F2
movs r0, #0x95
strh r0, [r1]
ldr r3, _0802A824 @ =0x000001A5
adds r1, r2, r3
movs r0, #1
strb r0, [r1]
bl sub_1B140
ldr r0, [r5]
ldr r1, _0802A828 @ =0x0000036A
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r0, [r5]
ldr r2, _0802A82C @ =0x0000036B
adds r0, r0, r2
strb r1, [r0]
_0802A7F2:
ldr r1, [r5]
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0xaa
beq _0802A7FE
b _0802AAD2
_0802A7FE:
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r1, r3
movs r1, #0
strb r1, [r0]
ldr r0, [r5]
ldr r4, _0802A824 @ =0x000001A5
adds r0, r0, r4
strb r1, [r0]
movs r0, #6
bl sub_19B64
b _0802AAD2
.align 2, 0
_0802A818: .4byte 0x00000281
_0802A81C: .4byte 0x000006DE
_0802A820: .4byte 0x000006C4
_0802A824: .4byte 0x000001A5
_0802A828: .4byte 0x0000036A
_0802A82C: .4byte 0x0000036B
_0802A830:
ldr r1, [r5]
ldr r2, _0802A85C @ =0x000006DE
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0x82
beq _0802A83E
b _0802AAD2
_0802A83E:
ldr r4, _0802A860 @ =0x000005F6
adds r1, r1, r4
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _0802A850
adds r0, r2, #1
strb r0, [r1]
_0802A850:
ldr r0, [r5]
movs r3, #0xbf
lsls r3, r3, #3
adds r0, r0, r3
b _0802A882
.align 2, 0
_0802A85C: .4byte 0x000006DE
_0802A860: .4byte 0x000005F6
_0802A864:
ldr r1, [r5]
ldr r4, _0802A8B0 @ =0x000006DE
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x82
beq _0802A872
b _0802AAD2
_0802A872:
subs r4, #0xe8
adds r1, r1, r4
movs r0, #3
strb r0, [r1]
ldr r0, [r5]
movs r1, #0xbf
lsls r1, r1, #3
adds r0, r0, r1
_0802A882:
movs r1, #0xe1
lsls r1, r1, #4
strh r1, [r0]
ldr r0, _0802A8B4 @ =gMPlayInfo_SE1
ldr r1, _0802A8B8 @ =gUnknown_0869F664
bl MPlayStart
ldr r2, _0802A8BC @ =0x040000D4
ldr r0, [r5]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _0802A8C0 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802A8C4 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0802A8C8 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0802AAD2
.align 2, 0
_0802A8B0: .4byte 0x000006DE
_0802A8B4: .4byte gMPlayInfo_SE1
_0802A8B8: .4byte gUnknown_0869F664
_0802A8BC: .4byte 0x040000D4
_0802A8C0: .4byte gUnknown_08137E14
_0802A8C4: .4byte 0x05000220
_0802A8C8: .4byte 0x80000010
_0802A8CC:
ldr r1, [r5]
ldr r4, _0802A918 @ =0x000006DE
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x82
bne _0802A906
ldr r2, _0802A91C @ =0x0000072B
adds r1, r1, r2
movs r3, #0
movs r0, #1
strb r0, [r1]
ldr r2, [r5]
ldr r1, _0802A920 @ =0x000006DC
adds r0, r2, r1
ldrb r1, [r0]
subs r1, #0x11
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
adds r0, #0xa
movs r1, #0xca
lsls r1, r1, #1
adds r2, r2, r1
strb r0, [r2]
ldr r0, [r5]
movs r2, #0xcb
lsls r2, r2, #1
adds r0, r0, r2
strh r3, [r0]
_0802A906:
ldr r0, [r5]
adds r1, r0, r4
ldrh r0, [r1]
cmp r0, #0x8c
beq _0802A912
b _0802AAD2
_0802A912:
movs r0, #0x8b
strh r0, [r1]
b _0802AAD2
.align 2, 0
_0802A918: .4byte 0x000006DE
_0802A91C: .4byte 0x0000072B
_0802A920: .4byte 0x000006DC
_0802A924:
ldr r1, [r5]
ldr r3, _0802A93C @ =0x000006DE
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0x82
beq _0802A932
b _0802AAD2
_0802A932:
adds r1, #0x6c
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
b _0802AAD2
.align 2, 0
_0802A93C: .4byte 0x000006DE
_0802A940:
ldr r1, [r5]
ldr r4, _0802A960 @ =0x000006DE
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0x96
beq _0802A94E
b _0802AAD2
_0802A94E:
movs r0, #0x64
strh r0, [r1, #0x28]
adds r1, #0x72
movs r0, #0xf
strb r0, [r1]
movs r0, #8
bl sub_19B64
b _0802AAD2
.align 2, 0
_0802A960: .4byte 0x000006DE
_0802A964:
ldr r1, [r5]
ldr r2, _0802A9A0 @ =0x000006DE
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0x96
beq _0802A972
b _0802AAD2
_0802A972:
movs r3, #0xa9
lsls r3, r3, #2
adds r0, r1, r3
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
beq _0802A982
b _0802AAD2
_0802A982:
movs r4, #0xba
lsls r4, r4, #1
adds r0, r1, r4
strh r2, [r0]
ldr r2, _0802A9A4 @ =0x0000016F
adds r0, r1, r2
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
movs r3, #0xb1
lsls r3, r3, #1
adds r0, r0, r3
strb r1, [r0]
b _0802AAD2
.align 2, 0
_0802A9A0: .4byte 0x000006DE
_0802A9A4: .4byte 0x0000016F
_0802A9A8:
ldr r2, [r5]
ldr r4, _0802A9D8 @ =0x000006DE
adds r0, r2, r4
ldrh r0, [r0]
cmp r0, #0x96
beq _0802A9B6
b _0802AAD2
_0802A9B6:
movs r0, #0xc2
lsls r0, r0, #2
adds r1, r2, r0
movs r0, #0x64
strh r0, [r1]
movs r3, #0xc3
lsls r3, r3, #2
adds r1, r2, r3
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
ldr r4, _0802A9DC @ =0x00000306
adds r1, r2, r4
movs r0, #1
strb r0, [r1]
b _0802AAD2
.align 2, 0
_0802A9D8: .4byte 0x000006DE
_0802A9DC: .4byte 0x00000306
_0802A9E0:
ldr r1, [r5]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0802A9F0
ldr r0, _0802AA1C @ =0x000006DE
adds r1, r1, r0
movs r0, #0x51
strh r0, [r1]
_0802A9F0:
ldr r1, [r5]
ldr r2, _0802AA1C @ =0x000006DE
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0x46
bne _0802AAD2
movs r0, #1
strb r0, [r1, #0x1c]
ldr r3, [r5]
ldr r4, _0802AA20 @ =0x000006DC
adds r0, r3, r4
ldrb r2, [r0]
subs r2, #0x17
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
str r0, [r3, #0x3c]
b _0802AAD2
.align 2, 0
_0802AA1C: .4byte 0x000006DE
_0802AA20: .4byte 0x000006DC
_0802AA24:
ldr r0, [r5]
ldr r1, _0802AA40 @ =0x000006DE
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0x46
bne _0802AAD2
movs r0, #0x91
bl m4aSongNumStart
ldr r1, [r5]
movs r0, #0x64
str r0, [r1, #0x3c]
b _0802AAD2
.align 2, 0
_0802AA40: .4byte 0x000006DE
_0802AA44:
ldr r0, [r5]
ldr r2, _0802AA60 @ =0x000006DE
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #0x46
bne _0802AAD2
movs r0, #0x91
bl m4aSongNumStart
ldr r1, [r5]
movs r0, #0xfa
lsls r0, r0, #1
str r0, [r1, #0x3c]
b _0802AAD2
.align 2, 0
_0802AA60: .4byte 0x000006DE
_0802AA64:
ldr r0, [r5]
ldr r3, _0802AA80 @ =0x000006DE
adds r0, r0, r3
ldrh r0, [r0]
cmp r0, #0x46
bne _0802AAD2
movs r0, #0x91
bl m4aSongNumStart
ldr r1, [r5]
movs r0, #0xe1
lsls r0, r0, #2
str r0, [r1, #0x3c]
b _0802AAD2
.align 2, 0
_0802AA80: .4byte 0x000006DE
_0802AA84:
ldr r4, [r5]
ldr r1, _0802AAB4 @ =0x000006DE
adds r0, r4, r1
ldrh r0, [r0]
cmp r0, #0x46
bne _0802AAD2
ldr r2, _0802AAB8 @ =0x0000070E
adds r1, r4, r2
ldr r3, _0802AABC @ =0x000006DC
adds r0, r4, r3
ldrb r0, [r0]
adds r0, #0xdd
ldrb r4, [r1]
adds r0, r0, r4
strb r0, [r1]
ldr r0, [r5]
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x63
ble _0802AAD2
movs r0, #0x63
strb r0, [r1]
b _0802AAD2
.align 2, 0
_0802AAB4: .4byte 0x000006DE
_0802AAB8: .4byte 0x0000070E
_0802AABC: .4byte 0x000006DC
_0802AAC0:
ldr r0, [r5]
ldr r1, _0802AAD8 @ =0x000006DE
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0x96
bne _0802AAD2
movs r0, #3
bl sub_19B64
_0802AAD2:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802AAD8: .4byte 0x000006DE
thumb_func_start sub_2AADC
sub_2AADC: @ 0x0802AADC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r0, _0802AB5C @ =gUnknown_020314E0
ldr r3, [r0]
ldrb r5, [r3, #0x1e]
cmp r5, #0
beq _0802AAF6
bl sub_2C518
_0802AAF6:
ldr r0, _0802AB60 @ =0x000005A6
adds r4, r3, r0
ldrh r1, [r4]
ldr r6, _0802AB64 @ =gUnknown_086ACF38
adds r0, #2
adds r2, r3, r0
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #1
adds r0, r0, r6
movs r3, #0
ldrsh r0, [r0, r3]
cmp r1, r0
bge _0802AB38
adds r0, r1, #1
strh r0, [r4]
ldrh r1, [r4]
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #1
adds r0, r0, r6
movs r3, #0
ldrsh r0, [r0, r3]
cmp r1, r0
blt _0802AB38
strh r5, [r4]
ldrb r1, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0x22
bgt _0802AB38
adds r0, r1, #1
strb r0, [r2]
_0802AB38:
ldr r4, _0802AB5C @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0xb5
lsls r1, r1, #3
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x22
bls _0802AB50
bl _0802C4D2
_0802AB50:
lsls r0, r0, #2
ldr r1, _0802AB68 @ =_0802AB6C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802AB5C: .4byte gUnknown_020314E0
_0802AB60: .4byte 0x000005A6
_0802AB64: .4byte gUnknown_086ACF38
_0802AB68: .4byte _0802AB6C
_0802AB6C: @ jump table
.4byte _0802ABF8 @ case 0
.4byte _0802AD18 @ case 1
.4byte _0802ADB4 @ case 2
.4byte _0802AE98 @ case 3
.4byte _0802AF6C @ case 4
.4byte _0802AF6C @ case 5
.4byte _0802AF6C @ case 6
.4byte _0802AF6C @ case 7
.4byte _0802AF6C @ case 8
.4byte _0802AF6C @ case 9
.4byte _0802AF6C @ case 10
.4byte _0802B200 @ case 11
.4byte _0802B33C @ case 12
.4byte _0802B42C @ case 13
.4byte _0802B460 @ case 14
.4byte _0802B4B8 @ case 15
.4byte _0802B510 @ case 16
.4byte _0802B574 @ case 17
.4byte _0802B574 @ case 18
.4byte _0802B574 @ case 19
.4byte _0802B574 @ case 20
.4byte _0802B574 @ case 21
.4byte _0802B574 @ case 22
.4byte _0802B574 @ case 23
.4byte _0802B574 @ case 24
.4byte _0802B574 @ case 25
.4byte _0802B8D0 @ case 26
.4byte _0802B574 @ case 27
.4byte _0802B574 @ case 28
.4byte _0802BA7C @ case 29
.4byte _0802BB4C @ case 30
.4byte _0802BE94 @ case 31
.4byte _0802BEB4 @ case 32
.4byte _0802C04C @ case 33
.4byte _0802C314 @ case 34
_0802ABF8:
ldr r0, _0802ACDC @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0xce
strh r1, [r0, #0x38]
ldrb r0, [r0, #4]
cmp r0, #1
bhi _0802AC20
ldr r2, _0802ACE0 @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0x13
ldrsb r3, [r0, r3]
cmp r3, #4
beq _0802AC16
cmp r3, #8
bne _0802AC20
_0802AC16:
movs r3, #0xa5
lsls r3, r3, #2
adds r1, r0, r3
movs r0, #1
strb r0, [r1]
_0802AC20:
ldr r7, _0802ACE0 @ =gUnknown_020314E0
ldr r0, [r7]
movs r4, #1
mov r8, r4
mov r1, r8
strb r1, [r0, #0x1f]
ldr r6, [r7]
ldr r2, _0802ACE4 @ =0x0000132C
adds r4, r6, r2
ldr r5, [r4]
movs r3, #0x30
ldrsh r0, [r5, r3]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r5, #0x30]
ldr r5, [r4]
movs r1, #0x32
ldrsh r0, [r5, r1]
lsls r0, r0, #2
movs r1, #5
bl __divsi3
strh r0, [r5, #0x32]
ldr r1, [r4]
movs r3, #0x30
ldrsh r2, [r1, r3]
ldr r0, [r1, #0x34]
adds r0, r0, r2
str r0, [r1, #0x34]
ldr r1, [r4]
movs r4, #0x32
ldrsh r2, [r1, r4]
ldr r0, [r1, #0x38]
adds r0, r0, r2
str r0, [r1, #0x38]
adds r6, #0xe4
movs r0, #9
strb r0, [r6]
ldr r1, _0802ACE8 @ =0x040000D4
ldr r0, _0802ACEC @ =gUnknown_081428D4
str r0, [r1]
ldr r0, _0802ACF0 @ =0x06015800
str r0, [r1, #4]
ldr r0, _0802ACF4 @ =0x80000E00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r2, [r7]
ldr r0, _0802ACF8 @ =0x000005F6
adds r3, r2, r0
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #9
ldr r5, _0802ACFC @ =gUnknown_08138014
adds r0, r0, r5
str r0, [r1]
ldr r0, _0802AD00 @ =0x060164C0
str r0, [r1, #4]
ldr r4, _0802AD04 @ =0x80000040
str r4, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #3
adds r0, #4
lsls r0, r0, #6
adds r0, r0, r5
str r0, [r1]
ldr r0, _0802AD08 @ =0x06016760
str r0, [r1, #4]
str r4, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0802AD0C @ =0x000005F7
adds r2, r2, r1
mov r3, r8
strb r3, [r2]
ldr r0, [r7]
ldr r4, _0802AD10 @ =0x000005A6
adds r0, r0, r4
ldrh r4, [r0]
cmp r4, #1
beq _0802ACCA
bl _0802C4D2
_0802ACCA:
ldr r0, _0802AD14 @ =gMPlayInfo_BGM
bl m4aMPlayStop
ldr r0, [r7]
adds r0, #0x71
strb r4, [r0]
bl _0802C4D2
.align 2, 0
_0802ACDC: .4byte gMain
_0802ACE0: .4byte gUnknown_020314E0
_0802ACE4: .4byte 0x0000132C
_0802ACE8: .4byte 0x040000D4
_0802ACEC: .4byte gUnknown_081428D4
_0802ACF0: .4byte 0x06015800
_0802ACF4: .4byte 0x80000E00
_0802ACF8: .4byte 0x000005F6
_0802ACFC: .4byte gUnknown_08138014
_0802AD00: .4byte 0x060164C0
_0802AD04: .4byte 0x80000040
_0802AD08: .4byte 0x06016760
_0802AD0C: .4byte 0x000005F7
_0802AD10: .4byte 0x000005A6
_0802AD14: .4byte gMPlayInfo_BGM
_0802AD18:
ldr r4, _0802AD94 @ =gUnknown_020314E0
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
bne _0802AD48
movs r7, #0xe4
lsls r7, r7, #3
adds r1, r1, r7
movs r0, #0
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0802AD98 @ =0x0000071D
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r0, [r4]
ldr r2, _0802AD9C @ =0x0000071E
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r4]
ldr r3, _0802ADA0 @ =0x0000071F
adds r0, r0, r3
strb r1, [r0]
_0802AD48:
ldr r0, [r4]
ldr r2, _0802ADA4 @ =0x0000132C
adds r0, r0, r2
ldr r0, [r0]
movs r1, #0
strb r1, [r0, #1]
ldr r4, [r4]
adds r2, r4, r2
ldr r0, [r2]
strh r1, [r0, #0x30]
ldr r0, [r2]
strh r1, [r0, #0x32]
ldr r1, [r2]
movs r7, #0x30
ldrsh r3, [r1, r7]
ldr r0, [r1, #0x34]
adds r0, r0, r3
str r0, [r1, #0x34]
ldr r1, [r2]
movs r0, #0x32
ldrsh r2, [r1, r0]
ldr r0, [r1, #0x38]
adds r0, r0, r2
str r0, [r1, #0x38]
ldr r1, _0802ADA8 @ =0x000005A6
adds r4, r4, r1
ldrh r0, [r4]
cmp r0, #0
beq _0802AD86
bl _0802C4D2
_0802AD86:
ldr r0, _0802ADAC @ =gMPlayInfo_SE1
ldr r1, _0802ADB0 @ =gUnknown_0869FCE4
bl MPlayStart
bl _0802C4D2
.align 2, 0
_0802AD94: .4byte gUnknown_020314E0
_0802AD98: .4byte 0x0000071D
_0802AD9C: .4byte 0x0000071E
_0802ADA0: .4byte 0x0000071F
_0802ADA4: .4byte 0x0000132C
_0802ADA8: .4byte 0x000005A6
_0802ADAC: .4byte gMPlayInfo_SE1
_0802ADB0: .4byte gUnknown_0869FCE4
_0802ADB4:
ldr r2, _0802AE14 @ =0x040000D4
ldr r3, _0802AE18 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _0802AE1C @ =0x000005F6
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #4
lsls r0, r0, #5
ldr r1, _0802AE20 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802AE24 @ =0x05000220
str r0, [r2, #4]
ldr r5, _0802AE28 @ =0x80000010
str r5, [r2, #8]
ldr r0, [r2, #8]
ldr r4, _0802AE2C @ =gMain
ldrh r0, [r4, #0x3c]
movs r0, #4
strh r0, [r4, #0x3c]
ldr r0, [r3]
ldr r7, _0802AE30 @ =0x000005A6
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #1
bhi _0802ADF0
bl _0802C4D2
_0802ADF0:
ldr r1, _0802AE34 @ =gUnknown_02031520
ldr r3, [r1, #0x30]
str r3, [r2]
ldr r0, _0802AE38 @ =0x05000200
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
ldrb r0, [r4, #4]
adds r4, r1, #0
cmp r0, #1
bne _0802AE44
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802AE3C @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802AE40 @ =0x80000060
b _0802AE50
.align 2, 0
_0802AE14: .4byte 0x040000D4
_0802AE18: .4byte gUnknown_020314E0
_0802AE1C: .4byte 0x000005F6
_0802AE20: .4byte gUnknown_08137E14
_0802AE24: .4byte 0x05000220
_0802AE28: .4byte 0x80000010
_0802AE2C: .4byte gMain
_0802AE30: .4byte 0x000005A6
_0802AE34: .4byte gUnknown_02031520
_0802AE38: .4byte 0x05000200
_0802AE3C: .4byte 0x05000240
_0802AE40: .4byte 0x80000060
_0802AE44:
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802AE80 @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802AE84 @ =0x80000070
_0802AE50:
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, _0802AE88 @ =0x040000D4
ldr r0, [r4, #0x30]
movs r2, #0xa0
lsls r2, r2, #1
adds r0, r0, r2
str r0, [r1]
ldr r0, _0802AE8C @ =0x05000340
str r0, [r1, #4]
ldr r0, _0802AE90 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r2, _0802AE94 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x6f
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x70
strb r1, [r0]
bl _0802C4D2
.align 2, 0
_0802AE80: .4byte 0x05000240
_0802AE84: .4byte 0x80000070
_0802AE88: .4byte 0x040000D4
_0802AE8C: .4byte 0x05000340
_0802AE90: .4byte 0x80000030
_0802AE94: .4byte gUnknown_020314E0
_0802AE98:
ldr r4, _0802AED8 @ =gMain
ldrh r0, [r4, #0x3c]
movs r0, #7
strh r0, [r4, #0x3c]
ldr r3, _0802AEDC @ =gUnknown_020314E0
ldr r0, [r3]
ldr r7, _0802AEE0 @ =0x000005A6
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #1
bls _0802AF34
ldr r2, _0802AEE4 @ =0x040000D4
ldr r1, _0802AEE8 @ =gUnknown_02031520
ldr r3, [r1, #0x34]
str r3, [r2]
ldr r0, _0802AEEC @ =0x05000200
str r0, [r2, #4]
ldr r0, _0802AEF0 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldrb r0, [r4, #4]
adds r4, r1, #0
cmp r0, #1
bne _0802AEFC
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802AEF4 @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802AEF8 @ =0x80000060
b _0802AF08
.align 2, 0
_0802AED8: .4byte gMain
_0802AEDC: .4byte gUnknown_020314E0
_0802AEE0: .4byte 0x000005A6
_0802AEE4: .4byte 0x040000D4
_0802AEE8: .4byte gUnknown_02031520
_0802AEEC: .4byte 0x05000200
_0802AEF0: .4byte 0x80000010
_0802AEF4: .4byte 0x05000240
_0802AEF8: .4byte 0x80000060
_0802AEFC:
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802AF48 @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802AF4C @ =0x80000070
_0802AF08:
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, _0802AF50 @ =0x040000D4
ldr r0, [r4, #0x34]
movs r2, #0xa0
lsls r2, r2, #1
adds r0, r0, r2
str r0, [r1]
ldr r0, _0802AF54 @ =0x05000340
str r0, [r1, #4]
ldr r0, _0802AF58 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r2, _0802AF5C @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x6f
movs r1, #2
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x70
movs r1, #1
strb r1, [r0]
_0802AF34:
ldr r1, _0802AF50 @ =0x040000D4
ldr r0, _0802AF60 @ =gUnknown_08137F14
str r0, [r1]
ldr r0, _0802AF64 @ =0x05000220
str r0, [r1, #4]
ldr r0, _0802AF68 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
bl _0802C4D2
.align 2, 0
_0802AF48: .4byte 0x05000240
_0802AF4C: .4byte 0x80000070
_0802AF50: .4byte 0x040000D4
_0802AF54: .4byte 0x05000340
_0802AF58: .4byte 0x80000030
_0802AF5C: .4byte gUnknown_020314E0
_0802AF60: .4byte gUnknown_08137F14
_0802AF64: .4byte 0x05000220
_0802AF68: .4byte 0x80000010
_0802AF6C:
ldr r3, _0802AFDC @ =gUnknown_020314E0
ldr r4, [r3]
movs r7, #0xb5
lsls r7, r7, #3
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #4
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
beq _0802AF8C
cmp r0, #6
bne _0802AFFC
_0802AF8C:
ldr r0, _0802AFE0 @ =gMain
ldrb r1, [r0, #4]
mov ip, r0
cmp r1, #3
bhi _0802AFC2
movs r1, #0x13
ldrsb r1, [r4, r1]
cmp r1, #4
bne _0802AFA6
movs r0, #0x17
ldrsb r0, [r4, r0]
cmp r0, #9
beq _0802AFB2
_0802AFA6:
cmp r1, #8
bne _0802AFC2
movs r0, #0x17
ldrsb r0, [r4, r0]
cmp r0, #3
bne _0802AFC2
_0802AFB2:
ldr r1, _0802AFE4 @ =0x040000D4
ldr r0, _0802AFE8 @ =gUnknown_02030710
str r0, [r1]
ldr r0, _0802AFEC @ =0x050003A0
str r0, [r1, #4]
ldr r0, _0802AFF0 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0802AFC2:
ldr r1, _0802AFE4 @ =0x040000D4
ldr r0, _0802AFF4 @ =gUnknown_08137F14
str r0, [r1]
ldr r0, _0802AFF8 @ =0x05000220
str r0, [r1, #4]
ldr r0, _0802AFF0 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
mov r1, ip
ldrh r0, [r1, #0x3c]
movs r0, #6
strh r0, [r1, #0x3c]
b _0802B026
.align 2, 0
_0802AFDC: .4byte gUnknown_020314E0
_0802AFE0: .4byte gMain
_0802AFE4: .4byte 0x040000D4
_0802AFE8: .4byte gUnknown_02030710
_0802AFEC: .4byte 0x050003A0
_0802AFF0: .4byte 0x80000010
_0802AFF4: .4byte gUnknown_08137F14
_0802AFF8: .4byte 0x05000220
_0802AFFC:
ldr r2, _0802B0EC @ =0x040000D4
ldr r7, _0802B0F0 @ =0x000005F6
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #4
lsls r0, r0, #5
ldr r1, _0802B0F4 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802B0F8 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0802B0FC @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _0802B100 @ =gMain
ldrh r1, [r0, #0x3c]
movs r1, #7
strh r1, [r0, #0x3c]
mov ip, r0
_0802B026:
mov r1, ip
ldr r0, [r1, #0x44]
ldr r6, [r0, #0xc]
ldrh r0, [r6]
cmp r0, #0
bne _0802B034
b _0802B1AC
_0802B034:
ldr r4, _0802B104 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r7, _0802B108 @ =0x0000132C
adds r1, r2, r7
ldr r0, [r1]
ldrh r0, [r0, #0x24]
strh r0, [r6, #2]
ldr r0, [r1]
ldrh r0, [r0, #0x26]
strh r0, [r6, #4]
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #5
bne _0802B11C
movs r5, #0
lsls r0, r3, #0x10
ldr r1, _0802B10C @ =gOamBuffer
mov r8, r1
ldr r2, _0802B110 @ =gUnknown_081B0FE4
mov sb, r2
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
mov sl, r0
_0802B066:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r4, r8
adds r2, r0, r4
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, sl
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, sl
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, sl
add r1, sb
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802B114 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldr r0, _0802B118 @ =0xFFFFFE00
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r2, [r1, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0xf
ble _0802B066
b _0802B1AC
.align 2, 0
_0802B0EC: .4byte 0x040000D4
_0802B0F0: .4byte 0x000005F6
_0802B0F4: .4byte gUnknown_08137E14
_0802B0F8: .4byte 0x05000220
_0802B0FC: .4byte 0x80000010
_0802B100: .4byte gMain
_0802B104: .4byte gUnknown_020314E0
_0802B108: .4byte 0x0000132C
_0802B10C: .4byte gOamBuffer
_0802B110: .4byte gUnknown_081B0FE4
_0802B114: .4byte 0x000001FF
_0802B118: .4byte 0xFFFFFE00
_0802B11C:
movs r5, #0
lsls r0, r3, #0x10
ldr r3, _0802B1E8 @ =gOamBuffer
mov sb, r3
ldr r4, _0802B1EC @ =gUnknown_081B0FE4
mov r8, r4
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
str r0, [sp]
ldr r7, _0802B1F0 @ =0xFFFFFE00
mov sl, r7
_0802B136:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r1, sb
adds r2, r0, r1
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
ldr r4, [sp]
adds r0, r0, r4
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r4
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r4
add r1, r8
ldrh r0, [r1]
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 r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802B1F4 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sl
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0xf
ble _0802B136
_0802B1AC:
mov r3, ip
ldr r0, [r3, #0x44]
ldr r1, [r0, #0xc]
movs r0, #1
strh r0, [r1]
ldr r0, _0802B1F8 @ =gUnknown_020314E0
ldr r1, [r0]
movs r4, #0xb5
lsls r4, r4, #3
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
beq _0802B1CE
bl _0802C4D2
_0802B1CE:
ldr r7, _0802B1FC @ =0x000005A6
adds r0, r1, r7
ldrh r0, [r0]
cmp r0, #3
beq _0802B1DC
bl _0802C4D2
_0802B1DC:
ldr r0, [r3, #0x44]
ldr r1, [r0, #0xc]
movs r0, #0
strh r0, [r1]
bl _0802C4D2
.align 2, 0
_0802B1E8: .4byte gOamBuffer
_0802B1EC: .4byte gUnknown_081B0FE4
_0802B1F0: .4byte 0xFFFFFE00
_0802B1F4: .4byte 0x000001FF
_0802B1F8: .4byte gUnknown_020314E0
_0802B1FC: .4byte 0x000005A6
_0802B200:
ldr r2, _0802B29C @ =0x040000D4
ldr r6, _0802B2A0 @ =gUnknown_020314E0
ldr r3, [r6]
ldr r1, _0802B2A4 @ =0x000005F6
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #4
lsls r0, r0, #5
ldr r1, _0802B2A8 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802B2AC @ =0x05000220
str r0, [r2, #4]
ldr r0, _0802B2B0 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0xa2
lsls r2, r2, #2
adds r0, r3, r2
ldrh r2, [r0]
lsls r2, r2, #8
ldr r4, _0802B2B4 @ =0x0000132C
adds r0, r3, r4
ldr r1, [r0]
ldr r0, [r1, #0x34]
subs r2, r2, r0
lsls r2, r2, #0x10
ldr r7, _0802B2B8 @ =0x0000028A
adds r0, r3, r7
ldrh r0, [r0]
lsls r0, r0, #8
ldr r1, [r1, #0x38]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r7, r2, #0x10
orrs r7, r0
ldr r5, _0802B2BC @ =0x000005AC
adds r3, r3, r5
lsls r0, r7, #0x10
asrs r0, r0, #0x10
adds r1, r0, #0
muls r1, r0, r1
adds r0, r1, #0
asrs r4, r7, #0x10
adds r1, r4, #0
muls r1, r4, r1
adds r0, r0, r1
str r0, [r3]
lsls r0, r0, #2
bl Sqrt
ldr r1, [r6]
adds r1, r1, r5
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, r4, #0
bl ArcTan2
ldr r6, [r6]
movs r2, #0xb6
lsls r2, r2, #3
adds r1, r6, r2
strh r0, [r1]
ldr r0, _0802B2C0 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #3
bls _0802B2C8
ldr r3, _0802B2C4 @ =0x00000389
adds r1, r6, r3
movs r0, #0
strb r0, [r1]
b _0802B2F4
.align 2, 0
_0802B29C: .4byte 0x040000D4
_0802B2A0: .4byte gUnknown_020314E0
_0802B2A4: .4byte 0x000005F6
_0802B2A8: .4byte gUnknown_08137E14
_0802B2AC: .4byte 0x05000220
_0802B2B0: .4byte 0x80000010
_0802B2B4: .4byte 0x0000132C
_0802B2B8: .4byte 0x0000028A
_0802B2BC: .4byte 0x000005AC
_0802B2C0: .4byte gMain
_0802B2C4: .4byte 0x00000389
_0802B2C8:
movs r1, #0x13
ldrsb r1, [r6, r1]
cmp r1, #4
bne _0802B2D8
movs r0, #0x17
ldrsb r0, [r6, r0]
cmp r0, #9
beq _0802B2E4
_0802B2D8:
cmp r1, #8
bne _0802B2F4
movs r0, #0x17
ldrsb r0, [r6, r0]
cmp r0, #3
bne _0802B2F4
_0802B2E4:
ldr r1, _0802B324 @ =0x040000D4
ldr r0, _0802B328 @ =gUnknown_020306D0
str r0, [r1]
ldr r0, _0802B32C @ =0x050003A0
str r0, [r1, #4]
ldr r0, _0802B330 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0802B2F4:
movs r5, #0
ldr r7, _0802B334 @ =gUnknown_020314E0
ldr r6, _0802B338 @ =0x0000132C
_0802B2FA:
ldr r4, [r7]
adds r4, r4, r6
ldr r0, [r4]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r2, r1, #2
adds r3, r0, r2
ldrh r0, [r0, #0x10]
strh r0, [r3, #0x14]
ldr r0, [r4]
adds r2, r0, r2
ldrh r0, [r0, #0x12]
strh r0, [r2, #0x16]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #3
ble _0802B2FA
bl _0802C4D2
.align 2, 0
_0802B324: .4byte 0x040000D4
_0802B328: .4byte gUnknown_020306D0
_0802B32C: .4byte 0x050003A0
_0802B330: .4byte 0x80000010
_0802B334: .4byte gUnknown_020314E0
_0802B338: .4byte 0x0000132C
_0802B33C:
ldr r4, _0802B410 @ =gUnknown_020314E0
mov sl, r4
ldr r5, [r4]
ldr r7, _0802B414 @ =0x000005A6
adds r0, r5, r7
ldrh r0, [r0]
movs r4, #0x63
subs r4, r4, r0
movs r0, #0xb6
lsls r0, r0, #3
adds r6, r5, r0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #0xd
movs r1, #0x64
bl __divsi3
ldr r1, _0802B418 @ =0xFFFFE000
adds r2, r1, #0
adds r0, r0, r2
ldrh r1, [r6]
subs r1, r1, r0
strh r1, [r6]
ldr r7, _0802B41C @ =0x0000132C
adds r1, r5, r7
ldr r0, [r1]
ldrh r3, [r0, #0xa]
adds r2, r2, r3
strh r2, [r0, #0xa]
subs r4, #0x14
lsls r4, r4, #0x10
lsrs r5, r4, #0x10
cmp r4, #0
bge _0802B388
movs r5, #0
ldr r1, [r1]
movs r0, #0
strb r0, [r1]
_0802B388:
mov r0, sl
ldr r4, [r0]
ldr r2, _0802B420 @ =0x000005AC
adds r1, r4, r2
lsls r0, r5, #0x10
asrs r0, r0, #0x10
ldr r1, [r1]
muls r0, r1, r0
movs r1, #0x50
bl __divsi3
mov sb, r0
movs r3, #0xb6
lsls r3, r3, #3
adds r4, r4, r3
ldrh r0, [r4]
bl sub_C74
mov r4, sl
ldr r5, [r4]
adds r1, r5, r7
ldr r6, [r1]
movs r2, #0xa2
lsls r2, r2, #2
adds r1, r5, r2
movs r3, #0
ldrsh r4, [r1, r3]
lsls r4, r4, #8
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, sb
muls r1, r0, r1
adds r0, r1, #0
ldr r2, _0802B424 @ =0x00004E20
mov r8, r2
mov r1, r8
bl __divsi3
adds r4, r4, r0
str r4, [r6, #0x34]
movs r3, #0xb6
lsls r3, r3, #3
adds r5, r5, r3
ldrh r0, [r5]
bl sub_C24
mov r4, sl
ldr r1, [r4]
adds r2, r1, r7
ldr r5, [r2]
ldr r7, _0802B428 @ =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, sb
muls r3, r0, r3
adds r0, r3, #0
mov r1, r8
bl __divsi3
subs r4, r4, r0
str r4, [r5, #0x38]
bl _0802C4D2
.align 2, 0
_0802B410: .4byte gUnknown_020314E0
_0802B414: .4byte 0x000005A6
_0802B418: .4byte 0xFFFFE000
_0802B41C: .4byte 0x0000132C
_0802B420: .4byte 0x000005AC
_0802B424: .4byte 0x00004E20
_0802B428: .4byte 0x0000028A
_0802B42C:
ldr r5, _0802B454 @ =gUnknown_020314E0
ldr r1, [r5]
ldr r4, _0802B458 @ =0x0000132C
adds r0, r1, r4
ldr r2, [r0]
movs r3, #0
movs r0, #0
strh r0, [r2, #6]
adds r1, #0x71
strb r3, [r1]
ldr r0, [r5]
adds r0, r0, r4
ldr r1, [r0]
ldr r4, _0802B45C @ =0xFFFFE000
adds r0, r4, #0
ldrh r7, [r1, #0xa]
adds r0, r0, r7
strh r0, [r1, #0xa]
bl _0802C4D2
.align 2, 0
_0802B454: .4byte gUnknown_020314E0
_0802B458: .4byte 0x0000132C
_0802B45C: .4byte 0xFFFFE000
_0802B460:
ldr r2, _0802B498 @ =0x040000D4
ldr r0, _0802B49C @ =gUnknown_020314E0
ldr r3, [r0]
ldr r1, _0802B4A0 @ =0x000005F6
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _0802B4A4 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802B4A8 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0802B4AC @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r2, _0802B4B0 @ =0x0000132C
adds r3, r3, r2
ldr r1, [r3]
ldr r3, _0802B4B4 @ =0xFFFFE000
adds r0, r3, #0
ldrh r4, [r1, #0xa]
adds r0, r0, r4
strh r0, [r1, #0xa]
bl _0802C4D2
.align 2, 0
_0802B498: .4byte 0x040000D4
_0802B49C: .4byte gUnknown_020314E0
_0802B4A0: .4byte 0x000005F6
_0802B4A4: .4byte gUnknown_08137E14
_0802B4A8: .4byte 0x05000220
_0802B4AC: .4byte 0x80000010
_0802B4B0: .4byte 0x0000132C
_0802B4B4: .4byte 0xFFFFE000
_0802B4B8:
ldr r2, _0802B4F0 @ =0x040000D4
ldr r0, _0802B4F4 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r7, _0802B4F8 @ =0x000005F6
adds r0, r3, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #4
lsls r0, r0, #5
ldr r1, _0802B4FC @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802B500 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0802B504 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _0802B508 @ =0x0000132C
adds r3, r3, r0
ldr r1, [r3]
ldr r2, _0802B50C @ =0xFFFFE000
adds r0, r2, #0
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r1, #0xa]
bl _0802C4D2
.align 2, 0
_0802B4F0: .4byte 0x040000D4
_0802B4F4: .4byte gUnknown_020314E0
_0802B4F8: .4byte 0x000005F6
_0802B4FC: .4byte gUnknown_08137E14
_0802B500: .4byte 0x05000220
_0802B504: .4byte 0x80000010
_0802B508: .4byte 0x0000132C
_0802B50C: .4byte 0xFFFFE000
_0802B510:
ldr r4, _0802B554 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0802B558 @ =0x000005A6
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #0
bne _0802B524
movs r0, #0x9b
bl m4aSongNumStart
_0802B524:
ldr r2, _0802B55C @ =0x040000D4
ldr r3, [r4]
ldr r1, _0802B560 @ =0x000005F6
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _0802B564 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802B568 @ =0x05000220
str r0, [r2, #4]
ldr r0, _0802B56C @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r2, _0802B570 @ =0x0000132C
adds r3, r3, r2
ldr r1, [r3]
movs r0, #0xe0
lsls r0, r0, #7
strh r0, [r1, #0xa]
bl _0802C4D2
.align 2, 0
_0802B554: .4byte gUnknown_020314E0
_0802B558: .4byte 0x000005A6
_0802B55C: .4byte 0x040000D4
_0802B560: .4byte 0x000005F6
_0802B564: .4byte gUnknown_08137E14
_0802B568: .4byte 0x05000220
_0802B56C: .4byte 0x80000010
_0802B570: .4byte 0x0000132C
_0802B574:
ldr r0, _0802B664 @ =gMain
ldr r1, [r0, #0x44]
ldr r6, [r1, #0xc]
ldrh r1, [r6]
mov ip, r0
cmp r1, #0
bne _0802B584
b _0802B714
_0802B584:
ldr r3, _0802B668 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r1, _0802B66C @ =0x0000132C
adds r0, r0, r1
ldr r2, [r0]
movs r0, #1
strb r0, [r2]
ldr r2, [r3]
adds r1, r2, r1
ldr r0, [r1]
ldrh r0, [r0, #0x24]
strh r0, [r6, #2]
ldr r0, [r1]
ldrh r0, [r0, #0x26]
strh r0, [r6, #4]
ldr r1, _0802B670 @ =gUnknown_086ACFF4
movs r4, #0xb5
lsls r4, r4, #3
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #0x11
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #7
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #5
bne _0802B684
movs r5, #0
lsls r0, r3, #0x10
ldr r7, _0802B674 @ =gOamBuffer
mov r8, r7
ldr r1, _0802B678 @ =gUnknown_081B0FE4
mov sb, r1
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
mov sl, r0
_0802B5DE:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r4, r8
adds r2, r0, r4
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, sl
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, sl
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, sl
add r1, sb
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802B67C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldr r0, _0802B680 @ =0xFFFFFE00
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r2, [r1, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0xf
ble _0802B5DE
b _0802B714
.align 2, 0
_0802B664: .4byte gMain
_0802B668: .4byte gUnknown_020314E0
_0802B66C: .4byte 0x0000132C
_0802B670: .4byte gUnknown_086ACFF4
_0802B674: .4byte gOamBuffer
_0802B678: .4byte gUnknown_081B0FE4
_0802B67C: .4byte 0x000001FF
_0802B680: .4byte 0xFFFFFE00
_0802B684:
movs r5, #0
lsls r0, r3, #0x10
ldr r3, _0802B75C @ =gOamBuffer
mov sb, r3
ldr r4, _0802B760 @ =gUnknown_081B0FE4
mov r8, r4
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
str r0, [sp]
ldr r7, _0802B764 @ =0xFFFFFE00
mov sl, r7
_0802B69E:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r1, sb
adds r2, r0, r1
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
ldr r4, [sp]
adds r0, r0, r4
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r4
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r4
add r1, r8
ldrh r0, [r1]
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 r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802B768 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sl
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0xf
ble _0802B69E
_0802B714:
mov r3, ip
ldr r0, [r3, #0x44]
ldr r1, [r0, #0xc]
movs r0, #1
strh r0, [r1]
ldr r4, _0802B76C @ =gUnknown_020314E0
ldr r1, [r4]
movs r7, #0xb5
lsls r7, r7, #3
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x12
beq _0802B73A
cmp r0, #0x14
beq _0802B73A
cmp r0, #0x15
bne _0802B7AC
_0802B73A:
ldr r1, _0802B76C @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0802B770 @ =0x000005A9
adds r0, r0, r2
movs r1, #0xc8
strb r1, [r0]
mov r3, ip
ldrb r0, [r3, #4]
cmp r0, #3
bls _0802B778
ldr r4, _0802B76C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0802B774 @ =0x00000389
adds r0, r0, r7
movs r1, #1
strb r1, [r0]
b _0802B7F8
.align 2, 0
_0802B75C: .4byte gOamBuffer
_0802B760: .4byte gUnknown_081B0FE4
_0802B764: .4byte 0xFFFFFE00
_0802B768: .4byte 0x000001FF
_0802B76C: .4byte gUnknown_020314E0
_0802B770: .4byte 0x000005A9
_0802B774: .4byte 0x00000389
_0802B778:
ldr r0, _0802B7A0 @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0x13
ldrsb r2, [r1, r2]
cmp r2, #4
bne _0802B78C
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #9
beq _0802B798
_0802B78C:
cmp r2, #8
bne _0802B7F8
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #3
bne _0802B7F8
_0802B798:
ldr r1, _0802B7A4 @ =0x040000D4
ldr r0, _0802B7A8 @ =gUnknown_020306F0
b _0802B7EC
.align 2, 0
_0802B7A0: .4byte gUnknown_020314E0
_0802B7A4: .4byte 0x040000D4
_0802B7A8: .4byte gUnknown_020306F0
_0802B7AC:
cmp r0, #0x13
beq _0802B7B4
cmp r0, #0x16
bne _0802B7F8
_0802B7B4:
mov r2, ip
ldrb r0, [r2, #4]
cmp r0, #3
bls _0802B7CC
ldr r3, _0802B7C8 @ =0x00000389
adds r1, r1, r3
movs r0, #3
strb r0, [r1]
b _0802B7F8
.align 2, 0
_0802B7C8: .4byte 0x00000389
_0802B7CC:
movs r2, #0x13
ldrsb r2, [r1, r2]
cmp r2, #4
bne _0802B7DC
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #9
beq _0802B7E8
_0802B7DC:
cmp r2, #8
bne _0802B7F8
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #3
bne _0802B7F8
_0802B7E8:
ldr r1, _0802B820 @ =0x040000D4
ldr r0, _0802B824 @ =gUnknown_02030730
_0802B7EC:
str r0, [r1]
ldr r0, _0802B828 @ =0x050003A0
str r0, [r1, #4]
ldr r0, _0802B82C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0802B7F8:
ldr r4, _0802B830 @ =gUnknown_020314E0
ldr r1, [r4]
movs r7, #0xb5
lsls r7, r7, #3
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x17
bne _0802B880
mov r2, ip
ldrb r0, [r2, #4]
cmp r0, #3
bls _0802B838
ldr r3, _0802B834 @ =0x00000389
adds r1, r1, r3
movs r0, #0xa
strb r0, [r1]
b _0802B880
.align 2, 0
_0802B820: .4byte 0x040000D4
_0802B824: .4byte gUnknown_02030730
_0802B828: .4byte 0x050003A0
_0802B82C: .4byte 0x80000010
_0802B830: .4byte gUnknown_020314E0
_0802B834: .4byte 0x00000389
_0802B838:
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
bne _0802B85A
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #9
bne _0802B85A
bl sub_28E2C
ldr r0, [r4]
ldr r4, _0802B8C4 @ =0x000005F2
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
bl m4aMPlayAllStop
_0802B85A:
ldr r4, _0802B8C8 @ =gUnknown_020314E0
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #8
bne _0802B880
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #3
bne _0802B880
bl sub_292A0
ldr r0, [r4]
ldr r7, _0802B8C4 @ =0x000005F2
adds r0, r0, r7
movs r1, #0
strb r1, [r0]
bl m4aMPlayAllStop
_0802B880:
ldr r5, _0802B8C8 @ =gUnknown_020314E0
ldr r1, [r5]
movs r2, #0xb5
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1c
beq _0802B898
bl _0802C4D2
_0802B898:
ldr r4, _0802B8CC @ =0x000005A6
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, #0
bne _0802B8AC
bl m4aMPlayAllStop
movs r0, #8
bl sub_11B0
_0802B8AC:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #2
beq _0802B8BA
bl _0802C4D2
_0802B8BA:
movs r0, #0x9c
bl m4aSongNumStart
bl _0802C4D2
.align 2, 0
_0802B8C4: .4byte 0x000005F2
_0802B8C8: .4byte gUnknown_020314E0
_0802B8CC: .4byte 0x000005A6
_0802B8D0:
ldr r0, _0802B9B8 @ =gMain
ldr r0, [r0, #0x44]
ldr r6, [r0, #0xc]
ldrh r0, [r6]
cmp r0, #0
bne _0802B8E0
bl _0802C4D2
_0802B8E0:
ldr r3, _0802B9BC @ =gUnknown_020314E0
ldr r2, [r3]
ldr r4, _0802B9C0 @ =0x0000132C
adds r1, r2, r4
ldr r0, [r1]
ldrh r0, [r0, #0x24]
strh r0, [r6, #2]
ldr r0, [r1]
ldrh r0, [r0, #0x26]
strh r0, [r6, #4]
ldr r1, _0802B9C4 @ =gUnknown_086ACFF4
movs r7, #0xb5
lsls r7, r7, #3
adds r0, r2, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #0x11
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #7
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #5
bne _0802B9D8
movs r5, #0
lsls r0, r3, #0x10
ldr r1, _0802B9C8 @ =gOamBuffer
mov r8, r1
ldr r2, _0802B9CC @ =gUnknown_081B0FE4
mov sb, r2
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
mov sl, r0
_0802B930:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r4, r8
adds r2, r0, r4
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, sl
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, sl
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, sl
add r1, sb
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r5]
lsls r2, r2, #3
add r2, r8
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802B9D0 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldr r0, _0802B9D4 @ =0xFFFFFE00
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, r8
ldrb r2, [r1, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #5]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0xf
ble _0802B930
bl _0802C4D2
.align 2, 0
_0802B9B8: .4byte gMain
_0802B9BC: .4byte gUnknown_020314E0
_0802B9C0: .4byte 0x0000132C
_0802B9C4: .4byte gUnknown_086ACFF4
_0802B9C8: .4byte gOamBuffer
_0802B9CC: .4byte gUnknown_081B0FE4
_0802B9D0: .4byte 0x000001FF
_0802B9D4: .4byte 0xFFFFFE00
_0802B9D8:
movs r5, #0
lsls r0, r3, #0x10
ldr r3, _0802BA6C @ =gOamBuffer
mov sb, r3
ldr r4, _0802BA70 @ =gUnknown_081B0FE4
mov r8, r4
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
mov ip, r0
ldr r7, _0802BA74 @ =0xFFFFFE00
mov sl, r7
_0802B9F2:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r1, sb
adds r2, r0, r1
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
add r0, ip
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, ip
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, ip
add r1, r8
ldrh r0, [r1]
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 r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802BA78 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sl
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #0xf
ble _0802B9F2
bl _0802C4D2
.align 2, 0
_0802BA6C: .4byte gOamBuffer
_0802BA70: .4byte gUnknown_081B0FE4
_0802BA74: .4byte 0xFFFFFE00
_0802BA78: .4byte 0x000001FF
_0802BA7C:
ldr r3, _0802BB28 @ =gMain
ldrh r0, [r3, #0x3c]
movs r0, #4
strh r0, [r3, #0x3c]
ldr r2, _0802BB2C @ =0x040000D4
ldr r4, _0802BB30 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0802BB34 @ =0x000005F6
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
ldr r1, _0802BB38 @ =gUnknown_08137E14
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802BB3C @ =0x05000220
str r0, [r2, #4]
ldr r0, _0802BB40 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #0x44]
ldr r6, [r0, #0xc]
ldrh r0, [r6]
mov ip, r3
cmp r0, #0
beq _0802BAD6
movs r5, #0
ldr r3, _0802BB44 @ =gOamBuffer
movs r2, #0xbe
_0802BAB8:
lsls r0, r5, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #3
adds r1, #8
adds r5, r6, r1
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r3
strb r2, [r1]
adds r0, #1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x15
ble _0802BAB8
_0802BAD6:
mov r1, ip
ldr r0, [r1, #0x44]
ldr r1, [r0, #0xc]
movs r5, #0
movs r0, #0
strh r0, [r1]
ldr r1, _0802BB30 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0802BB48 @ =0x0000132C
adds r0, r0, r2
ldr r0, [r0]
strb r5, [r0]
ldr r4, [r1]
adds r2, r4, r2
ldr r1, [r2]
movs r0, #0xff
lsls r0, r0, #8
strh r0, [r1, #0x32]
ldr r1, [r2]
movs r0, #0x28
strh r0, [r1, #0x30]
ldr r1, [r2]
adds r0, #0xd8
strh r0, [r1, #6]
ldr r1, [r2]
movs r7, #0x32
ldrsh r3, [r1, r7]
ldr r0, [r1, #0x38]
adds r0, r0, r3
str r0, [r1, #0x38]
ldr r1, [r2]
movs r0, #0x30
ldrsh r2, [r1, r0]
ldr r0, [r1, #0x34]
adds r0, r0, r2
str r0, [r1, #0x34]
adds r4, #0xe4
strb r5, [r4]
bl _0802C4D2
.align 2, 0
_0802BB28: .4byte gMain
_0802BB2C: .4byte 0x040000D4
_0802BB30: .4byte gUnknown_020314E0
_0802BB34: .4byte 0x000005F6
_0802BB38: .4byte gUnknown_08137E14
_0802BB3C: .4byte 0x05000220
_0802BB40: .4byte 0x80000010
_0802BB44: .4byte gOamBuffer
_0802BB48: .4byte 0x0000132C
_0802BB4C:
ldr r1, _0802BB90 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0802BB94 @ =0x000005A6
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #7
bls _0802BB5C
b _0802BC92
_0802BB5C:
cmp r0, #3
bhi _0802BC04
cmp r0, #0
beq _0802BB66
b _0802BC92
_0802BB66:
ldr r2, _0802BB98 @ =0x040000D4
ldr r1, _0802BB9C @ =gUnknown_02031520
ldr r3, [r1, #0x30]
str r3, [r2]
ldr r0, _0802BBA0 @ =0x05000200
str r0, [r2, #4]
ldr r0, _0802BBA4 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _0802BBA8 @ =gMain
ldrb r0, [r0, #4]
adds r4, r1, #0
cmp r0, #1
bne _0802BBB4
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802BBAC @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802BBB0 @ =0x80000060
b _0802BBC0
.align 2, 0
_0802BB90: .4byte gUnknown_020314E0
_0802BB94: .4byte 0x000005A6
_0802BB98: .4byte 0x040000D4
_0802BB9C: .4byte gUnknown_02031520
_0802BBA0: .4byte 0x05000200
_0802BBA4: .4byte 0x80000010
_0802BBA8: .4byte gMain
_0802BBAC: .4byte 0x05000240
_0802BBB0: .4byte 0x80000060
_0802BBB4:
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802BBEC @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802BBF0 @ =0x80000070
_0802BBC0:
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, _0802BBF4 @ =0x040000D4
ldr r0, [r4, #0x30]
movs r3, #0xa0
lsls r3, r3, #1
adds r0, r0, r3
str r0, [r1]
ldr r0, _0802BBF8 @ =0x05000340
str r0, [r1, #4]
ldr r0, _0802BBFC @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r4, _0802BC00 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x6f
movs r1, #1
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x70
b _0802BC90
.align 2, 0
_0802BBEC: .4byte 0x05000240
_0802BBF0: .4byte 0x80000070
_0802BBF4: .4byte 0x040000D4
_0802BBF8: .4byte 0x05000340
_0802BBFC: .4byte 0x80000030
_0802BC00: .4byte gUnknown_020314E0
_0802BC04:
ldr r4, _0802BC3C @ =gMain
ldrh r0, [r4, #0x3c]
movs r0, #0
strh r0, [r4, #0x3c]
ldrh r0, [r1]
cmp r0, #4
bls _0802BC92
ldr r2, _0802BC40 @ =0x040000D4
ldr r1, _0802BC44 @ =gUnknown_02031520
ldr r3, [r1, #0x2c]
str r3, [r2]
ldr r0, _0802BC48 @ =0x05000200
str r0, [r2, #4]
ldr r0, _0802BC4C @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
ldrb r0, [r4, #4]
adds r4, r1, #0
cmp r0, #1
bne _0802BC58
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802BC50 @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802BC54 @ =0x80000060
b _0802BC64
.align 2, 0
_0802BC3C: .4byte gMain
_0802BC40: .4byte 0x040000D4
_0802BC44: .4byte gUnknown_02031520
_0802BC48: .4byte 0x05000200
_0802BC4C: .4byte 0x80000010
_0802BC50: .4byte 0x05000240
_0802BC54: .4byte 0x80000060
_0802BC58:
adds r0, r3, #0
adds r0, #0x40
str r0, [r2]
ldr r0, _0802BDA0 @ =0x05000240
str r0, [r2, #4]
ldr r0, _0802BDA4 @ =0x80000070
_0802BC64:
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, _0802BDA8 @ =0x040000D4
ldr r0, [r4, #0x2c]
movs r7, #0xa0
lsls r7, r7, #1
adds r0, r0, r7
str r0, [r1]
ldr r0, _0802BDAC @ =0x05000340
str r0, [r1, #4]
ldr r0, _0802BDB0 @ =0x80000030
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0802BDB4 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x6f
movs r1, #0
strb r1, [r0]
ldr r2, _0802BDB4 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x70
movs r1, #1
_0802BC90:
strb r1, [r0]
_0802BC92:
ldr r3, _0802BDB4 @ =gUnknown_020314E0
ldr r5, [r3]
movs r0, #0x13
ldrsb r0, [r5, r0]
cmp r0, #5
beq _0802BCA4
cmp r0, #8
beq _0802BCA4
b _0802BDC4
_0802BCA4:
ldr r7, _0802BDB8 @ =0x0000132C
adds r5, r5, r7
ldr r1, [r5]
ldrh r0, [r1, #0x32]
adds r0, #0x10
strh r0, [r1, #0x32]
ldr r1, [r5]
movs r4, #0x32
ldrsh r2, [r1, r4]
ldr r0, [r1, #0x38]
adds r0, r0, r2
str r0, [r1, #0x38]
ldr r6, [r5]
ldr r4, [r6, #0x34]
movs r0, #0xec
lsls r0, r0, #7
subs r0, r0, r4
movs r1, #0x1e
bl __divsi3
adds r4, r4, r0
str r4, [r6, #0x34]
ldr r3, [r5]
ldr r1, [r3, #0x38]
ldr r0, _0802BDBC @ =0x000139FF
cmp r1, r0
ble _0802BD70
movs r1, #0x32
ldrsh r0, [r3, r1]
cmp r0, #0x31
ble _0802BCE8
movs r0, #0x9d
bl m4aSongNumStart
_0802BCE8:
ldr r2, _0802BDB4 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, r0, r7
ldr r0, [r0]
movs r3, #0x32
ldrsh r1, [r0, r3]
movs r0, #0x32
rsbs r0, r0, #0
cmp r1, r0
bgt _0802BD02
movs r0, #0x9d
bl m4aSongNumStart
_0802BD02:
ldr r0, _0802BDB4 @ =gUnknown_020314E0
ldr r4, [r0]
adds r4, r4, r7
ldr r1, [r4]
movs r0, #0x9d
lsls r0, r0, #9
str r0, [r1, #0x38]
ldr r5, [r4]
movs r2, #0x32
ldrsh r1, [r5, r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r1, r0, #4
subs r0, r0, r1
movs r1, #0x64
bl __divsi3
strh r0, [r5, #0x32]
ldr r5, [r4]
movs r3, #6
ldrsh r1, [r5, r3]
lsls r0, r1, #3
subs r0, r0, r1
movs r1, #0xa
bl __divsi3
strh r0, [r5, #6]
ldr r4, [r4]
ldrh r1, [r4, #6]
movs r2, #6
ldrsh r0, [r4, r2]
cmp r0, #0
ble _0802BD48
rsbs r0, r1, #0
strh r0, [r4, #6]
_0802BD48:
ldr r3, _0802BDB4 @ =gUnknown_020314E0
ldr r4, [r3]
adds r4, r4, r7
ldr r5, [r4]
movs r7, #0x30
ldrsh r1, [r5, r7]
lsls r0, r1, #3
subs r0, r0, r1
movs r1, #0xa
bl __divsi3
strh r0, [r5, #0x30]
ldr r4, [r4]
ldrh r1, [r4, #0x30]
movs r2, #0x30
ldrsh r0, [r4, r2]
cmp r0, #0
ble _0802BD70
rsbs r0, r1, #0
strh r0, [r4, #0x30]
_0802BD70:
ldr r3, _0802BDB4 @ =gUnknown_020314E0
ldr r2, [r3]
ldr r4, _0802BDB8 @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
ldrh r1, [r0, #0x32]
movs r7, #0x32
ldrsh r0, [r0, r7]
cmp r0, #0
bge _0802BD8A
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_0802BD8A:
lsls r1, r1, #0x10
movs r0, #0x80
lsls r0, r0, #0x11
cmp r1, r0
ble _0802BE78
ldr r0, _0802BDC0 @ =0x000005A6
adds r1, r2, r0
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
b _0802BE78
.align 2, 0
_0802BDA0: .4byte 0x05000240
_0802BDA4: .4byte 0x80000070
_0802BDA8: .4byte 0x040000D4
_0802BDAC: .4byte 0x05000340
_0802BDB0: .4byte 0x80000030
_0802BDB4: .4byte gUnknown_020314E0
_0802BDB8: .4byte 0x0000132C
_0802BDBC: .4byte 0x000139FF
_0802BDC0: .4byte 0x000005A6
_0802BDC4:
ldr r6, _0802BE88 @ =0x0000132C
adds r3, r5, r6
ldr r1, [r3]
ldrh r0, [r1, #0x32]
adds r0, #0x10
strh r0, [r1, #0x32]
ldr r1, [r3]
movs r4, #0x32
ldrsh r2, [r1, r4]
ldr r0, [r1, #0x38]
adds r0, r0, r2
str r0, [r1, #0x38]
ldr r1, [r3]
movs r7, #0x30
ldrsh r2, [r1, r7]
ldr r0, [r1, #0x34]
adds r0, r0, r2
str r0, [r1, #0x34]
ldr r1, [r3]
ldr r2, _0802BE8C @ =0x0000028A
adds r0, r5, r2
movs r3, #0
ldrsh r0, [r0, r3]
adds r0, #0x32
lsls r0, r0, #8
ldr r1, [r1, #0x38]
cmp r1, r0
blt _0802BE78
movs r0, #0x9d
bl m4aSongNumStart
ldr r4, _0802BE90 @ =gUnknown_020314E0
ldr r0, [r4]
adds r5, r0, r6
ldr r1, [r5]
ldr r7, _0802BE8C @ =0x0000028A
adds r0, r0, r7
movs r2, #0
ldrsh r0, [r0, r2]
adds r0, #0x32
lsls r0, r0, #8
str r0, [r1, #0x38]
ldr r4, [r5]
movs r3, #0x32
ldrsh r1, [r4, r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r1, r0, #4
subs r0, r0, r1
movs r1, #0x64
bl __divsi3
strh r0, [r4, #0x32]
ldr r4, [r5]
movs r7, #6
ldrsh r1, [r4, r7]
lsls r0, r1, #3
subs r0, r0, r1
movs r1, #0xa
bl __divsi3
strh r0, [r4, #6]
ldr r5, [r5]
ldrh r1, [r5, #6]
movs r2, #6
ldrsh r0, [r5, r2]
cmp r0, #0
ble _0802BE50
rsbs r0, r1, #0
strh r0, [r5, #6]
_0802BE50:
ldr r3, _0802BE90 @ =gUnknown_020314E0
ldr r4, [r3]
adds r4, r4, r6
ldr r5, [r4]
movs r7, #0x30
ldrsh r1, [r5, r7]
lsls r0, r1, #3
subs r0, r0, r1
movs r1, #0xa
bl __divsi3
strh r0, [r5, #0x30]
ldr r1, [r4]
ldrh r2, [r1, #0x30]
movs r3, #0x30
ldrsh r0, [r1, r3]
cmp r0, #0
ble _0802BE78
rsbs r0, r2, #0
strh r0, [r1, #0x30]
_0802BE78:
ldr r0, _0802BE90 @ =gUnknown_020314E0
ldr r0, [r0]
movs r4, #0xb6
lsls r4, r4, #3
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
b _0802C4D2
.align 2, 0
_0802BE88: .4byte 0x0000132C
_0802BE8C: .4byte 0x0000028A
_0802BE90: .4byte gUnknown_020314E0
_0802BE94:
ldr r0, _0802BEAC @ =gUnknown_020314E0
ldr r1, [r0]
ldr r7, _0802BEB0 @ =0x0000132C
adds r1, r1, r7
ldr r0, [r1]
movs r2, #0
strh r2, [r0, #0x30]
ldr r0, [r1]
strh r2, [r0, #0x32]
ldr r0, [r1]
strh r2, [r0, #6]
b _0802C4D2
.align 2, 0
_0802BEAC: .4byte gUnknown_020314E0
_0802BEB0: .4byte 0x0000132C
_0802BEB4:
ldr r6, _0802BF00 @ =gUnknown_020314E0
ldr r2, [r6]
ldr r1, _0802BF04 @ =0x000005A6
adds r0, r2, r1
ldrh r1, [r0]
movs r0, #0xed
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r4, r0, #0x10
cmp r4, #0xbf
ble _0802BECE
b _0802C036
_0802BECE:
cmp r4, #0xb7
ble _0802BF10
cmp r4, #0xb9
bne _0802BEDC
movs r0, #6
bl sub_11B0
_0802BEDC:
cmp r4, #0xb8
bne _0802BEE6
movs r0, #0x9e
bl m4aSongNumStart
_0802BEE6:
ldr r1, [r6]
ldr r2, _0802BF08 @ =0x0000132C
adds r1, r1, r2
ldr r2, [r1]
ldr r0, [r2, #0x34]
subs r0, #0x60
str r0, [r2, #0x34]
ldr r1, [r1]
ldr r3, _0802BF0C @ =0xFFFFFC00
adds r0, r3, #0
ldrh r4, [r1, #0xa]
adds r0, r0, r4
b _0802C034
.align 2, 0
_0802BF00: .4byte gUnknown_020314E0
_0802BF04: .4byte 0x000005A6
_0802BF08: .4byte 0x0000132C
_0802BF0C: .4byte 0xFFFFFC00
_0802BF10:
cmp r4, #0xaf
ble _0802BF20
ldr r7, _0802BF1C @ =0x0000132C
adds r2, r2, r7
b _0802C020
.align 2, 0
_0802BF1C: .4byte 0x0000132C
_0802BF20:
cmp r4, #0xa7
ble _0802BF5C
cmp r4, #0xa9
bne _0802BF2E
movs r0, #6
bl sub_11B0
_0802BF2E:
cmp r4, #0xa8
bne _0802BF38
movs r0, #0x9e
bl m4aSongNumStart
_0802BF38:
ldr r1, [r6]
ldr r4, _0802BF54 @ =0x0000132C
adds r1, r1, r4
ldr r2, [r1]
ldr r0, [r2, #0x34]
subs r0, #0x60
str r0, [r2, #0x34]
ldr r1, [r1]
ldr r7, _0802BF58 @ =0xFFFFFC00
adds r0, r7, #0
ldrh r2, [r1, #0xa]
adds r0, r0, r2
b _0802C034
.align 2, 0
_0802BF54: .4byte 0x0000132C
_0802BF58: .4byte 0xFFFFFC00
_0802BF5C:
cmp r4, #0x9f
ble _0802BF80
ldr r3, _0802BF7C @ =0x0000132C
adds r2, r2, r3
ldr r1, [r2]
ldr r0, [r1, #0x34]
adds r0, #0x60
str r0, [r1, #0x34]
ldr r1, [r2]
movs r4, #0x80
lsls r4, r4, #3
adds r0, r4, #0
ldrh r7, [r1, #0xa]
adds r0, r0, r7
b _0802C034
.align 2, 0
_0802BF7C: .4byte 0x0000132C
_0802BF80:
cmp r4, #0x7b
bgt _0802C036
cmp r4, #0x73
ble _0802BFB8
cmp r4, #0x75
bne _0802BF92
movs r0, #6
bl sub_11B0
_0802BF92:
cmp r4, #0x74
bne _0802BF9C
movs r0, #0x9e
bl m4aSongNumStart
_0802BF9C:
ldr r1, [r6]
ldr r0, _0802BFB0 @ =0x0000132C
adds r1, r1, r0
ldr r2, [r1]
ldr r0, [r2, #0x34]
subs r0, #0x60
str r0, [r2, #0x34]
ldr r1, [r1]
ldr r2, _0802BFB4 @ =0xFFFFFC00
b _0802C02E
.align 2, 0
_0802BFB0: .4byte 0x0000132C
_0802BFB4: .4byte 0xFFFFFC00
_0802BFB8:
cmp r4, #0x6b
ble _0802BFDC
ldr r4, _0802BFD8 @ =0x0000132C
adds r2, r2, r4
ldr r1, [r2]
ldr r0, [r1, #0x34]
adds r0, #0x60
str r0, [r1, #0x34]
ldr r1, [r2]
movs r7, #0x80
lsls r7, r7, #3
adds r0, r7, #0
ldrh r2, [r1, #0xa]
adds r0, r0, r2
b _0802C034
.align 2, 0
_0802BFD8: .4byte 0x0000132C
_0802BFDC:
cmp r4, #0x63
ble _0802C018
cmp r4, #0x65
bne _0802BFEA
movs r0, #6
bl sub_11B0
_0802BFEA:
cmp r4, #0x64
bne _0802BFF4
movs r0, #0x9e
bl m4aSongNumStart
_0802BFF4:
ldr r1, [r6]
ldr r3, _0802C010 @ =0x0000132C
adds r1, r1, r3
ldr r2, [r1]
ldr r0, [r2, #0x34]
subs r0, #0x60
str r0, [r2, #0x34]
ldr r1, [r1]
ldr r4, _0802C014 @ =0xFFFFFC00
adds r0, r4, #0
ldrh r7, [r1, #0xa]
adds r0, r0, r7
b _0802C034
.align 2, 0
_0802C010: .4byte 0x0000132C
_0802C014: .4byte 0xFFFFFC00
_0802C018:
cmp r4, #0x5b
ble _0802C036
ldr r0, _0802C048 @ =0x0000132C
adds r2, r2, r0
_0802C020:
ldr r1, [r2]
ldr r0, [r1, #0x34]
adds r0, #0x60
str r0, [r1, #0x34]
ldr r1, [r2]
movs r2, #0x80
lsls r2, r2, #3
_0802C02E:
adds r0, r2, #0
ldrh r3, [r1, #0xa]
adds r0, r0, r3
_0802C034:
strh r0, [r1, #0xa]
_0802C036:
cmp r5, #0
beq _0802C03C
b _0802C4D2
_0802C03C:
movs r0, #0x11
bl m4aSongNumStart
bl sub_2312C
b _0802C4D2
.align 2, 0
_0802C048: .4byte 0x0000132C
_0802C04C:
ldr r4, _0802C208 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r7, _0802C20C @ =0x0000132C
adds r0, r0, r7
ldr r1, [r0]
movs r0, #3
strb r0, [r1, #1]
bl sub_23300
ldr r4, [r4]
ldr r1, _0802C210 @ =0x000005A6
adds r0, r4, r1
ldrh r0, [r0]
cmp r0, #0xe5
bhi _0802C07A
movs r2, #0x84
lsls r2, r2, #2
adds r4, r4, r2
ldrh r0, [r4]
cmp r0, #0x96
bne _0802C07A
subs r0, #1
strh r0, [r4]
_0802C07A:
ldr r4, _0802C208 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r3, _0802C210 @ =0x000005A6
adds r0, r0, r3
ldrh r1, [r0]
movs r0, #0x87
lsls r0, r0, #1
cmp r1, r0
bne _0802C0A6
ldr r0, _0802C214 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bhi _0802C0A6
movs r0, #0
movs r1, #0
bl sub_1C7F4
ldr r0, [r4]
ldr r4, _0802C218 @ =0x000006C4
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
_0802C0A6:
ldr r1, _0802C208 @ =gUnknown_020314E0
ldr r3, [r1]
ldr r7, _0802C210 @ =0x000005A6
adds r4, r3, r7
ldrh r0, [r4]
cmp r0, #0x1d
bhi _0802C11C
ldr r1, _0802C214 @ =gMain
movs r0, #1
strh r0, [r1, #0x2c]
ldrh r5, [r4]
movs r1, #0xa6
lsls r1, r1, #2
adds r0, r3, r1
strh r5, [r0]
movs r1, #0
lsls r0, r5, #0x10
asrs r0, r0, #0x10
ldr r2, _0802C21C @ =gUnknown_03005C00
mov r8, r2
cmp r1, r0
bgt _0802C10C
mov r7, r8
adds r4, r0, #0
movs r6, #0xc1
lsls r6, r6, #8
_0802C0DA:
movs r5, #1
lsls r2, r1, #0x10
asrs r3, r2, #0x10
_0802C0E0:
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, r7
strh r6, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa
ble _0802C0E0
movs r3, #0x80
lsls r3, r3, #9
adds r0, r2, r3
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r4
ble _0802C0DA
_0802C10C:
ldr r1, _0802C220 @ =0x040000D4
mov r4, r8
str r4, [r1]
ldr r0, _0802C224 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0802C228 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
_0802C11C:
ldr r7, _0802C208 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0802C210 @ =0x000005A6
adds r0, r0, r1
ldrh r0, [r0]
subs r0, #0xf0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1d
bhi _0802C1AE
movs r1, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r2, _0802C21C @ =gUnknown_03005C00
mov r8, r2
cmp r1, r0
bgt _0802C176
mov r6, r8
ldr r4, _0802C22C @ =0x000001FF
adds r7, r0, #0
_0802C144:
movs r5, #1
lsls r2, r1, #0x10
asrs r3, r2, #0x10
_0802C14A:
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 _0802C14A
movs r3, #0x80
lsls r3, r3, #9
adds r0, r2, r3
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r7
ble _0802C144
_0802C176:
ldr r1, _0802C220 @ =0x040000D4
mov r4, r8
str r4, [r1]
ldr r0, _0802C224 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0802C228 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r7, _0802C208 @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0802C210 @ =0x000005A6
adds r0, r0, r1
ldrh r1, [r0]
ldr r0, _0802C230 @ =0x0000010D
cmp r1, r0
bne _0802C1AE
ldr r1, _0802C214 @ =gMain
movs r2, #0
strh r2, [r1, #0x2c]
ldrb r0, [r1, #4]
cmp r0, #1
bhi _0802C1AE
ldrh r0, [r1, #0x38]
strh r2, [r1, #0x38]
ldrh r0, [r1, #0x3c]
strh r2, [r1, #0x3c]
ldrh r0, [r1, #0x3a]
strh r2, [r1, #0x3a]
_0802C1AE:
ldr r2, _0802C208 @ =gUnknown_020314E0
ldr r1, [r2]
ldrb r0, [r1, #0x1c]
cmp r0, #0
beq _0802C1C0
ldr r3, _0802C210 @ =0x000005A6
adds r1, r1, r3
movs r0, #0xb5
strh r0, [r1]
_0802C1C0:
ldr r4, _0802C208 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r7, _0802C210 @ =0x000005A6
adds r0, r1, r7
ldrh r0, [r0]
cmp r0, #0xb4
beq _0802C1D0
b _0802C4D2
_0802C1D0:
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
beq _0802C1DC
cmp r0, #8
bne _0802C28C
_0802C1DC:
movs r0, #1
strb r0, [r1, #0x1c]
ldr r0, _0802C208 @ =gUnknown_020314E0
ldr r1, [r0]
movs r2, #0xb3
lsls r2, r2, #3
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0x8d
beq _0802C268
cmp r0, #0x8d
bgt _0802C23E
cmp r0, #0x84
beq _0802C268
cmp r0, #0x84
bgt _0802C234
cmp r0, #0x3b
beq _0802C268
cmp r0, #0x72
beq _0802C268
b _0802C284
.align 2, 0
_0802C208: .4byte gUnknown_020314E0
_0802C20C: .4byte 0x0000132C
_0802C210: .4byte 0x000005A6
_0802C214: .4byte gMain
_0802C218: .4byte 0x000006C4
_0802C21C: .4byte gUnknown_03005C00
_0802C220: .4byte 0x040000D4
_0802C224: .4byte 0x06002000
_0802C228: .4byte 0x80000400
_0802C22C: .4byte 0x000001FF
_0802C230: .4byte 0x0000010D
_0802C234:
cmp r0, #0x86
beq _0802C268
cmp r0, #0x8b
beq _0802C268
b _0802C284
_0802C23E:
cmp r0, #0xa0
beq _0802C268
cmp r0, #0xa0
bgt _0802C250
cmp r0, #0x90
beq _0802C268
cmp r0, #0x97
beq _0802C268
b _0802C284
_0802C250:
cmp r0, #0xc4
bgt _0802C284
cmp r0, #0xc3
blt _0802C284
ldr r0, _0802C260 @ =0x000222E0
str r0, [r1, #0x38]
ldr r0, _0802C264 @ =0x00989680
b _0802C28A
.align 2, 0
_0802C260: .4byte 0x000222E0
_0802C264: .4byte 0x00989680
_0802C268:
ldr r3, _0802C278 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r1, _0802C27C @ =0x00013880
str r1, [r0, #0x38]
ldr r1, _0802C280 @ =0x004C4B40
str r1, [r0, #0x3c]
b _0802C28C
.align 2, 0
_0802C278: .4byte gUnknown_020314E0
_0802C27C: .4byte 0x00013880
_0802C280: .4byte 0x004C4B40
_0802C284:
ldr r4, _0802C2B4 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r0, _0802C2B8 @ =0x000F4240
_0802C28A:
str r0, [r1, #0x3c]
_0802C28C:
ldr r7, _0802C2B4 @ =gUnknown_020314E0
ldr r1, [r7]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #5
bne _0802C2C8
movs r0, #1
strb r0, [r1, #0x1c]
ldr r1, [r7]
movs r2, #0xb3
lsls r2, r2, #3
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0x9a
bne _0802C2C4
ldr r0, _0802C2BC @ =0x000222E0
str r0, [r1, #0x38]
ldr r0, _0802C2C0 @ =0x00989680
b _0802C2C6
.align 2, 0
_0802C2B4: .4byte gUnknown_020314E0
_0802C2B8: .4byte 0x000F4240
_0802C2BC: .4byte 0x000222E0
_0802C2C0: .4byte 0x00989680
_0802C2C4:
ldr r0, _0802C2EC @ =0x002DC6C0
_0802C2C6:
str r0, [r1, #0x3c]
_0802C2C8:
ldr r3, _0802C2F0 @ =gMain
ldrb r0, [r3, #4]
cmp r0, #2
bhi _0802C2D2
b _0802C4D2
_0802C2D2:
ldr r2, _0802C2F4 @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #1
strb r1, [r0, #0x1c]
ldrb r0, [r3, #4]
cmp r0, #6
bne _0802C300
ldr r0, [r2]
ldr r1, _0802C2F8 @ =0x00061A80
str r1, [r0, #0x38]
ldr r1, _0802C2FC @ =0x01C9C380
str r1, [r0, #0x3c]
b _0802C4D2
.align 2, 0
_0802C2EC: .4byte 0x002DC6C0
_0802C2F0: .4byte gMain
_0802C2F4: .4byte gUnknown_020314E0
_0802C2F8: .4byte 0x00061A80
_0802C2FC: .4byte 0x01C9C380
_0802C300:
ldr r0, [r2]
ldr r1, _0802C30C @ =0x00061A80
str r1, [r0, #0x38]
ldr r1, _0802C310 @ =0x00989680
str r1, [r0, #0x3c]
b _0802C4D2
.align 2, 0
_0802C30C: .4byte 0x00061A80
_0802C310: .4byte 0x00989680
_0802C314:
ldr r3, _0802C38C @ =gUnknown_020314E0
ldr r0, [r3]
ldr r4, _0802C390 @ =0x000005F7
adds r0, r0, r4
movs r3, #0
strb r3, [r0]
ldr r7, _0802C38C @ =gUnknown_020314E0
ldr r0, [r7]
ldr r1, _0802C394 @ =0x0000132C
adds r0, r0, r1
ldr r0, [r0]
movs r4, #3
strb r4, [r0, #1]
ldr r0, [r7]
ldr r2, _0802C398 @ =0x000005A4
adds r0, r0, r2
strb r3, [r0]
ldr r0, [r7]
ldr r7, _0802C39C @ =0x000005A6
adds r1, r0, r7
movs r2, #0
strh r3, [r1]
movs r1, #0xb5
lsls r1, r1, #3
adds r0, r0, r1
strb r2, [r0]
ldr r0, _0802C3A0 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bls _0802C352
b _0802C48C
_0802C352:
ldr r3, _0802C38C @ =gUnknown_020314E0
ldr r0, [r3]
strb r2, [r0, #0x1f]
ldr r0, [r3]
ldr r4, _0802C394 @ =0x0000132C
adds r0, r0, r4
ldr r2, [r0]
ldr r1, _0802C3A4 @ =0x0000FFF6
strh r1, [r2, #0x32]
ldr r1, [r0]
movs r0, #0x14
strh r0, [r1, #0x30]
movs r5, #0
ldr r3, _0802C3A8 @ =0x0000071D
_0802C36E:
ldr r7, _0802C38C @ =gUnknown_020314E0
ldr r2, [r7]
ldr r1, _0802C3AC @ =0x00000723
adds r0, r2, r1
lsls r1, r5, #0x10
asrs r1, r1, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
bge _0802C3B0
adds r0, r2, r3
adds r0, r0, r1
movs r1, #1
b _0802C3B6
.align 2, 0
_0802C38C: .4byte gUnknown_020314E0
_0802C390: .4byte 0x000005F7
_0802C394: .4byte 0x0000132C
_0802C398: .4byte 0x000005A4
_0802C39C: .4byte 0x000005A6
_0802C3A0: .4byte gMain
_0802C3A4: .4byte 0x0000FFF6
_0802C3A8: .4byte 0x0000071D
_0802C3AC: .4byte 0x00000723
_0802C3B0:
adds r0, r2, r3
adds r0, r0, r1
movs r1, #0
_0802C3B6:
strb r1, [r0]
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, #2
ble _0802C36E
ldr r4, _0802C474 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r3, _0802C478 @ =0x00000723
adds r0, r1, r3
ldrb r3, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _0802C41A
ldr r2, _0802C47C @ =0x00000721
adds r0, r1, r2
strb r3, [r0]
ldr r0, [r4]
ldr r7, _0802C478 @ =0x00000723
adds r1, r0, r7
ldrb r1, [r1]
ldr r3, _0802C480 @ =0x00000722
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r4]
adds r2, r0, r2
movs r1, #0
ldrsb r1, [r2, r1]
subs r7, #6
adds r0, r0, r7
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
ldr r0, [r4]
movs r1, #0xe4
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #0x78
strb r1, [r0]
ldr r1, [r4]
ldr r2, _0802C478 @ =0x00000723
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0802C41A:
ldr r2, [r4]
movs r3, #0xbe
lsls r3, r3, #3
adds r1, r2, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xf
bne _0802C438
ldr r7, _0802C484 @ =0x00000286
adds r1, r2, r7
movs r0, #0x5a
strh r0, [r1]
_0802C438:
ldr r0, [r4]
ldr r2, _0802C488 @ =0x0000062A
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0x62
bhi _0802C448
adds r0, #1
strb r0, [r1]
_0802C448:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
bne _0802C456
movs r0, #0xa
strb r0, [r1, #0x17]
_0802C456:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #8
bne _0802C464
movs r0, #5
strb r0, [r1, #0x17]
_0802C464:
ldr r1, [r4]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #5
bne _0802C4CC
movs r0, #6
strb r0, [r1, #0x17]
b _0802C4CC
.align 2, 0
_0802C474: .4byte gUnknown_020314E0
_0802C478: .4byte 0x00000723
_0802C47C: .4byte 0x00000721
_0802C480: .4byte 0x00000722
_0802C484: .4byte 0x00000286
_0802C488: .4byte 0x0000062A
_0802C48C:
ldr r7, _0802C528 @ =gUnknown_020314E0
ldr r1, [r7]
movs r0, #1
strb r0, [r1, #0x1f]
ldr r1, [r7]
ldr r0, _0802C52C @ =0x0000132C
adds r2, r1, r0
ldr r0, [r2]
strh r3, [r0, #0x32]
ldr r0, [r2]
strh r3, [r0, #0x30]
ldr r2, _0802C530 @ =0x000006C4
adds r1, r1, r2
strb r4, [r1]
ldr r1, [r7]
movs r0, #4
strb r0, [r1, #0x13]
ldr r2, [r7]
movs r3, #0xbe
lsls r3, r3, #3
adds r1, r2, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xf
bne _0802C4CC
ldr r4, _0802C534 @ =0x00000286
adds r1, r2, r4
movs r0, #0x5b
strh r0, [r1]
_0802C4CC:
movs r0, #0
bl sub_31CF8
_0802C4D2:
ldr r4, _0802C528 @ =gUnknown_020314E0
ldr r1, [r4]
ldr r3, _0802C52C @ =0x0000132C
adds r1, r1, r3
ldr r2, [r1]
ldrh r0, [r2, #0x10]
strh r0, [r2, #0x14]
ldr r1, [r1]
ldrh r0, [r1, #0x12]
strh r0, [r1, #0x16]
movs r5, #2
adds r7, r4, #0
adds r6, r3, #0
_0802C4EC:
ldr r3, [r7]
adds r3, r3, r6
ldr r0, [r3]
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r2, r1, #1
lsls r2, r2, #2
adds r4, r0, r2
lsls r5, r1, #2
adds r0, r0, r5
ldrh r0, [r0, #0x14]
strh r0, [r4, #0x14]
ldr r0, [r3]
adds r2, r0, r2
adds r0, r0, r5
ldrh r0, [r0, #0x16]
strh r0, [r2, #0x16]
subs r1, #1
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
cmp r1, #0
bge _0802C4EC
thumb_func_start sub_2C518
sub_2C518: @ 0x0802C518
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
_0802C528: .4byte gUnknown_020314E0
_0802C52C: .4byte 0x0000132C
_0802C530: .4byte 0x000006C4
_0802C534: .4byte 0x00000286
thumb_func_start sub_2C538
sub_2C538: @ 0x0802C538
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r0, #0
mov sb, r0
ldr r1, _0802C568 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xc0
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r7, r1, #0
cmp r0, #5
bls _0802C55C
b _0802C784
_0802C55C:
lsls r0, r0, #2
ldr r1, _0802C56C @ =_0802C570
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802C568: .4byte gUnknown_020314E0
_0802C56C: .4byte _0802C570
_0802C570: @ jump table
.4byte _0802C588 @ case 0
.4byte _0802C5BC @ case 1
.4byte _0802C614 @ case 2
.4byte _0802C650 @ case 3
.4byte _0802C6C0 @ case 4
.4byte _0802C708 @ case 5
_0802C588:
ldr r5, [r7]
movs r3, #0xc1
lsls r3, r3, #2
adds r6, r5, r3
ldrh r4, [r6]
adds r0, r4, #0
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x12
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
adds r4, #1
movs r0, #0
strh r4, [r6]
ldr r1, _0802C5B8 @ =0x00000301
adds r5, r5, r1
strb r0, [r5]
b _0802C784
.align 2, 0
_0802C5B8: .4byte 0x00000301
_0802C5BC:
ldr r6, [r7]
movs r2, #0xc1
lsls r2, r2, #2
adds r5, r6, r2
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x12
bl __udivsi3
adds r0, #2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
adds r4, #1
strh r4, [r5]
ldr r2, _0802C610 @ =0x00000301
adds r0, r6, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0802C608
movs r3, #0xc0
lsls r3, r3, #2
adds r1, r6, r3
movs r0, #2
strb r0, [r1]
ldr r0, [r7]
movs r1, #0xc1
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
_0802C608:
ldr r0, [r7]
adds r0, r0, r2
b _0802C780
.align 2, 0
_0802C610: .4byte 0x00000301
_0802C614:
ldr r6, [r7]
movs r2, #0xc1
lsls r2, r2, #2
adds r5, r6, r2
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #9
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #3
bl __udivsi3
adds r0, #4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
adds r4, #1
strh r4, [r5]
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
cmp r4, #9
beq _0802C646
b _0802C784
_0802C646:
movs r3, #0xc0
lsls r3, r3, #2
adds r1, r6, r3
movs r0, #3
b _0802C6F8
_0802C650:
ldr r6, [r7]
movs r2, #0xc1
lsls r2, r2, #2
mov r8, r2
adds r5, r6, r2
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x12
bl __udivsi3
adds r0, #2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
adds r4, #1
movs r2, #0
strh r4, [r5]
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
cmp r4, #0x41
bls _0802C698
movs r3, #0xc0
lsls r3, r3, #2
adds r1, r6, r3
movs r0, #1
strb r0, [r1]
ldr r0, [r7]
movs r1, #0xc1
lsls r1, r1, #2
adds r0, r0, r1
strh r2, [r0]
_0802C698:
ldr r1, [r7]
mov r3, r8
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #6
bls _0802C784
ldr r3, _0802C6BC @ =0x00000301
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0802C784
movs r0, #0xc0
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #4
b _0802C772
.align 2, 0
_0802C6BC: .4byte 0x00000301
_0802C6C0:
ldr r6, [r7]
movs r2, #0xc1
lsls r2, r2, #2
adds r5, r6, r2
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #9
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #3
bl __udivsi3
adds r0, #7
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
adds r4, #1
strh r4, [r5]
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
cmp r4, #9
bne _0802C784
movs r3, #0xc0
lsls r3, r3, #2
adds r1, r6, r3
movs r0, #5
_0802C6F8:
strb r0, [r1]
ldr r0, [r7]
movs r1, #0xc1
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
b _0802C784
_0802C708:
ldr r6, [r7]
movs r2, #0xc1
lsls r2, r2, #2
mov r8, r2
adds r5, r6, r2
ldrh r4, [r5]
adds r0, r4, #0
movs r1, #0x24
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x12
bl __udivsi3
adds r0, #2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
adds r4, #1
movs r2, #0
strh r4, [r5]
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
cmp r4, #0x41
bls _0802C750
movs r3, #0xc0
lsls r3, r3, #2
adds r1, r6, r3
movs r0, #1
strb r0, [r1]
ldr r0, [r7]
movs r1, #0xc1
lsls r1, r1, #2
adds r0, r0, r1
strh r2, [r0]
_0802C750:
ldr r1, [r7]
mov r3, r8
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #6
bls _0802C784
ldr r3, _0802C7B8 @ =0x00000301
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0802C784
movs r0, #0xc0
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #2
_0802C772:
strb r0, [r1]
ldr r0, [r7]
mov r3, r8
adds r1, r0, r3
strh r2, [r1]
ldr r1, _0802C7B8 @ =0x00000301
adds r0, r0, r1
_0802C780:
movs r1, #0
strb r1, [r0]
_0802C784:
ldr r6, _0802C7BC @ =gUnknown_0200E498
ldrh r0, [r6]
cmp r0, #0
beq _0802C83C
ldr r1, [r7]
movs r2, #0xc0
lsls r2, r2, #2
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
bgt _0802C7C4
adds r0, r1, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xbc
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r7]
adds r0, #0x5a
ldrh r1, [r0]
ldr r3, _0802C7C0 @ =0x00000119
adds r0, r3, #0
b _0802C7DC
.align 2, 0
_0802C7B8: .4byte 0x00000301
_0802C7BC: .4byte gUnknown_0200E498
_0802C7C0: .4byte 0x00000119
_0802C7C4:
adds r0, r1, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xc0
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r7]
adds r0, #0x5a
ldrh r1, [r0]
movs r2, #0x8b
lsls r2, r2, #1
adds r0, r2, #0
_0802C7DC:
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r7]
ldr r3, _0802C95C @ =0x00000302
adds r1, r0, r3
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0802C808
subs r0, r2, #1
strb r0, [r1]
ldr r0, [r7]
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _0802C808
ldr r0, _0802C960 @ =gMain
ldr r2, _0802C964 @ =0x000033D8
adds r0, r0, r2
strh r1, [r0]
_0802C808:
adds r5, r6, #0
adds r5, #8
ldr r4, _0802C968 @ =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, _0802C96C @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0802C970 @ =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]
_0802C83C:
ldr r2, [r7]
movs r1, #0xc0
lsls r1, r1, #2
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
beq _0802C852
cmp r0, #2
bne _0802C8C0
_0802C852:
ldr r4, _0802C974 @ =0x0000132C
adds r0, r2, r4
ldr r0, [r0]
movs r3, #0x10
ldrsh r1, [r0, r3]
subs r1, #0xbe
movs r3, #0x12
ldrsh r0, [r0, r3]
ldr r3, _0802C978 @ =0xFFFFFEE3
adds r0, r0, r3
adds r3, r1, #0
muls r3, r1, r3
adds r1, r3, #0
adds r3, r0, #0
muls r3, r0, r3
adds r0, r3, #0
adds r1, r1, r0
cmp r1, #0x8c
bhi _0802C8C0
ldr r1, _0802C95C @ =0x00000302
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _0802C8C0
movs r0, #0xc5
bl m4aSongNumStart
ldr r1, [r7]
ldr r0, _0802C97C @ =0x00002710
str r0, [r1, #0x3c]
adds r1, r1, r4
ldr r2, [r1]
movs r3, #0
ldr r0, _0802C980 @ =0x0000FDA8
strh r0, [r2, #0x30]
ldr r2, [r1]
ldr r0, _0802C984 @ =0x0000FED4
strh r0, [r2, #0x32]
ldr r0, [r1]
strh r3, [r0, #6]
ldr r0, _0802C960 @ =gMain
ldr r2, _0802C964 @ =0x000033D8
adds r0, r0, r2
movs r1, #1
strh r1, [r0]
ldr r0, [r7]
ldr r3, _0802C95C @ =0x00000302
adds r0, r0, r3
movs r1, #6
strb r1, [r0]
movs r0, #8
bl sub_11B0
_0802C8C0:
ldr r6, _0802C988 @ =gUnknown_0200DD68
ldrh r0, [r6]
cmp r0, #0
beq _0802C94E
ldr r2, _0802C98C @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xb8
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r2]
adds r0, #0x5a
ldrh r1, [r0]
ldr r2, _0802C990 @ =0x00000115
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
ldr r2, _0802C994 @ =0x040000D4
mov r3, sb
lsls r1, r3, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0802C998 @ =gUnknown_0847DF0C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802C99C @ =0x06013580
str r0, [r2, #4]
ldr r0, _0802C9A0 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
ldr r7, _0802C968 @ =gOamBuffer
ldr r1, _0802C970 @ =0xFFFFFE00
mov r8, r1
_0802C90A:
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, _0802C96C @ =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, #2
ble _0802C90A
_0802C94E:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802C95C: .4byte 0x00000302
_0802C960: .4byte gMain
_0802C964: .4byte 0x000033D8
_0802C968: .4byte gOamBuffer
_0802C96C: .4byte 0x000001FF
_0802C970: .4byte 0xFFFFFE00
_0802C974: .4byte 0x0000132C
_0802C978: .4byte 0xFFFFFEE3
_0802C97C: .4byte 0x00002710
_0802C980: .4byte 0x0000FDA8
_0802C984: .4byte 0x0000FED4
_0802C988: .4byte gUnknown_0200DD68
_0802C98C: .4byte gUnknown_020314E0
_0802C990: .4byte 0x00000115
_0802C994: .4byte 0x040000D4
_0802C998: .4byte gUnknown_0847DF0C
_0802C99C: .4byte 0x06013580
_0802C9A0: .4byte 0x80000180
thumb_func_start sub_2C9A4
sub_2C9A4: @ 0x0802C9A4
push {r4, r5, r6, lr}
ldr r6, _0802C9E0 @ =gUnknown_0200E328
ldrh r0, [r6]
cmp r0, #0
beq _0802CA7A
ldr r0, _0802C9E4 @ =gUnknown_020314E0
ldr r2, [r0]
ldr r3, _0802C9E8 @ =0x0000029F
adds r1, r2, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r3, r0, #0
cmp r1, #0
beq _0802C9EC
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r2, r1
ldr r1, [r0]
movs r0, #0x1f
ands r1, r0
lsrs r1, r1, #3
adds r0, r2, #0
adds r0, #0x5a
ldrh r0, [r0]
subs r0, #0x34
subs r1, r1, r0
strh r1, [r6, #4]
b _0802C9F0
.align 2, 0
_0802C9E0: .4byte gUnknown_0200E328
_0802C9E4: .4byte gUnknown_020314E0
_0802C9E8: .4byte 0x0000029F
_0802C9EC:
movs r0, #0xb4
strh r0, [r6, #4]
_0802C9F0:
ldr r2, [r3]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x78
subs r0, r0, r1
strh r0, [r6, #2]
ldr r3, _0802CA20 @ =0x0000029F
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _0802CA24
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r2, r1
ldr r0, [r0]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #3
adds r0, #4
b _0802CA32
.align 2, 0
_0802CA20: .4byte 0x0000029F
_0802CA24:
movs r3, #0xa4
lsls r3, r3, #2
adds r0, r2, r3
ldr r0, [r0]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #3
_0802CA32:
ldr r2, _0802CA80 @ =0x040000D4
lsls r0, r0, #7
ldr r1, _0802CA84 @ =gUnknown_084FEF0C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802CA88 @ =0x06014B00
str r0, [r2, #4]
ldr r0, _0802CA8C @ =0x80000040
str r0, [r2, #8]
ldr r0, [r2, #8]
adds r5, r6, #0
adds r5, #8
ldr r4, _0802CA90 @ =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, _0802CA94 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0802CA98 @ =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]
_0802CA7A:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0802CA80: .4byte 0x040000D4
_0802CA84: .4byte gUnknown_084FEF0C
_0802CA88: .4byte 0x06014B00
_0802CA8C: .4byte 0x80000040
_0802CA90: .4byte gOamBuffer
_0802CA94: .4byte 0x000001FF
_0802CA98: .4byte 0xFFFFFE00
thumb_func_start sub_2CA9C
sub_2CA9C: @ 0x0802CA9C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r0, #0
mov ip, r0
ldr r0, _0802CADC @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0xc8
ldr r6, [r0]
ldrh r0, [r6]
cmp r0, #0
bne _0802CAB8
b _0802CCF2
_0802CAB8:
movs r0, #0xca
strh r0, [r6, #2]
ldr r0, _0802CAE0 @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0802CAE4 @ =0x00000286
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0x30
bls _0802CB44
subs r0, #0x30
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x21
ble _0802CAE8
movs r1, #0x2a
subs r1, r1, r0
lsls r1, r1, #1
b _0802CB12
.align 2, 0
_0802CADC: .4byte gMain
_0802CAE0: .4byte gUnknown_020314E0
_0802CAE4: .4byte 0x00000286
_0802CAE8:
cmp r0, #0x17
ble _0802CAFC
movs r0, #0x82
strh r0, [r6, #4]
movs r0, #1
ldr r3, _0802CAF8 @ =0x0000FFF7
mov ip, r3
b _0802CB1A
.align 2, 0
_0802CAF8: .4byte 0x0000FFF7
_0802CAFC:
cmp r0, #7
ble _0802CB10
movs r0, #0x82
strh r0, [r6, #4]
movs r0, #2
ldr r1, _0802CB0C @ =0x0000FFFC
mov ip, r1
b _0802CB1A
.align 2, 0
_0802CB0C: .4byte 0x0000FFFC
_0802CB10:
lsls r1, r0, #1
_0802CB12:
movs r0, #0x92
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
_0802CB1A:
ldr r2, _0802CB34 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #7
ldr r1, _0802CB38 @ =gUnknown_08455E8C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802CB3C @ =0x060152A0
str r0, [r2, #4]
ldr r0, _0802CB40 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0802CB48
.align 2, 0
_0802CB34: .4byte 0x040000D4
_0802CB38: .4byte gUnknown_08455E8C
_0802CB3C: .4byte 0x060152A0
_0802CB40: .4byte 0x80000100
_0802CB44:
movs r0, #0xb4
strh r0, [r6, #4]
_0802CB48:
adds r5, r6, #0
adds r5, #8
ldr r4, _0802CB90 @ =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, _0802CB94 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0802CB98 @ =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]
ldr r0, _0802CB9C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r1, _0802CBA0 @ =0x00000286
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0x38
bls _0802CBA4
movs r7, #0x80
lsls r7, r7, #1
b _0802CBD6
.align 2, 0
_0802CB90: .4byte gOamBuffer
_0802CB94: .4byte 0x000001FF
_0802CB98: .4byte 0xFFFFFE00
_0802CB9C: .4byte gUnknown_020314E0
_0802CBA0: .4byte 0x00000286
_0802CBA4:
subs r0, #0x24
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
blt _0802CBCC
lsls r0, r0, #7
movs r1, #0x14
bl __divsi3
adds r0, #0x80
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
movs r0, #0x82
strh r0, [r6, #4]
ldr r3, _0802CBC8 @ =0x0000FFFE
mov ip, r3
b _0802CBD6
.align 2, 0
_0802CBC8: .4byte 0x0000FFFE
_0802CBCC:
movs r7, #0x80
movs r0, #0xb4
strh r0, [r6, #4]
movs r0, #0
mov ip, r0
_0802CBD6:
adds r5, r6, #0
adds r5, #0x10
ldrh r2, [r6, #0x10]
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 r0, _0802CCA8 @ =0x000001FF
mov r8, r0
mov r3, r8
ands r1, r3
ldrh r3, [r2, #2]
ldr r0, _0802CCAC @ =0xFFFFFE00
mov sb, r0
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #0x10]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
add r0, ip
strb r0, [r1]
ldrh r2, [r6, #0x10]
lsls r2, r2, #3
adds r2, r2, r4
ldrb r1, [r2, #1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #1]
ldrh r2, [r6, #0x10]
lsls r2, r2, #3
adds r2, r2, r4
ldrb r1, [r2, #3]
movs r0, #0xf
rsbs r0, r0, #0
ands r0, r1
movs r1, #0xc
orrs r0, r1
strb r0, [r2, #3]
lsls r1, r7, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
movs r2, #6
bl SetMatrixScale
ldr r0, _0802CCB0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _0802CCB4 @ =0x00000286
adds r3, r1, r0
ldrh r0, [r3]
cmp r0, #0x39
bhi _0802CCC8
adds r0, r1, #0
adds r0, #0x30
movs r2, #0
ldrsb r2, [r0, r2]
ldrh r1, [r3]
movs r0, #0xf
ands r1, r0
lsrs r1, r1, #3
lsls r0, r1, #3
adds r0, r0, r1
subs r0, #1
ldr r1, _0802CCB8 @ =0x040000D4
adds r2, r2, r0
lsls r2, r2, #6
ldr r0, _0802CCBC @ =gUnknown_0845648C
adds r2, r2, r0
str r2, [r1]
ldr r0, _0802CCC0 @ =0x06015520
str r0, [r1, #4]
ldr r0, _0802CCC4 @ =0x80000020
str r0, [r1, #8]
ldr r0, [r1, #8]
adds r5, r6, #0
adds r5, #0x18
ldrh r2, [r6, #0x18]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
adds r1, #0xd8
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, [r6, #0x18]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r5, #4]
subs r0, #0x70
b _0802CCF0
.align 2, 0
_0802CCA8: .4byte 0x000001FF
_0802CCAC: .4byte 0xFFFFFE00
_0802CCB0: .4byte gUnknown_020314E0
_0802CCB4: .4byte 0x00000286
_0802CCB8: .4byte 0x040000D4
_0802CCBC: .4byte gUnknown_0845648C
_0802CCC0: .4byte 0x06015520
_0802CCC4: .4byte 0x80000020
_0802CCC8:
adds r5, r6, #0
adds r5, #0x18
ldrh r2, [r6, #0x18]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r5, r3]
adds r1, #0xd8
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, [r6, #0x18]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r5, #4]
subs r0, #0x4c
_0802CCF0:
strb r0, [r1]
_0802CCF2:
ldr r5, _0802CD74 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r4, _0802CD78 @ =0x00000286
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
beq _0802CD68
cmp r0, #0x5a
bne _0802CD18
movs r0, #1
strh r0, [r6]
ldr r1, _0802CD7C @ =0x040000D4
ldr r0, _0802CD80 @ =gUnknown_086AE324
str r0, [r1]
ldr r0, _0802CD84 @ =0x05000380
str r0, [r1, #4]
ldr r0, _0802CD88 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0802CD18:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x55
bne _0802CD2A
ldr r0, _0802CD8C @ =gMPlayInfo_SE1
ldr r1, _0802CD90 @ =gUnknown_086A1ABC
bl MPlayStart
_0802CD2A:
ldr r0, [r5]
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x3a
bne _0802CD50
ldr r0, _0802CD8C @ =gMPlayInfo_SE1
ldr r1, _0802CD94 @ =gUnknown_0869F2A0
bl MPlayStart
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x30
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #8
bgt _0802CD50
adds r0, r2, #1
strb r0, [r1]
_0802CD50:
ldr r0, _0802CD74 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r3, _0802CD78 @ =0x00000286
adds r1, r1, r3
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0
bne _0802CD68
strh r0, [r6]
_0802CD68:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802CD74: .4byte gUnknown_020314E0
_0802CD78: .4byte 0x00000286
_0802CD7C: .4byte 0x040000D4
_0802CD80: .4byte gUnknown_086AE324
_0802CD84: .4byte 0x05000380
_0802CD88: .4byte 0x80000010
_0802CD8C: .4byte gMPlayInfo_SE1
_0802CD90: .4byte gUnknown_086A1ABC
_0802CD94: .4byte gUnknown_0869F2A0
thumb_func_start sub_2CD98
sub_2CD98: @ 0x0802CD98
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _0802CE6C @ =gMain
ldr r1, [r0, #0x44]
ldr r6, [r1, #0x28]
ldrh r1, [r6]
mov sb, r0
ldr r0, _0802CE70 @ =gUnknown_020314E0
mov ip, r0
cmp r1, #0
beq _0802CE0E
ldr r0, [r0]
movs r1, #0xb5
lsls r1, r1, #1
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r6, #2]
movs r0, #0x2c
strh r0, [r6, #4]
movs r0, #0
ldr r7, _0802CE74 @ =gOamBuffer
ldr r2, _0802CE78 @ =0xFFFFFE00
mov r8, r2
_0802CDCA:
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 r0, #2
ldrsh r1, [r3, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _0802CE7C @ =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, #6
ble _0802CDCA
_0802CE0E:
mov r4, ip
ldr r0, [r4]
adds r0, #0xf4
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
ble _0802CE5E
cmp r0, #0x78
bne _0802CE2A
mov r2, sb
ldr r0, [r2, #0x44]
ldr r1, [r0, #0x28]
movs r0, #1
strh r0, [r1]
_0802CE2A:
mov r4, ip
ldr r3, [r4]
adds r2, r3, #0
adds r2, #0xf4
movs r0, #0
ldrsh r1, [r2, r0]
movs r0, #0x78
subs r0, r0, r1
lsls r1, r0, #1
adds r1, r1, r0
movs r4, #0x87
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
adds r4, #0x5c
adds r1, r3, r4
strh r0, [r1]
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #1
bne _0802CE5E
mov r2, sb
ldr r0, [r2, #0x44]
ldr r1, [r0, #0x28]
movs r0, #0
strh r0, [r1]
_0802CE5E:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802CE6C: .4byte gMain
_0802CE70: .4byte gUnknown_020314E0
_0802CE74: .4byte gOamBuffer
_0802CE78: .4byte 0xFFFFFE00
_0802CE7C: .4byte 0x000001FF
thumb_func_start sub_2CE80
sub_2CE80: @ 0x0802CE80
push {r4, r5, lr}
ldr r0, _0802CEC0 @ =gUnknown_020314E0
ldr r4, [r0]
adds r1, r4, #0
adds r1, #0x68
movs r2, #0
ldrsh r1, [r1, r2]
adds r5, r0, #0
cmp r1, #0xa9
bgt _0802CED8
ldr r3, _0802CEC4 @ =0x040000D4
ldr r0, _0802CEC8 @ =gMain
ldrb r0, [r0, #4]
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #6
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #6
ldr r2, _0802CECC @ =gUnknown_08137B3C
adds r0, r0, r2
adds r1, r1, r0
str r1, [r3]
ldr r0, _0802CED0 @ =0x05000360
str r0, [r3, #4]
ldr r0, _0802CED4 @ =0x80000010
str r0, [r3, #8]
ldr r0, [r3, #8]
b _0802CF02
.align 2, 0
_0802CEC0: .4byte gUnknown_020314E0
_0802CEC4: .4byte 0x040000D4
_0802CEC8: .4byte gMain
_0802CECC: .4byte gUnknown_08137B3C
_0802CED0: .4byte 0x05000360
_0802CED4: .4byte 0x80000010
_0802CED8:
ldr r2, _0802CF20 @ =0x040000D4
ldr r0, _0802CF24 @ =gMain
ldrb r0, [r0, #4]
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #6
ldr r0, _0802CF28 @ =gUnknown_08137B5C
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #6
adds r1, r1, r0
str r1, [r2]
ldr r0, _0802CF2C @ =0x05000360
str r0, [r2, #4]
ldr r0, _0802CF30 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_0802CF02:
ldr r0, [r5]
ldr r3, _0802CF34 @ =0x00000163
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bls _0802CF14
b _0802D0FA
_0802CF14:
lsls r0, r0, #2
ldr r1, _0802CF38 @ =_0802CF3C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802CF20: .4byte 0x040000D4
_0802CF24: .4byte gMain
_0802CF28: .4byte gUnknown_08137B5C
_0802CF2C: .4byte 0x05000360
_0802CF30: .4byte 0x80000010
_0802CF34: .4byte 0x00000163
_0802CF38: .4byte _0802CF3C
_0802CF3C: @ jump table
.4byte _0802CF50 @ case 0
.4byte _0802CFAC @ case 1
.4byte _0802D02C @ case 2
.4byte _0802D074 @ case 3
.4byte _0802D0A4 @ case 4
_0802CF50:
ldr r0, [r5]
movs r4, #0xb2
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #0
strb r1, [r0]
ldr r4, [r5]
movs r2, #0xb4
lsls r2, r2, #1
adds r0, r4, r2
strh r1, [r0]
ldr r3, _0802CF90 @ =0x00000165
adds r0, r4, r3
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
beq _0802CF94
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r4, r1
ldr r0, [r0]
movs r1, #0x1e
bl __umodsi3
movs r1, #0xf
bl __udivsi3
movs r2, #0xb3
lsls r2, r2, #1
adds r1, r4, r2
strh r0, [r1]
b _0802CF9C
.align 2, 0
_0802CF90: .4byte 0x00000165
_0802CF94:
movs r3, #0xb3
lsls r3, r3, #1
adds r0, r4, r3
strh r1, [r0]
_0802CF9C:
ldr r0, [r5]
ldr r4, _0802CFA8 @ =0x00000165
adds r1, r0, r4
movs r0, #0
strb r0, [r1]
b _0802D0FA
.align 2, 0
_0802CFA8: .4byte 0x00000165
_0802CFAC:
ldr r1, [r5]
movs r2, #0xb4
lsls r2, r2, #1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #4
bhi _0802D00A
cmp r0, #1
bhi _0802CFD4
movs r3, #0xb2
lsls r3, r3, #1
adds r1, r1, r3
movs r0, #2
strb r0, [r1]
ldr r0, [r5]
movs r4, #0xb3
lsls r4, r4, #1
adds r1, r0, r4
movs r0, #3
b _0802CFE8
_0802CFD4:
movs r0, #0xb2
lsls r0, r0, #1
adds r1, r1, r0
movs r0, #3
strb r0, [r1]
ldr r0, [r5]
movs r2, #0xb3
lsls r2, r2, #1
adds r1, r0, r2
movs r0, #5
_0802CFE8:
strh r0, [r1]
ldr r0, [r5]
movs r4, #0xb4
lsls r4, r4, #1
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _0802CFFE
movs r0, #0xcc
bl m4aSongNumStart
_0802CFFE:
ldr r1, [r5]
adds r1, r1, r4
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0802D0FA
_0802D00A:
ldr r3, _0802D028 @ =0x00000163
adds r1, r1, r3
movs r2, #0
movs r0, #2
strb r0, [r1]
ldr r0, [r5]
movs r4, #0xb2
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #4
strb r1, [r0]
ldr r0, [r5]
movs r1, #0xb4
lsls r1, r1, #1
b _0802D09A
.align 2, 0
_0802D028: .4byte 0x00000163
_0802D02C:
ldr r0, _0802D070 @ =gUnknown_086AE344
ldr r2, [r5]
movs r4, #0xb2
lsls r4, r4, #1
adds r3, r2, r4
movs r1, #0
ldrsb r1, [r3, r1]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r4, #0
ldrsh r0, [r1, r4]
movs r4, #0xb4
lsls r4, r4, #1
adds r1, r2, r4
ldrh r2, [r1]
cmp r0, r2
bgt _0802D0C8
movs r0, #0
strh r0, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r5]
movs r2, #0xb2
lsls r2, r2, #1
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #7
ble _0802D0FA
movs r0, #4
strb r0, [r1]
b _0802D0FA
.align 2, 0
_0802D070: .4byte gUnknown_086AE344
_0802D074:
ldr r0, [r5]
movs r3, #0xb2
lsls r3, r3, #1
adds r0, r0, r3
movs r2, #0
movs r1, #8
strb r1, [r0]
ldr r1, [r5]
movs r4, #0xb4
lsls r4, r4, #1
adds r0, r1, r4
strh r2, [r0]
ldr r0, _0802D0A0 @ =0x00000163
adds r1, r1, r0
movs r0, #4
strb r0, [r1]
ldr r0, [r5]
movs r1, #0xb3
lsls r1, r1, #1
_0802D09A:
adds r0, r0, r1
strh r2, [r0]
b _0802D0FA
.align 2, 0
_0802D0A0: .4byte 0x00000163
_0802D0A4:
ldr r0, _0802D0D0 @ =gUnknown_086AE344
ldr r2, [r5]
movs r4, #0xb2
lsls r4, r4, #1
adds r3, r2, r4
movs r1, #0
ldrsb r1, [r3, r1]
lsls r1, r1, #2
adds r0, #2
adds r1, r1, r0
movs r4, #0
ldrsh r0, [r1, r4]
movs r4, #0xb4
lsls r4, r4, #1
adds r1, r2, r4
ldrh r2, [r1]
cmp r0, r2
ble _0802D0D4
_0802D0C8:
adds r0, r2, #1
strh r0, [r1]
b _0802D0FA
.align 2, 0
_0802D0D0: .4byte gUnknown_086AE344
_0802D0D4:
movs r2, #0
movs r0, #0
strh r0, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r5]
movs r3, #0xb2
lsls r3, r3, #1
adds r1, r0, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x13
ble _0802D0FA
strb r2, [r1]
ldr r0, [r5]
ldr r4, _0802D100 @ =0x00000163
adds r0, r0, r4
strb r2, [r0]
_0802D0FA:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0802D100: .4byte 0x00000163
thumb_func_start sub_2D104
sub_2D104: @ 0x0802D104
push {r4, r5, r6, r7, lr}
ldr r0, _0802D144 @ =gMain
ldr r0, [r0, #0x44]
adds r0, #0xb0
ldr r6, [r0]
ldrh r0, [r6]
cmp r0, #0
beq _0802D1DC
ldr r1, _0802D148 @ =gUnknown_020314E0
ldr r3, [r1]
movs r0, #0xb2
lsls r0, r0, #1
adds r2, r3, r0
movs r0, #0
ldrsb r0, [r2, r0]
adds r4, r1, #0
cmp r0, #0
bne _0802D14C
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r3, r1
ldr r0, [r0]
movs r1, #0x1e
bl __umodsi3
movs r1, #0xf
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _0802D158
.align 2, 0
_0802D144: .4byte gMain
_0802D148: .4byte gUnknown_020314E0
_0802D14C:
ldr r1, _0802D1E4 @ =gUnknown_086AE344
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0]
_0802D158:
ldr r2, _0802D1E8 @ =0x040000D4
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #6
ldr r1, _0802D1EC @ =gUnknown_083C076C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802D1F0 @ =0x060120E0
str r0, [r2, #4]
ldr r0, _0802D1F4 @ =0x800000E0
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0xe7
subs r0, r0, r2
strh r0, [r6, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r2, #0xbc
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _0802D1F8 @ =gOamBuffer
ldr r1, _0802D1FC @ =0xFFFFFE00
mov ip, r1
_0802D198:
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, _0802D200 @ =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, #2
ble _0802D198
_0802D1DC:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802D1E4: .4byte gUnknown_086AE344
_0802D1E8: .4byte 0x040000D4
_0802D1EC: .4byte gUnknown_083C076C
_0802D1F0: .4byte 0x060120E0
_0802D1F4: .4byte 0x800000E0
_0802D1F8: .4byte gOamBuffer
_0802D1FC: .4byte 0xFFFFFE00
_0802D200: .4byte 0x000001FF
thumb_func_start sub_2D204
sub_2D204: @ 0x0802D204
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, _0802D358 @ =0xFFFFFDE0
add sp, r4
ldr r1, _0802D35C @ =gUnknown_020314E0
ldr r2, [r1]
ldrh r3, [r2, #0x18]
adds r4, r3, #0
movs r0, #0xb4
lsls r0, r0, #1
cmp r4, r0
bls _0802D226
bl sub_2DE54
_0802D226:
cmp r4, #0
bne _0802D254
bl m4aMPlayAllStop
ldr r1, _0802D360 @ =0x040000D4
ldr r0, _0802D364 @ =0x05000200
str r0, [r1]
ldr r2, _0802D35C @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _0802D368 @ =0x0000111A
adds r0, r0, r3
str r0, [r1, #4]
ldr r0, _0802D36C @ =0x80000100
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r2]
ldr r1, _0802D370 @ =0x000006DB
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r2]
ldr r2, _0802D374 @ =0x000005FA
adds r0, r0, r2
strb r4, [r0]
_0802D254:
ldr r3, _0802D35C @ =gUnknown_020314E0
ldr r1, [r3]
ldrh r0, [r1, #0x18]
cmp r0, #0xa
bne _0802D2AA
adds r1, #0xe4
movs r0, #0x10
strb r0, [r1]
ldr r1, _0802D360 @ =0x040000D4
ldr r0, _0802D378 @ =gUnknown_08158284
str r0, [r1]
ldr r0, _0802D37C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0802D380 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0802D384 @ =gUnknown_0815A6A4
str r0, [r1]
ldr r0, _0802D388 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0802D38C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r2, _0802D390 @ =gMain
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x60]
movs r1, #1
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x64]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x68]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x6c]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x70]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x3c]
strh r1, [r0]
_0802D2AA:
ldr r4, _0802D35C @ =gUnknown_020314E0
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0xcc
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xeb
bgt _0802D2C2
ldrh r0, [r1, #0x18]
lsrs r0, r0, #1
adds r1, #0xe6
strh r0, [r1]
_0802D2C2:
ldr r3, _0802D35C @ =gUnknown_020314E0
ldr r0, [r3]
ldrh r0, [r0, #0x18]
adds r3, r0, #0
cmp r3, #0x23
bhi _0802D2D0
b _0802D3F6
_0802D2D0:
cmp r3, #0x43
bhi _0802D3A0
subs r0, #0x24
lsls r0, r0, #0x10
movs r3, #0
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
ldr r4, _0802D394 @ =gUnknown_03005C00
mov sb, r4
cmp r3, r0
bgt _0802D320
mov r2, sb
mov r8, r0
movs r7, #0xc1
lsls r7, r7, #8
_0802D2EE:
movs r6, #1
lsls r3, r3, #0x10
asrs r4, r3, #0x10
_0802D2F4:
lsls r1, r6, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
adds r0, #0xf
lsls r0, r0, #5
adds r0, r0, r4
lsls r0, r0, #1
adds r0, r0, r2
strh r7, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa
ble _0802D2F4
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, r8
ble _0802D2EE
_0802D320:
ldr r1, _0802D360 @ =0x040000D4
mov r2, sb
str r2, [r1]
ldr r0, _0802D398 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0802D39C @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
cmp r5, #0x1e
bne _0802D33A
movs r0, #0x1a
bl m4aSongNumStart
_0802D33A:
ldr r0, _0802D390 @ =gMain
ldrb r0, [r0, #4]
cmp r0, #1
bne _0802D3F6
ldr r0, _0802D35C @ =gUnknown_020314E0
ldr r1, [r0]
ldrh r0, [r1, #0x18]
cmp r0, #0x43
bne _0802D3F6
movs r3, #0xe0
lsls r3, r3, #2
adds r1, r1, r3
movs r0, #0x78
strh r0, [r1]
b _0802D3F6
.align 2, 0
_0802D358: .4byte 0xFFFFFDE0
_0802D35C: .4byte gUnknown_020314E0
_0802D360: .4byte 0x040000D4
_0802D364: .4byte 0x05000200
_0802D368: .4byte 0x0000111A
_0802D36C: .4byte 0x80000100
_0802D370: .4byte 0x000006DB
_0802D374: .4byte 0x000005FA
_0802D378: .4byte gUnknown_08158284
_0802D37C: .4byte 0x06015800
_0802D380: .4byte 0x80001200
_0802D384: .4byte gUnknown_0815A6A4
_0802D388: .4byte 0x050003C0
_0802D38C: .4byte 0x80000010
_0802D390: .4byte gMain
_0802D394: .4byte gUnknown_03005C00
_0802D398: .4byte 0x06002000
_0802D39C: .4byte 0x80000400
_0802D3A0:
movs r0, #0xac
lsls r0, r0, #1
cmp r3, r0
bhi _0802D3F6
movs r3, #0
ldr r4, _0802D484 @ =gUnknown_03005C00
mov sb, r4
mov r5, sb
movs r4, #0xc1
lsls r4, r4, #8
_0802D3B4:
movs r6, #1
lsls r3, r3, #0x10
asrs r2, r3, #0x10
_0802D3BA:
lsls r1, r6, #0x10
asrs r1, r1, #0x10
adds r0, r1, #0
adds r0, #0xf
lsls r0, r0, #5
adds r0, r0, r2
lsls r0, r0, #1
adds r0, r0, r5
strh r4, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r6, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa
ble _0802D3BA
movs r1, #0x80
lsls r1, r1, #9
adds r0, r3, r1
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1e
ble _0802D3B4
ldr r1, _0802D488 @ =0x040000D4
mov r2, sb
str r2, [r1]
ldr r0, _0802D48C @ =0x06002000
str r0, [r1, #4]
ldr r0, _0802D490 @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
_0802D3F6:
ldr r2, _0802D494 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0802D498 @ =0xFFFFFEF2
adds r0, r3, #0
ldrh r1, [r1, #0x18]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1e
bls _0802D40C
b _0802D54C
_0802D40C:
lsls r0, r0, #0x10
asrs r1, r0, #0x10
cmp r1, #0
bne _0802D4A4
movs r6, #0
mov sl, r0
ldr r4, _0802D49C @ =gUnknown_020028A8
mov sb, r4
adds r0, r2, #0
mov r8, r0
ldr r7, _0802D4A0 @ =0x000012BA
movs r1, #2
add r1, sb
mov ip, r1
_0802D428:
lsls r2, r6, #0x10
asrs r2, r2, #0x10
lsls r5, r2, #1
adds r4, r5, r2
mov r0, sb
adds r3, r4, r0
mov r1, r8
ldr r0, [r1]
adds r0, r0, r7
adds r0, r0, r5
ldrb r1, [r0]
movs r0, #0x1f
ands r0, r1
strb r0, [r3]
mov r3, sb
adds r3, #1
adds r3, r4, r3
mov r1, r8
ldr r0, [r1]
adds r0, r0, r7
adds r0, r0, r5
ldrh r1, [r0]
movs r0, #0xf8
lsls r0, r0, #2
ands r0, r1
lsrs r0, r0, #5
strb r0, [r3]
add r4, ip
mov r3, r8
ldr r0, [r3]
adds r0, r0, r7
adds r0, r0, r5
ldrh r1, [r0]
movs r0, #0xf8
lsls r0, r0, #7
ands r0, r1
lsrs r0, r0, #0xa
strb r0, [r4]
adds r2, #1
lsls r2, r2, #0x10
lsrs r6, r2, #0x10
asrs r2, r2, #0x10
cmp r2, #0xf
ble _0802D428
b _0802D53E
.align 2, 0
_0802D484: .4byte gUnknown_03005C00
_0802D488: .4byte 0x040000D4
_0802D48C: .4byte 0x06002000
_0802D490: .4byte 0x80000400
_0802D494: .4byte gUnknown_020314E0
_0802D498: .4byte 0xFFFFFEF2
_0802D49C: .4byte gUnknown_020028A8
_0802D4A0: .4byte 0x000012BA
_0802D4A4:
movs r6, #0
mov sl, r0
movs r4, #0xd8
lsls r4, r4, #1
add r4, sp
str r4, [sp, #0x214]
add r7, sp, #0x210
mov sb, r1
_0802D4B4:
lsls r5, r6, #0x10
asrs r5, r5, #0x10
lsls r0, r5, #1
mov r8, r0
adds r6, r0, r5
ldr r1, _0802D5B8 @ =gUnknown_020028A8
adds r0, r6, r1
ldrb r4, [r0]
movs r2, #0x1f
subs r0, r2, r4
mov r3, sb
muls r3, r0, r3
adds r0, r3, #0
movs r1, #0x1e
bl __divsi3
adds r4, r4, r0
strb r4, [r7]
ldr r0, _0802D5B8 @ =gUnknown_020028A8
adds r0, #1
adds r0, r6, r0
ldrb r4, [r0]
movs r1, #0x1f
subs r0, r1, r4
mov r2, sb
muls r2, r0, r2
adds r0, r2, #0
movs r1, #0x1e
bl __divsi3
adds r4, r4, r0
strb r4, [r7, #1]
ldr r3, _0802D5BC @ =gUnknown_020028AA
adds r6, r6, r3
ldrb r4, [r6]
movs r1, #0x1f
subs r0, r1, r4
mov r2, sb
muls r2, r0, r2
adds r0, r2, #0
movs r1, #0x1e
bl __divsi3
adds r4, r4, r0
strb r4, [r7, #2]
ldr r3, [sp, #0x214]
add r8, r3
ldrb r1, [r7]
ldrb r0, [r7, #1]
lsls r0, r0, #5
orrs r1, r0
ldrb r0, [r7, #2]
lsls r0, r0, #0xa
orrs r1, r0
mov r4, r8
strh r1, [r4]
adds r5, #1
lsls r5, r5, #0x10
lsrs r6, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #0xf
ble _0802D4B4
ldr r1, _0802D5C0 @ =0x040000D4
str r3, [r1]
ldr r0, _0802D5C4 @ =0x050003A0
str r0, [r1, #4]
ldr r0, _0802D5C8 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
_0802D53E:
mov r1, sl
asrs r0, r1, #0x10
cmp r0, #0xa
bne _0802D54C
movs r0, #0xb0
bl m4aSongNumStart
_0802D54C:
ldr r1, _0802D5CC @ =gUnknown_020314E0
ldr r3, [r1]
ldr r4, _0802D5D0 @ =0xFFFFFED4
adds r2, r4, #0
ldrh r4, [r3, #0x18]
adds r0, r2, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x10
bhi _0802D582
movs r0, #0x88
lsls r0, r0, #5
adds r1, r3, r0
movs r0, #1
strb r0, [r1]
ldr r1, _0802D5CC @ =gUnknown_020314E0
ldr r0, [r1]
ldrh r0, [r0, #0x18]
adds r0, r2, r0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, _0802D5D4 @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0x9f
strh r1, [r0, #0x38]
ldrh r1, [r0, #0x3c]
strh r5, [r0, #0x3c]
_0802D582:
ldr r2, _0802D5CC @ =gUnknown_020314E0
ldr r0, [r2]
ldrh r2, [r0, #0x18]
cmp r2, #0xa
bhi _0802D58E
b _0802DD32
_0802D58E:
ldr r1, _0802D5D4 @ =gMain
ldr r0, [r1, #0x44]
ldr r7, [r0, #0x60]
ldr r3, _0802D5D8 @ =0x0000FF88
adds r0, r2, r3
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x15
ble _0802D5DC
mov r4, sp
subs r0, #0x16
movs r1, #0x66
bl __modsi3
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa0
strh r1, [r4]
b _0802D5E2
.align 2, 0
_0802D5B8: .4byte gUnknown_020028A8
_0802D5BC: .4byte gUnknown_020028AA
_0802D5C0: .4byte 0x040000D4
_0802D5C4: .4byte 0x050003A0
_0802D5C8: .4byte 0x80000010
_0802D5CC: .4byte gUnknown_020314E0
_0802D5D0: .4byte 0xFFFFFED4
_0802D5D4: .4byte gMain
_0802D5D8: .4byte 0x0000FF88
_0802D5DC:
mov r1, sp
ldr r0, _0802D604 @ =0x0000FF5E
strh r0, [r1]
_0802D5E2:
lsls r0, r5, #0x10
asrs r1, r0, #0x10
mov sl, r0
cmp r1, #0
blt _0802D608
mov r4, sp
adds r0, r1, #0
movs r1, #0x66
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa2
strh r1, [r4, #2]
b _0802D60E
.align 2, 0
_0802D604: .4byte 0x0000FF5E
_0802D608:
mov r1, sp
ldr r0, _0802D62C @ =0x0000FF5E
strh r0, [r1, #2]
_0802D60E:
mov r4, sl
asrs r0, r4, #0x10
cmp r0, #0x47
ble _0802D630
mov r4, sp
subs r0, #0x48
movs r1, #0x66
bl __modsi3
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa2
strh r1, [r4, #4]
b _0802D636
.align 2, 0
_0802D62C: .4byte 0x0000FF5E
_0802D630:
mov r1, sp
ldr r0, _0802D654 @ =0x0000FF5E
strh r0, [r1, #4]
_0802D636:
mov r1, sl
asrs r0, r1, #0x10
cmp r0, #0x32
ble _0802D658
mov r4, sp
subs r0, #0x33
movs r1, #0x66
bl __modsi3
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa1
strh r1, [r4, #6]
b _0802D65E
.align 2, 0
_0802D654: .4byte 0x0000FF5E
_0802D658:
mov r1, sp
ldr r0, _0802D6F8 @ =0x0000FF5F
strh r0, [r1, #6]
_0802D65E:
ldr r2, _0802D6FC @ =gUnknown_020314E0
ldr r1, [r2]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r3, #0x9a
lsls r3, r3, #1
adds r0, r3, #0
subs r0, r0, r1
strh r0, [r7, #4]
movs r6, #0
ldr r5, _0802D700 @ =gOamBuffer
ldr r4, _0802D704 @ =0xFFFFFE00
mov r8, r4
_0802D684:
lsls r3, r6, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r6, r7, r0
ldrh r4, [r6]
lsls r4, r4, #3
adds r4, r4, r5
movs r0, #2
ldrsh r2, [r7, r0]
lsls r0, r3, #1
add r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
adds r2, r2, r0
ldr r1, _0802D708 @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r1, [r4, #2]
mov r0, r8
ands r0, r1
orrs r0, r2
strh r0, [r4, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r6, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _0802D684
ldr r2, _0802D6FC @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0802D70C @ =0x0000FFC4
adds r0, r3, #0
ldrh r1, [r1, #0x18]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x15
ble _0802D710
mov r4, sp
subs r0, #0x16
movs r1, #0x66
bl __modsi3
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa0
strh r1, [r4]
b _0802D716
.align 2, 0
_0802D6F8: .4byte 0x0000FF5F
_0802D6FC: .4byte gUnknown_020314E0
_0802D700: .4byte gOamBuffer
_0802D704: .4byte 0xFFFFFE00
_0802D708: .4byte 0x000001FF
_0802D70C: .4byte 0x0000FFC4
_0802D710:
mov r1, sp
ldr r0, _0802D738 @ =0x0000FF5E
strh r0, [r1]
_0802D716:
lsls r0, r5, #0x10
asrs r1, r0, #0x10
mov sl, r0
cmp r1, #0
blt _0802D73C
mov r4, sp
adds r0, r1, #0
movs r1, #0x66
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa2
strh r1, [r4, #2]
b _0802D742
.align 2, 0
_0802D738: .4byte 0x0000FF5E
_0802D73C:
mov r1, sp
ldr r0, _0802D760 @ =0x0000FF5E
strh r0, [r1, #2]
_0802D742:
mov r4, sl
asrs r0, r4, #0x10
cmp r0, #0x47
ble _0802D764
mov r4, sp
subs r0, #0x48
movs r1, #0x66
bl __modsi3
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa2
strh r1, [r4, #4]
b _0802D76A
.align 2, 0
_0802D760: .4byte 0x0000FF5E
_0802D764:
mov r1, sp
ldr r0, _0802D788 @ =0x0000FF5E
strh r0, [r1, #4]
_0802D76A:
mov r1, sl
asrs r0, r1, #0x10
cmp r0, #0x32
ble _0802D78C
mov r4, sp
subs r0, #0x33
movs r1, #0x66
bl __modsi3
lsls r1, r0, #1
adds r1, r1, r0
subs r1, #0xa1
strh r1, [r4, #6]
b _0802D792
.align 2, 0
_0802D788: .4byte 0x0000FF5E
_0802D78C:
mov r1, sp
ldr r0, _0802D834 @ =0x0000FF5F
strh r0, [r1, #6]
_0802D792:
ldr r2, _0802D838 @ =gMain
ldr r0, [r2, #0x44]
ldr r7, [r0, #0x64]
ldr r3, _0802D83C @ =gUnknown_020314E0
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r4, #0x9a
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r7, #4]
movs r6, #0
ldr r5, _0802D840 @ =gOamBuffer
ldr r0, _0802D844 @ =0xFFFFFE00
mov r8, r0
_0802D7BE:
lsls r3, r6, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r6, r7, r0
ldrh r4, [r6]
lsls r4, r4, #3
adds r4, r4, r5
movs r1, #2
ldrsh r2, [r7, r1]
lsls r0, r3, #1
add r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
adds r2, r2, r0
ldr r1, _0802D848 @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r1, [r4, #2]
mov r0, r8
ands r0, r1
orrs r0, r2
strh r0, [r4, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r6, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _0802D7BE
ldr r2, _0802D838 @ =gMain
ldr r0, [r2, #0x44]
ldr r7, [r0, #0x68]
ldr r3, _0802D83C @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _0802D84C @ =0x0000FF9C
adds r0, r4, #0
ldrh r1, [r1, #0x18]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
blt _0802D850
mov r4, sp
movs r1, #0x98
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
subs r0, #0xa0
strh r0, [r4]
b _0802D856
.align 2, 0
_0802D834: .4byte 0x0000FF5F
_0802D838: .4byte gMain
_0802D83C: .4byte gUnknown_020314E0
_0802D840: .4byte gOamBuffer
_0802D844: .4byte 0xFFFFFE00
_0802D848: .4byte 0x000001FF
_0802D84C: .4byte 0x0000FF9C
_0802D850:
mov r1, sp
ldr r0, _0802D874 @ =0x0000FF60
strh r0, [r1]
_0802D856:
lsls r0, r5, #0x10
asrs r1, r0, #0x10
mov sl, r0
cmp r1, #0x25
ble _0802D878
mov r4, sp
adds r0, r1, #0
subs r0, #0x26
movs r1, #0x98
bl __modsi3
lsls r0, r0, #1
subs r0, #0xa0
strh r0, [r4, #2]
b _0802D87E
.align 2, 0
_0802D874: .4byte 0x0000FF60
_0802D878:
mov r1, sp
ldr r0, _0802D898 @ =0x0000FF60
strh r0, [r1, #2]
_0802D87E:
mov r1, sl
asrs r0, r1, #0x10
cmp r0, #0x4b
ble _0802D89C
mov r4, sp
subs r0, #0x4c
movs r1, #0x98
bl __modsi3
lsls r0, r0, #1
subs r0, #0xa0
strh r0, [r4, #4]
b _0802D8A2
.align 2, 0
_0802D898: .4byte 0x0000FF60
_0802D89C:
mov r1, sp
ldr r0, _0802D8BC @ =0x0000FF60
strh r0, [r1, #4]
_0802D8A2:
mov r2, sl
asrs r0, r2, #0x10
cmp r0, #0x71
ble _0802D8C0
mov r4, sp
subs r0, #0x72
movs r1, #0x98
bl __modsi3
lsls r0, r0, #1
subs r0, #0xa0
strh r0, [r4, #6]
b _0802D8C6
.align 2, 0
_0802D8BC: .4byte 0x0000FF60
_0802D8C0:
mov r1, sp
ldr r0, _0802D964 @ =0x0000FF60
strh r0, [r1, #6]
_0802D8C6:
ldr r3, _0802D968 @ =gUnknown_020314E0
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r4, #0x9a
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r7, #4]
movs r6, #0
ldr r5, _0802D96C @ =gOamBuffer
ldr r0, _0802D970 @ =0xFFFFFE00
mov r8, r0
_0802D8EC:
lsls r3, r6, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r6, r7, r0
ldrh r4, [r6]
lsls r4, r4, #3
adds r4, r4, r5
movs r1, #2
ldrsh r2, [r7, r1]
lsls r0, r3, #1
add r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
adds r2, r2, r0
ldr r1, _0802D974 @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r1, [r4, #2]
mov r0, r8
ands r0, r1
orrs r0, r2
strh r0, [r4, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r6, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _0802D8EC
ldr r2, _0802D978 @ =gMain
ldr r0, [r2, #0x44]
ldr r7, [r0, #0x6c]
ldr r3, _0802D968 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r4, _0802D97C @ =0x0000FFB0
adds r0, r4, #0
ldrh r1, [r1, #0x18]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
blt _0802D980
mov r4, sp
movs r1, #0x98
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0xf
subs r0, #0xa0
strh r0, [r4]
b _0802D986
.align 2, 0
_0802D964: .4byte 0x0000FF60
_0802D968: .4byte gUnknown_020314E0
_0802D96C: .4byte gOamBuffer
_0802D970: .4byte 0xFFFFFE00
_0802D974: .4byte 0x000001FF
_0802D978: .4byte gMain
_0802D97C: .4byte 0x0000FFB0
_0802D980:
mov r1, sp
ldr r0, _0802D9A4 @ =0x0000FF60
strh r0, [r1]
_0802D986:
lsls r0, r5, #0x10
asrs r1, r0, #0x10
mov sl, r0
cmp r1, #0x25
ble _0802D9A8
mov r4, sp
adds r0, r1, #0
subs r0, #0x26
movs r1, #0x98
bl __modsi3
lsls r0, r0, #1
subs r0, #0xa0
strh r0, [r4, #2]
b _0802D9AE
.align 2, 0
_0802D9A4: .4byte 0x0000FF60
_0802D9A8:
mov r1, sp
ldr r0, _0802D9C8 @ =0x0000FF60
strh r0, [r1, #2]
_0802D9AE:
mov r1, sl
asrs r0, r1, #0x10
cmp r0, #0x4b
ble _0802D9CC
mov r4, sp
subs r0, #0x4c
movs r1, #0x98
bl __modsi3
lsls r0, r0, #1
subs r0, #0xa0
strh r0, [r4, #4]
b _0802D9D2
.align 2, 0
_0802D9C8: .4byte 0x0000FF60
_0802D9CC:
mov r1, sp
ldr r0, _0802D9EC @ =0x0000FF60
strh r0, [r1, #4]
_0802D9D2:
mov r2, sl
asrs r0, r2, #0x10
cmp r0, #0x71
ble _0802D9F0
mov r4, sp
subs r0, #0x72
movs r1, #0x98
bl __modsi3
lsls r0, r0, #1
subs r0, #0xa0
strh r0, [r4, #6]
b _0802D9F6
.align 2, 0
_0802D9EC: .4byte 0x0000FF60
_0802D9F0:
mov r1, sp
ldr r0, _0802DA8C @ =0x0000FF60
strh r0, [r1, #6]
_0802D9F6:
ldr r3, _0802DA90 @ =gUnknown_020314E0
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r4, #0x9a
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r7, #4]
movs r6, #0
ldr r5, _0802DA94 @ =gOamBuffer
ldr r0, _0802DA98 @ =0xFFFFFE00
mov r8, r0
_0802DA1C:
lsls r3, r6, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r6, r7, r0
ldrh r4, [r6]
lsls r4, r4, #3
adds r4, r4, r5
movs r1, #2
ldrsh r2, [r7, r1]
lsls r0, r3, #1
add r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
adds r2, r2, r0
ldr r1, _0802DA9C @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r1, [r4, #2]
mov r0, r8
ands r0, r1
orrs r0, r2
strh r0, [r4, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r6, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _0802DA1C
ldr r2, _0802DA90 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0802DAA0 @ =0x0000FFA6
adds r0, r3, #0
ldrh r1, [r1, #0x18]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xeb
ble _0802DAA4
mov r4, sp
subs r0, #0xec
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4]
b _0802DAAA
.align 2, 0
_0802DA8C: .4byte 0x0000FF60
_0802DA90: .4byte gUnknown_020314E0
_0802DA94: .4byte gOamBuffer
_0802DA98: .4byte 0xFFFFFE00
_0802DA9C: .4byte 0x000001FF
_0802DAA0: .4byte 0x0000FFA6
_0802DAA4:
mov r1, sp
ldr r0, _0802DAC8 @ =0x0000FF80
strh r0, [r1]
_0802DAAA:
lsls r0, r5, #0x10
asrs r1, r0, #0x10
mov sl, r0
cmp r1, #0xcb
ble _0802DACC
mov r4, sp
adds r0, r1, #0
subs r0, #0xcc
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4, #2]
b _0802DAD2
.align 2, 0
_0802DAC8: .4byte 0x0000FF80
_0802DACC:
mov r1, sp
ldr r0, _0802DAEC @ =0x0000FF80
strh r0, [r1, #2]
_0802DAD2:
mov r4, sl
asrs r0, r4, #0x10
cmp r0, #0xa7
ble _0802DAF0
mov r4, sp
subs r0, #0xa8
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4, #4]
b _0802DAF6
.align 2, 0
_0802DAEC: .4byte 0x0000FF80
_0802DAF0:
mov r1, sp
ldr r0, _0802DB10 @ =0x0000FF80
strh r0, [r1, #4]
_0802DAF6:
mov r1, sl
asrs r0, r1, #0x10
cmp r0, #0x87
ble _0802DB14
mov r4, sp
subs r0, #0x88
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4, #6]
b _0802DB1A
.align 2, 0
_0802DB10: .4byte 0x0000FF80
_0802DB14:
mov r1, sp
ldr r0, _0802DB34 @ =0x0000FF80
strh r0, [r1, #6]
_0802DB1A:
mov r2, sl
asrs r0, r2, #0x10
cmp r0, #0x63
ble _0802DB38
mov r4, sp
subs r0, #0x64
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4, #8]
b _0802DB3E
.align 2, 0
_0802DB34: .4byte 0x0000FF80
_0802DB38:
mov r1, sp
ldr r0, _0802DB58 @ =0x0000FF80
strh r0, [r1, #8]
_0802DB3E:
mov r3, sl
asrs r0, r3, #0x10
cmp r0, #0x43
ble _0802DB5C
mov r4, sp
subs r0, #0x44
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4, #0xa]
b _0802DB62
.align 2, 0
_0802DB58: .4byte 0x0000FF80
_0802DB5C:
mov r1, sp
ldr r0, _0802DB7C @ =0x0000FF80
strh r0, [r1, #0xa]
_0802DB62:
mov r4, sl
asrs r0, r4, #0x10
cmp r0, #0x1f
ble _0802DB80
mov r4, sp
subs r0, #0x20
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4, #0xc]
b _0802DB86
.align 2, 0
_0802DB7C: .4byte 0x0000FF80
_0802DB80:
mov r1, sp
ldr r0, _0802DBA0 @ =0x0000FF80
strh r0, [r1, #0xc]
_0802DB86:
mov r1, sl
asrs r0, r1, #0x10
cmp r0, #0
blt _0802DBA4
mov r4, sp
movs r1, #0x88
lsls r1, r1, #1
bl __modsi3
subs r0, #0x80
strh r0, [r4, #0xe]
b _0802DBAA
.align 2, 0
_0802DBA0: .4byte 0x0000FF80
_0802DBA4:
mov r1, sp
ldr r0, _0802DC74 @ =0x0000FF80
strh r0, [r1, #0xe]
_0802DBAA:
ldr r2, _0802DC78 @ =gMain
ldr r0, [r2, #0x44]
ldr r7, [r0, #0x70]
ldr r3, _0802DC7C @ =gUnknown_020314E0
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x58
ldrh r2, [r0]
movs r0, #0x60
subs r0, r0, r2
strh r0, [r7, #2]
adds r1, #0x5a
ldrh r1, [r1]
movs r4, #0x9a
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r7, #4]
movs r6, #0
ldr r5, _0802DC80 @ =gOamBuffer
ldr r0, _0802DC84 @ =0xFFFFFE00
mov r8, r0
_0802DBD6:
lsls r3, r6, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r6, r7, r0
ldrh r4, [r6]
lsls r4, r4, #3
adds r4, r4, r5
movs r1, #2
ldrsh r2, [r7, r1]
lsls r0, r3, #1
add r0, sp
movs r1, #0
ldrsh r0, [r0, r1]
adds r2, r2, r0
ldr r1, _0802DC88 @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r1, [r4, #2]
mov r0, r8
ands r0, r1
orrs r0, r2
strh r0, [r4, #2]
ldrh r1, [r6]
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r7, #4]
ldrb r6, [r6, #4]
adds r0, r0, r6
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r6, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #7
ble _0802DBD6
ldr r2, _0802DC78 @ =gMain
ldr r0, [r2, #0x44]
ldr r7, [r0, #0x3c]
ldr r3, _0802DC7C @ =gUnknown_020314E0
ldr r2, [r3]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x60
subs r0, r0, r1
strh r0, [r7, #2]
adds r0, r2, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r4, #0x9a
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r7, #4]
ldr r1, _0802DC8C @ =0x0000FF88
adds r0, r1, #0
ldrh r2, [r2, #0x18]
adds r0, r0, r2
lsls r0, r0, #0x10
asrs r2, r0, #0x10
cmp r2, #0
ble _0802DC90
mov r1, sp
movs r0, #0
strh r0, [r1]
adds r0, r2, #0
movs r1, #0x46
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #7
bl __divsi3
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
b _0802DC98
.align 2, 0
_0802DC74: .4byte 0x0000FF80
_0802DC78: .4byte gMain
_0802DC7C: .4byte gUnknown_020314E0
_0802DC80: .4byte gOamBuffer
_0802DC84: .4byte 0xFFFFFE00
_0802DC88: .4byte 0x000001FF
_0802DC8C: .4byte 0x0000FF88
_0802DC90:
mov r1, sp
ldr r0, _0802DE04 @ =0x0000FF60
strh r0, [r1]
movs r3, #0
_0802DC98:
movs r6, #0
lsls r0, r3, #0x10
ldr r2, _0802DE08 @ =gOamBuffer
mov sl, r2
ldr r3, _0802DE0C @ =gUnknown_086B4112
mov sb, r3
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
mov r8, r0
ldr r4, _0802DE10 @ =0xFFFFFE00
mov ip, r4
_0802DCB2:
lsls r4, r6, #0x10
asrs r4, r4, #0x10
lsls r0, r4, #3
adds r0, #8
adds r6, r7, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r1, sl
adds r2, r0, r1
lsls r1, r4, #1
adds r1, r1, r4
lsls r0, r1, #1
add r0, r8
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
add r0, r8
add r0, sb
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
add r1, r8
add r1, sb
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r3, [r6]
lsls r3, r3, #3
add r3, sl
ldrh r5, [r3, #2]
lsls r2, r5, #0x17
lsrs r2, r2, #0x17
str r2, [sp, #0x218]
movs r2, #2
ldrsh r1, [r7, r2]
mov r0, sp
movs r2, #0
ldrsh r0, [r0, r2]
adds r1, r1, r0
ldr r0, [sp, #0x218]
adds r2, r0, r1
ldr r1, _0802DE14 @ =0x000001FF
adds r0, r1, #0
ands r2, r0
mov r0, ip
ands r0, r5
orrs r0, r2
strh r0, [r3, #2]
ldrh r1, [r6]
lsls r1, r1, #3
add r1, sl
ldrb r0, [r7, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r6, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #3
ble _0802DCB2
_0802DD32:
ldr r3, _0802DE18 @ =gUnknown_020314E0
ldr r0, [r3]
ldrh r1, [r0, #0x18]
movs r0, #0xaf
lsls r0, r0, #1
cmp r1, r0
bne _0802DD84
movs r1, #0xf0
lsls r1, r1, #0x11
ldr r4, _0802DE1C @ =gUnknown_03005C00
mov sb, r4
ldr r3, _0802DE14 @ =0x000001FF
ldr r2, _0802DE20 @ =0x0000033F
_0802DD4C:
asrs r0, r1, #0x10
lsls r1, r0, #1
adds r1, r1, r4
strh r3, [r1]
adds r0, #1
lsls r1, r0, #0x10
asrs r0, r1, #0x10
cmp r0, r2
ble _0802DD4C
ldr r1, _0802DE24 @ =0x040000D4
mov r0, sb
str r0, [r1]
ldr r0, _0802DE28 @ =0x06002000
str r0, [r1, #4]
ldr r0, _0802DE2C @ =0x80000400
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0802DE30 @ =gMain
ldrb r0, [r1, #4]
cmp r0, #1
bne _0802DD84
ldr r2, _0802DE18 @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xe0
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #0
strh r1, [r0]
_0802DD84:
ldr r4, _0802DE18 @ =gUnknown_020314E0
ldr r3, [r4]
ldrh r1, [r3, #0x18]
movs r0, #0xb4
lsls r0, r0, #1
cmp r1, r0
beq _0802DD94
b _0802E052
_0802DD94:
ldr r2, _0802DE30 @ =gMain
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x60]
movs r1, #0
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x64]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x68]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x6c]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x70]
strh r1, [r0]
ldr r0, [r2, #0x44]
ldr r0, [r0, #0x3c]
strh r1, [r0]
ldr r1, _0802DE34 @ =0x000005A2
adds r0, r3, r1
ldrh r1, [r0]
movs r2, #0xb3
lsls r2, r2, #3
adds r0, r3, r2
strh r1, [r0]
movs r0, #3
movs r1, #0
bl sub_1C7F4
ldr r0, [r4]
adds r0, #0xe4
movs r1, #0x11
strb r1, [r0]
ldr r1, _0802DE24 @ =0x040000D4
ldr r0, _0802DE38 @ =gUnknown_083A562C
str r0, [r1]
ldr r0, _0802DE3C @ =0x06015800
str r0, [r1, #4]
ldr r0, _0802DE40 @ =0x80000C00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0802DE44 @ =gUnknown_083A6E4C
str r0, [r1]
ldr r0, _0802DE48 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0802DE4C @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r4]
ldr r3, _0802DE50 @ =0x000006DB
adds r0, r0, r3
movs r1, #3
strb r1, [r0]
b _0802E052
.align 2, 0
_0802DE04: .4byte 0x0000FF60
_0802DE08: .4byte gOamBuffer
_0802DE0C: .4byte gUnknown_086B4112
_0802DE10: .4byte 0xFFFFFE00
_0802DE14: .4byte 0x000001FF
_0802DE18: .4byte gUnknown_020314E0
_0802DE1C: .4byte gUnknown_03005C00
_0802DE20: .4byte 0x0000033F
_0802DE24: .4byte 0x040000D4
_0802DE28: .4byte 0x06002000
_0802DE2C: .4byte 0x80000400
_0802DE30: .4byte gMain
_0802DE34: .4byte 0x000005A2
_0802DE38: .4byte gUnknown_083A562C
_0802DE3C: .4byte 0x06015800
_0802DE40: .4byte 0x80000C00
_0802DE44: .4byte gUnknown_083A6E4C
_0802DE48: .4byte 0x050003C0
_0802DE4C: .4byte 0x80000010
_0802DE50: .4byte 0x000006DB
thumb_func_start sub_2DE54
sub_2DE54: @ 0x0802DE54
ldr r4, _0802DED4 @ =0xFFFFFE98
adds r0, r3, r4
lsls r0, r0, #0x10
asrs r4, r0, #0x10
cmp r4, #0x40
bgt _0802DEF0
cmp r4, #1
bne _0802DE6A
ldr r0, _0802DED8 @ =gMPlayInfo_BGM
bl m4aMPlayStop
_0802DE6A:
ldr r5, _0802DEDC @ =gMain
ldrh r0, [r5, #0x38]
movs r0, #0x9f
strh r0, [r5, #0x38]
adds r0, r4, #0
cmp r4, #0
bge _0802DE7A
adds r0, r4, #3
_0802DE7A:
asrs r0, r0, #2
movs r1, #0x10
subs r1, r1, r0
ldrh r0, [r5, #0x3c]
strh r1, [r5, #0x3c]
cmp r4, #0x20
bne _0802DEB0
ldr r0, _0802DEE0 @ =gUnknown_020314E0
ldr r1, [r0]
movs r3, #0xa7
lsls r3, r3, #2
adds r2, r1, r3
movs r0, #0x8c
strh r0, [r2]
ldr r2, _0802DEE4 @ =gUnknown_086A3700
movs r0, #0xb3
lsls r0, r0, #3
adds r1, r1, r0
ldrh r1, [r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrh r0, [r0]
movs r1, #0
bl sub_528DC
_0802DEB0:
cmp r4, #0x40
beq _0802DEB6
b _0802E052
_0802DEB6:
ldr r2, _0802DEE0 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r3, _0802DEE8 @ =0x00000604
adds r2, r1, r3
movs r0, #0
strh r0, [r2]
ldr r4, _0802DEEC @ =0x00000603
adds r1, r1, r4
strb r0, [r1]
ldr r0, [r5, #0x44]
adds r0, #0x94
ldr r1, [r0]
movs r0, #1
strh r0, [r1]
b _0802E052
.align 2, 0
_0802DED4: .4byte 0xFFFFFE98
_0802DED8: .4byte gMPlayInfo_BGM
_0802DEDC: .4byte gMain
_0802DEE0: .4byte gUnknown_020314E0
_0802DEE4: .4byte gUnknown_086A3700
_0802DEE8: .4byte 0x00000604
_0802DEEC: .4byte 0x00000603
_0802DEF0:
movs r1, #0x88
lsls r1, r1, #5
adds r0, r2, r1
movs r4, #0
strb r4, [r0]
ldr r2, _0802DF20 @ =gUnknown_086AE0D0
ldr r3, _0802DF24 @ =gUnknown_020314E0
ldr r1, [r3]
ldr r0, _0802DF28 @ =0x00000603
adds r3, r1, r0
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #1
adds r0, r0, r2
movs r2, #0
ldrsh r0, [r0, r2]
ldr r2, _0802DF2C @ =0x00000604
adds r1, r1, r2
ldrh r2, [r1]
cmp r0, r2
ble _0802DF30
adds r0, r2, #1
strh r0, [r1]
b _0802DF80
.align 2, 0
_0802DF20: .4byte gUnknown_086AE0D0
_0802DF24: .4byte gUnknown_020314E0
_0802DF28: .4byte 0x00000603
_0802DF2C: .4byte 0x00000604
_0802DF30:
strh r4, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r3, _0802E068 @ =gUnknown_020314E0
ldr r0, [r3]
ldr r2, _0802E06C @ =0x00000603
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xa
ble _0802DF80
ldr r3, _0802E070 @ =gMain
ldr r0, [r3, #0x44]
adds r0, #0x94
ldr r0, [r0]
strh r4, [r0]
movs r0, #0xa
strb r0, [r1]
ldr r0, _0802E068 @ =gUnknown_020314E0
ldr r1, [r0]
strh r4, [r1, #0x18]
ldrb r0, [r1, #0x17]
adds r0, #1
strb r0, [r1, #0x17]
ldr r1, _0802E074 @ =0x040000D4
ldr r2, _0802E068 @ =gUnknown_020314E0
ldr r0, [r2]
ldr r3, _0802E078 @ =0x0000111A
adds r0, r0, r3
str r0, [r1]
ldr r0, _0802E07C @ =0x05000200
str r0, [r1, #4]
ldr r0, _0802E080 @ =0x800000C0
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r2]
adds r0, #0xe4
movs r1, #0
strb r1, [r0]
_0802DF80:
ldr r4, _0802E068 @ =gUnknown_020314E0
ldr r2, [r4]
ldr r1, _0802E06C @ =0x00000603
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
ldr r4, _0802E070 @ =gMain
ldr r0, [r4, #0x44]
adds r0, #0x94
ldr r7, [r0]
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x60
subs r0, r0, r1
strh r0, [r7, #2]
adds r2, #0x5a
ldrh r1, [r2]
movs r2, #0x96
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r7, #4]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc7
ble _0802DFC0
movs r0, #0xc8
strh r0, [r7, #4]
_0802DFC0:
movs r6, #0
lsls r0, r3, #0x10
ldr r3, _0802E084 @ =gOamBuffer
mov sb, r3
ldr r4, _0802E088 @ =gUnknown_086B4E62
mov r8, r4
asrs r1, r0, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r5, r0, #3
ldr r0, _0802E08C @ =0xFFFFFE00
mov sl, r0
_0802DFD8:
lsls r3, r6, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r6, r7, r0
ldrh r0, [r6]
lsls r0, r0, #3
mov r1, sb
adds r2, r0, r1
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
adds r0, r0, r5
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r5
add r0, r8
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r5
add r1, r8
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r6]
lsls r2, r2, #3
add r2, sb
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
mov ip, r1
movs r1, #2
ldrsh r0, [r7, r1]
adds r1, r0, #0
add r1, ip
ldr r0, _0802E090 @ =0x000001FF
mov ip, r0
mov r0, ip
ands r1, r0
mov r0, sl
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6]
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 r6, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #3
ble _0802DFD8
_0802E052:
movs r3, #0x88
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
.align 2, 0
_0802E068: .4byte gUnknown_020314E0
_0802E06C: .4byte 0x00000603
_0802E070: .4byte gMain
_0802E074: .4byte 0x040000D4
_0802E078: .4byte 0x0000111A
_0802E07C: .4byte 0x05000200
_0802E080: .4byte 0x800000C0
_0802E084: .4byte gOamBuffer
_0802E088: .4byte gUnknown_086B4E62
_0802E08C: .4byte 0xFFFFFE00
_0802E090: .4byte 0x000001FF
thumb_func_start sub_2E094
sub_2E094: @ 0x0802E094
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r7, #0
ldr r0, _0802E0FC @ =gUnknown_020314E0
ldr r6, [r0]
ldrh r3, [r6, #0x18]
adds r2, r3, #0
mov sb, r0
cmp r2, #0
bne _0802E180
ldr r2, _0802E100 @ =gMain
ldr r0, [r2, #0x44]
ldr r1, [r0, #0x40]
movs r0, #1
strh r0, [r1]
ldr r0, _0802E104 @ =0x0000060C
adds r1, r6, r0
subs r0, #0x94
strh r0, [r1]
ldr r3, _0802E108 @ =0x0000060E
adds r1, r6, r3
ldr r0, _0802E10C @ =0x0000FDA8
strh r0, [r1]
adds r1, r6, #0
adds r1, #0xe4
movs r0, #0x15
strb r0, [r1]
ldrb r0, [r2, #4]
cmp r0, #0
bne _0802E130
ldr r1, _0802E110 @ =0x040000D4
ldr r0, _0802E114 @ =gUnknown_081BCAA4
str r0, [r1]
ldr r2, _0802E118 @ =0x06015800
str r2, [r1, #4]
ldr r0, _0802E11C @ =0x80000C00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0802E120 @ =gUnknown_081BE2C4
str r0, [r1]
ldr r0, _0802E124 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0802E128 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0802E12C @ =gUnknown_08483D8C
b _0802E150
.align 2, 0
_0802E0FC: .4byte gUnknown_020314E0
_0802E100: .4byte gMain
_0802E104: .4byte 0x0000060C
_0802E108: .4byte 0x0000060E
_0802E10C: .4byte 0x0000FDA8
_0802E110: .4byte 0x040000D4
_0802E114: .4byte gUnknown_081BCAA4
_0802E118: .4byte 0x06015800
_0802E11C: .4byte 0x80000C00
_0802E120: .4byte gUnknown_081BE2C4
_0802E124: .4byte 0x050003C0
_0802E128: .4byte 0x80000010
_0802E12C: .4byte gUnknown_08483D8C
_0802E130:
ldr r1, _0802E15C @ =0x040000D4
ldr r0, _0802E160 @ =gUnknown_081BE4C4
str r0, [r1]
ldr r2, _0802E164 @ =0x06015800
str r2, [r1, #4]
ldr r0, _0802E168 @ =0x80000C00
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0802E16C @ =gUnknown_081BFCE4
str r0, [r1]
ldr r0, _0802E170 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _0802E174 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0802E178 @ =gUnknown_08488A0C
_0802E150:
str r0, [r1]
str r2, [r1, #4]
ldr r0, _0802E17C @ =0x80000240
str r0, [r1, #8]
ldr r0, [r1, #8]
b _0802E610
.align 2, 0
_0802E15C: .4byte 0x040000D4
_0802E160: .4byte gUnknown_081BE4C4
_0802E164: .4byte 0x06015800
_0802E168: .4byte 0x80000C00
_0802E16C: .4byte gUnknown_081BFCE4
_0802E170: .4byte 0x050003C0
_0802E174: .4byte 0x80000010
_0802E178: .4byte gUnknown_08488A0C
_0802E17C: .4byte 0x80000240
_0802E180:
cmp r2, #0x3b
bhi _0802E234
ldrh r0, [r6, #0x18]
lsls r0, r0, #0xe
movs r1, #0x3c
bl __divsi3
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r4, #0
bl sub_C74
adds r1, r0, #0
mov r6, sb
ldr r5, [r6]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #5
adds r0, r0, r1
lsls r0, r0, #2
ldr r6, _0802E218 @ =0x00004E20
adds r1, r6, #0
bl __divsi3
ldr r7, _0802E21C @ =0x000001E7
adds r0, r0, r7
ldr r1, _0802E220 @ =0x0000060C
adds r5, r5, r1
strh r0, [r5]
adds r0, r4, #0
bl sub_C24
mov r2, sb
ldr r4, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #2
adds r1, r1, r0
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #3
adds r1, r6, #0
bl __divsi3
ldr r3, _0802E224 @ =0xFFFFFD8B
adds r0, r0, r3
ldr r5, _0802E228 @ =0x0000060E
adds r1, r4, r5
strh r0, [r1]
movs r6, #0xc2
lsls r6, r6, #3
adds r1, r4, r6
ldr r0, _0802E22C @ =0x0000FFEF
strh r0, [r1]
ldr r7, _0802E230 @ =0x00000612
adds r1, r4, r7
subs r0, #0xd
strh r0, [r1]
ldrh r0, [r4, #0x18]
movs r1, #3
ands r1, r0
lsrs r7, r1, #1
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x10
cmp r0, #0
beq _0802E210
b _0802E4E0
_0802E210:
movs r0, #0x97
bl m4aSongNumStart
b _0802E4E0
.align 2, 0
_0802E218: .4byte 0x00004E20
_0802E21C: .4byte 0x000001E7
_0802E220: .4byte 0x0000060C
_0802E224: .4byte 0xFFFFFD8B
_0802E228: .4byte 0x0000060E
_0802E22C: .4byte 0x0000FFEF
_0802E230: .4byte 0x00000612
_0802E234:
cmp r2, #0x59
bhi _0802E2D0
adds r0, r3, #0
subs r0, #0x3c
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb
bgt _0802E25C
movs r1, #0xc
bl __modsi3
lsls r0, r0, #0x10
asrs r1, r0, #0x10
lsrs r0, r0, #0x1f
adds r1, r1, r0
asrs r1, r1, #1
adds r1, #2
lsls r1, r1, #0x10
lsrs r7, r1, #0x10
b _0802E278
_0802E25C:
subs r0, #0xc
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x12
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #3
bl __divsi3
adds r0, #2
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
_0802E278:
ldr r4, _0802E2BC @ =gUnknown_020314E0
ldr r1, [r4]
ldr r0, _0802E2C0 @ =0x00000612
adds r3, r1, r0
ldrh r0, [r3]
adds r0, #2
movs r5, #0
movs r2, #0
mov r8, r2
strh r0, [r3]
ldr r6, _0802E2C4 @ =0x0000060C
adds r2, r1, r6
adds r6, #4
adds r0, r1, r6
ldrh r0, [r0]
ldrh r6, [r2]
adds r0, r0, r6
strh r0, [r2]
ldr r0, _0802E2C8 @ =0x0000060E
adds r2, r1, r0
ldrh r0, [r3]
ldrh r3, [r2]
adds r0, r0, r3
strh r0, [r2]
ldr r6, _0802E2CC @ =0x0000060A
adds r1, r1, r6
strb r5, [r1]
ldr r0, [r4]
movs r1, #0xc1
lsls r1, r1, #3
adds r0, r0, r1
mov r2, r8
strh r2, [r0]
b _0802E4E0
.align 2, 0
_0802E2BC: .4byte gUnknown_020314E0
_0802E2C0: .4byte 0x00000612
_0802E2C4: .4byte 0x0000060C
_0802E2C8: .4byte 0x0000060E
_0802E2CC: .4byte 0x0000060A
_0802E2D0:
cmp r2, #0xbd
bls _0802E2D6
b _0802E41C
_0802E2D6:
ldr r2, _0802E300 @ =gUnknown_086AE394
ldr r5, _0802E304 @ =0x0000060A
adds r3, r6, r5
movs r1, #0
ldrsb r1, [r3, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #4
adds r0, r0, r2
movs r1, #0
ldrsh r0, [r0, r1]
movs r2, #0xc1
lsls r2, r2, #3
adds r1, r6, r2
ldrh r2, [r1]
cmp r0, r2
ble _0802E308
adds r0, r2, #1
strh r0, [r1]
b _0802E37A
.align 2, 0
_0802E300: .4byte gUnknown_086AE394
_0802E304: .4byte 0x0000060A
_0802E308:
strh r7, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
mov r3, sb
ldr r4, [r3]
ldr r6, _0802E3C4 @ =0x0000060A
adds r0, r4, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #7
bne _0802E366
ldr r3, _0802E3C8 @ =gUnknown_08055A68
adds r0, r4, #0
adds r0, #0x32
movs r2, #0
ldrsb r2, [r0, r2]
ldr r0, _0802E3CC @ =gMain
ldrb r1, [r0, #4]
lsls r0, r1, #3
subs r0, r0, r1
adds r0, r0, r2
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x35
strb r1, [r0]
mov r7, sb
ldr r1, [r7]
ldr r2, _0802E3D0 @ =gUnknown_08137928
adds r0, r1, #0
adds r0, #0x35
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r2, _0802E3D4 @ =0x000006D9
adds r1, r1, r2
strb r0, [r1]
movs r0, #0
movs r1, #0
bl sub_1C7F4
_0802E366:
mov r3, sb
ldr r1, [r3]
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xb
bne _0802E37A
movs r0, #0xbd
strh r0, [r1, #0x18]
_0802E37A:
ldr r2, _0802E3D8 @ =gUnknown_086AE394
ldr r0, _0802E3DC @ =gUnknown_020314E0
ldr r3, [r0]
ldr r5, _0802E3C4 @ =0x0000060A
adds r0, r3, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #1
adds r0, r2, #2
adds r0, r1, r0
ldrh r7, [r0]
adds r2, #4
adds r1, r1, r2
movs r6, #0
ldrsh r0, [r1, r6]
cmp r0, #5
bne _0802E3B4
movs r1, #0xc1
lsls r1, r1, #3
adds r0, r3, r1
ldrh r0, [r0]
cmp r0, #1
bne _0802E3B4
movs r0, #0x98
bl m4aSongNumStart
_0802E3B4:
cmp r7, #0x10
bne _0802E3E8
ldr r0, _0802E3DC @ =gUnknown_020314E0
ldr r0, [r0]
ldr r2, _0802E3E0 @ =0x0000060C
adds r0, r0, r2
ldr r1, _0802E3E4 @ =0x0000FFB0
b _0802E3F2
.align 2, 0
_0802E3C4: .4byte 0x0000060A
_0802E3C8: .4byte gUnknown_08055A68
_0802E3CC: .4byte gMain
_0802E3D0: .4byte gUnknown_08137928
_0802E3D4: .4byte 0x000006D9
_0802E3D8: .4byte gUnknown_086AE394
_0802E3DC: .4byte gUnknown_020314E0
_0802E3E0: .4byte 0x0000060C
_0802E3E4: .4byte 0x0000FFB0
_0802E3E8:
ldr r0, _0802E40C @ =gUnknown_020314E0
ldr r0, [r0]
ldr r3, _0802E410 @ =0x0000060C
adds r0, r0, r3
movs r1, #0
_0802E3F2:
strh r1, [r0]
ldr r0, _0802E40C @ =gUnknown_020314E0
ldr r1, [r0]
movs r5, #0xc2
lsls r5, r5, #3
adds r2, r1, r5
ldr r0, _0802E414 @ =0x0000FFE8
strh r0, [r2]
ldr r6, _0802E418 @ =0x00000612
adds r1, r1, r6
movs r0, #0xe
strh r0, [r1]
b _0802E4E0
.align 2, 0
_0802E40C: .4byte gUnknown_020314E0
_0802E410: .4byte 0x0000060C
_0802E414: .4byte 0x0000FFE8
_0802E418: .4byte 0x00000612
_0802E41C:
ldr r0, _0802E454 @ =0x000001AD
cmp r2, r0
bhi _0802E496
adds r0, r3, #0
subs r0, #0xbe
lsls r0, r0, #0x10
asrs r3, r0, #0x10
cmp r3, #0x17
bgt _0802E45C
lsls r0, r3, #3
subs r0, r0, r3
lsls r0, r0, #1
rsbs r0, r0, #0
ldr r7, _0802E458 @ =0x0000060C
adds r1, r6, r7
strh r0, [r1]
adds r0, r3, #0
movs r1, #0x18
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0
bge _0802E44E
adds r0, #3
_0802E44E:
asrs r0, r0, #2
adds r0, #2
b _0802E48C
.align 2, 0
_0802E454: .4byte 0x000001AD
_0802E458: .4byte 0x0000060C
_0802E45C:
cmp r3, #0x1d
bgt _0802E46E
movs r7, #0xc
cmp r3, #0x18
bne _0802E4E0
movs r0, #0x11
bl m4aSongNumStart
b _0802E4E0
_0802E46E:
cmp r3, #0x29
bgt _0802E492
adds r0, r3, #0
subs r0, #0x1e
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0xc
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #6
bl __divsi3
adds r0, #0xd
_0802E48C:
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
b _0802E4E0
_0802E492:
movs r7, #0xf
b _0802E4E0
_0802E496:
ldr r0, _0802E4F8 @ =0x000001E9
cmp r2, r0
bhi _0802E4E0
ldrh r0, [r6, #0x18]
movs r1, #3
ands r0, r1
lsrs r7, r0, #1
ldr r0, _0802E4FC @ =0x00000612
adds r2, r6, r0
ldrh r0, [r2]
subs r0, #1
strh r0, [r2]
ldr r3, _0802E500 @ =0x0000060C
adds r1, r6, r3
movs r5, #0xc2
lsls r5, r5, #3
adds r0, r6, r5
ldrh r0, [r0]
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
subs r5, #2
adds r1, r6, r5
ldrh r0, [r2]
ldrh r2, [r1]
adds r0, r0, r2
strh r0, [r1]
ldrh r0, [r6, #0x18]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x10
cmp r0, #0
bne _0802E4E0
movs r0, #0x97
bl m4aSongNumStart
_0802E4E0:
ldr r0, _0802E504 @ =gMain
ldrb r1, [r0, #4]
cmp r1, #0
bne _0802E510
ldr r2, _0802E508 @ =0x040000D4
lsls r1, r7, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0802E50C @ =gUnknown_08483D8C
b _0802E51E
.align 2, 0
_0802E4F8: .4byte 0x000001E9
_0802E4FC: .4byte 0x00000612
_0802E500: .4byte 0x0000060C
_0802E504: .4byte gMain
_0802E508: .4byte 0x040000D4
_0802E50C: .4byte gUnknown_08483D8C
_0802E510:
ldr r2, _0802E640 @ =0x040000D4
lsls r1, r7, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0802E644 @ =gUnknown_08488A0C
_0802E51E:
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802E648 @ =0x06015800
str r0, [r2, #4]
ldr r0, _0802E64C @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r2, _0802E650 @ =gUnknown_086AE394
ldr r5, _0802E654 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r3, _0802E658 @ =0x0000060A
adds r0, r4, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r7, [r0]
ldr r6, _0802E65C @ =gMain
ldr r0, [r6, #0x44]
ldr r6, [r0, #0x40]
ldr r1, _0802E660 @ =0x0000060C
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x60
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #2]
ldr r3, _0802E664 @ =0x0000060E
adds r0, r4, r3
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
movs r2, #0x96
lsls r2, r2, #1
adds r0, r0, r2
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r6, #4]
movs r2, #0
mov sb, r5
ldr r3, _0802E668 @ =gOamBuffer
mov r8, r3
ldr r5, _0802E66C @ =gUnknown_086B3FE6
mov ip, r5
lsls r1, r7, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
str r0, [sp]
ldr r7, _0802E670 @ =0xFFFFFE00
mov sl, r7
_0802E59C:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
adds r4, r6, r4
ldrh r2, [r4]
lsls r2, r2, #3
add r2, r8
lsls r1, r3, #1
adds r1, r1, r3
lsls r0, r1, #1
ldr r5, [sp]
adds r0, r0, r5
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r2, #2
adds r0, r1, #1
lsls r0, r0, #1
adds r0, r0, r5
add r0, ip
ldrh r0, [r0]
strh r0, [r2]
adds r1, #2
lsls r1, r1, #1
adds r1, r1, r5
add r1, ip
ldrh r0, [r1]
strh r0, [r2, #2]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, r8
ldrh r5, [r2, #2]
lsls r1, r5, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802E674 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, sl
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, r8
ldrb r0, [r6, #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 _0802E59C
_0802E610:
mov r3, sb
ldr r4, [r3]
ldrh r1, [r4, #0x18]
ldr r0, _0802E678 @ =0x000001E9
cmp r1, r0
bne _0802E62E
ldr r5, _0802E65C @ =gMain
ldr r0, [r5, #0x44]
ldr r1, [r0, #0x40]
movs r2, #0
movs r0, #0
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe4
strb r2, [r0]
_0802E62E:
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
_0802E640: .4byte 0x040000D4
_0802E644: .4byte gUnknown_08488A0C
_0802E648: .4byte 0x06015800
_0802E64C: .4byte 0x80000240
_0802E650: .4byte gUnknown_086AE394
_0802E654: .4byte gUnknown_020314E0
_0802E658: .4byte 0x0000060A
_0802E65C: .4byte gMain
_0802E660: .4byte 0x0000060C
_0802E664: .4byte 0x0000060E
_0802E668: .4byte gOamBuffer
_0802E66C: .4byte gUnknown_086B3FE6
_0802E670: .4byte 0xFFFFFE00
_0802E674: .4byte 0x000001FF
_0802E678: .4byte 0x000001E9
thumb_func_start sub_2E67C
sub_2E67C: @ 0x0802E67C
ldr r0, _0802E6A0 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r0, _0802E6A4 @ =0x00000306
adds r3, r1, r0
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #1
bne _0802E6AA
movs r0, #0xc3
lsls r0, r0, #2
adds r2, r1, r0
ldrh r0, [r2]
adds r1, r0, #0
cmp r1, #0
beq _0802E6A8
subs r0, #1
strh r0, [r2]
b _0802E6AA
.align 2, 0
_0802E6A0: .4byte gUnknown_020314E0
_0802E6A4: .4byte 0x00000306
_0802E6A8:
strb r1, [r3]
_0802E6AA:
bx lr
thumb_func_start sub_2E6AC
sub_2E6AC: @ 0x0802E6AC
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 r1, _0802E6E0 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _0802E6E4 @ =0x00000306
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bls _0802E6D6
bl _0802EFFC
_0802E6D6:
lsls r0, r0, #2
ldr r1, _0802E6E8 @ =_0802E6EC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E6E0: .4byte gUnknown_020314E0
_0802E6E4: .4byte 0x00000306
_0802E6E8: .4byte _0802E6EC
_0802E6EC: @ jump table
.4byte _0802E718 @ case 0
.4byte _0802E75C @ case 1
.4byte _0802E7CC @ case 2
.4byte _0802E7D4 @ case 3
.4byte _0802E8DC @ case 4
.4byte _0802E99C @ case 5
.4byte _0802EB2C @ case 6
.4byte _0802EBE4 @ case 7
.4byte _0802EC40 @ case 8
.4byte _0802EEF8 @ case 9
.4byte _0802EFDC @ case 10
_0802E718:
ldr r3, _0802E750 @ =gUnknown_020314E0
ldr r4, [r3]
ldr r5, _0802E754 @ =0x0000030E
adds r0, r4, r5
movs r5, #0
strh r5, [r0]
movs r7, #0xa4
lsls r7, r7, #2
adds r0, r4, r7
ldr r0, [r0]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
movs r1, #0xc8
lsls r1, r1, #2
adds r0, r4, r1
strh r5, [r0]
ldr r2, _0802E758 @ =0x00000322
adds r4, r4, r2
strh r5, [r4]
bl _0802EFFC
.align 2, 0
_0802E750: .4byte gUnknown_020314E0
_0802E754: .4byte 0x0000030E
_0802E758: .4byte 0x00000322
_0802E75C:
ldr r5, _0802E7B8 @ =gUnknown_086AE45A
ldr r3, _0802E7BC @ =gUnknown_020314E0
ldr r4, [r3]
movs r7, #0xa4
lsls r7, r7, #2
adds r0, r4, r7
ldr r0, [r0]
movs r1, #0x28
bl __umodsi3
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
mov sl, r0
movs r1, #0xc8
lsls r1, r1, #2
adds r0, r4, r1
movs r2, #0
movs r1, #0
strh r1, [r0]
ldr r3, _0802E7C0 @ =0x00000322
adds r0, r4, r3
strh r1, [r0]
ldr r5, _0802E7C4 @ =0x00000307
adds r4, r4, r5
strb r2, [r4]
ldr r7, _0802E7BC @ =gUnknown_020314E0
ldr r3, [r7]
ldr r4, _0802E7C8 @ =0x0000030A
adds r0, r3, r4
strh r1, [r0]
movs r0, #0x13
ldrsb r0, [r3, r0]
cmp r0, #2
bgt _0802E7AC
bl _0802EFFC
_0802E7AC:
subs r5, #1
adds r0, r3, r5
strb r2, [r0]
mov sl, r1
bl _0802EFFC
.align 2, 0
_0802E7B8: .4byte gUnknown_086AE45A
_0802E7BC: .4byte gUnknown_020314E0
_0802E7C0: .4byte 0x00000322
_0802E7C4: .4byte 0x00000307
_0802E7C8: .4byte 0x0000030A
_0802E7CC:
movs r7, #4
mov sl, r7
bl _0802EFFC
_0802E7D4:
ldr r0, _0802E83C @ =gUnknown_020314E0
ldr r1, [r0]
movs r4, #0xc3
lsls r4, r4, #2
adds r0, r1, r4
ldrh r2, [r0]
cmp r2, #2
bhi _0802E84C
cmp r2, #0
bne _0802E81A
ldr r3, _0802E840 @ =0x000005F7
adds r0, r1, r3
movs r1, #1
strb r1, [r0]
ldr r5, _0802E83C @ =gUnknown_020314E0
ldr r0, [r5]
strb r1, [r0, #0x1f]
ldr r0, [r5]
ldr r7, _0802E844 @ =0x0000132C
adds r0, r0, r7
ldr r1, [r0]
strh r2, [r1, #0x30]
ldr r1, [r0]
strh r2, [r1, #0x32]
ldr r0, [r0]
strh r2, [r0, #6]
movs r0, #0xe2
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
ldr r1, [r5]
ldr r0, _0802E848 @ =0x000186A0
str r0, [r1, #0x3c]
_0802E81A:
ldr r0, _0802E83C @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0802E844 @ =0x0000132C
adds r3, r1, r2
ldr r2, [r3]
movs r0, #0x9c
strh r0, [r2, #0x10]
ldr r2, [r3]
adds r1, r1, r4
ldrh r0, [r1]
lsls r0, r0, #1
adds r0, #0x79
strh r0, [r2, #0x12]
movs r3, #4
mov sl, r3
b _0802E886
.align 2, 0
_0802E83C: .4byte gUnknown_020314E0
_0802E840: .4byte 0x000005F7
_0802E844: .4byte 0x0000132C
_0802E848: .4byte 0x000186A0
_0802E84C:
cmp r2, #0x16
bhi _0802E870
ldr r4, _0802E86C @ =0x0000132C
adds r1, r1, r4
ldr r2, [r1]
movs r0, #0x9d
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0x86
strh r0, [r2, #0x12]
ldr r1, [r1]
movs r0, #1
strb r0, [r1]
movs r5, #5
mov sl, r5
b _0802E886
.align 2, 0
_0802E86C: .4byte 0x0000132C
_0802E870:
ldr r7, _0802E8D0 @ =0x00000306
adds r1, r1, r7
movs r2, #0
movs r0, #4
strb r0, [r1]
ldr r1, _0802E8D4 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, r0, r4
strh r2, [r0]
movs r2, #2
mov sl, r2
_0802E886:
ldr r4, _0802E8D4 @ =gUnknown_020314E0
ldr r3, [r4]
ldr r5, _0802E8D8 @ =0x0000132C
adds r2, r3, r5
ldr r1, [r2]
movs r7, #0x10
ldrsh r0, [r1, r7]
lsls r0, r0, #1
movs r4, #0
strh r0, [r1, #0x28]
ldr r1, [r2]
movs r5, #0x12
ldrsh r0, [r1, r5]
lsls r0, r0, #1
strh r0, [r1, #0x2a]
ldr r1, [r2]
movs r7, #0x10
ldrsh r0, [r1, r7]
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r2]
movs r2, #0x12
ldrsh r0, [r1, r2]
lsls r0, r0, #8
str r0, [r1, #0x38]
movs r5, #0xc3
lsls r5, r5, #2
adds r1, r3, r5
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
movs r7, #0xc4
lsls r7, r7, #2
adds r3, r3, r7
strh r4, [r3]
b _0802EFFC
.align 2, 0
_0802E8D0: .4byte 0x00000306
_0802E8D4: .4byte gUnknown_020314E0
_0802E8D8: .4byte 0x0000132C
_0802E8DC:
ldr r2, _0802E908 @ =gUnknown_086AE3DC
ldr r5, _0802E90C @ =gUnknown_020314E0
ldr r3, [r5]
ldr r6, _0802E910 @ =0x00000307
adds r4, r3, r6
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r2, #4
adds r0, r0, r2
movs r1, #0
ldrsh r0, [r0, r1]
ldr r2, _0802E914 @ =0x0000030A
adds r3, r3, r2
ldrh r1, [r3]
cmp r0, r1
ble _0802E918
adds r0, r1, #1
strh r0, [r3]
b _0802E95C
.align 2, 0
_0802E908: .4byte gUnknown_086AE3DC
_0802E90C: .4byte gUnknown_020314E0
_0802E910: .4byte 0x00000307
_0802E914: .4byte 0x0000030A
_0802E918:
movs r2, #0
strh r2, [r3]
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldr r0, [r5]
ldr r3, _0802E98C @ =0x00000307
adds r1, r0, r3
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x15
bne _0802E948
movs r0, #0x14
strb r0, [r1]
ldr r0, [r5]
ldr r4, _0802E990 @ =0x00000306
adds r0, r0, r4
movs r1, #5
strb r1, [r0]
ldr r0, [r5]
movs r7, #0xc3
lsls r7, r7, #2
adds r0, r0, r7
strh r2, [r0]
_0802E948:
ldr r0, [r5]
adds r0, r0, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _0802E95C
movs r0, #0xe3
bl m4aSongNumStart
_0802E95C:
ldr r2, _0802E994 @ =gUnknown_086AE3DC
ldr r0, _0802E998 @ =gUnknown_020314E0
ldr r3, [r0]
ldr r1, _0802E98C @ =0x00000307
adds r0, r3, r1
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, #2
adds r0, r0, r2
ldrh r0, [r0]
mov sl, r0
movs r2, #0xc4
lsls r2, r2, #2
adds r3, r3, r2
ldrh r0, [r3]
adds r1, r0, #1
strh r1, [r3]
b _0802EB06
.align 2, 0
_0802E98C: .4byte 0x00000307
_0802E990: .4byte 0x00000306
_0802E994: .4byte gUnknown_086AE3DC
_0802E998: .4byte gUnknown_020314E0
_0802E99C:
ldr r3, _0802EABC @ =gUnknown_020314E0
ldr r2, [r3]
movs r4, #0xc3
lsls r4, r4, #2
adds r0, r2, r4
ldrh r0, [r0]
cmp r0, #0
bne _0802E9BE
movs r5, #0xc8
lsls r5, r5, #2
adds r1, r2, r5
ldr r0, _0802EAC0 @ =0x0000FE98
strh r0, [r1]
ldr r7, _0802EAC4 @ =0x00000322
adds r1, r2, r7
adds r0, #0xa0
strh r0, [r1]
_0802E9BE:
ldr r0, _0802EABC @ =gUnknown_020314E0
ldr r7, [r0]
movs r1, #0xc3
lsls r1, r1, #2
adds r1, r1, r7
mov sb, r1
ldrh r0, [r1]
movs r1, #0x1a
bl __umodsi3
ldr r2, _0802EAC8 @ =gUnknown_08137CBC
ldr r1, _0802EACC @ =0x0000FFFE
ands r0, r1
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sl, r1
adds r2, #1
adds r0, r0, r2
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
ldr r2, _0802EAD0 @ =0x0000030E
adds r1, r7, r2
strh r0, [r1]
movs r3, #0xc7
lsls r3, r3, #2
adds r2, r7, r3
ldr r4, _0802EAD4 @ =0x0000FFF4
mov r8, r4
mov r5, r8
strh r5, [r2]
ldr r0, _0802EAD8 @ =0x0000031E
adds r3, r7, r0
ldr r0, _0802EADC @ =0x0000FFF6
strh r0, [r3]
movs r4, #0xc8
lsls r4, r4, #2
adds r1, r7, r4
ldrh r0, [r2]
ldrh r5, [r1]
adds r0, r0, r5
strh r0, [r1]
ldr r0, _0802EAC4 @ =0x00000322
adds r5, r7, r0
ldrh r0, [r3]
ldrh r2, [r5]
adds r0, r0, r2
strh r0, [r5]
ldr r3, _0802EAE0 @ =0x0000132C
adds r4, r7, r3
ldr r6, [r4]
movs r2, #0
ldrsh r0, [r1, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x9d
strh r0, [r6, #0x10]
ldr r6, [r4]
movs r3, #0
ldrsh r0, [r5, r3]
movs r1, #0xa
bl __divsi3
adds r0, #0x86
strh r0, [r6, #0x12]
ldr r1, [r4]
movs r5, #0x10
ldrsh r0, [r1, r5]
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]
movs r5, #0x12
ldrsh r0, [r1, r5]
lsls r0, r0, #8
str r0, [r1, #0x38]
mov r1, sb
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r0, [r4]
movs r2, #0x12
ldrsh r0, [r0, r2]
mov r3, r8
lsls r3, r3, #0x10
asrs r3, r3, #0x10
mov r8, r3
cmp r0, r8
bge _0802EAF6
movs r4, #0xc2
lsls r4, r4, #2
adds r1, r7, r4
ldrh r0, [r1]
cmp r0, #0x63
bls _0802EAE8
movs r5, #0
strh r5, [r1]
ldr r0, _0802EAE4 @ =0x00000306
adds r1, r7, r0
movs r0, #6
strb r0, [r1]
ldr r1, _0802EABC @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xc3
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #0x41
strh r1, [r0]
bl m4aMPlayAllStop
b _0802EAF6
.align 2, 0
_0802EABC: .4byte gUnknown_020314E0
_0802EAC0: .4byte 0x0000FE98
_0802EAC4: .4byte 0x00000322
_0802EAC8: .4byte gUnknown_08137CBC
_0802EACC: .4byte 0x0000FFFE
_0802EAD0: .4byte 0x0000030E
_0802EAD4: .4byte 0x0000FFF4
_0802EAD8: .4byte 0x0000031E
_0802EADC: .4byte 0x0000FFF6
_0802EAE0: .4byte 0x0000132C
_0802EAE4: .4byte 0x00000306
_0802EAE8:
movs r4, #0
mov r3, sb
strh r4, [r3]
ldr r5, _0802EB24 @ =0x00000306
adds r1, r7, r5
movs r0, #7
strb r0, [r1]
_0802EAF6:
ldr r0, _0802EB28 @ =gUnknown_020314E0
ldr r1, [r0]
movs r7, #0xc4
lsls r7, r7, #2
adds r1, r1, r7
ldrh r0, [r1]
adds r2, r0, #1
strh r2, [r1]
_0802EB06:
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x23
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x22
beq _0802EB1A
b _0802EFFC
_0802EB1A:
movs r0, #0xe3
bl m4aSongNumStart
b _0802EFFC
.align 2, 0
_0802EB24: .4byte 0x00000306
_0802EB28: .4byte gUnknown_020314E0
_0802EB2C:
ldr r1, _0802EBC4 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0x88
lsls r2, r2, #5
adds r0, r0, r2
movs r1, #1
strb r1, [r0]
ldr r0, _0802EBC8 @ =gUnknown_08137CBC
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
ldr r3, _0802EBC4 @ =gUnknown_020314E0
ldr r0, [r3]
movs r5, #0xc3
lsls r5, r5, #2
adds r0, r0, r5
ldrh r0, [r0]
cmp r0, #0x41
bne _0802EB66
movs r0, #0x9f
bl m4aSongNumStart
ldr r0, _0802EBCC @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0x9e
strh r1, [r0, #0x38]
_0802EB66:
ldr r7, _0802EBC4 @ =gUnknown_020314E0
ldr r4, [r7]
adds r3, r4, r5
ldrh r0, [r3]
cmp r0, #0
bne _0802EB74
b _0802EFFC
_0802EB74:
subs r0, #1
strh r0, [r3]
ldr r2, _0802EBCC @ =gMain
ldrh r0, [r3]
lsrs r0, r0, #2
movs r1, #0x10
subs r1, r1, r0
ldrh r0, [r2, #0x3c]
strh r1, [r2, #0x3c]
ldrh r0, [r3]
cmp r0, #0
beq _0802EB8E
b _0802EFFC
_0802EB8E:
movs r0, #0xa1
lsls r0, r0, #2
adds r1, r4, r0
movs r0, #7
strb r0, [r1]
ldr r0, [r7]
ldr r1, _0802EBD0 @ =0x00000282
adds r0, r0, r1
movs r1, #2
strb r1, [r0]
ldr r0, [r7]
ldr r2, _0802EBD4 @ =0x0000072E
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, _0802EBD8 @ =0x0000073C
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r7]
ldr r4, _0802EBDC @ =0x0000072F
adds r1, r0, r4
ldrb r1, [r1]
ldr r5, _0802EBE0 @ =0x0000073D
adds r0, r0, r5
strb r1, [r0]
bl sub_1C73C
b _0802EFFC
.align 2, 0
_0802EBC4: .4byte gUnknown_020314E0
_0802EBC8: .4byte gUnknown_08137CBC
_0802EBCC: .4byte gMain
_0802EBD0: .4byte 0x00000282
_0802EBD4: .4byte 0x0000072E
_0802EBD8: .4byte 0x0000073C
_0802EBDC: .4byte 0x0000072F
_0802EBE0: .4byte 0x0000073D
_0802EBE4:
ldr r7, _0802EC28 @ =gUnknown_020314E0
ldr r1, [r7]
movs r0, #0xc8
lsls r0, r0, #2
adds r2, r1, r0
movs r3, #0
ldr r0, _0802EC2C @ =0x0000F8A8
strh r0, [r2]
ldr r4, _0802EC30 @ =0x00000322
adds r2, r1, r4
ldr r0, _0802EC34 @ =0x0000FCE0
strh r0, [r2]
movs r5, #0xc7
lsls r5, r5, #2
adds r2, r1, r5
movs r0, #0x52
strh r0, [r2]
ldr r7, _0802EC38 @ =0x0000031E
adds r0, r1, r7
strh r3, [r0]
movs r2, #0xc3
lsls r2, r2, #2
adds r0, r1, r2
strh r3, [r0]
ldr r3, _0802EC3C @ =0x00000306
adds r1, r1, r3
movs r0, #8
strb r0, [r1]
movs r4, #0xd
mov sl, r4
movs r5, #9
str r5, [sp]
b _0802EFFC
.align 2, 0
_0802EC28: .4byte gUnknown_020314E0
_0802EC2C: .4byte 0x0000F8A8
_0802EC30: .4byte 0x00000322
_0802EC34: .4byte 0x0000FCE0
_0802EC38: .4byte 0x0000031E
_0802EC3C: .4byte 0x00000306
_0802EC40:
ldr r6, _0802ECCC @ =gUnknown_020314E0
ldr r0, [r6]
movs r5, #0xc3
lsls r5, r5, #2
adds r0, r0, r5
ldrh r4, [r0]
adds r0, r4, #0
movs r1, #0x18
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #6
bl __udivsi3
adds r0, #0xd
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
lsls r4, r4, #0x1a
lsrs r4, r4, #0x10
adds r0, r4, #0
bl sub_C24
adds r1, r0, #0
ldr r4, [r6]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #4
ldr r1, _0802ECD0 @ =0x00004E20
bl __divsi3
ldr r7, _0802ECD4 @ =0x0000030E
adds r1, r4, r7
movs r7, #0
strh r0, [r1]
adds r4, r4, r5
ldrh r0, [r4]
cmp r0, #0
bne _0802EC9A
movs r0, #0xe4
bl m4aSongNumStart
_0802EC9A:
ldr r2, [r6]
adds r1, r2, r5
ldrh r0, [r1]
cmp r0, #0x27
bhi _0802ECE0
movs r0, #0xc8
lsls r0, r0, #2
adds r1, r2, r0
movs r3, #0xc7
lsls r3, r3, #2
adds r0, r2, r3
ldrh r0, [r0]
ldrh r4, [r1]
adds r0, r0, r4
strh r0, [r1]
ldr r5, _0802ECD8 @ =0x00000322
adds r1, r2, r5
ldr r7, _0802ECDC @ =0x0000031E
adds r0, r2, r7
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r0, r2
strh r0, [r1]
b _0802ED14
.align 2, 0
_0802ECCC: .4byte gUnknown_020314E0
_0802ECD0: .4byte 0x00004E20
_0802ECD4: .4byte 0x0000030E
_0802ECD8: .4byte 0x00000322
_0802ECDC: .4byte 0x0000031E
_0802ECE0:
cmp r0, #0x45
bls _0802ED14
strh r7, [r1]
ldr r3, _0802EDF4 @ =0x00000306
adds r1, r2, r3
movs r0, #9
strb r0, [r1]
ldr r1, [r6]
movs r4, #0xc8
lsls r4, r4, #2
adds r2, r1, r4
movs r0, #0x96
lsls r0, r0, #3
strh r0, [r2]
ldr r5, _0802EDF8 @ =0x00000322
adds r1, r1, r5
ldr r0, _0802EDFC @ =0x0000FC18
strh r0, [r1]
movs r0, #0xe3
bl m4aSongNumStart
ldr r0, [r6]
movs r1, #0xc4
lsls r1, r1, #2
adds r0, r0, r1
strh r7, [r0]
_0802ED14:
ldr r0, _0802EE00 @ =gUnknown_020314E0
ldr r2, [r0]
movs r6, #0xc3
lsls r6, r6, #2
adds r1, r2, r6
ldrh r1, [r1]
cmp r1, #0xd
bne _0802ED90
ldr r5, _0802EE04 @ =0x0000132C
adds r0, r2, r5
ldr r1, [r0]
movs r0, #0
strb r0, [r1]
ldr r2, _0802EE00 @ =gUnknown_020314E0
ldr r4, [r2]
movs r3, #0xc5
lsls r3, r3, #2
adds r1, r4, r3
movs r0, #5
strh r0, [r1]
ldr r7, _0802EE08 @ =0x00000316
adds r1, r4, r7
ldr r0, _0802EE0C @ =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]
adds r7, #0xc
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, #0x86
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
ldr r2, _0802EE10 @ =0x0000031A
adds r0, r4, r2
strh r1, [r0]
adds r4, r4, r5
ldr r1, [r4]
movs r0, #1
strb r0, [r1, #1]
_0802ED90:
ldr r3, _0802EE00 @ =gUnknown_020314E0
ldr r7, [r3]
ldrb r0, [r7, #0x1f]
cmp r0, #0
bne _0802ED9C
b _0802EED8
_0802ED9C:
adds r0, r7, r6
ldrh r0, [r0]
cmp r0, #0xc
bhi _0802EE14
ldr r5, _0802EE04 @ =0x0000132C
adds r4, r7, r5
ldr r5, [r4]
movs r1, #0xc8
lsls r1, r1, #2
adds r0, r7, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r0, #0x9d
strh r0, [r5, #0x10]
ldr r5, [r4]
ldr r3, _0802EDF8 @ =0x00000322
adds r0, r7, r3
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
adds r0, #0x86
strh r0, [r5, #0x12]
ldr r1, [r4]
movs r2, #0x10
ldrsh r0, [r1, r2]
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]
movs r5, #0x10
ldrsh r0, [r1, r5]
lsls r0, r0, #8
str r0, [r1, #0x34]
ldr r1, [r4]
b _0802EED0
.align 2, 0
_0802EDF4: .4byte 0x00000306
_0802EDF8: .4byte 0x00000322
_0802EDFC: .4byte 0x0000FC18
_0802EE00: .4byte gUnknown_020314E0
_0802EE04: .4byte 0x0000132C
_0802EE08: .4byte 0x00000316
_0802EE0C: .4byte 0x0000FFE7
_0802EE10: .4byte 0x0000031A
_0802EE14:
ldr r0, _0802EEE4 @ =0x00000316
adds r1, r7, r0
ldrh r0, [r1]
adds r0, #2
movs r2, #0
mov r8, r2
strh r0, [r1]
movs r3, #0xc6
lsls r3, r3, #2
adds r2, r7, r3
movs r4, #0xc5
lsls r4, r4, #2
adds r0, r7, r4
ldrh r0, [r0]
ldrh r5, [r2]
adds r0, r0, r5
strh r0, [r2]
ldr r0, _0802EEE8 @ =0x0000031A
adds r4, r7, r0
ldrh r0, [r1]
ldrh r1, [r4]
adds r0, r0, r1
strh r0, [r4]
ldr r3, _0802EEEC @ =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, #0x5a
ble _0802EEAA
movs r0, #0x5b
strh r0, [r5, #0x12]
ldr r4, _0802EEF0 @ =0x000005F7
adds r0, r7, r4
mov r5, r8
strb r5, [r0]
ldr r7, _0802EEF4 @ =gUnknown_020314E0
ldr r0, [r7]
strb r5, [r0, #0x1f]
ldr r1, [r7]
ldr r0, _0802EEEC @ =0x0000132C
adds r1, r1, r0
ldr r2, [r1]
movs r0, #0x80
strh r0, [r2, #0x30]
ldr r2, [r1]
adds r0, #0x80
strh r0, [r2, #0x32]
ldr r1, [r1]
movs r0, #3
strb r0, [r1, #1]
ldr r0, [r7]
adds r0, #0x24
strb r5, [r0]
movs r0, #0xe5
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
_0802EEAA:
ldr r2, _0802EEF4 @ =gUnknown_020314E0
ldr r1, [r2]
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 r4, #0x12
ldrsh r0, [r2, r4]
lsls r0, r0, #1
strh r0, [r2, #0x2a]
ldr r2, [r1]
movs r5, #0x10
ldrsh r0, [r2, r5]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r1, [r1]
_0802EED0:
movs r7, #0x12
ldrsh r0, [r1, r7]
lsls r0, r0, #8
str r0, [r1, #0x38]
_0802EED8:
movs r0, #9
str r0, [sp]
ldr r2, _0802EEF4 @ =gUnknown_020314E0
ldr r1, [r2]
b _0802EFBC
.align 2, 0
_0802EEE4: .4byte 0x00000316
_0802EEE8: .4byte 0x0000031A
_0802EEEC: .4byte 0x0000132C
_0802EEF0: .4byte 0x000005F7
_0802EEF4: .4byte gUnknown_020314E0
_0802EEF8:
ldr r0, _0802EF64 @ =gUnknown_020314E0
ldr r4, [r0]
movs r7, #0xc3
lsls r7, r7, #2
adds r5, r4, r7
ldrh r0, [r5]
movs r1, #0x1a
bl __umodsi3
ldr r2, _0802EF68 @ =gUnknown_08137CBC
ldr r1, _0802EF6C @ =0x0000FFFE
ands r0, r1
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r1, #4
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sl, r1
adds r2, #1
adds r0, r0, r2
movs r1, #0
ldrsb r1, [r0, r1]
ldr r2, _0802EF70 @ =0x0000030E
adds r0, r4, r2
strh r1, [r0]
movs r3, #0xc7
lsls r3, r3, #2
adds r2, r4, r3
ldr r0, _0802EF74 @ =0x0000FFF4
strh r0, [r2]
adds r7, #0x12
adds r3, r4, r7
movs r0, #0xa
strh r0, [r3]
ldrh r0, [r5]
cmp r0, #0x63
bhi _0802EF7C
movs r0, #0xc8
lsls r0, r0, #2
adds r1, r4, r0
ldrh r0, [r2]
ldrh r2, [r1]
adds r0, r0, r2
strh r0, [r1]
ldr r5, _0802EF78 @ =0x00000322
adds r1, r4, r5
ldrh r0, [r3]
ldrh r7, [r1]
adds r0, r0, r7
strh r0, [r1]
b _0802EF90
.align 2, 0
_0802EF64: .4byte gUnknown_020314E0
_0802EF68: .4byte gUnknown_08137CBC
_0802EF6C: .4byte 0x0000FFFE
_0802EF70: .4byte 0x0000030E
_0802EF74: .4byte 0x0000FFF4
_0802EF78: .4byte 0x00000322
_0802EF7C:
movs r0, #0
strh r0, [r5]
ldr r0, _0802EFCC @ =0x00000306
adds r1, r4, r0
movs r0, #0xa
strb r0, [r1]
ldr r0, _0802EFD0 @ =gMPlayInfo_SE1
ldr r1, _0802EFD4 @ =gUnknown_086A11A4
bl MPlayStart
_0802EF90:
ldr r4, _0802EFD8 @ =gUnknown_020314E0
ldr r1, [r4]
movs r2, #0xc4
lsls r2, r2, #2
adds r1, r1, r2
ldrh r0, [r1]
adds r2, r0, #1
strh r2, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x23
bl __modsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x22
bne _0802EFBA
ldr r0, _0802EFD0 @ =gMPlayInfo_SE1
ldr r1, _0802EFD4 @ =gUnknown_086A11A4
bl MPlayStart
_0802EFBA:
ldr r1, [r4]
_0802EFBC:
movs r3, #0xc3
lsls r3, r3, #2
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0802EFFC
.align 2, 0
_0802EFCC: .4byte 0x00000306
_0802EFD0: .4byte gMPlayInfo_SE1
_0802EFD4: .4byte gUnknown_086A11A4
_0802EFD8: .4byte gUnknown_020314E0
_0802EFDC:
ldr r4, _0802F10C @ =gUnknown_020314E0
ldr r0, [r4]
ldr r5, _0802F110 @ =0x0000030E
adds r1, r0, r5
movs r2, #0
movs r3, #0
strh r3, [r1]
ldr r7, _0802F114 @ =0x00000306
adds r0, r0, r7
strb r2, [r0]
ldr r0, [r4]
movs r1, #0xc3
lsls r1, r1, #2
adds r0, r0, r1
strh r3, [r0]
mov sl, r3
_0802EFFC:
ldr r2, _0802F118 @ =gUnknown_0200DED8
ldrh r0, [r2]
cmp r0, #0
beq _0802F0FA
ldr r2, _0802F11C @ =0x040000D4
mov r3, sl
lsls r1, r3, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0802F120 @ =gUnknown_084BB16C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802F124 @ =0x060122A0
str r0, [r2, #4]
ldr r0, _0802F128 @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _0802F10C @ =gUnknown_020314E0
ldr r4, [r0]
movs r5, #0xc8
lsls r5, r5, #2
adds r0, r4, r5
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r1, #0x92
subs r0, r0, r1
ldr r1, _0802F118 @ =gUnknown_0200DED8
strh r0, [r1, #2]
ldr r2, _0802F12C @ =0x00000322
adds r0, r4, r2
movs r3, #0
ldrsh r0, [r0, r3]
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 r7, _0802F110 @ =0x0000030E
adds r4, r4, r7
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #0xa
bl __divsi3
adds r5, r5, r0
ldr r2, _0802F118 @ =gUnknown_0200DED8
strh r5, [r2, #4]
movs r2, #0
ldr r3, [sp]
lsls r1, r3, #0x10
ldr r4, _0802F130 @ =gUnknown_086B3EF6
mov sb, r4
ldr r6, _0802F134 @ =gOamBuffer
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
mov sl, r0
ldr r5, _0802F138 @ =0xFFFFFE00
mov r8, r5
_0802F08C:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
ldr r7, _0802F118 @ =gUnknown_0200DED8
adds r4, r7, r4
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, 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, [r4]
lsls r2, r2, #3
adds r2, r2, r6
ldrh r0, [r2, #2]
mov ip, r0
mov r5, ip
lsls r1, r5, #0x17
lsrs r1, r1, #0x17
movs r5, #2
ldrsh r0, [r7, r5]
adds r1, r1, r0
ldr r7, _0802F13C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
mov r5, ip
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r6
ldr r7, _0802F118 @ =gUnknown_0200DED8
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, #3
ble _0802F08C
_0802F0FA:
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
_0802F10C: .4byte gUnknown_020314E0
_0802F110: .4byte 0x0000030E
_0802F114: .4byte 0x00000306
_0802F118: .4byte gUnknown_0200DED8
_0802F11C: .4byte 0x040000D4
_0802F120: .4byte gUnknown_084BB16C
_0802F124: .4byte 0x060122A0
_0802F128: .4byte 0x80000240
_0802F12C: .4byte 0x00000322
_0802F130: .4byte gUnknown_086B3EF6
_0802F134: .4byte gOamBuffer
_0802F138: .4byte 0xFFFFFE00
_0802F13C: .4byte 0x000001FF
thumb_func_start sub_2F140
sub_2F140: @ 0x0802F140
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _0802F240 @ =gUnknown_020314E0
ldr r5, [r0]
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r5, r1
ldr r0, [r0]
movs r1, #0x1f
ands r0, r1
lsrs r4, r0, #4
ldr r6, _0802F244 @ =gUnknown_0200E9A0
movs r2, #0xbd
lsls r2, r2, #2
adds r1, r5, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0802F170
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_0802F170:
ldr r2, _0802F248 @ =gUnknown_086AE462
lsls r0, r4, #0x10
asrs r0, r0, #0xe
adds r1, r0, r2
ldrh r3, [r1]
adds r2, #2
adds r0, r0, r2
ldrh r4, [r0]
adds r0, r5, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xa4
subs r0, r0, r1
strh r0, [r6, #2]
adds r0, r5, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0xa6
subs r0, r0, r1
strh r0, [r6, #4]
ldr r2, _0802F24C @ =0x040000D4
lsls r1, r4, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0802F250 @ =gUnknown_083FFD8C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802F254 @ =0x06012720
str r0, [r2, #4]
ldr r0, _0802F258 @ =0x80000180
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r1, #0
ldr r7, _0802F25C @ =gUnknown_086B4A72
mov sb, r7
ldr r0, _0802F260 @ =gOamBuffer
mov sl, r0
lsls r3, r3, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #2
mov ip, r0
ldr r2, _0802F264 @ =0xFFFFFE00
mov r8, r2
_0802F1CE:
lsls r3, r1, #0x10
asrs r3, r3, #0x10
lsls r4, r3, #3
adds r4, #8
adds r4, r6, r4
ldrh r2, [r4]
lsls r2, r2, #3
add r2, sl
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
add r0, sb
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
add r2, sl
ldrh r5, [r2, #2]
lsls r1, r5, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802F268 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r5
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, sl
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r1, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _0802F1CE
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
_0802F240: .4byte gUnknown_020314E0
_0802F244: .4byte gUnknown_0200E9A0
_0802F248: .4byte gUnknown_086AE462
_0802F24C: .4byte 0x040000D4
_0802F250: .4byte gUnknown_083FFD8C
_0802F254: .4byte 0x06012720
_0802F258: .4byte 0x80000180
_0802F25C: .4byte gUnknown_086B4A72
_0802F260: .4byte gOamBuffer
_0802F264: .4byte 0xFFFFFE00
_0802F268: .4byte 0x000001FF
thumb_func_start sub_2F26C
sub_2F26C: @ 0x0802F26C
push {r4, r5, r6, lr}
ldr r1, _0802F290 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xde
lsls r2, r2, #2
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #4
bls _0802F286
b _0802F4FA
_0802F286:
lsls r0, r0, #2
ldr r1, _0802F294 @ =_0802F298
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802F290: .4byte gUnknown_020314E0
_0802F294: .4byte _0802F298
_0802F298: @ jump table
.4byte _0802F2AC @ case 0
.4byte _0802F2F0 @ case 1
.4byte _0802F384 @ case 2
.4byte _0802F408 @ case 3
.4byte _0802F4DC @ case 4
_0802F2AC:
ldr r4, [r5]
movs r3, #0xa4
lsls r3, r3, #2
adds r0, r4, r3
ldr r0, [r0]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
adds r0, #2
ldr r2, _0802F2E8 @ =0x00000379
adds r4, r4, r2
movs r3, #0
strb r0, [r4]
ldr r1, [r5]
adds r2, r1, r2
ldrb r0, [r2]
adds r0, #1
ldr r2, _0802F2EC @ =0x0000037A
adds r1, r1, r2
strb r0, [r1]
ldr r0, [r5]
movs r1, #0xdf
lsls r1, r1, #2
adds r0, r0, r1
strb r3, [r0]
b _0802F4FA
.align 2, 0
_0802F2E8: .4byte 0x00000379
_0802F2EC: .4byte 0x0000037A
_0802F2F0:
ldr r4, [r5]
movs r2, #0xa4
lsls r2, r2, #2
adds r0, r4, r2
ldr r0, [r0]
movs r1, #0x21
bl __umodsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc
bgt _0802F320
ldr r3, _0802F318 @ =0x00000379
adds r0, r4, r3
movs r1, #0
strb r1, [r0]
ldr r0, [r5]
ldr r2, _0802F31C @ =0x0000037A
adds r0, r0, r2
b _0802F360
.align 2, 0
_0802F318: .4byte 0x00000379
_0802F31C: .4byte 0x0000037A
_0802F320:
cmp r0, #0x13
bgt _0802F330
ldr r3, _0802F32C @ =0x00000379
adds r1, r4, r3
b _0802F354
.align 2, 0
_0802F32C: .4byte 0x00000379
_0802F330:
cmp r0, #0x19
bgt _0802F350
ldr r2, _0802F348 @ =0x00000379
adds r1, r4, r2
movs r0, #1
strb r0, [r1]
ldr r0, [r5]
ldr r3, _0802F34C @ =0x0000037A
adds r0, r0, r3
movs r1, #2
b _0802F360
.align 2, 0
_0802F348: .4byte 0x00000379
_0802F34C: .4byte 0x0000037A
_0802F350:
ldr r0, _0802F37C @ =0x00000379
adds r1, r4, r0
_0802F354:
movs r0, #9
strb r0, [r1]
ldr r0, [r5]
ldr r1, _0802F380 @ =0x0000037A
adds r0, r0, r1
movs r1, #1
_0802F360:
strb r1, [r0]
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _0802F374
b _0802F4FA
_0802F374:
movs r2, #0xdf
lsls r2, r2, #2
adds r1, r1, r2
b _0802F4D0
.align 2, 0
_0802F37C: .4byte 0x00000379
_0802F380: .4byte 0x0000037A
_0802F384:
ldr r0, [r5]
movs r3, #0xdf
lsls r3, r3, #2
adds r0, r0, r3
movs r2, #0
strb r2, [r0]
ldr r0, [r5]
ldr r1, _0802F3E8 @ =0x0000037D
adds r0, r0, r1
strb r2, [r0]
ldr r1, [r5]
adds r3, #2
adds r0, r1, r3
movs r3, #0
strh r2, [r0]
movs r0, #0xde
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #3
strb r0, [r1]
ldr r0, [r5]
ldr r1, _0802F3EC @ =0x0000037B
adds r0, r0, r1
strb r3, [r0]
ldr r0, _0802F3F0 @ =gMain
movs r2, #0xb3
lsls r2, r2, #5
adds r0, r0, r2
movs r1, #1
strh r1, [r0]
ldr r0, [r5]
adds r0, #0xe4
movs r1, #0x16
strb r1, [r0]
ldr r1, _0802F3F4 @ =0x040000D4
ldr r0, _0802F3F8 @ =gUnknown_08526DCC
str r0, [r1]
ldr r0, _0802F3FC @ =0x06015800
str r0, [r1, #4]
ldr r0, _0802F400 @ =0x80000600
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #0xec
bl m4aSongNumStart
ldr r1, [r5]
ldr r0, _0802F404 @ =0x00001388
str r0, [r1, #0x3c]
b _0802F4FA
.align 2, 0
_0802F3E8: .4byte 0x0000037D
_0802F3EC: .4byte 0x0000037B
_0802F3F0: .4byte gMain
_0802F3F4: .4byte 0x040000D4
_0802F3F8: .4byte gUnknown_08526DCC
_0802F3FC: .4byte 0x06015800
_0802F400: .4byte 0x80000600
_0802F404: .4byte 0x00001388
_0802F408:
ldr r3, _0802F434 @ =gUnknown_086AE496
ldr r2, [r5]
ldr r0, _0802F438 @ =0x0000037D
adds r4, r2, r0
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r3, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldr r1, _0802F43C @ =0x0000037E
adds r2, r2, r1
ldrh r1, [r2]
adds r6, r3, #0
cmp r0, r1
ble _0802F440
adds r0, r1, #1
strh r0, [r2]
b _0802F46C
.align 2, 0
_0802F434: .4byte gUnknown_086AE496
_0802F438: .4byte 0x0000037D
_0802F43C: .4byte 0x0000037E
_0802F440:
ldrb r0, [r4]
adds r0, #1
movs r2, #0
strb r0, [r4]
ldr r1, [r5]
ldr r3, _0802F4B8 @ =0x0000037E
adds r0, r1, r3
strh r2, [r0]
ldr r0, _0802F4BC @ =0x0000037D
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x10
ble _0802F46C
movs r0, #0x10
strb r0, [r1]
ldr r0, [r5]
movs r1, #0xde
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
_0802F46C:
ldr r2, [r5]
ldr r3, _0802F4BC @ =0x0000037D
adds r0, r2, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r0, r0, r6
ldrh r0, [r0]
ldr r1, _0802F4C0 @ =0x0000037A
adds r2, r2, r1
strb r0, [r2]
ldr r2, [r5]
adds r0, r2, r3
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r6, #4
adds r0, r0, r1
ldrh r0, [r0]
ldr r1, _0802F4C4 @ =0x00000379
adds r2, r2, r1
strb r0, [r2]
ldr r2, [r5]
adds r3, r2, r3
ldrb r1, [r3]
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #5
bgt _0802F4CC
adds r1, #1
ldr r3, _0802F4C8 @ =0x0000037B
adds r0, r2, r3
strb r1, [r0]
b _0802F4FA
.align 2, 0
_0802F4B8: .4byte 0x0000037E
_0802F4BC: .4byte 0x0000037D
_0802F4C0: .4byte 0x0000037A
_0802F4C4: .4byte 0x00000379
_0802F4C8: .4byte 0x0000037B
_0802F4CC:
ldr r0, _0802F4D8 @ =0x0000037B
adds r1, r2, r0
_0802F4D0:
movs r0, #0
strb r0, [r1]
b _0802F4FA
.align 2, 0
_0802F4D8: .4byte 0x0000037B
_0802F4DC:
ldr r0, [r5]
adds r0, #0xe4
movs r1, #0
strb r1, [r0]
ldr r0, _0802F500 @ =gMain
movs r2, #0xb3
lsls r2, r2, #5
adds r0, r0, r2
movs r2, #0
strh r1, [r0]
ldr r0, [r5]
movs r3, #0xde
lsls r3, r3, #2
adds r0, r0, r3
strb r2, [r0]
_0802F4FA:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0802F500: .4byte gMain
thumb_func_start sub_2F504
sub_2F504: @ 0x0802F504
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r6, _0802F700 @ =gUnknown_0200C668
ldrh r0, [r6]
movs r1, #0xb8
adds r1, r1, r6
mov sl, r1
cmp r0, #0
beq _0802F5EC
ldr r3, _0802F704 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xc6
subs r0, r0, r1
strh r0, [r6, #2]
ldr r1, [r3]
movs r4, #0xe0
lsls r4, r4, #2
adds r2, r1, r4
movs r7, #0x8e
lsls r7, r7, #1
adds r0, r7, #0
ldrh r2, [r2]
adds r0, r0, r2
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #4]
ldr r3, [r3]
ldr r1, _0802F708 @ =0x00000379
adds r0, r3, r1
ldr r2, _0802F70C @ =0x040000D4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #7
ldr r1, _0802F710 @ =gUnknown_08512C4C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802F714 @ =0x06012A20
str r0, [r2, #4]
ldr r0, _0802F718 @ =0x800001C0
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r2, _0802F71C @ =0x0000037A
adds r3, r3, r2
movs r2, #0
ldr r4, _0802F720 @ =gUnknown_086B3CA4
mov sb, r4
movs r1, #0
ldrsb r1, [r3, r1]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #1
mov ip, r0
ldr r7, _0802F724 @ =0xFFFFFE00
mov r8, r7
_0802F580:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
ldr r1, _0802F728 @ =gOamBuffer
adds r2, r0, r1
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, [r5]
lsls r2, r2, #3
ldr r7, _0802F728 @ =gOamBuffer
adds r2, r2, r7
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802F72C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
ldr r0, _0802F728 @ =gOamBuffer
adds r1, r1, r0
ldrb r0, [r6, #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 _0802F580
_0802F5EC:
mov r6, sl
ldrh r0, [r6]
cmp r0, #0
beq _0802F69A
ldr r2, _0802F704 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xc6
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r2]
adds r0, #0x5a
ldrh r1, [r0]
movs r3, #0x8e
lsls r3, r3, #1
adds r0, r3, #0
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r2]
ldr r4, _0802F730 @ =0x0000037B
adds r0, r0, r4
movs r2, #0
ldr r7, _0802F734 @ =gUnknown_086B3B7E
mov sb, r7
ldr r1, _0802F728 @ =gOamBuffer
mov sl, r1
movs r1, #0
ldrsb r1, [r0, r1]
movs r0, #0x2a
adds r3, r1, #0
muls r3, r0, r3
mov ip, r3
ldr r4, _0802F724 @ =0xFFFFFE00
mov r8, r4
_0802F632:
lsls r3, r2, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r0, [r5]
lsls r0, r0, #3
mov r7, sl
adds r2, r0, r7
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, [r5]
lsls r2, r2, #3
add r2, sl
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0802F72C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
mov r0, r8
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
add r1, sl
ldrb r0, [r6, #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, #6
ble _0802F632
_0802F69A:
ldr r6, _0802F738 @ =gUnknown_0200E608
ldrh r0, [r6]
cmp r0, #0
beq _0802F780
ldr r2, _0802F704 @ =gUnknown_020314E0
ldr r0, [r2]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xce
subs r0, r0, r1
strh r0, [r6, #2]
ldr r1, [r2]
movs r3, #0xdf
lsls r3, r3, #2
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0802F748
adds r0, r1, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r4, #0x82
lsls r4, r4, #1
adds r0, r4, #0
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r2]
movs r7, #0xa4
lsls r7, r7, #2
adds r0, r0, r7
ldr r0, [r0]
movs r1, #0x32
bl __umodsi3
movs r1, #0x19
bl __udivsi3
ldr r2, _0802F70C @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #7
ldr r1, _0802F73C @ =gUnknown_084ED6CC
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802F740 @ =0x06014FA0
str r0, [r2, #4]
ldr r0, _0802F744 @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0802F74C
.align 2, 0
_0802F700: .4byte gUnknown_0200C668
_0802F704: .4byte gUnknown_020314E0
_0802F708: .4byte 0x00000379
_0802F70C: .4byte 0x040000D4
_0802F710: .4byte gUnknown_08512C4C
_0802F714: .4byte 0x06012A20
_0802F718: .4byte 0x800001C0
_0802F71C: .4byte 0x0000037A
_0802F720: .4byte gUnknown_086B3CA4
_0802F724: .4byte 0xFFFFFE00
_0802F728: .4byte gOamBuffer
_0802F72C: .4byte 0x000001FF
_0802F730: .4byte 0x0000037B
_0802F734: .4byte gUnknown_086B3B7E
_0802F738: .4byte gUnknown_0200E608
_0802F73C: .4byte gUnknown_084ED6CC
_0802F740: .4byte 0x06014FA0
_0802F744: .4byte 0x80000100
_0802F748:
movs r0, #0xc8
strh r0, [r6, #4]
_0802F74C:
adds r5, r6, #0
adds r5, #8
ldr r4, _0802F790 @ =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 r7, _0802F794 @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0802F798 @ =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]
_0802F780:
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
_0802F790: .4byte gOamBuffer
_0802F794: .4byte 0x000001FF
_0802F798: .4byte 0xFFFFFE00
thumb_func_start sub_2F79C
sub_2F79C: @ 0x0802F79C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
movs r1, #0
ldr r0, _0802F7D0 @ =gUnknown_020314E0
mov r8, r0
_0802F7A8:
mov r2, r8
ldr r0, [r2]
lsls r2, r1, #0x10
asrs r1, r2, #0x10
ldr r3, _0802F7D4 @ =0x0000036A
adds r0, r0, r3
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r6, r2, #0
cmp r0, #5
bls _0802F7C4
b _0802FB26
_0802F7C4:
lsls r0, r0, #2
ldr r1, _0802F7D8 @ =_0802F7DC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802F7D0: .4byte gUnknown_020314E0
_0802F7D4: .4byte 0x0000036A
_0802F7D8: .4byte _0802F7DC
_0802F7DC: @ jump table
.4byte _0802F7F4 @ case 0
.4byte _0802F87E @ case 1
.4byte _0802F944 @ case 2
.4byte _0802F9E4 @ case 3
.4byte _0802FA28 @ case 4
.4byte _0802FAA2 @ case 5
_0802F7F4:
ldr r1, _0802F828 @ =gUnknown_086AE4FC
mov r4, r8
ldr r2, [r4]
asrs r4, r6, #0x10
movs r5, #0xdb
lsls r5, r5, #2
adds r0, r2, r5
adds r3, r0, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
lsls r5, r4, #1
ldr r1, _0802F82C @ =0x0000036E
adds r2, r2, r1
adds r2, r2, r5
ldrh r1, [r2]
cmp r0, r1
ble _0802F830
adds r0, r1, #1
strh r0, [r2]
b _0802F858
.align 2, 0
_0802F828: .4byte gUnknown_086AE4FC
_0802F82C: .4byte 0x0000036E
_0802F830:
ldrb r0, [r3]
adds r0, #1
movs r2, #0
strb r0, [r3]
mov r3, r8
ldr r1, [r3]
ldr r3, _0802F870 @ =0x0000036E
adds r0, r1, r3
adds r0, r0, r5
movs r3, #0
strh r2, [r0]
movs r5, #0xdb
lsls r5, r5, #2
adds r1, r1, r5
adds r1, r1, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #3
ble _0802F858
strb r3, [r1]
_0802F858:
mov r1, r8
ldr r0, [r1]
asrs r1, r6, #0xf
ldr r2, _0802F874 @ =0x00000372
adds r0, r0, r2
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, #0x97
bhi _0802F878
adds r0, #1
strh r0, [r1]
b _0802FB26
.align 2, 0
_0802F870: .4byte 0x0000036E
_0802F874: .4byte 0x00000372
_0802F878:
movs r0, #0
strh r0, [r1]
b _0802FB26
_0802F87E:
ldr r2, _0802F8B0 @ =gUnknown_086AE4FC
ldr r7, _0802F8B4 @ =gUnknown_020314E0
ldr r1, [r7]
asrs r4, r6, #0x10
movs r3, #0xdb
lsls r3, r3, #2
adds r0, r1, r3
adds r3, r0, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r2, #2
adds r0, r0, r2
movs r5, #0
ldrsh r0, [r0, r5]
lsls r5, r4, #1
ldr r2, _0802F8B8 @ =0x0000036E
adds r1, r1, r2
adds r1, r1, r5
ldrh r2, [r1]
cmp r0, r2
ble _0802F8BC
adds r0, r2, #1
strh r0, [r1]
b _0802F8EC
.align 2, 0
_0802F8B0: .4byte gUnknown_086AE4FC
_0802F8B4: .4byte gUnknown_020314E0
_0802F8B8: .4byte 0x0000036E
_0802F8BC:
ldrb r0, [r3]
adds r0, #1
movs r2, #0
strb r0, [r3]
ldr r1, [r7]
ldr r3, _0802F938 @ =0x0000036E
adds r0, r1, r3
adds r0, r0, r5
strh r2, [r0]
movs r5, #0xdb
lsls r5, r5, #2
adds r1, r1, r5
adds r1, r1, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bne _0802F8EC
movs r0, #0xe6
bl m4aSongNumStart
ldr r1, [r7]
movs r0, #0xfa
lsls r0, r0, #3
str r0, [r1, #0x3c]
_0802F8EC:
ldr r0, _0802F93C @ =gUnknown_020314E0
ldr r3, [r0]
asrs r2, r6, #0x10
movs r4, #0xdb
lsls r4, r4, #2
adds r1, r3, r4
adds r5, r1, r2
movs r1, #0
ldrsb r1, [r5, r1]
mov r8, r0
cmp r1, #6
beq _0802F906
b _0802FB16
_0802F906:
ldr r1, _0802F940 @ =0x00000376
adds r0, r3, r1
ldrh r0, [r0]
cmp r0, #0
beq _0802F926
cmp r0, #1
bne _0802F926
movs r0, #7
strb r0, [r5]
mov r3, r8
ldr r0, [r3]
subs r4, #2
adds r0, r0, r4
adds r0, r0, r2
movs r1, #2
strb r1, [r0]
_0802F926:
mov r5, r8
ldr r0, [r5]
asrs r1, r6, #0xf
ldr r2, _0802F938 @ =0x0000036E
adds r0, r0, r2
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
b _0802FB16
.align 2, 0
_0802F938: .4byte 0x0000036E
_0802F93C: .4byte gUnknown_020314E0
_0802F940: .4byte 0x00000376
_0802F944:
ldr r1, _0802F978 @ =gUnknown_086AE4FC
mov r5, r8
ldr r2, [r5]
asrs r5, r6, #0x10
movs r7, #0xdb
lsls r7, r7, #2
adds r0, r2, r7
adds r3, r0, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
lsls r4, r5, #1
ldr r1, _0802F97C @ =0x0000036E
adds r2, r2, r1
adds r2, r2, r4
ldrh r1, [r2]
cmp r0, r1
ble _0802F980
adds r0, r1, #1
strh r0, [r2]
b _0802F9CA
.align 2, 0
_0802F978: .4byte gUnknown_086AE4FC
_0802F97C: .4byte 0x0000036E
_0802F980:
ldrb r0, [r3]
adds r0, #1
movs r2, #0
strb r0, [r3]
mov r3, r8
ldr r1, [r3]
ldr r3, _0802F9D8 @ =0x0000036E
adds r0, r1, r3
adds r0, r0, r4
movs r4, #0
strh r2, [r0]
movs r0, #0xdb
lsls r0, r0, #2
adds r1, r1, r0
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #8
bne _0802F9AC
movs r0, #0xe7
bl m4aSongNumStart
_0802F9AC:
mov r1, r8
ldr r0, [r1]
adds r0, r0, r7
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #8
ble _0802F9CA
strb r4, [r1]
mov r2, r8
ldr r0, [r2]
ldr r3, _0802F9DC @ =0x0000036A
adds r0, r0, r3
adds r0, r0, r5
strb r4, [r0]
_0802F9CA:
mov r4, r8
ldr r0, [r4]
asrs r1, r6, #0xf
ldr r5, _0802F9E0 @ =0x00000372
adds r0, r0, r5
b _0802FB20
.align 2, 0
_0802F9D8: .4byte 0x0000036E
_0802F9DC: .4byte 0x0000036A
_0802F9E0: .4byte 0x00000372
_0802F9E4:
mov r0, r8
ldr r1, [r0]
asrs r2, r6, #0x10
movs r3, #0xdb
lsls r3, r3, #2
adds r1, r1, r3
adds r1, r1, r2
movs r4, #0
movs r0, #9
strb r0, [r1]
mov r5, r8
ldr r1, [r5]
lsls r3, r2, #1
ldr r5, _0802FA1C @ =0x0000036E
adds r0, r1, r5
adds r0, r0, r3
strh r4, [r0]
ldr r0, _0802FA20 @ =0x0000036A
adds r1, r1, r0
adds r1, r1, r2
movs r0, #4
strb r0, [r1]
mov r1, r8
ldr r0, [r1]
ldr r2, _0802FA24 @ =0x00000372
adds r0, r0, r2
adds r0, r0, r3
b _0802FB22
.align 2, 0
_0802FA1C: .4byte 0x0000036E
_0802FA20: .4byte 0x0000036A
_0802FA24: .4byte 0x00000372
_0802FA28:
ldr r1, _0802FA90 @ =gUnknown_086AE4FC
mov r3, r8
ldr r2, [r3]
asrs r5, r6, #0x10
movs r4, #0xdb
lsls r4, r4, #2
adds r0, r2, r4
adds r3, r0, r5
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
lsls r4, r5, #1
ldr r1, _0802FA94 @ =0x0000036E
adds r2, r2, r1
adds r2, r2, r4
ldrh r1, [r2]
cmp r0, r1
bgt _0802FACE
ldrb r0, [r3]
adds r0, #1
movs r1, #0
strb r0, [r3]
mov r3, r8
ldr r2, [r3]
ldr r3, _0802FA94 @ =0x0000036E
adds r0, r2, r3
adds r0, r0, r4
movs r3, #0
strh r1, [r0]
movs r4, #0xdb
lsls r4, r4, #2
adds r0, r2, r4
adds r1, r0, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0x11
ble _0802FB16
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #6
bne _0802FA9C
strb r3, [r1]
mov r1, r8
ldr r0, [r1]
ldr r2, _0802FA98 @ =0x0000036A
adds r0, r0, r2
adds r0, r0, r5
b _0802FB14
.align 2, 0
_0802FA90: .4byte gUnknown_086AE4FC
_0802FA94: .4byte 0x0000036E
_0802FA98: .4byte 0x0000036A
_0802FA9C:
movs r0, #9
strb r0, [r1]
b _0802FB16
_0802FAA2:
ldr r1, _0802FAD4 @ =gUnknown_086AE4FC
mov r5, r8
ldr r2, [r5]
asrs r4, r6, #0x10
movs r7, #0xdb
lsls r7, r7, #2
adds r0, r2, r7
adds r3, r0, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
lsls r5, r4, #1
ldr r1, _0802FAD8 @ =0x0000036E
adds r2, r2, r1
adds r2, r2, r5
ldrh r1, [r2]
cmp r0, r1
ble _0802FADC
_0802FACE:
adds r0, r1, #1
strh r0, [r2]
b _0802FB16
.align 2, 0
_0802FAD4: .4byte gUnknown_086AE4FC
_0802FAD8: .4byte 0x0000036E
_0802FADC:
ldrb r0, [r3]
adds r0, #1
movs r1, #0
strb r0, [r3]
mov r3, r8
ldr r2, [r3]
ldr r3, _0802FC24 @ =0x0000036E
adds r0, r2, r3
adds r0, r0, r5
movs r3, #0
strh r1, [r0]
movs r5, #0xdb
lsls r5, r5, #2
adds r0, r2, r5
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x11
ble _0802FB16
ldr r1, _0802FC28 @ =0x0000036A
adds r0, r2, r1
adds r0, r0, r4
strb r3, [r0]
mov r2, r8
ldr r0, [r2]
adds r0, r0, r7
adds r0, r0, r4
_0802FB14:
strb r3, [r0]
_0802FB16:
mov r3, r8
ldr r0, [r3]
asrs r1, r6, #0xf
ldr r4, _0802FC2C @ =0x00000372
adds r0, r0, r4
_0802FB20:
adds r0, r0, r1
_0802FB22:
movs r1, #0x14
strh r1, [r0]
_0802FB26:
movs r5, #0x80
lsls r5, r5, #9
adds r0, r6, r5
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bgt _0802FB36
b _0802F7A8
_0802FB36:
mov r0, r8
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
beq _0802FB56
ldr r2, _0802FC30 @ =0x00000376
adds r1, r1, r2
ldrh r0, [r1]
cmp r0, #0
beq _0802FB56
subs r0, #1
strh r0, [r1]
_0802FB56:
mov r3, r8
ldr r2, [r3]
ldr r4, _0802FC34 @ =0x00001328
adds r1, r2, r4
ldrh r0, [r1]
cmp r0, #0
beq _0802FB78
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0802FB78
ldr r5, _0802FC38 @ =0x00001330
adds r1, r2, r5
ldr r3, _0802FC3C @ =0x00001334
adds r0, r2, r3
str r0, [r1]
_0802FB78:
mov r4, r8
ldr r0, [r4]
movs r6, #0xda
lsls r6, r6, #2
adds r0, r0, r6
ldrh r0, [r0]
cmp r0, #0
beq _0802FBCE
cmp r0, #0x11
bne _0802FB9E
movs r0, #0xe8
bl m4aSongNumStart
ldr r1, [r4]
movs r0, #0xa
str r0, [r1, #0x3c]
movs r0, #0xd
bl sub_11B0
_0802FB9E:
ldr r5, _0802FC40 @ =gUnknown_08137CD6
mov r0, r8
ldr r4, [r0]
adds r4, r4, r6
ldrh r0, [r4]
movs r1, #3
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r5
movs r1, #0
ldrsh r2, [r0, r1]
ldr r3, _0802FC44 @ =0x0400004C
lsls r0, r2, #0xc
lsls r1, r2, #8
orrs r0, r1
lsls r1, r2, #4
orrs r0, r1
orrs r0, r2
strh r0, [r3]
ldrh r0, [r4]
subs r0, #1
strh r0, [r4]
_0802FBCE:
mov r3, r8
ldr r1, [r3]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #2
ble _0802FC48
cmp r0, #6
beq _0802FCB8
movs r1, #0
movs r3, #0
_0802FBE2:
mov r2, r8
ldr r0, [r2]
lsls r1, r1, #0x10
asrs r2, r1, #0x10
ldr r4, _0802FC28 @ =0x0000036A
adds r0, r0, r4
adds r1, r0, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0802FC14
strb r3, [r1]
mov r5, r8
ldr r0, [r5]
movs r1, #0xdb
lsls r1, r1, #2
adds r0, r0, r1
adds r0, r0, r2
strb r3, [r0]
ldr r0, [r5]
lsls r1, r2, #1
adds r4, #4
adds r0, r0, r4
adds r0, r0, r1
strh r3, [r0]
_0802FC14:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _0802FBE2
b _0802FCB8
.align 2, 0
_0802FC24: .4byte 0x0000036E
_0802FC28: .4byte 0x0000036A
_0802FC2C: .4byte 0x00000372
_0802FC30: .4byte 0x00000376
_0802FC34: .4byte 0x00001328
_0802FC38: .4byte 0x00001330
_0802FC3C: .4byte 0x00001334
_0802FC40: .4byte gUnknown_08137CD6
_0802FC44: .4byte 0x0400004C
_0802FC48:
ldr r5, _0802FC7C @ =0x0000072E
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _0802FC8C
ldr r2, _0802FC80 @ =0x00000281
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _0802FCB8
ldr r4, _0802FC84 @ =0x0000036A
adds r2, r1, r4
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _0802FCB8
movs r1, #3
strb r1, [r2]
ldr r0, [r3]
ldr r5, _0802FC88 @ =0x0000036B
b _0802FCB4
.align 2, 0
_0802FC7C: .4byte 0x0000072E
_0802FC80: .4byte 0x00000281
_0802FC84: .4byte 0x0000036A
_0802FC88: .4byte 0x0000036B
_0802FC8C:
ldr r0, _0802FCC4 @ =0x0000036A
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
ble _0802FCB8
movs r1, #0
strb r1, [r2]
mov r2, r8
ldr r0, [r2]
movs r3, #0xdb
lsls r3, r3, #2
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r2]
ldr r4, _0802FCC8 @ =0x0000036B
adds r0, r0, r4
strb r1, [r0]
ldr r0, [r2]
ldr r5, _0802FCCC @ =0x0000036D
_0802FCB4:
adds r0, r0, r5
strb r1, [r0]
_0802FCB8:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802FCC4: .4byte 0x0000036A
_0802FCC8: .4byte 0x0000036B
_0802FCCC: .4byte 0x0000036D
thumb_func_start sub_2FCD0
sub_2FCD0: @ 0x0802FCD0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r6, _0802FDCC @ =gUnknown_0200DF90
ldrh r0, [r6]
cmp r0, #0
bne _0802FCE4
b _080300B2
_0802FCE4:
ldr r3, _0802FDD0 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x44
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r3]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x90
subs r0, r0, r1
strh r0, [r6, #4]
ldr r4, _0802FDD4 @ =gUnknown_086AE4FC
ldr r0, [r3]
movs r1, #0xdb
lsls r1, r1, #2
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r4
ldr r2, _0802FDD8 @ =0x040000D4
movs r5, #0
ldrsh r1, [r0, r5]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r1, _0802FDDC @ =gUnknown_0847A40C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802FDE0 @ =0x06012DA0
str r0, [r2, #4]
ldr r0, _0802FDE4 @ =0x80000140
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
mov ip, r3
ldr r1, _0802FDE8 @ =gOamBuffer
mov sb, r1
ldr r2, _0802FDEC @ =0xFFFFFDD8
adds r2, r2, r6
mov sl, r2
mov r7, sb
ldr r3, _0802FDF0 @ =0xFFFFFE00
mov r8, r3
_0802FD42:
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, _0802FDF4 @ =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 _0802FD42
mov r6, sl
mov r3, ip
ldr r0, [r3]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x44
subs r0, r0, r1
strh r0, [r6, #2]
ldr r1, [r3]
ldr r5, _0802FDF8 @ =0x00000372
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0xd
bhi _0802FE08
adds r0, r1, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x90
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r3]
adds r0, r0, r5
ldrh r0, [r0]
ldr r2, _0802FDD8 @ =0x040000D4
lsrs r0, r0, #1
lsls r0, r0, #9
ldr r1, _0802FDFC @ =gUnknown_0847D10C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802FE00 @ =0x06014720
str r0, [r2, #4]
ldr r0, _0802FE04 @ =0x800000C0
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0802FE0C
.align 2, 0
_0802FDCC: .4byte gUnknown_0200DF90
_0802FDD0: .4byte gUnknown_020314E0
_0802FDD4: .4byte gUnknown_086AE4FC
_0802FDD8: .4byte 0x040000D4
_0802FDDC: .4byte gUnknown_0847A40C
_0802FDE0: .4byte 0x06012DA0
_0802FDE4: .4byte 0x80000140
_0802FDE8: .4byte gOamBuffer
_0802FDEC: .4byte 0xFFFFFDD8
_0802FDF0: .4byte 0xFFFFFE00
_0802FDF4: .4byte 0x000001FF
_0802FDF8: .4byte 0x00000372
_0802FDFC: .4byte gUnknown_0847D10C
_0802FE00: .4byte 0x06014720
_0802FE04: .4byte 0x800000C0
_0802FE08:
movs r0, #0xc8
strh r0, [r6, #4]
_0802FE0C:
adds r5, r6, #0
adds r5, #8
ldrh r2, [r6, #8]
lsls r2, r2, #3
add r2, sb
movs r0, #2
ldrsh r1, [r5, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _0802FF1C @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r4, _0802FF20 @ =0xFFFFFE00
adds r0, r4, #0
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
ldr r6, _0802FF24 @ =gUnknown_0200E048
mov r5, ip
ldr r0, [r5]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x24
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r5]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0xa3
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r5]
ldr r1, _0802FF28 @ =0x0000036D
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
ldr r2, _0802FF2C @ =gUnknown_086AE4FC
adds r0, r0, r2
ldr r2, _0802FF30 @ =0x040000D4
movs r3, #0
ldrsh r1, [r0, r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #8
ldr r5, _0802FF34 @ =gUnknown_084C1E6C
adds r0, r0, r5
str r0, [r2]
ldr r0, _0802FF38 @ =0x060130A0
str r0, [r2, #4]
ldr r0, _0802FF3C @ =0x80000140
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
mov r7, sb
mov r8, r4
_0802FE90:
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, _0802FF1C @ =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 _0802FE90
ldr r6, _0802FF40 @ =gUnknown_0200DE20
mov r3, ip
ldr r0, [r3]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x24
subs r0, r0, r1
strh r0, [r6, #2]
ldr r1, [r3]
movs r5, #0xdd
lsls r5, r5, #2
adds r0, r1, r5
ldrh r0, [r0]
cmp r0, #0xd
bhi _0802FF50
adds r0, r1, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0xa3
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r3]
adds r0, r0, r5
ldrh r0, [r0]
ldr r2, _0802FF30 @ =0x040000D4
lsrs r0, r0, #1
lsls r0, r0, #9
ldr r1, _0802FF44 @ =gUnknown_084C4B6C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0802FF48 @ =0x06014920
str r0, [r2, #4]
ldr r0, _0802FF4C @ =0x800000C0
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0802FF54
.align 2, 0
_0802FF1C: .4byte 0x000001FF
_0802FF20: .4byte 0xFFFFFE00
_0802FF24: .4byte gUnknown_0200E048
_0802FF28: .4byte 0x0000036D
_0802FF2C: .4byte gUnknown_086AE4FC
_0802FF30: .4byte 0x040000D4
_0802FF34: .4byte gUnknown_084C1E6C
_0802FF38: .4byte 0x060130A0
_0802FF3C: .4byte 0x80000140
_0802FF40: .4byte gUnknown_0200DE20
_0802FF44: .4byte gUnknown_084C4B6C
_0802FF48: .4byte 0x06014920
_0802FF4C: .4byte 0x800000C0
_0802FF50:
movs r0, #0xc8
strh r0, [r6, #4]
_0802FF54:
adds r5, r6, #0
adds r5, #8
ldrh r2, [r6, #8]
lsls r2, r2, #3
add r2, sb
movs r0, #2
ldrsh r1, [r5, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _0802FFBC @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0802FFC0 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
ldr r6, _0802FFC4 @ =gUnknown_0200EA58
mov r5, ip
ldr r0, [r5]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x3d
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r5]
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0xba
subs r0, r0, r1
strh r0, [r6, #4]
ldr r1, [r5]
ldr r2, _0802FFC8 @ =0x00000367
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0802FFD0
ldr r3, _0802FFCC @ =0x00000366
adds r1, r1, r3
movs r0, #3
b _08030032
.align 2, 0
_0802FFBC: .4byte 0x000001FF
_0802FFC0: .4byte 0xFFFFFE00
_0802FFC4: .4byte gUnknown_0200EA58
_0802FFC8: .4byte 0x00000367
_0802FFCC: .4byte 0x00000366
_0802FFD0:
ldr r5, _0802FFF4 @ =0x0000036A
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803000C
ldr r2, _0802FFF8 @ =0x0000036B
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08030000
ldr r3, _0802FFFC @ =0x00000366
adds r1, r1, r3
movs r0, #3
b _08030032
.align 2, 0
_0802FFF4: .4byte 0x0000036A
_0802FFF8: .4byte 0x0000036B
_0802FFFC: .4byte 0x00000366
_08030000:
ldr r5, _08030008 @ =0x00000366
adds r1, r1, r5
movs r0, #2
b _08030032
.align 2, 0
_08030008: .4byte 0x00000366
_0803000C:
ldr r2, _08030024 @ =0x0000036B
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803002C
ldr r3, _08030028 @ =0x00000366
adds r1, r1, r3
movs r0, #1
b _08030032
.align 2, 0
_08030024: .4byte 0x0000036B
_08030028: .4byte 0x00000366
_0803002C:
ldr r5, _08030064 @ =0x00000366
adds r1, r1, r5
movs r0, #0
_08030032:
strb r0, [r1]
mov r0, ip
ldr r3, [r0]
ldr r2, _08030064 @ =0x00000366
adds r1, r3, r2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08030068
lsls r4, r0, #1
adds r4, r4, r0
movs r5, #0xa4
lsls r5, r5, #2
adds r0, r3, r5
ldr r0, [r0]
movs r1, #0x1e
bl __umodsi3
movs r1, #0xa
bl __udivsi3
adds r4, r4, r0
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
b _0803006A
.align 2, 0
_08030064: .4byte 0x00000366
_08030068:
movs r0, #9
_0803006A:
ldr r1, _080300C0 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #9
ldr r2, _080300C4 @ =gUnknown_084FEA0C
adds r0, r0, r2
str r0, [r1]
ldr r0, _080300C8 @ =0x060146A0
str r0, [r1, #4]
ldr r0, _080300CC @ =0x80000040
str r0, [r1, #8]
ldr r0, [r1, #8]
adds r5, r6, #0
adds r5, #8
ldrh r2, [r6, #8]
lsls r2, r2, #3
add r2, sb
movs r3, #2
ldrsh r1, [r5, r3]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r3, _080300D0 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _080300D4 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_080300B2:
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
_080300C0: .4byte 0x040000D4
_080300C4: .4byte gUnknown_084FEA0C
_080300C8: .4byte 0x060146A0
_080300CC: .4byte 0x80000040
_080300D0: .4byte 0x000001FF
_080300D4: .4byte 0xFFFFFE00
thumb_func_start sub_300D8
sub_300D8: @ 0x080300D8
push {r4, r5, lr}
ldr r0, _08030170 @ =gUnknown_020314E0
ldr r5, [r0]
movs r0, #0xbc
lsls r0, r0, #1
adds r1, r5, r0
movs r0, #0xe6
lsls r0, r0, #2
strh r0, [r1]
movs r2, #0xa4
lsls r2, r2, #2
adds r4, r5, r2
ldr r0, [r4]
movs r1, #0x3c
bl __umodsi3
movs r1, #0x1e
bl __udivsi3
movs r1, #0x85
subs r1, r1, r0
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
movs r2, #0xbd
lsls r2, r2, #1
adds r1, r5, r2
strh r0, [r1]
movs r0, #0xbe
lsls r0, r0, #1
adds r1, r5, r0
ldr r0, _08030174 @ =0x000004EC
strh r0, [r1]
ldr r0, [r4]
adds r0, #0xa
movs r1, #0x3c
bl __umodsi3
movs r1, #0x1e
bl __udivsi3
movs r1, #0x83
subs r1, r1, r0
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
movs r2, #0xbf
lsls r2, r2, #1
adds r1, r5, r2
strh r0, [r1]
movs r0, #0xc0
lsls r0, r0, #1
adds r1, r5, r0
movs r0, #0x87
lsls r0, r0, #3
strh r0, [r1]
ldr r0, [r4]
adds r0, #0x14
movs r1, #0x3c
bl __umodsi3
movs r1, #0x1e
bl __udivsi3
movs r1, #0xa1
subs r1, r1, r0
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
movs r2, #0xc1
lsls r2, r2, #1
adds r1, r5, r2
strh r0, [r1]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08030170: .4byte gUnknown_020314E0
_08030174: .4byte 0x000004EC
thumb_func_start sub_30178
sub_30178: @ 0x08030178
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _080301DC @ =gUnknown_0200E100
mov sl, r0
ldr r1, _080301E0 @ =gUnknown_020314E0
ldr r3, [r1]
ldr r2, _080301E4 @ =0x00000624
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _0803019A
b _080302D4
_0803019A:
cmp r0, #2
beq _080301A0
b _080302C6
_080301A0:
movs r0, #0xfa
lsls r0, r0, #1
str r0, [r3, #0x3c]
movs r0, #0xb6
bl m4aSongNumStart
movs r0, #7
bl sub_11B0
ldr r3, _080301E0 @ =gUnknown_020314E0
ldr r1, [r3]
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #4
bne _0803029C
movs r0, #0x17
ldrsb r0, [r1, r0]
cmp r0, #5
bne _0803029C
ldr r6, _080301E8 @ =0x00000625
adds r1, r1, r6
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bgt _0803029C
cmp r0, #0
bne _080301EC
movs r0, #1
b _080301F6
.align 2, 0
_080301DC: .4byte gUnknown_0200E100
_080301E0: .4byte gUnknown_020314E0
_080301E4: .4byte 0x00000624
_080301E8: .4byte 0x00000625
_080301EC:
cmp r0, #1
bne _080301F4
movs r0, #3
b _080301F6
_080301F4:
movs r0, #6
_080301F6:
strb r0, [r1]
ldr r7, _08030318 @ =gUnknown_020314E0
ldr r5, [r7]
ldr r1, _0803031C @ =0x00000625
adds r0, r5, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bne _0803029C
ldr r2, _08030320 @ =0x000006C6
adds r0, r5, r2
movs r6, #0
ldrsb r6, [r0, r6]
cmp r6, #0
bne _0803029C
ldr r2, _08030324 @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
orrs r0, r1
strb r0, [r2, #0xf]
adds r0, r5, #0
adds r0, #0xea
movs r4, #0
movs r3, #0x32
strh r3, [r0]
adds r1, r5, #0
adds r1, #0xec
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
subs r1, #4
movs r0, #0xec
strh r0, [r1]
adds r0, r5, #0
adds r0, #0xe6
strh r6, [r0]
adds r1, #6
movs r0, #4
strh r0, [r1]
adds r1, #4
movs r0, #7
strb r0, [r1]
ldr r0, [r7]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
adds r0, #0xfb
strb r4, [r0]
ldr r4, [r7]
adds r1, r4, #0
adds r1, #0xf4
movs r0, #0x50
strh r0, [r1]
adds r1, #2
ldr r0, _08030328 @ =0x0000F63C
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xf0
strh r3, [r0]
adds r0, #8
strh r6, [r0]
ldr r1, _0803032C @ =0x040000D4
ldr r0, _08030330 @ =gUnknown_086ACEF8
ldr r0, [r0, #0x1c]
str r0, [r1]
ldr r0, _08030334 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08030338 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0803033C @ =gUnknown_086ACF18
ldr r0, [r0, #0x1c]
str r0, [r1]
ldr r0, _08030340 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08030344 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r2, #0x38]
movs r0, #0xce
strh r0, [r2, #0x38]
_0803029C:
ldr r2, _08030318 @ =gUnknown_020314E0
ldr r0, [r2]
movs r3, #0xbb
lsls r3, r3, #1
adds r1, r0, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r3, [r2]
movs r6, #0xc2
lsls r6, r6, #2
adds r1, r3, r6
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x64
bne _080302C6
ldr r0, _08030348 @ =0x0000C350
str r0, [r3, #0x3c]
_080302C6:
ldr r0, _08030318 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r2, _0803034C @ =0x00000624
adds r1, r1, r2
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
_080302D4:
mov r3, sl
ldrh r0, [r3]
cmp r0, #0
bne _080302DE
b _08030456
_080302DE:
movs r0, #0
ldr r6, _0803032C @ =0x040000D4
mov sb, r6
_080302E4:
ldr r1, _08030318 @ =gUnknown_020314E0
ldr r4, [r1]
lsls r0, r0, #0x10
asrs r2, r0, #0x10
movs r3, #0xb8
lsls r3, r3, #1
adds r1, r4, r3
adds r3, r1, r2
ldrb r6, [r3]
movs r1, #0
ldrsb r1, [r3, r1]
adds r5, r0, #0
cmp r1, #0
ble _08030350
adds r0, r1, #0
cmp r0, #0
bge _08030308
adds r0, #3
_08030308:
asrs r0, r0, #2
adds r0, #2
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
subs r0, r6, #1
strb r0, [r3]
b _08030370
.align 2, 0
_08030318: .4byte gUnknown_020314E0
_0803031C: .4byte 0x00000625
_08030320: .4byte 0x000006C6
_08030324: .4byte gMain
_08030328: .4byte 0x0000F63C
_0803032C: .4byte 0x040000D4
_08030330: .4byte gUnknown_086ACEF8
_08030334: .4byte 0x06015800
_08030338: .4byte 0x80001200
_0803033C: .4byte gUnknown_086ACF18
_08030340: .4byte 0x050003C0
_08030344: .4byte 0x80000010
_08030348: .4byte 0x0000C350
_0803034C: .4byte 0x00000624
_08030350:
movs r6, #0xa4
lsls r6, r6, #2
adds r0, r4, r6
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #1
ldr r0, [r0]
adds r0, r0, r1
movs r1, #0x1e
bl __umodsi3
movs r1, #0xf
bl __udivsi3
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
_08030370:
lsls r0, r1, #0x10
asrs r0, r0, #7
ldr r1, _08030464 @ =gUnknown_0845690C
adds r0, r0, r1
mov r2, sb
str r0, [r2]
asrs r5, r5, #0x10
lsls r0, r5, #9
ldr r3, _08030468 @ =0x060133A0
adds r0, r0, r3
str r0, [r2, #4]
ldr r0, _0803046C @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r6, _08030470 @ =gUnknown_020314E0
ldr r4, [r6]
lsls r0, r5, #2
adds r7, r4, r0
movs r0, #0xbc
lsls r0, r0, #1
adds r6, r7, r0
movs r1, #0
ldrsh r0, [r6, r1]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x58
ldrh r1, [r1]
subs r0, r0, r1
subs r0, #8
mov r2, sl
strh r0, [r2, #2]
movs r3, #0xbd
lsls r3, r3, #1
adds r3, r3, r7
mov r8, r3
movs r1, #0
ldrsh r0, [r3, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
subs r0, #0xa
mov r2, sl
strh r0, [r2, #4]
movs r3, #0
ldrsh r0, [r6, r3]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
rsbs r0, r0, #0
adds r0, #8
lsls r0, r0, #1
movs r6, #0xc2
lsls r6, r6, #1
adds r1, r7, r6
strh r0, [r1]
mov r1, r8
movs r2, #0
ldrsh r0, [r1, r2]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
rsbs r0, r0, #0
adds r0, #3
lsls r0, r0, #1
movs r3, #0xc3
lsls r3, r3, #1
adds r1, r7, r3
strh r0, [r1]
lsls r3, r5, #3
adds r3, #8
add r3, sl
ldrh r4, [r3]
lsls r4, r4, #3
ldr r6, _08030474 @ =gOamBuffer
adds r4, r4, r6
movs r0, #2
ldrsh r2, [r3, r0]
mov r1, sl
movs r6, #2
ldrsh r0, [r1, r6]
adds r2, r2, r0
ldr r1, _08030478 @ =0x000001FF
adds r0, r1, #0
ands r2, r0
ldrh r0, [r4, #2]
ldr r6, _0803047C @ =0xFFFFFE00
adds r1, r6, #0
ands r0, r1
orrs r0, r2
strh r0, [r4, #2]
ldrh r1, [r3]
lsls r1, r1, #3
ldr r0, _08030474 @ =gOamBuffer
adds r1, r1, r0
mov r2, sl
ldrb r0, [r2, #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, #2
bgt _08030456
b _080302E4
_08030456:
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
_08030464: .4byte gUnknown_0845690C
_08030468: .4byte 0x060133A0
_0803046C: .4byte 0x80000100
_08030470: .4byte gUnknown_020314E0
_08030474: .4byte gOamBuffer
_08030478: .4byte 0x000001FF
_0803047C: .4byte 0xFFFFFE00
thumb_func_start sub_30480
sub_30480: @ 0x08030480
ldr r2, _080304C4 @ =gUnknown_020314E0
ldr r0, [r2]
movs r1, #0xf6
lsls r1, r1, #1
adds r0, r0, r1
movs r3, #0
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
movs r1, #0xf7
lsls r1, r1, #1
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r2]
subs r1, #1
adds r0, r0, r1
strb r3, [r0]
ldr r2, [r2]
adds r1, #3
adds r0, r2, r1
strh r3, [r0]
movs r0, #0xfa
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0x82
lsls r0, r0, #4
strh r0, [r1]
movs r0, #0xfb
lsls r0, r0, #1
adds r1, r2, r0
adds r0, #0xc6
strh r0, [r1]
bx lr
.align 2, 0
_080304C4: .4byte gUnknown_020314E0
thumb_func_start sub_304C8
sub_304C8: @ 0x080304C8
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 r8, r0
mov ip, r0
movs r6, #0
ldr r7, _08030504 @ =gUnknown_0200D918
movs r1, #0
str r1, [sp]
ldr r1, _08030508 @ =gUnknown_020314E0
ldr r0, [r1]
movs r2, #0xf6
lsls r2, r2, #1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r1
cmp r0, #5
bhi _08030552
lsls r0, r0, #2
ldr r1, _0803050C @ =_08030510
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08030504: .4byte gUnknown_0200D918
_08030508: .4byte gUnknown_020314E0
_0803050C: .4byte _08030510
_08030510: @ jump table
.4byte _08030552 @ case 0
.4byte _08030552 @ case 1
.4byte _08030528 @ case 2
.4byte _08030532 @ case 3
.4byte _0803053E @ case 4
.4byte _08030548 @ case 5
_08030528:
movs r3, #4
mov r8, r3
mov ip, r3
movs r6, #3
b _08030552
_08030532:
movs r6, #8
mov r8, r6
movs r0, #4
mov ip, r0
movs r6, #3
b _08030552
_0803053E:
movs r1, #0xc
mov r8, r1
mov ip, r1
movs r6, #5
b _08030552
_08030548:
movs r2, #0x21
mov r8, r2
movs r3, #0
mov ip, r3
movs r6, #0
_08030552:
mov r1, sb
ldr r0, [r1]
movs r2, #0xf7
lsls r2, r2, #1
adds r1, r0, r2
ldr r5, _080305D8 @ =0x000001ED
adds r2, r0, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
movs r0, #0
ldrsb r0, [r2, r0]
cmp r1, r0
beq _0803059E
ldr r1, _080305DC @ =gUnknown_086AD2EE
lsls r0, r0, #3
adds r1, #6
adds r0, r0, r1
ldr r2, _080305E0 @ =0x040000D4
movs r3, #0
ldrsh r0, [r0, r3]
lsls r0, r0, #9
ldr r1, _080305E4 @ =gUnknown_084FD18C
adds r0, r0, r1
str r0, [r2]
ldr r0, _080305E8 @ =0x06011CE0
str r0, [r2, #4]
ldr r0, _080305EC @ =0x80000100
str r0, [r2, #8]
ldr r0, [r2, #8]
mov r0, sb
ldr r1, [r0]
adds r0, r1, r5
ldrb r0, [r0]
movs r2, #0xf7
lsls r2, r2, #1
adds r1, r1, r2
strb r0, [r1]
_0803059E:
mov r3, sb
ldr r2, [r3]
movs r0, #0xf6
lsls r0, r0, #1
mov sl, r0
adds r0, r2, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bgt _080305B6
b _08030700
_080305B6:
ldr r0, _080305DC @ =gUnknown_086AD2EE
adds r3, r2, r5
movs r1, #0
ldrsb r1, [r3, r1]
lsls r1, r1, #3
adds r0, #2
adds r1, r1, r0
movs r0, #0xf8
lsls r0, r0, #1
adds r4, r2, r0
ldrh r2, [r4]
ldrh r0, [r1]
cmp r0, r2
bls _080305F0
adds r0, r2, #1
strh r0, [r4]
b _080306E6
.align 2, 0
_080305D8: .4byte 0x000001ED
_080305DC: .4byte gUnknown_086AD2EE
_080305E0: .4byte 0x040000D4
_080305E4: .4byte gUnknown_084FD18C
_080305E8: .4byte 0x06011CE0
_080305EC: .4byte 0x80000100
_080305F0:
ldrb r0, [r3]
adds r0, #1
movs r2, #0
strb r0, [r3]
mov r3, sb
ldr r1, [r3]
movs r3, #0xf8
lsls r3, r3, #1
adds r0, r1, r3
strh r2, [r0]
adds r1, r1, r5
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, r8
blt _0803061A
mov r0, ip
strb r0, [r1]
mov r1, sb
ldr r0, [r1]
add r0, sl
strb r6, [r0]
_0803061A:
mov r2, sb
ldr r0, [r2]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x12
bne _0803062E
bl sub_32484
_0803062E:
mov r3, sb
ldr r0, [r3]
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x13
bne _0803065E
bl sub_325E0
ldr r0, _08030780 @ =gMain
ldrb r0, [r0, #2]
cmp r0, #3
beq _0803065E
mov r6, sb
ldr r0, [r6]
movs r1, #0xb3
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #1
bl SaveFile_SetPokedexFlags
_0803065E:
ldr r5, _08030784 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r4, _08030788 @ =0x000001ED
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
bne _08030674
bl sub_28BFC
_08030674:
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #8
beq _08030686
cmp r0, #0x1b
bne _08030696
_08030686:
movs r3, #0xf8
lsls r3, r3, #1
adds r0, r1, r3
ldrh r0, [r0]
cmp r0, #0
bne _08030696
bl m4aMPlayAllStop
_08030696:
ldr r0, _08030784 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r6, _08030788 @ =0x000001ED
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xc
bne _080306BA
movs r2, #0xf8
lsls r2, r2, #1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0
bne _080306BA
movs r0, #0x16
bl m4aSongNumStart
_080306BA:
ldr r5, _08030784 @ =gUnknown_020314E0
ldr r0, [r5]
ldr r4, _08030788 @ =0x000001ED
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1d
bne _080306D2
movs r0, #5
bl sub_19B64
_080306D2:
ldr r0, [r5]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x1c
bne _080306E6
movs r0, #0x92
bl m4aSongNumStart
_080306E6:
ldr r2, _0803078C @ =gUnknown_086AD2EE
ldr r1, _08030784 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r3, _08030788 @ =0x000001ED
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #3
adds r0, r0, r2
ldrh r0, [r0]
str r0, [sp]
mov sb, r1
_08030700:
mov r6, sb
ldr r4, [r6]
movs r1, #0xfa
lsls r1, r1, #1
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
strh r0, [r7, #2]
movs r3, #0xf6
lsls r3, r3, #1
adds r0, r4, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _080307AC
ldr r6, _08030788 @ =0x000001ED
adds r0, r4, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x20
bne _08030790
movs r0, #0xf8
lsls r0, r0, #1
adds r1, r4, r0
ldrh r0, [r1]
cmp r0, #0xd0
bls _08030790
adds r1, r0, #0
movs r0, #0x80
lsls r0, r0, #1
subs r0, r0, r1
cmp r0, #0
bge _08030756
adds r0, #0xf
_08030756:
asrs r0, r0, #4
ldr r1, _08030780 @ =gMain
adds r0, #1
lsls r0, r0, #1
ldr r1, [r1, #0x4c]
ands r1, r0
cmp r1, #0
beq _080307AC
movs r1, #0xfb
lsls r1, r1, #1
adds r0, r4, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #0xa
bl __divsi3
adds r1, r4, #0
adds r1, #0x5a
ldrh r1, [r1]
subs r0, r0, r1
b _080307AE
.align 2, 0
_08030780: .4byte gMain
_08030784: .4byte gUnknown_020314E0
_08030788: .4byte 0x000001ED
_0803078C: .4byte gUnknown_086AD2EE
_08030790:
mov r3, sb
ldr r4, [r3]
movs r6, #0xfb
lsls r6, r6, #1
adds r0, r4, r6
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
ldrh r1, [r4]
subs r0, r0, r1
b _080307AE
_080307AC:
movs r0, #0xc8
_080307AE:
strh r0, [r7, #4]
movs r2, #0
ldr r3, _08030870 @ =gOamBuffer
mov sl, r3
ldr r6, [sp]
lsls r1, r6, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov r8, r0
ldr r0, _08030874 @ =0xFFFFFE00
mov ip, r0
_080307C8:
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
ldr r1, _08030870 @ =gOamBuffer
adds r2, r2, r1
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
ldr r6, _08030878 @ =gUnknown_086B4D4E
adds r0, r0, r6
add r0, r8
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
ldr r0, _08030870 @ =gOamBuffer
adds r2, r2, r0
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, _0803087C @ =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, _08030870 @ =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, #1
ble _080307C8
ldr r7, _08030880 @ =gUnknown_0200D860
ldrh r0, [r7]
cmp r0, #0
beq _080308C2
mov r3, sb
ldr r0, [r3]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xc0
subs r0, r0, r1
strh r0, [r7, #2]
ldr r1, [r3]
ldr r6, _08030884 @ =0x00000346
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _0803088C
ldr r2, _08030888 @ =0xFFFFD860
adds r0, r7, r2
ldrb r0, [r0, #0xf]
cmp r0, #0
beq _0803088C
adds r0, r1, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x38
subs r0, r0, r1
b _0803088E
.align 2, 0
_08030870: .4byte gOamBuffer
_08030874: .4byte 0xFFFFFE00
_08030878: .4byte gUnknown_086B4D4E
_0803087C: .4byte 0x000001FF
_08030880: .4byte gUnknown_0200D860
_08030884: .4byte 0x00000346
_08030888: .4byte 0xFFFFD860
_0803088C:
movs r0, #0xc8
_0803088E:
strh r0, [r7, #4]
adds r5, r7, #0
adds r5, #8
ldrh r2, [r7, #8]
lsls r2, r2, #3
add r2, sl
movs r3, #2
ldrsh r1, [r5, r3]
movs r6, #2
ldrsh r0, [r7, r6]
adds r1, r1, r0
ldr r3, _080308D4 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _080308D8 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7, #8]
lsls r1, r1, #3
add r1, sl
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
_080308C2:
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
_080308D4: .4byte 0x000001FF
_080308D8: .4byte 0xFFFFFE00
thumb_func_start sub_308DC
sub_308DC: @ 0x080308DC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _08030994 @ =gUnknown_020314E0
ldr r3, [r0]
movs r2, #0xca
lsls r2, r2, #2
adds r1, r3, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r7, r0, #0
cmp r1, #0
bne _080308FE
b _08030A2A
_080308FE:
movs r0, #0x13
ldrsb r0, [r3, r0]
cmp r0, #7
bne _08030908
b _08030A18
_08030908:
cmp r0, #2
bgt _080309A8
ldr r5, _08030998 @ =0x000006BD
adds r4, r3, r5
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #2
ble _0803091A
b _08030A18
_0803091A:
lsls r0, r0, #1
adds r2, #0x14
adds r1, r3, r2
adds r1, r1, r0
movs r2, #0
movs r5, #0
ldr r0, _0803099C @ =0x0000FF9C
strh r0, [r1]
movs r1, #0
ldrsb r1, [r4, r1]
ldr r4, _080309A0 @ =0x00000332
adds r0, r3, r4
adds r0, r0, r1
strb r2, [r0]
ldr r1, [r7]
ldr r0, _08030998 @ =0x000006BD
adds r3, r1, r0
movs r2, #0
ldrsb r2, [r3, r2]
lsls r2, r2, #1
adds r4, #4
adds r0, r1, r4
adds r0, r0, r2
strh r5, [r0]
movs r0, #0
ldrsb r0, [r3, r0]
movs r2, #0xcb
lsls r2, r2, #2
adds r1, r1, r2
adds r1, r1, r0
movs r3, #1
strb r3, [r1]
ldr r1, [r7]
ldr r0, _08030998 @ =0x000006BD
adds r2, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #1
adds r1, r1, r4
adds r1, r1, r0
strh r5, [r1]
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
ldr r2, [r7]
subs r4, #0xc
adds r1, r2, r4
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
ldr r5, _08030998 @ =0x000006BD
adds r0, r2, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _08030A18
ldr r1, _080309A4 @ =0x000006C2
adds r0, r2, r1
strh r3, [r0]
b _08030A18
.align 2, 0
_08030994: .4byte gUnknown_020314E0
_08030998: .4byte 0x000006BD
_0803099C: .4byte 0x0000FF9C
_080309A0: .4byte 0x00000332
_080309A4: .4byte 0x000006C2
_080309A8:
ldr r2, _08030A54 @ =0x000006BD
adds r4, r3, r2
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #1
bgt _08030A18
lsls r0, r0, #1
movs r5, #0xcf
lsls r5, r5, #2
adds r1, r3, r5
adds r1, r1, r0
movs r2, #0
movs r5, #0
ldr r0, _08030A58 @ =0x0000FF9C
strh r0, [r1]
movs r1, #0
ldrsb r1, [r4, r1]
ldr r4, _08030A5C @ =0x00000332
adds r0, r3, r4
adds r0, r0, r1
strb r2, [r0]
ldr r1, [r7]
ldr r0, _08030A54 @ =0x000006BD
adds r4, r1, r0
movs r2, #0
ldrsb r2, [r4, r2]
lsls r2, r2, #1
ldr r3, _08030A60 @ =0x00000336
adds r0, r1, r3
adds r0, r0, r2
strh r5, [r0]
movs r0, #0
ldrsb r0, [r4, r0]
movs r2, #0xcb
lsls r2, r2, #2
adds r1, r1, r2
adds r1, r1, r0
movs r0, #1
strb r0, [r1]
ldr r1, [r7]
ldr r4, _08030A54 @ =0x000006BD
adds r2, r1, r4
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #1
adds r3, r1, r3
adds r3, r3, r0
strh r5, [r3]
ldr r5, _08030A64 @ =0x0000032A
adds r1, r1, r5
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r1]
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
_08030A18:
ldr r0, [r7]
movs r1, #0xca
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0
strb r1, [r0]
ldr r1, [r7]
ldr r0, _08030A68 @ =0x00000BB8
str r0, [r1, #0x3c]
_08030A2A:
movs r1, #0
ldr r2, _08030A6C @ =gUnknown_020314E0
mov sb, r2
_08030A30:
mov r3, sb
ldr r5, [r3]
lsls r1, r1, #0x10
asrs r6, r1, #0x10
movs r4, #0xcb
lsls r4, r4, #2
adds r0, r5, r4
adds r2, r0, r6
movs r4, #0
ldrsb r4, [r2, r4]
mov sl, r1
cmp r4, #1
beq _08030AAC
cmp r4, #1
bgt _08030A70
cmp r4, #0
beq _08030A7E
b _08030C98
.align 2, 0
_08030A54: .4byte 0x000006BD
_08030A58: .4byte 0x0000FF9C
_08030A5C: .4byte 0x00000332
_08030A60: .4byte 0x00000336
_08030A64: .4byte 0x0000032A
_08030A68: .4byte 0x00000BB8
_08030A6C: .4byte gUnknown_020314E0
_08030A70:
cmp r4, #2
bne _08030A76
b _08030B7C
_08030A76:
cmp r4, #3
bne _08030A7C
b _08030BCE
_08030A7C:
b _08030C98
_08030A7E:
lsls r2, r6, #1
movs r1, #0xcf
lsls r1, r1, #2
adds r0, r5, r1
adds r0, r0, r2
ldr r1, _08030AA4 @ =0x0000FF9C
strh r1, [r0]
ldr r3, _08030AA8 @ =0x00000332
adds r0, r5, r3
adds r0, r0, r6
movs r5, #0
strb r5, [r0]
mov r1, sb
ldr r0, [r1]
adds r3, #4
adds r0, r0, r3
adds r0, r0, r2
strh r4, [r0]
b _08030C98
.align 2, 0
_08030AA4: .4byte 0x0000FF9C
_08030AA8: .4byte 0x00000332
_08030AAC:
lsls r7, r6, #1
ldr r0, _08030B28 @ =0x00000336
mov r8, r0
adds r0, r5, r0
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #0x20
bhi _08030B58
cmp r0, #0
bne _08030AC6
movs r0, #0xe9
bl m4aSongNumStart
_08030AC6:
mov r1, sb
ldr r0, [r1]
add r0, r8
adds r0, r0, r7
ldrh r0, [r0]
cmp r0, #0x1a
bne _08030ADA
movs r0, #0xea
bl m4aSongNumStart
_08030ADA:
mov r3, sb
ldr r2, [r3]
mov r5, r8
adds r1, r2, r5
adds r1, r1, r7
ldrh r0, [r1]
adds r0, #1
movs r3, #0
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x14
bhi _08030B34
ldr r1, _08030B2C @ =0x0000032F
adds r0, r2, r1
adds r0, r0, r6
strb r3, [r0]
mov r2, sb
ldr r3, [r2]
movs r4, #0xcf
lsls r4, r4, #2
adds r2, r3, r4
adds r2, r2, r7
adds r1, r3, r5
adds r1, r1, r7
ldrh r0, [r1]
lsls r0, r0, #2
subs r0, #0x50
strh r0, [r2]
ldrh r0, [r1]
cmp r0, #0x14
beq _08030B1C
b _08030C98
_08030B1C:
ldr r5, _08030B30 @ =0x00000326
adds r1, r3, r5
movs r0, #0x17
strh r0, [r1]
b _08030C98
.align 2, 0
_08030B28: .4byte 0x00000336
_08030B2C: .4byte 0x0000032F
_08030B30: .4byte 0x00000326
_08030B34:
cmp r0, #0x18
bhi _08030B48
ldr r1, _08030B44 @ =0x0000032F
adds r0, r2, r1
adds r0, r0, r6
strb r4, [r0]
b _08030C98
.align 2, 0
_08030B44: .4byte 0x0000032F
_08030B48:
ldr r3, _08030B54 @ =0x0000032F
adds r0, r2, r3
adds r0, r0, r6
movs r1, #2
strb r1, [r0]
b _08030C98
.align 2, 0
_08030B54: .4byte 0x0000032F
_08030B58:
movs r1, #0
movs r0, #2
strb r0, [r2]
mov r4, sb
ldr r0, [r4]
ldr r5, _08030B78 @ =0x00000336
adds r0, r0, r5
adds r0, r0, r7
strh r1, [r0]
cmp r6, #2
beq _08030B70
b _08030C98
_08030B70:
movs r0, #7
bl sub_19B64
b _08030C98
.align 2, 0
_08030B78: .4byte 0x00000336
_08030B7C:
ldr r2, _08030BB8 @ =0x0000032F
adds r3, r5, r2
adds r3, r3, r6
movs r1, #0xa4
lsls r1, r1, #2
adds r0, r5, r1
ldr r0, [r0]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #4
lsls r0, r0, #1
adds r0, #1
movs r4, #0
strb r0, [r3]
mov r5, sb
ldr r3, [r5]
adds r2, r3, r2
adds r2, r2, r6
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #1
bne _08030BC0
lsls r0, r6, #1
movs r2, #0xcf
lsls r2, r2, #2
adds r1, r3, r2
adds r1, r1, r0
ldr r0, _08030BBC @ =0x0000FFFE
strh r0, [r1]
b _08030C98
.align 2, 0
_08030BB8: .4byte 0x0000032F
_08030BBC: .4byte 0x0000FFFE
_08030BC0:
lsls r1, r6, #1
movs r5, #0xcf
lsls r5, r5, #2
adds r0, r3, r5
adds r0, r0, r1
strh r4, [r0]
b _08030C98
_08030BCE:
lsls r1, r6, #1
ldr r3, _08030C04 @ =0x00000336
adds r0, r5, r3
adds r0, r0, r1
movs r1, #0
ldrsh r4, [r0, r1]
cmp r4, #0x1f
bgt _08030C10
ldr r2, _08030C08 @ =0x0000032F
adds r0, r5, r2
adds r3, r0, r6
adds r0, r4, #0
cmp r4, #0
bge _08030BEC
adds r0, #0xf
_08030BEC:
asrs r2, r0, #4
adds r0, r2, #4
strb r0, [r3]
mov r3, sb
ldr r0, [r3]
ldr r5, _08030C0C @ =0x00000332
adds r0, r0, r5
adds r1, r0, r6
adds r0, r2, #1
strb r0, [r1]
b _08030C84
.align 2, 0
_08030C04: .4byte 0x00000336
_08030C08: .4byte 0x0000032F
_08030C0C: .4byte 0x00000332
_08030C10:
cmp r4, #0x25
bgt _08030C58
cmp r4, #0x20
bne _08030C28
ldr r0, _08030C4C @ =gMain
ldrb r0, [r0, #0xf]
ands r4, r0
cmp r4, #0
bne _08030C28
movs r0, #0xeb
bl m4aSongNumStart
_08030C28:
mov r0, sb
ldr r1, [r0]
mov r3, sl
asrs r2, r3, #0x10
ldr r4, _08030C50 @ =0x0000032F
adds r1, r1, r4
adds r1, r1, r2
movs r0, #6
strb r0, [r1]
mov r5, sb
ldr r0, [r5]
ldr r1, _08030C54 @ =0x00000332
adds r0, r0, r1
adds r0, r0, r2
movs r1, #3
strb r1, [r0]
b _08030C84
.align 2, 0
_08030C4C: .4byte gMain
_08030C50: .4byte 0x0000032F
_08030C54: .4byte 0x00000332
_08030C58:
cmp r4, #0x2d
bgt _08030C6C
ldr r2, _08030C68 @ =0x00000332
adds r0, r5, r2
adds r0, r0, r6
movs r1, #4
strb r1, [r0]
b _08030C84
.align 2, 0
_08030C68: .4byte 0x00000332
_08030C6C:
cmp r4, #0x35
bgt _08030C80
ldr r3, _08030C7C @ =0x00000332
adds r0, r5, r3
adds r0, r0, r6
movs r1, #5
strb r1, [r0]
b _08030C84
.align 2, 0
_08030C7C: .4byte 0x00000332
_08030C80:
movs r0, #0
strb r0, [r2]
_08030C84:
mov r4, sb
ldr r0, [r4]
mov r5, sl
asrs r1, r5, #0xf
ldr r2, _08030D00 @ =0x00000336
adds r0, r0, r2
adds r0, r0, r1
ldrh r1, [r0]
adds r1, #1
strh r1, [r0]
_08030C98:
movs r0, #0x80
lsls r0, r0, #9
add r0, sl
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bgt _08030CA8
b _08030A30
_08030CA8:
ldr r1, _08030D04 @ =gUnknown_020314E0
ldr r5, [r1]
ldr r4, _08030D08 @ =0x00000326
adds r3, r5, r4
ldrh r0, [r3]
adds r7, r1, #0
cmp r0, #0
beq _08030CDC
ldr r4, _08030D0C @ =gUnknown_086AE54A
movs r1, #6
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r0, r4
ldrh r1, [r0]
movs r2, #0xc9
lsls r2, r2, #2
adds r0, r5, r2
strb r1, [r0]
ldr r1, [r7]
ldr r3, _08030D08 @ =0x00000326
adds r1, r1, r3
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_08030CDC:
ldr r2, [r7]
ldr r4, _08030D10 @ =0x000006C2
adds r1, r2, r4
ldrh r0, [r1]
cmp r0, #0
beq _08030DA4
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08030DA4
adds r2, #0xe4
ldrb r0, [r2]
cmp r0, #0
beq _08030D14
movs r0, #1
strh r0, [r1]
b _08030D18
.align 2, 0
_08030D00: .4byte 0x00000336
_08030D04: .4byte gUnknown_020314E0
_08030D08: .4byte 0x00000326
_08030D0C: .4byte gUnknown_086AE54A
_08030D10: .4byte 0x000006C2
_08030D14:
movs r0, #4
strb r0, [r2]
_08030D18:
ldr r4, [r7]
ldr r5, _08030E04 @ =0x000006C2
adds r0, r4, r5
ldrh r5, [r0]
cmp r5, #0
bne _08030DA4
ldr r2, _08030E08 @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
orrs r0, r1
strb r0, [r2, #0xf]
adds r1, r4, #0
adds r1, #0xea
movs r3, #0
movs r0, #0x46
strh r0, [r1]
adds r1, #2
movs r0, #0xa0
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe8
strh r5, [r0]
subs r0, #2
strh r5, [r0]
adds r0, #8
strh r5, [r0]
adds r1, #6
movs r0, #4
strb r0, [r1]
ldr r0, [r7]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
adds r0, #0xfb
strb r3, [r0]
ldr r3, [r7]
adds r1, r3, #0
adds r1, #0xf4
movs r0, #0x78
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xf6
strh r5, [r0]
subs r1, #4
movs r0, #0x32
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xf8
strh r5, [r0]
ldr r1, _08030E0C @ =0x040000D4
ldr r0, _08030E10 @ =gUnknown_086ACEF8
ldr r0, [r0, #0x10]
str r0, [r1]
ldr r0, _08030E14 @ =0x06015800
str r0, [r1, #4]
ldr r0, _08030E18 @ =0x80001200
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08030E1C @ =gUnknown_086ACF18
ldr r0, [r0, #0x10]
str r0, [r1]
ldr r0, _08030E20 @ =0x050003C0
str r0, [r1, #4]
ldr r0, _08030E24 @ =0x80000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r0, [r2, #0x38]
movs r0, #0xce
strh r0, [r2, #0x38]
_08030DA4:
ldr r5, [r7]
ldr r0, _08030E28 @ =0x000006BE
adds r3, r5, r0
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _08030E3E
movs r1, #0xd8
lsls r1, r1, #3
adds r0, r5, r1
ldrh r1, [r0]
adds r2, r1, #1
strh r2, [r0]
lsls r1, r1, #0x10
asrs r4, r1, #0x10
cmp r4, #0x3c
bgt _08030E30
adds r0, r4, #0
movs r1, #0x1e
bl __modsi3
lsls r0, r0, #0x10
asrs r6, r0, #0x10
cmp r6, #0
bne _08030E3E
adds r0, r4, #0
movs r1, #0x1e
bl __divsi3
lsls r0, r0, #0x10
asrs r1, r0, #0x10
movs r2, #0xcb
lsls r2, r2, #2
adds r0, r5, r2
adds r2, r0, r1
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #2
bne _08030E3E
movs r0, #3
strb r0, [r2]
ldr r0, [r7]
lsls r1, r1, #1
ldr r3, _08030E2C @ =0x00000336
adds r0, r0, r3
adds r0, r0, r1
strh r6, [r0]
b _08030E3E
.align 2, 0
_08030E04: .4byte 0x000006C2
_08030E08: .4byte gMain
_08030E0C: .4byte 0x040000D4
_08030E10: .4byte gUnknown_086ACEF8
_08030E14: .4byte 0x06015800
_08030E18: .4byte 0x80001200
_08030E1C: .4byte gUnknown_086ACF18
_08030E20: .4byte 0x050003C0
_08030E24: .4byte 0x80000010
_08030E28: .4byte 0x000006BE
_08030E2C: .4byte 0x00000336
_08030E30:
movs r1, #0
strb r1, [r3]
ldr r0, [r7]
movs r4, #0xd8
lsls r4, r4, #3
adds r0, r0, r4
strh r1, [r0]
_08030E3E:
ldr r2, [r7]
ldr r4, _08030EA8 @ =0x0000032A
adds r1, r2, r4
ldrh r0, [r1]
cmp r0, #0
beq _08030E98
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #0
bne _08030E98
ldr r5, _08030EAC @ =0x000006BD
adds r2, r2, r5
ldrb r0, [r2]
subs r1, r0, #1
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _08030E98
strb r1, [r2]
ldr r0, [r7]
adds r1, r0, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
movs r2, #0xcb
lsls r2, r2, #2
adds r0, r0, r2
adds r0, r0, r1
movs r1, #3
strb r1, [r0]
ldr r2, [r7]
adds r0, r2, r5
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #1
ldr r5, _08030EB0 @ =0x00000336
adds r0, r2, r5
adds r0, r0, r1
strh r3, [r0]
adds r2, r2, r4
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r2]
_08030E98:
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
_08030EA8: .4byte 0x0000032A
_08030EAC: .4byte 0x000006BD
_08030EB0: .4byte 0x00000336
thumb_func_start sub_30EB4
sub_30EB4: @ 0x08030EB4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r6, _0803100C @ =gUnknown_0200E1B8
ldrh r0, [r6]
cmp r0, #0
bne _08030EC8
b _0803110C
_08030EC8:
ldr r3, _08031010 @ =gUnknown_020314E0
ldr r0, [r3]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xa
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r3]
adds r0, #0x5a
ldrh r1, [r0]
movs r2, #0x95
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #4]
ldr r0, [r3]
movs r7, #0xc9
lsls r7, r7, #2
adds r0, r0, r7
ldr r2, _08031014 @ =0x040000D4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08031018 @ =gUnknown_0844F20C
adds r0, r0, r1
str r0, [r2]
ldr r0, _0803101C @ =0x060139A0
str r0, [r2, #4]
ldr r0, _08031020 @ =0x80000140
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r5, #0
mov sl, r3
ldr r0, _08031024 @ =gOamBuffer
mov sb, r0
mov r7, sb
ldr r1, _08031028 @ =0xFFFFFE00
mov ip, r1
_08030F18:
lsls r4, r5, #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 r0, _0803102C @ =0x000001FF
mov r8, r0
mov r2, r8
ands r1, r2
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 r5, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _08030F18
ldr r6, _08031030 @ =gUnknown_0200E498
mov r3, sl
ldr r0, [r3]
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xa
subs r0, r0, r1
strh r0, [r6, #2]
ldr r0, [r3]
adds r0, #0x5a
ldrh r1, [r0]
movs r7, #0x95
lsls r7, r7, #1
adds r0, r7, #0
subs r0, r0, r1
strh r0, [r6, #4]
adds r5, r6, #0
adds r5, #8
ldrh r2, [r6, #8]
lsls r2, r2, #3
add r2, sb
movs r0, #2
ldrsh r1, [r5, r0]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
mov r7, r8
ands r1, r7
ldrh r3, [r2, #2]
ldr r0, _08031028 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r6, #8]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r6, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
movs r3, #0
ldr r0, _08031014 @ =0x040000D4
mov sl, r0
_08030FB4:
lsls r3, r3, #0x10
asrs r2, r3, #0x10
movs r0, #0xb8
muls r0, r2, r0
ldr r1, _08031034 @ =gUnknown_0200E270
adds r6, r0, r1
lsls r5, r2, #1
ldr r7, _08031038 @ =gUnknown_086AE544
adds r0, r5, r7
ldrh r1, [r0]
subs r1, r1, r2
ldr r0, _08031010 @ =gUnknown_020314E0
ldr r4, [r0]
adds r0, r4, #0
adds r0, #0x58
ldrh r0, [r0]
subs r1, r1, r0
strh r1, [r6, #2]
movs r1, #0xcb
lsls r1, r1, #2
adds r0, r4, r1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov sb, r3
cmp r0, #0
ble _0803103C
movs r2, #0xcf
lsls r2, r2, #2
adds r0, r4, r2
adds r0, r0, r5
movs r3, #0x92
lsls r3, r3, #1
adds r1, r3, #0
ldrh r0, [r0]
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0x5a
ldrh r0, [r0]
subs r1, r1, r0
strh r1, [r6, #4]
b _08031040
.align 2, 0
_0803100C: .4byte gUnknown_0200E1B8
_08031010: .4byte gUnknown_020314E0
_08031014: .4byte 0x040000D4
_08031018: .4byte gUnknown_0844F20C
_0803101C: .4byte 0x060139A0
_08031020: .4byte 0x80000140
_08031024: .4byte gOamBuffer
_08031028: .4byte 0xFFFFFE00
_0803102C: .4byte 0x000001FF
_08031030: .4byte gUnknown_0200E498
_08031034: .4byte gUnknown_0200E270
_08031038: .4byte gUnknown_086AE544
_0803103C:
movs r0, #0xc8
strh r0, [r6, #4]
_08031040:
ldr r7, _0803111C @ =gUnknown_020314E0
ldr r3, [r7]
mov r0, sb
asrs r2, r0, #0x10
ldr r1, _08031120 @ =0x0000032F
adds r0, r3, r1
adds r0, r0, r2
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r7, _08031124 @ =gUnknown_084FDF8C
adds r0, r0, r7
mov r1, sl
str r0, [r1]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #7
ldr r7, _08031128 @ =0x06013C20
adds r0, r0, r7
str r0, [r1, #4]
ldr r0, _0803112C @ =0x800000B0
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08031130 @ =0x00000332
adds r3, r3, r0
adds r3, r3, r2
movs r5, #0
lsls r0, r2, #3
adds r0, r0, r2
lsls r0, r0, #3
mov r8, r0
movs r1, #0
ldrsb r1, [r3, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
mov ip, r0
_0803108E:
lsls r3, r5, #0x10
asrs r3, r3, #0x10
lsls r0, r3, #3
adds r0, #8
adds r5, r6, r0
ldrh r2, [r5]
lsls r2, r2, #3
ldr r1, _08031134 @ =gOamBuffer
adds r2, r2, r1
ldr r1, _08031138 @ =gUnknown_086B3E1E
add r1, ip
add r1, r8
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #1
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 r2, [r5]
lsls r2, r2, #3
ldr r7, _08031134 @ =gOamBuffer
adds r2, r2, r7
ldrh r4, [r2, #2]
lsls r1, r4, #0x17
lsrs r1, r1, #0x17
movs r7, #2
ldrsh r0, [r6, r7]
adds r1, r1, r0
ldr r7, _0803113C @ =0x000001FF
adds r0, r7, #0
ands r1, r0
ldr r0, _08031140 @ =0xFFFFFE00
ands r0, r4
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r5]
lsls r1, r1, #3
ldr r0, _08031134 @ =gOamBuffer
adds r1, r1, r0
ldrb r0, [r6, #4]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
adds r3, #1
lsls r3, r3, #0x10
lsrs r5, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #1
ble _0803108E
movs r0, #0x80
lsls r0, r0, #9
add r0, sb
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bgt _0803110C
b _08030FB4
_0803110C:
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
_0803111C: .4byte gUnknown_020314E0
_08031120: .4byte 0x0000032F
_08031124: .4byte gUnknown_084FDF8C
_08031128: .4byte 0x06013C20
_0803112C: .4byte 0x800000B0
_08031130: .4byte 0x00000332
_08031134: .4byte gOamBuffer
_08031138: .4byte gUnknown_086B3E1E
_0803113C: .4byte 0x000001FF
_08031140: .4byte 0xFFFFFE00
thumb_func_start sub_31144
sub_31144: @ 0x08031144
push {r4, r5, r6, r7, lr}
ldr r1, _08031190 @ =gUnknown_020314E0
ldr r5, [r1]
movs r2, #0xd2
lsls r2, r2, #1
adds r0, r5, r2
movs r2, #0
ldrsb r2, [r0, r2]
adds r7, r1, #0
cmp r2, #0
beq _0803115C
b _080312D0
_0803115C:
ldr r3, _08031194 @ =0x000001A5
adds r0, r5, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _080311DC
movs r4, #0xda
lsls r4, r4, #1
adds r0, r5, r4
ldrh r1, [r0]
cmp r1, #0x5f
bhi _080311CC
cmp r1, #7
bhi _0803119C
ldr r1, _08031198 @ =gUnknown_08137CF6
ldrh r0, [r0]
lsrs r0, r0, #1
lsls r0, r0, #1
adds r1, #8
adds r0, r0, r1
ldrh r1, [r0]
movs r2, #0xd6
lsls r2, r2, #1
adds r0, r5, r2
b _080311B4
.align 2, 0
_08031190: .4byte gUnknown_020314E0
_08031194: .4byte 0x000001A5
_08031198: .4byte gUnknown_08137CF6
_0803119C:
ldr r2, _080311C8 @ =gUnknown_08137CE2
ldrh r0, [r0]
movs r1, #0x1f
ands r0, r1
lsrs r0, r0, #3
lsls r0, r0, #1
adds r2, #0xa
adds r0, r0, r2
ldrh r1, [r0]
movs r3, #0xd6
lsls r3, r3, #1
adds r0, r5, r3
_080311B4:
strb r1, [r0]
ldr r1, [r7]
movs r4, #0xda
lsls r4, r4, #1
adds r1, r1, r4
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _080311CE
.align 2, 0
_080311C8: .4byte gUnknown_08137CE2
_080311CC:
strh r2, [r0]
_080311CE:
ldr r0, [r7]
ldr r2, _080311D8 @ =0x000001AD
adds r1, r0, r2
movs r0, #2
b _0803123E
.align 2, 0
_080311D8: .4byte 0x000001AD
_080311DC:
movs r3, #0xda
lsls r3, r3, #1
adds r0, r5, r3
ldrh r1, [r0]
cmp r1, #0x77
bhi _08031234
cmp r1, #7
bhi _08031204
ldr r1, _08031200 @ =gUnknown_08137CF6
ldrh r0, [r0]
lsrs r0, r0, #1
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r4, #0xd6
lsls r4, r4, #1
adds r0, r5, r4
b _0803121E
.align 2, 0
_08031200: .4byte gUnknown_08137CF6
_08031204:
ldr r4, _08031230 @ =gUnknown_08137CE2
ldrh r0, [r0]
movs r1, #0x28
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x13
lsls r0, r0, #1
adds r0, r0, r4
ldrh r1, [r0]
movs r2, #0xd6
lsls r2, r2, #1
adds r0, r5, r2
_0803121E:
strb r1, [r0]
ldr r1, [r7]
movs r3, #0xda
lsls r3, r3, #1
adds r1, r1, r3
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _08031236
.align 2, 0
_08031230: .4byte gUnknown_08137CE2
_08031234:
strh r2, [r0]
_08031236:
ldr r0, [r7]
ldr r4, _08031288 @ =0x000001AD
adds r1, r0, r4
movs r0, #0
_0803123E:
strb r0, [r1]
ldr r1, [r7]
ldr r2, _0803128C @ =0x0000072E
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #2
ble _08031298
ldr r3, _08031290 @ =0x00000281
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _08031260
b _08031396
_08031260:
ldr r4, _08031294 @ =0x000001A5
adds r0, r1, r4
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
beq _0803126E
b _08031396
_0803126E:
movs r2, #0xd2
lsls r2, r2, #1
adds r0, r1, r2
movs r1, #1
strb r1, [r0]
ldr r2, [r7]
adds r4, #0xf
adds r0, r2, r4
strh r3, [r0]
ldr r3, _08031294 @ =0x000001A5
adds r0, r2, r3
strb r1, [r0]
b _08031396
.align 2, 0
_08031288: .4byte 0x000001AD
_0803128C: .4byte 0x0000072E
_08031290: .4byte 0x00000281
_08031294: .4byte 0x000001A5
_08031298:
movs r0, #0x13
ldrsb r0, [r1, r0]
cmp r0, #6
bne _080312A2
b _08031396
_080312A2:
ldr r4, _080312CC @ =0x000001A5
adds r0, r1, r4
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #1
bne _08031396
movs r2, #0xd2
lsls r2, r2, #1
adds r0, r1, r2
movs r2, #0
strb r3, [r0]
ldr r3, [r7]
adds r4, #0xf
adds r0, r3, r4
movs r1, #0
strh r2, [r0]
ldr r2, _080312CC @ =0x000001A5
adds r0, r3, r2
strb r1, [r0]
b _08031396
.align 2, 0
_080312CC: .4byte 0x000001A5
_080312D0:
ldr r4, _0803131C @ =gUnknown_08137D06
movs r6, #0xda
lsls r6, r6, #1
adds r0, r5, r6
ldrh r0, [r0]
movs r1, #3
bl __udivsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
ldr r3, _08031320 @ =0x000001A5
adds r1, r5, r3
movs r2, #0
ldrsb r2, [r1, r2]
lsls r1, r2, #3
subs r1, r1, r2
lsls r1, r1, #2
adds r0, r0, r1
adds r0, r0, r4
ldrh r2, [r0]
movs r0, #0xd6
lsls r0, r0, #1
adds r1, r5, r0
movs r3, #0
strb r2, [r1]
ldr r1, [r7]
adds r0, r1, r0
ldrb r0, [r0]
subs r0, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _08031328
ldr r4, _08031324 @ =0x000001AD
adds r1, r1, r4
movs r0, #1
strb r0, [r1]
b _0803136A
.align 2, 0
_0803131C: .4byte gUnknown_08137D06
_08031320: .4byte 0x000001A5
_08031324: .4byte 0x000001AD
_08031328:
ldr r2, _08031344 @ =0x000001A5
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
bne _0803134C
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0xe
bls _08031364
ldr r0, _08031348 @ =0x000001AD
adds r1, r1, r0
b _08031358
.align 2, 0
_08031344: .4byte 0x000001A5
_08031348: .4byte 0x000001AD
_0803134C:
adds r0, r1, r6
ldrh r0, [r0]
cmp r0, #0xe
bhi _08031364
ldr r2, _08031360 @ =0x000001AD
adds r1, r1, r2
_08031358:
movs r0, #2
strb r0, [r1]
b _0803136A
.align 2, 0
_08031360: .4byte 0x000001AD
_08031364:
ldr r4, _0803139C @ =0x000001AD
adds r0, r1, r4
strb r3, [r0]
_0803136A:
ldr r2, [r7]
movs r0, #0xda
lsls r0, r0, #1
adds r1, r2, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x2a
bne _08031396
movs r3, #0xd2
lsls r3, r3, #1
adds r1, r2, r3
movs r0, #0
strb r0, [r1]
ldr r0, [r7]
movs r4, #0xda
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #0
strh r1, [r0]
_08031396:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0803139C: .4byte 0x000001AD
thumb_func_start sub_313A0
sub_313A0: @ 0x080313A0
push {r4, r5, r6, r7, lr}
ldr r6, _08031464 @ =gUnknown_0200E550
ldrh r0, [r6]
cmp r0, #0
beq _0803145C
ldr r0, _08031468 @ =gUnknown_020314E0
ldr r3, [r0]
adds r0, r3, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0x10
subs r0, r0, r1
strh r0, [r6, #2]
adds r0, r3, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x73
subs r0, r0, r1
strh r0, [r6, #4]
ldr r1, _0803146C @ =0x000001AD
adds r0, r3, r1
movs r1, #0
ldrsb r1, [r0, r1]
adds r0, r3, #0
adds r0, #0x6f
movs r2, #0
ldrsb r2, [r0, r2]
lsls r0, r2, #1
adds r0, r0, r2
ldr r2, _08031470 @ =0x040000D4
adds r1, r1, r0
lsls r1, r1, #5
ldr r0, _08031474 @ =gUnknown_081BC984
adds r1, r1, r0
str r1, [r2]
ldr r0, _08031478 @ =0x05000300
str r0, [r2, #4]
ldr r0, _0803147C @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r1, #0xd6
lsls r1, r1, #1
adds r0, r3, r1
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _08031480 @ =gUnknown_0848108C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08031484 @ =0x06014B20
str r0, [r2, #4]
ldr r0, _08031488 @ =0x80000240
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r0, #0
ldr r7, _0803148C @ =gOamBuffer
ldr r2, _08031490 @ =0xFFFFFE00
mov ip, r2
_08031418:
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 r0, #2
ldrsh r1, [r3, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08031494 @ =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, #1
ble _08031418
_0803145C:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08031464: .4byte gUnknown_0200E550
_08031468: .4byte gUnknown_020314E0
_0803146C: .4byte 0x000001AD
_08031470: .4byte 0x040000D4
_08031474: .4byte gUnknown_081BC984
_08031478: .4byte 0x05000300
_0803147C: .4byte 0x80000010
_08031480: .4byte gUnknown_0848108C
_08031484: .4byte 0x06014B20
_08031488: .4byte 0x80000240
_0803148C: .4byte gOamBuffer
_08031490: .4byte 0xFFFFFE00
_08031494: .4byte 0x000001FF
thumb_func_start sub_31498
sub_31498: @ 0x08031498
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r1, _080314C4 @ =gUnknown_020314E0
ldr r0, [r1]
ldr r2, _080314C8 @ =0x00000346
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #6
bls _080314B8
b _080319AC
_080314B8:
lsls r0, r0, #2
ldr r1, _080314CC @ =_080314D0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080314C4: .4byte gUnknown_020314E0
_080314C8: .4byte 0x00000346
_080314CC: .4byte _080314D0
_080314D0: @ jump table
.4byte _080314EC @ case 0
.4byte _08031610 @ case 1
.4byte _080319AC @ case 2
.4byte _080316F4 @ case 3
.4byte _080317E0 @ case 4
.4byte _080318A8 @ case 5
.4byte _08031988 @ case 6
_080314EC:
ldr r4, [r5]
movs r3, #0xd1
lsls r3, r3, #2
adds r0, r4, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08031500
b _080319AC
_08031500:
movs r0, #0x13
ldrsb r0, [r4, r0]
cmp r0, #2
bgt _080315A4
ldr r7, _08031528 @ =0x00000345
adds r1, r4, r7
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _08031530
adds r0, r2, #1
strb r0, [r1]
ldr r1, [r5]
ldr r0, _0803152C @ =0x00004E20
str r0, [r1, #0x3c]
movs r0, #0xde
bl m4aSongNumStart
b _080315C2
.align 2, 0
_08031528: .4byte 0x00000345
_0803152C: .4byte 0x00004E20
_08031530:
ldr r2, _08031594 @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
movs r3, #0
orrs r0, r1
strb r0, [r2, #0xf]
adds r0, r4, #0
adds r0, #0xea
movs r2, #0
strh r3, [r0]
adds r1, r4, #0
adds r1, #0xec
movs r0, #0xe6
lsls r0, r0, #2
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe8
strh r3, [r0]
subs r0, #2
strh r3, [r0]
adds r0, #8
strh r3, [r0]
adds r0, #4
strb r2, [r0]
ldr r0, [r5]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
adds r0, #0xfb
strb r2, [r0]
ldr r0, [r5]
ldr r2, _08031598 @ =0x00000346
adds r0, r0, r2
strb r1, [r0]
ldr r0, [r5]
movs r4, #0xd2
lsls r4, r4, #2
adds r0, r0, r4
strh r3, [r0]
ldr r0, _0803159C @ =gMPlayInfo_BGM
bl m4aMPlayStop
ldr r1, [r5]
ldr r0, _080315A0 @ =0x00030D40
str r0, [r1, #0x3c]
movs r0, #0xdf
bl m4aSongNumStart
b _080315C2
.align 2, 0
_08031594: .4byte gMain
_08031598: .4byte 0x00000346
_0803159C: .4byte gMPlayInfo_BGM
_080315A0: .4byte 0x00030D40
_080315A4:
ldr r7, _080315F4 @ =0x00000345
adds r1, r4, r7
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _080315C2
adds r0, r2, #1
strb r0, [r1]
ldr r1, [r5]
ldr r0, _080315F8 @ =0x00004E20
str r0, [r1, #0x3c]
movs r0, #0xde
bl m4aSongNumStart
_080315C2:
ldr r0, _080315FC @ =gUnknown_020314E0
ldr r3, [r0]
ldr r1, _080315F4 @ =0x00000345
adds r0, r3, r1
ldr r2, _08031600 @ =0x040000D4
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #6
ldr r1, _08031604 @ =gUnknown_08490A4C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08031608 @ =0x0600D900
str r0, [r2, #4]
ldr r0, _0803160C @ =0x80000220
str r0, [r2, #8]
ldr r0, [r2, #8]
movs r2, #0xd1
lsls r2, r2, #2
adds r3, r3, r2
movs r0, #0
strb r0, [r3]
b _080319AC
.align 2, 0
_080315F4: .4byte 0x00000345
_080315F8: .4byte 0x00004E20
_080315FC: .4byte gUnknown_020314E0
_08031600: .4byte 0x040000D4
_08031604: .4byte gUnknown_08490A4C
_08031608: .4byte 0x0600D900
_0803160C: .4byte 0x80000220
_08031610:
ldr r0, [r5]
movs r3, #0xd2
lsls r3, r3, #2
adds r2, r0, r3
ldrh r1, [r2]
ldr r0, _08031654 @ =0x0000010D
cmp r1, r0
bhi _08031668
adds r0, r1, #0
movs r1, #0x3c
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x1e
bl __udivsi3
adds r0, #4
ldr r2, _08031658 @ =0x040000D4
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #6
ldr r0, _0803165C @ =gUnknown_08490A4C
adds r1, r1, r0
str r1, [r2]
ldr r0, _08031660 @ =0x0600D900
str r0, [r2, #4]
ldr r0, _08031664 @ =0x80000220
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0803168C
.align 2, 0
_08031654: .4byte 0x0000010D
_08031658: .4byte 0x040000D4
_0803165C: .4byte gUnknown_08490A4C
_08031660: .4byte 0x0600D900
_08031664: .4byte 0x80000220
_08031668:
ldr r1, _080316D8 @ =0x040000D4
movs r2, #0
ldr r0, _080316DC @ =gUnknown_08490A4C
str r0, [r1]
ldr r0, _080316E0 @ =0x0600D900
str r0, [r1, #4]
ldr r0, _080316E4 @ =0x80000220
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, [r5]
ldr r4, _080316E8 @ =0x00000346
adds r0, r0, r4
movs r1, #2
strb r1, [r0]
ldr r0, [r5]
ldr r7, _080316EC @ =0x00000345
adds r0, r0, r7
strb r2, [r0]
_0803168C:
ldr r0, [r5]
movs r4, #0xd2
lsls r4, r4, #2
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0x3c
bne _080316CC
movs r0, #0x16
bl m4aSongNumStart
ldr r0, [r5]
movs r1, #0xe5
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
strb r2, [r0]
ldr r0, [r5]
movs r3, #0xf6
lsls r3, r3, #1
adds r0, r0, r3
movs r1, #5
strb r1, [r0]
ldr r0, [r5]
ldr r7, _080316F0 @ =0x000001ED
adds r1, r0, r7
movs r0, #0xc
strb r0, [r1]
ldr r0, [r5]
movs r1, #0xf8
lsls r1, r1, #1
adds r0, r0, r1
strh r2, [r0]
_080316CC:
ldr r1, [r5]
adds r1, r1, r4
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _080319AC
.align 2, 0
_080316D8: .4byte 0x040000D4
_080316DC: .4byte gUnknown_08490A4C
_080316E0: .4byte 0x0600D900
_080316E4: .4byte 0x80000220
_080316E8: .4byte 0x00000346
_080316EC: .4byte 0x00000345
_080316F0: .4byte 0x000001ED
_080316F4:
ldr r6, _0803171C @ =gUnknown_086AE5A0
ldr r2, [r5]
ldr r4, _08031720 @ =0x00000345
adds r3, r2, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r1, r6, #2
adds r0, r0, r1
movs r7, #0
ldrsh r0, [r0, r7]
movs r1, #0xd2
lsls r1, r1, #2
adds r2, r2, r1
ldrh r1, [r2]
cmp r0, r1
ble _08031724
adds r0, r1, #1
strh r0, [r2]
b _08031784
.align 2, 0
_0803171C: .4byte gUnknown_086AE5A0
_08031720: .4byte 0x00000345
_08031724:
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r1, [r5]
ldr r2, _080317A0 @ =0x00000345
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
bne _08031746
ldr r3, _080317A4 @ =0x00000346
adds r1, r1, r3
movs r0, #4
strb r0, [r1]
_08031746:
ldr r0, [r5]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #6
bne _0803175A
movs r0, #0xe0
bl m4aSongNumStart
_0803175A:
ldr r0, [r5]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r6
ldr r2, _080317A8 @ =0x040000D4
movs r4, #0
ldrsh r1, [r0, r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #6
ldr r1, _080317AC @ =gUnknown_08490A4C
adds r0, r0, r1
str r0, [r2]
ldr r0, _080317B0 @ =0x0600D900
str r0, [r2, #4]
ldr r0, _080317B4 @ =0x80000220
str r0, [r2, #8]
ldr r0, [r2, #8]
_08031784:
ldr r1, [r5]
ldr r7, _080317A0 @ =0x00000345
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #5
bgt _080317B8
movs r0, #0x80
lsls r0, r0, #2
adds r1, r1, r0
subs r0, #0xe8
str r0, [r1]
b _080319AC
.align 2, 0
_080317A0: .4byte 0x00000345
_080317A4: .4byte 0x00000346
_080317A8: .4byte 0x040000D4
_080317AC: .4byte gUnknown_08490A4C
_080317B0: .4byte 0x0600D900
_080317B4: .4byte 0x80000220
_080317B8:
movs r2, #0x80
lsls r2, r2, #2
adds r3, r1, r2
ldr r2, [r3]
adds r0, r2, #6
str r0, [r3]
ldr r4, _080317DC @ =0x00000346
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
beq _080317D4
b _080319AC
_080317D4:
adds r0, r2, #0
adds r0, #0x1a
str r0, [r3]
b _080319AC
.align 2, 0
_080317DC: .4byte 0x00000346
_080317E0:
ldr r5, _08031894 @ =gUnknown_020314E0
ldr r4, [r5]
ldr r7, _08031898 @ =0x00000343
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08031882
movs r1, #0xd1
lsls r1, r1, #2
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08031882
ldr r2, _0803189C @ =gMain
ldrb r1, [r2, #0xf]
movs r0, #1
movs r3, #0
orrs r0, r1
strb r0, [r2, #0xf]
adds r0, r4, #0
adds r0, #0xea
movs r2, #0
strh r3, [r0]
adds r1, r4, #0
adds r1, #0xec
movs r0, #0xa0
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe8
strh r3, [r0]
subs r0, #2
strh r3, [r0]
adds r0, #8
strh r3, [r0]
adds r0, #4
strb r2, [r0]
ldr r0, [r5]
adds r0, #0xfa
movs r4, #1
strb r4, [r0]
ldr r0, [r5]
adds r0, #0xfb
strb r2, [r0]
ldr r0, [r5]
ldr r2, _080318A0 @ =0x00000346
adds r0, r0, r2
movs r1, #5
strb r1, [r0]
ldr r0, [r5]
adds r7, #5
adds r1, r0, r7
strh r3, [r1]
ldr r1, _080318A4 @ =0x00000345
adds r0, r0, r1
movs r1, #0xa
strb r1, [r0]
movs r0, #0xe0
bl m4aSongNumStart
ldr r0, [r5]
movs r2, #0xf6
lsls r2, r2, #1
adds r0, r0, r2
strb r4, [r0]
ldr r2, [r5]
movs r3, #0xfa
lsls r3, r3, #1
adds r1, r2, r3
movs r0, #0x82
lsls r0, r0, #4
strh r0, [r1]
movs r4, #0xfb
lsls r4, r4, #1
adds r1, r2, r4
movs r0, #0xf0
lsls r0, r0, #2
strh r0, [r1]
_08031882:
ldr r0, _08031894 @ =gUnknown_020314E0
ldr r0, [r0]
movs r7, #0xd1
lsls r7, r7, #2
adds r0, r0, r7
movs r1, #0
strb r1, [r0]
b _080319AC
.align 2, 0
_08031894: .4byte gUnknown_020314E0
_08031898: .4byte 0x00000343
_0803189C: .4byte gMain
_080318A0: .4byte 0x00000346
_080318A4: .4byte 0x00000345
_080318A8:
ldr r6, _080318D0 @ =gUnknown_086AE5A0
ldr r2, [r5]
ldr r4, _080318D4 @ =0x00000345
adds r3, r2, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r1, r6, #2
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
movs r7, #0xd2
lsls r7, r7, #2
adds r2, r2, r7
ldrh r1, [r2]
cmp r0, r1
ble _080318D8
adds r0, r1, #1
strh r0, [r2]
b _08031924
.align 2, 0
_080318D0: .4byte gUnknown_086AE5A0
_080318D4: .4byte 0x00000345
_080318D8:
movs r0, #0
strh r0, [r2]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r1, [r5]
ldr r2, _08031968 @ =0x00000345
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xf
bne _080318FA
ldr r3, _0803196C @ =0x00000346
adds r1, r1, r3
movs r0, #6
strb r0, [r1]
_080318FA:
ldr r0, [r5]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r6
ldr r2, _08031970 @ =0x040000D4
movs r4, #0
ldrsh r1, [r0, r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #6
ldr r1, _08031974 @ =gUnknown_08490A4C
adds r0, r0, r1
str r0, [r2]
ldr r0, _08031978 @ =0x0600D900
str r0, [r2, #4]
ldr r0, _0803197C @ =0x80000220
str r0, [r2, #8]
ldr r0, [r2, #8]
_08031924:
ldr r0, _08031980 @ =gUnknown_020314E0
ldr r1, [r0]
ldr r7, _08031968 @ =0x00000345
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xe
bne _08031948
movs r2, #0xd2
lsls r2, r2, #2
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, #0xa
bne _08031948
movs r0, #0xe1
bl m4aSongNumStart
_08031948:
ldr r0, _08031980 @ =gUnknown_020314E0
ldr r0, [r0]
movs r3, #0xfb
lsls r3, r3, #1
adds r1, r0, r3
ldrh r3, [r1]
movs r4, #0
ldrsh r0, [r1, r4]
movs r2, #0xaf
lsls r2, r2, #2
cmp r0, r2
ble _08031984
subs r0, r3, #5
strh r0, [r1]
b _080319AC
.align 2, 0
_08031968: .4byte 0x00000345
_0803196C: .4byte 0x00000346
_08031970: .4byte 0x040000D4
_08031974: .4byte gUnknown_08490A4C
_08031978: .4byte 0x0600D900
_0803197C: .4byte 0x80000220
_08031980: .4byte gUnknown_020314E0
_08031984:
strh r2, [r1]
b _080319AC
_08031988:
ldr r0, [r5]
ldr r7, _080319F8 @ =0x00000345
adds r0, r0, r7
movs r2, #0
strb r2, [r0]
ldr r0, [r5]
movs r3, #0xd2
lsls r3, r3, #2
adds r1, r0, r3
movs r3, #0
strh r2, [r1]
ldr r4, _080319FC @ =0x00000346
adds r0, r0, r4
strb r3, [r0]
ldr r0, [r5]
subs r7, #2
adds r0, r0, r7
strb r3, [r0]
_080319AC:
movs r1, #0
ldr r0, _08031A00 @ =0x040000D4
mov sb, r0
ldr r2, _08031A04 @ =gUnknown_086AE554
mov sl, r2
_080319B6:
lsls r1, r1, #0x10
asrs r4, r1, #0x10
movs r0, #0xb8
muls r0, r4, r0
ldr r3, _08031A08 @ =gUnknown_0200D580
adds r6, r0, r3
ldrh r0, [r6]
mov r8, r1
cmp r0, #0
bne _080319CC
b _08031AEA
_080319CC:
ldr r5, _08031A0C @ =gUnknown_020314E0
ldr r1, [r5]
ldr r7, _08031A10 @ =0x00000355
adds r0, r1, r7
adds r3, r0, r4
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
ldr r2, _08031A14 @ =gUnknown_086AE58A
adds r0, r0, r2
movs r7, #0
ldrsh r2, [r0, r7]
lsls r0, r4, #1
ldr r7, _08031A18 @ =0x0000035E
adds r1, r1, r7
adds r1, r1, r0
ldrh r0, [r1]
cmp r2, r0
ble _08031A1C
adds r0, #1
strh r0, [r1]
b _08031A3C
.align 2, 0
_080319F8: .4byte 0x00000345
_080319FC: .4byte 0x00000346
_08031A00: .4byte 0x040000D4
_08031A04: .4byte gUnknown_086AE554
_08031A08: .4byte gUnknown_0200D580
_08031A0C: .4byte gUnknown_020314E0
_08031A10: .4byte 0x00000355
_08031A14: .4byte gUnknown_086AE58A
_08031A18: .4byte 0x0000035E
_08031A1C:
movs r2, #0
strh r2, [r1]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
ldr r0, [r5]
ldr r1, _08031B08 @ =0x00000355
adds r0, r0, r1
adds r1, r0, r4
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #6
bne _08031A3C
strh r2, [r6]
movs r0, #5
strb r0, [r1]
_08031A3C:
ldr r2, _08031B0C @ =gUnknown_020314E0
ldr r4, [r2]
mov r7, r8
asrs r3, r7, #0x10
ldr r1, _08031B08 @ =0x00000355
adds r0, r4, r1
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
ldr r2, _08031B10 @ =gUnknown_086AE588
adds r0, r0, r2
movs r7, #0
ldrsh r0, [r0, r7]
lsls r0, r0, #8
ldr r1, _08031B14 @ =gUnknown_0845A08C
adds r0, r0, r1
mov r1, sb
str r0, [r1]
lsls r0, r3, #8
ldr r2, _08031B18 @ =0x060140A0
adds r0, r0, r2
str r0, [r1, #4]
ldr r0, _08031B1C @ =0x80000080
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r7, _08031B20 @ =0x00000359
adds r2, r4, r7
adds r2, r2, r3
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #2
add r0, sl
adds r1, r4, #0
adds r1, #0x58
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r6, #2]
movs r0, #0
ldrsb r0, [r2, r0]
lsls r0, r0, #2
add r0, sl
adds r4, #0x5a
ldrh r0, [r0, #2]
ldrh r1, [r4]
subs r0, r0, r1
strh r0, [r6, #4]
movs r0, #0
ldr r7, _08031B24 @ =gOamBuffer
ldr r1, _08031B28 @ =0xFFFFFE00
mov ip, r1
_08031AA6:
lsls r3, r0, #0x10
asrs r3, r3, #0x10
lsls r5, r3, #3
adds r5, #8
adds r5, r6, r5
ldrh r2, [r5]
lsls r2, r2, #3
adds r2, r2, r7
movs r4, #2
ldrsh r1, [r5, r4]
movs r4, #2
ldrsh r0, [r6, r4]
adds r1, r1, r0
ldr r4, _08031B2C @ =0x000001FF
adds r0, r4, #0
ands r1, r0
ldrh r4, [r2, #2]
mov r0, ip
ands r0, r4
orrs r0, r1
strh r0, [r2, #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 r3, #1
lsls r3, r3, #0x10
lsrs r0, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #2
ble _08031AA6
_08031AEA:
movs r0, #0x80
lsls r0, r0, #9
add r0, r8
lsrs r1, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
bgt _08031AFA
b _080319B6
_08031AFA:
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
_08031B08: .4byte 0x00000355
_08031B0C: .4byte gUnknown_020314E0
_08031B10: .4byte gUnknown_086AE588
_08031B14: .4byte gUnknown_0845A08C
_08031B18: .4byte 0x060140A0
_08031B1C: .4byte 0x80000080
_08031B20: .4byte 0x00000359
_08031B24: .4byte gOamBuffer
_08031B28: .4byte 0xFFFFFE00
_08031B2C: .4byte 0x000001FF
thumb_func_start sub_31B30
sub_31B30: @ 0x08031B30
push {r4, r5, r6, r7, lr}
ldr r1, _08031B64 @ =gMain
ldrb r0, [r1, #4]
ldr r2, _08031B68 @ =0x00004010
adds r6, r1, r2
cmp r0, #0
bne _08031B42
ldr r0, _08031B6C @ =0x00003D30
adds r6, r1, r0
_08031B42:
ldrh r0, [r6]
cmp r0, #0
beq _08031BD6
ldr r0, _08031B70 @ =gUnknown_020314E0
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x4c
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #7
bgt _08031B74
adds r0, r1, #0
adds r0, #0x58
ldrh r1, [r0]
movs r2, #8
rsbs r2, r2, #0
b _08031B7E
.align 2, 0
_08031B64: .4byte gMain
_08031B68: .4byte 0x00004010
_08031B6C: .4byte 0x00003D30
_08031B70: .4byte gUnknown_020314E0
_08031B74:
adds r0, r1, #0
adds r0, #0x58
ldrh r1, [r0]
movs r2, #0x80
lsls r2, r2, #1
_08031B7E:
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r6, #2]
movs r0, #0
strh r0, [r6, #4]
ldr r7, _08031BDC @ =gOamBuffer
ldr r1, _08031BE0 @ =0xFFFFFE00
mov ip, r1
_08031B8E:
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, _08031BE4 @ =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 r2, [r3]
lsls r2, r2, #3
adds r2, r2, r7
ldrb r0, [r6, #4]
ldrb r3, [r3, #4]
adds r0, r0, r3
lsls r1, r5, #5
adds r0, r0, r1
strb r0, [r2]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #4
ble _08031B8E
_08031BD6:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08031BDC: .4byte gOamBuffer
_08031BE0: .4byte 0xFFFFFE00
_08031BE4: .4byte 0x000001FF
thumb_func_start sub_31BE8
sub_31BE8: @ 0x08031BE8
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
ldr r1, _08031C40 @ =gUnknown_020314E0
ldr r0, [r1]
adds r0, #0x70
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r7, r1, #0
ldr r5, _08031C44 @ =gUnknown_02031520
cmp r0, #1
bne _08031C1C
ldr r2, _08031C48 @ =0x040000D4
lsls r0, r3, #0x10
asrs r0, r0, #0xe
adds r1, r5, #0
adds r1, #0x2c
adds r0, r0, r1
ldr r0, [r0]
str r0, [r2]
ldr r0, _08031C4C @ =0x05000200
str r0, [r2, #4]
ldr r0, _08031C50 @ =0x80000010
str r0, [r2, #8]
ldr r0, [r2, #8]
_08031C1C:
ldr r0, _08031C54 @ =gMain
ldrb r1, [r0, #4]
adds r6, r0, #0
cmp r1, #1
bne _08031C60
ldr r2, _08031C48 @ =0x040000D4
lsls r3, r3, #0x10
asrs r0, r3, #0xe
adds r1, r5, #0
adds r1, #0x2c
adds r0, r0, r1
ldr r0, [r0]
adds r0, #0x40
str r0, [r2]
ldr r0, _08031C58 @ =0x05000240
str r0, [r2, #4]
ldr r0, _08031C5C @ =0x80000060
b _08031C78
.align 2, 0
_08031C40: .4byte gUnknown_020314E0
_08031C44: .4byte gUnknown_02031520
_08031C48: .4byte 0x040000D4
_08031C4C: .4byte 0x05000200
_08031C50: .4byte 0x80000010
_08031C54: .4byte gMain
_08031C58: .4byte 0x05000240
_08031C5C: .4byte 0x80000060
_08031C60:
ldr r2, _08031CB8 @ =0x040000D4
lsls r3, r3, #0x10
asrs r0, r3, #0xe
adds r1, r5, #0
adds r1, #0x2c
adds r0, r0, r1
ldr r0, [r0]
adds r0, #0x40
str r0, [r2]
ldr r0, _08031CBC @ =0x05000240
str r0, [r2, #4]
ldr r0, _08031CC0 @ =0x80000070
_08031C78:
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r4, _08031CB8 @ =0x040000D4
asrs r3, r3, #0x10
lsls r0, r3, #2
adds r1, r5, #0
adds r1, #0x2c
adds r0, r0, r1
ldr r0, [r0]
movs r1, #0xa0
lsls r1, r1, #1
adds r0, r0, r1
str r0, [r4]
ldr r0, _08031CC4 @ =0x05000340
str r0, [r4, #4]
ldr r5, _08031CC8 @ =0x80000010
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, [r7]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xa9
bgt _08031CD0
ldrb r1, [r6, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #6
lsls r1, r3, #6
ldr r2, _08031CCC @ =gUnknown_08137B3C
adds r1, r1, r2
b _08031CDE
.align 2, 0
_08031CB8: .4byte 0x040000D4
_08031CBC: .4byte 0x05000240
_08031CC0: .4byte 0x80000070
_08031CC4: .4byte 0x05000340
_08031CC8: .4byte 0x80000010
_08031CCC: .4byte gUnknown_08137B3C
_08031CD0:
ldrb r1, [r6, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #6
ldr r1, _08031CF0 @ =gUnknown_08137B5C
adds r0, r0, r1
lsls r1, r3, #6
_08031CDE:
adds r0, r0, r1
str r0, [r4]
ldr r0, _08031CF4 @ =0x05000360
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08031CF0: .4byte gUnknown_08137B5C
_08031CF4: .4byte 0x05000360
thumb_func_start sub_31CF8
sub_31CF8: @ 0x08031CF8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x10
cmp r0, #0
bne _08031D90
ldr r0, _08031D80 @ =gMain
ldrb r0, [r0, #2]
cmp r0, #3
beq _08031D20
ldr r0, _08031D84 @ =gUnknown_020314E0
ldr r0, [r0]
movs r1, #0xb3
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #4
bl SaveFile_SetPokedexFlags
_08031D20:
ldr r2, _08031D88 @ =gUnknown_086A3700
ldr r1, _08031D84 @ =gUnknown_020314E0
ldr r4, [r1]
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r4, r3
ldrh r3, [r0]
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #3
adds r2, r0, r2
movs r0, #0x14
ldrsb r0, [r2, r0]
mov r8, r1
cmp r0, #0
bne _08031D42
b _08031F5E
_08031D42:
ldrb r0, [r2, #0x15]
cmp r0, #0xcc
bls _08031D4A
b _08031F5E
_08031D4A:
ldr r0, _08031D8C @ =0x00000281
adds r1, r4, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xf
bgt _08031D58
b _08031F00
_08031D58:
movs r2, #0
mov r4, r8
movs r3, #0x9c
lsls r3, r3, #2
_08031D60:
ldr r1, [r4]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r3
adds r2, r1, r0
adds r0, #1
adds r1, r1, r0
ldrb r1, [r1]
strb r1, [r2]
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xf
ble _08031D60
b _08031F4C
.align 2, 0
_08031D80: .4byte gMain
_08031D84: .4byte gUnknown_020314E0
_08031D88: .4byte gUnknown_086A3700
_08031D8C: .4byte 0x00000281
_08031D90:
ldr r2, _08031E10 @ =gUnknown_020314E0
ldr r1, [r2]
ldr r6, _08031E14 @ =0x00000281
adds r1, r1, r6
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
ldr r0, [r2]
movs r3, #0xa0
lsls r3, r3, #2
adds r1, r0, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r6
lsls r3, r1, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r4, _08031E18 @ =gMain
mov r8, r2
cmp r1, r0
bge _08031DE6
mov r5, r8
movs r7, #0x9c
lsls r7, r7, #2
_08031DC4:
ldr r0, [r5]
asrs r1, r3, #0x10
adds r0, r0, r7
adds r2, r0, r1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r0, [r5]
adds r0, r0, r6
lsls r3, r1, #0x10
asrs r1, r3, #0x10
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r1, r0
blt _08031DC4
_08031DE6:
mov r1, r8
ldr r0, [r1]
movs r5, #0xb3
lsls r5, r5, #3
adds r3, r0, r5
ldrh r0, [r3]
cmp r0, #0xd
bne _08031E32
ldr r0, [r4, #0x4c]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _08031E20
adds r0, r4, #0
adds r0, #0x74
ldrb r0, [r0, #0xe]
cmp r0, #3
bhi _08031E1C
movs r0, #0xe
b _08031EB2
.align 2, 0
_08031E10: .4byte gUnknown_020314E0
_08031E14: .4byte 0x00000281
_08031E18: .4byte gMain
_08031E1C:
movs r0, #0x10
b _08031EB2
_08031E20:
adds r0, r4, #0
adds r0, #0x74
ldrb r0, [r0, #0x10]
cmp r0, #3
bhi _08031E2E
movs r0, #0x10
b _08031EB2
_08031E2E:
movs r0, #0xe
b _08031EB2
_08031E32:
cmp r0, #0x58
bne _08031E44
ldrb r0, [r4, #4]
cmp r0, #0
bne _08031E40
movs r0, #0x59
b _08031EB2
_08031E40:
movs r0, #0x5a
b _08031EB2
_08031E44:
cmp r0, #0xaf
bne _08031E7C
ldr r0, [r4, #0x4c]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _08031E66
movs r2, #0x92
lsls r2, r2, #1
adds r0, r4, r2
ldrb r0, [r0]
cmp r0, #3
bhi _08031E62
movs r0, #0xb0
b _08031EB2
_08031E62:
movs r0, #0xb1
b _08031EB2
_08031E66:
ldr r1, _08031E74 @ =0x00000125
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, #3
bhi _08031E78
movs r0, #0xb1
b _08031EB2
.align 2, 0
_08031E74: .4byte 0x00000125
_08031E78:
movs r0, #0xb0
b _08031EB2
_08031E7C:
cmp r0, #0x29
bne _08031EA4
movs r0, #0x2b
strh r0, [r3]
ldr r4, _08031EA0 @ =gMain
ldrb r0, [r4, #2]
cmp r0, #3
beq _08031E94
movs r0, #0x2b
movs r1, #4
bl SaveFile_SetPokedexFlags
_08031E94:
mov r2, r8
ldr r0, [r2]
adds r0, r0, r5
movs r1, #0x2a
strh r1, [r0]
b _08031EB4
.align 2, 0
_08031EA0: .4byte gMain
_08031EA4:
ldr r2, _08031F1C @ =gUnknown_086A3700
ldrh r1, [r3]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #0x15]
_08031EB2:
strh r0, [r3]
_08031EB4:
ldrb r0, [r4, #2]
cmp r0, #3
beq _08031ECE
ldr r0, _08031F20 @ =gUnknown_020314E0
ldr r0, [r0]
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r0, r3
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #4
bl SaveFile_SetPokedexFlags
_08031ECE:
ldr r2, _08031F1C @ =gUnknown_086A3700
ldr r1, _08031F20 @ =gUnknown_020314E0
ldr r4, [r1]
movs r3, #0xb3
lsls r3, r3, #3
adds r0, r4, r3
ldrh r3, [r0]
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #3
adds r2, r0, r2
movs r0, #0x14
ldrsb r0, [r2, r0]
mov r8, r1
cmp r0, #0
beq _08031F5E
ldrb r0, [r2, #0x15]
cmp r0, #0xcc
bhi _08031F5E
ldr r0, _08031F24 @ =0x00000281
adds r1, r4, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xf
bgt _08031F28
_08031F00:
adds r1, r0, #0
movs r2, #0x9c
lsls r2, r2, #2
adds r0, r4, r2
adds r0, r0, r1
strb r3, [r0]
mov r3, r8
ldr r1, [r3]
ldr r0, _08031F24 @ =0x00000281
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08031F5E
.align 2, 0
_08031F1C: .4byte gUnknown_086A3700
_08031F20: .4byte gUnknown_020314E0
_08031F24: .4byte 0x00000281
_08031F28:
movs r2, #0
mov r4, r8
movs r3, #0x9c
lsls r3, r3, #2
_08031F30:
ldr r1, [r4]
lsls r0, r2, #0x10
asrs r0, r0, #0x10
adds r1, r1, r3
adds r2, r1, r0
adds r0, #1
adds r1, r1, r0
ldrb r1, [r1]
strb r1, [r2]
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xf
ble _08031F30
_08031F4C:
mov r1, r8
ldr r0, [r1]
movs r2, #0xb3
lsls r2, r2, #3
adds r1, r0, r2
ldrh r1, [r1]
ldr r3, _08031F68 @ =0x0000027F
adds r0, r0, r3
strb r1, [r0]
_08031F5E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08031F68: .4byte 0x0000027F
thumb_func_start sub_31F6C
sub_31F6C: @ 0x08031F6C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r4, _08031FE0 @ =gUnknown_020314E0
ldr r0, [r4]
movs r1, #0x97
lsls r1, r1, #1
adds r3, r0, r1
movs r1, #0
strh r1, [r3]
ldr r3, _08031FE4 @ =0x0000073D
adds r0, r0, r3
ldrb r0, [r0] @ number of "catch" arrows lit up
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _08031F96
movs r1, #1 @ rare mons
_08031F96:
movs r2, #0
lsls r1, r1, #4
str r1, [sp]
ldr r5, _08031FE8 @ =gMain+0x74
mov r8, r5
mov sl, r4
_08031FA2:
lsls r2, r2, #0x10
asrs r1, r2, #0xf
ldr r0, [sp]
adds r1, r1, r0
mov r3, sl
ldr r0, [r3]
adds r0, #0x35
ldrb r0, [r0] @ current area
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
adds r1, r1, r0
ldr r5, _08031FEC @ =gWildMonLocations
adds r1, r1, r5
ldrh r6, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
mov sb, r2
cmp r0, #0x8d
beq _08032018
cmp r0, #0x8d
bgt _08031FFA
cmp r0, #0x84
beq _08032018
cmp r0, #0x84
bgt _08031FF0
cmp r0, #0x3b
beq _08032018
cmp r0, #0x72
beq _08032018
b _080320A8
.align 2, 0
_08031FE0: .4byte gUnknown_020314E0
_08031FE4: .4byte 0x0000073D
_08031FE8: .4byte gMain+0x74
_08031FEC: .4byte gWildMonLocations
_08031FF0:
cmp r0, #0x86
beq _08032018
cmp r0, #0x8b
beq _08032018
b _080320A8
_08031FFA:
cmp r0, #0xa0
beq _08032018
cmp r0, #0xa0
bgt _0803200C
cmp r0, #0x90
beq _08032018
cmp r0, #0x97
beq _08032018
b _080320A8
_0803200C:
cmp r0, #0xaf
beq _0803205E
cmp r0, #0xcd
bne _08032016
b _08032138
_08032016:
b _080320A8
_08032018:
ldr r0, _08032038 @ =gMain
ldrb r0, [r0, #8]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0803203C
lsls r0, r6, #0x10
asrs r0, r0, #0x10
add r0, r8
ldrb r0, [r0]
movs r5, #4
cmp r0, #1
bhi _0803204C
movs r5, #2
b _0803204C
.align 2, 0
_08032038: .4byte gMain
_0803203C:
lsls r0, r6, #0x10
asrs r0, r0, #0x10
add r0, r8
ldrb r0, [r0]
movs r5, #2
cmp r0, #1
bhi _0803204C
movs r5, #1
_0803204C:
mov r1, sl
ldr r0, [r1]
movs r3, #0xbe
lsls r3, r3, #3
adds r0, r0, r3
ldrh r0, [r0]
cmp r0, #0
bne _0803213A
b _08032138
_0803205E:
ldr r4, _080320A0 @ =gUnknown_086AE5E0
ldr r3, _080320A4 @ =gMain+0x74
adds r0, r3, #0
adds r0, #0xaf
ldrb r1, [r0]
lsls r1, r1, #1
adds r1, r1, r4
adds r0, #1
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r4
ldrh r2, [r0]
ldrh r5, [r1]
movs r0, #0
ldrsh r1, [r1, r0]
lsls r2, r2, #0x10
asrs r0, r2, #0x10
cmp r1, r0
bge _08032086
lsrs r5, r2, #0x10
_08032086:
adds r0, r3, #0
adds r0, #0xb1
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r4
ldrh r2, [r0]
lsls r0, r5, #0x10
lsls r1, r2, #0x10
cmp r0, r1
bge _0803213A
lsrs r5, r1, #0x10
b _0803213A
.align 2, 0
_080320A0: .4byte gUnknown_086AE5E0
_080320A4: .4byte gMain+0x74
_080320A8:
ldr r0, _0803218C @ =gUnknown_086AE5E0
lsls r1, r6, #0x10
asrs r1, r1, #0x10
add r1, r8
ldrb r1, [r1]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r5, [r1]
movs r3, #0
ldr r1, _08032190 @ =gUnknown_086A3700
mov ip, r1
mov r7, ip
adds r4, r0, #0
_080320C2:
lsls r1, r6, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r7
ldrb r6, [r0, #0x15]
adds r0, r6, #0
cmp r0, #0xcc
bgt _080320FA @ check if mon's evolution species is < SPECIES_NONE
add r0, r8
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r4
ldrh r2, [r0]
lsls r0, r5, #0x10
lsls r1, r2, #0x10
cmp r0, r1
bge _080320EA
lsrs r5, r1, #0x10
_080320EA:
lsls r0, r3, #0x10
movs r3, #0x80
lsls r3, r3, #9
adds r0, r0, r3
lsrs r3, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
ble _080320C2
_080320FA:
mov r0, sb
asrs r1, r0, #0xf
ldr r3, [sp]
adds r1, r1, r3
mov r0, sl
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x35
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #5
adds r1, r1, r0
ldr r3, _08032194 @ =gWildMonLocations
adds r1, r1, r3
ldrh r6, [r1]
movs r0, #0xbe
lsls r0, r0, #3
adds r2, r2, r0
ldrh r0, [r2]
cmp r0, #0
bne _0803213A
lsls r0, r6, #0x10
asrs r0, r0, #0x10
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #3
add r1, ip
ldrb r0, [r1, #0x15]
cmp r0, #0xcc
bls _0803213A
_08032138:
movs r5, #0
_0803213A:
mov r1, sl
ldr r4, [r1]
ldr r3, _08032198 @ =0x0000059C
adds r0, r4, r3
ldrh r1, [r0]
lsls r0, r6, #0x10
asrs r0, r0, #0x10
cmp r1, r0
bne _0803214E
movs r5, #0
_0803214E:
movs r1, #0x97
lsls r1, r1, #1
adds r0, r4, r1
lsls r2, r5, #0x10
asrs r2, r2, #0x10
ldrh r3, [r0]
adds r2, r2, r3
strh r2, [r0]
mov r5, sb
asrs r1, r5, #0x10
lsls r3, r1, #1
movs r5, #0x98
lsls r5, r5, #1
adds r0, r4, r5
adds r0, r0, r3
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #7
bgt _0803217C
b _08031FA2
_0803217C:
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
_0803218C: .4byte gUnknown_086AE5E0
_08032190: .4byte gUnknown_086A3700
_08032194: .4byte gWildMonLocations
_08032198: .4byte 0x0000059C