pokeemerald/asm/dodrio_berry_picking.s

11807 lines
174 KiB
ArmAsm
Raw Normal View History

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_802493C
sub_802493C: @ 802493C
push {r4-r6,lr}
adds r5, r1, 0
lsls r0, 16
lsrs r6, r0, 16
ldr r1, =gUnknown_03000DB0
movs r0, 0
str r0, [r1]
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _08024A10
ldr r4, =gUnknown_02022C98
ldr r0, =0x00003330
bl AllocZeroed
str r0, [r4]
cmp r0, 0
beq _08024A10
bl sub_8024A1C
ldr r0, [r4]
bl sub_8024A30
ldr r0, [r4]
str r5, [r0]
bl GetMultiplayerId
ldr r1, [r4]
adds r1, 0x28
strb r0, [r1]
ldr r1, [r4]
ldr r2, =0x000032cc
adds r0, r1, r2
adds r2, r1, 0
adds r2, 0x28
ldrb r3, [r2]
lsls r2, r3, 4
subs r2, r3
lsls r2, 2
adds r1, r2
ldr r2, =0x000031a0
adds r1, r2
movs r2, 0x3C
bl memcpy
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x28
ldrb r1, [r1]
lsls r1, 2
ldr r2, =0x0000318c
adds r1, r2
adds r0, r1
movs r1, 0x64
muls r1, r6
ldr r2, =gPlayerParty
adds r1, r2
bl sub_80261F8
ldr r0, =sub_8024BC8
movs r1, 0x1
bl CreateTask
ldr r0, =sub_80261CC
bl SetMainCallback2
bl sub_80273F0
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x24
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x44
adds r2, 0x48
bl sub_8026B5C
bl StopMapMusic
ldr r0, =0x0000021e
bl PlayNewMapMusic
b _08024A16
.pool
_08024A10:
adds r0, r5, 0
bl SetMainCallback2
_08024A16:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_802493C
thumb_func_start sub_8024A1C
sub_8024A1C: @ 8024A1C
push {lr}
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
pop {r0}
bx r0
thumb_func_end sub_8024A1C
thumb_func_start sub_8024A30
sub_8024A30: @ 8024A30
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
adds r2, r0, 0
movs r0, 0
strb r0, [r2, 0xC]
strb r0, [r2, 0x10]
strb r0, [r2, 0x14]
strb r0, [r2, 0x18]
strb r0, [r2, 0x1C]
movs r3, 0x8E
lsls r3, 1
adds r1, r2, r3
str r0, [r1]
movs r7, 0x90
lsls r7, 1
adds r1, r2, r7
str r0, [r1]
adds r1, r2, 0
adds r1, 0x30
strb r0, [r1]
adds r1, 0x10
strb r0, [r1]
subs r1, 0x4
strb r0, [r1]
adds r3, 0x10
adds r1, r2, r3
str r0, [r1]
movs r5, 0
adds r1, r2, 0
adds r1, 0x98
movs r3, 0
_08024A76:
adds r0, r1, r5
strb r3, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _08024A76
movs r5, 0
adds r7, r2, 0
adds r7, 0xA8
str r7, [sp]
adds r0, r2, 0
adds r0, 0xB0
str r0, [sp, 0xC]
movs r1, 0x4A
adds r1, r2
mov r10, r1
movs r3, 0x4C
adds r3, r2
mov r9, r3
movs r7, 0x4E
adds r7, r2
mov r12, r7
subs r0, 0x60
str r0, [sp, 0x24]
adds r6, r2, 0
adds r6, 0x54
adds r1, r2, 0
adds r1, 0xD0
str r1, [sp, 0x1C]
adds r3, r2, 0
adds r3, 0xDC
str r3, [sp, 0x20]
adds r7, r2, 0
adds r7, 0xC4
str r7, [sp, 0x14]
adds r0, 0xA4
str r0, [sp, 0x4]
adds r1, 0x25
str r1, [sp, 0x8]
subs r3, 0xBC
str r3, [sp, 0x10]
movs r7, 0x24
adds r7, r2
mov r8, r7
subs r0, 0xC0
str r0, [sp, 0x18]
movs r3, 0
movs r1, 0x86
lsls r1, 1
adds r4, r2, r1
movs r7, 0x98
lsls r7, 1
adds r2, r7
_08024AE2:
ldr r1, [sp]
adds r0, r1, r5
strb r3, [r0]
ldr r7, [sp, 0xC]
adds r0, r7, r5
strb r3, [r0]
lsls r0, r5, 1
adds r0, r5
lsls r0, 2
mov r7, r10
adds r1, r7, r0
strh r3, [r1]
mov r7, r9
adds r1, r7, r0
strh r3, [r1]
mov r7, r12
adds r1, r7, r0
strh r3, [r1]
ldr r7, [sp, 0x24]
adds r1, r7, r0
strh r3, [r1]
adds r0, r6, r0
strh r3, [r0]
adds r0, r4, r5
strb r3, [r0]
lsls r0, r5, 2
adds r0, r2, r0
str r3, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x4
bls _08024AE2
movs r5, 0
movs r3, 0
movs r4, 0xFF
ldr r6, [sp, 0x1C]
_08024B2C:
adds r0, r6, r5
strb r3, [r0]
ldr r1, [sp, 0x20]
adds r0, r1, r5
strb r3, [r0]
ldr r7, [sp, 0x14]
adds r0, r7, r5
strb r3, [r0]
lsls r1, r5, 1
ldr r0, [sp, 0x4]
adds r2, r0, r1
ldrb r0, [r2]
orrs r0, r4
strb r0, [r2]
ldr r7, [sp, 0x8]
adds r1, r7, r1
ldrb r0, [r1]
orrs r0, r4
strb r0, [r1]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xA
bls _08024B2C
bl GetMultiplayerId
movs r1, 0
lsls r0, 24
cmp r0, 0
bne _08024B6A
movs r1, 0x1
_08024B6A:
ldr r0, [sp, 0x10]
strb r1, [r0]
bl GetLinkPlayerCount
mov r1, r8
strb r0, [r1]
bl GetMultiplayerId
ldr r3, [sp, 0x18]
strb r0, [r3]
movs r5, 0x1
mov r7, r8
ldrb r7, [r7]
cmp r5, r7
bcs _08024BB6
ldr r7, [sp, 0x18]
mov r6, r8
_08024B8C:
adds r4, r7, r5
subs r0, r5, 0x1
adds r0, r7, r0
ldrb r0, [r0]
adds r0, 0x1
strb r0, [r4]
ldrb r2, [r4]
ldrb r1, [r6]
subs r0, r1, 0x1
cmp r2, r0
ble _08024BAA
adds r0, r2, 0
bl __umodsi3
strb r0, [r4]
_08024BAA:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldrb r0, [r6]
cmp r5, r0
bcc _08024B8C
_08024BB6:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8024A30
thumb_func_start sub_8024BC8
sub_8024BC8: @ 8024BC8
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r1, r0, 24
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
ldrb r0, [r0, 0xC]
cmp r0, 0x7
bls _08024BDC
b _08024D34
_08024BDC:
lsls r0, 2
ldr r1, =_08024BF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08024BF0:
.4byte _08024C10
.4byte _08024C24
.4byte _08024C4C
.4byte _08024C5A
.4byte _08024C80
.4byte _08024CD4
.4byte _08024CE6
.4byte _08024D10
_08024C10:
movs r0, 0
bl SetVBlankCallback
ldr r0, =sub_8025910
movs r1, 0x4
bl sub_802620C
b _08024D20
.pool
_08024C24:
ldr r0, =sub_8025910
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
beq _08024C32
b _08024D40
_08024C32:
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
movs r1, 0xB0
lsls r1, 1
adds r0, r1
bl sub_8029274
ldr r1, [r4]
b _08024D24
.pool
_08024C4C:
bl sub_802A770
cmp r0, 0
bne _08024D40
bl sub_8010434
b _08024D20
_08024C5A:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _08024D40
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _08024D20
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl CreateWirelessStatusIndicatorSprite
b _08024D20
.pool
_08024C80:
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r5, [r0]
bl sub_80283A8
movs r4, 0
cmp r4, r5
bcs _08024CBA
_08024C92:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x34
adds r0, r4
ldrb r2, [r0]
lsls r0, r2, 2
ldr r3, =0x0000318c
adds r0, r3
adds r0, r1, r0
adds r1, 0x24
ldrb r3, [r1]
adds r1, r4, 0
bl sub_8028408
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08024C92
_08024CBA:
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
adds r0, 0x24
ldrb r1, [r0]
movs r0, 0
bl sub_802868C
ldr r1, [r4]
b _08024D24
.pool
_08024CD4:
bl sub_8028A34
bl sub_8028A88
bl sub_8028D44
bl sub_8028734
b _08024D20
_08024CE6:
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, =sub_80261E4
bl SetVBlankCallback
b _08024D20
.pool
_08024D10:
bl UpdatePaletteFade
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08024D40
_08024D20:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
_08024D24:
ldrb r0, [r1, 0xC]
adds r0, 0x1
strb r0, [r1, 0xC]
b _08024D40
.pool
_08024D34:
adds r0, r1, 0
bl DestroyTask
ldr r0, =sub_802589C
bl sub_802621C
_08024D40:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8024BC8
thumb_func_start sub_8024D4C
sub_8024D4C: @ 8024D4C
push {lr}
bl sub_8025D04
ldr r1, =gUnknown_082F7AC4
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
ldrb r0, [r0, 0x18]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
ldr r0, =gUnknown_03000DB0
ldr r0, [r0]
cmp r0, 0
bne _08024D70
bl sub_8026AF4
_08024D70:
bl sub_8025D50
pop {r0}
bx r0
.pool
thumb_func_end sub_8024D4C
thumb_func_start sub_8024D84
sub_8024D84: @ 8024D84
push {lr}
bl sub_8025E0C
ldr r1, =gUnknown_082F7AF4
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
ldrb r0, [r0, 0x18]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
ldr r0, =gUnknown_03000DB0
ldr r0, [r0]
cmp r0, 0
bne _08024DA8
bl sub_8026B28
_08024DA8:
bl sub_8025ED8
pop {r0}
bx r0
.pool
thumb_func_end sub_8024D84
thumb_func_start sub_8024DBC
sub_8024DBC: @ 8024DBC
push {r4,lr}
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
ldrb r0, [r0, 0x10]
cmp r0, 0
beq _08024DD4
cmp r0, 0x1
beq _08024DEA
b _08024DF8
.pool
_08024DD4:
movs r0, 0x1
bl sub_8028504
movs r0, 0x1
bl sub_80292E0
ldr r1, [r4]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _08024DF8
_08024DEA:
bl sub_802A770
cmp r0, 0
bne _08024DF8
movs r0, 0x1
bl sub_8026240
_08024DF8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8024DBC
thumb_func_start sub_8024E00
sub_8024E00: @ 8024E00
push {r4,lr}
ldr r4, =gUnknown_02022C98
ldr r1, [r4]
ldrb r0, [r1, 0x10]
cmp r0, 0
bne _08024E20
bl sub_80262C0
ldr r1, [r4]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _08024E30
.pool
_08024E20:
movs r0, 0x8C
lsls r0, 1
adds r1, r0
movs r0, 0x1
str r0, [r1]
movs r0, 0x2
bl sub_8026240
_08024E30:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8024E00
thumb_func_start sub_8024E38
sub_8024E38: @ 8024E38
push {r4,lr}
sub sp, 0x4
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
ldrb r0, [r0, 0x10]
adds r4, r1, 0
cmp r0, 0x5
bhi _08024F08
lsls r0, 2
ldr r1, =_08024E5C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08024E5C:
.4byte _08024E74
.4byte _08024E90
.4byte _08024EA0
.4byte _08024EC4
.4byte _08024ED8
.4byte _08024EF8
_08024E74:
movs r0, 0
str r0, [sp]
movs r0, 0x7
movs r1, 0x8
movs r2, 0x78
movs r3, 0x50
bl sub_802EB24
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08024EF0
.pool
_08024E90:
bl sub_8010434
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08024EF0
.pool
_08024EA0:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _08024F08
ldr r2, =gUnknown_02022C98
ldr r1, [r2]
ldrb r0, [r1, 0x10]
adds r0, 0x1
movs r3, 0
strb r0, [r1, 0x10]
ldr r0, [r2]
adds r0, 0x30
strb r3, [r0]
b _08024F08
.pool
_08024EC4:
bl sub_802EB84
cmp r0, 0
bne _08024F08
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08024EF0
.pool
_08024ED8:
ldr r1, [r4]
adds r1, 0x30
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bls _08024F08
bl sub_8010434
ldr r1, [r4]
_08024EF0:
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _08024F08
_08024EF8:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _08024F08
movs r0, 0x3
bl sub_8026240
_08024F08:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8024E38
thumb_func_start sub_8024F10
sub_8024F10: @ 8024F10
push {lr}
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
ldrb r0, [r1, 0x10]
cmp r0, 0
bne _08024F2E
movs r2, 0x8E
lsls r2, 1
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _08024F2E
movs r0, 0x4
bl sub_8026240
_08024F2E:
pop {r0}
bx r0
.pool
thumb_func_end sub_8024F10
thumb_func_start sub_8024F38
sub_8024F38: @ 8024F38
push {r4,lr}
ldr r4, =gUnknown_02022C98
ldr r2, [r4]
ldrb r0, [r2, 0x10]
cmp r0, 0
bne _08024FF6
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bhi _08024FE8
adds r0, r2, 0
adds r0, 0xA8
ldrb r0, [r0]
cmp r0, 0
bne _08024FEE
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08024F88
ldr r1, =0x000031cc
adds r0, r2, r1
ldrb r1, [r0]
cmp r1, 0
bne _08024FEE
ldr r3, =0x000031d0
adds r0, r2, r3
strb r1, [r0]
movs r0, 0x2
b _08024FC2
.pool
_08024F88:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08024FA8
ldr r3, =0x000031cc
adds r0, r2, r3
ldrb r1, [r0]
cmp r1, 0
bne _08024FEE
adds r3, 0x4
adds r0, r2, r3
strb r1, [r0]
movs r0, 0x1
b _08024FC2
.pool
_08024FA8:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08024FD4
ldr r3, =0x000031cc
adds r0, r2, r3
ldrb r1, [r0]
cmp r1, 0
bne _08024FEE
adds r3, 0x4
adds r0, r2, r3
strb r1, [r0]
movs r0, 0x3
_08024FC2:
bl sub_8027518
ldr r1, [r4]
ldr r2, =0x000031cc
adds r1, r2
strb r0, [r1]
b _08024FEE
.pool
_08024FD4:
movs r0, 0
bl sub_8027518
ldr r1, [r4]
ldr r3, =0x000031cc
adds r1, r3
strb r0, [r1]
b _08024FEE
.pool
_08024FE8:
movs r0, 0xB
bl sub_8026240
_08024FEE:
bl sub_802671C
bl sub_8025F48
_08024FF6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8024F38
thumb_func_start sub_8024FFC
sub_8024FFC: @ 8024FFC
push {lr}
ldr r0, =gUnknown_02022C98
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bhi _080250C4
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0802504C
adds r0, r2, 0
adds r0, 0x28
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r2, r0
ldr r1, =0x000031cc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080250CA
ldr r3, =0x000032f8
adds r1, r2, r3
movs r0, 0x2
strb r0, [r1]
b _080250CA
.pool
_0802504C:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08025080
adds r0, r2, 0
adds r0, 0x28
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r2, r0
ldr r1, =0x000031cc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080250CA
ldr r3, =0x000032f8
adds r1, r2, r3
movs r0, 0x1
strb r0, [r1]
b _080250CA
.pool
_08025080:
movs r0, 0x20
ands r0, r1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
beq _080250B8
adds r0, r2, 0
adds r0, 0x28
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r2, r0
ldr r1, =0x000031cc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080250CA
ldr r3, =0x000032f8
adds r1, r2, r3
movs r0, 0x3
strb r0, [r1]
b _080250CA
.pool
_080250B8:
ldr r3, =0x000032f8
adds r0, r2, r3
strb r1, [r0]
b _080250CA
.pool
_080250C4:
movs r0, 0xB
bl sub_8026240
_080250CA:
bl sub_8026044
pop {r0}
bx r0
thumb_func_end sub_8024FFC
thumb_func_start sub_80250D4
sub_80250D4: @ 80250D4
push {r4,r5,lr}
bl sub_802671C
bl sub_8025F48
bl sub_8026C50
cmp r0, 0x1
bne _080250F2
bl sub_80272A4
movs r0, 0x5
bl sub_8026240
b _08025150
_080250F2:
ldr r0, =gUnknown_02022C98
ldr r2, [r0]
movs r1, 0x96
lsls r1, 1
adds r4, r2, r1
movs r1, 0x1
str r1, [r4]
movs r3, 0x1
adds r1, r2, 0
adds r1, 0x24
adds r5, r0, 0
ldrb r1, [r1]
cmp r3, r1
bcs _08025150
movs r1, 0x9A
lsls r1, 1
adds r0, r2, r1
ldr r0, [r0]
cmp r0, 0x1
beq _08025124
movs r0, 0
str r0, [r4]
b _08025150
.pool
_08025124:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x24
ldrb r0, [r0]
cmp r3, r0
bcs _08025150
lsls r0, r3, 2
movs r4, 0x98
lsls r4, 1
adds r1, r2, r4
adds r1, r0
ldr r0, [r1]
cmp r0, 0x1
beq _08025124
movs r0, 0x96
lsls r0, 1
adds r1, r2, r0
movs r0, 0
str r0, [r1]
_08025150:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80250D4
thumb_func_start sub_8025158
sub_8025158: @ 8025158
push {lr}
bl sub_8026044
bl sub_8026C90
cmp r0, 0x1
bne _0802516C
movs r0, 0x5
bl sub_8026240
_0802516C:
pop {r0}
bx r0
thumb_func_end sub_8025158
thumb_func_start sub_8025170
sub_8025170: @ 8025170
push {r4,lr}
bl GetBlockReceivedStatus
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_800A9D8
lsls r0, 24
lsrs r0, 24
cmp r4, r0
beq _0802518C
movs r0, 0
b _08025192
_0802518C:
bl ResetBlockReceivedFlags
movs r0, 0x1
_08025192:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8025170
thumb_func_start sub_8025198
sub_8025198: @ 8025198
push {r4,r5,lr}
ldr r5, =gUnknown_02022C98
ldr r1, [r5]
ldrb r4, [r1, 0x10]
cmp r4, 0x1
beq _080251D0
cmp r4, 0x1
bgt _080251B4
cmp r4, 0
beq _080251BA
b _0802520C
.pool
_080251B4:
cmp r4, 0x2
beq _080251DC
b _0802520C
_080251BA:
adds r1, 0x4A
movs r0, 0
movs r2, 0x3C
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _08025226
ldr r0, [r5]
strb r4, [r0, 0x8]
b _08025202
_080251D0:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _08025226
b _08025202
_080251DC:
bl sub_8025170
cmp r0, 0
beq _080251EE
ldr r0, [r5]
adds r1, r0, 0
adds r1, 0x24
ldrb r1, [r1]
strb r1, [r0, 0x8]
_080251EE:
ldr r2, [r5]
adds r1, r2, 0
adds r1, 0x24
ldrb r0, [r2, 0x8]
ldrb r1, [r1]
cmp r0, r1
bcc _08025226
ldrb r0, [r2, 0x14]
adds r0, 0x1
strb r0, [r2, 0x14]
_08025202:
ldr r1, [r5]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _08025226
_0802520C:
movs r0, 0x1
bl WaitFanfare
lsls r0, 24
cmp r0, 0
beq _08025226
movs r0, 0x6
bl sub_8026240
ldr r0, =0x0000020b
movs r1, 0x4
bl FadeOutAndPlayNewMapMusic
_08025226:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8025198
thumb_func_start sub_8025230
sub_8025230: @ 8025230
push {r4,r5,lr}
ldr r5, =gUnknown_02022C98
ldr r2, [r5]
ldrb r4, [r2, 0x10]
cmp r4, 0x1
beq _08025274
cmp r4, 0x1
bgt _0802524C
cmp r4, 0
beq _08025252
b _080252DC
.pool
_0802524C:
cmp r4, 0x2
beq _08025282
b _080252DC
_08025252:
ldrb r0, [r2, 0x14]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, 0x4A
adds r1, r2, r1
movs r0, 0
movs r2, 0x3C
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _08025316
ldr r0, [r5]
strb r4, [r0, 0x8]
ldr r1, [r5]
b _080252CC
_08025274:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _08025316
ldr r1, [r5]
b _080252CC
_08025282:
bl sub_8025170
cmp r0, 0
beq _080252B4
movs r4, 0
b _080252AA
_0802528E:
ldr r0, [r5]
adds r0, 0x4A
ldr r1, =gBlockRecvBuffer
movs r2, 0x3C
bl memcpy
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldrb r0, [r0]
strb r0, [r1, 0x8]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
_080252AA:
ldr r0, [r5]
adds r0, 0x24
ldrb r0, [r0]
cmp r4, r0
bcc _0802528E
_080252B4:
ldr r3, =gUnknown_02022C98
ldr r2, [r3]
adds r1, r2, 0
adds r1, 0x24
ldrb r0, [r2, 0x8]
ldrb r1, [r1]
cmp r0, r1
bcc _08025316
ldrb r0, [r2, 0x14]
adds r0, 0x1
strb r0, [r2, 0x14]
ldr r1, [r3]
_080252CC:
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _08025316
.pool
_080252DC:
movs r0, 0x1
bl WaitFanfare
lsls r0, 24
cmp r0, 0
beq _08025316
ldr r0, =gUnknown_02022C98
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r0, r2, 0
adds r0, 0x54
adds r0, r1
ldrh r1, [r0]
movs r3, 0x8A
lsls r3, 1
adds r0, r2, r3
strh r1, [r0]
movs r0, 0x6
bl sub_8026240
ldr r0, =0x0000020b
movs r1, 0x4
bl FadeOutAndPlayNewMapMusic
_08025316:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8025230
thumb_func_start sub_8025324
sub_8025324: @ 8025324
push {r4,r5,lr}
sub sp, 0x4
movs r1, 0x1
mov r0, sp
strb r1, [r0]
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
ldrb r0, [r0, 0x10]
cmp r0, 0x4
bls _0802533A
b _08025458
_0802533A:
lsls r0, 2
ldr r1, =_0802534C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0802534C:
.4byte _08025360
.4byte _08025384
.4byte _0802539C
.4byte _080253BC
.4byte _080253DC
_08025360:
bl sub_802749C
movs r0, 0x1
bl sub_80289E8
bl sub_8028DFC
movs r0, 0x1
bl sub_8028EC8
movs r0, 0x2
bl sub_80292E0
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08025448
.pool
_08025384:
bl sub_802A770
cmp r0, 0
bne _08025466
movs r0, 0x5
bl sub_80292E0
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08025448
.pool
_0802539C:
bl sub_802A794
mov r1, sp
strb r0, [r1]
movs r0, 0
movs r2, 0x1
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _08025466
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08025448
.pool
_080253BC:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _08025466
ldr r3, =gUnknown_02022C98
ldr r1, [r3]
ldrb r0, [r1, 0x10]
adds r0, 0x1
movs r2, 0
strb r0, [r1, 0x10]
ldr r0, [r3]
strb r2, [r0, 0x8]
b _08025466
.pool
_080253DC:
bl sub_8025170
cmp r0, 0
beq _08025422
movs r2, 0
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
adds r0, 0x24
ldrb r0, [r0]
cmp r2, r0
bcs _08025422
adds r3, r1, 0
movs r5, 0x86
lsls r5, 1
ldr r4, =gBlockRecvBuffer
_080253FA:
ldr r1, [r3]
adds r1, r2, r1
adds r1, r5
lsls r0, r2, 8
adds r0, r4
ldrb r0, [r0]
strb r0, [r1]
ldr r1, [r3]
adds r0, r1, 0
adds r0, 0x24
ldrb r0, [r0]
strb r0, [r1, 0x8]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
ldr r0, [r3]
adds r0, 0x24
ldrb r0, [r0]
cmp r2, r0
bcc _080253FA
_08025422:
ldr r4, =gUnknown_02022C98
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0x24
ldrb r0, [r2, 0x8]
ldrb r1, [r1]
cmp r0, r1
bcc _08025466
ldrb r0, [r2, 0x14]
adds r0, 0x1
strb r0, [r2, 0x14]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x77
bls _08025466
movs r0, 0x6
bl sub_80292E0
ldr r1, [r4]
_08025448:
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _08025466
.pool
_08025458:
bl sub_802A770
cmp r0, 0
bne _08025466
movs r0, 0x7
bl sub_8026240
_08025466:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8025324
thumb_func_start sub_8025470
sub_8025470: @ 8025470
push {r4,r5,lr}
sub sp, 0x4
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
ldrb r0, [r0, 0x10]
cmp r0, 0x7
bls _08025480
b _08025606
_08025480:
lsls r0, 2
ldr r1, =_08025494
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08025494:
.4byte _080254B4
.4byte _080254D4
.4byte _080254F0
.4byte _08025504
.4byte _08025520
.4byte _0802553C
.4byte _08025564
.4byte _08025578
_080254B4:
bl sub_8027748
ldr r1, =0x00000bb7
cmp r0, r1
bls _080254C4
movs r0, 0x4
bl sub_80292E0
_080254C4:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _080255E8
.pool
_080254D4:
bl sub_802A770
cmp r0, 0
beq _080254DE
b _0802563C
_080254DE:
movs r0, 0x3
bl sub_80292E0
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _080255E8
.pool
_080254F0:
bl sub_8028FCC
bl sub_80272E8
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _080255E8
.pool
_08025504:
bl sub_802A794
lsls r0, 24
lsrs r0, 24
mov r1, sp
strb r0, [r1]
cmp r0, 0
bne _08025516
b _0802563C
_08025516:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _080255E8
.pool
_08025520:
bl sub_802A770
cmp r0, 0
beq _0802552A
b _0802563C
_0802552A:
movs r0, 0x5
bl sub_80292E0
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _080255E8
.pool
_0802553C:
bl sub_802A794
mov r1, sp
strb r0, [r1]
movs r0, 0
movs r2, 0x1
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _0802563C
ldr r2, =gUnknown_02022C98
ldr r1, [r2]
movs r0, 0
strb r0, [r1, 0x8]
ldr r1, [r2]
b _080255E8
.pool
_08025564:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0802563C
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _080255E8
.pool
_08025578:
bl sub_8025170
cmp r0, 0
beq _080255BE
movs r2, 0
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
adds r0, 0x24
ldrb r0, [r0]
cmp r2, r0
bcs _080255BE
adds r3, r1, 0
movs r5, 0x86
lsls r5, 1
ldr r4, =gBlockRecvBuffer
_08025596:
ldr r1, [r3]
adds r1, r2, r1
adds r1, r5
lsls r0, r2, 8
adds r0, r4
ldrb r0, [r0]
strb r0, [r1]
ldr r1, [r3]
adds r0, r1, 0
adds r0, 0x24
ldrb r0, [r0]
strb r0, [r1, 0x8]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
ldr r0, [r3]
adds r0, 0x24
ldrb r0, [r0]
cmp r2, r0
bcc _08025596
_080255BE:
ldr r4, =gUnknown_02022C98
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0x24
ldrb r0, [r2, 0x8]
ldrb r1, [r1]
cmp r0, r1
bcc _080255F8
ldrb r0, [r2, 0x14]
adds r0, 0x1
strb r0, [r2, 0x14]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x77
bls _0802563C
bl sub_8027608
movs r0, 0x6
bl sub_80292E0
ldr r1, [r4]
_080255E8:
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _0802563C
.pool
_080255F8:
bl sub_8027554
b _0802563C
_080255FE:
movs r0, 0x8
bl sub_8026240
b _0802563C
_08025606:
bl sub_802A770
cmp r0, 0
bne _0802563C
movs r2, 0
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x24
ldrb r0, [r0]
cmp r2, r0
bcs _08025636
movs r4, 0x86
lsls r4, 1
adds r3, r1, r4
adds r1, r0, 0
_08025624:
adds r0, r3, r2
ldrb r0, [r0]
cmp r0, 0x2
beq _080255FE
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, r1
bcc _08025624
_08025636:
movs r0, 0xA
bl sub_8026240
_0802563C:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8025470
thumb_func_start sub_8025644
sub_8025644: @ 8025644
push {r4,lr}
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
ldrb r0, [r0, 0x10]
cmp r0, 0x1
beq _08025672
cmp r0, 0x1
bgt _08025660
cmp r0, 0
beq _08025666
b _08025692
.pool
_08025660:
cmp r0, 0x2
beq _0802567C
b _08025692
_08025666:
bl sub_800AC34
movs r0, 0x7
bl sub_80292E0
b _08025688
_08025672:
bl sub_802A770
cmp r0, 0
bne _080256A0
b _08025688
_0802567C:
bl sub_802A794
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _080256A0
_08025688:
ldr r1, [r4]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _080256A0
_08025692:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _080256A0
movs r0, 0x9
bl sub_8026240
_080256A0:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8025644
thumb_func_start sub_80256AC
sub_80256AC: @ 80256AC
push {r4,lr}
sub sp, 0x4
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
ldrb r1, [r0, 0x10]
cmp r1, 0x1
beq _080256E0
cmp r1, 0x1
bgt _080256C8
cmp r1, 0
beq _080256CE
b _08025728
.pool
_080256C8:
cmp r1, 0x2
beq _080256F8
b _08025728
_080256CE:
movs r0, 0x1
negs r0, r0
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
b _0802571A
_080256E0:
bl UpdatePaletteFade
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0802574C
b _0802571A
.pool
_080256F8:
bl sub_8028B80
bl sub_80287E4
ldr r0, [r4]
adds r0, 0x24
ldrb r0, [r0]
bl sub_8028614
bl sub_8028E84
ldr r1, =gUnknown_03000DB0
movs r0, 0x1
str r0, [r1]
movs r0, 0x8
bl sub_80292E0
_0802571A:
ldr r1, [r4]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _0802574C
.pool
_08025728:
bl sub_802A770
cmp r0, 0
bne _0802574C
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
ldr r0, [r0]
bl SetMainCallback2
ldr r0, [r4]
ldrb r0, [r0, 0x4]
bl DestroyTask
ldr r0, [r4]
bl Free
bl FreeAllWindowBuffers
_0802574C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80256AC
thumb_func_start sub_8025758
sub_8025758: @ 8025758
push {r4,lr}
sub sp, 0x4
ldr r4, =gUnknown_02022C98
ldr r1, [r4]
ldrb r0, [r1, 0x10]
cmp r0, 0x6
bls _08025768
b _0802585C
_08025768:
lsls r0, 2
ldr r1, =_0802577C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0802577C:
.4byte _08025798
.4byte _08025838
.4byte _080257B0
.4byte _08025802
.4byte _08025808
.4byte _08025818
.4byte _08025838
_08025798:
movs r0, 0x9
bl sub_80292E0
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
b _08025848
_080257B0:
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
b _08025848
_08025802:
bl StopMapMusic
b _08025848
_08025808:
ldr r0, =0x0000021e
bl PlayNewMapMusic
bl sub_8028E4C
b _08025848
.pool
_08025818:
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
b _08025848
_08025838:
bl UpdatePaletteFade
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0802588C
_08025848:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _0802588C
.pool
_0802585C:
ldrb r0, [r1, 0x4]
bl DestroyTask
ldr r0, =sub_802589C
bl sub_802621C
bl sub_802903C
ldr r0, [r4]
bl sub_8024A30
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _08025882
ldr r0, [r4]
adds r0, 0x24
movs r1, 0x1
strb r1, [r0]
_08025882:
bl sub_80273F0
movs r0, 0
bl sub_8028EC8
_0802588C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8025758
thumb_func_start sub_802589C
sub_802589C: @ 802589C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
ldrb r0, [r0, 0x10]
adds r4, r1, 0
cmp r0, 0x1
beq _080258C8
cmp r0, 0x1
bgt _080258BC
cmp r0, 0
beq _080258C2
b _080258E0
.pool
_080258BC:
cmp r0, 0x2
beq _080258CE
b _080258E0
_080258C2:
bl sub_8026264
b _080258D2
_080258C8:
bl sub_80286E4
b _080258D6
_080258CE:
bl sub_8028828
_080258D2:
cmp r0, 0x1
bne _08025904
_080258D6:
ldr r1, [r4]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
b _08025904
_080258E0:
ldr r0, [r4]
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
beq _080258F8
ldr r0, =sub_8024D4C
bl sub_802621C
b _080258FE
.pool
_080258F8:
ldr r0, =sub_8024D84
bl sub_802621C
_080258FE:
adds r0, r5, 0
bl DestroyTask
_08025904:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_802589C
thumb_func_start sub_8025910
sub_8025910: @ 8025910
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
movs r0, 0
ldrsh r4, [r5, r0]
cmp r4, 0x1
beq _0802596C
cmp r4, 0x1
bgt _08025938
cmp r4, 0
beq _0802593E
b _080259E8
.pool
_08025938:
cmp r4, 0x2
beq _0802597E
b _080259E8
_0802593E:
ldr r6, =gUnknown_02022C98
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 2
ldr r2, =0x0000318c
adds r0, r2
adds r1, r0
movs r0, 0
movs r2, 0x1
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _080259E8
ldr r0, [r6]
strb r4, [r0, 0x8]
b _08025976
.pool
_0802596C:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _080259E8
_08025976:
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
b _080259E8
_0802597E:
bl sub_8025170
cmp r0, 0
beq _080259C4
movs r2, 0
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
adds r0, 0x24
ldrb r0, [r0]
cmp r2, r0
bcs _080259C4
adds r3, r1, 0
ldr r5, =gBlockRecvBuffer
ldr r4, =0x0000318c
_0802599A:
ldr r0, [r3]
lsls r1, r2, 2
adds r1, r0
adds r1, r4
lsls r0, r2, 8
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
ldr r1, [r3]
adds r0, r1, 0
adds r0, 0x24
ldrb r0, [r0]
strb r0, [r1, 0x8]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
ldr r0, [r3]
adds r0, 0x24
ldrb r0, [r0]
cmp r2, r0
bcc _0802599A
_080259C4:
ldr r4, =gUnknown_02022C98
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x24
ldrb r0, [r0, 0x8]
ldrb r1, [r1]
cmp r0, r1
bcc _080259E8
adds r0, r6, 0
bl DestroyTask
movs r0, 0x6
bl sub_80292E0
ldr r1, [r4]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
_080259E8:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8025910
thumb_func_start sub_80259FC
sub_80259FC: @ 80259FC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x18
ldr r6, =gUnknown_02022C98
ldr r0, [r6]
adds r1, r0, 0
adds r1, 0x24
ldrb r7, [r1]
ldr r2, =0x000031a0
adds r1, r0, r2
ldr r3, =0x000031cc
adds r2, r0, r3
ldr r4, =0x00003208
adds r3, r0, r4
ldr r5, =0x00003244
adds r4, r0, r5
str r4, [sp]
adds r5, 0x3C
adds r4, r0, r5
str r4, [sp, 0x4]
adds r5, 0x3C
adds r4, r0, r5
str r4, [sp, 0x8]
adds r4, r0, 0
adds r4, 0x40
str r4, [sp, 0xC]
movs r5, 0x90
lsls r5, 1
adds r4, r0, r5
str r4, [sp, 0x10]
movs r4, 0x96
lsls r4, 1
adds r0, r4
str r0, [sp, 0x14]
movs r0, 0
bl sub_8028164
ldr r1, [r6]
ldr r5, =0x000031b0
adds r2, r1, r5
str r0, [r2]
movs r0, 0x94
lsls r0, 1
adds r1, r0
movs r0, 0x1
strb r0, [r1]
movs r5, 0x1
cmp r5, r7
bcs _08025AA4
_08025A60:
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xA8
adds r0, r5
ldrb r0, [r0]
cmp r0, 0
bne _08025A9A
lsls r0, r5, 4
subs r0, r5
lsls r4, r0, 2
adds r1, r4, r1
ldr r2, =0x000031cc
adds r1, r2
adds r0, r5, 0
bl sub_8028318
adds r1, r0, 0
cmp r1, 0
bne _08025A9A
ldr r0, [r6]
adds r0, r4
ldr r3, =0x000031cc
adds r0, r3
strb r1, [r0]
ldr r0, [r6]
movs r4, 0x94
lsls r4, 1
adds r0, r4
strb r1, [r0]
_08025A9A:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r7
bcc _08025A60
_08025AA4:
ldr r5, =gUnknown_02022C98
ldr r1, [r5]
movs r6, 0x92
lsls r6, 1
adds r1, r6
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3B
bls _08025B02
ldr r1, [r5]
movs r2, 0x94
lsls r2, 1
adds r0, r1, r2
ldrb r4, [r0]
cmp r4, 0
beq _08025AF0
bl sub_8011AC8
ldr r0, [r5]
adds r0, r6
movs r1, 0
strb r1, [r0]
b _08025B02
.pool
_08025AF0:
adds r0, r1, r6
ldrb r0, [r0]
cmp r0, 0x46
bls _08025B02
bl sub_8011AC8
ldr r0, [r5]
adds r0, r6
strb r4, [r0]
_08025B02:
movs r5, 0
cmp r5, r7
bcs _08025BF6
ldr r3, =0x000031cc
mov r12, r3
ldr r4, =gUnknown_02022C98
mov r8, r4
_08025B10:
mov r6, r8
ldr r2, [r6]
lsls r0, r5, 4
subs r1, r0, r5
lsls r1, 2
adds r1, r2, r1
add r1, r12
ldrb r1, [r1]
adds r6, r0, 0
cmp r1, 0
beq _08025B36
adds r0, r2, 0
adds r0, 0xA8
adds r1, r0, r5
ldrb r0, [r1]
cmp r0, 0
bne _08025B36
movs r0, 0x1
strb r0, [r1]
_08025B36:
adds r3, r4, 0
ldr r1, [r3]
adds r0, r1, 0
adds r0, 0xA8
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x3
bgt _08025B54
cmp r0, 0x1
bge _08025B5A
b _08025BEC
.pool
_08025B54:
cmp r0, 0x4
beq _08025BA8
b _08025BEC
_08025B5A:
adds r1, 0xB0
adds r1, r5
ldrb r0, [r1]
adds r0, 0x1
movs r2, 0
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bls _08025BEC
ldr r0, [r3]
adds r0, 0xB0
adds r0, r5
strb r2, [r0]
ldr r0, [r3]
adds r0, 0xA8
adds r0, r5
strb r2, [r0]
ldr r0, [r3]
subs r1, r6, r5
lsls r1, 2
adds r0, r1
add r0, r12
strb r2, [r0]
ldr r0, [r3]
adds r0, r1
ldr r6, =0x000031d0
adds r0, r6
strb r2, [r0]
ldr r0, [r3]
adds r0, r1
ldr r1, =0x000031d4
adds r0, r1
b _08025BEA
.pool
_08025BA8:
adds r1, 0xB0
adds r1, r5
ldrb r0, [r1]
adds r0, 0x1
movs r2, 0
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x27
bls _08025BEC
ldr r0, [r4]
adds r0, 0xB0
adds r0, r5
strb r2, [r0]
ldr r0, [r4]
adds r0, 0xA8
adds r0, r5
strb r2, [r0]
ldr r0, [r4]
subs r1, r6, r5
lsls r1, 2
adds r0, r1
add r0, r12
strb r2, [r0]
ldr r0, [r4]
adds r0, r1
ldr r3, =0x000031d0
adds r0, r3
strb r2, [r0]
ldr r0, [r4]
adds r0, r1
ldr r6, =0x000031d4
adds r0, r6
_08025BEA:
strb r2, [r0]
_08025BEC:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r7
bcc _08025B10
_08025BF6:
add sp, 0x18
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80259FC
thumb_func_start sub_8025C0C
sub_8025C0C: @ 8025C0C
push {r4-r7,lr}
sub sp, 0x18
ldr r5, =gUnknown_02022C98
ldr r0, [r5]
adds r1, r0, 0
adds r1, 0x24
ldrb r6, [r1]
ldr r2, =0x000031a0
adds r1, r0, r2
ldr r3, =0x000031cc
adds r2, r0, r3
ldr r4, =0x00003208
adds r3, r0, r4
ldr r7, =0x00003244
adds r4, r0, r7
str r4, [sp]
adds r7, 0x3C
adds r4, r0, r7
str r4, [sp, 0x4]
adds r7, 0x3C
adds r4, r0, r7
str r4, [sp, 0x8]
adds r4, r0, 0
adds r4, 0x40
str r4, [sp, 0xC]
movs r7, 0x90
lsls r7, 1
adds r4, r0, r7
str r4, [sp, 0x10]
movs r4, 0x96
lsls r4, 1
adds r0, r4
str r0, [sp, 0x14]
movs r0, 0
bl sub_8028164
ldr r1, [r5]
ldr r7, =0x000031b0
adds r2, r1, r7
str r0, [r2]
movs r0, 0x94
lsls r0, 1
adds r1, r0
movs r0, 0x1
strb r0, [r1]
movs r4, 0x1
cmp r4, r6
bcs _08025C9C
_08025C6C:
adds r0, r4, 0
bl sub_8028374
cmp r0, 0
beq _08025C92
ldr r0, =gUnknown_02022C98
ldr r2, [r0]
lsls r1, r4, 2
movs r3, 0x98
lsls r3, 1
adds r0, r2, r3
adds r0, r1
movs r1, 0x1
str r1, [r0]
movs r7, 0x94
lsls r7, 1
adds r1, r2, r7
movs r0, 0
strb r0, [r1]
_08025C92:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r6
bcc _08025C6C
_08025C9C:
ldr r5, =gUnknown_02022C98
ldr r1, [r5]
movs r6, 0x92
lsls r6, 1
adds r1, r6
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3B
bls _08025CFA
ldr r1, [r5]
movs r2, 0x94
lsls r2, 1
adds r0, r1, r2
ldrb r4, [r0]
cmp r4, 0
beq _08025CE8
bl sub_8011AC8
ldr r0, [r5]
adds r0, r6
movs r1, 0
strb r1, [r0]
b _08025CFA
.pool
_08025CE8:
adds r0, r1, r6
ldrb r0, [r0]
cmp r0, 0x46
bls _08025CFA
bl sub_8011AC8
ldr r0, [r5]
adds r0, r6
strb r4, [r0]
_08025CFA:
add sp, 0x18
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8025C0C
thumb_func_start sub_8025D04
sub_8025D04: @ 8025D04
push {r4,r5,lr}
ldr r5, =gUnknown_02022C98
ldr r0, [r5]
ldrb r0, [r0, 0x18]
cmp r0, 0x4
beq _08025D40
cmp r0, 0x4
bgt _08025D20
cmp r0, 0x3
beq _08025D26
b _08025D4A
.pool
_08025D20:
cmp r0, 0xB
beq _08025D46
b _08025D4A
_08025D26:
bl sub_8026BB8
adds r4, r0, 0
cmp r4, 0x1
bne _08025D4A
bl sub_8026C28
ldr r0, [r5]
movs r1, 0x8E
lsls r1, 1
adds r0, r1
str r4, [r0]
b _08025D4A
_08025D40:
bl sub_80259FC
b _08025D4A
_08025D46:
bl sub_8025C0C
_08025D4A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8025D04
thumb_func_start sub_8025D50
sub_8025D50: @ 8025D50
push {r4-r6,lr}
sub sp, 0x14
ldr r0, =gUnknown_02022C98
ldr r5, [r0]
ldrb r0, [r5, 0x18]
cmp r0, 0x4
beq _08025D68
cmp r0, 0xB
beq _08025DB8
b _08025DF4
.pool
_08025D68:
ldr r1, =0x000032cc
adds r0, r5, r1
ldr r2, =0x000031cc
adds r1, r5, r2
ldr r3, =0x00003208
adds r2, r5, r3
ldr r4, =0x00003244
adds r3, r5, r4
movs r6, 0xCA
lsls r6, 6
adds r4, r5, r6
str r4, [sp]
adds r6, 0x3C
adds r4, r5, r6
str r4, [sp, 0x4]
adds r4, r5, 0
adds r4, 0x40
ldrb r4, [r4]
str r4, [sp, 0x8]
movs r6, 0x90
lsls r6, 1
adds r4, r5, r6
ldr r4, [r4]
str r4, [sp, 0xC]
adds r6, 0xC
adds r4, r5, r6
ldr r4, [r4]
str r4, [sp, 0x10]
bl sub_8027E30
b _08025DF4
.pool
_08025DB8:
ldr r1, =0x000032cc
adds r0, r5, r1
ldr r2, =0x000031cc
adds r1, r5, r2
ldr r3, =0x00003208
adds r2, r5, r3
ldr r4, =0x00003244
adds r3, r5, r4
movs r6, 0xCA
lsls r6, 6
adds r4, r5, r6
str r4, [sp]
adds r6, 0x3C
adds r4, r5, r6
str r4, [sp, 0x4]
adds r4, r5, 0
adds r4, 0x40
ldrb r4, [r4]
str r4, [sp, 0x8]
movs r6, 0x90
lsls r6, 1
adds r4, r5, r6
ldr r4, [r4]
str r4, [sp, 0xC]
adds r6, 0xC
adds r4, r5, r6
ldr r4, [r4]
str r4, [sp, 0x10]
bl sub_8027E30
_08025DF4:
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8025D50
thumb_func_start sub_8025E0C
sub_8025E0C: @ 8025E0C
push {r4-r6,lr}
sub sp, 0x18
ldr r0, =gUnknown_02022C98
ldr r5, [r0]
ldrb r0, [r5, 0x18]
cmp r0, 0x4
beq _08025E24
cmp r0, 0xB
beq _08025E7C
b _08025EC0
.pool
_08025E24:
adds r0, r5, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r1, r0, 4
subs r1, r0
lsls r1, 2
ldr r2, =0x000031a0
adds r1, r2
adds r1, r5, r1
ldr r3, =0x000031cc
adds r2, r5, r3
ldr r4, =0x00003208
adds r3, r5, r4
ldr r6, =0x00003244
adds r4, r5, r6
str r4, [sp]
adds r6, 0x3C
adds r4, r5, r6
str r4, [sp, 0x4]
adds r6, 0x3C
adds r4, r5, r6
str r4, [sp, 0x8]
adds r4, r5, 0
adds r4, 0x40
str r4, [sp, 0xC]
movs r6, 0x90
lsls r6, 1
adds r4, r5, r6
str r4, [sp, 0x10]
adds r6, 0xC
adds r4, r5, r6
str r4, [sp, 0x14]
bl sub_8028164
b _08025EC0
.pool
_08025E7C:
adds r0, r5, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r1, r0, 4
subs r1, r0
lsls r1, 2
ldr r2, =0x000031a0
adds r1, r2
adds r1, r5, r1
ldr r3, =0x000031cc
adds r2, r5, r3
ldr r4, =0x00003208
adds r3, r5, r4
ldr r6, =0x00003244
adds r4, r5, r6
str r4, [sp]
adds r6, 0x3C
adds r4, r5, r6
str r4, [sp, 0x4]
adds r6, 0x3C
adds r4, r5, r6
str r4, [sp, 0x8]
adds r4, r5, 0
adds r4, 0x40
str r4, [sp, 0xC]
movs r6, 0x90
lsls r6, 1
adds r4, r5, r6
str r4, [sp, 0x10]
adds r6, 0xC
adds r4, r5, r6
str r4, [sp, 0x14]
bl sub_8028164
_08025EC0:
add sp, 0x18
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8025E0C
thumb_func_start sub_8025ED8
sub_8025ED8: @ 8025ED8
push {r4,lr}
ldr r4, =gUnknown_02022C98
ldr r1, [r4]
ldrb r0, [r1, 0x18]
cmp r0, 0x4
beq _08025F0E
cmp r0, 0x4
bgt _08025EF4
cmp r0, 0x3
beq _08025EFA
b _08025F40
.pool
_08025EF4:
cmp r0, 0xB
beq _08025F24
b _08025F40
_08025EFA:
movs r0, 0x1
bl sub_8027DD0
ldr r0, [r4]
movs r1, 0x8E
lsls r1, 1
adds r0, r1
movs r1, 0x1
str r1, [r0]
b _08025F40
_08025F0E:
ldr r2, =0x000032f8
adds r1, r2
ldrb r0, [r1]
cmp r0, 0
beq _08025F40
bl sub_80282EC
b _08025F40
.pool
_08025F24:
movs r2, 0x90
lsls r2, 1
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
bne _08025F40
adds r2, 0xC
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
bne _08025F40
movs r0, 0x1
bl sub_8028350
_08025F40:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8025ED8
thumb_func_start sub_8025F48
sub_8025F48: @ 8025F48
push {r4-r6,lr}
ldr r6, =gUnknown_02022C98
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0x28
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r1, r2, r0
ldr r3, =0x000031cc
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
bne _08025F88
bl IsSEPlaying
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08025FEA
ldr r0, [r6]
movs r2, 0xA2
lsls r2, 1
adds r0, r2
strb r1, [r0]
b _08025FEA
.pool
_08025F88:
ldr r3, =0x000031d0
adds r0, r1, r3
ldrb r4, [r0]
cmp r4, 0x1
bne _08025FB8
movs r1, 0xA2
lsls r1, 1
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
bne _08025FEA
movs r0, 0x1F
bl m4aSongNumStop
movs r0, 0x1F
bl PlaySE
ldr r0, [r6]
movs r2, 0xA2
lsls r2, 1
adds r0, r2
b _08025FE8
.pool
_08025FB8:
ldr r3, =0x000031d4
adds r0, r1, r3
ldrb r4, [r0]
cmp r4, 0x1
bne _08025FEA
movs r5, 0xA2
lsls r5, 1
adds r0, r2, r5
ldrb r0, [r0]
cmp r0, 0
bne _08025FEA
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08025FEA
movs r0, 0x16
bl PlaySE
movs r0, 0x1
bl sub_80284CC
ldr r0, [r6]
adds r0, r5
_08025FE8:
strb r4, [r0]
_08025FEA:
ldr r0, =gUnknown_02022C98
ldr r2, [r0]
movs r5, 0xAA
lsls r5, 1
adds r1, r2, r5
ldrb r1, [r1]
adds r4, r0, 0
cmp r1, 0
bne _0802601C
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bls _0802601C
bl StopMapMusic
ldr r0, [r4]
adds r0, r5
movs r1, 0x1
b _0802603A
.pool
_0802601C:
ldr r0, [r4]
movs r1, 0xAA
lsls r1, 1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _0802603C
movs r0, 0xB
bl PlayFanfareByFanfareNum
ldr r0, [r4]
movs r2, 0xAA
lsls r2, 1
adds r0, r2
movs r1, 0x2
_0802603A:
strb r1, [r0]
_0802603C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8025F48
thumb_func_start sub_8026044
sub_8026044: @ 8026044
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r6, =gUnknown_02022C98
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0x44
ldrb r0, [r0]
mov r8, r0
adds r0, r2, 0
adds r0, 0x48
ldrb r7, [r0]
subs r0, 0x20
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r1, r2, r0
ldr r3, =0x000031cc
adds r0, r1, r3
ldrb r3, [r0]
cmp r3, 0
bne _0802609C
ldr r4, =0x000031d0
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _080260FE
adds r4, 0x4
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _080260FE
movs r1, 0xA2
lsls r1, 1
adds r0, r2, r1
strb r3, [r0]
b _080260FE
.pool
_0802609C:
ldr r3, =0x000031d0
adds r0, r1, r3
ldrb r4, [r0]
cmp r4, 0x1
bne _080260CC
movs r1, 0xA2
lsls r1, 1
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
bne _080260FE
movs r0, 0x1F
bl m4aSongNumStop
movs r0, 0x1F
bl PlaySE
ldr r0, [r6]
movs r3, 0xA2
lsls r3, 1
adds r0, r3
b _080260FC
.pool
_080260CC:
ldr r4, =0x000031d4
adds r0, r1, r4
ldrb r4, [r0]
cmp r4, 0x1
bne _080260FE
movs r5, 0xA2
lsls r5, 1
adds r0, r2, r5
ldrb r0, [r0]
cmp r0, 0
bne _080260FE
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _080260FE
movs r0, 0x16
bl PlaySE
movs r0, 0x1
bl sub_80284CC
ldr r0, [r6]
adds r0, r5
_080260FC:
strb r4, [r0]
_080260FE:
mov r4, r8
cmp r4, r7
bcs _08026172
ldr r5, =gUnknown_02022C98
_08026106:
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x28
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
ldr r1, =0x000031a0
adds r0, r1
adds r0, r2, r0
adds r1, r0, 0
adds r1, 0x14
adds r0, 0x1F
adds r0, r4
ldrb r0, [r0]
cmp r0, 0x9
bls _0802615C
movs r3, 0xA4
lsls r3, 1
adds r0, r2, r3
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _08026168
adds r0, r1, r4
ldrb r0, [r0]
adds r0, 0x4A
bl PlaySE
ldr r0, [r5]
movs r1, 0xA4
lsls r1, 1
adds r0, r1
adds r0, r4
movs r1, 0x1
b _08026166
.pool
_0802615C:
movs r3, 0xA4
lsls r3, 1
adds r0, r2, r3
adds r0, r4
movs r1, 0
_08026166:
strb r1, [r0]
_08026168:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r7
bcc _08026106
_08026172:
ldr r0, =gUnknown_02022C98
ldr r2, [r0]
movs r5, 0xAA
lsls r5, 1
adds r1, r2, r5
ldrb r1, [r1]
adds r4, r0, 0
cmp r1, 0
bne _080261A0
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bls _080261A0
bl StopMapMusic
ldr r0, [r4]
adds r0, r5
movs r1, 0x1
b _080261BE
.pool
_080261A0:
ldr r0, [r4]
movs r1, 0xAA
lsls r1, 1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _080261C0
movs r0, 0xB
bl PlayFanfareByFanfareNum
ldr r0, [r4]
movs r3, 0xAA
lsls r3, 1
adds r0, r3
movs r1, 0x2
_080261BE:
strb r1, [r0]
_080261C0:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8026044
thumb_func_start sub_80261CC
sub_80261CC: @ 80261CC
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80261CC
thumb_func_start sub_80261E4
sub_80261E4: @ 80261E4
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_80261E4
thumb_func_start sub_80261F8
sub_80261F8: @ 80261F8
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
bl IsMonShiny
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80261F8
thumb_func_start sub_802620C
sub_802620C: @ 802620C
push {lr}
lsls r1, 24
lsrs r1, 24
bl CreateTask
pop {r0}
bx r0
thumb_func_end sub_802620C
thumb_func_start sub_802621C
sub_802621C: @ 802621C
push {lr}
movs r1, 0x1
bl CreateTask
ldr r1, =gUnknown_02022C98
ldr r3, [r1]
movs r2, 0
strb r0, [r3, 0x4]
ldr r0, [r1]
strb r2, [r0, 0x10]
ldr r0, [r1]
strb r2, [r0, 0xC]
ldr r0, [r1]
strb r2, [r0, 0x14]
pop {r0}
bx r0
.pool
thumb_func_end sub_802621C
thumb_func_start sub_8026240
sub_8026240: @ 8026240
push {r4,lr}
ldr r2, =gUnknown_02022C98
ldr r1, [r2]
ldrb r3, [r1, 0x18]
movs r4, 0
strb r3, [r1, 0x1C]
ldr r1, [r2]
strb r0, [r1, 0x18]
ldr r0, [r2]
strb r4, [r0, 0x10]
ldr r0, [r2]
strb r4, [r0, 0x14]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8026240
thumb_func_start sub_8026264
sub_8026264: @ 8026264
push {r4,lr}
ldr r3, =gUnknown_02022C98
ldr r1, [r3]
ldrb r0, [r1, 0x14]
lsrs r2, r0, 2
adds r0, 0x1
strb r0, [r1, 0x14]
cmp r2, 0
beq _080262B8
ldr r3, [r3]
ldrb r0, [r3, 0x14]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _080262B8
ldr r1, =gUnknown_082F7A94
adds r0, r3, 0
adds r0, 0x24
ldrb r0, [r0]
subs r0, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r2, r0
bcc _080262A0
movs r0, 0x1
b _080262BA
.pool
_080262A0:
lsls r4, r2, 3
adds r1, r4, 0
movs r0, 0x14
bl SetGpuReg
negs r4, r4
lsls r4, 16
lsrs r4, 16
movs r0, 0x18
adds r1, r4, 0
bl SetGpuReg
_080262B8:
movs r0, 0
_080262BA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8026264
thumb_func_start sub_80262C0
sub_80262C0: @ 80262C0
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r2, =gUnknown_02022C98
ldr r0, [r2]
adds r1, r0, 0
adds r1, 0x44
adds r0, 0x48
ldrb r5, [r0]
ldrb r1, [r1]
cmp r1, r5
bcs _0802630C
mov r8, r2
ldr r0, =0x000032e0
mov r12, r0
movs r7, 0
movs r6, 0x1
_080262E2:
mov r2, r8
ldr r0, [r2]
mov r2, r12
adds r4, r0, r2
ldr r2, =0x000032eb
adds r0, r2
adds r2, r0, r1
movs r3, 0
adds r0, r1, 0
ands r0, r6
cmp r0, 0
bne _080262FC
movs r3, 0x1
_080262FC:
strb r3, [r2]
adds r0, r4, r1
strb r7, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r5
bcc _080262E2
_0802630C:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80262C0
thumb_func_start sub_8026324
sub_8026324: @ 8026324
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x44
ldrb r0, [r0]
str r0, [sp]
adds r0, r1, 0
adds r0, 0x48
ldrb r0, [r0]
str r0, [sp, 0x4]
adds r0, r1, 0
adds r0, 0x24
ldrb r0, [r0]
str r0, [sp, 0x8]
adds r0, r1, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bls _08026358
b _08026614
_08026358:
movs r6, 0
ldr r0, [sp, 0x8]
cmp r6, r0
bcs _08026440
_08026360:
ldr r3, =gUnknown_02022C98
lsls r0, r6, 4
subs r1, r0, r6
lsls r1, 2
ldr r2, [r3]
adds r1, r2
ldr r4, =0x000031cc
adds r4, r1
mov r8, r4
ldrb r1, [r4]
mov r9, r0
adds r0, r6, 0x1
str r0, [sp, 0xC]
cmp r1, 0
beq _08026434
adds r0, r2, 0
adds r0, 0xA8
adds r0, r6
ldrb r0, [r0]
cmp r0, 0x1
bne _08026434
ldr r1, [sp]
mov r10, r1
ldr r2, [sp, 0x4]
cmp r10, r2
bcs _08026434
adds r7, r3, 0
_08026396:
ldr r0, =gUnknown_082F449C
add r0, r10
ldrb r5, [r0]
ldr r1, [r7]
lsls r4, r5, 1
adds r0, r1, 0
adds r0, 0xF4
adds r0, r4
ldrb r0, [r0]
cmp r0, r6
beq _08026434
adds r0, r1, 0
adds r0, 0xF5
adds r0, r4
ldrb r0, [r0]
cmp r0, r6
beq _08026434
mov r0, r8
ldrb r1, [r0]
adds r0, r6, 0
adds r2, r5, 0
bl sub_8026634
cmp r0, 0x1
bne _08026410
movs r2, 0
ldr r3, =gUnknown_02022C98
mov r8, r4
_080263CE:
ldr r0, [r3]
mov r4, r8
adds r1, r2, r4
adds r0, 0xF4
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0xFF
bne _08026404
strb r6, [r1]
ldr r0, [r3]
adds r0, 0xA8
adds r0, r6
movs r1, 0x2
strb r1, [r0]
ldr r0, [r3]
adds r0, 0xC4
adds r0, r5
movs r1, 0x1
strb r1, [r0]
b _08026434
.pool
_08026404:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1
bls _080263CE
b _08026434
_08026410:
ldr r0, [r7]
mov r2, r9
subs r1, r2, r6
lsls r1, 2
adds r0, r1
ldr r4, =0x000031d4
adds r0, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _08026434
mov r0, r10
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, [sp, 0x4]
cmp r10, r0
bcc _08026396
_08026434:
ldr r1, [sp, 0xC]
lsls r0, r1, 24
lsrs r6, r0, 24
ldr r2, [sp, 0x8]
cmp r6, r2
bcc _08026360
_08026440:
ldr r4, [sp]
mov r10, r4
ldr r0, [sp, 0x4]
cmp r10, r0
bcc _0802644C
b _08026614
_0802644C:
ldr r1, =gUnknown_02022C98
mov r9, r1
_08026450:
movs r6, 0xFF
ldr r0, =gUnknown_082F449C
add r0, r10
ldrb r5, [r0]
mov r2, r9
ldr r0, [r2]
adds r0, 0xC4
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x1
beq _08026468
b _08026602
_08026468:
adds r0, r5, 0
bl sub_8026D8C
mov r1, r9
ldr r4, [r1]
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
adds r1, 0x90
adds r1, r0
ldrb r0, [r1]
movs r1, 0x7
bl __udivsi3
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
bls _0802648E
movs r3, 0x2
_0802648E:
ldr r2, =gUnknown_082F7A88
ldr r0, =0x000031b4
adds r1, r4, r0
adds r1, r5
lsls r0, r3, 1
adds r0, r3
ldrb r1, [r1]
adds r0, r1
adds r0, r2
ldrb r1, [r0]
adds r0, r4, 0
adds r0, 0xD0
adds r0, r5
ldrb r0, [r0]
subs r2, r1, r0
cmp r2, 0x5
bgt _080264BC
adds r1, r4, 0
adds r1, 0x9C
adds r1, r5
ldrb r0, [r1]
adds r0, r2
strb r0, [r1]
_080264BC:
mov r2, r9
ldr r1, [r2]
adds r1, 0x9C
adds r1, r5
ldrb r0, [r1]
adds r0, 0x1
movs r2, 0
strb r0, [r1]
movs r4, 0xFF
ands r0, r4
cmp r0, 0x5
bhi _080264D6
b _08026602
_080264D6:
mov r1, r9
ldr r0, [r1]
adds r0, 0x9C
adds r0, r5
strb r2, [r0]
ldr r3, [r1]
lsls r1, r5, 1
adds r0, r3, 0
adds r0, 0xF4
adds r2, r0, r1
ldrb r0, [r2]
mov r8, r1
cmp r0, 0xFF
bne _08026518
adds r0, r3, 0
adds r0, 0xF5
add r0, r8
ldrb r0, [r0]
cmp r0, 0xFF
bne _08026500
b _08026602
_08026500:
b _08026528
.pool
_08026518:
adds r0, r3, 0
adds r0, 0xF5
add r0, r8
ldrb r0, [r0]
cmp r0, 0xFF
bne _08026528
ldrb r4, [r2]
b _0802654E
_08026528:
mov r2, r9
ldr r1, [r2]
adds r0, r1, 0
adds r0, 0xF4
add r0, r8
ldrb r7, [r0]
adds r1, 0xF5
add r1, r8
ldrb r6, [r1]
bl Random
movs r1, 0x1
ands r1, r0
cmp r1, 0
bne _0802654A
adds r4, r7, 0
b _0802654E
_0802654A:
adds r4, r6, 0
adds r6, r7, 0
_0802654E:
mov r1, r9
ldr r0, [r1]
ldr r2, =0x000032eb
adds r0, r2
adds r0, r5
movs r1, 0x7
strb r1, [r0]
mov r1, r9
ldr r0, [r1]
adds r0, 0xC4
adds r0, r5
movs r1, 0x2
strb r1, [r0]
mov r2, r9
ldr r0, [r2]
adds r0, 0xA8
adds r0, r4
movs r1, 0x3
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xB8
adds r0, r5
strb r4, [r0]
ldr r1, [r2]
lsls r0, r4, 4
subs r0, r4
lsls r0, 2
adds r1, r0
ldr r2, =0x000031d0
adds r1, r2
movs r0, 0x1
strb r0, [r1]
mov r2, r9
ldr r1, [r2]
lsls r0, r6, 4
subs r0, r6
lsls r0, 2
adds r1, r0
ldr r0, =0x000031d4
adds r1, r0
movs r2, 0x1
strb r2, [r1]
mov r0, r9
ldr r1, [r0]
lsls r0, r4, 1
adds r1, 0x86
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
movs r0, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_8026F1C
movs r0, 0x1
bl sub_8027234
adds r0, r4, 0
bl sub_8026D1C
mov r1, r9
ldr r0, [r1]
adds r1, r0, 0
adds r1, 0xE8
adds r1, r5
ldr r2, =0x000032e0
adds r0, r2
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
mov r4, r9
ldr r0, [r4]
adds r0, r2
adds r0, r5
movs r1, 0x3
strb r1, [r0]
ldr r1, [r4]
adds r1, 0xF4
add r1, r8
ldrb r0, [r1]
movs r2, 0xFF
orrs r0, r2
strb r0, [r1]
ldr r1, [r4]
adds r1, 0xF5
add r1, r8
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
_08026602:
mov r0, r10
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r4, [sp, 0x4]
cmp r10, r4
bcs _08026614
b _08026450
_08026614:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8026324
thumb_func_start sub_8026634
sub_8026634: @ 8026634
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r3, r1, 24
lsls r2, 24
lsrs r6, r2, 24
movs r7, 0
ldr r2, =gUnknown_02022C98
ldr r1, [r2]
adds r0, r1, 0
adds r0, 0x24
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =0x000032e0
adds r1, r0
mov r12, r2
cmp r3, 0x2
beq _08026670
cmp r3, 0x2
bgt _08026676
cmp r3, 0x1
beq _08026674
b _08026676
.pool
_08026670:
movs r7, 0x1
b _08026676
_08026674:
movs r7, 0x2
_08026676:
adds r0, r1, 0
adds r0, 0xB
adds r0, r6
ldrb r0, [r0]
subs r0, 0x6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080266D4
ldr r0, =gUnknown_082F449C+0x113
lsls r1, r4, 1
adds r1, r4
adds r1, r7, r1
lsls r2, r5, 4
subs r2, r5
adds r1, r2
adds r1, r0
ldrb r1, [r1]
cmp r6, r1
bne _0802670A
mov r0, r12
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0xC4
adds r0, r6
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080266D0
lsls r0, r4, 4
subs r0, r4
lsls r0, 2
adds r0, r1, r0
ldr r1, =0x000031d4
adds r0, r1
movs r1, 0x1
strb r1, [r0]
b _0802670A
.pool
_080266D0:
movs r0, 0x1
b _0802670C
_080266D4:
ldr r0, =gUnknown_082F449C+0x113
lsls r1, r4, 1
adds r1, r4
adds r1, r7, r1
lsls r2, r5, 4
subs r2, r5
adds r1, r2
adds r1, r0
ldrb r1, [r1]
cmp r6, r1
bne _0802670A
mov r1, r12
ldr r0, [r1]
adds r0, 0xA8
adds r0, r4
movs r1, 0x4
strb r1, [r0]
mov r0, r12
ldr r1, [r0]
lsls r0, r4, 4
subs r0, r4
lsls r0, 2
adds r1, r0
ldr r0, =0x000031d4
adds r1, r0
movs r0, 0x1
strb r0, [r1]
_0802670A:
movs r0, 0
_0802670C:
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8026634
thumb_func_start sub_802671C
sub_802671C: @ 802671C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r2, =gUnknown_02022C98
ldr r4, [r2]
adds r0, r4, 0
adds r0, 0x44
ldrb r1, [r0]
adds r0, 0x4
ldrb r0, [r0]
mov r9, r0
movs r3, 0
mov r10, r3
movs r5, 0x90
lsls r5, 1
adds r0, r4, r5
str r3, [r0]
adds r5, r1, 0
mov r0, r9
subs r0, 0x1
cmp r5, r0
blt _0802674E
b _08026974
_0802674E:
mov r8, r2
_08026750:
mov r0, r8
ldr r4, [r0]
adds r0, r4, 0
adds r0, 0xC4
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x1
bls _08026762
b _0802686C
_08026762:
movs r1, 0x90
lsls r1, 1
adds r0, r4, r1
movs r2, 0x1
str r2, [r0]
ldr r1, =0x000032eb
adds r0, r4, r1
adds r6, r0, r5
ldrb r0, [r6]
cmp r0, 0x9
bls _080267FC
movs r7, 0
movs r0, 0xA
strb r0, [r6]
mov r1, r8
ldr r0, [r1]
adds r0, 0xC4
adds r0, r5
movs r1, 0x3
strb r1, [r0]
mov r1, r8
ldr r0, [r1]
movs r6, 0xA4
lsls r6, 1
adds r0, r6
adds r1, r0, r5
ldrb r0, [r1]
cmp r0, 0
bne _080267AC
strb r2, [r1]
ldr r2, =0x000032e0
adds r0, r4, r2
adds r0, r5
ldrb r0, [r0]
adds r0, 0x4A
bl PlaySE
_080267AC:
mov r0, r8
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bls _080267C2
mov r2, r10
cmp r2, 0x1
beq _080267C2
b _08026964
_080267C2:
movs r0, 0x1
mov r10, r0
adds r0, r1, r6
adds r0, r5
strb r7, [r0]
mov r1, r8
ldr r0, [r1]
adds r1, r0, 0
adds r1, 0x40
ldrb r0, [r1]
cmp r0, 0x9
bhi _080267DE
adds r0, 0x1
strb r0, [r1]
_080267DE:
movs r0, 0x3
adds r1, r5, 0
movs r2, 0
bl sub_8026F1C
movs r0, 0
bl sub_8027234
b _08026964
.pool
_080267FC:
adds r0, r5, 0
bl sub_8026D8C
mov r2, r8
ldr r7, [r2]
lsls r0, 24
lsrs r0, 24
adds r1, r7, 0
adds r1, 0x90
adds r1, r0
ldrb r0, [r1]
movs r1, 0x7
bl __udivsi3
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
bls _08026822
movs r3, 0x2
_08026822:
ldr r2, =gUnknown_082F7A88
ldr r0, =0x000032e0
adds r1, r4, r0
adds r1, r5
lsls r0, r3, 1
adds r0, r3
ldrb r1, [r1]
adds r0, r1
adds r0, r2
ldrb r2, [r0]
adds r1, r7, 0
adds r1, 0xD0
adds r1, r5
ldrb r0, [r1]
adds r0, 0x1
movs r3, 0
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, r2
bcc _0802685C
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
mov r1, r8
ldr r0, [r1]
adds r0, 0xD0
adds r0, r5
strb r3, [r0]
_0802685C:
bl sub_8026324
b _08026964
.pool
_0802686C:
cmp r0, 0x2
bne _080268F4
movs r2, 0x90
lsls r2, 1
adds r0, r4, r2
movs r6, 0x1
str r6, [r0]
adds r1, r4, 0
adds r1, 0xDC
adds r1, r5
ldrb r0, [r1]
adds r0, 0x1
movs r3, 0
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x13
bls _08026964
mov r0, r8
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xB8
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, r0
ldr r1, =0x000031d0
adds r2, r1
strb r3, [r2]
mov r2, r8
ldr r0, [r2]
adds r0, 0xDC
adds r0, r5
strb r3, [r0]
ldr r0, [r2]
adds r0, 0xD0
adds r0, r5
strb r3, [r0]
ldr r0, [r2]
adds r0, 0xC4
adds r0, r5
strb r3, [r0]
ldr r1, =0x000032eb
adds r0, r4, r1
adds r0, r5
strb r6, [r0]
adds r0, r5, 0
bl sub_8026D8C
lsls r0, 24
lsrs r0, 24
adds r1, r5, 0
bl sub_8026DB0
ldr r2, =0x000032e0
adds r1, r4, r2
adds r1, r5
strb r0, [r1]
b _08026964
.pool
_080268F4:
cmp r0, 0x3
bne _08026964
adds r1, r4, 0
adds r1, 0xDC
adds r1, r5
ldrb r0, [r1]
adds r0, 0x1
movs r2, 0
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x13
bls _08026964
mov r0, r8
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bhi _08026964
adds r0, r1, 0
adds r0, 0xDC
adds r0, r5
strb r2, [r0]
mov r1, r8
ldr r0, [r1]
adds r0, 0xD0
adds r0, r5
strb r2, [r0]
ldr r0, [r1]
adds r0, 0xC4
adds r0, r5
strb r2, [r0]
ldr r2, =0x000032eb
adds r0, r4, r2
adds r0, r5
movs r1, 0x1
strb r1, [r0]
mov r0, r8
ldr r1, [r0]
adds r1, 0xE8
adds r1, r5
subs r2, 0xB
adds r4, r2
adds r4, r5
ldrb r0, [r4]
strb r0, [r1]
adds r0, r5, 0
bl sub_8026D8C
lsls r0, 24
lsrs r0, 24
adds r1, r5, 0
bl sub_8026DB0
strb r0, [r4]
_08026964:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
mov r0, r9
subs r0, 0x1
cmp r5, r0
bge _08026974
b _08026750
_08026974:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_802671C
thumb_func_start sub_8026988
sub_8026988: @ 8026988
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x44
adds r0, 0x48
ldrb r0, [r0]
mov r8, r0
ldrb r6, [r1]
cmp r6, r8
bcs _08026A7A
ldr r0, =gUnknown_082F449C
mov r9, r0
_080269A8:
ldr r0, =gUnknown_02022C98
ldr r3, [r0]
adds r0, r3, 0
adds r0, 0x28
ldrb r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
ldr r2, =0x000031a0
adds r0, r2
adds r7, r3, r0
movs r0, 0xB
adds r2, r1, 0
muls r2, r0
adds r2, r6, r2
adds r3, 0x24
ldrb r1, [r3]
subs r1, 0x1
lsls r0, r1, 3
subs r0, r1
lsls r0, 3
subs r0, r1
adds r2, r0
add r2, r9
ldrb r4, [r2]
adds r0, r7, 0
adds r0, 0x1F
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _080269FC
adds r0, r6, 0
movs r1, 0
bl sub_8028BF8
b _08026A04
.pool
_080269FC:
adds r0, r6, 0
movs r1, 0x1
bl sub_8028BF8
_08026A04:
adds r0, r7, 0
adds r0, 0x1F
adds r5, r0, r4
ldrb r0, [r5]
cmp r0, 0x9
bls _08026A30
adds r0, r7, 0
adds r0, 0x14
adds r0, r4
ldrb r1, [r0]
adds r1, 0x3
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl sub_8028CA4
ldrb r1, [r5]
lsls r1, 25
movs r0, 0xFF
lsls r0, 24
adds r1, r0
b _08026A52
_08026A30:
adds r0, r7, 0
adds r0, 0x14
adds r3, r0, r4
ldrb r0, [r3]
cmp r0, 0x3
bne _08026A5C
movs r0, 0x7
strb r0, [r5]
adds r0, r6, 0
movs r1, 0x6
bl sub_8028CA4
ldrb r1, [r5]
lsls r1, 25
movs r2, 0xFF
lsls r2, 24
adds r1, r2
_08026A52:
lsrs r1, 24
adds r0, r6, 0
bl sub_8028C7C
b _08026A70
_08026A5C:
ldrb r1, [r3]
adds r0, r6, 0
bl sub_8028CA4
ldrb r1, [r5]
lsls r1, 25
lsrs r1, 24
adds r0, r6, 0
bl sub_8028C7C
_08026A70:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, r8
bcc _080269A8
_08026A7A:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8026988
thumb_func_start sub_8026A88
sub_8026A88: @ 8026A88
push {r4-r6,lr}
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
adds r0, 0x24
ldrb r5, [r0]
movs r4, 0
cmp r4, r5
bcs _08026ABA
adds r6, r1, 0
_08026A9A:
lsls r0, r4, 4
subs r0, r4
lsls r0, 2
ldr r1, [r6]
adds r0, r1
ldr r1, =0x000031cc
adds r0, r1
ldrb r1, [r0]
adds r0, r4, 0
bl sub_80286B4
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08026A9A
_08026ABA:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8026A88
thumb_func_start sub_8026AC8
sub_8026AC8: @ 8026AC8
push {r4,r5,lr}
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r5, [r0]
movs r4, 0
cmp r4, r5
bcs _08026AEA
_08026AD8:
adds r0, r4, 0
movs r1, 0x4
bl sub_80286B4
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08026AD8
_08026AEA:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8026AC8
thumb_func_start sub_8026AF4
sub_8026AF4: @ 8026AF4
push {lr}
bl sub_8026988
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bls _08026B10
bl sub_8026AC8
b _08026B14
.pool
_08026B10:
bl sub_8026A88
_08026B14:
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x40
ldrb r0, [r0]
bl sub_80288D4
pop {r0}
bx r0
.pool
thumb_func_end sub_8026AF4
thumb_func_start sub_8026B28
sub_8026B28: @ 8026B28
push {lr}
bl sub_8026988
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x9
bls _08026B44
bl sub_8026AC8
b _08026B48
.pool
_08026B44:
bl sub_8026A88
_08026B48:
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x40
ldrb r0, [r0]
bl sub_80288D4
pop {r0}
bx r0
.pool
thumb_func_end sub_8026B28
thumb_func_start sub_8026B5C
sub_8026B5C: @ 8026B5C
push {lr}
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
cmp r0, 0x4
bhi _08026BB4
lsls r0, 2
ldr r1, =_08026B78
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08026B78:
.4byte _08026B8C
.4byte _08026B94
.4byte _08026B9C
.4byte _08026BA4
.4byte _08026BAC
_08026B8C:
movs r0, 0x4
strb r0, [r3]
movs r0, 0x7
b _08026BB2
_08026B94:
movs r0, 0x3
strb r0, [r3]
movs r0, 0x8
b _08026BB2
_08026B9C:
movs r0, 0x2
strb r0, [r3]
movs r0, 0x9
b _08026BB2
_08026BA4:
movs r0, 0x1
strb r0, [r3]
movs r0, 0xA
b _08026BB2
_08026BAC:
movs r0, 0
strb r0, [r3]
movs r0, 0xB
_08026BB2:
strb r0, [r2]
_08026BB4:
pop {r0}
bx r0
thumb_func_end sub_8026B5C
thumb_func_start sub_8026BB8
sub_8026BB8: @ 8026BB8
push {r4-r6,lr}
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
adds r0, 0x24
ldrb r5, [r0]
movs r4, 0x1
cmp r4, r5
bcs _08026C1E
adds r6, r1, 0
_08026BCA:
ldr r0, [r6]
movs r1, 0xAC
lsls r1, 1
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _08026BEC
adds r0, r4, 0
bl sub_8027DFC
ldr r1, [r6]
movs r2, 0xAC
lsls r2, 1
adds r1, r2
adds r1, r4
strb r0, [r1]
_08026BEC:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08026BCA
cmp r4, r5
bcs _08026C1E
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
movs r2, 0xAC
lsls r2, 1
adds r1, r0, r2
_08026C04:
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0
bne _08026C14
movs r0, 0
b _08026C20
.pool
_08026C14:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08026C04
_08026C1E:
movs r0, 0x1
_08026C20:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8026BB8
thumb_func_start sub_8026C28
sub_8026C28: @ 8026C28
push {r4,lr}
movs r1, 0
ldr r4, =gUnknown_02022C98
movs r3, 0xAC
lsls r3, 1
movs r2, 0
_08026C34:
ldr r0, [r4]
adds r0, r3
adds r0, r1
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x4
bls _08026C34
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8026C28
thumb_func_start sub_8026C50
sub_8026C50: @ 8026C50
push {r4,lr}
ldr r3, =gUnknown_02022C98
ldr r1, [r3]
adds r2, r1, 0
adds r2, 0x40
ldrb r0, [r2]
cmp r0, 0x9
bls _08026C88
movs r4, 0x90
lsls r4, 1
adds r0, r1, r4
ldr r0, [r0]
cmp r0, 0
bne _08026C88
movs r0, 0xA
strb r0, [r2]
ldr r0, [r3]
movs r1, 0x96
lsls r1, 1
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _08026C88
movs r0, 0x1
b _08026C8A
.pool
_08026C88:
movs r0, 0
_08026C8A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8026C50
thumb_func_start sub_8026C90
sub_8026C90: @ 8026C90
push {r4-r6,lr}
ldr r4, =gUnknown_02022C98
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0x40
ldrb r0, [r2]
cmp r0, 0x9
bls _08026D14
adds r0, r1, 0
adds r0, 0x44
ldrb r3, [r0]
adds r0, 0x4
ldrb r5, [r0]
movs r0, 0xA
strb r0, [r2]
ldr r4, [r4]
mov r12, r4
movs r0, 0x96
lsls r0, 1
add r0, r12
ldr r0, [r0]
cmp r0, 0
beq _08026D14
adds r4, r3, 0
cmp r4, r5
bcs _08026D04
mov r0, r12
adds r0, 0x28
ldrb r3, [r0]
lsls r1, r3, 4
subs r1, r3
lsls r1, 2
ldr r6, =gUnknown_082F449C
subs r0, 0x4
ldrb r2, [r0]
subs r2, 0x1
add r1, r12
movs r0, 0xB
muls r3, r0
lsls r0, r2, 3
subs r0, r2
lsls r0, 3
subs r2, r0, r2
ldr r0, =0x000031bf
adds r1, r0
_08026CEA:
adds r0, r4, r3
adds r0, r2
adds r0, r6
ldrb r0, [r0]
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0xA
bne _08026D14
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08026CEA
_08026D04:
movs r0, 0x1
b _08026D16
.pool
_08026D14:
movs r0, 0
_08026D16:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8026C90
thumb_func_start sub_8026D1C
sub_8026D1C: @ 8026D1C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, =gUnknown_082F7A9C
mov r8, r0
ldr r0, =gUnknown_02022C98
ldr r6, [r0]
adds r0, r6, 0
adds r0, 0x90
adds r0, r5
mov r9, r0
ldrb r7, [r0]
adds r0, r7, 0
movs r1, 0x7
bl __umodsi3
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
add r4, r8
adds r0, r7, 0
movs r1, 0x7
bl __udivsi3
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldrb r4, [r4]
adds r0, r4
lsls r0, 24
lsls r5, 1
adds r6, 0x86
adds r6, r5
ldrh r1, [r6]
lsrs r0, 24
cmp r1, r0
bcc _08026D76
adds r0, r7, 0x1
mov r1, r9
strb r0, [r1]
_08026D76:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8026D1C
thumb_func_start sub_8026D8C
sub_8026D8C: @ 8026D8C
lsls r0, 24
lsrs r0, 24
ldr r3, =gUnknown_082F449C+0x1AC
ldr r1, =gUnknown_02022C98
ldr r1, [r1]
adds r1, 0x24
ldrb r1, [r1]
subs r1, 0x1
movs r2, 0xB
muls r1, r2
adds r0, r1
adds r0, r3
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_8026D8C
thumb_func_start sub_8026DB0
sub_8026DB0: @ 8026DB0
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r5, r1, 24
ldr r4, =gUnknown_02022C98
ldr r1, [r4]
adds r1, 0x24
ldrb r2, [r1]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r3, =gUnknown_082F449C+0x15E
lsls r1, r0, 1
adds r1, r0
lsls r0, r2, 4
subs r0, r2
adds r1, r0
adds r0, r1, r3
ldrb r0, [r0]
mov r12, r0
adds r0, r3, 0x1
adds r0, r1, r0
ldrb r7, [r0]
adds r3, 0x2
adds r1, r3
ldrb r1, [r1]
mov r8, r1
movs r3, 0
ldr r1, =gUnknown_082F449C+0x1E3
lsls r0, r2, 2
adds r2, r0, r2
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
beq _08026E18
adds r6, r1, 0
_08026DFE:
adds r0, r3, r2
adds r0, r6
ldrb r0, [r0]
cmp r5, r0
beq _08026E3C
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
adds r0, r3, r2
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _08026DFE
_08026E18:
ldr r0, [r4]
adds r0, 0x90
mov r1, r12
adds r2, r0, r1
adds r1, r0, r7
ldrb r0, [r2]
ldrb r3, [r1]
cmp r0, r3
bls _08026E46
adds r1, r0, 0
b _08026E48
.pool
_08026E3C:
ldr r0, [r4]
adds r0, 0x90
adds r0, r7
ldrb r0, [r0]
b _08026E5A
_08026E46:
ldrb r1, [r1]
_08026E48:
ldr r0, [r4]
adds r0, 0x90
mov r2, r8
adds r4, r0, r2
ldrb r0, [r4]
cmp r0, r1
bls _08026E58
adds r1, r0, 0
_08026E58:
adds r0, r1, 0
_08026E5A:
adds r1, r5, 0
bl sub_8026E70
lsls r0, 24
lsrs r0, 24
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8026DB0
thumb_func_start sub_8026E70
sub_8026E70: @ 8026E70
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_02022C98
ldr r2, [r2]
adds r2, 0xE8
adds r2, r1
ldrb r4, [r2]
movs r1, 0x7
bl __umodsi3
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
bhi _08026EDE
lsls r0, 2
ldr r1, =_08026EA4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08026EA4:
.4byte _08026EDE
.4byte _08026ED6
.4byte _08026EE2
.4byte _08026EC0
.4byte _08026EC6
.4byte _08026ECC
.4byte _08026ED2
_08026EC0:
cmp r4, 0
beq _08026ED6
b _08026EDE
_08026EC6:
cmp r4, 0
beq _08026EE2
b _08026EDE
_08026ECC:
cmp r4, 0x2
beq _08026ED6
b _08026EE2
_08026ED2:
cmp r4, 0
bne _08026EDA
_08026ED6:
movs r0, 0x1
b _08026EE4
_08026EDA:
cmp r4, 0x1
beq _08026EE2
_08026EDE:
movs r0, 0
b _08026EE4
_08026EE2:
movs r0, 0x2
_08026EE4:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8026E70
thumb_func_start sub_8026EEC
sub_8026EEC: @ 8026EEC
push {r4-r6,lr}
movs r6, 0
movs r5, 0
adds r4, r0, 0
b _08026EFE
_08026EF6:
ldrh r0, [r4, 0x6]
adds r6, r0
adds r4, 0xC
adds r5, 0x1
_08026EFE:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r5, r0
blt _08026EF6
cmp r6, 0xA
bgt _08026F12
movs r0, 0
b _08026F14
_08026F12:
movs r0, 0x1
_08026F14:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8026EEC
thumb_func_start sub_8026F1C
sub_8026F1C: @ 8026F1C
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r1, 24
lsrs r4, r1, 24
lsls r2, 24
lsrs r2, 24
ldr r6, =gUnknown_02022C98
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0x24
ldrb r5, [r0]
cmp r3, 0
bge _08026F3A
b _0802722C
_08026F3A:
cmp r3, 0x2
ble _08026F48
cmp r3, 0x3
beq _08026F78
b _0802722C
.pool
_08026F48:
ldr r3, =0x000031b4
adds r0, r1, r3
adds r0, r4
ldrb r4, [r0]
lsls r4, 1
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, r0
adds r0, r1, 0
adds r0, 0x4A
adds r0, r4
ldrh r0, [r0]
ldr r1, =0x00004e20
bl sub_8027A28
ldr r1, [r6]
adds r1, 0x4A
adds r1, r4
b _0802722A
.pool
_08026F78:
adds r0, r1, 0
adds r0, 0x4A
bl sub_8026EEC
cmp r0, 0
beq _08026F86
b _0802722C
_08026F86:
cmp r5, 0x3
bne _08026F8C
b _08027154
_08026F8C:
cmp r5, 0x3
bgt _08026F98
cmp r5, 0x2
bne _08026F96
b _080271E8
_08026F96:
b _0802722C
_08026F98:
cmp r5, 0x4
bne _08026F9E
b _08027090
_08026F9E:
cmp r5, 0x5
beq _08026FA4
b _0802722C
_08026FA4:
cmp r4, 0x9
bls _08026FAA
b _0802722C
_08026FAA:
lsls r0, r4, 2
ldr r1, =_08026FB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08026FB8:
.4byte _08026FE0
.4byte _08026FF8
.4byte _08027004
.4byte _0802701C
.4byte _08027028
.4byte _08027040
.4byte _0802704C
.4byte _08027060
.4byte _0802706C
.4byte _08027084
_08026FE0:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x68
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x74
b _08027226
.pool
_08026FF8:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x74
b _08027226
.pool
_08027004:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x74
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x80
b _08027226
.pool
_0802701C:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x80
b _08027226
.pool
_08027028:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x80
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x50
b _08027226
.pool
_08027040:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x50
b _08027226
.pool
_0802704C:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x50
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
b _08027224
.pool
_08027060:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08027224
.pool
_0802706C:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x5C
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x68
b _08027226
.pool
_08027084:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x68
b _08027226
.pool
_08027090:
subs r0, r4, 0x1
cmp r0, 0x7
bls _08027098
b _0802722C
_08027098:
lsls r0, 2
ldr r1, =_080270A8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080270A8:
.4byte _080270C8
.4byte _080270E0
.4byte _080270EC
.4byte _08027104
.4byte _08027110
.4byte _08027124
.4byte _08027130
.4byte _08027148
_080270C8:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x68
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x74
b _08027226
.pool
_080270E0:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x74
b _08027226
.pool
_080270EC:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x74
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x50
b _08027226
.pool
_08027104:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x50
b _08027226
.pool
_08027110:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x50
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
b _08027224
.pool
_08027124:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08027224
.pool
_08027130:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x5C
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x68
b _08027226
.pool
_08027148:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x68
b _08027226
.pool
_08027154:
subs r0, r4, 0x2
cmp r0, 0x5
bhi _0802722C
lsls r0, 2
ldr r1, =_08027168
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08027168:
.4byte _08027180
.4byte _08027198
.4byte _080271A4
.4byte _080271BC
.4byte _080271C8
.4byte _080271DC
_08027180:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x5C
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x68
b _08027226
.pool
_08027198:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x68
b _08027226
.pool
_080271A4:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x68
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x50
b _08027226
.pool
_080271BC:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x50
b _08027226
.pool
_080271C8:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x50
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
b _08027224
.pool
_080271DC:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
b _08027224
.pool
_080271E8:
cmp r4, 0x4
beq _0802720E
cmp r4, 0x4
bgt _080271F6
cmp r4, 0x3
beq _08027200
b _0802722C
_080271F6:
cmp r4, 0x5
beq _08027214
cmp r4, 0x6
beq _08027222
b _0802722C
_08027200:
ldr r1, [r6]
adds r2, r1, 0
adds r2, 0x50
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
b _08027224
_0802720E:
ldr r1, [r6]
adds r1, 0x50
b _08027226
_08027214:
ldr r1, [r6]
adds r2, r1, 0
adds r2, 0x50
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
b _08027224
_08027222:
ldr r1, [r6]
_08027224:
adds r1, 0x5C
_08027226:
ldrh r0, [r1]
adds r0, 0x1
_0802722A:
strh r0, [r1]
_0802722C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8026F1C
thumb_func_start sub_8027234
sub_8027234: @ 8027234
push {r4,r5,lr}
adds r1, r0, 0
ldr r4, =gUnknown_02022C98
ldr r3, [r4]
adds r0, r3, 0
adds r0, 0x24
ldrb r0, [r0]
cmp r0, 0x5
bne _0802729E
cmp r1, 0x1
bne _08027280
movs r5, 0x89
lsls r5, 1
adds r1, r3, r5
ldrh r0, [r1]
adds r2, r0, 0x1
strh r2, [r1]
movs r0, 0x8A
lsls r0, 1
adds r1, r3, r0
lsls r0, r2, 16
lsrs r0, 16
ldrh r3, [r1]
cmp r0, r3
bls _08027268
strh r2, [r1]
_08027268:
ldr r0, [r4]
adds r2, r0, r5
ldrh r0, [r2]
ldr r1, =0x0000270f
cmp r0, r1
bls _0802729E
strh r1, [r2]
b _0802729E
.pool
_08027280:
movs r2, 0x89
lsls r2, 1
adds r0, r3, r2
movs r5, 0x8A
lsls r5, 1
adds r1, r3, r5
ldrh r0, [r0]
ldrh r3, [r1]
cmp r0, r3
bls _08027296
strh r0, [r1]
_08027296:
ldr r0, [r4]
adds r0, r2
movs r1, 0
strh r1, [r0]
_0802729E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8027234
thumb_func_start sub_80272A4
sub_80272A4: @ 80272A4
push {r4,r5,lr}
movs r3, 0
ldr r2, =gUnknown_02022C98
ldr r0, [r2]
adds r0, 0x24
ldrb r0, [r0]
cmp r3, r0
bcs _080272DC
adds r5, r2, 0
movs r4, 0x8A
lsls r4, 1
_080272BA:
ldr r2, [r5]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r1, r2, 0
adds r1, 0x54
adds r1, r0
adds r0, r2, r4
ldrh r0, [r0]
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
adds r2, 0x24
ldrb r2, [r2]
cmp r3, r2
bcc _080272BA
_080272DC:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80272A4
thumb_func_start sub_80272E8
sub_80272E8: @ 80272E8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r5, 0
ldr r7, =gUnknown_02022C98
movs r4, 0
ldr r0, =0x000031bf
mov r10, r0
_080272FC:
movs r2, 0
lsls r6, r5, 4
lsls r1, r5, 1
mov r8, r1
lsls r0, r5, 3
mov r12, r0
adds r1, r5, 0x1
mov r9, r1
subs r0, r6, r5
lsls r3, r0, 2
_08027310:
ldr r0, [r7]
adds r1, r2, r3
add r0, r10
adds r0, r1
strb r4, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xA
bls _08027310
ldr r0, [r7]
subs r1, r6, r5
lsls r1, 2
adds r0, r1
ldr r2, =0x000031cc
adds r0, r2
strb r4, [r0]
ldr r0, [r7]
adds r0, r1
ldr r1, =0x000031d0
adds r0, r1
strb r4, [r0]
ldr r0, [r7]
adds r0, 0x90
adds r0, r5
strb r4, [r0]
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0x86
add r0, r8
strh r4, [r0]
add r1, r12
ldr r2, =0x00003308
adds r1, r2
strb r4, [r1]
ldr r2, [r7]
ldr r1, =0x0000330c
adds r0, r2, r1
add r0, r12
str r4, [r0]
mov r0, r8
adds r1, r0, r5
lsls r1, 2
adds r0, r2, 0
adds r0, 0x4A
adds r0, r1
strh r4, [r0]
adds r0, r2, 0
adds r0, 0x4C
adds r0, r1
strh r4, [r0]
adds r0, r2, 0
adds r0, 0x4E
adds r0, r1
strh r4, [r0]
adds r0, r2, 0
adds r0, 0x50
adds r0, r1
strh r4, [r0]
adds r0, r2, 0
adds r0, 0x52
adds r0, r1
strh r4, [r0]
adds r0, r2, 0
adds r0, 0x54
adds r0, r1
strh r4, [r0]
mov r1, r9
lsls r0, r1, 24
lsrs r5, r0, 24
cmp r5, 0x4
bls _080272FC
ldr r2, =gUnknown_02022C98
ldr r0, [r2]
movs r1, 0xAA
lsls r1, 1
adds r0, r1
movs r2, 0
strb r2, [r0]
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
movs r1, 0x89
lsls r1, 1
adds r3, r0, r1
movs r1, 0
strh r2, [r3]
adds r0, 0x40
strb r1, [r0]
bl sub_8026A88
bl sub_8026988
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80272E8
thumb_func_start sub_80273F0
sub_80273F0: @ 80273F0
push {r4,r5,lr}
movs r4, 0
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r0, [r0]
cmp r0, 0x4
beq _0802740C
cmp r0, 0x5
beq _08027410
b _08027412
.pool
_0802740C:
movs r4, 0x1
b _08027412
_08027410:
movs r4, 0x2
_08027412:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0xA
bl __umodsi3
lsls r0, 24
lsrs r0, 24
movs r3, 0
lsls r1, r4, 2
ldr r5, =gUnknown_02022C98
ldr r2, =gUnknown_082F7AA4
adds r1, r4
lsls r1, 1
adds r0, r1
adds r0, r2
ldrb r2, [r0]
_08027436:
ldr r1, [r5]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r1, 0x52
adds r1, r0
strh r2, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x4
bls _08027436
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80273F0
thumb_func_start sub_802745C
sub_802745C: @ 802745C
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_02022C98
ldr r2, [r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r0, r2, 0
adds r0, 0x4A
adds r0, r1
ldrh r3, [r0]
adds r0, r2, 0
adds r0, 0x4C
adds r0, r1
ldrh r0, [r0]
adds r2, 0x4E
adds r2, r1
adds r3, r0
ldrh r2, [r2]
adds r0, r3, r2
ldr r1, =0x0000270f
cmp r0, r1
bls _0802748E
adds r0, r1, 0
_0802748E:
pop {r1}
bx r1
.pool
thumb_func_end sub_802745C
thumb_func_start sub_802749C
sub_802749C: @ 802749C
push {r4-r6,lr}
ldr r5, =gUnknown_02022C98
ldr r0, [r5]
adds r0, 0x28
ldrb r0, [r0]
bl sub_802745C
ldr r1, =0x0000270f
bl sub_8027A38
adds r4, r0, 0
ldr r0, [r5]
adds r0, 0x28
ldrb r0, [r0]
bl sub_80276C0
ldr r1, =0x000f4236
bl sub_8027A38
adds r2, r0, 0
ldr r3, =gSaveBlock2Ptr
ldr r0, [r3]
movs r6, 0x83
lsls r6, 2
adds r1, r0, r6
ldr r0, [r1]
cmp r0, r2
bcs _080274D6
str r2, [r1]
_080274D6:
ldr r0, [r3]
movs r2, 0x84
lsls r2, 2
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, r4
bcs _080274E6
strh r4, [r1]
_080274E6:
ldr r0, [r3]
ldr r6, =0x00000212
adds r2, r0, r6
ldr r0, [r5]
movs r1, 0x8A
lsls r1, 1
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
cmp r0, r1
bcs _080274FE
strh r1, [r2]
_080274FE:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_802749C
thumb_func_start sub_8027518
sub_8027518: @ 8027518
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gUnknown_02022C98
ldr r0, [r1]
adds r0, 0x9B
ldrb r6, [r0]
movs r3, 0x3
adds r5, r1, 0
adds r4, r5, 0
_0802752C:
ldr r0, [r4]
adds r0, 0x98
adds r2, r0, r3
subs r1, r3, 0x1
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
lsls r1, 24
lsrs r3, r1, 24
cmp r3, 0
bne _0802752C
ldr r0, [r5]
adds r0, 0x98
strb r7, [r0]
adds r0, r6, 0
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8027518
thumb_func_start sub_8027554
sub_8027554: @ 8027554
push {r4,lr}
ldr r4, =gUnknown_02022C98
ldr r3, [r4]
adds r0, r3, 0
adds r0, 0x28
ldrb r1, [r0]
adds r0, 0x88
adds r2, r0, r1
ldrb r0, [r2]
cmp r0, 0
bne _080275FC
ldr r0, =gMain
ldrh r2, [r0, 0x2E]
movs r0, 0x40
ands r0, r2
cmp r0, 0
beq _08027594
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r3, r0
ldr r1, =0x000031cc
adds r0, r1
movs r1, 0x2
b _080275CA
.pool
_08027594:
movs r0, 0x20
ands r0, r2
cmp r0, 0
beq _080275B0
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r3, r0
ldr r1, =0x000031cc
adds r0, r1
movs r1, 0x3
b _080275CA
.pool
_080275B0:
movs r0, 0x10
ands r0, r2
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
beq _080275E8
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r3, r0
ldr r1, =0x000031cc
adds r0, r1
movs r1, 0x1
_080275CA:
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x28
adds r0, 0xB0
ldrb r1, [r1]
adds r0, r1
movs r1, 0x6
strb r1, [r0]
movs r0, 0xD4
bl PlaySE
b _08027600
.pool
_080275E8:
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r3, r0
ldr r1, =0x000031cc
adds r0, r1
strb r2, [r0]
b _08027600
.pool
_080275FC:
subs r0, 0x1
strb r0, [r2]
_08027600:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8027554
thumb_func_start sub_8027608
sub_8027608: @ 8027608
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x28
ldrb r2, [r0]
lsls r0, r2, 4
subs r0, r2
lsls r0, 2
adds r1, r0
ldr r0, =0x000031cc
adds r1, r0
movs r0, 0
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_8027608
thumb_func_start sub_802762C
sub_802762C: @ 802762C
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x28
ldrb r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, 0x52
adds r1, r0
ldrh r0, [r1]
adds r0, 0x85
lsls r0, 16
lsrs r0, 16
bx lr
.pool
thumb_func_end sub_802762C
thumb_func_start sub_8027650
sub_8027650: @ 8027650
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_8027650
thumb_func_start sub_8027660
sub_8027660: @ 8027660
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0802768C
ldr r0, =gUnknown_02022C98
lsls r1, r2, 4
subs r1, r2
lsls r1, 2
ldr r2, =0x000031a0
adds r1, r2
ldr r0, [r0]
b _08027694
.pool
_0802768C:
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
ldr r1, =gLinkPlayers + 8
_08027694:
adds r0, r1
pop {r1}
bx r1
.pool
thumb_func_end sub_8027660
thumb_func_start sub_80276A0
sub_80276A0: @ 80276A0
lsls r0, 24
lsrs r0, 24
lsls r1, 24
ldr r2, =gUnknown_02022C98
ldr r3, [r2]
lsrs r1, 23
lsls r2, r0, 1
adds r2, r0
lsls r2, 2
adds r1, r2
adds r3, 0x4A
adds r3, r1
ldrh r0, [r3]
bx lr
.pool
thumb_func_end sub_80276A0
thumb_func_start sub_80276C0
sub_80276C0: @ 80276C0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
movs r5, 0
movs r3, 0
ldr r0, =gUnknown_02022C98
mov r9, r0
ldr r2, =gUnknown_082F7B24
mov r10, r2
ldr r2, [r0]
lsls r1, r4, 1
adds r0, r1, r4
lsls r0, 2
str r0, [sp]
adds r6, r2, 0
adds r6, 0x4A
mov r12, r1
mov r8, r10
_080276EE:
lsls r1, r3, 1
ldr r7, [sp]
adds r0, r1, r7
adds r0, r6, r0
ldrh r2, [r0]
add r1, r8
movs r7, 0
ldrsh r0, [r1, r7]
muls r0, r2
adds r5, r0
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x2
bls _080276EE
mov r0, r9
ldr r1, [r0]
mov r2, r12
adds r0, r2, r4
lsls r0, 2
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
mov r3, r10
movs r7, 0x6
ldrsh r0, [r3, r7]
muls r0, r1
cmp r5, r0
bls _08027734
subs r0, r5, r0
b _08027736
.pool
_08027734:
movs r0, 0
_08027736:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80276C0
thumb_func_start sub_8027748
sub_8027748: @ 8027748
push {r4-r6,lr}
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r6, [r0]
movs r0, 0
bl sub_80276C0
adds r5, r0, 0
movs r4, 0x1
cmp r4, r6
bcs _08027776
_08027760:
adds r0, r4, 0
bl sub_80276C0
cmp r0, r5
bls _0802776C
adds r5, r0, 0
_0802776C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r6
bcc _08027760
_08027776:
ldr r1, =0x000f4236
adds r0, r5, 0
bl sub_8027A38
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_8027748
thumb_func_start sub_802778C
sub_802778C: @ 802778C
push {r4,r5,lr}
lsls r0, 24
ldr r1, =gUnknown_02022C98
ldr r2, [r1]
adds r1, r2, 0
adds r1, 0x24
ldrb r5, [r1]
lsrs r4, r0, 23
adds r2, 0x4A
adds r0, r2, r4
ldrh r3, [r0]
movs r1, 0
cmp r1, r5
bcs _080277C4
_080277A8:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r4, r0
adds r0, r2, r0
ldrh r0, [r0]
cmp r0, r3
bls _080277BA
adds r3, r0, 0
_080277BA:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r5
bcc _080277A8
_080277C4:
adds r0, r3, 0
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_802778C
thumb_func_start sub_80277D0
sub_80277D0: @ 80277D0
push {r4-r7,lr}
sub sp, 0x14
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0x1
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r5, [r0]
movs r4, 0
cmp r4, r5
bcs _080277FE
_080277E8:
adds r0, r4, 0
bl sub_80276C0
lsls r1, r4, 2
add r1, sp
str r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _080277E8
_080277FE:
lsls r7, 2
mov r12, r7
cmp r6, 0
beq _08027838
subs r7, r5, 0x1
_08027808:
movs r6, 0
movs r4, 0
cmp r6, r7
bge _08027834
adds r5, r7, 0
_08027812:
lsls r0, r4, 2
mov r2, sp
adds r1, r2, r0
adds r4, 0x1
lsls r0, r4, 2
adds r3, r2, r0
ldr r0, [r1]
ldr r2, [r3]
cmp r0, r2
bcs _0802782C
str r2, [r1]
str r0, [r3]
movs r6, 0x1
_0802782C:
lsls r0, r4, 24
lsrs r4, r0, 24
cmp r4, r5
blt _08027812
_08027834:
cmp r6, 0
bne _08027808
_08027838:
mov r0, sp
add r0, r12
ldr r0, [r0]
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_80277D0
thumb_func_start sub_802784C
sub_802784C: @ 802784C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r0, 0
mov r10, r0
mov r8, r0
mov r9, r0
ldr r6, =gUnknown_02022C98
ldr r0, [r6]
adds r0, 0x24
ldrb r5, [r0]
bl sub_8027748
bl sub_8027748
cmp r0, 0
bne _080278A0
movs r4, 0
cmp r9, r5
bcs _080278A0
adds r2, r6, 0
ldr r1, =0x00003308
mov r12, r1
movs r7, 0
movs r6, 0x4
ldr r3, =0x0000330c
_08027884:
ldr r0, [r2]
lsls r1, r4, 3
adds r0, r1
add r0, r12
strb r6, [r0]
ldr r0, [r2]
adds r0, r3
adds r0, r1
str r7, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08027884
_080278A0:
movs r4, 0
cmp r4, r5
bcs _080278CA
_080278A6:
adds r0, r4, 0
bl sub_80276C0
ldr r1, =0x000f4236
bl sub_8027A38
ldr r1, =gUnknown_02022C98
ldr r1, [r1]
lsls r2, r4, 3
ldr r3, =0x0000330c
adds r1, r3
adds r1, r2
str r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _080278A6
_080278CA:
mov r0, r10
bl sub_80277D0
adds r6, r0, 0
mov r3, r8
movs r4, 0
cmp r4, r5
bcs _08027916
ldr r7, =gUnknown_02022C98
mov r10, r7
_080278DE:
mov r0, r10
ldr r2, [r0]
lsls r1, r4, 3
ldr r7, =0x0000330c
adds r0, r2, r7
adds r0, r1
ldr r0, [r0]
cmp r6, r0
bne _0802790C
adds r0, r2, r1
ldr r1, =0x00003308
adds r0, r1
strb r3, [r0]
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
mov r0, r9
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
_0802790C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _080278DE
_08027916:
mov r10, r8
cmp r9, r5
bcc _080278CA
movs r0, 0
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_802784C
thumb_func_start sub_802793C
sub_802793C: @ 802793C
lsls r1, 24
ldr r2, =gUnknown_02022C98
ldr r2, [r2]
lsrs r1, 21
ldr r3, =0x00003308
adds r2, r3
adds r2, r1
ldr r1, [r2]
ldr r2, [r2, 0x4]
str r1, [r0]
str r2, [r0, 0x4]
bx lr
.pool
thumb_func_end sub_802793C
thumb_func_start sub_802795C
sub_802795C: @ 802795C
push {r4-r7,lr}
sub sp, 0x14
lsls r0, 24
lsrs r6, r0, 24
movs r7, 0
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r5, [r0]
mov r0, sp
movs r1, 0
movs r2, 0x14
bl memset
movs r4, 0
cmp r7, r5
bcs _08027994
_0802797E:
adds r0, r4, 0
bl sub_80276C0
lsls r1, r4, 2
add r1, sp
str r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _0802797E
_08027994:
lsls r0, r6, 2
add r0, sp
ldr r1, [r0]
movs r4, 0
_0802799C:
cmp r4, r6
beq _080279B0
lsls r0, r4, 2
add r0, sp
ldr r0, [r0]
cmp r1, r0
bcs _080279B0
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
_080279B0:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _0802799C
adds r0, r7, 0
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_802795C
thumb_func_start sub_80279C8
sub_80279C8: @ 80279C8
push {r4-r6,lr}
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x28
ldrb r4, [r0]
bl sub_802762C
lsls r0, 16
lsrs r5, r0, 16
adds r6, r5, 0
adds r0, r4, 0
bl sub_80276C0
adds r4, r0, 0
bl sub_8027748
cmp r4, r0
beq _080279F4
movs r0, 0x3
b _08027A22
.pool
_080279F4:
adds r0, r5, 0
movs r1, 0x1
bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
bne _08027A06
movs r0, 0x2
b _08027A22
_08027A06:
adds r0, r6, 0
movs r1, 0x1
bl AddBagItem
adds r0, r6, 0
movs r1, 0x1
bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
beq _08027A20
movs r0, 0
b _08027A22
_08027A20:
movs r0, 0x1
_08027A22:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80279C8
thumb_func_start sub_8027A28
sub_8027A28: @ 8027A28
push {lr}
adds r2, r0, 0
adds r0, r1, 0
cmp r2, r0
bcs _08027A34
adds r0, r2, 0x1
_08027A34:
pop {r1}
bx r1
thumb_func_end sub_8027A28
thumb_func_start sub_8027A38
sub_8027A38: @ 8027A38
push {lr}
adds r2, r0, 0
adds r0, r1, 0
cmp r2, r0
bcs _08027A44
adds r0, r2, 0
_08027A44:
pop {r1}
bx r1
thumb_func_end sub_8027A38
thumb_func_start sub_8027A48
sub_8027A48: @ 8027A48
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_02022C98
ldr r1, [r1]
adds r1, 0x34
adds r1, r0
ldrb r0, [r1]
bx lr
.pool
thumb_func_end sub_8027A48
thumb_func_start sub_8027A5C
sub_8027A5C: @ 8027A5C
push {r4-r6,lr}
movs r5, 0
ldr r6, =gSpecialVar_Result
_08027A62:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _08027A94
adds r0, r4, 0
movs r1, 0x41
bl GetMonData
cmp r0, 0x55
bne _08027A94
movs r0, 0x1
strh r0, [r6]
b _08027AA0
.pool
_08027A94:
adds r5, 0x1
cmp r5, 0x5
ble _08027A62
ldr r1, =gSpecialVar_Result
movs r0, 0
strh r0, [r1]
_08027AA0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8027A5C
thumb_func_start sub_8027AAC
sub_8027AAC: @ 8027AAC
push {r4,lr}
ldr r4, =sub_8027ACC
adds r0, r4, 0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8027AAC
thumb_func_start sub_8027ACC
sub_8027ACC: @ 8027ACC
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r7, r0, r1
movs r1, 0
ldrsh r0, [r7, r1]
cmp r0, 0x1
beq _08027B94
cmp r0, 0x1
bgt _08027AF4
cmp r0, 0
beq _08027AFE
b _08027BE2
.pool
_08027AF4:
cmp r0, 0x2
beq _08027BA0
cmp r0, 0x3
beq _08027BC8
b _08027BE2
_08027AFE:
ldr r0, =gUnknown_082F7B2C
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
ldr r1, =gText_BerryPickingRecords
movs r0, 0x1
movs r2, 0
bl GetStringWidth
adds r4, r0, 0
movs r6, 0
ldr r5, =gUnknown_082F7B34
_08027B18:
ldr r1, [r5]
movs r0, 0x1
movs r2, 0
bl GetStringWidth
adds r0, 0x32
cmp r0, r4
ble _08027B2A
adds r4, r0, 0
_08027B2A:
adds r5, 0x4
adds r6, 0x1
cmp r6, 0x2
bls _08027B18
adds r0, r4, 0x7
cmp r0, 0
bge _08027B3A
adds r0, 0x7
_08027B3A:
asrs r4, r0, 3
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _08027B46
adds r4, 0x1
_08027B46:
movs r1, 0x1E
subs r1, r4
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
lsls r1, 24
lsrs r1, 16
ldr r2, =0xffff00ff
ldr r0, [sp]
ands r0, r2
orrs r0, r1
lsls r2, r4, 24
ldr r1, =0x00ffffff
ands r0, r1
orrs r0, r2
str r0, [sp]
mov r0, sp
bl AddWindow
strh r0, [r7, 0x2]
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
bl sub_8027BEC
ldrb r0, [r7, 0x2]
movs r1, 0x3
b _08027BB6
.pool
_08027B94:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08027BE2
b _08027BBA
_08027BA0:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08027BE2
ldrb r0, [r7, 0x2]
bl rbox_fill_rectangle
ldrb r0, [r7, 0x2]
movs r1, 0x1
_08027BB6:
bl CopyWindowToVram
_08027BBA:
ldrh r0, [r7]
adds r0, 0x1
strh r0, [r7]
b _08027BE2
.pool
_08027BC8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08027BE2
ldrb r0, [r7, 0x2]
bl RemoveWindow
adds r0, r4, 0
bl DestroyTask
bl EnableBothScriptContexts
_08027BE2:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8027ACC
thumb_func_start sub_8027BEC
sub_8027BEC: @ 8027BEC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
str r1, [sp, 0x18]
lsls r0, 24
lsrs r7, r0, 24
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
movs r2, 0x84
lsls r2, 2
adds r0, r1, r2
ldrh r0, [r0]
str r0, [sp, 0xC]
subs r2, 0x4
adds r0, r1, r2
ldr r0, [r0]
str r0, [sp, 0x10]
ldr r0, =0x00000212
adds r1, r0
ldrh r0, [r1]
str r0, [sp, 0x14]
ldr r4, =0x0000021d
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0xD0
bl LoadUserWindowBorderGfx_
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0xD
bl sub_8098858
adds r0, r7, 0
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r4, =gText_BerryPickingRecords
ldr r0, [sp, 0x18]
lsls r2, r0, 3
movs r0, 0x1
adds r1, r4, 0
bl GetStringCenterAlignXOffset
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x1
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x1
adds r2, r4, 0
bl AddTextPrinterParameterized
movs r6, 0
ldr r2, =gStringVar1
mov r8, r2
movs r0, 0xFF
mov r10, r0
mov r9, r6
mov r2, sp
adds r2, 0xC
str r2, [sp, 0x1C]
_08027C76:
lsls r4, r6, 2
ldr r0, [sp, 0x1C]
ldm r0!, {r1}
str r0, [sp, 0x1C]
ldr r0, =gUnknown_082F7B40
adds r0, r6, r0
ldrb r3, [r0]
mov r0, r8
movs r2, 0
bl ConvertIntToDecimalStringN
movs r0, 0x1
mov r1, r8
movs r2, 0x1
negs r2, r2
bl GetStringWidth
adds r5, r0, 0
ldr r0, =gUnknown_082F7B34
adds r4, r0
ldr r2, [r4]
ldr r0, =gUnknown_082F7B44
lsls r4, r6, 1
adds r0, r4, r0
ldrb r0, [r0]
str r0, [sp]
mov r0, r10
str r0, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
ldr r2, [sp, 0x18]
lsls r3, r2, 3
subs r3, r5
lsls r3, 24
lsrs r3, 24
ldr r0, =gUnknown_082F7B4A
adds r4, r0
ldrb r0, [r4]
str r0, [sp]
mov r0, r10
str r0, [sp, 0x4]
mov r2, r9
str r2, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x1
mov r2, r8
bl AddTextPrinterParameterized
adds r6, 0x1
cmp r6, 0x2
ble _08027C76
adds r0, r7, 0
bl PutWindowTilemap
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8027BEC
thumb_func_start sub_8027D20
sub_8027D20: @ 8027D20
push {lr}
bl GetLinkPlayerCount
ldr r1, =gUnknown_02022C98
ldr r1, [r1]
adds r1, 0x24
strb r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end sub_8027D20
thumb_func_start sub_8027D38
sub_8027D38: @ 8027D38
push {r4-r7,lr}
ldr r0, =gUnknown_02022C98
ldr r0, [r0]
adds r0, 0x24
ldrb r4, [r0]
cmp r4, 0x4
bhi _08027D66
ldr r5, =gUnknown_082F7B90
_08027D48:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
ldr r1, =gLinkPlayers + 8
adds r0, r1
lsls r1, r4, 2
adds r1, r5
ldr r1, [r1]
bl StringCopy
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _08027D48
_08027D66:
ldr r0, =gUnknown_02022C98
ldr r1, [r0]
adds r1, 0x24
movs r2, 0x5
strb r2, [r1]
movs r1, 0
mov r12, r0
_08027D74:
movs r4, 0
mov r2, r12
ldr r0, [r2]
adds r0, 0x24
adds r5, r1, 0x1
ldrb r0, [r0]
cmp r4, r0
bcs _08027DB2
ldr r7, =gUnknown_02022C98
lsls r3, r1, 1
ldr r6, =gUnknown_082F7B50
_08027D8A:
ldr r2, [r7]
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r3, r0
adds r1, r2, 0
adds r1, 0x4A
adds r1, r0
lsls r0, r4, 3
adds r0, r3, r0
adds r0, r6
ldrh r0, [r0]
strh r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r2, 0x24
ldrb r2, [r2]
cmp r4, r2
bcc _08027D8A
_08027DB2:
lsls r0, r5, 24
lsrs r1, r0, 24
cmp r1, 0x3
bls _08027D74
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8027D38
thumb_func_start sub_8027DD0
sub_8027DD0: @ 8027DD0
push {lr}
sub sp, 0x8
ldr r3, =0xffffff00
ldr r1, [sp]
ands r1, r3
movs r2, 0x1
orrs r1, r2
str r1, [sp]
lsls r0, 24
lsrs r0, 24
ldr r1, [sp, 0x4]
ands r1, r3
orrs r1, r0
str r1, [sp, 0x4]
mov r0, sp
bl sub_800FE50
add sp, 0x8
pop {r0}
bx r0
.pool
thumb_func_end sub_8027DD0
thumb_func_start sub_8027DFC
sub_8027DFC: @ 8027DFC
push {lr}
adds r2, r0, 0
ldr r3, =gRecvCmds
ldrh r0, [r3]
movs r1, 0xFF
lsls r1, 8
ands r1, r0
movs r0, 0xBC
lsls r0, 6
cmp r1, r0
bne _08027E1E
lsls r0, r2, 4
adds r1, r3, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0x1
beq _08027E28
_08027E1E:
movs r0, 0
b _08027E2A
.pool
_08027E28:
ldrb r0, [r1, 0x4]
_08027E2A:
pop {r1}
bx r1
thumb_func_end sub_8027DFC
thumb_func_start sub_8027E30
sub_8027E30: @ 8027E30
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
ldr r4, [sp, 0x48]
lsls r4, 24
str r4, [sp, 0x1C]
movs r4, 0x14
adds r4, r0
mov r9, r4
mov r5, sp
movs r4, 0x2
strb r4, [r5]
mov r10, sp
mov r5, r9
ldrb r4, [r5, 0xB]
movs r7, 0xF
adds r5, r7, 0
ands r5, r4
mov r6, r10
ldrb r6, [r6, 0x1]
mov r8, r6
movs r4, 0x10
negs r4, r4
mov r6, r8
ands r4, r6
orrs r4, r5
mov r5, r10
strb r4, [r5, 0x1]
mov r8, sp
mov r6, r9
ldrb r5, [r6, 0xC]
lsls r5, 4
ands r4, r7
orrs r4, r5
mov r5, r8
strb r4, [r5, 0x1]
ldrb r5, [r6, 0xD]
movs r6, 0xF
ands r5, r6
mov r4, r10
ldrb r4, [r4, 0x2]
mov r8, r4
movs r4, 0x10
negs r4, r4
mov r6, r8
ands r4, r6
orrs r4, r5
mov r5, r10
strb r4, [r5, 0x2]
mov r8, sp
mov r6, r9
ldrb r5, [r6, 0xE]
lsls r5, 4
ands r4, r7
orrs r4, r5
mov r5, r8
strb r4, [r5, 0x2]
ldrb r5, [r6, 0xF]
movs r6, 0xF
ands r5, r6
mov r4, r10
ldrb r4, [r4, 0x3]
mov r8, r4
movs r4, 0x10
negs r4, r4
mov r6, r8
ands r4, r6
orrs r4, r5
mov r5, r10
strb r4, [r5, 0x3]
mov r8, sp
mov r6, r9
ldrb r5, [r6, 0x10]
lsls r5, 4
ands r4, r7
orrs r4, r5
mov r5, r8
strb r4, [r5, 0x3]
ldrb r5, [r6, 0x11]
movs r6, 0xF
ands r5, r6
mov r4, r10
ldrb r4, [r4, 0x4]
mov r8, r4
movs r4, 0x10
negs r4, r4
mov r6, r8
ands r4, r6
orrs r4, r5
mov r5, r10
strb r4, [r5, 0x4]
mov r8, sp
mov r6, r9
ldrb r5, [r6, 0x12]
lsls r5, 4
ands r4, r7
orrs r4, r5
mov r5, r8
strb r4, [r5, 0x4]
ldrb r4, [r6, 0x13]
movs r6, 0xF
ands r4, r6
mov r6, r8
ldrb r5, [r6, 0x5]
movs r6, 0x10
negs r6, r6
ands r6, r5
orrs r6, r4
str r6, [sp, 0xC]
mov r4, r8
strb r6, [r4, 0x5]
mov r5, sp
mov r6, r9
ldrb r4, [r6, 0x14]
lsls r4, 4
ldr r6, [sp, 0xC]
ands r6, r7
orrs r6, r4
strb r6, [r5, 0x5]
mov r7, sp
movs r4, 0x3
mov r8, r4
ldrb r0, [r0, 0x14]
mov r5, r8
ands r0, r5
ldrb r5, [r7, 0x6]
movs r6, 0x4
negs r6, r6
mov r10, r6
mov r4, r10
ands r4, r5
orrs r4, r0
strb r4, [r7, 0x6]
mov r5, r9
ldrb r0, [r5, 0x1]
mov r6, r8
ands r0, r6
lsls r0, 2
movs r5, 0xD
negs r5, r5
ands r5, r4
orrs r5, r0
strb r5, [r7, 0x6]
mov r0, r9
ldrb r4, [r0, 0x2]
ands r4, r6
lsls r4, 4
movs r0, 0x31
negs r0, r0
ands r0, r5
orrs r0, r4
strb r0, [r7, 0x6]
mov r5, sp
mov r6, r9
ldrb r4, [r6, 0x3]
lsls r4, 6
movs r6, 0x3F
ands r0, r6
orrs r0, r4
strb r0, [r5, 0x6]
mov r4, r9
ldrb r0, [r4, 0x4]
mov r5, r8
ands r0, r5
ldrb r5, [r7, 0x7]
mov r4, r10
ands r4, r5
orrs r4, r0
strb r4, [r7, 0x7]
mov r6, r9
ldrb r0, [r6, 0x5]
mov r5, r8
ands r0, r5
lsls r0, 2
movs r5, 0xD
negs r5, r5
ands r5, r4
orrs r5, r0
strb r5, [r7, 0x7]
ldrb r4, [r6, 0x6]
mov r6, r8
ands r4, r6
lsls r4, 4
movs r0, 0x31
negs r0, r0
ands r0, r5
orrs r0, r4
strb r0, [r7, 0x7]
mov r5, sp
mov r6, r9
ldrb r4, [r6, 0x7]
lsls r4, 6
movs r6, 0x3F
ands r0, r6
orrs r0, r4
strb r0, [r5, 0x7]
mov r8, sp
mov r0, r9
ldrb r4, [r0, 0x8]
movs r7, 0x3
adds r0, r7, 0
ands r0, r4
mov r4, r8
ldrb r5, [r4, 0x8]
mov r4, r10
ands r4, r5
orrs r4, r0
mov r5, r8
strb r4, [r5, 0x8]
mov r6, r9
ldrb r5, [r6, 0x9]
adds r0, r7, 0
ands r0, r5
lsls r0, 2
movs r5, 0xD
negs r5, r5
ands r5, r4
orrs r5, r0
mov r0, r8
strb r5, [r0, 0x8]
ldrb r0, [r1]
adds r4, r7, 0
ands r4, r0
lsls r4, 4
movs r0, 0x31
negs r0, r0
ands r0, r5
orrs r0, r4
mov r4, r8
strb r0, [r4, 0x8]
mov r5, sp
ldrb r4, [r2]
lsls r4, 6
movs r6, 0x3F
ands r0, r6
orrs r0, r4
strb r0, [r5, 0x8]
ldrb r4, [r3]
adds r0, r7, 0
ands r0, r4
ldrb r4, [r5, 0x9]
mov r6, r10
ands r6, r4
orrs r6, r0
mov r10, r6
strb r6, [r5, 0x9]
ldr r0, [sp, 0x40]
ldrb r4, [r0]
adds r0, r7, 0
ands r0, r4
lsls r0, 2
movs r4, 0xD
negs r4, r4
ands r6, r4
orrs r6, r0
str r6, [sp, 0x10]
strb r6, [r5, 0x9]
mov r4, sp
ldr r5, [sp, 0x44]
ldrb r0, [r5]
adds r6, r7, 0
ands r6, r0
lsls r0, r6, 4
subs r7, 0x34
ldr r5, [sp, 0x10]
ands r7, r5
orrs r7, r0
strb r7, [r4, 0x9]
mov r5, sp
ldrb r0, [r1, 0x4]
movs r6, 0x1
mov r12, r6
mov r4, r12
ands r4, r0
lsls r4, 6
movs r0, 0x41
negs r0, r0
mov r10, r0
ands r0, r7
orrs r0, r4
strb r0, [r5, 0x9]
ldrb r4, [r2, 0x4]
lsls r4, 7
movs r5, 0x7F
ands r0, r5
orrs r0, r4
mov r4, r8
strb r0, [r4, 0x9]
ldrb r4, [r3, 0x4]
mov r0, r12
ands r0, r4
mov r5, r8
ldrb r4, [r5, 0xA]
movs r7, 0x2
negs r7, r7
adds r5, r7, 0
ands r5, r4
orrs r5, r0
mov r6, r8
strb r5, [r6, 0xA]
mov r9, sp
ldr r4, [sp, 0x40]
ldrb r0, [r4, 0x4]
mov r4, r12
ands r4, r0
lsls r4, 1
movs r6, 0x3
negs r6, r6
mov r8, r6
mov r0, r8
ands r0, r5
orrs r0, r4
mov r4, r9
strb r0, [r4, 0xA]
ldr r6, [sp, 0x44]
ldrb r5, [r6, 0x4]
mov r4, r12
ands r4, r5
lsls r4, 2
movs r5, 0x5
negs r5, r5
ands r0, r5
orrs r0, r4
mov r4, r9
strb r0, [r4, 0xA]
mov r4, sp
ldrb r1, [r1, 0x8]
mov r0, r12
ands r0, r1
lsls r0, 2
ldrb r1, [r4, 0xB]
ands r5, r1
orrs r5, r0
strb r5, [r4, 0xB]
ldrb r1, [r2, 0x8]
mov r0, r12
ands r0, r1
lsls r0, 3
movs r1, 0x9
negs r1, r1
ands r1, r5
orrs r1, r0
strb r1, [r4, 0xB]
ldrb r2, [r3, 0x8]
mov r0, r12
ands r0, r2
lsls r0, 4
movs r2, 0x11
negs r2, r2
ands r2, r1
orrs r2, r0
strb r2, [r4, 0xB]
mov r3, sp
ldr r5, [sp, 0x40]
ldrb r0, [r5, 0x8]
mov r1, r12
ands r1, r0
lsls r1, 5
movs r0, 0x21
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3, 0xB]
mov r2, sp
ldrb r1, [r6, 0x8]
mov r6, r12
ands r6, r1
lsls r1, r6, 6
mov r3, r10
ands r0, r3
orrs r0, r1
strb r0, [r2, 0xB]
ldr r4, [sp, 0x1C]
lsrs r3, r4, 21
ldrb r1, [r2, 0xA]
movs r0, 0x7
ands r0, r1
orrs r0, r3
strb r0, [r2, 0xA]
mov r1, sp
ldr r5, [sp, 0x4C]
movs r6, 0x1
ands r5, r6
lsls r2, r5, 1
ldrb r0, [r1, 0xB]
mov r3, r8
ands r3, r0
orrs r3, r2
mov r8, r3
strb r3, [r1, 0xB]
mov r0, sp
ldr r4, [sp, 0x50]
ands r4, r6
mov r5, r8
ands r5, r7
orrs r5, r4
strb r5, [r0, 0xB]
bl sub_800FE50
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8027E30
thumb_func_start sub_8028164
sub_8028164: @ 8028164
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r1, 0
adds r5, r2, 0
adds r6, r3, 0
ldr r0, [sp, 0x1C]
mov r12, r0
ldr r1, [sp, 0x20]
mov r8, r1
ldr r0, [sp, 0x24]
mov r9, r0
adds r2, r7, 0
adds r2, 0x14
ldr r4, =gRecvCmds
ldrh r0, [r4]
movs r1, 0xFF
lsls r1, 8
ands r1, r0
movs r0, 0xBC
lsls r0, 6
cmp r1, r0
bne _0802819C
adds r3, r4, 0x2
ldrb r0, [r4, 0x2]
cmp r0, 0x2
beq _080281A4
_0802819C:
movs r0, 0
b _080282DE
.pool
_080281A4:
ldrb r0, [r3, 0x1]
lsls r0, 28
lsrs r0, 28
strb r0, [r2, 0xB]
ldrb r0, [r3, 0x1]
lsrs r0, 4
strb r0, [r2, 0xC]
ldrb r0, [r3, 0x2]
lsls r0, 28
lsrs r0, 28
strb r0, [r2, 0xD]
ldrb r0, [r3, 0x2]
lsrs r0, 4
strb r0, [r2, 0xE]
ldrb r0, [r3, 0x3]
lsls r0, 28
lsrs r0, 28
strb r0, [r2, 0xF]
ldrb r0, [r3, 0x3]
lsrs r0, 4
strb r0, [r2, 0x10]
ldrb r0, [r3, 0x4]
lsls r0, 28
lsrs r0, 28
strb r0, [r2, 0x11]
ldrb r0, [r3, 0x4]
lsrs r0, 4
strb r0, [r2, 0x12]
ldrb r0, [r3, 0x5]
lsls r0, 28
lsrs r0, 28
strb r0, [r2, 0x13]
ldrb r0, [r3, 0x5]
lsrs r0, 4
strb r0, [r2, 0x14]
ldrb r0, [r3, 0x1]
lsls r0, 28
lsrs r0, 28
strb r0, [r2, 0x15]
ldrb r0, [r3, 0x6]
lsls r0, 30
lsrs r0, 30
strb r0, [r7, 0x14]
ldrb r0, [r3, 0x6]
lsls r0, 28
lsrs r0, 30
strb r0, [r2, 0x1]
ldrb r0, [r3, 0x6]
lsls r0, 26
lsrs r0, 30
strb r0, [r2, 0x2]
ldrb r0, [r3, 0x6]
lsrs r0, 6
strb r0, [r2, 0x3]
ldrb r0, [r3, 0x7]
lsls r0, 30
lsrs r0, 30
strb r0, [r2, 0x4]
ldrb r0, [r3, 0x7]
lsls r0, 28
lsrs r0, 30
strb r0, [r2, 0x5]
ldrb r0, [r3, 0x7]
lsls r0, 26
lsrs r0, 30
strb r0, [r2, 0x6]
ldrb r0, [r3, 0x7]
lsrs r0, 6
strb r0, [r2, 0x7]
ldrb r0, [r3, 0x8]
lsls r0, 30
lsrs r0, 30
strb r0, [r2, 0x8]
ldrb r0, [r3, 0x8]
lsls r0, 28
lsrs r0, 30
strb r0, [r2, 0x9]
ldrb r0, [r3, 0x6]
lsls r0, 30
lsrs r0, 30
strb r0, [r2, 0xA]
ldrb r0, [r3, 0x8]
lsls r0, 26
lsrs r0, 30
strb r0, [r5]
ldrb r0, [r3, 0x9]
lsls r0, 25
lsrs r0, 31
strb r0, [r5, 0x4]
ldrb r0, [r3, 0xB]
lsls r0, 29
lsrs r0, 31
strb r0, [r5, 0x8]
ldrb r0, [r3, 0x8]
lsrs r0, 6
strb r0, [r6]
ldrb r0, [r3, 0x9]
lsrs r0, 7
strb r0, [r6, 0x4]
ldrb r0, [r3, 0xB]
lsls r0, 28
lsrs r0, 31
strb r0, [r6, 0x8]
ldrb r0, [r3, 0x9]
lsls r0, 30
lsrs r0, 30
mov r1, r12
strb r0, [r1]
ldrb r0, [r3, 0xA]
lsls r0, 31
lsrs r0, 31
strb r0, [r1, 0x4]
ldrb r0, [r3, 0xB]
lsls r0, 27
lsrs r0, 31
strb r0, [r1, 0x8]
ldrb r0, [r3, 0x9]
lsls r0, 28
lsrs r0, 30
mov r1, r8
strb r0, [r1]
ldrb r0, [r3, 0xA]
lsls r0, 30
lsrs r0, 31
strb r0, [r1, 0x4]
ldrb r0, [r3, 0xB]
lsls r0, 26
lsrs r0, 31
strb r0, [r1, 0x8]
ldrb r0, [r3, 0x9]
lsls r0, 26
lsrs r0, 30
mov r1, r9
strb r0, [r1]
ldrb r0, [r3, 0xA]
lsls r0, 29
lsrs r0, 31
strb r0, [r1, 0x4]
ldrb r0, [r3, 0xB]
lsls r0, 25
lsrs r0, 31
strb r0, [r1, 0x8]
ldrb r0, [r3, 0xA]
lsrs r0, 3
ldr r1, [sp, 0x28]
strb r0, [r1]
ldrb r0, [r3, 0xB]
lsls r0, 30
lsrs r0, 31
ldr r1, [sp, 0x2C]
str r0, [r1]
ldrb r0, [r3, 0xB]
lsls r0, 31
lsrs r0, 31
ldr r1, [sp, 0x30]
str r0, [r1]
movs r0, 0x1
_080282DE:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8028164
thumb_func_start sub_80282EC
sub_80282EC: @ 80282EC
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
ldr r3, =0xffffff00
ldr r1, [sp]
ands r1, r3
movs r2, 0x3
orrs r1, r2
str r1, [sp]
ldr r1, [sp, 0x4]
ands r1, r3
orrs r1, r0
str r1, [sp, 0x4]
mov r0, sp
bl sub_800FE50
add sp, 0x8
pop {r0}
bx r0
.pool
thumb_func_end sub_80282EC
thumb_func_start sub_8028318
sub_8028318: @ 8028318
push {r4,lr}
adds r2, r0, 0
adds r4, r1, 0
ldr r3, =gRecvCmds
ldrh r0, [r3]
movs r1, 0xFF
lsls r1, 8
ands r1, r0
movs r0, 0xBC
lsls r0, 6
cmp r1, r0
bne _0802833C
lsls r0, r2, 4
adds r1, r3, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0x3
beq _08028344
_0802833C:
movs r0, 0
b _0802834A
.pool
_08028344:
ldrb r0, [r1, 0x4]
strb r0, [r4]
movs r0, 0x1
_0802834A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8028318
thumb_func_start sub_8028350
sub_8028350: @ 8028350
push {lr}
sub sp, 0x8
ldr r2, =0xffffff00
ldr r1, [sp]
ands r1, r2
movs r2, 0x4
orrs r1, r2
str r1, [sp]
str r0, [sp, 0x4]
mov r0, sp
bl sub_800FE50
add sp, 0x8
pop {r0}
bx r0
.pool
thumb_func_end sub_8028350
thumb_func_start sub_8028374
sub_8028374: @ 8028374
push {lr}
adds r2, r0, 0
ldr r3, =gRecvCmds
ldrh r0, [r3]
movs r1, 0xFF
lsls r1, 8
ands r1, r0
movs r0, 0xBC
lsls r0, 6
cmp r1, r0
bne _08028396
lsls r0, r2, 4
adds r1, r3, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0x4
beq _080283A0
_08028396:
movs r0, 0
b _080283A2
.pool
_080283A0:
ldr r0, [r1, 0x4]
_080283A2:
pop {r1}
bx r1
thumb_func_end sub_8028374
thumb_func_start sub_80283A8
sub_80283A8: @ 80283A8
push {r4,r5,lr}
sub sp, 0x18
movs r5, 0xC0
lsls r5, 6
adds r0, r5, 0
bl AllocZeroed
adds r4, r0, 0
ldr r0, =gUnknown_082FB2D8
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x8]
str r1, [sp, 0xC]
ldr r0, =gUnknown_082FB2E0
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x10]
str r1, [sp, 0x14]
ldr r0, =gDodrioBerryPkmnGfx
adds r1, r4, 0
bl LZ77UnCompWram
cmp r4, 0
beq _080283E8
str r4, [sp]
str r5, [sp, 0x4]
mov r0, sp
bl LoadSpriteSheet
adds r0, r4, 0
bl Free
_080283E8:
add r0, sp, 0x8
bl LoadSpritePalette
add r0, sp, 0x10
bl LoadSpritePalette
add sp, 0x18
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80283A8
thumb_func_start sub_8028408
sub_8028408: @ 8028408
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x30
adds r6, r1, 0
mov r8, r2
adds r5, r3, 0
lsls r6, 24
lsrs r6, 24
mov r1, r8
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r5, 24
lsrs r5, 24
add r1, sp, 0x18
movs r3, 0
strh r3, [r1]
ldrb r2, [r0]
mov r0, sp
adds r0, 0x1A
strh r2, [r0]
ldr r0, =gUnknown_082FB1E0
str r0, [sp, 0x1C]
ldr r0, =gUnknown_082FB228
str r0, [sp, 0x20]
str r3, [sp, 0x24]
ldr r0, =gDummySpriteAffineAnimTable
str r0, [sp, 0x28]
ldr r0, =sub_80284A8
str r0, [sp, 0x2C]
mov r0, sp
movs r2, 0x18
bl memcpy
movs r0, 0x4
bl AllocZeroed
ldr r1, =gUnknown_02022C9C
mov r2, r8
lsls r4, r2, 2
adds r4, r1
str r0, [r4]
adds r0, r6, 0
adds r1, r5, 0
bl sub_8028F14
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
mov r0, sp
movs r2, 0x88
movs r3, 0x3
bl CreateSprite
ldr r1, [r4]
lsls r0, 24
lsrs r0, 24
strh r0, [r1]
movs r0, 0x1
mov r1, r8
bl sub_8028654
add sp, 0x30
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028408
thumb_func_start sub_80284A8
sub_80284A8: @ 80284A8
push {lr}
movs r2, 0x2E
ldrsh r1, [r0, r2]
cmp r1, 0x1
beq _080284BC
cmp r1, 0x1
ble _080284C6
cmp r1, 0x2
beq _080284C2
b _080284C6
_080284BC:
bl sub_802853C
b _080284C6
_080284C2:
bl sub_80285AC
_080284C6:
pop {r0}
bx r0
thumb_func_end sub_80284A8
thumb_func_start sub_80284CC
sub_80284CC: @ 80284CC
push {lr}
bl GetMultiplayerId
ldr r1, =gUnknown_02022C9C
lsls r0, 24
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r2, 0
movs r1, 0x1
strh r1, [r0, 0x2E]
strh r2, [r0, 0x30]
strh r2, [r0, 0x32]
strh r2, [r0, 0x34]
strh r2, [r0, 0x36]
pop {r0}
bx r0
.pool
thumb_func_end sub_80284CC
thumb_func_start sub_8028504
sub_8028504: @ 8028504
push {lr}
bl GetMultiplayerId
ldr r1, =gUnknown_02022C9C
lsls r0, 24
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r2, 0
movs r1, 0x2
strh r1, [r0, 0x2E]
strh r2, [r0, 0x30]
strh r2, [r0, 0x32]
strh r2, [r0, 0x34]
strh r2, [r0, 0x36]
pop {r0}
bx r0
.pool
thumb_func_end sub_8028504
thumb_func_start sub_802853C
sub_802853C: @ 802853C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r2, r0, 16
lsrs r0, 31
adds r0, r2, r0
asrs r1, r0, 1
adds r0, r1, 0
cmp r1, 0
bge _08028558
adds r0, r1, 0x3
_08028558:
asrs r0, 2
lsls r0, 2
subs r0, r1, r0
lsls r0, 24
lsrs r0, 24
cmp r2, 0x2
ble _080285A2
cmp r0, 0x2
bgt _0802856E
cmp r0, 0x1
bge _08028572
_0802856E:
movs r0, 0x1
b _08028574
_08028572:
movs r0, 0xFF
_08028574:
lsls r0, 24
asrs r0, 24
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x27
ble _080285A2
movs r0, 0
strh r0, [r4, 0x2E]
bl sub_8027650
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0
bl sub_8028F14
strh r0, [r4, 0x20]
_080285A2:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802853C
thumb_func_start sub_80285AC
sub_80285AC: @ 80285AC
push {r4,r5,lr}
adds r5, r0, 0
ldrh r0, [r5, 0x30]
adds r0, 0x1
strh r0, [r5, 0x30]
lsls r0, 16
asrs r0, 16
movs r1, 0xD
bl __divsi3
lsls r0, 16
asrs r1, r0, 16
adds r0, r1, 0
cmp r1, 0
bge _080285CC
adds r0, r1, 0x3
_080285CC:
asrs r0, 2
lsls r0, 2
subs r0, r1, r0
lsls r0, 24
lsrs r4, r0, 24
movs r1, 0x30
ldrsh r0, [r5, r1]
movs r1, 0xD
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _080285F0
cmp r4, 0
beq _080285F0
movs r0, 0xD4
bl PlaySE
_080285F0:
movs r1, 0x30
ldrsh r0, [r5, r1]
cmp r0, 0x67
ble _080285FE
movs r0, 0
strh r0, [r5, 0x2E]
movs r4, 0
_080285FE:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
bl sub_80286B4
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80285AC
thumb_func_start sub_8028614
sub_8028614: @ 8028614
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
cmp r4, r5
bcs _08028646
ldr r6, =gUnknown_02022C9C
_08028622:
lsls r0, r4, 2
adds r0, r6
ldr r0, [r0]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
cmp r0, 0
beq _0802863C
bl DestroySpriteAndFreeResources
_0802863C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08028622
_08028646:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028614
thumb_func_start sub_8028654
sub_8028654: @ 8028654
lsls r0, 24
lsrs r0, 24
lsls r1, 24
ldr r3, =gSprites
ldr r2, =gUnknown_02022C9C
lsrs r1, 22
adds r1, r2
ldr r1, [r1]
ldrh r1, [r1]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
adds r2, r3
adds r2, 0x3E
movs r1, 0x1
ands r0, r1
lsls r0, 2
ldrb r3, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r3
orrs r1, r0
strb r1, [r2]
bx lr
.pool
thumb_func_end sub_8028654
thumb_func_start sub_802868C
sub_802868C: @ 802868C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r5, r1, 24
movs r4, 0
cmp r4, r5
bcs _080286AE
_0802869C:
adds r0, r6, 0
adds r1, r4, 0
bl sub_8028654
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _0802869C
_080286AE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_802868C
thumb_func_start sub_80286B4
sub_80286B4: @ 80286B4
push {lr}
lsls r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_02022C9C
lsrs r0, 22
adds r0, r2
ldr r0, [r0]
ldrh r2, [r0]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
ldr r2, =gSprites
adds r0, r2
bl StartSpriteAnim
pop {r0}
bx r0
.pool
thumb_func_end sub_80286B4
thumb_func_start nullsub_15
nullsub_15: @ 80286E0
bx lr
thumb_func_end nullsub_15
thumb_func_start sub_80286E4
sub_80286E4: @ 80286E4
push {r4-r7,lr}
movs r4, 0
ldr r0, =gSprites
mov r12, r0
movs r6, 0
ldr r5, =gUnknown_02022CF4
_080286F0:
ldr r3, [r5]
lsls r1, r4, 1
adds r0, r3, 0
adds r0, 0x2A
adds r0, r1
ldrh r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r12
lsls r0, r4, 4
adds r0, 0x30
strh r0, [r1, 0x20]
lsls r2, r4, 3
movs r7, 0x8
negs r7, r7
adds r0, r7, 0
subs r0, r2
strh r0, [r1, 0x22]
adds r3, 0xC
adds r3, r4
strb r6, [r3]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _080286F0
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80286E4
thumb_func_start sub_8028734
sub_8028734: @ 8028734
push {r4-r6,lr}
sub sp, 0x28
movs r4, 0xC0
lsls r4, 1
adds r0, r4, 0
bl AllocZeroed
adds r6, r0, 0
ldr r0, =gUnknown_082FB2E8
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x20]
str r1, [sp, 0x24]
ldr r0, =gDodrioBerryStatusGfx
adds r1, r6, 0
bl LZ77UnCompWram
cmp r6, 0
beq _080287C4
str r6, [sp, 0x18]
add r5, sp, 0x18
movs r0, 0x80
lsls r0, 9
orrs r0, r4
str r0, [r5, 0x4]
mov r1, sp
ldr r0, =gUnknown_082FB2F0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r4, =gUnknown_02022CF4
movs r0, 0x40
bl AllocZeroed
str r0, [r4]
adds r0, r5, 0
bl LoadSpriteSheet
add r0, sp, 0x20
bl LoadSpritePalette
movs r4, 0
_0802878A:
lsls r1, r4, 20
movs r0, 0xC0
lsls r0, 14
adds r1, r0
asrs r1, 16
lsls r0, r4, 3
movs r3, 0x8
negs r3, r3
adds r2, r3, 0
subs r2, r0
lsls r2, 16
asrs r2, 16
mov r0, sp
movs r3, 0
bl CreateSprite
ldr r1, =gUnknown_02022CF4
ldr r1, [r1]
lsls r2, r4, 1
adds r1, 0x2A
adds r1, r2
lsls r0, 24
lsrs r0, 24
strh r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _0802878A
_080287C4:
adds r0, r6, 0
bl Free
add sp, 0x28
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028734
thumb_func_start sub_80287E4
sub_80287E4: @ 80287E4
push {r4,r5,lr}
movs r4, 0
_080287E8:
ldr r5, =gUnknown_02022CF4
ldr r0, [r5]
lsls r1, r4, 1
adds r0, 0x2A
adds r0, r1
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
cmp r0, 0
beq _08028806
bl DestroySpriteAndFreeResources
_08028806:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _080287E8
ldr r0, [r5]
bl Free
movs r0, 0
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80287E4
thumb_func_start sub_8028828
sub_8028828: @ 8028828
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r3, 0
movs r6, 0
ldr r0, =gUnknown_02022CF4
mov r9, r0
_0802883A:
mov r7, r9
ldr r2, [r7]
lsls r5, r6, 1
adds r0, r2, 0
adds r0, 0x2A
adds r0, r5
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r4, r0, r1
adds r0, r2, 0
adds r0, 0x16
adds r0, r5
movs r1, 0x2
strh r1, [r0]
adds r0, r2, 0
adds r0, 0xC
adds r2, r0, r6
ldrb r1, [r2]
cmp r1, 0
beq _08028870
movs r7, 0x22
ldrsh r0, [r4, r7]
cmp r0, 0x8
beq _080288A6
_08028870:
movs r3, 0x1
movs r7, 0x22
ldrsh r0, [r4, r7]
cmp r0, 0x8
bne _08028896
cmp r1, 0
bne _080288A6
strb r3, [r2]
mov r1, r9
ldr r0, [r1]
adds r0, 0x16
adds r0, r5
ldr r1, =0x0000fff0
strh r1, [r0]
movs r0, 0x24
str r3, [sp]
bl PlaySE
ldr r3, [sp]
_08028896:
mov r7, r9
ldr r0, [r7]
adds r0, 0x16
adds r0, r5
ldrh r0, [r0]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
_080288A6:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x9
bls _0802883A
cmp r3, 0
bne _080288C4
movs r0, 0x1
b _080288C6
.pool
_080288C4:
movs r0, 0
_080288C6:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8028828
thumb_func_start sub_80288D4
sub_80288D4: @ 80288D4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xA
bls _08028910
movs r4, 0
_080288E0:
ldr r0, =gUnknown_02022CF4
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x2A
adds r0, r1
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r1, 0x1
bl StartSpriteAnim
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _080288E0
b _080289DA
.pool
_08028910:
movs r4, 0
movs r0, 0xA
subs r0, r5
cmp r4, r0
bge _080289D6
ldr r6, =gSprites
_0802891C:
cmp r5, 0x6
bls _08028984
ldr r0, =gUnknown_02022CF4
ldr r2, [r0]
ldr r1, =0x0000fffa
adds r0, r1, 0
ldrh r1, [r2, 0x3E]
adds r0, r1
adds r0, r5
movs r1, 0
strh r0, [r2, 0x3E]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1E
bls _0802894C
strh r1, [r2, 0x3E]
b _0802899E
.pool
_0802894C:
cmp r0, 0xA
bls _0802896A
lsls r1, r4, 1
adds r0, r2, 0
adds r0, 0x2A
adds r0, r1
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x2
bl StartSpriteAnim
b _0802899E
_0802896A:
lsls r1, r4, 1
adds r0, r2, 0
adds r0, 0x2A
adds r0, r1
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0
bl StartSpriteAnim
b _0802899E
_08028984:
ldr r0, =gUnknown_02022CF4
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x2A
adds r0, r1
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0
bl StartSpriteAnim
_0802899E:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0xA
subs r0, r5
cmp r4, r0
blt _0802891C
b _080289D6
.pool
_080289B4:
ldr r0, =gUnknown_02022CF4
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x2A
adds r0, r1
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r1, 0x1
bl StartSpriteAnim
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
_080289D6:
cmp r4, 0x9
bls _080289B4
_080289DA:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80288D4
thumb_func_start sub_80289E8
sub_80289E8: @ 80289E8
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
movs r3, 0
ldr r7, =gSprites
movs r1, 0x1
ands r0, r1
lsls r4, r0, 2
movs r6, 0x5
negs r6, r6
ldr r5, =gUnknown_02022CF4
_080289FE:
ldr r0, [r5]
lsls r1, r3, 1
adds r0, 0x2A
adds r0, r1
ldrh r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r7
adds r1, 0x3E
ldrb r2, [r1]
adds r0, r6, 0
ands r0, r2
orrs r0, r4
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x9
bls _080289FE
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80289E8
thumb_func_start sub_8028A34
sub_8028A34: @ 8028A34
push {r4,r5,lr}
sub sp, 0x10
movs r5, 0x90
lsls r5, 3
adds r0, r5, 0
bl AllocZeroed
adds r4, r0, 0
ldr r0, =gUnknown_082FB314
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x8]
str r1, [sp, 0xC]
ldr r0, =gDodrioBerrySpritesGfx
adds r1, r4, 0
bl LZ77UnCompWram
cmp r4, 0
beq _08028A6A
str r4, [sp]
movs r0, 0x80
lsls r0, 10
orrs r0, r5
str r0, [sp, 0x4]
mov r0, sp
bl LoadSpriteSheet
_08028A6A:
add r0, sp, 0x8
bl LoadSpritePalette
adds r0, r4, 0
bl Free
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028A34
thumb_func_start sub_8028A88
sub_8028A88: @ 8028A88
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x30
mov r1, sp
ldr r0, =gUnknown_082FB324
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
add r2, sp, 0x18
adds r1, r2, 0
ldr r0, =gUnknown_082FB33C
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
movs r5, 0
mov r9, r2
_08028AB0:
movs r0, 0x4
bl AllocZeroed
ldr r1, =gUnknown_02022CB8
lsls r4, r5, 2
adds r4, r1
str r0, [r4]
lsls r0, r5, 3
lsls r1, r5, 4
adds r1, r0
mov r0, sp
movs r2, 0x8
movs r3, 0x1
bl CreateSprite
ldr r1, [r4]
lsls r0, 24
lsrs r0, 24
strh r0, [r1]
adds r0, r5, 0
movs r1, 0x1
bl sub_8028BF8
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xA
bls _08028AB0
movs r5, 0
ldr r7, =gUnknown_02022CE4
ldr r4, =gUnknown_082FB31C
mov r8, r4
_08028AF0:
movs r0, 0x4
bl AllocZeroed
lsls r1, r5, 2
adds r4, r1, r7
str r0, [r4]
adds r6, r1, 0
cmp r5, 0x3
bne _08028B2C
mov r0, r8
movs r2, 0x6
ldrsh r1, [r0, r2]
mov r0, r9
movs r2, 0x31
movs r3, 0
bl CreateSprite
ldr r1, [r7, 0xC]
b _08028B40
.pool
_08028B2C:
lsls r0, r5, 1
add r0, r8
movs r3, 0
ldrsh r1, [r0, r3]
mov r0, r9
movs r2, 0x34
movs r3, 0
bl CreateSprite
ldr r1, [r4]
_08028B40:
lsls r0, 24
lsrs r0, 24
strh r0, [r1]
adds r0, r6, r7
ldr r0, [r0]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
adds r1, r5, 0
bl StartSpriteAnim
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _08028AF0
movs r0, 0x1
bl sub_8028C30
add sp, 0x30
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028A88
thumb_func_start sub_8028B80
sub_8028B80: @ 8028B80
push {r4-r6,lr}
movs r5, 0
ldr r6, =gUnknown_02022CB8
_08028B86:
lsls r0, r5, 2
adds r4, r0, r6
ldr r0, [r4]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
cmp r0, 0
beq _08028BA0
bl DestroySprite
_08028BA0:
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xA
bls _08028B86
movs r5, 0
ldr r6, =gUnknown_02022CE4
_08028BB8:
lsls r0, r5, 2
adds r4, r0, r6
ldr r0, [r4]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
cmp r0, 0
beq _08028BD2
bl DestroySprite
_08028BD2:
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _08028BB8
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028B80
thumb_func_start sub_8028BF8
sub_8028BF8: @ 8028BF8
lsls r0, 24
lsls r1, 24
lsrs r1, 24
ldr r3, =gSprites
ldr r2, =gUnknown_02022CB8
lsrs r0, 22
adds r0, r2
ldr r0, [r0]
ldrh r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
adds r2, 0x3E
movs r0, 0x1
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
bx lr
.pool
thumb_func_end sub_8028BF8
thumb_func_start sub_8028C30
sub_8028C30: @ 8028C30
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
movs r3, 0
ldr r7, =gSprites
ldr r6, =gUnknown_02022CE4
movs r1, 0x1
ands r0, r1
lsls r4, r0, 2
movs r5, 0x5
negs r5, r5
_08028C46:
lsls r0, r3, 2
adds r0, r6
ldr r0, [r0]
ldrh r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r7
adds r1, 0x3E
ldrb r2, [r1]
adds r0, r5, 0
ands r0, r2
orrs r0, r4
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _08028C46
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028C30
thumb_func_start sub_8028C7C
sub_8028C7C: @ 8028C7C
lsls r0, 24
lsls r1, 24
ldr r3, =gSprites
ldr r2, =gUnknown_02022CB8
lsrs r0, 22
adds r0, r2
ldr r0, [r0]
ldrh r2, [r0]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r3
lsrs r1, 21
strh r1, [r0, 0x22]
bx lr
.pool
thumb_func_end sub_8028C7C
thumb_func_start sub_8028CA4
sub_8028CA4: @ 8028CA4
push {lr}
lsls r0, 16
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_02022CB8
lsrs r0, 14
adds r0, r2
ldr r0, [r0]
ldrh r2, [r0]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
ldr r2, =gSprites
adds r0, r2
bl StartSpriteAnim
pop {r0}
bx r0
.pool
thumb_func_end sub_8028CA4
thumb_func_start sub_8028CD0
sub_8028CD0: @ 8028CD0
lsls r0, 24
lsrs r0, 24
ldr r1, =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r1
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, 0x32
strh r1, [r2, 0x20]
movs r0, 0x32
strh r0, [r2, 0x22]
bx lr
.pool
thumb_func_end sub_8028CD0
thumb_func_start sub_8028CF4
sub_8028CF4: @ 8028CF4
push {r4-r7,lr}
adds r4, r0, 0
adds r0, 0x42
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
beq _08028D36
movs r3, 0
ldr r7, =gUnknown_082FB354
ldr r6, =gUnknown_02022CB0
movs r5, 0
_08028D0A:
lsls r0, r3, 2
adds r2, r0, r6
ldr r1, [r2]
ldrh r0, [r1, 0x2]
adds r0, 0x1
strh r0, [r1, 0x2]
adds r1, r3, r7
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1]
cmp r0, r1
bls _08028D2C
ldrh r0, [r4, 0x20]
subs r0, 0x1
strh r0, [r4, 0x20]
ldr r0, [r2]
strh r5, [r0, 0x2]
_08028D2C:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
bls _08028D0A
_08028D36:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028CF4
thumb_func_start sub_8028D44
sub_8028D44: @ 8028D44
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x28
movs r4, 0x80
lsls r4, 3
adds r0, r4, 0
bl AllocZeroed
adds r6, r0, 0
ldr r0, =gUnknown_082FB360
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x20]
str r1, [sp, 0x24]
ldr r0, =gDodrioBerryPlatformGfx
adds r1, r6, 0
bl LZ77UnCompWram
cmp r6, 0
beq _08028DD2
str r6, [sp, 0x18]
add r0, sp, 0x18
movs r1, 0xA0
lsls r1, 11
orrs r1, r4
str r1, [r0, 0x4]
mov r2, sp
ldr r1, =gUnknown_082FB368
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
bl LoadSpriteSheet
add r0, sp, 0x20
bl LoadSpritePalette
movs r5, 0
ldr r7, =gUnknown_082FB356
adds r0, r7, 0x2
mov r9, r0
ldr r1, =gUnknown_02022CB0
mov r8, r1
_08028D9E:
movs r0, 0x4
bl AllocZeroed
lsls r2, r5, 2
mov r3, r8
adds r4, r2, r3
str r0, [r4]
adds r0, r2, r7
movs r3, 0
ldrsh r1, [r0, r3]
add r2, r9
movs r0, 0
ldrsh r2, [r2, r0]
mov r0, sp
movs r3, 0x4
bl CreateSprite
ldr r1, [r4]
lsls r0, 24
lsrs r0, 24
strh r0, [r1]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bls _08028D9E
_08028DD2:
adds r0, r6, 0
bl Free
add sp, 0x28
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028D44
thumb_func_start sub_8028DFC
sub_8028DFC: @ 8028DFC
push {r4-r7,lr}
movs r3, 0
ldr r0, =gUnknown_02022CB0
mov r12, r0
ldr r4, =gUnknown_082FB356
adds r7, r4, 0x2
ldr r6, =gSprites
movs r5, 0x1
_08028E0C:
lsls r2, r3, 2
mov r1, r12
adds r0, r2, r1
ldr r0, [r0]
ldrh r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r0, r1, 0
adds r0, 0x42
strh r5, [r0]
adds r0, r2, r4
ldrh r0, [r0]
strh r0, [r1, 0x20]
adds r2, r7
ldrh r0, [r2]
strh r0, [r1, 0x22]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
bls _08028E0C
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028DFC
thumb_func_start sub_8028E4C
sub_8028E4C: @ 8028E4C
push {r4,r5,lr}
movs r2, 0
ldr r5, =gUnknown_02022CB0
ldr r4, =gSprites
movs r3, 0
_08028E56:
lsls r0, r2, 2
adds r0, r5
ldr r0, [r0]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x42
strh r3, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1
bls _08028E56
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028E4C
thumb_func_start sub_8028E84
sub_8028E84: @ 8028E84
push {r4-r6,lr}
movs r5, 0
ldr r6, =gUnknown_02022CB0
_08028E8A:
lsls r0, r5, 2
adds r4, r0, r6
ldr r0, [r4]
ldrh r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
cmp r0, 0
beq _08028EA4
bl DestroySprite
_08028EA4:
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bls _08028E8A
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028E84
thumb_func_start sub_8028EC8
sub_8028EC8: @ 8028EC8
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
movs r3, 0
ldr r7, =gSprites
ldr r6, =gUnknown_02022CB0
movs r1, 0x1
ands r0, r1
lsls r4, r0, 2
movs r5, 0x5
negs r5, r5
_08028EDE:
lsls r0, r3, 2
adds r0, r6
ldr r0, [r0]
ldrh r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r7
adds r1, 0x3E
ldrb r2, [r1]
adds r0, r5, 0
ands r0, r2
orrs r0, r4
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
bls _08028EDE
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8028EC8
thumb_func_start sub_8028F14
sub_8028F14: @ 8028F14
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r1, 24
movs r3, 0
subs r0, r1, 0x1
cmp r0, 0x4
bhi _08028FC6
lsls r0, 2
ldr r1, =_08028F34
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08028F34:
.4byte _08028FB4
.4byte _08028F48
.4byte _08028F52
.4byte _08028F66
.4byte _08028F8E
_08028F48:
cmp r2, 0
beq _08028F7E
cmp r2, 0x1
bne _08028FC6
b _08028F82
_08028F52:
cmp r2, 0x1
beq _08028FB8
cmp r2, 0x1
bgt _08028F60
cmp r2, 0
beq _08028FB4
b _08028FC6
_08028F60:
cmp r2, 0x2
bne _08028FC6
b _08028FC4
_08028F66:
cmp r2, 0x1
beq _08028F82
cmp r2, 0x1
bgt _08028F74
cmp r2, 0
beq _08028F7E
b _08028FC6
_08028F74:
cmp r2, 0x2
beq _08028F86
cmp r2, 0x3
beq _08028F8A
b _08028FC6
_08028F7E:
movs r3, 0xC
b _08028FC6
_08028F82:
movs r3, 0x12
b _08028FC6
_08028F86:
movs r3, 0x18
b _08028FC6
_08028F8A:
movs r3, 0x6
b _08028FC6
_08028F8E:
cmp r2, 0x4
bhi _08028FC6
lsls r0, r2, 2
ldr r1, =_08028FA0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08028FA0:
.4byte _08028FB4
.4byte _08028FB8
.4byte _08028FBC
.4byte _08028FC0
.4byte _08028FC4
_08028FB4:
movs r3, 0xF
b _08028FC6
_08028FB8:
movs r3, 0x15
b _08028FC6
_08028FBC:
movs r3, 0x1B
b _08028FC6
_08028FC0:
movs r3, 0x3
b _08028FC6
_08028FC4:
movs r3, 0x9
_08028FC6:
lsls r0, r3, 3
pop {r1}
bx r1
thumb_func_end sub_8028F14
thumb_func_start sub_8028FCC
sub_8028FCC: @ 8028FCC
push {r4,lr}
movs r4, 0
_08028FD0:
adds r0, r4, 0
movs r1, 0x1
bl sub_8028BF8
adds r0, r4, 0
movs r1, 0x1
bl sub_8028C7C
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xA
bls _08028FD0
movs r0, 0
bl sub_80289E8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8028FCC
thumb_func_start sub_8028FF8
sub_8028FF8: @ 8028FF8
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl GetWindowFrameTilesPal
ldr r1, [r0]
movs r2, 0x90
lsls r2, 1
movs r0, 0
movs r3, 0x1
bl LoadBgTiles
adds r0, r4, 0
bl GetWindowFrameTilesPal
ldr r0, [r0, 0x4]
movs r1, 0xA0
movs r2, 0x20
bl LoadPalette
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8028FF8
thumb_func_start sub_802902C
sub_802902C: @ 802902C
push {lr}
movs r0, 0
movs r1, 0xA
movs r2, 0xB0
bl LoadUserWindowBorderGfx_
pop {r0}
bx r0
thumb_func_end sub_802902C
thumb_func_start sub_802903C
sub_802903C: @ 802903C
ldr r3, =gUnknown_02022CF8
ldr r0, [r3]
movs r2, 0xC0
lsls r2, 6
adds r1, r0, r2
movs r2, 0
str r2, [r1]
ldr r1, =0x00003014
adds r0, r1
strb r2, [r0]
ldr r0, [r3]
adds r1, 0x4
adds r0, r1
strb r2, [r0]
ldr r0, [r3]
adds r1, 0x8
adds r0, r1
strb r2, [r0]
ldr r0, [r3]
adds r1, 0x4
adds r0, r1
strb r2, [r0]
bx lr
.pool
thumb_func_end sub_802903C
thumb_func_start sub_8029074
sub_8029074: @ 8029074
push {r4-r6,lr}
sub sp, 0xC
adds r4, r0, 0
movs r6, 0xA
ldrb r2, [r4, 0x1]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
subs r3, 0x1
lsls r3, 24
lsrs r3, 24
movs r5, 0x1
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x1
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
ldrb r3, [r4, 0x2]
subs r3, 0x1
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4, 0x3]
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x2
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x3]
ldrb r0, [r4, 0x1]
adds r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
subs r3, 0x1
lsls r3, 24
lsrs r3, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x3
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
str r5, [sp]
ldrb r0, [r4, 0x4]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x4
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x3]
ldrb r0, [r4, 0x1]
adds r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
str r5, [sp]
ldrb r0, [r4, 0x4]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x6
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x4]
ldrb r0, [r4, 0x2]
adds r3, r0
lsls r3, 24
lsrs r3, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x7
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
ldrb r3, [r4, 0x4]
ldrb r0, [r4, 0x2]
adds r3, r0
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4, 0x3]
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x8
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x3]
ldrb r0, [r4, 0x1]
adds r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x4]
ldrb r4, [r4, 0x2]
adds r3, r4
lsls r3, 24
lsrs r3, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x9
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8029074
thumb_func_start sub_8029174
sub_8029174: @ 8029174
push {r4-r6,lr}
sub sp, 0xC
adds r4, r0, 0
movs r6, 0xB
ldrb r2, [r4, 0x1]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
subs r3, 0x1
lsls r3, 24
lsrs r3, 24
movs r5, 0x1
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0xA
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
ldrb r3, [r4, 0x2]
subs r3, 0x1
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4, 0x3]
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0xB
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x3]
ldrb r0, [r4, 0x1]
adds r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
subs r3, 0x1
lsls r3, 24
lsrs r3, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0xC
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
str r5, [sp]
ldrb r0, [r4, 0x4]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0xD
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x3]
ldrb r0, [r4, 0x1]
adds r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x2]
str r5, [sp]
ldrb r0, [r4, 0x4]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0xF
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x4]
ldrb r0, [r4, 0x2]
adds r3, r0
lsls r3, 24
lsrs r3, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x10
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x1]
ldrb r3, [r4, 0x4]
ldrb r0, [r4, 0x2]
adds r3, r0
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4, 0x3]
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x11
bl FillBgTilemapBufferRect
ldrb r2, [r4, 0x3]
ldrb r0, [r4, 0x1]
adds r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r3, [r4, 0x4]
ldrb r4, [r4, 0x2]
adds r3, r4
lsls r3, 24
lsrs r3, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x12
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8029174
thumb_func_start sub_8029274
sub_8029274: @ 8029274
push {r4,lr}
ldr r4, =gUnknown_02022CF8
str r0, [r4]
movs r2, 0xC0
lsls r2, 6
adds r1, r0, r2
movs r2, 0
str r2, [r1]
ldr r3, =0x00003014
adds r1, r0, r3
strb r2, [r1]
ldr r1, =0x00003018
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r3, 0xC
adds r0, r3
strb r2, [r0]
ldr r0, [r4]
adds r1, 0xC
adds r0, r1
strb r2, [r0]
ldr r0, =sub_8029314
movs r1, 0x3
bl CreateTask
ldr r1, [r4]
ldr r2, =0x00003004
adds r1, r2
strb r0, [r1]
ldr r0, =sub_8029338
bl sub_802A72C
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8029274
thumb_func_start sub_80292D4
sub_80292D4: @ 80292D4
push {lr}
bl FreeAllWindowBuffers
pop {r0}
bx r0
thumb_func_end sub_80292D4
thumb_func_start sub_80292E0
sub_80292E0: @ 80292E0
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
ldr r5, =gUnknown_082FB40C
adds r7, r5, 0x4
_080292EC:
lsls r1, r4, 3
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, r6
bne _080292FE
adds r0, r1, r7
ldr r0, [r0]
bl sub_802A72C
_080292FE:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _080292EC
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80292E0
thumb_func_start sub_8029314
sub_8029314: @ 8029314
push {lr}
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
ldr r0, [r0]
cmp r0, 0
bne _0802932E
bl sub_802A75C
bl _call_via_r0
_0802932E:
pop {r0}
bx r0
.pool
thumb_func_end sub_8029314
thumb_func_start sub_8029338
sub_8029338: @ 8029338
push {lr}
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r2, =0x00003014
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x4
bhi _08029430
lsls r0, 2
ldr r1, =_08029360
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08029360:
.4byte _08029374
.4byte _0802937A
.4byte _08029394
.4byte _080293D8
.4byte _08029404
_08029374:
bl sub_802A7A8
b _08029414
_0802937A:
bl sub_802A8E8
cmp r0, 0x1
bne _0802943A
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r2, =0x00003014
adds r1, r2
b _0802941C
.pool
_08029394:
ldr r1, =gDodrioBerryBgTilemap1
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r1, =gDodrioBerryBgTilemap2Left
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r1, =gDodrioBerryBgTilemap2Right
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
b _08029414
.pool
_080293D8:
movs r0, 0
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r2, =0x00003014
adds r1, r2
b _0802941C
.pool
_08029404:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x14]
lsrs r0, 3
bl sub_8028FF8
bl sub_802902C
_08029414:
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r0, =0x00003014
adds r1, r0
_0802941C:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0802943A
.pool
_08029430:
movs r2, 0xC0
lsls r2, 6
adds r1, r2
movs r0, 0x1
str r0, [r1]
_0802943A:
pop {r0}
bx r0
thumb_func_end sub_8029338
thumb_func_start sub_8029440
sub_8029440: @ 8029440
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1C
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r2, =0x00003014
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
beq _08029488
cmp r0, 0x1
bne _08029460
b _080295EC
_08029460:
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xB4
bhi _0802946E
b _0802968E
_0802946E:
bl sub_8027650
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
cmp r6, r7
bcc _0802947E
b _08029666
_0802947E:
b _08029640
.pool
_08029488:
bl sub_8027650
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gUnknown_082FB3C8
subs r0, r7, 0x1
lsls r0, 2
adds r0, r1
ldr r5, [r0]
ldr r2, =0xffffff00
ldr r0, [sp, 0xC]
ands r0, r2
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0xE0
lsls r1, 19
orrs r0, r1
str r0, [sp, 0xC]
ldr r0, [sp, 0x10]
ands r0, r2
movs r1, 0x2
orrs r0, r1
ldr r1, =0xffff00ff
ands r0, r1
movs r1, 0xD0
lsls r1, 4
orrs r0, r1
ldr r1, =0x0000ffff
ands r0, r1
movs r1, 0x98
lsls r1, 13
orrs r0, r1
str r0, [sp, 0x10]
movs r6, 0
cmp r6, r7
bcs _080295B8
mov r3, sp
adds r3, 0xC
str r3, [sp, 0x18]
mov r10, r4
ldr r0, =0x00003008
mov r9, r0
_080294DC:
movs r1, 0
mov r8, r1
adds r0, r6, 0
bl sub_8027A48
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
bl sub_8027660
adds r1, r0, 0
movs r0, 0x1
movs r2, 0x1
negs r2, r2
bl GetStringWidth
movs r1, 0x38
subs r1, r0
lsrs r1, 1
str r1, [sp, 0x14]
ldrb r0, [r5]
lsls r0, 8
ldr r2, =0xffff00ff
ldr r1, [sp, 0xC]
ands r1, r2
orrs r1, r0
str r1, [sp, 0xC]
ldrb r2, [r5, 0x1]
lsls r2, 16
ldr r0, =0xff00ffff
ands r0, r1
orrs r0, r2
str r0, [sp, 0xC]
add r0, sp, 0xC
bl AddWindow
mov r2, r10
ldr r1, [r2]
add r1, r9
adds r1, r6
strb r0, [r1]
ldr r0, [r2]
add r0, r9
adds r0, r6
ldrb r0, [r0]
bl ClearWindowTilemap
mov r3, r10
ldr r0, [r3]
add r0, r9
adds r0, r6
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bne _0802955A
movs r0, 0x2
mov r8, r0
_0802955A:
adds r0, r4, 0
bl sub_8027660
adds r4, r0, 0
mov r1, r10
ldr r0, [r1]
add r0, r9
adds r0, r6
ldrb r0, [r0]
ldr r3, [sp, 0x14]
lsls r2, r3, 24
lsrs r2, 24
mov r3, r8
lsls r1, r3, 1
add r1, r8
ldr r3, =gUnknown_082FB380
adds r1, r3
str r1, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
bl AddTextPrinterParameterized3
mov r2, r10
ldr r0, [r2]
add r0, r9
adds r0, r6
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r3, [sp, 0x18]
ldrh r0, [r3, 0x6]
adds r0, 0xE
strh r0, [r3, 0x6]
add r0, sp, 0xC
bl sub_8029174
adds r5, 0x4
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, r7
bcc _080294DC
_080295B8:
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r0, =0x00003014
adds r1, r0
b _0802962A
.pool
_080295EC:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0802968E
bl sub_8027650
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
cmp r6, r7
bcs _0802961C
_08029604:
ldr r0, [r4]
ldr r1, =0x00003008
adds r0, r1
adds r0, r6
ldrb r0, [r0]
bl PutWindowTilemap
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, r7
bcc _08029604
_0802961C:
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r2, =0x00003014
adds r1, r2
_0802962A:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0802968E
.pool
_08029640:
ldr r5, =gUnknown_02022CF8
ldr r0, [r5]
ldr r4, =0x00003008
adds r0, r4
adds r0, r6
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r5]
adds r0, r4
adds r0, r6
ldrb r0, [r0]
bl RemoveWindow
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, r7
bcc _08029640
_08029666:
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
movs r3, 0xC0
lsls r3, 6
adds r0, r3
movs r1, 0x1
str r1, [r0]
_0802968E:
add sp, 0x1C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8029440
thumb_func_start sub_80296A8
sub_80296A8: @ 80296A8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x6C
lsls r0, 24
movs r1, 0
mov r8, r1
movs r6, 0
lsrs r7, r0, 24
add r4, sp, 0x2C
ldr r1, =gUnknown_082FB45C
adds r0, r4, 0
movs r2, 0x5
bl memcpy
movs r5, 0
cmp r5, r7
bcs _080296F8
add r4, sp, 0x34
_080296D2:
mov r0, sp
adds r0, r5
adds r0, 0x2C
strb r5, [r0]
add r0, sp, 0x5C
adds r1, r5, 0
bl sub_802793C
lsls r2, r5, 3
adds r2, r4, r2
ldr r0, [sp, 0x5C]
ldr r1, [sp, 0x60]
str r0, [r2]
str r1, [r2, 0x4]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r7
bcc _080296D2
_080296F8:
bl sub_8027748
cmp r0, 0
beq _0802972E
_08029700:
movs r5, 0
cmp r5, r7
bcs _08029728
add r2, sp, 0x34
add r1, sp, 0x2C
_0802970A:
lsls r0, r5, 3
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, r8
bne _0802971E
adds r0, r1, r6
strb r5, [r0]
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0802971E:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r7
bcc _0802970A
_08029728:
mov r8, r6
cmp r6, r7
bcc _08029700
_0802972E:
movs r5, 0
ldr r4, =gText_SpacePoints
cmp r5, r7
bcs _08029754
add r1, sp, 0x34
add r6, sp, 0x38
subs r3, r7, 0x1
_0802973C:
lsls r2, r5, 3
adds r0, r6, r2
ldr r0, [r0]
cmp r0, 0
bne _0802974A
adds r0, r1, r2
strb r3, [r0]
_0802974A:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r7
bcc _0802973C
_08029754:
movs r0, 0x1
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r1, 0xD8
subs r1, r0
str r1, [sp, 0x64]
movs r5, 0
cmp r5, r7
bcs _08029860
mov r2, sp
adds r2, 0x34
str r2, [sp, 0x68]
ldr r3, =0x00003009
mov r10, r3
_08029774:
movs r0, 0
mov r8, r0
mov r0, sp
adds r0, r5
adds r0, 0x2C
ldrb r0, [r0]
adds r4, r0, 0
lsls r1, r4, 3
add r0, sp, 0x38
adds r0, r1
ldr r0, [r0]
mov r9, r0
ldr r2, =gUnknown_02022CF8
ldr r0, [r2]
add r0, r10
ldrb r0, [r0]
ldr r2, =gUnknown_082FB3DC
ldr r3, [sp, 0x68]
adds r1, r3, r1
ldrb r1, [r1]
lsls r1, 2
adds r1, r2
ldr r2, [r1]
ldr r3, =gUnknown_082FB402
lsls r1, r5, 1
adds r1, r3
ldrb r6, [r1]
str r6, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
mov r3, r8
str r3, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
bl AddTextPrinterParameterized
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bne _080297CC
movs r0, 0x2
mov r8, r0
_080297CC:
adds r0, r4, 0
bl sub_8027660
adds r3, r0, 0
ldr r1, =gUnknown_02022CF8
ldr r0, [r1]
add r0, r10
ldrb r0, [r0]
mov r2, r8
lsls r1, r2, 1
add r1, r8
ldr r2, =gUnknown_082FB380
adds r1, r2
str r1, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
str r3, [sp, 0x8]
movs r1, 0x1
movs r2, 0x1C
adds r3, r6, 0
bl AddTextPrinterParameterized3
add r0, sp, 0xC
mov r1, r9
movs r2, 0
movs r3, 0x7
bl ConvertIntToDecimalStringN
movs r0, 0x1
add r1, sp, 0xC
movs r2, 0x1
negs r2, r2
bl GetStringWidth
adds r3, r0, 0
ldr r2, =gUnknown_02022CF8
ldr r0, [r2]
add r0, r10
ldrb r0, [r0]
ldr r1, [sp, 0x64]
subs r3, r1, r3
lsls r3, 24
lsrs r3, 24
str r6, [sp]
movs r2, 0xFF
str r2, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
bl AddTextPrinterParameterized
ldr r2, =gUnknown_02022CF8
ldr r0, [r2]
add r0, r10
ldrb r0, [r0]
ldr r1, [sp, 0x64]
lsls r3, r1, 24
str r6, [sp]
movs r2, 0xFF
str r2, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
ldr r2, =gText_SpacePoints
lsrs r3, 24
bl AddTextPrinterParameterized
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r7
bcc _08029774
_08029860:
add sp, 0x6C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80296A8
thumb_func_start sub_802988C
sub_802988C: @ 802988C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
bl sub_8027650
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0xC]
ldr r6, =gUnknown_02022CF8
ldr r1, [r6]
ldr r2, =0x00003014
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0xB
bls _080298B2
b _08029FA8
_080298B2:
lsls r0, 2
ldr r1, =_080298C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080298C8:
.4byte _080298F8
.4byte _08029914
.4byte _0802996C
.4byte _08029B6C
.4byte _08029BB8
.4byte _08029BFC
.4byte _08029C60
.4byte _08029C9C
.4byte _08029CE0
.4byte _08029DA0
.4byte _08029F08
.4byte _08029F5C
_080298F8:
bl sub_802784C
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r0, =0x0000301c
adds r2, r1, r0
movs r0, 0
strh r0, [r2]
b _08029F8A
.pool
_08029914:
ldr r6, =gUnknown_082F7BBC
adds r0, r6, 0
bl AddWindow
ldr r4, =gUnknown_02022CF8
ldr r1, [r4]
ldr r2, =0x00003008
mov r8, r2
add r1, r8
strb r0, [r1]
movs r0, 0x8
adds r0, r6
mov r9, r0
bl AddWindow
ldr r1, [r4]
ldr r5, =0x00003009
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
add r0, r8
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl ClearWindowTilemap
adds r0, r6, 0
bl sub_8029174
mov r0, r9
bl sub_8029174
b _08029F88
.pool
_0802996C:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r5, =0x00003008
adds r0, r5
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r4]
ldr r1, =0x00003009
mov r9, r1
add r0, r9
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r2, =gText_BerryPickingResults
mov r8, r2
movs r2, 0x1
negs r2, r2
movs r0, 0x1
mov r1, r8
bl GetStringWidth
adds r1, r0, 0
movs r0, 0xE0
subs r0, r1
lsrs r3, r0, 1
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
lsls r3, 24
lsrs r3, 24
movs r1, 0x1
str r1, [sp]
movs r6, 0xFF
str r6, [sp, 0x4]
movs r5, 0
str r5, [sp, 0x8]
mov r2, r8
bl AddTextPrinterParameterized
ldr r0, [r4]
add r0, r9
ldrb r0, [r0]
ldr r2, =gText_10P30P50P50P
movs r1, 0x11
str r1, [sp]
str r6, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x44
bl AddTextPrinterParameterized
mov r9, r5
ldr r0, [sp, 0xC]
cmp r9, r0
bcc _080299E2
b _08029B2A
_080299E2:
movs r4, 0
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
cmp r9, r0
bne _080299F2
movs r4, 0x2
_080299F2:
mov r0, r9
bl sub_8027660
adds r6, r0, 0
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
ldr r1, =0x00003009
adds r0, r1
ldrb r0, [r0]
mov r2, r9
lsls r5, r2, 1
ldr r2, =gUnknown_082FB3F8
adds r1, r5, r2
ldrb r3, [r1]
lsls r1, r4, 1
adds r1, r4
ldr r2, =gUnknown_082FB380
adds r1, r2
str r1, [sp]
movs r4, 0x1
negs r4, r4
str r4, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
movs r2, 0
bl AddTextPrinterParameterized3
movs r7, 0
mov r8, r5
mov r0, r9
adds r0, 0x1
str r0, [sp, 0x10]
ldr r1, =gStringVar4
mov r10, r1
_08029A36:
mov r0, r9
adds r1, r7, 0
bl sub_80276A0
lsls r0, 16
lsrs r0, 16
ldr r1, =0x0000270f
bl sub_8027A38
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r7, 0
bl sub_802778C
ldr r1, =0x0000270f
bl sub_8027A38
lsls r0, 16
lsrs r6, r0, 16
mov r0, r10
adds r1, r4, 0
movs r2, 0
movs r3, 0x4
bl ConvertIntToDecimalStringN
movs r0, 0x1
mov r1, r10
movs r2, 0x1
negs r2, r2
bl GetStringWidth
adds r5, r0, 0
cmp r6, r4
bne _08029AE0
cmp r6, 0
beq _08029AE0
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
lsls r1, r7, 1
ldr r2, =gUnknown_082FB3F0
adds r1, r2
ldrb r2, [r1]
subs r2, r5
lsls r2, 24
lsrs r2, 24
ldr r1, =gUnknown_082FB3F8
add r1, r8
ldrb r3, [r1]
ldr r1, =gUnknown_082FB383
str r1, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
mov r1, r10
str r1, [sp, 0x8]
movs r1, 0x1
bl AddTextPrinterParameterized3
b _08029B10
.pool
_08029AE0:
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
lsls r1, r7, 1
ldr r2, =gUnknown_082FB3F0
adds r1, r2
ldrb r3, [r1]
subs r3, r5
lsls r3, 24
lsrs r3, 24
ldr r1, =gUnknown_082FB3F8
add r1, r8
ldrb r1, [r1]
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
ldr r2, =gStringVar4
bl AddTextPrinterParameterized
_08029B10:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x3
bls _08029A36
ldr r1, [sp, 0x10]
lsls r0, r1, 24
lsrs r0, 24
mov r9, r0
ldr r2, [sp, 0xC]
cmp r9, r2
bcs _08029B2A
b _080299E2
_08029B2A:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r4]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r1, [r4]
ldr r0, =0x00003014
adds r1, r0
b _08029F8E
.pool
_08029B6C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08029B90
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r4]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
bl PutWindowTilemap
_08029B90:
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0
bl sub_8028C30
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r0, =0x00003014
adds r1, r0
b _08029F8E
.pool
_08029BB8:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x0000301c
adds r2, r0, r1
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1D
bhi _08029BD0
b _08029FF8
_08029BD0:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08029BDE
b _08029FF8
_08029BDE:
movs r0, 0
strh r0, [r2]
movs r0, 0x5
bl PlaySE
movs r0, 0x1
bl sub_8028C30
b _08029F88
.pool
_08029BFC:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r5, =0x00003008
adds r0, r5
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r4]
ldr r1, =0x00003009
adds r0, r1
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r6, =gText_AnnouncingRankings
movs r2, 0x1
negs r2, r2
movs r0, 0x1
adds r1, r6, 0
bl GetStringWidth
adds r1, r0, 0
movs r0, 0xE0
subs r0, r1
lsrs r3, r0, 1
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
lsls r3, 24
lsrs r3, 24
movs r1, 0x1
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r6, 0
bl AddTextPrinterParameterized
b _08029F88
.pool
_08029C60:
ldr r0, [sp, 0xC]
bl sub_80296A8
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r4]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r1, [r4]
ldr r0, =0x00003014
adds r1, r0
b _08029F8E
.pool
_08029C9C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08029CC0
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r4]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
bl PutWindowTilemap
_08029CC0:
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r0, =0x00003014
adds r1, r0
b _08029F8E
.pool
_08029CE0:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x0000301c
adds r2, r0, r1
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1D
bhi _08029CF8
b _08029FF8
_08029CF8:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08029D06
b _08029FF8
_08029D06:
movs r0, 0
strh r0, [r2]
movs r0, 0x5
bl PlaySE
bl sub_8027748
ldr r1, =0x00000bb7
cmp r0, r1
bhi _08029D3C
ldr r0, [r4]
ldr r2, =0x00003014
adds r0, r2
movs r1, 0x7F
strb r1, [r0]
b _08029D4C
.pool
_08029D3C:
bl StopMapMusic
ldr r1, [r4]
ldr r0, =0x00003014
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_08029D4C:
movs r0, 0x1E
str r0, [sp]
movs r0, 0xF
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x5
bl FillBgTilemapBufferRect_Palette0
ldr r5, =gUnknown_02022CF8
ldr r0, [r5]
ldr r4, =0x00003009
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
ldr r6, =gUnknown_082F7BCC
adds r0, r6, 0
bl AddWindow
ldr r1, [r5]
adds r1, r4
strb r0, [r1]
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
adds r0, r6, 0
bl sub_8029174
b _08029FF8
.pool
_08029DA0:
ldr r0, =0x0000016f
bl PlayNewMapMusic
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r6, =0x00003008
adds r0, r6
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r4]
ldr r1, =0x00003009
mov r10, r1
add r0, r10
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r5, =gText_AnnouncingPrizes
movs r2, 0x1
negs r2, r2
movs r0, 0x1
adds r1, r5, 0
bl GetStringWidth
adds r1, r0, 0
movs r0, 0xE0
subs r0, r1
lsrs r3, r0, 1
ldr r0, [r4]
adds r0, r6
ldrb r0, [r0]
lsls r3, 24
lsrs r3, 24
movs r2, 0x1
mov r9, r2
str r2, [sp]
movs r1, 0xFF
mov r8, r1
str r1, [sp, 0x4]
movs r6, 0
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
bl DynamicPlaceholderTextUtil_Reset
bl sub_802762C
lsls r0, 16
lsrs r0, 16
ldr r5, =gStringVar1
adds r1, r5, 0
bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r7, =gStringVar4
ldr r1, =gText_FirstPlacePrize
adds r0, r7, 0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, [r4]
add r0, r10
ldrb r0, [r0]
mov r2, r9
str r2, [sp]
mov r1, r8
str r1, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
movs r3, 0
bl AddTextPrinterParameterized
bl sub_80279C8
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
cmp r4, 0
beq _08029EC8
cmp r4, 0x3
beq _08029EC8
bl DynamicPlaceholderTextUtil_Reset
bl sub_802762C
lsls r0, 16
lsrs r0, 16
adds r1, r5, 0
bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
cmp r4, 0x2
bne _08029E9C
ldr r1, =gText_CantHoldAnyMore
adds r0, r7, 0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _08029EA8
.pool
_08029E9C:
cmp r6, 0x1
bne _08029EA8
ldr r1, =gText_FilledStorageSpace
adds r0, r7, 0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_08029EA8:
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
ldr r2, =gStringVar4
movs r1, 0x29
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
_08029EC8:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r4]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r1, [r4]
ldr r0, =0x00003014
adds r1, r0
b _08029F8E
.pool
_08029F08:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08029F2C
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r4]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
bl PutWindowTilemap
_08029F2C:
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, =0x0000020b
movs r1, 0x14
movs r2, 0xA
bl FadeOutAndFadeInNewMapMusic
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r0, =0x00003014
adds r1, r0
b _08029F8E
.pool
_08029F5C:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x0000301c
adds r2, r0, r1
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1D
bls _08029FF8
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08029FF8
movs r0, 0
strh r0, [r2]
movs r0, 0x5
bl PlaySE
_08029F88:
ldr r1, [r4]
_08029F8A:
ldr r2, =0x00003014
adds r1, r2
_08029F8E:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _08029FF8
.pool
_08029FA8:
ldr r5, =0x00003008
adds r0, r1, r5
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r6]
ldr r4, =0x00003009
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r6]
adds r0, r5
ldrb r0, [r0]
bl RemoveWindow
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, [r6]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
movs r1, 0x1
str r1, [r0]
_08029FF8:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_802988C
thumb_func_start sub_802A010
sub_802A010: @ 802A010
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
ldr r1, =gUnknown_02022CF8
ldr r2, [r1]
ldr r3, =0x00003014
adds r0, r2, r3
ldrb r6, [r0]
adds r7, r1, 0
cmp r6, 0x1
beq _0802A0CC
cmp r6, 0x1
bgt _0802A040
cmp r6, 0
beq _0802A04E
b _0802A2FC
.pool
_0802A040:
cmp r6, 0x2
bne _0802A046
b _0802A194
_0802A046:
cmp r6, 0x3
bne _0802A04C
b _0802A1D0
_0802A04C:
b _0802A2FC
_0802A04E:
ldr r0, =gUnknown_082F7BD4
mov r9, r0
bl AddWindow
ldr r1, [r7]
ldr r4, =0x00003008
adds r1, r4
strb r0, [r1]
movs r1, 0x8
add r1, r9
mov r8, r1
mov r0, r8
bl AddWindow
ldr r1, [r7]
ldr r2, =0x00003009
adds r1, r2
strb r0, [r1]
ldr r0, [r7]
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r7]
ldr r3, =0x00003009
adds r0, r3
ldrb r0, [r0]
bl ClearWindowTilemap
mov r0, r9
bl sub_8029174
mov r0, r8
bl sub_8029074
ldr r1, [r7]
ldr r0, =0x00003014
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r7]
ldr r1, =0x00003020
adds r0, r1
strb r6, [r0]
ldr r0, [r7]
ldr r2, =0x00003024
adds r0, r2
strb r6, [r0]
b _0802A35E
.pool
_0802A0CC:
ldr r3, =0x00003008
mov r8, r3
adds r0, r2, r3
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r7]
ldr r1, =0x00003009
mov r10, r1
add r0, r10
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
ldr r2, =gText_WantToPlayAgain
movs r1, 0x5
str r1, [sp]
movs r3, 0xFF
mov r9, r3
str r3, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
ldr r2, =gText_Yes
str r6, [sp]
mov r3, r9
str r3, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
ldr r2, =gText_No
movs r1, 0x11
str r1, [sp]
mov r3, r9
str r3, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
ldr r2, =gText_SelectorArrow2
str r6, [sp]
mov r3, r9
str r3, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r1, [r7]
ldr r2, =0x00003014
adds r1, r2
b _0802A2EA
.pool
_0802A194:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0802A1B6
ldr r0, [r7]
ldr r3, =0x00003008
adds r0, r3
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r7]
ldr r1, =0x00003009
adds r0, r1
ldrb r0, [r0]
bl PutWindowTilemap
_0802A1B6:
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r7]
ldr r2, =0x00003014
adds r1, r2
b _0802A2EA
.pool
_0802A1D0:
ldr r3, =0x00003020
adds r0, r2, r3
ldrb r5, [r0]
cmp r5, 0
bne _0802A1DC
movs r5, 0x1
_0802A1DC:
ldr r0, =0x00003009
mov r8, r0
adds r0, r2, r0
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
ldr r2, =gText_Yes
movs r1, 0x1
str r1, [sp]
movs r3, 0xFF
mov r10, r3
str r3, [sp, 0x4]
movs r1, 0
mov r9, r1
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
ldr r2, =gText_No
movs r1, 0x11
str r1, [sp]
mov r3, r10
str r3, [sp, 0x4]
mov r1, r9
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
ldr r2, =gText_SelectorArrow2
subs r1, r5, 0x1
lsls r1, 4
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
str r1, [sp]
mov r3, r10
str r3, [sp, 0x4]
mov r1, r9
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r5, 0x1
movs r2, 0x1
ands r2, r1
cmp r2, 0
beq _0802A294
movs r0, 0x5
bl PlaySE
ldr r0, [r7]
ldr r3, =0x00003020
adds r1, r0, r3
ldrb r0, [r1]
cmp r0, 0
bne _0802A2E4
strb r5, [r1]
b _0802A2E4
.pool
_0802A294:
movs r0, 0xC0
ands r0, r1
cmp r0, 0
beq _0802A2CC
movs r0, 0x5
bl PlaySE
ldr r0, [r7]
ldr r2, =0x00003020
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0x1
beq _0802A2C2
cmp r0, 0x1
bgt _0802A2BC
cmp r0, 0
beq _0802A2C2
b _0802A35E
.pool
_0802A2BC:
cmp r0, 0x2
beq _0802A2C8
b _0802A35E
_0802A2C2:
movs r0, 0x2
strb r0, [r1]
b _0802A35E
_0802A2C8:
strb r5, [r1]
b _0802A35E
_0802A2CC:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802A35E
movs r0, 0x5
bl PlaySE
ldr r0, [r7]
ldr r3, =0x00003020
adds r0, r3
movs r1, 0x2
strb r1, [r0]
_0802A2E4:
ldr r1, [r7]
ldr r0, =0x00003014
adds r1, r0
_0802A2EA:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0802A35E
.pool
_0802A2FC:
ldr r0, [r7]
ldr r2, =0x00003020
adds r1, r0, r2
ldrb r1, [r1]
ldr r3, =0x00003024
adds r0, r3
strb r1, [r0]
ldr r0, [r7]
ldr r6, =0x00003008
adds r0, r6
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r7]
ldr r1, =0x00003009
adds r0, r1
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r7]
adds r0, r6
ldrb r0, [r0]
bl RemoveWindow
ldr r0, [r7]
ldr r2, =0x00003009
adds r0, r2
ldrb r0, [r0]
bl RemoveWindow
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, [r7]
movs r3, 0xC0
lsls r3, 6
adds r0, r3
movs r1, 0x1
str r1, [r0]
_0802A35E:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_802A010
thumb_func_start sub_802A380
sub_802A380: @ 802A380
push {r4-r6,lr}
sub sp, 0x10
ldr r5, =gUnknown_02022CF8
ldr r0, [r5]
ldr r6, =0x00003014
adds r0, r6
ldrb r4, [r0]
cmp r4, 0x1
beq _0802A3D8
cmp r4, 0x1
bgt _0802A3A4
cmp r4, 0
beq _0802A3AE
b _0802A420
.pool
_0802A3A4:
cmp r4, 0x2
beq _0802A3EC
cmp r4, 0x3
beq _0802A404
b _0802A420
_0802A3AE:
movs r0, 0
movs r1, 0
bl DrawDialogueFrame
ldr r2, =gText_SavingDontTurnOffPower
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized2
b _0802A410
.pool
_0802A3D8:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r1, [r5]
ldr r0, =0x00003014
adds r1, r0
b _0802A414
.pool
_0802A3EC:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0802A448
ldr r0, =sub_8153688
movs r1, 0
bl CreateTask
b _0802A410
.pool
_0802A404:
ldr r0, =sub_8153688
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
bne _0802A448
_0802A410:
ldr r1, [r5]
adds r1, r6
_0802A414:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0802A448
.pool
_0802A420:
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
movs r1, 0x1
str r1, [r0]
_0802A448:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_802A380
thumb_func_start sub_802A454
sub_802A454: @ 802A454
push {r4-r6,lr}
sub sp, 0xC
ldr r1, =gUnknown_02022CF8
ldr r2, [r1]
ldr r6, =0x00003014
adds r0, r2, r6
ldrb r0, [r0]
adds r5, r1, 0
cmp r0, 0x1
beq _0802A4AC
cmp r0, 0x1
bgt _0802A47C
cmp r0, 0
beq _0802A482
b _0802A520
.pool
_0802A47C:
cmp r0, 0x2
beq _0802A4F4
b _0802A520
_0802A482:
ldr r4, =gUnknown_082F7BEC
adds r0, r4, 0
bl AddWindow
ldr r1, [r5]
ldr r2, =0x00003008
adds r1, r2
strb r0, [r1]
ldr r0, [r5]
adds r0, r2
ldrb r0, [r0]
bl ClearWindowTilemap
adds r0, r4, 0
bl sub_8029174
b _0802A510
.pool
_0802A4AC:
ldr r4, =0x00003008
adds r0, r2, r4
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
ldr r2, =gText_CommunicationStandby3
movs r1, 0x5
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r1, [r5]
ldr r0, =0x00003014
adds r1, r0
b _0802A514
.pool
_0802A4F4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0802A50A
ldr r0, [r5]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
bl PutWindowTilemap
_0802A50A:
movs r0, 0
bl CopyBgTilemapBufferToVram
_0802A510:
ldr r1, [r5]
adds r1, r6
_0802A514:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0802A52C
.pool
_0802A520:
ldr r0, [r5]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
movs r1, 0x1
str r1, [r0]
_0802A52C:
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_802A454
thumb_func_start sub_802A534
sub_802A534: @ 802A534
push {r4,r5,lr}
sub sp, 0x8
ldr r5, =gUnknown_02022CF8
ldr r0, [r5]
ldr r4, =0x00003008
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, [r5]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
movs r1, 0x1
str r1, [r0]
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_802A534
thumb_func_start sub_802A588
sub_802A588: @ 802A588
push {r4-r7,lr}
sub sp, 0xC
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r7, =0x00003014
adds r2, r1, r7
ldrb r5, [r2]
adds r6, r0, 0
cmp r5, 0x1
beq _0802A610
cmp r5, 0x1
bgt _0802A5B0
cmp r5, 0
beq _0802A5BA
b _0802A6A4
.pool
_0802A5B0:
cmp r5, 0x2
beq _0802A658
cmp r5, 0x3
beq _0802A684
b _0802A6A4
_0802A5BA:
ldr r4, =gUnknown_082F7BE4
adds r0, r4, 0
bl AddWindow
ldr r1, [r6]
ldr r2, =0x00003008
adds r1, r2
strb r0, [r1]
ldr r0, [r6]
adds r0, r2
ldrb r0, [r0]
bl ClearWindowTilemap
adds r0, r4, 0
bl sub_8029174
ldr r1, [r6]
adds r1, r7
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r6]
ldr r2, =0x0000301c
adds r1, r0, r2
movs r2, 0
strh r5, [r1]
ldr r1, =0x00003020
adds r0, r1
strb r2, [r0]
ldr r0, [r6]
adds r1, 0x4
adds r0, r1
strb r2, [r0]
b _0802A6EA
.pool
_0802A610:
ldr r4, =0x00003008
adds r0, r1, r4
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
ldr r2, =gText_SomeoneDroppedOut
movs r1, 0x5
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r1, [r6]
ldr r2, =0x00003014
adds r1, r2
b _0802A678
.pool
_0802A658:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0802A66E
ldr r0, [r6]
ldr r1, =0x00003008
adds r0, r1
ldrb r0, [r0]
bl PutWindowTilemap
_0802A66E:
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r6]
adds r1, r7
_0802A678:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0802A6EA
.pool
_0802A684:
ldr r0, =0x0000301c
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x77
bls _0802A6EA
ldrb r0, [r2]
adds r0, 0x1
strb r0, [r2]
b _0802A6EA
.pool
_0802A6A4:
ldr r0, [r6]
ldr r1, =0x00003024
adds r0, r1
movs r1, 0x5
strb r1, [r0]
ldr r0, [r6]
ldr r4, =0x00003008
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, [r6]
movs r2, 0xC0
lsls r2, 6
adds r0, r2
movs r1, 0x1
str r1, [r0]
_0802A6EA:
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_802A588
thumb_func_start unused_0
unused_0: @ 802A6FC
push {r4,lr}
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
ldr r1, =0x00003004
adds r0, r1
ldrb r0, [r0]
bl DestroyTask
ldr r0, [r4]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
movs r1, 0x1
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end unused_0
thumb_func_start nullsub_16
nullsub_16: @ 802A728
bx lr
thumb_func_end nullsub_16
thumb_func_start sub_802A72C
sub_802A72C: @ 802A72C
push {r4,lr}
ldr r2, =gUnknown_02022CF8
ldr r1, [r2]
ldr r3, =0x00003014
adds r1, r3
movs r3, 0
strb r3, [r1]
ldr r1, [r2]
movs r4, 0xC0
lsls r4, 6
adds r2, r1, r4
str r3, [r2]
ldr r2, =0x00003028
adds r1, r2
str r0, [r1]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_802A72C
thumb_func_start sub_802A75C
sub_802A75C: @ 802A75C
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
ldr r1, =0x00003028
adds r0, r1
ldr r0, [r0]
bx lr
.pool
thumb_func_end sub_802A75C
thumb_func_start sub_802A770
sub_802A770: @ 802A770
push {lr}
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
beq _0802A78C
movs r0, 0x1
b _0802A78E
.pool
_0802A78C:
movs r0, 0
_0802A78E:
pop {r1}
bx r1
thumb_func_end sub_802A770
thumb_func_start sub_802A794
sub_802A794: @ 802A794
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
ldr r1, =0x00003024
adds r0, r1
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_802A794
thumb_func_start sub_802A7A8
sub_802A7A8: @ 802A7A8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
movs r3, 0xC0
lsls r3, 19
movs r4, 0xC0
lsls r4, 9
add r0, sp, 0x4
mov r8, r0
mov r2, sp
movs r6, 0
ldr r1, =0x040000d4
movs r5, 0x80
lsls r5, 5
ldr r7, =0x81000800
movs r0, 0x81
lsls r0, 24
mov r12, r0
_0802A7CE:
strh r6, [r2]
mov r0, sp
str r0, [r1]
str r3, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r3, r5
subs r4, r5
cmp r4, r5
bhi _0802A7CE
strh r6, [r2]
mov r2, sp
str r2, [r1]
str r3, [r1, 0x4]
lsrs r0, r4, 1
mov r2, r12
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r0, 0xE0
lsls r0, 19
movs r3, 0x80
lsls r3, 3
movs r4, 0
str r4, [sp, 0x4]
ldr r2, =0x040000d4
mov r1, r8
str r1, [r2]
str r0, [r2, 0x4]
lsrs r0, r3, 2
movs r1, 0x85
lsls r1, 24
orrs r0, r1
str r0, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r1, 0xA0
lsls r1, 19
mov r0, sp
strh r4, [r0]
str r0, [r2]
str r1, [r2, 0x4]
lsrs r3, 1
movs r0, 0x81
lsls r0, 24
orrs r3, r0
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r0, 0
movs r1, 0
bl SetGpuReg
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_082F7BA4
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
bl InitStandardTextBoxWindows
bl sub_8197200
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
ldr r4, =gUnknown_02022CF8
ldr r1, [r4]
movs r0, 0x3
bl SetBgTilemapBuffer
ldr r1, [r4]
movs r2, 0x80
lsls r2, 5
adds r1, r2
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
movs r0, 0x80
lsls r0, 6
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_802A7A8
thumb_func_start sub_802A8E8
sub_802A8E8: @ 802A8E8
push {lr}
sub sp, 0x4
ldr r0, =gUnknown_02022CF8
ldr r0, [r0]
ldr r2, =0x00003018
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0x5
bhi _0802A982
lsls r0, 2
ldr r1, =_0802A910
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0802A910:
.4byte _0802A928
.4byte _0802A938
.4byte _0802A93E
.4byte _0802A94C
.4byte _0802A964
.4byte _0802A972
_0802A928:
ldr r0, =gDodrioBerryBgPal1
movs r1, 0
movs r2, 0x40
bl LoadPalette
b _0802A98A
.pool
_0802A938:
bl reset_temp_tile_data_buffers
b _0802A98A
_0802A93E:
ldr r1, =gDodrioBerryBgGfx1
movs r0, 0
str r0, [sp]
movs r0, 0x3
b _0802A954
.pool
_0802A94C:
ldr r1, =gDodrioBerryBgGfx2
movs r0, 0
str r0, [sp]
movs r0, 0x1
_0802A954:
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
b _0802A98A
.pool
_0802A964:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0802A98A
b _0802A998
_0802A972:
movs r0, 0x3
bl stdpal_get
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
b _0802A98A
_0802A982:
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _0802A99A
_0802A98A:
ldr r0, =gUnknown_02022CF8
ldr r1, [r0]
ldr r0, =0x00003018
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_0802A998:
movs r0, 0
_0802A99A:
add sp, 0x4
pop {r1}
bx r1
.pool
thumb_func_end sub_802A8E8
.align 2, 0 @ don't pad with nop