mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 04:04:17 +01:00
11807 lines
174 KiB
ArmAsm
11807 lines
174 KiB
ArmAsm
|
.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
|