pokepinballrs/asm/options.s
2019-08-04 10:34:11 -05:00

2842 lines
49 KiB
ArmAsm
Executable File

.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start OptionsMain
OptionsMain: @ 0x08051220
push {lr}
ldr r1, _08051238 @ =gUnknown_08527F08
ldr r0, _0805123C @ =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
_08051238: .4byte gUnknown_08527F08
_0805123C: .4byte gMain
thumb_func_start sub_51240
sub_51240: @ 0x08051240
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
bl sub_438
movs r2, #0x80
lsls r2, r2, #0x13
movs r1, #0x84
lsls r1, r1, #5
adds r0, r1, #0
strh r0, [r2]
ldr r1, _08051358 @ =0x04000008
movs r0, #4
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #1
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0805135C @ =0x0400000A
adds r3, #9
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
adds r3, #0xf7
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r0, _08051360 @ =gMain
mov sb, r0
ldrh r0, [r2]
mov r1, sb
strh r0, [r1, #0x16]
ldr r5, _08051364 @ =0x040000D4
ldr r0, _08051368 @ =gUnknown_0852B468
str r0, [r5]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r5, #4]
ldr r0, _0805136C @ =0x80000100
str r0, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _08051370 @ =gUnknown_08528828
str r0, [r5]
ldr r0, _08051374 @ =0x06004000
str r0, [r5, #4]
ldr r0, _08051378 @ =0x80000C00
str r0, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _0805137C @ =gUnknown_0852A848
str r0, [r5]
ldr r0, _08051380 @ =0x06008000
str r0, [r5, #4]
ldr r0, _08051384 @ =0x80000600
str r0, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _08051388 @ =gUnknown_08528028
str r0, [r5]
ldr r7, _0805138C @ =0x03005C00
str r7, [r5, #4]
ldr r6, _08051390 @ =0x80000400
str r6, [r5, #8]
ldr r0, [r5, #8]
str r7, [r5]
movs r3, #0xc0
lsls r3, r3, #0x13
mov r8, r3
str r3, [r5, #4]
str r6, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _08051394 @ =gGameBoyPlayerEnabled
ldr r0, [r0]
cmp r0, #1
beq _080512F8
movs r4, #2
str r4, [sp]
movs r0, #0x12
movs r1, #4
movs r2, #2
movs r3, #1
bl sub_1068C
str r4, [sp]
movs r0, #0x12
movs r1, #5
movs r2, #3
movs r3, #2
bl sub_1068C
_080512F8:
str r7, [r5]
mov r0, r8
str r0, [r5, #4]
str r6, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _08051398 @ =gUnknown_0852A048
str r0, [r5]
ldr r0, _0805139C @ =0x06000800
str r0, [r5, #4]
str r6, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _080513A0 @ =gGBAButtonIcons_Pals
str r0, [r5]
ldr r0, _080513A4 @ =0x05000200
str r0, [r5, #4]
ldr r0, _080513A8 @ =0x80000030
str r0, [r5, #8]
ldr r0, [r5, #8]
ldr r0, _080513AC @ =gOptionsSprites_Gfx
str r0, [r5]
ldr r0, _080513B0 @ =0x06010000
str r0, [r5, #4]
ldr r0, _080513B4 @ =0x80001010
str r0, [r5, #8]
ldr r0, [r5, #8]
bl sub_513B8
bl sub_51C9C
bl m4aMPlayAllStop
bl sub_CBC
bl sub_24C
bl sub_10C0
mov r1, sb
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08051358: .4byte 0x04000008
_0805135C: .4byte 0x0400000A
_08051360: .4byte gMain
_08051364: .4byte 0x040000D4
_08051368: .4byte gUnknown_0852B468
_0805136C: .4byte 0x80000100
_08051370: .4byte gUnknown_08528828
_08051374: .4byte 0x06004000
_08051378: .4byte 0x80000C00
_0805137C: .4byte gUnknown_0852A848
_08051380: .4byte 0x06008000
_08051384: .4byte 0x80000600
_08051388: .4byte gUnknown_08528028
_0805138C: .4byte 0x03005C00
_08051390: .4byte 0x80000400
_08051394: .4byte gGameBoyPlayerEnabled
_08051398: .4byte gUnknown_0852A048
_0805139C: .4byte 0x06000800
_080513A0: .4byte gGBAButtonIcons_Pals
_080513A4: .4byte 0x05000200
_080513A8: .4byte 0x80000030
_080513AC: .4byte gOptionsSprites_Gfx
_080513B0: .4byte 0x06010000
_080513B4: .4byte 0x80001010
thumb_func_start sub_513B8
sub_513B8: @ 0x080513B8
push {r4, r5, r6, lr}
ldr r0, _08051468 @ =0x02002920
mov ip, r0
movs r2, #0
movs r1, #0
strh r1, [r0]
strh r1, [r0, #2]
strh r1, [r0, #4]
movs r3, #1
movs r0, #1
mov r4, ip
strh r0, [r4, #6]
strh r1, [r4, #8]
strh r1, [r4, #0xa]
ldr r0, _0805146C @ =0x0200B134
adds r0, #0xcf
ldrb r0, [r0]
strh r0, [r4, #0xc]
strh r1, [r4, #0xe]
strh r1, [r4, #0x10]
strb r2, [r4, #0x12]
strb r2, [r4, #0x13]
strb r3, [r4, #0x14]
strb r2, [r4, #0x15]
strb r2, [r4, #0x16]
strb r3, [r4, #0x17]
strh r1, [r4, #0x18]
mov r2, ip
movs r3, #0
movs r1, #5
adds r0, r2, #0
adds r0, #0x1f
_080513F8:
strb r3, [r0]
subs r0, #1
subs r1, #1
cmp r1, #0
bge _080513F8
movs r0, #0
strh r0, [r2, #0x20]
strh r0, [r2, #0x22]
movs r3, #0xa
movs r1, #1
adds r0, r2, #0
adds r0, #0x26
_08051410:
strh r3, [r0]
subs r0, #2
subs r1, #1
cmp r1, #0
bge _08051410
movs r0, #0
strh r0, [r2, #0x28]
movs r1, #0
ldr r6, _08051470 @ =0x02031AF0
ldr r5, _08051474 @ =gUnknown_08527ED6
_08051424:
adds r4, r1, #1
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
adds r2, r0, r5
adds r1, r0, r6
movs r3, #9
_08051432:
ldrb r0, [r2]
strb r0, [r1]
adds r2, #1
adds r1, #1
subs r3, #1
cmp r3, #0
bge _08051432
adds r1, r4, #0
cmp r1, #3
ble _08051424
bl sub_52528
ldr r0, _08051478 @ =gGameBoyPlayerEnabled
ldr r4, [r0]
cmp r4, #1
bne _0805147C
ldr r3, _08051468 @ =0x02002920
ldr r0, _0805146C @ =0x0200B134
adds r0, #0xcd
ldrb r1, [r0]
adds r2, r3, #0
adds r2, #0x2a
strb r1, [r2]
strb r4, [r0]
adds r2, r3, #0
b _0805148C
.align 2, 0
_08051468: .4byte 0x02002920
_0805146C: .4byte 0x0200B134
_08051470: .4byte 0x02031AF0
_08051474: .4byte gUnknown_08527ED6
_08051478: .4byte gGameBoyPlayerEnabled
_0805147C:
ldr r2, _080514B0 @ =0x02002920
adds r0, r2, #0
adds r0, #0x2a
movs r1, #0
strb r1, [r0]
ldr r0, _080514B4 @ =0x0200B134
adds r0, #0xcd
strb r1, [r0]
_0805148C:
adds r1, r2, #0
adds r1, #0x2e
movs r0, #0
strb r0, [r1]
subs r1, #3
strb r0, [r1]
adds r1, #1
strb r0, [r1]
adds r1, #1
strb r0, [r1]
adds r1, #2
strb r0, [r1]
adds r1, #1
strb r0, [r1]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080514B0: .4byte 0x02002920
_080514B4: .4byte 0x0200B134
thumb_func_start sub_514B8
sub_514B8: @ 0x080514B8
push {r4, r5, r6, r7, lr}
bl sub_51C9C
ldr r0, _080514D4 @ =0x02002920
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #4
bls _080514CA
b _08051B98
_080514CA:
lsls r0, r0, #2
ldr r1, _080514D8 @ =_080514DC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080514D4: .4byte 0x02002920
_080514D8: .4byte _080514DC
_080514DC: @ jump table
.4byte _080514F0 @ case 0
.4byte _080517A8 @ case 1
.4byte _080518D4 @ case 2
.4byte _08051A08 @ case 3
.4byte _08051AB8 @ case 4
_080514F0:
ldr r0, _08051514 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0805152C
ldr r4, _08051518 @ =0x02002920
movs r2, #0xa
ldrsh r0, [r4, r2]
cmp r0, #0xd
beq _0805156C
cmp r0, #0xe
bne _0805151C
movs r0, #0x67
bl m4aSongNumStart
movs r0, #0xd
b _0805156A
.align 2, 0
_08051514: .4byte gMain
_08051518: .4byte 0x02002920
_0805151C:
cmp r0, #0
ble _0805156C
movs r0, #0x67
bl m4aSongNumStart
ldrh r0, [r4, #0xa]
subs r0, #1
b _0805156A
_0805152C:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0805156C
ldr r4, _0805154C @ =0x02002920
movs r3, #0xa
ldrsh r0, [r4, r3]
cmp r0, #5
bgt _08051550
movs r0, #0x67
bl m4aSongNumStart
ldrh r0, [r4, #0xa]
adds r0, #1
b _0805156A
.align 2, 0
_0805154C: .4byte 0x02002920
_08051550:
cmp r0, #0xd
bne _0805155E
movs r0, #0x67
bl m4aSongNumStart
movs r0, #0xe
b _0805156A
_0805155E:
cmp r0, #0xe
bne _0805156C
movs r0, #0x67
bl m4aSongNumStart
movs r0, #2
_0805156A:
strh r0, [r4, #0xa]
_0805156C:
ldr r0, _080515E8 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08051594
ldr r0, _080515EC @ =gGameBoyPlayerEnabled
ldr r0, [r0]
cmp r0, #1
bne _08051594
ldr r4, _080515F0 @ =0x02002920
ldrh r0, [r4, #0xa]
cmp r0, #1
bhi _08051594
movs r0, #0x67
bl m4aSongNumStart
ldrh r0, [r4, #0xa]
adds r0, #0xd
strh r0, [r4, #0xa]
_08051594:
ldr r0, _080515E8 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080515C2
ldr r0, _080515EC @ =gGameBoyPlayerEnabled
ldr r0, [r0]
cmp r0, #1
bne _080515C2
ldr r4, _080515F0 @ =0x02002920
ldrh r0, [r4, #0xa]
subs r0, #0xd
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #1
bhi _080515C2
movs r0, #0x67
bl m4aSongNumStart
ldrh r0, [r4, #0xa]
subs r0, #0xd
strh r0, [r4, #0xa]
_080515C2:
ldr r4, _080515E8 @ =gMain
ldrh r1, [r4, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080515D0
b _0805177C
_080515D0:
ldr r0, _080515F0 @ =0x02002920
movs r6, #0xa
ldrsh r0, [r0, r6]
cmp r0, #0xe
bls _080515DC
b _08051A96
_080515DC:
lsls r0, r0, #2
ldr r1, _080515F4 @ =_080515F8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080515E8: .4byte gMain
_080515EC: .4byte gGameBoyPlayerEnabled
_080515F0: .4byte 0x02002920
_080515F4: .4byte _080515F8
_080515F8: @ jump table
.4byte _08051634 @ case 0
.4byte _08051674 @ case 1
.4byte _080516B0 @ case 2
.4byte _080516B0 @ case 3
.4byte _080516B0 @ case 4
.4byte _080516B0 @ case 5
.4byte _080516D0 @ case 6
.4byte _08051A96 @ case 7
.4byte _08051A96 @ case 8
.4byte _08051A96 @ case 9
.4byte _08051A96 @ case 10
.4byte _08051A96 @ case 11
.4byte _08051A96 @ case 12
.4byte _08051738 @ case 13
.4byte _080516F8 @ case 14
_08051634:
movs r0, #0x65
bl m4aSongNumStart
ldr r3, _08051670 @ =0x02002920
movs r4, #0
movs r1, #0
movs r2, #1
movs r0, #1
strh r0, [r3]
strh r1, [r3, #0x18]
adds r0, r3, #0
adds r0, #0x30
strb r2, [r0]
adds r1, r3, #0
adds r1, #0x2e
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
beq _0805165C
b _08051A96
_0805165C:
adds r0, r3, #0
adds r0, #0x2b
strb r4, [r0]
adds r0, #2
strb r4, [r0]
subs r0, #1
strb r4, [r0]
strb r4, [r1]
b _08051A96
.align 2, 0
_08051670: .4byte 0x02002920
_08051674:
movs r0, #0x65
bl m4aSongNumStart
ldr r2, _080516AC @ =0x02002920
movs r3, #0
movs r1, #0
movs r0, #2
strh r0, [r2]
strh r1, [r2, #0x18]
adds r1, r2, #0
adds r1, #0x30
movs r0, #1
strb r0, [r1]
subs r1, #2
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
beq _0805169A
b _08051A96
_0805169A:
adds r0, r2, #0
adds r0, #0x2b
strb r3, [r0]
adds r0, #2
strb r3, [r0]
subs r0, #1
strb r3, [r0]
strb r3, [r1]
b _08051A96
.align 2, 0
_080516AC: .4byte 0x02002920
_080516B0:
movs r0, #0x65
bl m4aSongNumStart
ldr r0, _080516C8 @ =0x02002920
ldrh r1, [r0, #0xa]
subs r1, #2
strh r1, [r0, #0xc]
ldr r0, _080516CC @ =0x0200B134
adds r0, #0xcf
strb r1, [r0]
b _08051A96
.align 2, 0
_080516C8: .4byte 0x02002920
_080516CC: .4byte 0x0200B134
_080516D0:
movs r0, #0x65
bl m4aSongNumStart
ldr r2, _080516F0 @ =0x02002920
ldrh r1, [r2, #0xa]
subs r1, #2
strh r1, [r2, #0xc]
ldr r0, _080516F4 @ =0x0200B134
adds r0, #0xcf
strb r1, [r0]
movs r0, #7
strh r0, [r2, #0xa]
movs r0, #3
strh r0, [r2]
b _08051A96
.align 2, 0
_080516F0: .4byte 0x02002920
_080516F4: .4byte 0x0200B134
_080516F8:
ldr r0, _08051730 @ =gGameBoyPlayerEnabled
ldr r0, [r0]
cmp r0, #1
beq _08051702
b _08051A96
_08051702:
movs r0, #0x65
bl m4aSongNumStart
ldr r1, _08051734 @ =0x02002920
adds r0, r1, #0
adds r0, #0x2d
movs r2, #0
strb r2, [r0]
adds r3, r1, #0
adds r3, #0x2e
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #1
bne _08051720
strb r2, [r3]
_08051720:
adds r0, r1, #0
adds r0, #0x2b
strb r2, [r0]
adds r0, #1
strb r2, [r0]
subs r0, #2
strb r2, [r0]
b _08051A96
.align 2, 0
_08051730: .4byte gGameBoyPlayerEnabled
_08051734: .4byte 0x02002920
_08051738:
ldr r0, _08051774 @ =gGameBoyPlayerEnabled
ldr r4, [r0]
cmp r4, #1
beq _08051742
b _08051A96
_08051742:
movs r0, #0x65
bl m4aSongNumStart
movs r0, #0xb
bl sub_11B0
ldr r2, _08051778 @ =0x02002920
adds r1, r2, #0
adds r1, #0x2e
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne _0805175E
strb r4, [r1]
_0805175E:
adds r1, r2, #0
adds r1, #0x2b
movs r0, #0
strb r0, [r1]
adds r1, #1
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x2a
strb r4, [r0]
b _08051A96
.align 2, 0
_08051774: .4byte gGameBoyPlayerEnabled
_08051778: .4byte 0x02002920
_0805177C:
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08051786
b _08051A96
_08051786:
movs r0, #0x66
bl m4aSongNumStart
ldrb r0, [r4, #3]
adds r0, #1
strb r0, [r4, #3]
ldr r7, _080517A4 @ =0x00000143
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_525CC
b _08051A96
.align 2, 0
_080517A4: .4byte 0x00000143
_080517A8:
ldr r1, _080517C8 @ =gMain
ldrh r2, [r1, #0x1c]
movs r0, #0x20
ands r0, r2
adds r3, r1, #0
cmp r0, #0
beq _080517D0
ldr r0, _080517CC @ =0x02002920
movs r2, #0x18
ldrsh r1, [r0, r2]
adds r4, r0, #0
cmp r1, #0
bne _080517EC
ldrh r0, [r4, #0xe]
subs r0, #1
b _080517E6
.align 2, 0
_080517C8: .4byte gMain
_080517CC: .4byte 0x02002920
_080517D0:
movs r0, #0x10
ands r0, r2
ldr r4, _080517FC @ =0x02002920
cmp r0, #0
beq _080517EC
movs r6, #0x18
ldrsh r0, [r4, r6]
cmp r0, #0
bne _080517EC
ldrh r0, [r4, #0xe]
adds r0, #1
_080517E6:
strh r0, [r4, #0xe]
movs r0, #0xa
strh r0, [r4, #0x18]
_080517EC:
ldrh r1, [r3, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _08051800
ldrh r0, [r4, #0xe]
adds r0, #0xa
b _0805180C
.align 2, 0
_080517FC: .4byte 0x02002920
_08051800:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0805180E
ldrh r0, [r4, #0xe]
subs r0, #0xa
_0805180C:
strh r0, [r4, #0xe]
_0805180E:
ldr r5, _08051880 @ =0x02002920
movs r7, #0xe
ldrsh r0, [r5, r7]
cmp r0, #0
bge _0805181C
movs r0, #0x21
strh r0, [r5, #0xe]
_0805181C:
movs r1, #0xe
ldrsh r0, [r5, r1]
cmp r0, #0x21
ble _08051828
movs r0, #0
strh r0, [r5, #0xe]
_08051828:
ldrh r4, [r5, #0xe]
adds r4, #1
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #0x64
bl __divsi3
strb r0, [r5, #0x12]
adds r0, r4, #0
movs r1, #0x64
bl __modsi3
adds r4, r0, #0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #0xa
bl __divsi3
strb r0, [r5, #0x13]
adds r0, r4, #0
movs r1, #0xa
bl __modsi3
strb r0, [r5, #0x14]
ldr r0, _08051884 @ =gMain
ldrh r1, [r0, #0x18]
movs r4, #1
ands r4, r1
cmp r4, #0
beq _0805188C
bl m4aMPlayAllStop
ldr r0, _08051888 @ =gUnknown_08527D22
movs r2, #0xe
ldrsh r1, [r5, r2]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
bl m4aSongNumStart
b _080518AA
.align 2, 0
_08051880: .4byte 0x02002920
_08051884: .4byte gMain
_08051888: .4byte gUnknown_08527D22
_0805188C:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080518AA
bl m4aMPlayAllStop
movs r0, #0x66
bl m4aSongNumStart
movs r1, #0
strh r4, [r5, #4]
adds r0, r5, #0
adds r0, #0x30
strb r1, [r0]
strh r4, [r5]
_080518AA:
ldr r0, _080518CC @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _080518C0
ldr r2, _080518D0 @ =0x02002920
ldrh r1, [r2, #4]
movs r0, #1
subs r0, r0, r1
strh r0, [r2, #4]
_080518C0:
ldr r1, _080518D0 @ =0x02002920
ldrh r2, [r1, #0x18]
movs r3, #0x18
ldrsh r0, [r1, r3]
b _080519F4
.align 2, 0
_080518CC: .4byte gMain
_080518D0: .4byte 0x02002920
_080518D4:
ldr r1, _080518F4 @ =gMain
ldrh r2, [r1, #0x1c]
movs r0, #0x20
ands r0, r2
adds r3, r1, #0
cmp r0, #0
beq _080518FC
ldr r0, _080518F8 @ =0x02002920
movs r6, #0x18
ldrsh r1, [r0, r6]
adds r4, r0, #0
cmp r1, #0
bne _08051918
ldrh r0, [r4, #0x10]
subs r0, #1
b _08051912
.align 2, 0
_080518F4: .4byte gMain
_080518F8: .4byte 0x02002920
_080518FC:
movs r0, #0x10
ands r0, r2
ldr r4, _08051928 @ =0x02002920
cmp r0, #0
beq _08051918
movs r7, #0x18
ldrsh r0, [r4, r7]
cmp r0, #0
bne _08051918
ldrh r0, [r4, #0x10]
adds r0, #1
_08051912:
strh r0, [r4, #0x10]
movs r0, #0xa
strh r0, [r4, #0x18]
_08051918:
ldrh r1, [r3, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0805192C
ldrh r0, [r4, #0x10]
adds r0, #0xa
b _08051938
.align 2, 0
_08051928: .4byte 0x02002920
_0805192C:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0805193A
ldrh r0, [r4, #0x10]
subs r0, #0xa
_08051938:
strh r0, [r4, #0x10]
_0805193A:
ldr r5, _080519AC @ =0x02002920
movs r1, #0x10
ldrsh r0, [r5, r1]
cmp r0, #0
bge _08051948
movs r0, #0xb7
strh r0, [r5, #0x10]
_08051948:
movs r2, #0x10
ldrsh r0, [r5, r2]
cmp r0, #0xb7
ble _08051954
movs r0, #0
strh r0, [r5, #0x10]
_08051954:
ldrh r4, [r5, #0x10]
adds r4, #1
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #0x64
bl __divsi3
strb r0, [r5, #0x15]
adds r0, r4, #0
movs r1, #0x64
bl __modsi3
adds r4, r0, #0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #0xa
bl __divsi3
strb r0, [r5, #0x16]
adds r0, r4, #0
movs r1, #0xa
bl __modsi3
strb r0, [r5, #0x17]
ldr r0, _080519B0 @ =gMain
ldrh r1, [r0, #0x18]
movs r4, #1
ands r4, r1
cmp r4, #0
beq _080519B8
bl m4aMPlayAllStop
ldr r0, _080519B4 @ =gUnknown_08527D66
movs r3, #0x10
ldrsh r1, [r5, r3]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
bl m4aSongNumStart
b _080519D6
.align 2, 0
_080519AC: .4byte 0x02002920
_080519B0: .4byte gMain
_080519B4: .4byte gUnknown_08527D66
_080519B8:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080519D6
bl m4aMPlayAllStop
movs r0, #0x66
bl m4aSongNumStart
movs r1, #0
strh r4, [r5, #4]
adds r0, r5, #0
adds r0, #0x30
strb r1, [r0]
strh r4, [r5]
_080519D6:
ldr r0, _08051A00 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _080519EC
ldr r2, _08051A04 @ =0x02002920
ldrh r1, [r2, #4]
movs r0, #1
subs r0, r0, r1
strh r0, [r2, #4]
_080519EC:
ldr r1, _08051A04 @ =0x02002920
ldrh r2, [r1, #0x18]
movs r6, #0x18
ldrsh r0, [r1, r6]
_080519F4:
cmp r0, #0
bgt _080519FA
b _08051B98
_080519FA:
subs r0, r2, #1
strh r0, [r1, #0x18]
b _08051B98
.align 2, 0
_08051A00: .4byte gMain
_08051A04: .4byte 0x02002920
_08051A08:
ldr r0, _08051A2C @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _08051A34
ldr r4, _08051A30 @ =0x02002920
movs r7, #0xa
ldrsh r0, [r4, r7]
cmp r0, #7
ble _08051A52
movs r0, #0x67
bl m4aSongNumStart
ldrh r0, [r4, #0xa]
subs r0, #1
b _08051A50
.align 2, 0
_08051A2C: .4byte gMain
_08051A30: .4byte 0x02002920
_08051A34:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08051A52
ldr r4, _08051A78 @ =0x02002920
movs r1, #0xa
ldrsh r0, [r4, r1]
cmp r0, #0xa
bgt _08051A52
movs r0, #0x67
bl m4aSongNumStart
ldrh r0, [r4, #0xa]
adds r0, #1
_08051A50:
strh r0, [r4, #0xa]
_08051A52:
ldr r0, _08051A7C @ =gMain
ldrh r1, [r0, #0x18]
movs r4, #1
ands r4, r1
cmp r4, #0
beq _08051A80
movs r0, #0x65
bl m4aSongNumStart
ldr r0, _08051A78 @ =0x02002920
movs r1, #4
strh r1, [r0]
movs r2, #0xa
ldrsh r1, [r0, r2]
adds r0, r0, r1
movs r1, #1
strb r1, [r0, #0x13]
b _08051A96
.align 2, 0
_08051A78: .4byte 0x02002920
_08051A7C: .4byte gMain
_08051A80:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08051A96
movs r0, #0x66
bl m4aSongNumStart
ldr r1, _08051AB0 @ =0x02002920
movs r0, #6
strh r0, [r1, #0xa]
strh r4, [r1]
_08051A96:
ldr r0, _08051AB4 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _08051B98
ldr r2, _08051AB0 @ =0x02002920
ldrh r1, [r2, #2]
movs r0, #1
subs r0, r0, r1
strh r0, [r2, #2]
b _08051B98
.align 2, 0
_08051AB0: .4byte 0x02002920
_08051AB4: .4byte gMain
_08051AB8:
ldr r4, _08051BF4 @ =0x02002920
ldrh r0, [r4, #8]
adds r0, #1
movs r5, #0
strh r0, [r4, #8]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x18
ble _08051AD4
strh r5, [r4, #8]
ldrh r1, [r4, #6]
movs r0, #1
subs r0, r0, r1
strh r0, [r4, #6]
_08051AD4:
ldr r0, _08051BF8 @ =gMain
ldrh r1, [r0, #0x18]
ldr r0, _08051BFC @ =0x000003F7
ands r0, r1
cmp r0, #0
beq _08051B0E
movs r0, #0x65
bl m4aSongNumStart
movs r0, #0xa
strh r0, [r4, #0x20]
strh r5, [r4, #0x22]
movs r0, #0
adds r3, r4, #0
adds r3, #0x24
movs r2, #0xa
_08051AF4:
lsls r1, r0, #0x10
asrs r1, r1, #0x10
lsls r0, r1, #1
adds r0, r0, r3
strh r2, [r0]
adds r1, #1
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #1
ble _08051AF4
movs r0, #0
strh r0, [r4, #0x28]
_08051B0E:
ldr r4, _08051BF4 @ =0x02002920
movs r3, #0x20
ldrsh r0, [r4, r3]
cmp r0, #0
ble _08051B98
bl sub_524BC
ldrh r0, [r4, #0x20]
subs r0, #1
strh r0, [r4, #0x20]
lsls r0, r0, #0x10
asrs r5, r0, #0x10
cmp r5, #0
bne _08051B98
ldr r2, _08051C00 @ =0x02031AF0
movs r6, #0xa
ldrsh r0, [r4, r6]
subs r0, #7
lsls r0, r0, #1
adds r2, #0x28
adds r0, r0, r2
ldrh r1, [r4, #0x24]
strb r1, [r0]
movs r7, #0xa
ldrsh r0, [r4, r7]
subs r0, #7
lsls r0, r0, #1
adds r0, #1
adds r0, r0, r2
ldrh r1, [r4, #0x26]
strb r1, [r0]
ldr r2, _08051C04 @ =0x0200B134
movs r0, #0xa
ldrsh r1, [r4, r0]
subs r1, #7
lsls r1, r1, #2
adds r0, r2, #0
adds r0, #0xd0
adds r1, r1, r0
ldr r3, _08051C08 @ =gUnknown_086BB910
movs r6, #0x24
ldrsh r0, [r4, r6]
lsls r0, r0, #3
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
movs r7, #0xa
ldrsh r1, [r4, r7]
subs r1, #7
lsls r1, r1, #2
adds r2, #0xd2
adds r1, r1, r2
movs r2, #0x26
ldrsh r0, [r4, r2]
lsls r0, r0, #3
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
movs r0, #3
strh r0, [r4]
movs r3, #0xa
ldrsh r0, [r4, r3]
adds r0, r4, r0
adds r0, #0x13
movs r1, #0
strb r1, [r0]
strh r5, [r4, #8]
movs r0, #1
strh r0, [r4, #6]
_08051B98:
ldr r2, _08051BF4 @ =0x02002920
movs r6, #0x2e
adds r6, r6, r2
mov ip, r6
movs r0, #0
ldrsb r0, [r6, r0]
cmp r0, #1
bne _08051C10
adds r4, r2, #0
adds r4, #0x2b
ldrb r0, [r4]
adds r0, #1
movs r5, #0
strb r0, [r4]
lsls r0, r0, #0x18
ldr r6, _08051C0C @ =gUnknown_086BB9B4
adds r3, r2, #0
adds r3, #0x2c
movs r1, #0
ldrsb r1, [r3, r1]
lsls r1, r1, #2
adds r1, r1, r6
asrs r0, r0, #0x18
movs r7, #2
ldrsh r1, [r1, r7]
cmp r0, r1
ble _08051C30
strb r5, [r4]
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r2, #0x2d
cmp r0, #0xc
ble _08051BE8
strb r5, [r3]
strb r5, [r2]
mov r0, ip
strb r5, [r0]
_08051BE8:
movs r0, #0
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r0, r0, r6
ldrb r0, [r0]
b _08051C2E
.align 2, 0
_08051BF4: .4byte 0x02002920
_08051BF8: .4byte gMain
_08051BFC: .4byte 0x000003F7
_08051C00: .4byte 0x02031AF0
_08051C04: .4byte 0x0200B134
_08051C08: .4byte gUnknown_086BB910
_08051C0C: .4byte gUnknown_086BB9B4
_08051C10:
adds r1, r2, #0
adds r1, #0x2b
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x12
ble _08051C30
movs r0, #0
strb r0, [r1]
adds r2, #0x2d
ldrb r1, [r2]
movs r0, #1
subs r0, r0, r1
_08051C2E:
strb r0, [r2]
_08051C30:
bl sub_11FC
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_51C3C
sub_51C3C: @ 0x08051C3C
push {lr}
bl sub_111C
bl sub_1170
cmp r0, #0
beq _08051C56
bl sub_1198
ldr r1, _08051C5C @ =gMain
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
_08051C56:
pop {r0}
bx r0
.align 2, 0
_08051C5C: .4byte gMain
thumb_func_start sub_51C60
sub_51C60: @ 0x08051C60
push {lr}
ldr r1, _08051C90 @ =0x0200B134
ldr r0, _08051C94 @ =0x02002920
adds r0, #0x2a
ldrb r0, [r0]
adds r1, #0xcd
strb r0, [r1]
bl sub_52B30
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
ldr r1, _08051C98 @ =gAutoDisplayTitlescreenMenu
movs r0, #1
strb r0, [r1]
movs r0, #1
bl SetMainGameState
pop {r0}
bx r0
.align 2, 0
_08051C90: .4byte 0x0200B134
_08051C94: .4byte 0x02002920
_08051C98: .4byte gAutoDisplayTitlescreenMenu
thumb_func_start sub_51C9C
sub_51C9C: @ 0x08051C9C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x8c
ldr r0, _08051D38 @ =0x0200B3B8
mov r8, r0
ldr r2, _08051D3C @ =0x02002920
movs r3, #4
ldrsh r1, [r2, r3]
movs r0, #0xe6
lsls r0, r0, #4
muls r1, r0, r1
movs r0, #0xa1
lsls r0, r0, #3
add r0, r8
adds r1, r1, r0
str r1, [sp, #0x60]
add r4, sp, #0xc
mov sl, r4
mov r6, sp
adds r6, #0x18
str r6, [sp, #0x6c]
mov r7, sp
adds r7, #0x1c
str r7, [sp, #0x74]
mov r0, sp
adds r0, #0x20
str r0, [sp, #0x7c]
movs r0, #0xb8
lsls r0, r0, #2
add r0, r8
mov r3, sl
mov r1, r8
adds r1, #0xb8
mov r2, sp
movs r4, #2
mov ip, r4
_08051CEA:
stm r2!, {r1}
stm r3!, {r0}
adds r0, #0xb8
adds r1, #0xb8
movs r6, #1
rsbs r6, r6, #0
add ip, r6
mov r7, ip
cmp r7, #0
bge _08051CEA
movs r0, #0
mov ip, r0
movs r1, #8
add r1, r8
mov sb, r1
ldr r2, _08051D40 @ =0x0200B978
adds r2, #8
str r2, [sp, #0x70]
ldr r0, _08051D44 @ =0x0200BAE8
adds r4, r0, #0
adds r4, #0xb8
adds r5, r0, #0
movs r3, #0
ldr r1, [sp, #0x6c]
adds r2, r5, #0
subs r2, #0xb8
_08051D1E:
ldr r0, _08051D48 @ =0x0200293A
add r0, ip
ldrb r0, [r0]
cmp r0, #1
bne _08051D50
ldr r6, _08051D3C @ =0x02002920
movs r7, #6
ldrsh r0, [r6, r7]
cmp r0, #1
bne _08051D50
ldr r0, _08051D4C @ =0x0200C7D8
str r0, [r1]
b _08051D52
.align 2, 0
_08051D38: .4byte 0x0200B3B8
_08051D3C: .4byte 0x02002920
_08051D40: .4byte 0x0200B978
_08051D44: .4byte 0x0200BAE8
_08051D48: .4byte 0x0200293A
_08051D4C: .4byte 0x0200C7D8
_08051D50:
str r2, [r1]
_08051D52:
ldr r6, [sp, #0x74]
adds r0, r6, r3
str r5, [r0]
ldr r7, [sp, #0x7c]
adds r0, r7, r3
str r4, [r0]
movs r0, #0x8a
lsls r0, r0, #2
adds r4, r4, r0
adds r5, r5, r0
adds r2, r2, r0
adds r3, #0xc
adds r1, #0xc
movs r6, #1
add ip, r6
mov r7, ip
cmp r7, #5
ble _08051D1E
ldr r0, _08051F64 @ =0x0200C890
str r0, [sp, #0x64]
movs r0, #1
mov r1, r8
strh r0, [r1]
movs r2, #1
mov r1, sp
movs r3, #2
mov ip, r3
_08051D88:
ldm r1!, {r0}
strh r2, [r0]
movs r4, #1
rsbs r4, r4, #0
add ip, r4
mov r6, ip
cmp r6, #0
bge _08051D88
ldr r7, [sp, #0x64]
adds r7, #8
str r7, [sp, #0x78]
movs r2, #1
mov r1, sl
movs r0, #2
mov ip, r0
_08051DA6:
ldm r1!, {r0}
strh r2, [r0]
movs r3, #1
rsbs r3, r3, #0
add ip, r3
mov r4, ip
cmp r4, #0
bge _08051DA6
movs r0, #1
ldr r6, [sp, #0x60]
strh r0, [r6]
ldr r7, _08051F68 @ =0x0200B978
strh r0, [r7]
movs r0, #0
mov ip, r0
ldr r6, [sp, #0x6c]
movs r3, #1
movs r2, #0
_08051DCA:
adds r1, r2, r6
movs r5, #2
_08051DCE:
ldm r1!, {r0}
strh r3, [r0]
subs r5, #1
cmp r5, #0
bge _08051DCE
adds r2, #0xc
movs r1, #1
add ip, r1
mov r4, ip
cmp r4, #5
ble _08051DCA
movs r0, #1
ldr r6, [sp, #0x64]
strh r0, [r6]
ldr r7, _08051F6C @ =0x0200C948
strh r0, [r7]
ldr r5, _08051F70 @ =0x02002920
adds r0, r5, #0
adds r0, #0x30
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r1, _08051F74 @ =0x0200CA00
strh r0, [r1]
ldr r0, _08051F78 @ =gUnknown_086BB9EC
movs r1, #0x20
ldr r2, _08051F7C @ =0x0200B3B8
bl LoadSpriteSets
ldr r2, _08051F80 @ =gUnknown_086BB968
movs r3, #0xa
ldrsh r1, [r5, r3]
lsls r1, r1, #2
adds r1, r1, r2
ldrh r0, [r5, #2]
ldrh r1, [r1]
adds r0, r0, r1
mov r4, r8
strh r0, [r4, #2]
movs r6, #0xa
ldrsh r0, [r5, r6]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0, #2]
strh r0, [r4, #4]
mov r7, sb
ldr r4, _08051F84 @ =gOamBuffer
mov r0, r8
ldrh r2, [r0, #8]
lsls r2, r2, #3
adds r2, r2, r4
movs r3, #2
ldrsh r1, [r7, r3]
movs r6, #2
ldrsh r0, [r0, r6]
adds r1, r1, r0
ldr r3, _08051F88 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r6, _08051F8C @ =0xFFFFFE00
adds r0, r6, #0
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
mov r0, r8
ldrh r1, [r0, #8]
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
movs r1, #0
mov ip, r1
mov r8, r4
mov r5, sp
movs r2, #0x48
mov sb, r2
_08051E6C:
ldr r0, [r5]
mov r3, sb
strh r3, [r0, #2]
ldr r1, [r5]
movs r0, #0x20
strh r0, [r1, #4]
ldr r4, [r5]
adds r7, r4, #0
adds r7, #8
ldrh r2, [r4, #8]
lsls r2, r2, #3
add r2, r8
ldr r0, _08051F90 @ =0x02002932
add r0, ip
ldrb r1, [r0]
adds r1, #0x16
ldrh r3, [r2, #4]
ldr r0, _08051F94 @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
ldrh r3, [r4, #8]
lsls r3, r3, #3
add r3, r8
movs r0, #2
ldrsh r1, [r7, r0]
ldr r0, [r5]
movs r2, #2
ldrsh r0, [r0, r2]
adds r1, r1, r0
ldr r2, _08051F88 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
adds r0, r6, #0
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4, #8]
lsls r1, r1, #3
add r1, r8
ldm r5!, {r0}
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
movs r3, #7
add sb, r3
movs r4, #1
add ip, r4
mov r7, ip
cmp r7, #2
ble _08051E6C
movs r0, #0
mov ip, r0
ldr r1, _08051F84 @ =gOamBuffer
mov r8, r1
movs r6, #0x48
mov r5, sl
_08051EE2:
ldr r0, [r5]
strh r6, [r0, #2]
ldr r0, [r5]
movs r2, #0x2c
mov sb, r2
mov r3, sb
strh r3, [r0, #4]
ldr r4, [r5]
adds r7, r4, #0
adds r7, #8
ldrh r2, [r4, #8]
lsls r2, r2, #3
add r2, r8
ldr r0, _08051F98 @ =0x02002935
add r0, ip
ldrb r1, [r0]
adds r1, #0x16
ldrh r3, [r2, #4]
ldr r0, _08051F94 @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
ldrh r3, [r4, #8]
lsls r3, r3, #3
add r3, r8
movs r0, #2
ldrsh r1, [r7, r0]
ldr r0, [r5]
movs r2, #2
ldrsh r0, [r0, r2]
adds r1, r1, r0
ldr r2, _08051F88 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _08051F8C @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4, #8]
lsls r1, r1, #3
add r1, r8
ldm r5!, {r0}
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
adds r6, #7
movs r3, #1
add ip, r3
mov r4, ip
cmp r4, #2
ble _08051EE2
movs r0, #0x48
ldr r6, [sp, #0x60]
strh r0, [r6, #2]
ldr r7, _08051F70 @ =0x02002920
movs r1, #0xa
ldrsh r0, [r7, r1]
cmp r0, #0
bne _08051F9C
movs r0, #0x20
strh r0, [r6, #4]
b _08051FA6
.align 2, 0
_08051F64: .4byte 0x0200C890
_08051F68: .4byte 0x0200B978
_08051F6C: .4byte 0x0200C948
_08051F70: .4byte 0x02002920
_08051F74: .4byte 0x0200CA00
_08051F78: .4byte gUnknown_086BB9EC
_08051F7C: .4byte 0x0200B3B8
_08051F80: .4byte gUnknown_086BB968
_08051F84: .4byte gOamBuffer
_08051F88: .4byte 0x000001FF
_08051F8C: .4byte 0xFFFFFE00
_08051F90: .4byte 0x02002932
_08051F94: .4byte 0xFFFFFC00
_08051F98: .4byte 0x02002935
_08051F9C:
cmp r0, #1
bne _08051FA6
mov r3, sb
ldr r2, [sp, #0x60]
strh r3, [r2, #4]
_08051FA6:
ldr r5, _080520D0 @ =gOamBuffer
ldr r7, _080520D4 @ =0xFFFFFE00
ldr r4, [sp, #0x60]
adds r4, #8
movs r6, #1
mov ip, r6
_08051FB2:
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r5
movs r0, #2
ldrsh r1, [r4, r0]
ldr r2, [sp, #0x60]
movs r6, #2
ldrsh r0, [r2, r6]
adds r1, r1, r0
ldr r0, _080520D8 @ =0x000001FF
adds r6, r0, #0
ands r1, r6
ldrh r2, [r3, #2]
adds r0, r7, #0
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r5
ldr r2, [sp, #0x60]
ldrb r0, [r2, #4]
ldrb r3, [r4, #4]
adds r0, r0, r3
strb r0, [r1]
adds r4, #8
movs r0, #1
rsbs r0, r0, #0
add ip, r0
mov r1, ip
cmp r1, #0
bge _08051FB2
movs r0, #0x48
ldr r2, _080520DC @ =0x0200B978
strh r0, [r2, #2]
ldr r3, _080520E0 @ =0x02002920
movs r4, #0xc
ldrsh r0, [r3, r4]
lsls r0, r0, #1
ldr r7, _080520E4 @ =gUnknown_086BB9A8
adds r0, r0, r7
ldrh r0, [r0]
strh r0, [r2, #4]
ldr r7, [sp, #0x70]
ldrh r2, [r2, #8]
lsls r2, r2, #3
ldr r0, _080520D0 @ =gOamBuffer
adds r2, r2, r0
movs r3, #2
ldrsh r1, [r7, r3]
adds r1, #0x48
ands r1, r6
ldrh r3, [r2, #2]
ldr r0, _080520D4 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldr r4, _080520DC @ =0x0200B978
ldrh r1, [r4, #8]
lsls r1, r1, #3
ldr r6, _080520D0 @ =gOamBuffer
adds r1, r1, r6
ldrb r0, [r4, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
movs r7, #0
mov ip, r7
ldr r0, _080520E0 @ =0x02002920
str r0, [sp, #0x68]
movs r1, #0x54
str r1, [sp, #0x80]
movs r2, #0
str r2, [sp, #0x84]
movs r3, #0
str r3, [sp, #0x88]
ldr r4, [sp, #0x6c]
mov r8, r4
_0805204E:
ldr r0, [sp, #0x68]
adds r0, #0x1a
add r0, ip
ldrb r0, [r0]
cmp r0, #1
bne _080520E8
mov r6, r8
ldr r1, [r6]
movs r0, #0x9c
strh r0, [r1, #2]
ldr r0, [r6]
add r7, sp, #0x80
ldrh r7, [r7]
strh r7, [r0, #4]
movs r5, #0
ldr r1, [sp, #0x68]
movs r2, #6
ldrsh r0, [r1, r2]
adds r0, #1
cmp r5, r0
blt _0805207A
b _080522E2
_0805207A:
ldr r3, [sp, #0x6c]
ldr r6, [sp, #0x84]
adds r4, r3, r6
ldr r7, _080520D0 @ =gOamBuffer
mov sb, r7
movs r6, #8
ldr r0, _080520D4 @ =0xFFFFFE00
mov sl, r0
_0805208A:
ldr r0, [r4]
adds r7, r0, r6
ldrh r2, [r7]
lsls r2, r2, #3
add r2, sb
movs r3, #2
ldrsh r1, [r7, r3]
movs r3, #2
ldrsh r0, [r0, r3]
adds r1, r1, r0
ldr r3, _080520D8 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
mov r0, sl
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r7]
lsls r1, r1, #3
add r1, sb
ldr r0, [r4]
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
adds r6, #8
adds r5, #1
ldr r7, [sp, #0x68]
movs r1, #6
ldrsh r0, [r7, r1]
adds r0, #1
cmp r5, r0
blt _0805208A
b _080522E2
.align 2, 0
_080520D0: .4byte gOamBuffer
_080520D4: .4byte 0xFFFFFE00
_080520D8: .4byte 0x000001FF
_080520DC: .4byte 0x0200B978
_080520E0: .4byte 0x02002920
_080520E4: .4byte gUnknown_086BB9A8
_080520E8:
mov r2, r8
ldr r1, [r2]
movs r0, #0x9c
strh r0, [r1, #2]
ldr r0, [r2]
add r3, sp, #0x80
ldrh r3, [r3]
strh r3, [r0, #4]
ldr r4, [r2]
adds r7, r4, #0
adds r7, #8
ldr r6, [sp, #0x68]
movs r0, #0xc
ldrsh r1, [r6, r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, [sp, #0x88]
adds r0, r1, r0
ldr r2, _08052490 @ =0x02031AF0
adds r0, r0, r2
ldrb r0, [r0]
ldrh r2, [r4, #8]
lsls r2, r2, #3
ldr r3, _08052494 @ =gOamBuffer
adds r2, r2, r3
lsls r0, r0, #3
ldr r1, _08052498 @ =gUnknown_086BB910
adds r6, r0, r1
ldrh r0, [r6, #2]
ldr r1, _0805249C @ =0x000003FF
ands r1, r0
ldrh r3, [r2, #4]
ldr r0, _080524A0 @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
ldrh r1, [r4, #8]
lsls r1, r1, #3
ldr r2, _08052494 @ =gOamBuffer
adds r1, r1, r2
ldrb r2, [r6, #4]
lsls r2, r2, #6
ldrb r3, [r1, #1]
movs r0, #0x3f
mov sl, r0
ands r0, r3
orrs r0, r2
strb r0, [r1, #1]
ldrh r2, [r4, #8]
lsls r2, r2, #3
ldr r1, _08052494 @ =gOamBuffer
adds r2, r2, r1
ldrb r1, [r6, #5]
lsls r1, r1, #6
ldrb r3, [r2, #3]
mov r0, sl
ands r0, r3
orrs r0, r1
strb r0, [r2, #3]
ldrh r2, [r4, #8]
lsls r2, r2, #3
ldr r3, _08052494 @ =gOamBuffer
adds r2, r2, r3
movs r0, #2
ldrsh r1, [r7, r0]
mov r3, r8
ldr r0, [r3]
movs r3, #2
ldrsh r0, [r0, r3]
adds r1, r1, r0
ldr r0, _080524A4 @ =0x000001FF
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _080524A8 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4, #8]
lsls r1, r1, #3
ldr r2, _08052494 @ =gOamBuffer
adds r1, r1, r2
mov r3, r8
ldr r0, [r3]
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
ldr r4, [sp, #0x68]
movs r7, #0xc
ldrsh r1, [r4, r7]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
adds r0, #1
ldr r1, [sp, #0x88]
adds r0, r1, r0
ldr r2, _08052490 @ =0x02031AF0
adds r0, r0, r2
ldrb r0, [r0]
mov sb, r0
cmp r0, #0xa
bne _080521B8
b _080522E2
_080521B8:
ldr r3, [sp, #0x74]
ldr r4, [sp, #0x84]
adds r5, r3, r4
ldr r1, [r5]
mov r7, r8
ldr r0, [r7]
ldrh r0, [r0, #2]
ldrb r6, [r6, #6]
adds r0, r0, r6
strh r0, [r1, #2]
ldr r1, [r5]
ldr r0, [r7]
ldrh r0, [r0, #4]
strh r0, [r1, #4]
ldr r4, [r5]
adds r7, r4, #0
adds r7, #8
ldrh r2, [r4, #8]
lsls r2, r2, #3
ldr r0, _08052494 @ =gOamBuffer
adds r2, r2, r0
ldrh r1, [r2, #4]
ldr r0, _080524A0 @ =0xFFFFFC00
ands r0, r1
movs r1, #0x2a
orrs r0, r1
strh r0, [r2, #4]
ldrh r1, [r4, #8]
lsls r1, r1, #3
ldr r2, _08052494 @ =gOamBuffer
adds r1, r1, r2
ldrb r2, [r1, #1]
mov r0, sl
ands r0, r2
strb r0, [r1, #1]
ldrh r1, [r4, #8]
lsls r1, r1, #3
ldr r3, _08052494 @ =gOamBuffer
adds r1, r1, r3
ldrb r2, [r1, #3]
mov r0, sl
ands r0, r2
strb r0, [r1, #3]
ldrh r3, [r4, #8]
lsls r3, r3, #3
ldr r6, _08052494 @ =gOamBuffer
adds r3, r3, r6
movs r0, #2
ldrsh r1, [r7, r0]
ldr r0, [r5]
movs r2, #2
ldrsh r0, [r0, r2]
adds r1, r1, r0
ldr r6, _080524A4 @ =0x000001FF
ands r1, r6
ldrh r2, [r3, #2]
ldr r0, _080524A8 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4, #8]
lsls r1, r1, #3
ldr r0, _08052494 @ =gOamBuffer
adds r1, r1, r0
ldr r0, [r5]
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
ldr r1, [sp, #0x7c]
ldr r2, [sp, #0x84]
adds r6, r1, r2
ldr r1, [r6]
ldr r0, [r5]
ldrh r0, [r0, #2]
adds r0, #8
strh r0, [r1, #2]
ldr r1, [r6]
mov r3, r8
ldr r0, [r3]
ldrh r0, [r0, #4]
strh r0, [r1, #4]
ldr r5, [r6]
adds r7, r5, #0
adds r7, #8
ldrh r3, [r5, #8]
lsls r3, r3, #3
ldr r4, _08052494 @ =gOamBuffer
adds r3, r3, r4
mov r0, sb
lsls r4, r0, #3
ldr r1, _08052498 @ =gUnknown_086BB910
adds r4, r4, r1
ldrh r0, [r4, #2]
ldr r1, _0805249C @ =0x000003FF
ands r1, r0
ldrh r2, [r3, #4]
ldr r0, _080524A0 @ =0xFFFFFC00
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
ldrh r2, [r5, #8]
lsls r2, r2, #3
ldr r3, _08052494 @ =gOamBuffer
adds r2, r2, r3
ldrb r1, [r4, #4]
lsls r1, r1, #6
ldrb r3, [r2, #1]
mov r0, sl
ands r0, r3
orrs r0, r1
strb r0, [r2, #1]
ldrh r2, [r5, #8]
lsls r2, r2, #3
ldr r0, _08052494 @ =gOamBuffer
adds r2, r2, r0
ldrb r1, [r4, #5]
lsls r1, r1, #6
ldrb r3, [r2, #3]
mov r0, sl
ands r0, r3
orrs r0, r1
strb r0, [r2, #3]
ldrh r3, [r5, #8]
lsls r3, r3, #3
ldr r1, _08052494 @ =gOamBuffer
adds r3, r3, r1
movs r2, #2
ldrsh r1, [r7, r2]
ldr r0, [r6]
movs r4, #2
ldrsh r0, [r0, r4]
adds r1, r1, r0
ldr r0, _080524A4 @ =0x000001FF
ands r1, r0
ldrh r2, [r3, #2]
ldr r0, _080524A8 @ =0xFFFFFE00
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5, #8]
lsls r1, r1, #3
ldr r2, _08052494 @ =gOamBuffer
adds r1, r1, r2
ldr r0, [r6]
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
_080522E2:
ldr r3, [sp, #0x80]
adds r3, #0xc
str r3, [sp, #0x80]
ldr r4, [sp, #0x84]
adds r4, #0xc
str r4, [sp, #0x84]
ldr r6, [sp, #0x88]
adds r6, #2
str r6, [sp, #0x88]
movs r7, #0xc
add r8, r7
movs r0, #1
add ip, r0
mov r1, ip
cmp r1, #4
bgt _08052304
b _0805204E
_08052304:
movs r5, #8
movs r0, #0xaa
ldr r2, [sp, #0x64]
strh r0, [r2, #2]
ldr r0, _080524AC @ =0x02002920
adds r0, #0x2a
ldrb r0, [r0]
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #2
movs r0, #0x2c
subs r0, r0, r1
strh r0, [r2, #4]
ldr r7, [sp, #0x78]
ldrh r2, [r2, #8]
lsls r2, r2, #3
ldr r3, _08052494 @ =gOamBuffer
adds r2, r2, r3
movs r4, #2
ldrsh r1, [r7, r4]
adds r1, #0xaa
ldr r6, _080524A4 @ =0x000001FF
adds r0, r6, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r4, _080524A8 @ =0xFFFFFE00
adds r0, r4, #0
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldr r0, [sp, #0x64]
ldrh r1, [r0, #8]
lsls r1, r1, #3
ldr r2, _08052494 @ =gOamBuffer
adds r1, r1, r2
ldrb r0, [r0, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
movs r0, #0xc0
ldr r3, _080524B0 @ =0x0200C948
strh r0, [r3, #2]
strh r5, [r3, #4]
ldr r6, _080524AC @ =0x02002920
adds r6, #0x2d
mov sl, r6
adds r5, r3, #0
adds r5, #8
movs r6, #0x40
mov sb, r4
movs r7, #1
mov ip, r7
_0805236C:
ldrh r3, [r5]
lsls r3, r3, #3
ldr r0, _08052494 @ =gOamBuffer
adds r3, r3, r0
mov r2, sl
movs r1, #0
ldrsb r1, [r2, r1]
lsls r1, r1, #2
adds r1, r6, r1
ldr r7, _0805249C @ =0x000003FF
adds r4, r7, #0
ands r1, r4
ldrh r2, [r3, #4]
ldr r0, _080524A0 @ =0xFFFFFC00
ands r0, r2
orrs r0, r1
strh r0, [r3, #4]
ldrh r3, [r5]
lsls r3, r3, #3
ldr r0, _08052494 @ =gOamBuffer
adds r3, r3, r0
movs r2, #2
ldrsh r1, [r5, r2]
ldr r7, _080524B0 @ =0x0200C948
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r7, _080524A4 @ =0x000001FF
mov r8, r7
mov r0, r8
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
ldr r2, _08052494 @ =gOamBuffer
adds r1, r1, r2
ldr r3, _080524B0 @ =0x0200C948
ldrb r0, [r3, #4]
ldrb r7, [r5, #4]
adds r0, r0, r7
strb r0, [r1]
adds r5, #8
adds r6, #0x80
movs r0, #1
rsbs r0, r0, #0
add ip, r0
mov r1, ip
cmp r1, #0
bge _0805236C
ldr r2, _080524B4 @ =0x0200CA00
ldrh r0, [r2]
cmp r0, #1
bne _08052454
movs r0, #0xb0
strh r0, [r2, #2]
movs r0, #8
strh r0, [r2, #4]
adds r7, r2, #0
adds r7, #8
ldrh r2, [r2, #8]
lsls r2, r2, #3
ldr r3, _08052494 @ =gOamBuffer
adds r2, r2, r3
ldr r5, _080524AC @ =0x02002920
adds r5, #0x2f
movs r1, #0
ldrsb r1, [r5, r1]
lsls r1, r1, #6
adds r1, #0x54
ands r1, r4
ldrh r3, [r2, #4]
ldr r0, _080524A0 @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
ldr r4, _080524B4 @ =0x0200CA00
ldrh r2, [r4, #8]
lsls r2, r2, #3
ldr r6, _08052494 @ =gOamBuffer
adds r2, r2, r6
movs r0, #2
ldrsh r1, [r7, r0]
movs r3, #2
ldrsh r0, [r4, r3]
adds r1, r1, r0
mov r4, r8
ands r1, r4
ldrh r3, [r2, #2]
ldr r0, _080524A8 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldr r6, _080524B4 @ =0x0200CA00
ldrh r1, [r6, #8]
lsls r1, r1, #3
ldr r0, _08052494 @ =gOamBuffer
adds r1, r1, r0
ldrb r0, [r6, #4]
ldrb r7, [r7, #4]
adds r0, r0, r7
strb r0, [r1]
ldr r0, _080524B8 @ =gMain
ldr r0, [r0, #0x4c]
movs r1, #0x12
bl __umodsi3
cmp r0, #0
bne _08052454
ldrb r1, [r5]
movs r0, #1
subs r0, r0, r1
strb r0, [r5]
_08052454:
movs r0, #0
ldr r1, [sp, #0x60]
strh r0, [r1]
mov ip, r0
ldr r4, [sp, #0x6c]
movs r3, #0
_08052460:
mov r2, ip
adds r2, #1
mov r6, ip
lsls r0, r6, #1
add r0, ip
lsls r0, r0, #2
adds r1, r0, r4
movs r5, #2
_08052470:
ldm r1!, {r0}
strh r3, [r0]
subs r5, #1
cmp r5, #0
bge _08052470
mov ip, r2
cmp r2, #5
ble _08052460
add sp, #0x8c
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
_08052490: .4byte 0x02031AF0
_08052494: .4byte gOamBuffer
_08052498: .4byte gUnknown_086BB910
_0805249C: .4byte 0x000003FF
_080524A0: .4byte 0xFFFFFC00
_080524A4: .4byte 0x000001FF
_080524A8: .4byte 0xFFFFFE00
_080524AC: .4byte 0x02002920
_080524B0: .4byte 0x0200C948
_080524B4: .4byte 0x0200CA00
_080524B8: .4byte gMain
thumb_func_start sub_524BC
sub_524BC: @ 0x080524BC
push {r4, r5, lr}
ldr r1, _0805251C @ =0x02002920
movs r2, #0x28
ldrsh r0, [r1, r2]
adds r2, r1, #0
cmp r0, #1
bgt _08052514
ldr r0, _08052520 @ =gMain
ldrh r0, [r0, #0x1c]
ldr r4, _08052524 @ =0x000003F7
ands r4, r0
cmp r4, #0
beq _08052514
movs r3, #0
_080524D8:
movs r1, #1
lsls r1, r3
ands r1, r4
cmp r1, #0
beq _0805250E
movs r5, #0x22
ldrsh r0, [r2, r5]
ands r0, r1
cmp r0, #0
bne _0805250E
ldrh r0, [r2, #0x22]
orrs r1, r0
strh r1, [r2, #0x22]
movs r1, #0x28
ldrsh r0, [r2, r1]
lsls r0, r0, #1
adds r1, r2, #0
adds r1, #0x24
adds r0, r0, r1
strh r3, [r0]
ldrh r0, [r2, #0x28]
adds r0, #1
strh r0, [r2, #0x28]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
beq _08052514
_0805250E:
adds r3, #1
cmp r3, #9
ble _080524D8
_08052514:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0805251C: .4byte 0x02002920
_08052520: .4byte gMain
_08052524: .4byte 0x000003F7
thumb_func_start sub_52528
sub_52528: @ 0x08052528
push {r4, r5, r6, r7, lr}
movs r0, #0
ldr r1, _0805255C @ =0x0200B204
mov ip, r1
ldr r6, _08052560 @ =0x02031B18
_08052532:
movs r2, #0
lsls r4, r0, #2
lsls r3, r0, #1
adds r5, r0, #1
_0805253A:
lsls r0, r2, #1
adds r0, r0, r4
add r0, ip
movs r7, #0
ldrsh r1, [r0, r7]
cmp r1, #0x10
beq _0805259A
cmp r1, #0x10
bgt _0805256A
cmp r1, #2
beq _08052592
cmp r1, #2
bgt _08052564
cmp r1, #1
beq _0805258E
b _080525B2
.align 2, 0
_0805255C: .4byte 0x0200B204
_08052560: .4byte 0x02031B18
_08052564:
cmp r1, #4
beq _08052596
b _080525B2
_0805256A:
cmp r1, #0x80
beq _080525A6
cmp r1, #0x80
bgt _0805257C
cmp r1, #0x20
beq _0805259E
cmp r1, #0x40
beq _080525A2
b _080525B2
_0805257C:
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
beq _080525AA
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
beq _080525AE
b _080525B2
_0805258E:
movs r1, #0
b _080525B4
_08052592:
movs r1, #1
b _080525B4
_08052596:
movs r1, #2
b _080525B4
_0805259A:
movs r1, #4
b _080525B4
_0805259E:
movs r1, #5
b _080525B4
_080525A2:
movs r1, #6
b _080525B4
_080525A6:
movs r1, #7
b _080525B4
_080525AA:
movs r1, #8
b _080525B4
_080525AE:
movs r1, #9
b _080525B4
_080525B2:
movs r1, #0xa
_080525B4:
adds r0, r3, r2
adds r0, r0, r6
strb r1, [r0]
adds r2, #1
cmp r2, #1
ble _0805253A
adds r0, r5, #0
cmp r0, #4
ble _08052532
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_525CC
sub_525CC: @ 0x080525CC
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
movs r1, #0x80
lsls r1, r1, #0x11
adds r0, r0, r1
asrs r0, r0, #0x18
cmp r0, #5
bls _080525DE
b _080528A2
_080525DE:
lsls r0, r0, #2
ldr r1, _080525E8 @ =_080525EC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080525E8: .4byte _080525EC
_080525EC: @ jump table
.4byte _08052604 @ case 0
.4byte _080526CC @ case 1
.4byte _08052720 @ case 2
.4byte _08052770 @ case 3
.4byte _080527C0 @ case 4
.4byte _08052814 @ case 5
_08052604:
ldr r0, _080526BC @ =gMain
mov ip, r0
ldr r6, _080526C0 @ =gUnknown_086BB910
ldrh r5, [r6, #0x28]
adds r0, #0x60
strh r5, [r0]
adds r0, r6, #0
adds r0, #0x50
ldrh r2, [r0]
mov r0, ip
adds r0, #0x62
strh r2, [r0]
ldrh r4, [r6]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r2, [r0]
adds r0, r6, #0
adds r0, #0x48
ldrh r3, [r0]
mov r0, ip
adds r0, #0x68
strh r3, [r0]
adds r0, #2
strh r2, [r0]
adds r0, r6, #0
adds r0, #0x40
ldrh r1, [r0]
mov r0, ip
adds r0, #0x6c
strh r1, [r0]
adds r0, #2
strh r2, [r0]
adds r0, #2
strh r3, [r0]
adds r0, #2
strh r1, [r0]
ldrh r1, [r6, #8]
movs r0, #0xa2
lsls r0, r0, #1
add r0, ip
strh r1, [r0]
movs r0, #0xa3
lsls r0, r0, #1
add r0, ip
strh r2, [r0]
movs r0, #0xa4
lsls r0, r0, #1
add r0, ip
strh r4, [r0]
movs r0, #0xa5
lsls r0, r0, #1
add r0, ip
strh r2, [r0]
movs r0, #0xa6
lsls r0, r0, #1
add r0, ip
strh r5, [r0]
movs r0, #0xa7
lsls r0, r0, #1
add r0, ip
strh r2, [r0]
ldrh r1, [r6, #0x20]
movs r0, #0xa8
lsls r0, r0, #1
add r0, ip
strh r1, [r0]
movs r0, #0xa9
lsls r0, r0, #1
add r0, ip
strh r2, [r0]
ldrh r1, [r6, #0x30]
movs r0, #0xaa
lsls r0, r0, #1
add r0, ip
strh r1, [r0]
movs r0, #0xab
lsls r0, r0, #1
add r0, ip
strh r2, [r0]
movs r2, #0
ldr r4, _080526C4 @ =0x02031B18
ldr r3, _080526C8 @ =gUnknown_08527EFE
_080526AA:
adds r0, r2, r4
adds r1, r2, r3
ldrb r1, [r1]
strb r1, [r0]
adds r2, #1
cmp r2, #9
ble _080526AA
b _080528A2
.align 2, 0
_080526BC: .4byte gMain
_080526C0: .4byte gUnknown_086BB910
_080526C4: .4byte 0x02031B18
_080526C8: .4byte gUnknown_08527EFE
_080526CC:
ldr r4, _08052718 @ =gMain
ldr r5, _0805271C @ =gUnknown_086BB910
ldrh r1, [r5, #0x28]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
adds r0, r5, #0
adds r0, #0x50
ldrh r2, [r0]
adds r0, r4, #0
adds r0, #0x62
strh r2, [r0]
ldrh r1, [r5]
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r2, [r0]
adds r0, r5, #0
adds r0, #0x48
ldrh r3, [r0]
adds r0, r4, #0
adds r0, #0x68
strh r3, [r0]
adds r0, #2
strh r2, [r0]
adds r0, r5, #0
adds r0, #0x40
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x6c
strh r1, [r0]
adds r0, #2
strh r2, [r0]
adds r0, #2
strh r3, [r0]
adds r0, #2
b _080528A0
.align 2, 0
_08052718: .4byte gMain
_0805271C: .4byte gUnknown_086BB910
_08052720:
ldr r3, _08052768 @ =gMain
ldr r4, _0805276C @ =gUnknown_086BB910
ldrh r1, [r4, #0x28]
adds r0, r3, #0
adds r0, #0x60
strh r1, [r0]
adds r0, r4, #0
adds r0, #0x50
ldrh r2, [r0]
adds r0, r3, #0
adds r0, #0x62
strh r2, [r0]
ldrh r1, [r4]
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r2, [r0]
adds r0, r4, #0
adds r0, #0x48
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0x68
strh r1, [r0]
adds r0, #2
strh r2, [r0]
adds r0, r4, #0
adds r0, #0x40
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0x6c
strh r1, [r0]
adds r0, #2
strh r2, [r0]
ldrh r1, [r4, #8]
b _08052802
.align 2, 0
_08052768: .4byte gMain
_0805276C: .4byte gUnknown_086BB910
_08052770:
ldr r4, _080527B8 @ =gMain
ldr r5, _080527BC @ =gUnknown_086BB910
adds r0, r5, #0
adds r0, #0x48
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
adds r0, r5, #0
adds r0, #0x50
ldrh r2, [r0]
adds r0, r4, #0
adds r0, #0x62
strh r2, [r0]
adds r0, r5, #0
adds r0, #0x40
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x64
strh r1, [r0]
adds r0, #2
strh r2, [r0]
ldrh r3, [r5, #0x28]
adds r0, #2
strh r3, [r0]
adds r0, #2
strh r2, [r0]
ldrh r1, [r5]
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r2, [r0]
adds r0, #2
strh r3, [r0]
adds r0, #2
b _080528A0
.align 2, 0
_080527B8: .4byte gMain
_080527BC: .4byte gUnknown_086BB910
_080527C0:
ldr r3, _0805280C @ =gMain
ldr r4, _08052810 @ =gUnknown_086BB910
adds r0, r4, #0
adds r0, #0x48
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0x60
strh r1, [r0]
adds r0, r4, #0
adds r0, #0x50
ldrh r2, [r0]
adds r0, r3, #0
adds r0, #0x62
strh r2, [r0]
adds r0, r4, #0
adds r0, #0x40
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0x64
strh r1, [r0]
adds r0, #2
strh r2, [r0]
ldrh r1, [r4, #0x28]
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r2, [r0]
ldrh r1, [r4, #0x20]
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r2, [r0]
ldrh r1, [r4, #0x30]
_08052802:
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r2, [r0]
b _080528A2
.align 2, 0
_0805280C: .4byte gMain
_08052810: .4byte gUnknown_086BB910
_08052814:
ldr r2, _080528A8 @ =gMain
movs r1, #0xa2
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x60
strh r1, [r0]
movs r1, #0xa3
lsls r1, r1, #1
adds r0, r2, r1
ldrh r0, [r0]
adds r1, r2, #0
adds r1, #0x62
strh r0, [r1]
movs r1, #0xa4
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x64
strh r1, [r0]
movs r1, #0xa5
lsls r1, r1, #1
adds r0, r2, r1
ldrh r0, [r0]
adds r1, r2, #0
adds r1, #0x66
strh r0, [r1]
movs r1, #0xa6
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x68
strh r1, [r0]
movs r1, #0xa7
lsls r1, r1, #1
adds r0, r2, r1
ldrh r0, [r0]
adds r1, r2, #0
adds r1, #0x6a
strh r0, [r1]
movs r1, #0xa8
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x6c
strh r1, [r0]
movs r1, #0xa9
lsls r1, r1, #1
adds r0, r2, r1
ldrh r0, [r0]
adds r1, r2, #0
adds r1, #0x6e
strh r0, [r1]
movs r1, #0xaa
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x70
strh r1, [r0]
movs r1, #0xab
lsls r1, r1, #1
adds r0, r2, r1
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x72
_080528A0:
strh r1, [r0]
_080528A2:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080528A8: .4byte gMain