mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
15873 lines
236 KiB
ArmAsm
15873 lines
236 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start TaskDummy1
|
|
TaskDummy1: @ 80D7668
|
|
bx lr
|
|
thumb_func_end TaskDummy1
|
|
|
|
thumb_func_start sub_80D766C
|
|
sub_80D766C: @ 80D766C
|
|
ldr r1, =gUnknown_02039F2A
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80D766C
|
|
|
|
thumb_func_start sub_80D7678
|
|
sub_80D7678: @ 80D7678
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
movs r1, 0x40
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r4, =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r1, 0xFE
|
|
lsls r1, 7
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E18
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1A
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1C
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E20
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E22
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E24
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E26
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E28
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E2A
|
|
strh r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7678
|
|
|
|
thumb_func_start sub_80D7724
|
|
sub_80D7724: @ 80D7724
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_08C17AB0
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08C1850C
|
|
ldr r1, =0x06002000
|
|
bl LZDecompressVram
|
|
ldr r1, =gUnknown_08C16FA8
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gUnknown_08C16E90
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
movs r1, 0
|
|
bl LoadCompressedPalette
|
|
bl sub_80D782C
|
|
movs r4, 0
|
|
movs r5, 0xA0
|
|
_080D775E:
|
|
ldr r0, =0x0201a004
|
|
adds r0, r5, r0
|
|
ldr r1, =gUnknown_02039F26
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x5
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r5, 0x20
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080D775E
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7724
|
|
|
|
thumb_func_start sub_80D779C
|
|
sub_80D779C: @ 80D779C
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_08587F34
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
movs r0, 0x3
|
|
movs r1, 0x6
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
movs r4, 0
|
|
_080D77BA:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
lsls r2, r4, 2
|
|
adds r1, 0x24
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl SetBgTilemapBuffer
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080D77BA
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D779C
|
|
|
|
thumb_func_start sub_80D77E4
|
|
sub_80D77E4: @ 80D77E4
|
|
push {lr}
|
|
ldr r0, =gUnknown_08587F44
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D7818
|
|
ldr r2, =gTextFlags
|
|
ldrb r1, [r2]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
b _080D7822
|
|
.pool
|
|
_080D7818:
|
|
ldr r0, =gTextFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080D7822:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D77E4
|
|
|
|
thumb_func_start sub_80D782C
|
|
sub_80D782C: @ 80D782C
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_08587C30
|
|
movs r1, 0xF0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl FillPalette
|
|
movs r5, 0xA
|
|
movs r4, 0xFA
|
|
lsls r4, 16
|
|
_080D7848:
|
|
lsrs r1, r4, 16
|
|
ldr r0, =gPlttBufferUnfaded + 0x1E2
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r4, r0
|
|
adds r5, 0x1
|
|
cmp r5, 0xD
|
|
ble _080D7848
|
|
ldr r0, =0x00007e3f
|
|
movs r1, 0xF3
|
|
movs r2, 0x2
|
|
bl FillPalette
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D782C
|
|
|
|
thumb_func_start sub_80D787C
|
|
sub_80D787C: @ 80D787C
|
|
push {r4-r7,lr}
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0x5C
|
|
bl memset
|
|
movs r5, 0
|
|
movs r2, 0xFF
|
|
_080D7890:
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
adds r1, 0x2
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080D7890
|
|
movs r4, 0
|
|
ldr r6, =gUnknown_02039F34
|
|
movs r5, 0x3
|
|
_080D78AA:
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0
|
|
movs r2, 0x1C
|
|
bl memset
|
|
adds r4, 0x1C
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080D78AA
|
|
ldr r4, =gUnknown_02039F34
|
|
movs r7, 0x4
|
|
negs r7, r7
|
|
movs r6, 0xFF
|
|
movs r3, 0
|
|
movs r5, 0x3
|
|
_080D78CC:
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r3, r1
|
|
ldrb r2, [r1, 0xB]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xB]
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r3, r1
|
|
ldrb r0, [r1, 0x13]
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x13]
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r3, r1
|
|
ldrb r0, [r1, 0x14]
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x14]
|
|
adds r3, 0x1C
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080D78CC
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0xC]
|
|
movs r1, 0
|
|
movs r2, 0x44
|
|
bl memset
|
|
ldr r2, [r4]
|
|
ldr r1, [r2, 0x10]
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, [r2, 0x14]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D7938
|
|
movs r0, 0
|
|
bl sub_80DCE58
|
|
_080D7938:
|
|
movs r5, 0
|
|
adds r2, r4, 0
|
|
movs r6, 0xFF
|
|
movs r3, 0
|
|
ldr r4, =gUnknown_02039F26
|
|
_080D7942:
|
|
ldr r0, [r2]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r3, r1
|
|
ldrb r0, [r1, 0x19]
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x19]
|
|
ldr r0, [r2]
|
|
ldr r1, [r0]
|
|
adds r1, 0x14
|
|
adds r1, r5
|
|
adds r0, r5, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r3, 0x1C
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080D7942
|
|
bl sub_80DD590
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x1C]
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl memset
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D787C
|
|
|
|
thumb_func_start sub_80D7988
|
|
sub_80D7988: @ 80D7988
|
|
push {r4,r5,lr}
|
|
ldr r4, =gUnknown_02039F34
|
|
movs r0, 0x40
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0x5C
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1]
|
|
movs r0, 0x70
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0x14
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x8]
|
|
movs r0, 0x44
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0xC]
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x10]
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x14]
|
|
movs r0, 0x14
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x18]
|
|
movs r0, 0x40
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x1C]
|
|
movs r0, 0xC
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x20]
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x24]
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x28]
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x2C]
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x30]
|
|
movs r5, 0x80
|
|
lsls r5, 4
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x34]
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x38]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
ldr r2, [r4]
|
|
str r0, [r2, 0x3C]
|
|
ldr r1, =gUnknown_0202305C
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02023060
|
|
ldr r0, [r2, 0x28]
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7988
|
|
|
|
thumb_func_start sub_80D7A5C
|
|
sub_80D7A5C: @ 80D7A5C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
movs r4, 0
|
|
str r4, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x4]
|
|
ldr r0, [r0, 0x8]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x8]
|
|
ldr r0, [r0, 0xC]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0xC]
|
|
ldr r0, [r0, 0x10]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x10]
|
|
ldr r0, [r0, 0x14]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x14]
|
|
ldr r0, [r0, 0x18]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x18]
|
|
ldr r0, [r0, 0x1C]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x1C]
|
|
ldr r0, [r0, 0x20]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x20]
|
|
ldr r0, [r0, 0x24]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x24]
|
|
ldr r0, [r0, 0x28]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x28]
|
|
ldr r0, [r0, 0x2C]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x2C]
|
|
ldr r0, [r0, 0x30]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x30]
|
|
ldr r0, [r0, 0x34]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x34]
|
|
ldr r0, [r0, 0x38]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x38]
|
|
ldr r0, [r0, 0x3C]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x3C]
|
|
bl Free
|
|
str r4, [r5]
|
|
ldr r0, =gUnknown_0202305C
|
|
str r4, [r0]
|
|
ldr r0, =gUnknown_02023060
|
|
str r4, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7A5C
|
|
|
|
thumb_func_start sub_80D7B24
|
|
sub_80D7B24: @ 80D7B24
|
|
push {r4-r6,lr}
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r6, r0, r1
|
|
ldrb r5, [r6]
|
|
cmp r5, 0x1
|
|
beq _080D7BD4
|
|
cmp r5, 0x1
|
|
bgt _080D7B44
|
|
cmp r5, 0
|
|
beq _080D7B4E
|
|
b _080D7C56
|
|
.pool
|
|
_080D7B44:
|
|
cmp r5, 0x2
|
|
beq _080D7BDA
|
|
cmp r5, 0x3
|
|
beq _080D7C04
|
|
b _080D7C56
|
|
_080D7B4E:
|
|
ldr r0, =gUnknown_02039F38
|
|
strb r5, [r0]
|
|
bl sub_80D7988
|
|
bl init_uns_table_pokemon_copy
|
|
ldr r4, =gUnknown_020244D4
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r4]
|
|
str r5, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
bl sub_80D779C
|
|
bl sub_80D77E4
|
|
bl sub_80D7678
|
|
bl dp12_8087EA4
|
|
bl ResetPaletteFade
|
|
ldr r2, =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x8]
|
|
bl ResetSpriteData
|
|
bl ResetTasks
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, =gReservedSpritePaletteCount
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
strb r5, [r0]
|
|
bl sub_806E414
|
|
bl sub_80D787C
|
|
b _080D7BF6
|
|
.pool
|
|
_080D7BD4:
|
|
movs r0, 0x2
|
|
strb r0, [r6]
|
|
b _080D7C56
|
|
_080D7BDA:
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
adds r0, 0x59
|
|
bl sub_80D7E44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D7C56
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
adds r0, 0x59
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_080D7BF6:
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
b _080D7C56
|
|
.pool
|
|
_080D7C04:
|
|
bl sub_80DE224
|
|
ldr r0, =gUnknown_02022E18
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1A
|
|
strh r1, [r0]
|
|
movs r0, 0x2
|
|
bl BeginFastPaletteFade
|
|
ldr r2, =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r0, =vblank_cb_battle
|
|
bl SetVBlankCallback
|
|
ldr r0, =sub_80D7C7C
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0x8]
|
|
ldr r0, =sub_80D823C
|
|
bl SetMainCallback2
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D7C56
|
|
bl sub_800E0E8
|
|
movs r0, 0x8
|
|
movs r1, 0x8
|
|
bl sub_800DFB4
|
|
_080D7C56:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7B24
|
|
|
|
thumb_func_start sub_80D7C7C
|
|
sub_80D7C7C: @ 80D7C7C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _080D7CA2
|
|
ldr r0, =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r2, [r1, 0x8]
|
|
ldr r0, =sub_80D7CB4
|
|
str r0, [r1]
|
|
_080D7CA2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7C7C
|
|
|
|
thumb_func_start sub_80D7CB4
|
|
sub_80D7CB4: @ 80D7CB4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D7D90
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D7D3A
|
|
ldr r2, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r0, r1, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
adds r6, r1, 0
|
|
cmp r0, 0x1
|
|
beq _080D7D04
|
|
cmp r0, 0x1
|
|
bgt _080D7CF4
|
|
cmp r0, 0
|
|
beq _080D7CFA
|
|
b _080D7D3A
|
|
.pool
|
|
_080D7CF4:
|
|
cmp r0, 0x2
|
|
beq _080D7D28
|
|
b _080D7D3A
|
|
_080D7CFA:
|
|
bl sub_80DBF68
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080D7D04:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D7D9E
|
|
bl sub_800ADF8
|
|
ldr r0, =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _080D7D9E
|
|
.pool
|
|
_080D7D28:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080D7D9E
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080D7D3A:
|
|
ldr r2, =gPaletteFade
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080D7D9E
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D7D62
|
|
bl sub_80DBF68
|
|
_080D7D62:
|
|
ldr r0, =sub_80D7DAC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r4, [r0, 0x8]
|
|
ldr r1, =TaskDummy1
|
|
str r1, [r0]
|
|
b _080D7D9E
|
|
.pool
|
|
_080D7D90:
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80D80C8
|
|
str r0, [r1]
|
|
_080D7D9E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7CB4
|
|
|
|
thumb_func_start sub_80D7DAC
|
|
sub_80D7DAC: @ 80D7DAC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =sub_80FC998
|
|
ldr r2, =sub_80D7DC8
|
|
bl SetTaskFuncWithFollowupFunc
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7DAC
|
|
|
|
thumb_func_start sub_80D7DC8
|
|
sub_80D7DC8: @ 80D7DC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
ldr r0, =sub_80D7DE8
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80D7DC8
|
|
|
|
thumb_func_start sub_80D7DE8
|
|
sub_80D7DE8: @ 80D7DE8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r5, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x8]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bgt _080D7E2A
|
|
bl link_get_multiplayer_id
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x8]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
ldr r1, =sub_80D80C8
|
|
str r1, [r0]
|
|
ldr r1, =gRngValue
|
|
ldr r0, =gUnknown_030060B8
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_080D7E2A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D7DE8
|
|
|
|
thumb_func_start sub_80D7E44
|
|
sub_80D7E44: @ 80D7E44
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x40
|
|
mov r10, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bls _080D7E5A
|
|
b _080D80A4
|
|
_080D7E5A:
|
|
lsls r0, 2
|
|
ldr r1, =_080D7E68
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080D7E68:
|
|
.4byte _080D7E84
|
|
.4byte _080D7EC8
|
|
.4byte _080D7ED8
|
|
.4byte _080D7F28
|
|
.4byte _080D7F40
|
|
.4byte _080D7F7C
|
|
.4byte _080D8004
|
|
_080D7E84:
|
|
ldr r2, =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x8]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
movs r4, 0x80
|
|
lsls r4, 8
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
ldr r1, =0x06008000
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
ldr r1, =0x06010000
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
b _080D80AE
|
|
.pool
|
|
_080D7EC8:
|
|
ldr r0, =gUnknown_08C17AB0
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
b _080D80AE
|
|
.pool
|
|
_080D7ED8:
|
|
ldr r0, =gUnknown_08C1850C
|
|
ldr r4, =0x06002000
|
|
adds r1, r4, 0
|
|
bl LZDecompressVram
|
|
ldr r3, =0x02018000
|
|
movs r5, 0x80
|
|
lsls r5, 6
|
|
ldr r1, =0x040000d4
|
|
ldr r6, =0x84000400
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x84
|
|
lsls r7, 24
|
|
_080D7EF4:
|
|
str r4, [r1]
|
|
str r3, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r4, r2
|
|
adds r3, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _080D7EF4
|
|
str r4, [r1]
|
|
str r3, [r1, 0x4]
|
|
lsrs r0, r5, 2
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
b _080D80AE
|
|
.pool
|
|
_080D7F28:
|
|
ldr r1, =gUnknown_08C16FA8
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
b _080D80AE
|
|
.pool
|
|
_080D7F40:
|
|
ldr r1, =gUnknown_08C17170
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x2C]
|
|
ldr r2, =0x0201aa04
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x84000200
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
b _080D80AE
|
|
.pool
|
|
_080D7F7C:
|
|
ldr r0, =gUnknown_08C16E90
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
movs r1, 0
|
|
bl LoadCompressedPalette
|
|
ldr r5, =gPlttBufferUnfaded + 0x100
|
|
ldr r6, =0x04000008
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
ldr r0, =gUnknown_02039F25
|
|
mov r9, r0
|
|
ldrb r0, [r0]
|
|
adds r0, 0x5
|
|
lsls r0, 5
|
|
ldr r1, =0xffffff00
|
|
adds r1, r5
|
|
mov r8, r1
|
|
add r0, r8
|
|
add r4, sp, 0x20
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
adds r1, 0x5
|
|
lsls r1, 5
|
|
add r1, r8
|
|
mov r0, sp
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
ldr r1, =0x0201a004
|
|
ldr r0, =0x040000d4
|
|
mov r2, r8
|
|
str r2, [r0]
|
|
str r1, [r0, 0x4]
|
|
ldr r1, =0x84000080
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
bl sub_80D782C
|
|
b _080D80AE
|
|
.pool
|
|
_080D8004:
|
|
bl sub_80DD04C
|
|
bl sub_80DBF90
|
|
bl sub_80DB2BC
|
|
bl sub_80DB120
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
movs r4, 0
|
|
strb r0, [r1, 0x12]
|
|
bl sub_80DC2BC
|
|
bl sub_80DC4F0
|
|
bl sub_80DC594
|
|
bl sub_80DC5E8
|
|
bl sub_80DC7EC
|
|
ldr r1, =gBanksBySide
|
|
strb r4, [r1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
movs r3, 0x3
|
|
strb r3, [r1, 0x2]
|
|
movs r2, 0x2
|
|
strb r2, [r1, 0x3]
|
|
ldr r0, =gBattleTypeFlags
|
|
str r4, [r0]
|
|
ldr r4, =gBankAttacker
|
|
strb r2, [r4]
|
|
ldr r0, =gBankTarget
|
|
strb r3, [r0]
|
|
bl sub_80DB0C4
|
|
ldr r2, =gBankSpriteIds
|
|
ldrb r1, [r4]
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
bl sub_80DEA20
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
b _080D80AE
|
|
.pool
|
|
_080D80A4:
|
|
movs r0, 0
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
b _080D80B8
|
|
_080D80AE:
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
movs r0, 0
|
|
_080D80B8:
|
|
add sp, 0x40
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80D7E44
|
|
|
|
thumb_func_start sub_80D80C8
|
|
sub_80D80C8: @ 80D80C8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, =gPaletteFade
|
|
ldrb r2, [r1, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r1, 0x8]
|
|
ldrb r1, [r1, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _080D80F8
|
|
ldr r0, =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r2, [r1, 0x8]
|
|
strh r2, [r1, 0xA]
|
|
ldr r0, =sub_80D8108
|
|
str r0, [r1]
|
|
_080D80F8:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D80C8
|
|
|
|
thumb_func_start sub_80D8108
|
|
sub_80D8108: @ 80D8108
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x4
|
|
bhi _080D8208
|
|
lsls r0, 2
|
|
ldr r1, =_080D8138
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080D8138:
|
|
.4byte _080D814C
|
|
.4byte _080D8176
|
|
.4byte _080D8194
|
|
.4byte _080D81B0
|
|
.4byte _080D8208
|
|
_080D814C:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0xA]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3C
|
|
ble _080D822C
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
movs r0, 0x61
|
|
movs r1, 0
|
|
bl audio_play_and_stuff
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080D822C
|
|
_080D8176:
|
|
ldr r1, =gUnknown_02022E1A
|
|
ldrh r0, [r1]
|
|
adds r0, 0x7
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA0
|
|
ble _080D822C
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
b _080D81FA
|
|
.pool
|
|
_080D8194:
|
|
bl sub_80DE350
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _080D822C
|
|
.pool
|
|
_080D81B0:
|
|
movs r0, 0x8
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
movs r0, 0xC
|
|
bl GetGpuReg
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r0, [r4]
|
|
mov r3, sp
|
|
ldrb r2, [r3]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
ldrb r0, [r4]
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
bl sub_80DDB0C
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
_080D81FA:
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _080D822C
|
|
.pool
|
|
_080D8208:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080D822C
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
strh r1, [r0, 0x8]
|
|
strh r1, [r0, 0xA]
|
|
ldr r1, =sub_80D833C
|
|
str r1, [r0]
|
|
_080D822C:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8108
|
|
|
|
thumb_func_start sub_80D823C
|
|
sub_80D823C: @ 80D823C
|
|
push {r4,r5,lr}
|
|
bl AnimateSprites
|
|
bl RunTasks
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
movs r4, 0
|
|
_080D8250:
|
|
ldr r5, =gUnknown_02039F38
|
|
ldrb r0, [r5]
|
|
asrs r0, r4
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D8266
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl CopyBgTilemapBufferToVram
|
|
_080D8266:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080D8250
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D823C
|
|
|
|
thumb_func_start vblank_cb_battle
|
|
vblank_cb_battle: @ 80D827C
|
|
push {lr}
|
|
ldr r0, =gUnknown_02022E14
|
|
ldrh r1, [r0]
|
|
movs r0, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E16
|
|
ldrh r1, [r0]
|
|
movs r0, 0x12
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E18
|
|
ldrh r1, [r0]
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E1A
|
|
ldrh r1, [r0]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E1C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x18
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E1E
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1A
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E20
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1C
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E22
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1E
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E24
|
|
ldrh r1, [r0]
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E26
|
|
ldrh r1, [r0]
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E28
|
|
ldrh r1, [r0]
|
|
movs r0, 0x42
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E2A
|
|
ldrh r1, [r0]
|
|
movs r0, 0x46
|
|
bl SetGpuReg
|
|
bl TransferPlttBuffer
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl sub_80BA0A8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end vblank_cb_battle
|
|
|
|
thumb_func_start sub_80D833C
|
|
sub_80D833C: @ 80D833C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
bne _080D840C
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
bl sub_80DCD48
|
|
ldr r1, =gPlttBufferUnfaded
|
|
ldr r2, =0x0201a204
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x84000100
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
adds r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
bl sub_80DBCA8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080D83CC
|
|
ldr r0, =gUnknown_02022E2C
|
|
ldr r1, =gUnknown_0827D507
|
|
bl StringCopy
|
|
b _080D83D4
|
|
.pool
|
|
_080D83CC:
|
|
ldr r0, =gUnknown_02022E2C
|
|
ldr r1, =gUnknown_0827D531
|
|
bl StringCopy
|
|
_080D83D4:
|
|
bl sub_80DB89C
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_02022E2C
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _080D841A
|
|
.pool
|
|
_080D840C:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
bne _080D841A
|
|
strh r0, [r4, 0x8]
|
|
ldr r0, =sub_80D8424
|
|
str r0, [r4]
|
|
_080D841A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D833C
|
|
|
|
thumb_func_start sub_80D8424
|
|
sub_80D8424: @ 80D8424
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D843C
|
|
cmp r1, 0x2
|
|
bne _080D8482
|
|
_080D843C:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
bl sub_80DBCA8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080D8474
|
|
movs r0, 0x1
|
|
bl sub_80DC490
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80D8490
|
|
b _080D8480
|
|
.pool
|
|
_080D8474:
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80D8894
|
|
_080D8480:
|
|
str r0, [r1]
|
|
_080D8482:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8424
|
|
|
|
thumb_func_start sub_80D8490
|
|
sub_80D8490: @ 80D8490
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r0, =gUnknown_02022E16
|
|
movs r1, 0xA0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_02039F25
|
|
mov r8, r0
|
|
ldr r2, =gUnknown_02039E1E
|
|
mov r10, r2
|
|
ldr r7, =gUnknown_02039F34
|
|
_080D84B8:
|
|
lsls r1, r6, 1
|
|
mov r0, r8
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 6
|
|
adds r1, r0
|
|
add r1, r10
|
|
ldrh r4, [r1]
|
|
add r5, sp, 0x4
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
beq _080D853C
|
|
adds r0, r2, 0
|
|
bl sub_80DE1E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D853C
|
|
ldr r0, [r7]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x8]
|
|
adds r1, r4, 0
|
|
bl AreMovesContestCombo
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D853C
|
|
ldr r0, [r7]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D853C
|
|
add r0, sp, 0x4
|
|
ldr r1, =gUnknown_085ED1A0
|
|
b _080D8566
|
|
.pool
|
|
_080D853C:
|
|
cmp r4, 0
|
|
beq _080D856C
|
|
ldr r0, [r7]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x8]
|
|
cmp r0, r4
|
|
bne _080D856C
|
|
ldr r0, =gContestMoves
|
|
lsls r1, r4, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _080D856C
|
|
add r0, sp, 0x4
|
|
ldr r1, =gUnknown_085ED1A7
|
|
_080D8566:
|
|
bl StringCopy
|
|
adds r5, r0, 0
|
|
_080D856C:
|
|
movs r0, 0xD
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
ldr r0, =gMoveNames
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
bl StringCopy
|
|
adds r4, r6, 0x5
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x4
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _080D84B8
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_80D880C
|
|
ldr r2, =gUnknown_02039E00
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0]
|
|
lsls r1, 1
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
adds r2, 0x1E
|
|
adds r1, r2
|
|
ldrh r0, [r1]
|
|
bl prints_contest_move_description
|
|
ldr r1, =gTasks
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_80D8610
|
|
str r1, [r0]
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8490
|
|
|
|
thumb_func_start sub_80D8610
|
|
sub_80D8610: @ 80D8610
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
ldr r3, =gMain
|
|
ldr r1, =gUnknown_02039E00
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
lsls r0, 6
|
|
adds r1, 0x1E
|
|
adds r1, r0, r1
|
|
movs r2, 0x3
|
|
_080D8628:
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _080D8634
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080D8634:
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080D8628
|
|
ldrh r0, [r3, 0x2E]
|
|
movs r5, 0x1
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _080D8670
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, =gTasks
|
|
lsls r1, r7, 2
|
|
adds r1, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80D8894
|
|
str r0, [r1]
|
|
b _080D87FA
|
|
.pool
|
|
_080D8670:
|
|
ldrh r0, [r3, 0x30]
|
|
cmp r0, 0x20
|
|
bne _080D8678
|
|
b _080D87FA
|
|
_080D8678:
|
|
cmp r0, 0x20
|
|
bgt _080D8682
|
|
cmp r0, 0x2
|
|
beq _080D868E
|
|
b _080D87FA
|
|
_080D8682:
|
|
cmp r0, 0x40
|
|
beq _080D8730
|
|
cmp r0, 0x80
|
|
bne _080D868C
|
|
b _080D879C
|
|
_080D868C:
|
|
b _080D87FA
|
|
_080D868E:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0
|
|
bl sub_80DC490
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, 0x1]
|
|
adds r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
bl sub_80DBCA8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080D86DC
|
|
ldr r0, =gUnknown_02022E2C
|
|
ldr r1, =gUnknown_0827D507
|
|
bl StringCopy
|
|
b _080D86E4
|
|
.pool
|
|
_080D86DC:
|
|
ldr r0, =gUnknown_02022E2C
|
|
ldr r1, =gUnknown_0827D531
|
|
bl StringCopy
|
|
_080D86E4:
|
|
bl sub_80DB89C
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_02022E2C
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_80DEC30
|
|
ldr r0, =gUnknown_02022E16
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_80D8424
|
|
str r1, [r0]
|
|
b _080D87FA
|
|
.pool
|
|
_080D8730:
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_80D883C
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080D8754
|
|
subs r0, r6, 0x1
|
|
b _080D8756
|
|
.pool
|
|
_080D8754:
|
|
subs r0, 0x1
|
|
_080D8756:
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_80D880C
|
|
ldr r2, =gUnknown_02039E00
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0]
|
|
lsls r1, 1
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
adds r2, 0x1E
|
|
adds r1, r2
|
|
ldrh r0, [r1]
|
|
bl prints_contest_move_description
|
|
cmp r6, 0x1
|
|
bls _080D87FA
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
b _080D87FA
|
|
.pool
|
|
_080D879C:
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_80D883C
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
ldrb r2, [r1]
|
|
subs r0, r6, 0x1
|
|
cmp r2, r0
|
|
bne _080D87C0
|
|
strb r5, [r1]
|
|
b _080D87C4
|
|
.pool
|
|
_080D87C0:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r1]
|
|
_080D87C4:
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_80D880C
|
|
ldr r2, =gUnknown_02039E00
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0]
|
|
lsls r1, 1
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
adds r2, 0x1E
|
|
adds r1, r2
|
|
ldrh r0, [r1]
|
|
bl prints_contest_move_description
|
|
cmp r6, 0x1
|
|
bls _080D87FA
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
_080D87FA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8610
|
|
|
|
thumb_func_start sub_80D880C
|
|
sub_80D880C: @ 80D880C
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
lsls r3, 25
|
|
movs r0, 0xF8
|
|
lsls r0, 21
|
|
adds r3, r0
|
|
lsrs r3, 24
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0x2
|
|
movs r1, 0x37
|
|
movs r2, 0
|
|
bl sub_80DECB8
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80D880C
|
|
|
|
thumb_func_start sub_80D883C
|
|
sub_80D883C: @ 80D883C
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
asrs r4, 23
|
|
adds r3, r4, 0
|
|
adds r3, 0x1F
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
movs r5, 0x1
|
|
str r5, [sp, 0x4]
|
|
movs r6, 0x11
|
|
str r6, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl sub_80DECB8
|
|
adds r4, 0x20
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0x2
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
adds r3, r4, 0
|
|
bl sub_80DECB8
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80D883C
|
|
|
|
thumb_func_start sub_80D8894
|
|
sub_80D8894: @ 80D8894
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D890C
|
|
ldr r4, =gUnknown_02039F25
|
|
ldrb r0, [r4]
|
|
bl sub_80DB8B8
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldrb r2, [r4]
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
strh r0, [r1, 0x6]
|
|
ldr r4, =sub_80FC9F8
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =sub_80D892C
|
|
adds r1, r4, 0
|
|
bl SetTaskFuncWithFollowupFunc
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =TaskDummy1
|
|
str r1, [r0]
|
|
bl sub_80DBF68
|
|
movs r0, 0
|
|
bl sub_80DC490
|
|
b _080D891E
|
|
.pool
|
|
_080D890C:
|
|
bl sub_80DB918
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80D895C
|
|
str r0, [r1]
|
|
_080D891E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8894
|
|
|
|
thumb_func_start sub_80D892C
|
|
sub_80D892C: @ 80D892C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
ldr r2, =gTasks
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x8]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, =sub_80D895C
|
|
str r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D892C
|
|
|
|
thumb_func_start sub_80D895C
|
|
sub_80D895C: @ 80D895C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
bl sub_80DB89C
|
|
ldr r0, =gUnknown_02022E16
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
movs r0, 0
|
|
bl sub_80DC490
|
|
movs r6, 0
|
|
movs r5, 0xA0
|
|
lsls r5, 19
|
|
_080D897C:
|
|
lsrs r4, r5, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r4, 0
|
|
bl PutWindowTilemap
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r5, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080D897C
|
|
movs r0, 0
|
|
bl sub_80DED60
|
|
ldr r1, =gPlttBufferFaded
|
|
ldr r0, =0x0201a604
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
ldr r4, =0x040000d4
|
|
str r1, [r4]
|
|
str r0, [r4, 0x4]
|
|
lsrs r1, r2, 2
|
|
movs r3, 0x84
|
|
lsls r3, 24
|
|
orrs r1, r3
|
|
str r1, [r4, 0x8]
|
|
ldr r1, [r4, 0x8]
|
|
ldr r1, =0xfffffc00
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl LoadPalette
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x8]
|
|
strh r1, [r0, 0xA]
|
|
ldr r1, =sub_80D8A04
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D895C
|
|
|
|
thumb_func_start sub_80D8A04
|
|
sub_80D8A04: @ 80D8A04
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080D8A42
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080D8A42
|
|
bl sub_80DDBE8
|
|
movs r0, 0x1
|
|
bl sub_80DE69C
|
|
ldr r0, =sub_80D8A50
|
|
str r0, [r4]
|
|
_080D8A42:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8A04
|
|
|
|
thumb_func_start sub_80D8A50
|
|
sub_80D8A50: @ 80D8A50
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x6]
|
|
movs r0, 0x90
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D8A76
|
|
ldr r0, =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80D8A88
|
|
str r0, [r1]
|
|
_080D8A76:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8A50
|
|
|
|
thumb_func_start sub_80D8A88
|
|
sub_80D8A88: @ 80D8A88
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gTasks
|
|
lsls r3, r6, 2
|
|
adds r1, r3, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _080D8B18
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r0, [r2]
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r2]
|
|
ldr r1, [r0]
|
|
ldr r0, =gRngValue
|
|
ldr r0, [r0]
|
|
str r0, [r1, 0x18]
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
adds r7, r3, 0
|
|
cmp r0, 0
|
|
beq _080D8B08
|
|
bl sub_80DA8A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D8B08
|
|
movs r4, 0
|
|
ldr r1, =gUnknown_02039F30
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bgt _080D8B08
|
|
adds r5, r1, 0
|
|
_080D8ADE:
|
|
ldrb r0, [r5]
|
|
adds r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80DB8B8
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldrb r2, [r5]
|
|
adds r2, r4
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
strh r0, [r1, 0x6]
|
|
adds r4, 0x1
|
|
ldrb r0, [r5]
|
|
adds r0, r4, r0
|
|
cmp r0, 0x3
|
|
ble _080D8ADE
|
|
_080D8B08:
|
|
ldr r1, =gTasks
|
|
adds r0, r7, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, =sub_80D8B38
|
|
str r1, [r0]
|
|
_080D8B18:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D8A88
|
|
|
|
thumb_func_start sub_80D8B38
|
|
sub_80D8B38: @ 80D8B38
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
ldrb r6, [r0, 0x11]
|
|
ldr r1, =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r4, 0x8
|
|
ldrsh r0, [r0, r4]
|
|
mov r9, r2
|
|
adds r4, r1, 0
|
|
cmp r0, 0x3B
|
|
bls _080D8B6E
|
|
bl _080DA100
|
|
_080D8B6E:
|
|
lsls r0, 2
|
|
ldr r1, =_080D8B84
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080D8B84:
|
|
.4byte _080D8C74
|
|
.4byte _080D8D30
|
|
.4byte _080D8D56
|
|
.4byte _080D8DC4
|
|
.4byte _080D8E7C
|
|
.4byte _080D8EC8
|
|
.4byte _080D8F84
|
|
.4byte _080D8FB8
|
|
.4byte _080D9010
|
|
.4byte _080D908C
|
|
.4byte _080D9FC0
|
|
.4byte _080D9FEC
|
|
.4byte _080D9238
|
|
.4byte _080D926C
|
|
.4byte _080D9774
|
|
.4byte _080D9864
|
|
.4byte _080D98D4
|
|
.4byte _080D9904
|
|
.4byte _080D99EC
|
|
.4byte _080D999E
|
|
.4byte _080DA024
|
|
.4byte _080DA0A0
|
|
.4byte _080DA0C2
|
|
.4byte _080D90B4
|
|
.4byte _080D9180
|
|
.4byte _080D9388
|
|
.4byte _080D939E
|
|
.4byte _080D947C
|
|
.4byte _080D94A0
|
|
.4byte _080D9508
|
|
.4byte _080D95EC
|
|
.4byte _080DA038
|
|
.4byte _080DA080
|
|
.4byte _080D9EBC
|
|
.4byte _080D9F48
|
|
.4byte _080D929A
|
|
.4byte _080D92D0
|
|
.4byte _080D92F6
|
|
.4byte _080D9334
|
|
.4byte _080D955C
|
|
.4byte _080D95C4
|
|
.4byte _080D9A2C
|
|
.4byte _080DA100
|
|
.4byte _080D9DAC
|
|
.4byte _080DA100
|
|
.4byte _080D9830
|
|
.4byte _080D997C
|
|
.4byte _080D921A
|
|
.4byte _080D91A4
|
|
.4byte _080D91F4
|
|
.4byte _080D935C
|
|
.4byte _080D9690
|
|
.4byte _080D971C
|
|
.4byte _080D9BAA
|
|
.4byte _080D9C68
|
|
.4byte _080D9F68
|
|
.4byte _080D9F84
|
|
.4byte _080D9DD4
|
|
.4byte _080D9E60
|
|
.4byte _080D9EA0
|
|
_080D8C74:
|
|
bl sub_80DCD48
|
|
movs r7, 0
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r1, [r1, 0x10]
|
|
mov r5, r8
|
|
lsls r5, 2
|
|
mov r10, r5
|
|
ldrb r2, [r0]
|
|
cmp r1, r2
|
|
beq _080D8C9C
|
|
adds r2, r0, 0
|
|
_080D8C92:
|
|
adds r7, 0x1
|
|
adds r0, r2, r7
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080D8C92
|
|
_080D8C9C:
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
strb r7, [r0, 0x11]
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
ldrb r6, [r2, 0x11]
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D8D14
|
|
ldrb r0, [r2, 0x7]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x7]
|
|
bl sub_80DA8A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D8CD4
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x11]
|
|
bl sub_80DD080
|
|
_080D8CD4:
|
|
ldr r4, =sub_80FCC88
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =sub_80DA110
|
|
adds r1, r4, 0
|
|
bl SetTaskFuncWithFollowupFunc
|
|
bl sub_80DBF68
|
|
ldr r1, =gTasks
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r5, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8D14:
|
|
adds r0, r6, 0
|
|
bl sub_80DD080
|
|
ldr r0, =gTasks
|
|
mov r1, r10
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8D30:
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D8D44
|
|
bl _080DA100
|
|
_080D8D44:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D8D56:
|
|
adds r0, r6, 0
|
|
bl sub_80DF080
|
|
bl sub_80DF750
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D8D86
|
|
ldrb r1, [r2, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
beq _080D8DA4
|
|
_080D8D86:
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1F
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8DA4:
|
|
bl sub_80DB89C
|
|
ldr r0, =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r6, [r1, 0x1C]
|
|
movs r0, 0x3
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8DC4:
|
|
mov r4, r8
|
|
lsls r4, 2
|
|
mov r10, r4
|
|
ldr r1, =gUnknown_020244E4
|
|
movs r2, 0
|
|
adds r0, r1, 0x3
|
|
_080D8DD0:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _080D8DD0
|
|
movs r7, 0x4
|
|
mov r5, r9
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x18]
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x11]
|
|
bl sub_80DE9DC
|
|
ldr r4, =gUnknown_02039E00
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
ldrb r3, [r0, 0x11]
|
|
lsls r2, r3, 6
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x3C
|
|
adds r1, r2, r1
|
|
ldr r1, [r1]
|
|
adds r4, 0x38
|
|
adds r2, r4
|
|
ldr r2, [r2]
|
|
bl sub_80DB174
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r3, r0, r2
|
|
movs r1, 0x78
|
|
strh r1, [r3, 0x24]
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_80DA134
|
|
str r1, [r0]
|
|
ldr r0, =gTasks
|
|
mov r4, r10
|
|
add r4, r8
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
strh r5, [r4, 0xC]
|
|
ldr r1, =gBankSpriteIds
|
|
ldr r0, =gBankAttacker
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
strb r5, [r0]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x11]
|
|
bl sub_80DC9EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sub_80DCBE8
|
|
strh r7, [r4, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8E7C:
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r2, r0, r4
|
|
ldrb r5, [r2, 0xC]
|
|
ldr r1, =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, =SpriteCallbackDummy
|
|
cmp r1, r0
|
|
beq _080D8EA0
|
|
bl _080DA100
|
|
_080D8EA0:
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D8EB8
|
|
bl _080DA100
|
|
_080D8EB8:
|
|
movs r0, 0x5
|
|
strh r0, [r2, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8EC8:
|
|
mov r5, r9
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r5, r0, 2
|
|
adds r1, r5, r1
|
|
ldrb r1, [r1, 0xC]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D8EF2
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x21
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D8EF2:
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r3, r5, r0
|
|
ldrh r1, [r3, 0x6]
|
|
movs r0, 0xB1
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bhi _080D8F38
|
|
ldr r0, =gStringVar2
|
|
adds r2, r1, 0
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
b _080D8F48
|
|
.pool
|
|
_080D8F38:
|
|
ldr r0, =gStringVar2
|
|
ldr r2, =gUnknown_08587F1C
|
|
ldrb r1, [r3, 0xA]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
_080D8F48:
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827D55A
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8F84:
|
|
bl sub_80DED4C
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _080D8F92
|
|
bl _080DA100
|
|
_080D8F92:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r0, 0x5A
|
|
strb r1, [r0]
|
|
ldr r1, =gTasks
|
|
mov r4, r8
|
|
lsls r0, r4, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x7
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D8FB8:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r1]
|
|
ldrb r2, [r0, 0x11]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x6]
|
|
bl sub_80DE834
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x11]
|
|
bl sub_80DE864
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x11]
|
|
bl sub_80DE9DC
|
|
adds r0, r4, 0
|
|
bl sub_80DEAA8
|
|
adds r0, r4, 0
|
|
bl move_anim_start_t1
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9010:
|
|
ldr r0, =gUnknown_020383F8
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_020383FD
|
|
ldrb r4, [r0]
|
|
cmp r4, 0
|
|
beq _080D9024
|
|
bl _080DA100
|
|
_080D9024:
|
|
adds r0, r6, 0
|
|
bl sub_80DE9B0
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r1, [r0]
|
|
ldr r0, [r1]
|
|
adds r0, 0x5A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080D9060
|
|
ldr r0, =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r4, [r1, 0x1C]
|
|
movs r0, 0x9
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9060:
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D907A
|
|
adds r0, r6, 0
|
|
bl sub_80DC674
|
|
_080D907A:
|
|
bl sub_80DE12C
|
|
ldr r0, =gTasks
|
|
mov r4, r8
|
|
lsls r1, r4, 2
|
|
b _080D9192
|
|
.pool
|
|
_080D908C:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r2, r0, r4
|
|
ldrh r0, [r2, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r2, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
bgt _080D90A8
|
|
bl _080DA100
|
|
_080D90A8:
|
|
movs r0, 0
|
|
strh r0, [r2, 0x1C]
|
|
movs r0, 0x7
|
|
strh r0, [r2, 0x8]
|
|
bl _080DA100
|
|
_080D90B4:
|
|
mov r0, r8
|
|
lsls r2, r0, 2
|
|
adds r0, r2, r0
|
|
lsls r0, 3
|
|
adds r7, r0, r4
|
|
movs r0, 0
|
|
strh r0, [r7, 0xA]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
mov r12, r0
|
|
lsls r1, r6, 3
|
|
subs r0, r1, r6
|
|
lsls r5, r0, 2
|
|
mov r0, r12
|
|
adds r3, r5, r0
|
|
ldrb r0, [r3, 0x13]
|
|
mov r10, r2
|
|
str r1, [sp, 0x4]
|
|
cmp r0, 0xFF
|
|
beq _080D90FA
|
|
ldrb r1, [r3, 0x13]
|
|
adds r0, r6, 0
|
|
bl sub_80DD45C
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r5, r0
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x13]
|
|
movs r0, 0x18
|
|
strh r0, [r7, 0x8]
|
|
bl _080DA100
|
|
_080D90FA:
|
|
ldrb r0, [r3, 0x14]
|
|
cmp r0, 0xFF
|
|
beq _080D9178
|
|
movs r7, 0
|
|
cmp r7, r6
|
|
beq _080D910E
|
|
mov r2, r12
|
|
ldrb r0, [r2, 0x13]
|
|
cmp r0, 0xFF
|
|
bne _080D912C
|
|
_080D910E:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
bgt _080D912C
|
|
cmp r7, r6
|
|
beq _080D910E
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0xFF
|
|
beq _080D910E
|
|
_080D912C:
|
|
cmp r7, 0x4
|
|
bne _080D9168
|
|
mov r4, r9
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r5, [sp, 0x4]
|
|
subs r4, r5, r6
|
|
lsls r4, 2
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x14]
|
|
adds r0, r6, 0
|
|
bl sub_80DD45C
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r4, r0
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x14]
|
|
ldr r1, =gTasks
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x18
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9168:
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x30
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D9178:
|
|
movs r0, 0x30
|
|
strh r0, [r7, 0x8]
|
|
bl _080DA100
|
|
_080D9180:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D918C
|
|
bl _080DA100
|
|
_080D918C:
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
_080D9192:
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x17
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D91A4:
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x11]
|
|
movs r3, 0x3
|
|
ands r3, r0
|
|
cmp r3, 0x1
|
|
bne _080D91C4
|
|
movs r0, 0x5
|
|
bl sub_80DD720
|
|
b _080D91DA
|
|
_080D91C4:
|
|
cmp r3, 0x2
|
|
bne _080D91D0
|
|
movs r0, 0x6
|
|
bl sub_80DD720
|
|
b _080D91DA
|
|
_080D91D0:
|
|
cmp r3, 0x3
|
|
bne _080D9208
|
|
movs r0, 0x7
|
|
bl sub_80DD720
|
|
_080D91DA:
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x31
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D91F4:
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9208
|
|
bl _080DA100
|
|
_080D9208:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x2F
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D921A:
|
|
movs r0, 0x1
|
|
bl sub_80DE008
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0xC
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9238:
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r4, 0x2
|
|
ldrsh r1, [r0, r4]
|
|
movs r0, 0
|
|
adds r2, r6, 0
|
|
bl sub_80DC028
|
|
ldr r1, =gTasks
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xD
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D926C:
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x11]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9288
|
|
bl _080DA100
|
|
_080D9288:
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x23
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D929A:
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x30
|
|
ands r0, r1
|
|
cmp r0, 0x10
|
|
bne _080D92B8
|
|
movs r0, 0x8
|
|
bl sub_80DD720
|
|
_080D92B8:
|
|
ldr r0, =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x24
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D92D0:
|
|
mov r5, r9
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D92E4
|
|
bl _080DA100
|
|
_080D92E4:
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x25
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D92F6:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl sub_80DB5B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D9320
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x1C]
|
|
movs r1, 0x26
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9320:
|
|
ldr r0, =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
b _080D9354
|
|
.pool
|
|
_080D9334:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bgt _080D9350
|
|
bl _080DA100
|
|
_080D9350:
|
|
movs r0, 0
|
|
strh r0, [r1, 0x1C]
|
|
_080D9354:
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
_080D935C:
|
|
adds r0, r6, 0
|
|
bl sub_80DB798
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D936E
|
|
movs r0, 0x63
|
|
bl audio_play
|
|
_080D936E:
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x19
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9388:
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strh r1, [r0, 0xA]
|
|
movs r1, 0x1A
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D939E:
|
|
movs r3, 0
|
|
movs r5, 0
|
|
str r5, [sp]
|
|
mov r0, r8
|
|
lsls r1, r0, 2
|
|
adds r0, r1, r0
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r2, 0xA
|
|
ldrsh r7, [r0, r2]
|
|
mov r10, r1
|
|
cmp r7, 0x3
|
|
bgt _080D9418
|
|
ldr r5, =gUnknown_02039F26
|
|
ldr r2, =gUnknown_02039F34
|
|
_080D93BC:
|
|
movs r3, 0
|
|
str r3, [sp]
|
|
adds r0, r3, 0
|
|
cmp r0, r6
|
|
beq _080D93E4
|
|
ldrb r0, [r5]
|
|
cmp r0, r7
|
|
bne _080D93E4
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0xFF
|
|
beq _080D93E4
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
b _080D940C
|
|
.pool
|
|
_080D93E4:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
bgt _080D940C
|
|
cmp r3, r6
|
|
beq _080D93E4
|
|
adds r0, r3, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r7
|
|
bne _080D93E4
|
|
ldr r0, [r2]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0xFF
|
|
beq _080D93E4
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
_080D940C:
|
|
ldr r1, [sp]
|
|
cmp r1, 0
|
|
bne _080D9422
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _080D93BC
|
|
_080D9418:
|
|
ldr r2, [sp]
|
|
lsls r0, r2, 24
|
|
asrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _080D9464
|
|
_080D9422:
|
|
mov r5, r10
|
|
add r5, r8
|
|
lsls r5, 3
|
|
adds r5, r4
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r4, r3, 3
|
|
subs r4, r3
|
|
lsls r4, 2
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1, 0x13]
|
|
bl sub_80DD45C
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r4, r0
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x13]
|
|
movs r0, 0x1B
|
|
strh r0, [r5, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9464:
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
strh r2, [r0, 0xA]
|
|
strh r2, [r0, 0x1C]
|
|
movs r1, 0x33
|
|
strh r1, [r0, 0x8]
|
|
bl sub_80DB884
|
|
bl _080DA100
|
|
_080D947C:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9488
|
|
bl _080DA100
|
|
_080D9488:
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1C
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D94A0:
|
|
movs r7, 0
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
adds r1, r0, r3
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
movs r4, 0xA
|
|
ldrsh r2, [r1, r4]
|
|
ldr r1, =gUnknown_02039F26
|
|
mov r10, r0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r5]
|
|
cmp r2, r0
|
|
beq _080D94CA
|
|
adds r1, r2, 0
|
|
adds r2, r5, 0
|
|
_080D94C0:
|
|
adds r7, 0x1
|
|
adds r0, r7, r2
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080D94C0
|
|
_080D94CA:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0xE]
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
negs r1, r1
|
|
lsls r2, r7, 24
|
|
lsrs r2, 24
|
|
bl sub_80DC028
|
|
ldr r1, =gTasks
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x1D
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9508:
|
|
movs r7, 0
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r2
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
movs r5, 0xA
|
|
ldrsh r3, [r1, r5]
|
|
ldr r1, =gUnknown_02039F26
|
|
mov r10, r0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r5]
|
|
cmp r3, r0
|
|
beq _080D952E
|
|
_080D9524:
|
|
adds r7, 0x1
|
|
adds r0, r7, r1
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bne _080D9524
|
|
_080D952E:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9546
|
|
bl _080DA100
|
|
_080D9546:
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x27
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D955C:
|
|
movs r7, 0
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r2
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
movs r3, 0xA
|
|
ldrsh r2, [r1, r3]
|
|
ldr r1, =gUnknown_02039F26
|
|
mov r10, r0
|
|
adds r5, r1, 0
|
|
ldrb r4, [r5]
|
|
cmp r2, r4
|
|
beq _080D9586
|
|
adds r1, r2, 0
|
|
adds r2, r5, 0
|
|
_080D957C:
|
|
adds r7, 0x1
|
|
adds r0, r7, r2
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080D957C
|
|
_080D9586:
|
|
lsls r0, r7, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl sub_80DB5B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D95B4
|
|
ldr r1, =gTasks
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x1C]
|
|
movs r1, 0x28
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D95B4:
|
|
ldr r0, =gTasks
|
|
mov r1, r10
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
b _080D95E4
|
|
.pool
|
|
_080D95C4:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bgt _080D95E0
|
|
bl _080DA100
|
|
_080D95E0:
|
|
movs r0, 0
|
|
strh r0, [r1, 0x1C]
|
|
_080D95E4:
|
|
movs r0, 0x1E
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
_080D95EC:
|
|
movs r7, 0
|
|
ldr r2, =gUnknown_02039F26
|
|
ldrb r3, [r2]
|
|
mov r0, r8
|
|
lsls r1, r0, 2
|
|
adds r0, r1, r0
|
|
lsls r0, 3
|
|
adds r4, r0, r4
|
|
movs r5, 0xA
|
|
ldrsh r0, [r4, r5]
|
|
mov r10, r1
|
|
adds r5, r2, 0
|
|
cmp r3, r0
|
|
beq _080D961E
|
|
adds r3, r5, 0
|
|
adds r2, r4, 0
|
|
_080D960C:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
bgt _080D961E
|
|
adds r0, r7, r3
|
|
ldrb r1, [r0]
|
|
movs r4, 0xA
|
|
ldrsh r0, [r2, r4]
|
|
cmp r1, r0
|
|
bne _080D960C
|
|
_080D961E:
|
|
lsls r4, r7, 24
|
|
lsrs r0, r4, 24
|
|
bl sub_80DB798
|
|
lsls r0, 24
|
|
adds r6, r4, 0
|
|
cmp r0, 0
|
|
beq _080D963C
|
|
movs r0, 0x63
|
|
bl audio_play
|
|
b _080D9642
|
|
.pool
|
|
_080D963C:
|
|
movs r0, 0x64
|
|
bl audio_play
|
|
_080D9642:
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r4, r0, 2
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1, 0x15]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9670
|
|
lsrs r0, r6, 24
|
|
bl sub_80DC674
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
_080D9670:
|
|
ldr r0, =gTasks
|
|
mov r1, r10
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0xA]
|
|
movs r0, 0x1A
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9690:
|
|
mov r5, r8
|
|
lsls r2, r5, 2
|
|
adds r0, r2, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r4
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r10, r2
|
|
cmp r0, 0x9
|
|
bgt _080D96AE
|
|
bl _080DA100
|
|
_080D96AE:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D96D4
|
|
ldrb r1, [r2, 0x11]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D96F6
|
|
_080D96D4:
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827E793
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
_080D96F6:
|
|
ldr r0, =gTasks
|
|
mov r1, r10
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x34
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D971C:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9728
|
|
bl _080DA100
|
|
_080D9728:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D975C
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x11
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D975C:
|
|
ldr r0, =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0xE
|
|
strh r0, [r1, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9774:
|
|
mov r4, r9
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x16]
|
|
lsls r4, r0, 24
|
|
lsrs r5, r4, 24
|
|
cmp r5, 0
|
|
beq _080D97DC
|
|
bl sub_80DB89C
|
|
asrs r0, r4, 24
|
|
cmp r0, 0x1
|
|
bne _080D97A0
|
|
ldr r0, =gUnknown_0827E32E
|
|
b _080D97A6
|
|
.pool
|
|
_080D97A0:
|
|
cmp r0, 0x2
|
|
bne _080D97B4
|
|
ldr r0, =gUnknown_0827E35B
|
|
_080D97A6:
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
b _080D97BC
|
|
.pool
|
|
_080D97B4:
|
|
ldr r0, =gUnknown_0827E38D
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
_080D97BC:
|
|
movs r0, 0x3
|
|
bl sub_80DD720
|
|
ldr r1, =gTasks
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x1C]
|
|
b _080D9812
|
|
.pool
|
|
_080D97DC:
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827E2FE
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
movs r0, 0x2
|
|
bl sub_80DD720
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r5, [r0, 0x1C]
|
|
_080D9812:
|
|
movs r1, 0x2D
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9830:
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9844
|
|
bl _080DA100
|
|
_080D9844:
|
|
ldrb r0, [r2, 0x11]
|
|
bl sub_80DC9B4
|
|
ldr r1, =gTasks
|
|
mov r4, r8
|
|
lsls r0, r4, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xF
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D9864:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9870
|
|
bl _080DA100
|
|
_080D9870:
|
|
ldr r1, =gTasks
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x32
|
|
bgt _080D988E
|
|
bl _080DA100
|
|
_080D988E:
|
|
ldr r7, =gUnknown_02039F34
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r5, r0, 2
|
|
adds r2, r5, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x10
|
|
mov r8, r0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080D98C2
|
|
movs r1, 0x2
|
|
ldrsh r0, [r2, r1]
|
|
ldrb r1, [r2, 0x17]
|
|
adds r2, r6, 0
|
|
bl sub_80DC028
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrh r0, [r1, 0x2]
|
|
ldrb r2, [r1, 0x17]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x2]
|
|
_080D98C2:
|
|
mov r3, r8
|
|
strh r3, [r4, 0x8]
|
|
bl _080DA100
|
|
.pool
|
|
_080D98D4:
|
|
mov r5, r9
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080D98F0
|
|
bl _080DA100
|
|
_080D98F0:
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
strh r1, [r0, 0x1C]
|
|
movs r1, 0x11
|
|
strh r1, [r0, 0x8]
|
|
bl _080DA100
|
|
_080D9904:
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D996C
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827E6E3
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r0, =gTasks
|
|
mov r5, r8
|
|
lsls r4, r5, 2
|
|
add r4, r8
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
bl sub_80DD720
|
|
movs r0, 0x2E
|
|
strh r0, [r4, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D996C:
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x29
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
_080D997C:
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D998E
|
|
b _080DA100
|
|
_080D998E:
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x13
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
_080D999E:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D99A8
|
|
b _080DA100
|
|
_080D99A8:
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r4, r6, 3
|
|
subs r4, r6
|
|
lsls r4, 2
|
|
adds r1, r4, r1
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
ldrb r1, [r1, 0x18]
|
|
negs r1, r1
|
|
adds r2, r6, 0
|
|
bl sub_80DC028
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r4, r0
|
|
ldrb r1, [r4, 0x18]
|
|
ldrh r0, [r4, 0x2]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x2]
|
|
ldr r1, =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x12
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D99EC:
|
|
bl sub_80DCD48
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _080D9A0A
|
|
b _080DA100
|
|
_080D9A0A:
|
|
ldr r0, =gTasks
|
|
mov r5, r8
|
|
lsls r4, r5, 2
|
|
add r4, r8
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
strh r3, [r4, 0x1C]
|
|
bl sub_80DB89C
|
|
movs r0, 0x29
|
|
strh r0, [r4, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9A2C:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r2, [r0, 0x10]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9A56
|
|
ldr r0, [r2]
|
|
lsls r0, 20
|
|
lsrs r0, 29
|
|
cmp r6, r0
|
|
beq _080D9A56
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x39
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
_080D9A56:
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r1, 0x10]
|
|
ldrb r0, [r0]
|
|
str r0, [sp]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r2, r6, 3
|
|
subs r0, r2, r6
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, 0x11]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
str r2, [sp, 0x4]
|
|
cmp r0, 0
|
|
beq _080D9A94
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
ldr r0, =gStringVar3
|
|
ldrh r2, [r5, 0x6]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
b _080D9AAE
|
|
.pool
|
|
_080D9A94:
|
|
ldr r0, =gStringVar3
|
|
ldr r3, =gUnknown_08587F08
|
|
ldr r2, =gContestMoves
|
|
ldrh r1, [r5, 0x6]
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x1]
|
|
lsls r1, 29
|
|
lsrs r1, 27
|
|
adds r1, r3
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
_080D9AAE:
|
|
ldr r5, [sp]
|
|
lsls r0, r5, 24
|
|
cmp r0, 0
|
|
ble _080D9AD2
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
ldr r2, [sp, 0x4]
|
|
subs r0, r2, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9AD2
|
|
movs r3, 0
|
|
str r3, [sp]
|
|
_080D9AD2:
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x13]
|
|
ldr r5, [sp]
|
|
lsls r2, r5, 24
|
|
asrs r3, r2, 24
|
|
adds r0, r3, r0
|
|
strb r0, [r1, 0x13]
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
movs r0, 0x13
|
|
ldrsb r0, [r1, r0]
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
bge _080D9B06
|
|
movs r0, 0
|
|
strb r0, [r1, 0x13]
|
|
_080D9B06:
|
|
cmp r3, 0
|
|
bne _080D9B30
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
b _080D9F58
|
|
.pool
|
|
_080D9B30:
|
|
cmp r3, 0
|
|
bge _080D9B48
|
|
ldr r0, =gStringVar4
|
|
ldr r1, =gUnknown_0827E73C
|
|
bl StringExpandPlaceholders
|
|
b _080D9B74
|
|
.pool
|
|
_080D9B48:
|
|
cmp r3, 0
|
|
ble _080D9B6C
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bgt _080D9B6C
|
|
ldr r0, =gStringVar4
|
|
ldr r1, =gUnknown_0827E717
|
|
bl StringExpandPlaceholders
|
|
b _080D9B74
|
|
.pool
|
|
_080D9B6C:
|
|
ldr r0, =gStringVar4
|
|
ldr r1, =gUnknown_0827E76A
|
|
bl StringExpandPlaceholders
|
|
_080D9B74:
|
|
ldr r0, =gStringVar4
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r0, 0
|
|
strh r0, [r1, 0x1C]
|
|
strh r0, [r1, 0x1E]
|
|
cmp r5, 0
|
|
bge _080D9BA4
|
|
movs r0, 0x35
|
|
strh r0, [r1, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9BA4:
|
|
movs r0, 0x36
|
|
strh r0, [r1, 0x8]
|
|
b _080DA100
|
|
_080D9BAA:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r4, r0, r4
|
|
movs r0, 0x1C
|
|
ldrsh r3, [r4, r0]
|
|
cmp r3, 0x1
|
|
beq _080D9BE8
|
|
cmp r3, 0x1
|
|
bgt _080D9BC6
|
|
cmp r3, 0
|
|
beq _080D9BD0
|
|
b _080DA100
|
|
_080D9BC6:
|
|
cmp r3, 0x2
|
|
beq _080D9C0C
|
|
cmp r3, 0x3
|
|
beq _080D9C46
|
|
b _080DA100
|
|
_080D9BD0:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0x1
|
|
bl sub_80DDED0
|
|
ldr r0, =0x00000187
|
|
bl fanfare_play
|
|
b _080D9C3E
|
|
.pool
|
|
_080D9BE8:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x7]
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _080D9BF8
|
|
b _080DA100
|
|
_080D9BF8:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9C02
|
|
b _080DA100
|
|
_080D9C02:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl sub_80DDCDC
|
|
b _080D9C3E
|
|
_080D9C0C:
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _080D9C22
|
|
b _080DA100
|
|
_080D9C22:
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1D
|
|
bgt _080D9C32
|
|
b _080DA100
|
|
_080D9C32:
|
|
strh r2, [r4, 0x1E]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
bl sub_80DDED0
|
|
_080D9C3E:
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
b _080DA100
|
|
_080D9C46:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080D9C58
|
|
b _080DA100
|
|
_080D9C58:
|
|
strh r0, [r4, 0x1C]
|
|
strh r0, [r4, 0x1E]
|
|
movs r0, 0x2B
|
|
strh r0, [r4, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9C68:
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
adds r0, r1, r3
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r5, 0x1C
|
|
ldrsh r0, [r0, r5]
|
|
mov r10, r1
|
|
cmp r0, 0x4
|
|
bls _080D9C7E
|
|
b _080DA100
|
|
_080D9C7E:
|
|
lsls r0, 2
|
|
ldr r1, =_080D9C8C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080D9C8C:
|
|
.4byte _080D9CA0
|
|
.4byte _080D9CB0
|
|
.4byte _080D9CD4
|
|
.4byte _080D9D3E
|
|
.4byte _080D9D84
|
|
_080D9CA0:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9CAA
|
|
b _080DA100
|
|
_080D9CAA:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
b _080D9D68
|
|
_080D9CB0:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9CC2
|
|
b _080DA100
|
|
_080D9CC2:
|
|
bl sub_80DDE0C
|
|
movs r0, 0xDF
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
bl sub_80DDCDC
|
|
b _080D9D6C
|
|
_080D9CD4:
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r2]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _080D9CEA
|
|
b _080DA100
|
|
_080D9CEA:
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r5, r0, r4
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1D
|
|
bgt _080D9D02
|
|
b _080DA100
|
|
_080D9D02:
|
|
strh r3, [r5, 0x1E]
|
|
ldr r0, [r2, 0x4]
|
|
lsls r4, r6, 3
|
|
subs r4, r6
|
|
lsls r4, 2
|
|
adds r0, r4, r0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
ldr r1, [r2, 0x10]
|
|
ldrb r1, [r1, 0x2]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r2, r6, 0
|
|
bl sub_80DC028
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r1, 0x4]
|
|
adds r4, r0
|
|
ldr r0, [r1, 0x10]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r3, [r4, 0x2]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x2]
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
b _080DA100
|
|
_080D9D3E:
|
|
mov r4, r9
|
|
ldr r2, [r4]
|
|
ldr r1, [r2, 0x14]
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9D54
|
|
b _080DA100
|
|
_080D9D54:
|
|
ldr r0, [r2]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9D62
|
|
b _080DA100
|
|
_080D9D62:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0x1
|
|
_080D9D68:
|
|
bl sub_80DDED0
|
|
_080D9D6C:
|
|
ldr r0, =gTasks
|
|
mov r1, r10
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1C]
|
|
b _080DA100
|
|
.pool
|
|
_080D9D84:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _080D9D96
|
|
b _080DA100
|
|
_080D9D96:
|
|
mov r0, r10
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
strh r3, [r0, 0x1C]
|
|
strh r3, [r0, 0x1E]
|
|
movs r1, 0x2B
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9DAC:
|
|
mov r5, r9
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9DC2
|
|
b _080DA100
|
|
_080D9DC2:
|
|
bl sub_80DB89C
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
b _080D9F58
|
|
.pool
|
|
_080D9DD4:
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar3
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r1, [r5]
|
|
ldr r1, [r1, 0x10]
|
|
ldr r1, [r1]
|
|
lsls r1, 20
|
|
lsrs r1, 29
|
|
lsls r1, 6
|
|
ldr r4, =gUnknown_02039E02
|
|
adds r1, r4
|
|
bl StringCopy
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
adds r1, r4
|
|
bl StringCopy
|
|
ldr r0, =gStringVar2
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r6, 3
|
|
subs r1, r6
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x6]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827E7EA
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9E60:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9E6A
|
|
b _080DA100
|
|
_080D9E6A:
|
|
bl sub_80DB89C
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827E817
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
mov r4, r8
|
|
lsls r0, r4, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x3B
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9EA0:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9EAA
|
|
b _080DA100
|
|
_080D9EAA:
|
|
bl sub_80DB89C
|
|
ldr r0, =gTasks
|
|
mov r5, r8
|
|
lsls r1, r5, 2
|
|
b _080D9F58
|
|
.pool
|
|
_080D9EBC:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r4, r0, 2
|
|
adds r2, r4, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080D9EDC
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x15]
|
|
_080D9EDC:
|
|
adds r0, r6, 0
|
|
bl sub_80DC9B4
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r0, =gStringVar2
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r1, [r1, 0x4]
|
|
adds r1, r4, r1
|
|
ldrh r2, [r1, 0x6]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827E58A
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x22
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9F48:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
beq _080D9F52
|
|
b _080DA100
|
|
_080D9F52:
|
|
ldr r0, =gTasks
|
|
mov r4, r8
|
|
lsls r1, r4, 2
|
|
_080D9F58:
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x37
|
|
strh r0, [r1, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9F68:
|
|
bl sub_80DDBE8
|
|
ldr r0, =gTasks
|
|
mov r5, r8
|
|
lsls r1, r5, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x38
|
|
strh r0, [r1, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9F84:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080D9F9A
|
|
b _080DA100
|
|
_080D9F9A:
|
|
movs r0, 0x13
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0x4
|
|
ble _080D9FA8
|
|
strb r1, [r2, 0x13]
|
|
bl sub_80DD940
|
|
_080D9FA8:
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0xA
|
|
strh r0, [r1, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9FC0:
|
|
mov r3, r8
|
|
lsls r2, r3, 2
|
|
add r2, r8
|
|
lsls r2, 3
|
|
adds r2, r4
|
|
ldrb r5, [r2, 0xC]
|
|
ldr r1, =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80DA164
|
|
str r1, [r0]
|
|
movs r0, 0xB
|
|
strh r0, [r2, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080D9FEC:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r4, r0, r4
|
|
ldrb r5, [r4, 0xC]
|
|
ldr r1, =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r6, r0, r1
|
|
adds r0, r6, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080DA100
|
|
adds r0, r6, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r6, 0
|
|
bl DestroySprite
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080DA024:
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strh r1, [r0, 0x1C]
|
|
movs r1, 0x15
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
_080DA038:
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r6, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827D56F
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
strh r1, [r0, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080DA080:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
bne _080DA100
|
|
ldr r0, =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x15
|
|
strh r0, [r1, 0x8]
|
|
b _080DA100
|
|
.pool
|
|
_080DA0A0:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1D
|
|
ble _080DA100
|
|
movs r0, 0
|
|
strh r0, [r1, 0x1C]
|
|
movs r0, 0x16
|
|
strh r0, [r1, 0x8]
|
|
b _080DA100
|
|
_080DA0C2:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1, 0x10]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080DA0F4
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
strh r2, [r0, 0x8]
|
|
strh r2, [r0, 0xA]
|
|
strh r2, [r0, 0xC]
|
|
ldr r1, =sub_80DA198
|
|
str r1, [r0]
|
|
b _080DA100
|
|
.pool
|
|
_080DA0F4:
|
|
mov r5, r8
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
strh r2, [r0, 0x8]
|
|
_080DA100:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80D8B38
|
|
|
|
thumb_func_start sub_80DA110
|
|
sub_80DA110: @ 80DA110
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r3, [r1]
|
|
ldrb r2, [r3, 0x7]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r3, 0x7]
|
|
bl DestroyTask
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA110
|
|
|
|
thumb_func_start sub_80DA134
|
|
sub_80DA134: @ 80DA134
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x24]
|
|
movs r3, 0x24
|
|
ldrsh r2, [r1, r3]
|
|
cmp r2, 0
|
|
beq _080DA148
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0x24]
|
|
b _080DA15C
|
|
_080DA148:
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _080DA15C
|
|
strh r2, [r1, 0x2E]
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r1, 0x1C]
|
|
_080DA15C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA134
|
|
|
|
thumb_func_start sub_80DA164
|
|
sub_80DA164: @ 80DA164
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x24]
|
|
subs r0, 0x6
|
|
strh r0, [r2, 0x24]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
movs r3, 0x24
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080DA18E
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r2, 0x1C]
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080DA18E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA164
|
|
|
|
thumb_func_start sub_80DA198
|
|
sub_80DA198: @ 80DA198
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r5, r1, r2
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080DA22E
|
|
cmp r0, 0x1
|
|
bgt _080DA1C0
|
|
cmp r0, 0
|
|
beq _080DA1C6
|
|
b _080DA250
|
|
.pool
|
|
_080DA1C0:
|
|
cmp r0, 0x2
|
|
beq _080DA248
|
|
b _080DA250
|
|
_080DA1C6:
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r6, 0x1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DA224
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x7]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x7]
|
|
bl sub_80DA8A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DA1F4
|
|
bl sub_80DB944
|
|
bl sub_80DBA18
|
|
_080DA1F4:
|
|
ldr r4, =sub_80FCC88
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =sub_80DA110
|
|
adds r1, r4, 0
|
|
bl SetTaskFuncWithFollowupFunc
|
|
bl sub_80DBF68
|
|
strh r6, [r5, 0x8]
|
|
b _080DA250
|
|
.pool
|
|
_080DA224:
|
|
bl sub_80DB944
|
|
bl sub_80DBA18
|
|
b _080DA23E
|
|
_080DA22E:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DA250
|
|
_080DA23E:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x8]
|
|
b _080DA250
|
|
.pool
|
|
_080DA248:
|
|
movs r0, 0
|
|
strh r0, [r5, 0x8]
|
|
ldr r0, =sub_80DA25C
|
|
str r0, [r5]
|
|
_080DA250:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA198
|
|
|
|
thumb_func_start sub_80DA25C
|
|
sub_80DA25C: @ 80DA25C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
bl sub_80DE008
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x8]
|
|
strh r1, [r0, 0xA]
|
|
ldr r1, =sub_80DA28C
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA25C
|
|
|
|
thumb_func_start sub_80DA28C
|
|
sub_80DA28C: @ 80DA28C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
movs r0, 0x8
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0x1
|
|
beq _080DA2D2
|
|
cmp r5, 0x1
|
|
bgt _080DA2B4
|
|
cmp r5, 0
|
|
beq _080DA2BA
|
|
b _080DA312
|
|
.pool
|
|
_080DA2B4:
|
|
cmp r5, 0x2
|
|
beq _080DA304
|
|
b _080DA312
|
|
_080DA2BA:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080DA312
|
|
movs r0, 0x2
|
|
bl sub_80DE69C
|
|
strh r5, [r4, 0xA]
|
|
b _080DA2F6
|
|
_080DA2D2:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080DA312
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080DA312
|
|
strh r1, [r4, 0xA]
|
|
_080DA2F6:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080DA312
|
|
.pool
|
|
_080DA304:
|
|
bl sub_80DC3AC
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
strh r0, [r4, 0xA]
|
|
ldr r0, =sub_80DA31C
|
|
str r0, [r4]
|
|
_080DA312:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA28C
|
|
|
|
thumb_func_start sub_80DA31C
|
|
sub_80DA31C: @ 80DA31C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_80DC3C4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DA33A
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80DA348
|
|
str r0, [r1]
|
|
_080DA33A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA31C
|
|
|
|
thumb_func_start sub_80DA348
|
|
sub_80DA348: @ 80DA348
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =0x0201a204
|
|
ldr r3, =gPlttBufferUnfaded
|
|
ldr r1, =0x040000d4
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
ldr r2, =0x84000100
|
|
str r2, [r1, 0x8]
|
|
ldr r1, [r1, 0x8]
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0xA]
|
|
ldr r0, =sub_80DA38C
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DA348
|
|
|
|
thumb_func_start sub_80DA38C
|
|
sub_80DA38C: @ 80DA38C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080DA3BE
|
|
movs r0, 0
|
|
strh r0, [r1, 0x8]
|
|
ldrh r0, [r1, 0xA]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xA]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080DA3BE
|
|
ldr r0, =sub_80DA3CC
|
|
str r0, [r1]
|
|
_080DA3BE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA38C
|
|
|
|
thumb_func_start sub_80DA3CC
|
|
sub_80DA3CC: @ 80DA3CC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r6, r1, r2
|
|
movs r1, 0x8
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080DA448
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r5, =gUnknown_02039F25
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r4, [r0, 0x1A]
|
|
bl sub_80DB89C
|
|
ldr r0, =gStringVar1
|
|
ldrb r1, [r5]
|
|
lsls r1, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r5, =gStringVar4
|
|
ldr r0, =gUnknown_08587D90
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x8]
|
|
b _080DA45A
|
|
.pool
|
|
_080DA448:
|
|
bl sub_80DED4C
|
|
cmp r0, 0
|
|
bne _080DA45A
|
|
strh r0, [r6, 0x8]
|
|
ldr r0, =sub_80DA464
|
|
str r0, [r6]
|
|
bl sub_80DCD48
|
|
_080DA45A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA3CC
|
|
|
|
thumb_func_start sub_80DA464
|
|
sub_80DA464: @ 80DA464
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0x8]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1D
|
|
ble _080DA48E
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
bl sub_80DC3AC
|
|
ldr r0, =sub_80DA49C
|
|
str r0, [r4]
|
|
_080DA48E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA464
|
|
|
|
thumb_func_start sub_80DA49C
|
|
sub_80DA49C: @ 80DA49C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_80DC3C4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DA4BE
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, =sub_80DA4CC
|
|
str r1, [r0]
|
|
_080DA4BE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA49C
|
|
|
|
thumb_func_start sub_80DA4CC
|
|
sub_80DA4CC: @ 80DA4CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_80DE224
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_80DE424
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA4CC
|
|
|
|
thumb_func_start sub_80DA4F4
|
|
sub_80DA4F4: @ 80DA4F4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_80DE350
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_80DA51C
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA4F4
|
|
|
|
thumb_func_start sub_80DA51C
|
|
sub_80DA51C: @ 80DA51C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0x8
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
movs r0, 0xC
|
|
bl GetGpuReg
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r0, [r4]
|
|
mov r3, sp
|
|
ldrb r2, [r3]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
ldrb r0, [r4]
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r0, [r2]
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x5
|
|
bne _080DA590
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80DA5E8
|
|
b _080DA5A0
|
|
.pool
|
|
_080DA590:
|
|
bl sub_80DDB0C
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80DA5B4
|
|
_080DA5A0:
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA51C
|
|
|
|
thumb_func_start sub_80DA5B4
|
|
sub_80DA5B4: @ 80DA5B4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DA5D8
|
|
ldr r0, =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80D833C
|
|
str r0, [r1]
|
|
_080DA5D8:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA5B4
|
|
|
|
thumb_func_start sub_80DA5E8
|
|
sub_80DA5E8: @ 80DA5E8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02022E16
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
ldr r4, =gUnknown_02039F34
|
|
movs r3, 0
|
|
ldr r2, =gUnknown_02039F10
|
|
movs r1, 0x3
|
|
_080DA600:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r3, r0
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r2]
|
|
adds r3, 0x1C
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080DA600
|
|
bl sub_80DBD18
|
|
bl sub_80DB89C
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DA65C
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x8]
|
|
bl sub_80ED03C
|
|
b _080DA668
|
|
.pool
|
|
_080DA65C:
|
|
bl sub_80DF250
|
|
bl sub_80DF4F8
|
|
bl sub_80DF750
|
|
_080DA668:
|
|
ldr r1, =gUnknown_030060B8
|
|
ldr r0, =gRngValue
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0827D597
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0xC]
|
|
ldr r1, =sub_80DA6B4
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA5E8
|
|
|
|
thumb_func_start sub_80DA6B4
|
|
sub_80DA6B4: @ 80DA6B4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl sub_80DED4C
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _080DA6EA
|
|
bl sub_80DE224
|
|
ldr r0, =gUnknown_02022E18
|
|
strh r4, [r0]
|
|
ldr r1, =gUnknown_02022E1A
|
|
movs r0, 0xA0
|
|
strh r0, [r1]
|
|
movs r0, 0x62
|
|
movs r1, 0
|
|
bl audio_play_and_stuff
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r4, [r0, 0x8]
|
|
ldr r1, =sub_80DA700
|
|
str r1, [r0]
|
|
_080DA6EA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA6B4
|
|
|
|
thumb_func_start sub_80DA700
|
|
sub_80DA700: @ 80DA700
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, =gUnknown_02022E1A
|
|
ldrh r0, [r1]
|
|
subs r0, 0x7
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080DA718
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_080DA718:
|
|
ldrh r2, [r1]
|
|
cmp r2, 0
|
|
bne _080DA72E
|
|
ldr r0, =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80DA740
|
|
str r0, [r1]
|
|
strh r2, [r1, 0x8]
|
|
_080DA72E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA700
|
|
|
|
thumb_func_start sub_80DA740
|
|
sub_80DA740: @ 80DA740
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0x8]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x31
|
|
ble _080DA794
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080DA780
|
|
ldr r0, =sub_80DA7A0
|
|
b _080DA792
|
|
.pool
|
|
_080DA780:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =sub_80DA830
|
|
_080DA792:
|
|
str r0, [r4]
|
|
_080DA794:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA740
|
|
|
|
thumb_func_start sub_80DA7A0
|
|
sub_80DA7A0: @ 80DA7A0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, =sub_80FCACC
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =sub_80DA7EC
|
|
adds r1, r5, 0
|
|
bl SetTaskFuncWithFollowupFunc
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =TaskDummy1
|
|
str r1, [r0]
|
|
bl sub_80DBF68
|
|
movs r0, 0
|
|
bl sub_80DC490
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA7A0
|
|
|
|
thumb_func_start sub_80DA7EC
|
|
sub_80DA7EC: @ 80DA7EC
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r2, =gTasks
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x8]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, =sub_80DA830
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA7EC
|
|
|
|
thumb_func_start sub_80DA830
|
|
sub_80DA830: @ 80DA830
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DA860
|
|
adds r0, r2, 0
|
|
bl DestroyTask
|
|
ldr r0, =gUnknown_03005DAC
|
|
ldr r1, =sub_80DA874
|
|
str r1, [r0]
|
|
bl FreeAllWindowBuffers
|
|
bl sub_80D7A5C
|
|
bl sub_805F094
|
|
ldr r0, =c2_exit_to_overworld_2_switch
|
|
bl SetMainCallback2
|
|
_080DA860:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA830
|
|
|
|
thumb_func_start sub_80DA874
|
|
sub_80DA874: @ 80DA874
|
|
push {lr}
|
|
bl script_env_2_disable
|
|
bl script_env_2_enable_and_set_ctx_running
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DA874
|
|
|
|
thumb_func_start sub_80DA884
|
|
sub_80DA884: @ 80DA884
|
|
push {lr}
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DA898
|
|
ldr r1, =gUnknown_02039F25
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
_080DA898:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA884
|
|
|
|
thumb_func_start sub_80DA8A4
|
|
sub_80DA8A4: @ 80DA8A4
|
|
push {lr}
|
|
ldr r0, =gUnknown_02039F25
|
|
ldr r1, =gUnknown_02039F2B
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _080DA8C0
|
|
movs r0, 0
|
|
b _080DA8C2
|
|
.pool
|
|
_080DA8C0:
|
|
movs r0, 0x1
|
|
_080DA8C2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DA8A4
|
|
|
|
thumb_func_start sub_80DA8C8
|
|
sub_80DA8C8: @ 80DA8C8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r6, =gSaveBlock2Ptr
|
|
ldr r1, [r6]
|
|
mov r0, sp
|
|
bl StringCopy
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DA8F2
|
|
mov r0, sp
|
|
bl sub_80DF9D4
|
|
_080DA8F2:
|
|
ldr r5, =gUnknown_02039F25
|
|
ldrb r0, [r5]
|
|
lsls r0, 6
|
|
ldr r4, =gUnknown_02039E0D
|
|
adds r0, r4
|
|
mov r1, sp
|
|
movs r2, 0x8
|
|
bl memcpy
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _080DA928
|
|
ldrb r0, [r5]
|
|
lsls r0, 6
|
|
adds r0, r4, r0
|
|
movs r1, 0xD8
|
|
b _080DA930
|
|
.pool
|
|
_080DA928:
|
|
ldrb r0, [r5]
|
|
lsls r0, 6
|
|
adds r0, r4, r0
|
|
movs r1, 0xD9
|
|
_080DA930:
|
|
strb r1, [r0, 0x8]
|
|
ldr r7, =gUnknown_02039E00
|
|
ldr r6, =gUnknown_02039F25
|
|
ldrb r0, [r6]
|
|
lsls r0, 6
|
|
adds r1, r7, 0
|
|
adds r1, 0x18
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
lsls r0, 6
|
|
adds r0, r7
|
|
adds r0, 0x2C
|
|
strb r1, [r0]
|
|
movs r0, 0x64
|
|
mov r1, r8
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
mov r0, sp
|
|
bl StringGetEnd10
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DA994
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
mov r0, sp
|
|
bl sub_80DF9E0
|
|
_080DA994:
|
|
ldrb r0, [r6]
|
|
lsls r0, 6
|
|
adds r4, r7, 0x2
|
|
adds r0, r4
|
|
mov r1, sp
|
|
movs r2, 0xB
|
|
bl memcpy
|
|
ldrb r0, [r6]
|
|
lsls r0, 6
|
|
adds r0, r4
|
|
mov r1, sp
|
|
bl StringCopy
|
|
adds r0, r5, 0
|
|
movs r1, 0x16
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
adds r1, 0x26
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x17
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
adds r1, 0x27
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x18
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
adds r1, 0x28
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x21
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
adds r1, 0x29
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2F
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x30
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
adds r1, 0x2B
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0xD
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
strh r0, [r1, 0x1E]
|
|
adds r0, r5, 0
|
|
movs r1, 0xE
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
strh r0, [r1, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0xF
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
strh r0, [r1, 0x22]
|
|
adds r0, r5, 0
|
|
movs r1, 0x10
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
strh r0, [r1, 0x24]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r2, r7, 0
|
|
adds r2, 0x38
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 6
|
|
adds r2, r7, 0
|
|
adds r2, 0x3C
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldrb r0, [r6]
|
|
lsls r0, 6
|
|
adds r1, r0, r7
|
|
adds r0, r1, 0
|
|
adds r0, 0x26
|
|
ldrb r3, [r0]
|
|
adds r0, 0x1
|
|
ldrb r5, [r0]
|
|
adds r0, 0x1
|
|
ldrb r6, [r0]
|
|
adds r0, 0x1
|
|
ldrb r7, [r0]
|
|
adds r0, 0x1
|
|
ldrb r4, [r0]
|
|
cmp r2, 0xFE
|
|
bne _080DAAC4
|
|
adds r3, 0x14
|
|
b _080DAB12
|
|
.pool
|
|
_080DAAC4:
|
|
cmp r2, 0xFF
|
|
bne _080DAAD4
|
|
lsls r0, r5, 16
|
|
movs r1, 0xA0
|
|
lsls r1, 13
|
|
adds r0, r1
|
|
lsrs r5, r0, 16
|
|
b _080DAB12
|
|
_080DAAD4:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
bne _080DAAE8
|
|
lsls r0, r6, 16
|
|
movs r1, 0xA0
|
|
lsls r1, 13
|
|
adds r0, r1
|
|
lsrs r6, r0, 16
|
|
b _080DAB12
|
|
_080DAAE8:
|
|
ldr r0, =0x00000101
|
|
cmp r2, r0
|
|
bne _080DAB00
|
|
lsls r0, r7, 16
|
|
movs r1, 0xA0
|
|
lsls r1, 13
|
|
adds r0, r1
|
|
lsrs r7, r0, 16
|
|
b _080DAB12
|
|
.pool
|
|
_080DAB00:
|
|
movs r0, 0x81
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
bne _080DAB12
|
|
lsls r0, r4, 16
|
|
movs r1, 0xA0
|
|
lsls r1, 13
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
_080DAB12:
|
|
cmp r3, 0xFF
|
|
ble _080DAB18
|
|
movs r3, 0xFF
|
|
_080DAB18:
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080DAB22
|
|
movs r5, 0xFF
|
|
_080DAB22:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080DAB2C
|
|
movs r6, 0xFF
|
|
_080DAB2C:
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080DAB36
|
|
movs r7, 0xFF
|
|
_080DAB36:
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080DAB40
|
|
movs r4, 0xFF
|
|
_080DAB40:
|
|
ldr r2, =gUnknown_02039E00
|
|
ldr r1, =gUnknown_02039F25
|
|
ldrb r0, [r1]
|
|
lsls r0, 6
|
|
adds r0, r2
|
|
adds r0, 0x26
|
|
strb r3, [r0]
|
|
ldrb r0, [r1]
|
|
lsls r0, 6
|
|
adds r0, r2
|
|
adds r0, 0x27
|
|
strb r5, [r0]
|
|
ldrb r0, [r1]
|
|
lsls r0, 6
|
|
adds r0, r2
|
|
adds r0, 0x28
|
|
strb r6, [r0]
|
|
ldrb r0, [r1]
|
|
lsls r0, 6
|
|
adds r0, r2
|
|
adds r0, 0x29
|
|
strb r7, [r0]
|
|
ldrb r0, [r1]
|
|
lsls r0, 6
|
|
adds r0, r2
|
|
adds r0, 0x2A
|
|
strb r4, [r0]
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DA8C8
|
|
|
|
thumb_func_start sub_80DAB8C
|
|
sub_80DAB8C: @ 80DAB8C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x64
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
movs r6, 0
|
|
movs r7, 0
|
|
bl sub_80DA884
|
|
ldr r0, =0x00000864
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DABC0
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DABC0
|
|
movs r7, 0x1
|
|
_080DABC0:
|
|
movs r5, 0
|
|
ldr r2, =gUnknown_085880A4
|
|
ldr r3, =gUnknown_085898A4
|
|
_080DABC6:
|
|
ldrb r0, [r2, 0x1C]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
cmp r8, r0
|
|
bne _080DAC3A
|
|
cmp r7, 0x1
|
|
bne _080DABEC
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x1
|
|
beq _080DAC3A
|
|
b _080DABF2
|
|
.pool
|
|
_080DABEC:
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x2
|
|
beq _080DAC3A
|
|
_080DABF2:
|
|
cmp r4, 0
|
|
bne _080DABFE
|
|
ldrb r0, [r2, 0x1C]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _080DAC2E
|
|
_080DABFE:
|
|
cmp r4, 0x1
|
|
bne _080DAC0A
|
|
ldrb r0, [r2, 0x1C]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
blt _080DAC2E
|
|
_080DAC0A:
|
|
cmp r4, 0x2
|
|
bne _080DAC16
|
|
ldrb r0, [r2, 0x1C]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _080DAC2E
|
|
_080DAC16:
|
|
cmp r4, 0x3
|
|
bne _080DAC22
|
|
ldrb r0, [r2, 0x1C]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
blt _080DAC2E
|
|
_080DAC22:
|
|
cmp r4, 0x4
|
|
bne _080DAC3A
|
|
ldrb r0, [r2, 0x1C]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
bge _080DAC3A
|
|
_080DAC2E:
|
|
adds r0, r6, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
add r0, sp
|
|
strb r5, [r0]
|
|
_080DAC3A:
|
|
adds r2, 0x40
|
|
adds r3, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x5F
|
|
bls _080DABC6
|
|
mov r0, sp
|
|
adds r1, r0, r6
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_085880A4
|
|
_080DAC50:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r6, 0
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, =gUnknown_02039E00
|
|
lsls r2, r5, 6
|
|
adds r2, r1
|
|
mov r1, sp
|
|
adds r4, r1, r0
|
|
ldrb r1, [r4]
|
|
lsls r1, 6
|
|
adds r1, r7
|
|
adds r0, r2, 0
|
|
movs r2, 0x40
|
|
bl memcpy
|
|
ldrb r0, [r4]
|
|
adds r2, r5, 0x1
|
|
subs r1, r6, 0x1
|
|
cmp r0, 0xFF
|
|
beq _080DAC92
|
|
adds r3, r4, 0
|
|
_080DAC86:
|
|
ldrb r0, [r3, 0x1]
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r0, 0xFF
|
|
bne _080DAC86
|
|
_080DAC92:
|
|
lsls r0, r1, 24
|
|
lsrs r6, r0, 24
|
|
adds r5, r2, 0
|
|
cmp r5, 0x2
|
|
ble _080DAC50
|
|
ldr r0, =gUnknown_02039F24
|
|
ldrb r0, [r0]
|
|
bl sub_80DA8C8
|
|
add sp, 0x64
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DAB8C
|
|
|
|
thumb_func_start sub_80DACBC
|
|
sub_80DACBC: @ 80DACBC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x64
|
|
mov r8, r2
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
movs r7, 0
|
|
ldr r0, =gUnknown_02039F30
|
|
ldrb r1, [r0]
|
|
mov r9, r0
|
|
cmp r1, 0x4
|
|
bne _080DACDE
|
|
b _080DADF6
|
|
_080DACDE:
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_085880A4
|
|
ldr r6, =gUnknown_085898A4
|
|
_080DACE4:
|
|
ldrb r0, [r3, 0x1C]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
cmp r2, r0
|
|
bne _080DAD56
|
|
mov r0, r8
|
|
cmp r0, 0x1
|
|
bne _080DAD08
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x1
|
|
beq _080DAD56
|
|
b _080DAD0E
|
|
.pool
|
|
_080DAD08:
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x2
|
|
beq _080DAD56
|
|
_080DAD0E:
|
|
cmp r4, 0
|
|
bne _080DAD1A
|
|
ldrb r0, [r3, 0x1C]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _080DAD4A
|
|
_080DAD1A:
|
|
cmp r4, 0x1
|
|
bne _080DAD26
|
|
ldrb r0, [r3, 0x1C]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
blt _080DAD4A
|
|
_080DAD26:
|
|
cmp r4, 0x2
|
|
bne _080DAD32
|
|
ldrb r0, [r3, 0x1C]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _080DAD4A
|
|
_080DAD32:
|
|
cmp r4, 0x3
|
|
bne _080DAD3E
|
|
ldrb r0, [r3, 0x1C]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
blt _080DAD4A
|
|
_080DAD3E:
|
|
cmp r4, 0x4
|
|
bne _080DAD56
|
|
ldrb r0, [r3, 0x1C]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
bge _080DAD56
|
|
_080DAD4A:
|
|
adds r0, r7, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
add r0, sp
|
|
strb r5, [r0]
|
|
_080DAD56:
|
|
adds r3, 0x40
|
|
adds r6, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x5F
|
|
bls _080DACE4
|
|
mov r3, sp
|
|
adds r1, r3, r7
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
subs r0, r1
|
|
cmp r5, r0
|
|
bge _080DADF6
|
|
ldr r3, =gUnknown_02039E00
|
|
mov r8, r3
|
|
mov r6, r9
|
|
movs r0, 0x2
|
|
add r0, r8
|
|
mov r9, r0
|
|
_080DAD82:
|
|
bl sub_80F903C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r7, 0
|
|
bl __modsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
lsls r0, 6
|
|
add r0, r8
|
|
ldr r2, =gUnknown_085880A4
|
|
mov r3, sp
|
|
adds r4, r3, r1
|
|
ldrb r1, [r4]
|
|
lsls r1, 6
|
|
adds r1, r2
|
|
movs r2, 0x40
|
|
bl memcpy
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
lsls r0, 6
|
|
mov r1, r8
|
|
adds r1, 0xD
|
|
adds r0, r1
|
|
bl sub_80DF9D4
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
lsls r0, 6
|
|
add r0, r9
|
|
movs r1, 0x2
|
|
bl sub_80DF9E0
|
|
ldrb r0, [r4]
|
|
adds r3, r5, 0x1
|
|
subs r1, r7, 0x1
|
|
cmp r0, 0xFF
|
|
beq _080DADE6
|
|
adds r2, r4, 0
|
|
_080DADDA:
|
|
ldrb r0, [r2, 0x1]
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xFF
|
|
bne _080DADDA
|
|
_080DADE6:
|
|
lsls r0, r1, 24
|
|
lsrs r7, r0, 24
|
|
adds r5, r3, 0
|
|
ldrb r1, [r6]
|
|
movs r0, 0x4
|
|
subs r0, r1
|
|
cmp r5, r0
|
|
blt _080DAD82
|
|
_080DADF6:
|
|
add sp, 0x64
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DACBC
|
|
|
|
thumb_func_start sub_80DAE0C
|
|
sub_80DAE0C: @ 80DAE0C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080DAE1E
|
|
movs r0, 0x3
|
|
b _080DAE9A
|
|
_080DAE1E:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _080DAE2E
|
|
movs r0, 0x4
|
|
b _080DAE9A
|
|
_080DAE2E:
|
|
ldr r0, =gUnknown_02039F2C
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _080DAE82
|
|
lsls r0, 2
|
|
ldr r1, =_080DAE48
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DAE48:
|
|
.4byte _080DAE5C
|
|
.4byte _080DAE62
|
|
.4byte _080DAE68
|
|
.4byte _080DAE6E
|
|
.4byte _080DAE74
|
|
_080DAE5C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x32
|
|
b _080DAE78
|
|
_080DAE62:
|
|
adds r0, r4, 0
|
|
movs r1, 0x33
|
|
b _080DAE78
|
|
_080DAE68:
|
|
adds r0, r4, 0
|
|
movs r1, 0x34
|
|
b _080DAE78
|
|
_080DAE6E:
|
|
adds r0, r4, 0
|
|
movs r1, 0x35
|
|
b _080DAE78
|
|
_080DAE74:
|
|
adds r0, r4, 0
|
|
movs r1, 0x36
|
|
_080DAE78:
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
b _080DAE86
|
|
_080DAE82:
|
|
movs r0, 0
|
|
b _080DAE9A
|
|
_080DAE86:
|
|
ldr r0, =gUnknown_02039F2E
|
|
adds r2, r1, 0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x2
|
|
cmp r2, r1
|
|
bhi _080DAE9A
|
|
movs r0, 0
|
|
cmp r2, r1
|
|
bcc _080DAE9A
|
|
movs r0, 0x1
|
|
_080DAE9A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DAE0C
|
|
|
|
thumb_func_start sub_80DAEA4
|
|
sub_80DAEA4: @ 80DAEA4
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
_080DAEA8:
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
lsls r4, r5, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_80DAF04
|
|
adds r0, r4, 0
|
|
bl sub_80DAF88
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DAEA8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DAEA4
|
|
|
|
thumb_func_start sub_80DAED4
|
|
sub_80DAED4: @ 80DAED4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_02022E2C
|
|
ldr r1, =gUnknown_085ED1AB
|
|
bl StringCopy
|
|
adds r1, r0, 0
|
|
subs r0, r1, 0x1
|
|
strb r4, [r0]
|
|
adds r0, r1, 0
|
|
adds r1, r5, 0
|
|
bl StringCopy
|
|
adds r1, r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DAED4
|
|
|
|
thumb_func_start sub_80DAF04
|
|
sub_80DAF04: @ 80DAF04
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
movs r2, 0xA0
|
|
lsls r2, 20
|
|
adds r1, r2
|
|
lsrs r1, 24
|
|
bl sub_80DAF1C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DAF04
|
|
|
|
thumb_func_start sub_80DAF1C
|
|
sub_80DAF1C: @ 80DAF1C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x24
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, =gUnknown_085E8D3E
|
|
add r0, sp, 0x4
|
|
bl StringCopy
|
|
lsls r1, r5, 6
|
|
ldr r0, =gUnknown_02039E0D
|
|
adds r1, r0
|
|
add r0, sp, 0x4
|
|
bl StringAppend
|
|
add r0, sp, 0x4
|
|
adds r1, r4, 0
|
|
bl sub_80DAED4
|
|
ldr r4, =gUnknown_02022E2C
|
|
movs r0, 0x7
|
|
adds r1, r4, 0
|
|
movs r2, 0x60
|
|
bl GetStringRightAlignXOffset
|
|
adds r2, r0, 0
|
|
cmp r2, 0x37
|
|
ble _080DAF5C
|
|
movs r2, 0x37
|
|
_080DAF5C:
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7
|
|
str r1, [sp]
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
add sp, 0x24
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DAF1C
|
|
|
|
thumb_func_start sub_80DAF88
|
|
sub_80DAF88: @ 80DAF88
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
movs r2, 0xA0
|
|
lsls r2, 20
|
|
adds r1, r2
|
|
lsrs r1, 24
|
|
bl sub_80DAFA0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DAF88
|
|
|
|
thumb_func_start sub_80DAFA0
|
|
sub_80DAFA0: @ 80DAFA0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r4, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r0, r2
|
|
bl sub_80DAED4
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r4, r0
|
|
ldrb r0, [r4]
|
|
ldr r1, =gUnknown_02022E2C
|
|
movs r2, 0x7
|
|
str r2, [sp]
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DAFA0
|
|
|
|
thumb_func_start sub_80DAFE0
|
|
sub_80DAFE0: @ 80DAFE0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
cmp r0, 0x4
|
|
bhi _080DB06C
|
|
lsls r0, 2
|
|
ldr r1, =_080DAFFC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DAFFC:
|
|
.4byte _080DB010
|
|
.4byte _080DB028
|
|
.4byte _080DB040
|
|
.4byte _080DB050
|
|
.4byte _080DB06C
|
|
_080DB010:
|
|
ldr r0, =gUnknown_02039E00
|
|
lsls r2, 6
|
|
adds r1, r2, r0
|
|
adds r3, r1, 0
|
|
adds r3, 0x26
|
|
ldrb r5, [r3]
|
|
adds r3, 0x4
|
|
ldrb r4, [r3]
|
|
adds r1, 0x27
|
|
b _080DB07E
|
|
.pool
|
|
_080DB028:
|
|
ldr r0, =gUnknown_02039E00
|
|
lsls r2, 6
|
|
adds r1, r2, r0
|
|
adds r3, r1, 0
|
|
adds r3, 0x27
|
|
ldrb r5, [r3]
|
|
subs r3, 0x1
|
|
ldrb r4, [r3]
|
|
adds r1, 0x28
|
|
b _080DB07E
|
|
.pool
|
|
_080DB040:
|
|
ldr r1, =gUnknown_02039E00
|
|
lsls r2, 6
|
|
adds r3, r2, r1
|
|
adds r0, r3, 0
|
|
adds r0, 0x28
|
|
b _080DB05A
|
|
.pool
|
|
_080DB050:
|
|
ldr r1, =gUnknown_02039E00
|
|
lsls r2, 6
|
|
adds r3, r2, r1
|
|
adds r0, r3, 0
|
|
adds r0, 0x29
|
|
_080DB05A:
|
|
ldrb r5, [r0]
|
|
subs r0, 0x1
|
|
ldrb r4, [r0]
|
|
adds r0, 0x2
|
|
ldrb r3, [r0]
|
|
adds r0, r1, 0
|
|
b _080DB080
|
|
.pool
|
|
_080DB06C:
|
|
ldr r0, =gUnknown_02039E00
|
|
lsls r2, 6
|
|
adds r1, r2, r0
|
|
adds r3, r1, 0
|
|
adds r3, 0x2A
|
|
ldrb r5, [r3]
|
|
subs r3, 0x1
|
|
ldrb r4, [r3]
|
|
adds r1, 0x26
|
|
_080DB07E:
|
|
ldrb r3, [r1]
|
|
_080DB080:
|
|
adds r1, r2, r0
|
|
adds r1, 0x2B
|
|
adds r0, r4, r3
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DAFE0
|
|
|
|
thumb_func_start sub_80DB09C
|
|
sub_80DB09C: @ 80DB09C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_02039F00
|
|
_080DB0A6:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
adds r1, r6, 0
|
|
bl sub_80DAFE0
|
|
strh r0, [r5]
|
|
adds r5, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB0A6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DB09C
|
|
|
|
thumb_func_start sub_80DB0C4
|
|
sub_80DB0C4: @ 80DB0C4
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_08587C00
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_08C1C6B8
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r0, =gUnknown_08587BE8
|
|
movs r1, 0x70
|
|
movs r2, 0x24
|
|
movs r3, 0x1E
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gSprites
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r5, r2, r4
|
|
ldrb r3, [r5, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r3
|
|
movs r3, 0x10
|
|
orrs r1, r3
|
|
strb r1, [r5, 0x5]
|
|
adds r4, 0x1C
|
|
adds r2, r4
|
|
ldr r1, =SpriteCallbackDummy
|
|
str r1, [r2]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DB0C4
|
|
|
|
thumb_func_start sub_80DB120
|
|
sub_80DB120: @ 80DB120
|
|
push {lr}
|
|
ldr r0, =gUnknown_08587C08
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_08587C10
|
|
bl LoadCompressedObjectPalette
|
|
ldr r0, =gUnknown_08587C18
|
|
movs r1, 0x60
|
|
movs r2, 0xA
|
|
movs r3, 0x1D
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gSprites
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
movs r1, 0x3E
|
|
adds r1, r2
|
|
mov r12, r1
|
|
ldrb r1, [r1]
|
|
movs r3, 0x4
|
|
orrs r1, r3
|
|
mov r3, r12
|
|
strb r1, [r3]
|
|
ldrh r1, [r2, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
strh r1, [r2, 0x2E]
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DB120
|
|
|
|
thumb_func_start sub_80DB174
|
|
sub_80DB174: @ 80DB174
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r1, 0
|
|
adds r6, r2, 0
|
|
adds r4, r3, 0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r5, 0
|
|
bl sub_80DE84C
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bne _080DB1B8
|
|
lsls r0, r5, 3
|
|
ldr r1, =gMonBackPicTable
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl DecompressMonPic_DetectFrontOrBack_2
|
|
b _080DB1CC
|
|
.pool
|
|
_080DB1B8:
|
|
lsls r0, r5, 3
|
|
ldr r1, =gMonBackPicTable
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
|
|
_080DB1CC:
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
bl species_and_otid_get_pal
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_806A068
|
|
ldr r4, =gUnknown_0202499C
|
|
movs r0, 0x2
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_80A600C
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x70
|
|
movs r3, 0x1E
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gSprites
|
|
mov r8, r0
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r6, r0, 2
|
|
mov r0, r8
|
|
adds r4, r6, r0
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0x2
|
|
bl sub_80A82E4
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
adds r0, 0x1C
|
|
adds r0, r6, r0
|
|
ldr r1, =SpriteCallbackDummy
|
|
str r1, [r0]
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
strh r0, [r4, 0x2E]
|
|
strh r5, [r4, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_80DB2A8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DB278
|
|
mov r0, r8
|
|
adds r0, 0x10
|
|
adds r0, r6, r0
|
|
ldr r1, =gUnknown_082FF6C0
|
|
b _080DB280
|
|
.pool
|
|
_080DB278:
|
|
mov r0, r8
|
|
adds r0, 0x10
|
|
adds r0, r6, r0
|
|
ldr r1, =gUnknown_082FF694
|
|
_080DB280:
|
|
str r1, [r0]
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DB174
|
|
|
|
thumb_func_start sub_80DB2A8
|
|
sub_80DB2A8: @ 80DB2A8
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xC9
|
|
beq _080DB2B6
|
|
movs r0, 0x1
|
|
b _080DB2B8
|
|
_080DB2B6:
|
|
movs r0, 0
|
|
_080DB2B8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DB2A8
|
|
|
|
thumb_func_start sub_80DB2BC
|
|
sub_80DB2BC: @ 80DB2BC
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x24]
|
|
movs r4, 0xA0
|
|
lsls r4, 3
|
|
adds r1, r0, r4
|
|
movs r6, 0xA0
|
|
lsls r6, 1
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x2C]
|
|
adds r4, r0, r4
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DB2BC
|
|
|
|
thumb_func_start sub_80DB2EC
|
|
sub_80DB2EC: @ 80DB2EC
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
ldr r2, =gContestEffects
|
|
ldr r1, =gContestMoves
|
|
lsrs r0, 13
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bhi _080DB354
|
|
lsls r0, 2
|
|
ldr r1, =_080DB320
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DB320:
|
|
.4byte _080DB344
|
|
.4byte _080DB344
|
|
.4byte _080DB34C
|
|
.4byte _080DB34C
|
|
.4byte _080DB354
|
|
.4byte _080DB354
|
|
.4byte _080DB354
|
|
.4byte _080DB354
|
|
.4byte _080DB344
|
|
_080DB344:
|
|
ldr r0, =0x00009082
|
|
b _080DB356
|
|
.pool
|
|
_080DB34C:
|
|
ldr r0, =0x00009088
|
|
b _080DB356
|
|
.pool
|
|
_080DB354:
|
|
ldr r0, =0x00009086
|
|
_080DB356:
|
|
lsls r1, r3, 12
|
|
movs r2, 0x90
|
|
lsls r2, 8
|
|
adds r1, r2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DB2EC
|
|
|
|
thumb_func_start prints_contest_move_description
|
|
prints_contest_move_description: @ 80DB370
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r1, =gContestMoves
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
lsrs r0, 29
|
|
ldr r7, =0x00004040
|
|
cmp r0, 0
|
|
beq _080DB3A4
|
|
adds r7, 0x5
|
|
cmp r0, 0x1
|
|
beq _080DB3A4
|
|
adds r7, 0x5
|
|
cmp r0, 0x2
|
|
beq _080DB3A4
|
|
adds r7, 0x40
|
|
cmp r0, 0x3
|
|
bne _080DB3A4
|
|
subs r7, 0x20
|
|
_080DB3A4:
|
|
movs r6, 0x5
|
|
str r6, [sp]
|
|
movs r4, 0x1
|
|
str r4, [sp, 0x4]
|
|
movs r5, 0x11
|
|
str r5, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r0, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0xB
|
|
movs r3, 0x1F
|
|
bl sub_80DECB8
|
|
adds r1, r7, 0
|
|
adds r1, 0x10
|
|
str r6, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r2, 0xB
|
|
movs r3, 0x20
|
|
bl sub_80DECB8
|
|
ldr r2, =gContestEffects
|
|
ldr r0, =gContestMoves
|
|
mov r3, r8
|
|
lsls r1, r3, 3
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r0, [r2, 0x1]
|
|
adds r7, r1, 0
|
|
cmp r0, 0xFF
|
|
bne _080DB3FC
|
|
movs r6, 0
|
|
b _080DB408
|
|
.pool
|
|
_080DB3FC:
|
|
ldrb r0, [r2, 0x1]
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080DB408:
|
|
cmp r6, 0x8
|
|
bls _080DB40E
|
|
movs r6, 0x8
|
|
_080DB40E:
|
|
ldr r1, =0x00005035
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
movs r5, 0x1
|
|
str r5, [sp, 0x4]
|
|
movs r4, 0x11
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x15
|
|
movs r3, 0x1F
|
|
bl sub_80DED10
|
|
ldr r1, =0x00005012
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x15
|
|
movs r3, 0x1F
|
|
bl sub_80DED10
|
|
ldr r1, =gContestEffects
|
|
ldr r0, =gContestMoves
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0xFF
|
|
bne _080DB460
|
|
movs r6, 0
|
|
b _080DB46C
|
|
.pool
|
|
_080DB460:
|
|
ldrb r0, [r1, 0x2]
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080DB46C:
|
|
cmp r6, 0x8
|
|
bls _080DB472
|
|
movs r6, 0x8
|
|
_080DB472:
|
|
ldr r1, =0x00005036
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
movs r5, 0x1
|
|
str r5, [sp, 0x4]
|
|
movs r4, 0x11
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x15
|
|
movs r3, 0x20
|
|
bl sub_80DED10
|
|
ldr r1, =0x00005014
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x15
|
|
movs r3, 0x20
|
|
bl sub_80DED10
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldr r1, =gContestEffectDescriptionPointers
|
|
ldr r0, =gContestMoves
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0xA
|
|
bl sub_80DEB70
|
|
ldr r1, =gUnknown_085E8D3E
|
|
movs r0, 0x9
|
|
bl sub_80DEB70
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end prints_contest_move_description
|
|
|
|
thumb_func_start sub_80DB4E0
|
|
sub_80DB4E0: @ 80DB4E0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_80DBCA8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DB560
|
|
cmp r5, 0
|
|
beq _080DB560
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80DB2EC
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
movs r5, 0x1
|
|
str r5, [sp, 0x4]
|
|
movs r6, 0x11
|
|
str r6, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x14
|
|
adds r3, r7, 0
|
|
bl sub_80DECB8
|
|
adds r4, 0x10
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r3, r7, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x14
|
|
bl sub_80DECB8
|
|
b _080DB576
|
|
.pool
|
|
_080DB560:
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
adds r3, r7, 0
|
|
bl sub_80DED10
|
|
_080DB576:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DB4E0
|
|
|
|
thumb_func_start sub_80DB584
|
|
sub_80DB584: @ 80DB584
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
movs r5, 0
|
|
_080DB58A:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0, 0x6]
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
bl sub_80DB4E0
|
|
adds r5, 0x1C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB58A
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DB584
|
|
|
|
thumb_func_start sub_80DB5B0
|
|
sub_80DB5B0: @ 80DB5B0
|
|
ldr r0, =0x00002034
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DB5B0
|
|
|
|
thumb_func_start sub_80DB5B8
|
|
sub_80DB5B8: @ 80DB5B8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
mov r10, r8
|
|
ldr r0, =gUnknown_02039F34
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r7, r0, 2
|
|
adds r3, r7, r1
|
|
ldrb r0, [r3, 0x10]
|
|
movs r5, 0x30
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
bne _080DB5F4
|
|
movs r0, 0
|
|
b _080DB68A
|
|
.pool
|
|
_080DB5F4:
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0xD
|
|
ldrsb r0, [r3, r0]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
asrs r4, r0, 24
|
|
cmp r5, 0x10
|
|
bne _080DB648
|
|
bl sub_80DB5B0
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x13
|
|
adds r3, r6, 0
|
|
bl sub_80DED10
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _080DB688
|
|
movs r0, 0x5B
|
|
b _080DB672
|
|
.pool
|
|
_080DB648:
|
|
adds r3, r6, r4
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
subs r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x13
|
|
bl sub_80DED10
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
beq _080DB688
|
|
movs r0, 0x26
|
|
_080DB672:
|
|
bl audio_play
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r7, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x31
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
_080DB688:
|
|
movs r0, 0x1
|
|
_080DB68A:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DB5B8
|
|
|
|
thumb_func_start sub_80DB69C
|
|
sub_80DB69C: @ 80DB69C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r7, 0
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
movs r1, 0x11
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
_080DB6B6:
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
adds r4, 0x2
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_80DB5B0
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
add r0, r8
|
|
ldrb r0, [r0, 0xD]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
asrs r6, r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x13
|
|
adds r3, r4, 0
|
|
bl sub_80DED10
|
|
adds r4, r6
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
movs r0, 0x3
|
|
subs r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x13
|
|
adds r3, r4, 0
|
|
bl sub_80DED10
|
|
movs r1, 0x1C
|
|
add r8, r1
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _080DB6B6
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DB69C
|
|
|
|
thumb_func_start sub_80DB748
|
|
sub_80DB748: @ 80DB748
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0
|
|
cmp r1, 0x4
|
|
bhi _080DB78A
|
|
lsls r0, r1, 2
|
|
ldr r1, =_080DB764
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DB764:
|
|
.4byte _080DB778
|
|
.4byte _080DB77C
|
|
.4byte _080DB780
|
|
.4byte _080DB784
|
|
.4byte _080DB788
|
|
_080DB778:
|
|
movs r0, 0x80
|
|
b _080DB78A
|
|
_080DB77C:
|
|
movs r0, 0x84
|
|
b _080DB78A
|
|
_080DB780:
|
|
movs r0, 0x86
|
|
b _080DB78A
|
|
_080DB784:
|
|
movs r0, 0x88
|
|
b _080DB78A
|
|
_080DB788:
|
|
movs r0, 0x82
|
|
_080DB78A:
|
|
movs r1, 0x90
|
|
lsls r1, 8
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DB748
|
|
|
|
thumb_func_start sub_80DB798
|
|
sub_80DB798: @ 80DB798
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
movs r1, 0
|
|
mov r8, r1
|
|
ldr r1, =gUnknown_02039F26
|
|
adds r1, r0, r1
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
adds r1, 0x2
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldr r0, [r2, 0x10]
|
|
ldr r1, =0x00ff0003
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DB7DC
|
|
ldrb r0, [r2, 0xF]
|
|
cmp r0, 0
|
|
beq _080DB7EC
|
|
_080DB7DC:
|
|
movs r0, 0
|
|
b _080DB80E
|
|
.pool
|
|
_080DB7EC:
|
|
ldrb r1, [r2, 0xC]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DB7FA
|
|
movs r0, 0x1
|
|
b _080DB80E
|
|
_080DB7FA:
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DB80C
|
|
ldrb r1, [r2, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DB81A
|
|
_080DB80C:
|
|
movs r0, 0x2
|
|
_080DB80E:
|
|
bl sub_80DB748
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
b _080DB81E
|
|
_080DB81A:
|
|
movs r0, 0
|
|
mov r9, r0
|
|
_080DB81E:
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _080DB85E
|
|
movs r6, 0x2
|
|
str r6, [sp]
|
|
movs r4, 0x1
|
|
str r4, [sp, 0x4]
|
|
movs r5, 0x11
|
|
str r5, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r0, 0
|
|
mov r1, r8
|
|
movs r2, 0x14
|
|
adds r3, r7, 0
|
|
bl sub_80DECB8
|
|
mov r1, r8
|
|
adds r1, 0x10
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r3, r7, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r6, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r2, 0x14
|
|
bl sub_80DECB8
|
|
b _080DB874
|
|
_080DB85E:
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
adds r3, r7, 0
|
|
bl sub_80DED10
|
|
_080DB874:
|
|
mov r0, r9
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DB798
|
|
|
|
thumb_func_start sub_80DB884
|
|
sub_80DB884: @ 80DB884
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DB888:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DB798
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB888
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DB884
|
|
|
|
thumb_func_start sub_80DB89C
|
|
sub_80DB89C: @ 80DB89C
|
|
push {lr}
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x4
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
movs r0, 0
|
|
bl sub_80DED60
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DB89C
|
|
|
|
thumb_func_start sub_80DB8B8
|
|
sub_80DB8B8: @ 80DB8B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
adds r0, r4, 0
|
|
bl sub_80DBCA8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DB8D0
|
|
movs r0, 0
|
|
b _080DB90A
|
|
_080DB8D0:
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _080DB8F4
|
|
adds r0, r4, 0
|
|
bl sub_81562C4
|
|
bl sub_8156324
|
|
lsls r0, 24
|
|
ldr r2, =gUnknown_02039E00
|
|
lsrs r0, 23
|
|
lsls r1, r4, 6
|
|
b _080DB902
|
|
.pool
|
|
_080DB8F4:
|
|
ldr r2, =gUnknown_02039E00
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
lsls r1, r5, 6
|
|
_080DB902:
|
|
adds r0, r1
|
|
adds r2, 0x1E
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
_080DB90A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DB8B8
|
|
|
|
thumb_func_start sub_80DB918
|
|
sub_80DB918: @ 80DB918
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
movs r5, 0
|
|
_080DB91E:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DB8B8
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
adds r1, r5, r1
|
|
strh r0, [r1, 0x6]
|
|
adds r5, 0x1C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB91E
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DB918
|
|
|
|
thumb_func_start sub_80DB944
|
|
sub_80DB944: @ 80DB944
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
ldr r5, =gUnknown_02039F34
|
|
mov r4, sp
|
|
movs r3, 0
|
|
movs r6, 0x3
|
|
_080DB956:
|
|
ldr r2, [r5]
|
|
ldr r1, [r2, 0x4]
|
|
adds r1, r3, r1
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r7, [r1, 0x4]
|
|
adds r0, r7
|
|
strh r0, [r1, 0x4]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r3, r0
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4]
|
|
adds r4, 0x2
|
|
adds r3, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080DB956
|
|
movs r6, 0
|
|
_080DB978:
|
|
movs r4, 0x3
|
|
cmp r4, r6
|
|
ble _080DB9A4
|
|
_080DB97E:
|
|
subs r5, r4, 0x1
|
|
lsls r0, r5, 1
|
|
mov r1, sp
|
|
adds r3, r1, r0
|
|
lsls r0, r4, 1
|
|
adds r2, r1, r0
|
|
ldrh r4, [r3]
|
|
movs r7, 0
|
|
ldrsh r1, [r3, r7]
|
|
movs r7, 0
|
|
ldrsh r0, [r2, r7]
|
|
cmp r1, r0
|
|
bge _080DB99E
|
|
ldrh r0, [r2]
|
|
strh r4, [r2]
|
|
strh r0, [r3]
|
|
_080DB99E:
|
|
adds r4, r5, 0
|
|
cmp r4, r6
|
|
bgt _080DB97E
|
|
_080DB9A4:
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _080DB978
|
|
movs r6, 0
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_02039F34
|
|
mov r8, r1
|
|
movs r7, 0x3
|
|
mov r12, r7
|
|
_080DB9BA:
|
|
movs r4, 0
|
|
lsls r0, r6, 3
|
|
adds r7, r6, 0x1
|
|
subs r0, r6
|
|
lsls r5, r0, 2
|
|
mov r3, sp
|
|
_080DB9C6:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r5, r0
|
|
movs r6, 0x4
|
|
ldrsh r1, [r2, r6]
|
|
movs r6, 0
|
|
ldrsh r0, [r3, r6]
|
|
cmp r1, r0
|
|
bne _080DB9F0
|
|
mov r0, r12
|
|
ands r4, r0
|
|
ldrb r1, [r2, 0xB]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
strb r0, [r2, 0xB]
|
|
b _080DB9F8
|
|
.pool
|
|
_080DB9F0:
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB9C6
|
|
_080DB9F8:
|
|
adds r6, r7, 0
|
|
cmp r6, 0x3
|
|
ble _080DB9BA
|
|
movs r0, 0x1
|
|
bl sub_80DCE58
|
|
bl sub_80DD590
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DB944
|
|
|
|
thumb_func_start sub_80DBA18
|
|
sub_80DBA18: @ 80DBA18
|
|
push {r4,r5,lr}
|
|
ldr r4, =gUnknown_02039F34
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
_080DBA20:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
bne _080DBA34
|
|
movs r1, 0x5
|
|
b _080DBA52
|
|
.pool
|
|
_080DBA34:
|
|
movs r5, 0x2
|
|
ldrsh r0, [r1, r5]
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
ble _080DBA52
|
|
movs r1, 0x1
|
|
cmp r0, 0x1D
|
|
ble _080DBA52
|
|
movs r1, 0x2
|
|
cmp r0, 0x3B
|
|
ble _080DBA52
|
|
movs r1, 0x4
|
|
cmp r0, 0x4F
|
|
bgt _080DBA52
|
|
movs r1, 0x3
|
|
_080DBA52:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r2, r0
|
|
strb r1, [r0, 0x1A]
|
|
adds r2, 0x1C
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080DBA20
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DBA18
|
|
|
|
thumb_func_start sub_80DBA68
|
|
sub_80DBA68: @ 80DBA68
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DBA90
|
|
ldrb r1, [r2, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBA98
|
|
_080DBA90:
|
|
movs r0, 0
|
|
b _080DBA9A
|
|
.pool
|
|
_080DBA98:
|
|
movs r0, 0x1
|
|
_080DBA9A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DBA68
|
|
|
|
thumb_func_start sub_80DBAA0
|
|
sub_80DBAA0: @ 80DBAA0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r5, =gUnknown_02039F34
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r1, 0x7
|
|
negs r1, r1
|
|
mov r10, r1
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r9, r0
|
|
movs r4, 0
|
|
movs r6, 0x3
|
|
_080DBAC0:
|
|
ldr r1, [r5]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r4, r0
|
|
movs r2, 0
|
|
strh r2, [r0, 0x2]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r4, r0
|
|
strh r2, [r0]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
strb r1, [r0, 0x12]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r3, r4, r0
|
|
ldrb r2, [r3, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080DBAFC
|
|
lsls r0, r2, 29
|
|
lsrs r0, 30
|
|
subs r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
mov r1, r10
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0xC]
|
|
_080DBAFC:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
strb r1, [r0, 0xE]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
strb r1, [r0, 0xF]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r7, 0x5
|
|
negs r7, r7
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
mov r12, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0xC]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0xC]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x13]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strb r1, [r0, 0x14]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x31
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
adds r2, r4, r2
|
|
ldrb r3, [r2, 0x15]
|
|
lsls r1, r3, 31
|
|
lsrs r1, 31
|
|
lsls r1, 2
|
|
adds r0, r7, 0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0x11]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBBF4
|
|
ldrb r1, [r2, 0xC]
|
|
mov r0, r10
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
_080DBBF4:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0x11]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBC1A
|
|
ldrb r0, [r2, 0xB]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xB]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
_080DBC1A:
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
adds r4, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
blt _080DBC34
|
|
b _080DBAC0
|
|
_080DBC34:
|
|
movs r6, 0
|
|
ldr r5, =gUnknown_02039F34
|
|
movs r7, 0
|
|
movs r4, 0
|
|
_080DBC3C:
|
|
ldr r3, [r5]
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r1, [r0, 0x6]
|
|
strh r1, [r0, 0x8]
|
|
ldr r2, [r3]
|
|
lsls r1, r6, 1
|
|
ldrb r0, [r2, 0x1]
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r2, 0x1C
|
|
adds r2, r1
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r2]
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x6]
|
|
bl sub_80DD9F0
|
|
ldr r1, [r5]
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, 0x1]
|
|
lsls r1, 2
|
|
adds r1, r6, r1
|
|
adds r2, 0x44
|
|
adds r2, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
strh r7, [r0, 0x6]
|
|
adds r4, 0x1C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080DBC3C
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0x10]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBAA0
|
|
|
|
thumb_func_start sub_80DBCA8
|
|
sub_80DBCA8: @ 80DBCA8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DBCD0
|
|
ldrb r1, [r2, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBCD8
|
|
_080DBCD0:
|
|
movs r0, 0x1
|
|
b _080DBCDA
|
|
.pool
|
|
_080DBCD8:
|
|
movs r0, 0
|
|
_080DBCDA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DBCA8
|
|
|
|
thumb_func_start sub_80DBCE0
|
|
sub_80DBCE0: @ 80DBCE0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_80DBD34
|
|
ldr r1, =gUnknown_02039F18
|
|
lsls r4, 1
|
|
adds r1, r4, r1
|
|
strh r0, [r1]
|
|
ldr r2, =gUnknown_02039F08
|
|
adds r2, r4, r2
|
|
ldr r1, =gUnknown_02039F00
|
|
adds r4, r1
|
|
ldrh r4, [r4]
|
|
adds r0, r4
|
|
strh r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBCE0
|
|
|
|
thumb_func_start sub_80DBD18
|
|
sub_80DBD18: @ 80DBD18
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DBD1C:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DBCE0
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DBD1C
|
|
bl sub_80DBD4C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DBD18
|
|
|
|
thumb_func_start sub_80DBD34
|
|
sub_80DBD34: @ 80DBD34
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_02039F10
|
|
lsrs r0, 23
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 17
|
|
asrs r0, 16
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DBD34
|
|
|
|
thumb_func_start sub_80DBD4C
|
|
sub_80DBD4C: @ 80DBD4C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x70
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
bl memset
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r1, sp
|
|
adds r1, 0x8
|
|
str r1, [sp, 0x64]
|
|
mov r3, sp
|
|
adds r3, 0xC
|
|
str r3, [sp, 0x68]
|
|
mov r6, sp
|
|
adds r6, 0x14
|
|
str r6, [sp, 0x6C]
|
|
mov r4, sp
|
|
_080DBD7A:
|
|
bl Random
|
|
strh r0, [r4]
|
|
movs r2, 0
|
|
cmp r2, r9
|
|
bge _080DBDB8
|
|
mov r1, sp
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _080DBD9C
|
|
subs r4, 0x2
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
add r9, r7
|
|
b _080DBDB8
|
|
_080DBD9C:
|
|
adds r2, 0x1
|
|
cmp r2, r9
|
|
bge _080DBDB8
|
|
lsls r0, r2, 1
|
|
mov r3, sp
|
|
adds r1, r3, r0
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _080DBD9C
|
|
subs r4, 0x2
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
add r9, r6
|
|
_080DBDB8:
|
|
adds r4, 0x2
|
|
movs r7, 0x1
|
|
add r9, r7
|
|
mov r0, r9
|
|
cmp r0, 0x3
|
|
ble _080DBD7A
|
|
movs r1, 0
|
|
mov r9, r1
|
|
mov r4, sp
|
|
ldr r6, =gUnknown_02039F08
|
|
ldr r2, [sp, 0x64]
|
|
ldr r5, =gUnknown_02039F00
|
|
ldr r3, [sp, 0x68]
|
|
_080DBDD2:
|
|
mov r7, r9
|
|
lsls r1, r7, 4
|
|
movs r7, 0
|
|
ldrsh r0, [r6, r7]
|
|
str r0, [r2]
|
|
movs r7, 0
|
|
ldrsh r0, [r5, r7]
|
|
str r0, [r3]
|
|
ldrh r0, [r4]
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [sp, 0x6C]
|
|
adds r1, r0, r1
|
|
mov r7, r9
|
|
str r7, [r1]
|
|
adds r4, 0x2
|
|
adds r6, 0x2
|
|
adds r2, 0x10
|
|
adds r5, 0x2
|
|
adds r3, 0x10
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
mov r1, r9
|
|
cmp r1, 0x3
|
|
ble _080DBDD2
|
|
movs r3, 0
|
|
mov r9, r3
|
|
_080DBE06:
|
|
movs r4, 0x3
|
|
cmp r4, r9
|
|
ble _080DBE90
|
|
add r7, sp, 0x48
|
|
ldr r6, [sp, 0x68]
|
|
str r6, [sp, 0x58]
|
|
ldr r0, [sp, 0x64]
|
|
adds r0, 0x8
|
|
str r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x6C]
|
|
str r1, [sp, 0x60]
|
|
_080DBE1C:
|
|
subs r3, r4, 0x1
|
|
mov r10, r3
|
|
mov r0, r10
|
|
adds r1, r4, 0
|
|
ldr r2, [sp, 0x64]
|
|
bl sub_80DBF30
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DBE8A
|
|
mov r6, r10
|
|
lsls r2, r6, 4
|
|
ldr r0, [sp, 0x64]
|
|
adds r3, r0, r2
|
|
ldr r0, [r3]
|
|
str r0, [sp, 0x48]
|
|
ldr r1, [sp, 0x58]
|
|
adds r6, r1, r2
|
|
ldr r0, [r6]
|
|
str r0, [r7, 0x4]
|
|
ldr r0, [sp, 0x5C]
|
|
adds r0, r2
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
str r0, [r7, 0x8]
|
|
ldr r1, [sp, 0x60]
|
|
adds r2, r1, r2
|
|
ldr r0, [r2]
|
|
str r0, [r7, 0xC]
|
|
lsls r1, r4, 4
|
|
ldr r0, [sp, 0x64]
|
|
adds r5, r0, r1
|
|
ldr r0, [r5]
|
|
str r0, [r3]
|
|
ldr r3, [sp, 0x58]
|
|
adds r4, r3, r1
|
|
ldr r0, [r4]
|
|
str r0, [r6]
|
|
ldr r6, [sp, 0x5C]
|
|
adds r3, r6, r1
|
|
ldr r0, [r3]
|
|
mov r6, r8
|
|
str r0, [r6]
|
|
ldr r0, [sp, 0x60]
|
|
adds r1, r0, r1
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, [sp, 0x48]
|
|
str r0, [r5]
|
|
ldr r0, [r7, 0x4]
|
|
str r0, [r4]
|
|
ldr r0, [r7, 0x8]
|
|
str r0, [r3]
|
|
ldr r0, [r7, 0xC]
|
|
str r0, [r1]
|
|
_080DBE8A:
|
|
mov r4, r10
|
|
cmp r4, r9
|
|
bgt _080DBE1C
|
|
_080DBE90:
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
mov r3, r9
|
|
cmp r3, 0x2
|
|
ble _080DBE06
|
|
movs r6, 0
|
|
mov r9, r6
|
|
ldr r2, =gUnknown_02039F20
|
|
ldr r1, [sp, 0x6C]
|
|
_080DBEA2:
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
mov r7, r9
|
|
strb r7, [r0]
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
mov r3, r9
|
|
cmp r3, 0x3
|
|
ble _080DBEA2
|
|
add sp, 0x70
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBD4C
|
|
|
|
thumb_func_start sub_80DBED4
|
|
sub_80DBED4: @ 80DBED4
|
|
push {lr}
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBF0E
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
ldr r1, =gUnknown_02039F20
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 1
|
|
ldr r0, =gUnknown_02039F2C
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldr r0, =0x00000624
|
|
adds r2, r0
|
|
adds r2, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
ldr r1, =0x0000270f
|
|
cmp r0, r1
|
|
ble _080DBF0C
|
|
adds r0, r1, 0
|
|
_080DBF0C:
|
|
strh r0, [r2]
|
|
_080DBF0E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBED4
|
|
|
|
thumb_func_start sub_80DBF30
|
|
sub_80DBF30: @ 80DBF30
|
|
push {lr}
|
|
lsls r0, 4
|
|
adds r0, r2
|
|
lsls r1, 4
|
|
adds r3, r1, r2
|
|
ldr r2, [r0]
|
|
ldr r1, [r3]
|
|
cmp r2, r1
|
|
blt _080DBF60
|
|
cmp r2, r1
|
|
bgt _080DBF52
|
|
ldr r2, [r0, 0x4]
|
|
ldr r1, [r3, 0x4]
|
|
cmp r2, r1
|
|
blt _080DBF60
|
|
cmp r2, r1
|
|
ble _080DBF56
|
|
_080DBF52:
|
|
movs r2, 0
|
|
b _080DBF62
|
|
_080DBF56:
|
|
ldr r1, [r0, 0x8]
|
|
ldr r0, [r3, 0x8]
|
|
movs r2, 0
|
|
cmp r1, r0
|
|
bge _080DBF62
|
|
_080DBF60:
|
|
movs r2, 0x1
|
|
_080DBF62:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DBF30
|
|
|
|
thumb_func_start sub_80DBF68
|
|
sub_80DBF68: @ 80DBF68
|
|
push {lr}
|
|
ldr r0, =gUnknown_02022E16
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
bl sub_80DB89C
|
|
ldr r0, =gUnknown_0827E8DA
|
|
movs r1, 0
|
|
bl sub_80DEC30
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBF68
|
|
|
|
thumb_func_start sub_80DBF90
|
|
sub_80DBF90: @ 80DBF90
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
movs r5, 0x80
|
|
lsls r5, 18
|
|
movs r4, 0x3
|
|
_080DBF9A:
|
|
lsrs r3, r5, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x16
|
|
bl sub_80DED10
|
|
movs r0, 0xA0
|
|
lsls r0, 19
|
|
adds r5, r0
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080DBF9A
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DBF90
|
|
|
|
thumb_func_start sub_80DBFC8
|
|
sub_80DBFC8: @ 80DBFC8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =0x00005011
|
|
cmp r0, 0
|
|
beq _080DBFE2
|
|
ldr r1, =0x00006011
|
|
cmp r0, 0x1
|
|
beq _080DBFE2
|
|
ldr r1, =0x00008011
|
|
cmp r0, 0x2
|
|
bne _080DBFE2
|
|
ldr r1, =0x00007011
|
|
_080DBFE2:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DBFC8
|
|
|
|
thumb_func_start sub_80DBFFC
|
|
sub_80DBFFC: @ 80DBFFC
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
asrs r2, r0, 24
|
|
cmp r2, 0x10
|
|
ble _080DC016
|
|
movs r1, 0x10
|
|
b _080DC020
|
|
_080DC016:
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bge _080DC020
|
|
movs r1, 0xF0
|
|
_080DC020:
|
|
lsls r0, r1, 24
|
|
asrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DBFFC
|
|
|
|
thumb_func_start sub_80DC028
|
|
sub_80DC028: @ 80DC028
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
ldr r0, =sub_80DC0F4
|
|
movs r1, 0x14
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r5, 0
|
|
bl sub_80DBFFC
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
adds r5, r6
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r5, 0
|
|
bl sub_80DBFFC
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
subs r0, r4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r8
|
|
bl sub_80DBFC8
|
|
ldr r2, =gTasks
|
|
lsls r3, r7, 2
|
|
adds r0, r3, r7
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _080DC0A0
|
|
negs r0, r4
|
|
_080DC0A0:
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0xA]
|
|
cmp r4, 0
|
|
bgt _080DC0B4
|
|
cmp r4, 0
|
|
bne _080DC0C8
|
|
cmp r0, 0
|
|
ble _080DC0C8
|
|
_080DC0B4:
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
b _080DC0D6
|
|
.pool
|
|
_080DC0C8:
|
|
ldr r2, =gTasks
|
|
lsls r3, r7, 2
|
|
adds r0, r3, r7
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, =0x0000ffff
|
|
strh r1, [r0, 0xC]
|
|
_080DC0D6:
|
|
adds r0, r3, r7
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
mov r1, r8
|
|
strh r1, [r0, 0xE]
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DC028
|
|
|
|
thumb_func_start sub_80DC0F4
|
|
sub_80DC0F4: @ 80DC0F4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0xE]
|
|
mov r9, r0
|
|
ldrh r3, [r4, 0x8]
|
|
ldrh r1, [r4, 0xA]
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xE
|
|
bgt _080DC126
|
|
b _080DC2A8
|
|
_080DC126:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r2, [r4, 0xA]
|
|
movs r5, 0xA
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0
|
|
bne _080DC15C
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x14]
|
|
mov r2, r9
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _080DC2A8
|
|
.pool
|
|
_080DC15C:
|
|
cmp r3, 0
|
|
bne _080DC1A4
|
|
lsls r0, r1, 16
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bge _080DC17A
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
b _080DC188
|
|
_080DC17A:
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrh r0, [r4, 0xA]
|
|
subs r0, 0x1
|
|
_080DC188:
|
|
strh r0, [r4, 0xA]
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x8]
|
|
adds r2, r1, 0x1
|
|
strh r2, [r0, 0x8]
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
b _080DC210
|
|
.pool
|
|
_080DC1A4:
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bge _080DC1DE
|
|
lsls r0, r1, 16
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bge _080DC1CC
|
|
ldrh r0, [r4, 0x8]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
adds r0, 0x2
|
|
b _080DC20C
|
|
_080DC1CC:
|
|
ldrh r0, [r4, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0
|
|
subs r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080DC210
|
|
_080DC1DE:
|
|
lsls r0, r1, 16
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bge _080DC1F8
|
|
ldrh r0, [r4, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080DC210
|
|
_080DC1F8:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
subs r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
_080DC20C:
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080DC210:
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0
|
|
mov r10, r0
|
|
cmp r5, 0x7
|
|
bls _080DC226
|
|
movs r2, 0x1
|
|
mov r10, r2
|
|
adds r0, r5, 0
|
|
subs r0, 0x8
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_080DC226:
|
|
adds r2, r5, 0
|
|
adds r2, 0x16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_02039F26
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
adds r3, 0x2
|
|
add r3, r10
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r1, r6, 0
|
|
bl sub_80DED10
|
|
mov r3, r8
|
|
cmp r3, 0
|
|
ble _080DC284
|
|
movs r0, 0x60
|
|
bl audio_play
|
|
ldr r4, =gMPlay_SE1
|
|
adds r0, r4, 0
|
|
bl m4aMPlayImmInit
|
|
ldr r1, =0x0000ffff
|
|
ldr r0, [sp, 0xC]
|
|
lsls r2, r0, 24
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
bl m4aMPlayPitchControl
|
|
b _080DC28A
|
|
.pool
|
|
_080DC284:
|
|
movs r0, 0x16
|
|
bl audio_play
|
|
_080DC28A:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
bne _080DC2A8
|
|
cmp r5, 0
|
|
bne _080DC2A8
|
|
cmp r6, 0
|
|
bne _080DC2A8
|
|
ldr r0, =gTasks
|
|
lsls r1, r7, 2
|
|
adds r1, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r1, 0xC]
|
|
_080DC2A8:
|
|
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_80DC0F4
|
|
|
|
thumb_func_start sub_80DC2BC
|
|
sub_80DC2BC: @ 80DC2BC
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_08587A74
|
|
bl LoadSpriteSheet
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_08587A6C
|
|
_080DC2C8:
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
adds r0, r5
|
|
ldrb r2, [r0]
|
|
ldr r0, =gUnknown_08587AD0
|
|
movs r1, 0xB4
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x14]
|
|
lsls r1, r4, 2
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC2C8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC2BC
|
|
|
|
thumb_func_start sub_80DC308
|
|
sub_80DC308: @ 80DC308
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r2, [r0, 0x14]
|
|
lsls r3, r6, 2
|
|
adds r2, r3, r2
|
|
ldrb r0, [r2, 0x2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x2]
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x14]
|
|
adds r3, r0
|
|
ldrb r7, [r3]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
lsls r0, 17
|
|
lsrs r5, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x38
|
|
ble _080DC350
|
|
movs r5, 0x38
|
|
b _080DC356
|
|
.pool
|
|
_080DC350:
|
|
cmp r0, 0
|
|
bge _080DC356
|
|
movs r5, 0
|
|
_080DC356:
|
|
ldr r2, =gSprites
|
|
lsls r3, r7, 4
|
|
adds r0, r3, r7
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
movs r0, 0x3E
|
|
adds r0, r4
|
|
mov r12, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
strh r6, [r4, 0x2E]
|
|
strh r5, [r4, 0x30]
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
movs r5, 0x24
|
|
ldrsh r1, [r4, r5]
|
|
cmp r0, r1
|
|
ble _080DC38C
|
|
movs r0, 0x1
|
|
b _080DC38E
|
|
.pool
|
|
_080DC38C:
|
|
ldr r0, =0x0000ffff
|
|
_080DC38E:
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r3, r7
|
|
lsls r0, 2
|
|
adds r1, r2, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80DC408
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC308
|
|
|
|
thumb_func_start sub_80DC3AC
|
|
sub_80DC3AC: @ 80DC3AC
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DC3B0:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DC308
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC3B0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC3AC
|
|
|
|
thumb_func_start sub_80DC3C4
|
|
sub_80DC3C4: @ 80DC3C4
|
|
push {r4,lr}
|
|
movs r2, 0
|
|
ldr r3, =gUnknown_02039F34
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0x14]
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DC3F2
|
|
movs r4, 0x1
|
|
_080DC3DA:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080DC3F2
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DC3DA
|
|
_080DC3F2:
|
|
cmp r2, 0x4
|
|
beq _080DC400
|
|
movs r0, 0
|
|
b _080DC402
|
|
.pool
|
|
_080DC400:
|
|
movs r0, 0x1
|
|
_080DC402:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DC3C4
|
|
|
|
thumb_func_start sub_80DC408
|
|
sub_80DC408: @ 80DC408
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldrh r2, [r3, 0x24]
|
|
movs r0, 0x24
|
|
ldrsh r1, [r3, r0]
|
|
movs r4, 0x30
|
|
ldrsh r0, [r3, r4]
|
|
cmp r1, r0
|
|
bne _080DC440
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r3, r2]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x2]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x2]
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r3, 0x1C]
|
|
b _080DC446
|
|
.pool
|
|
_080DC440:
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, r2, r0
|
|
strh r0, [r3, 0x24]
|
|
_080DC446:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC408
|
|
|
|
thumb_func_start sub_80DC44C
|
|
sub_80DC44C: @ 80DC44C
|
|
push {r4-r6,lr}
|
|
movs r2, 0
|
|
ldr r6, =gSprites
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r4, =gUnknown_08587A6C
|
|
ldr r3, =gUnknown_02039F26
|
|
_080DC458:
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x22]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DC458
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC44C
|
|
|
|
thumb_func_start sub_80DC490
|
|
sub_80DC490: @ 80DC490
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r3, 0
|
|
ldr r7, =gUnknown_02039F26
|
|
ldr r5, =gSprites
|
|
ldr r4, =gUnknown_02039F34
|
|
movs r2, 0
|
|
_080DC4A0:
|
|
adds r0, r3, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _080DC4E2
|
|
cmp r6, 0
|
|
bne _080DC4CC
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0xB4
|
|
b _080DC4E0
|
|
.pool
|
|
_080DC4CC:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
_080DC4E0:
|
|
strh r1, [r0, 0x20]
|
|
_080DC4E2:
|
|
adds r2, 0x4
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DC4A0
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC490
|
|
|
|
thumb_func_start sub_80DC4F0
|
|
sub_80DC4F0: @ 80DC4F0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gUnknown_08587B08
|
|
bl LoadSpritePalette
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_02039F34
|
|
ldr r0, =gSprites
|
|
mov r8, r0
|
|
movs r6, 0
|
|
_080DC506:
|
|
lsls r0, r5, 3
|
|
ldr r1, =gUnknown_08587AE8
|
|
adds r0, r1
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_08587B18
|
|
adds r0, r6, r0
|
|
ldr r2, =gUnknown_08587A70
|
|
ldr r1, =gUnknown_02039F26
|
|
adds r1, r5, r1
|
|
ldrb r1, [r1]
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
movs r1, 0xCC
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r4, r5, 2
|
|
adds r1, r4, r1
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r1, =gUnknown_08587B80
|
|
bl SetSubspriteTables
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x14]
|
|
adds r4, r0
|
|
ldrb r1, [r4, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r6, 0x18
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DC506
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC4F0
|
|
|
|
thumb_func_start sub_80DC594
|
|
sub_80DC594: @ 80DC594
|
|
push {lr}
|
|
ldr r0, =gUnknown_08587BB0
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_08587BB8
|
|
bl LoadSpritePalette
|
|
ldr r0, =gUnknown_08587BC8
|
|
movs r1, 0x1E
|
|
movs r2, 0x2C
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r3, 0x4
|
|
orrs r2, r3
|
|
strb r2, [r1]
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
adds r1, 0x58
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC594
|
|
|
|
thumb_func_start sub_80DC5E8
|
|
sub_80DC5E8: @ 80DC5E8
|
|
push {r4,lr}
|
|
ldr r0, =sub_80DC728
|
|
movs r1, 0x1E
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0xD]
|
|
movs r2, 0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r4, =gTasks + 0x8
|
|
movs r3, 0xFF
|
|
_080DC60A:
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
adds r0, r4
|
|
strh r3, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080DC60A
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC5E8
|
|
|
|
thumb_func_start sub_80DC630
|
|
sub_80DC630: @ 80DC630
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gTasks
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r5, [r1]
|
|
ldr r1, [r5]
|
|
ldrb r2, [r1, 0xD]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
movs r4, 0
|
|
strh r4, [r1]
|
|
lsls r0, 2
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
ldr r1, [r5]
|
|
ldrb r2, [r1, 0xD]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r4, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC630
|
|
|
|
thumb_func_start sub_80DC674
|
|
sub_80DC674: @ 80DC674
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =sub_80DC6A4
|
|
movs r1, 0x1F
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0x8]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC674
|
|
|
|
thumb_func_start sub_80DC6A4
|
|
sub_80DC6A4: @ 80DC6A4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r2, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x8]
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r4, [r0]
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0xD]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r7, r2, 0
|
|
adds r7, 0x8
|
|
adds r1, r0, r7
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080DC6DC
|
|
cmp r0, 0xFF
|
|
bne _080DC716
|
|
_080DC6DC:
|
|
movs r3, 0
|
|
movs r0, 0xFF
|
|
strh r0, [r1]
|
|
lsls r1, r5, 2
|
|
adds r1, 0x1
|
|
lsls r1, 1
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0xD]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, r7
|
|
strh r3, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x14
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
adds r0, 0x5
|
|
lsls r0, 4
|
|
adds r0, 0x6
|
|
ldr r3, =0x00004bff
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
_080DC716:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC6A4
|
|
|
|
thumb_func_start sub_80DC728
|
|
sub_80DC728: @ 80DC728
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r6, 0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
mov r9, r1
|
|
lsls r7, r1, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r8, r0
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
add r1, r8
|
|
mov r10, r1
|
|
_080DC74C:
|
|
lsls r0, r6, 26
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 1
|
|
adds r0, r7
|
|
mov r4, r8
|
|
adds r2, r0, r4
|
|
ldrh r4, [r2]
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0xFF
|
|
beq _080DC7CA
|
|
adds r0, r3, 0x1
|
|
lsls r1, r0, 1
|
|
adds r1, r7
|
|
add r1, r8
|
|
movs r5, 0
|
|
ldrsh r1, [r1, r5]
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
bne _080DC77C
|
|
adds r0, r4, 0x1
|
|
b _080DC77E
|
|
.pool
|
|
_080DC77C:
|
|
subs r0, r4, 0x1
|
|
_080DC77E:
|
|
strh r0, [r2]
|
|
lsls r1, r3, 1
|
|
mov r0, r9
|
|
lsls r2, r0, 3
|
|
adds r0, r1, r2
|
|
mov r3, r10
|
|
adds r3, 0x8
|
|
adds r0, r3
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x10
|
|
beq _080DC79C
|
|
cmp r0, 0
|
|
bne _080DC7AA
|
|
_080DC79C:
|
|
lsls r0, r5, 1
|
|
adds r0, r2
|
|
adds r0, r3
|
|
ldrh r1, [r0]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strh r1, [r0]
|
|
_080DC7AA:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r0, 0x14
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
adds r0, 0x5
|
|
lsls r0, 4
|
|
adds r0, 0x6
|
|
adds r1, r4, r7
|
|
add r1, r8
|
|
ldrb r2, [r1]
|
|
movs r1, 0x2
|
|
ldr r3, =0x00004bff
|
|
bl BlendPalette
|
|
_080DC7CA:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _080DC74C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC728
|
|
|
|
thumb_func_start sub_80DC7EC
|
|
sub_80DC7EC: @ 80DC7EC
|
|
push {r4,lr}
|
|
ldr r0, =sub_80DC8D0
|
|
movs r1, 0x1E
|
|
bl CreateTask
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0xE]
|
|
movs r4, 0
|
|
_080DC800:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DC81C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC800
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC7EC
|
|
|
|
thumb_func_start sub_80DC81C
|
|
sub_80DC81C: @ 80DC81C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gTasks
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r4, [r1]
|
|
ldr r1, [r4]
|
|
ldrb r2, [r1, 0xE]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
movs r5, 0
|
|
movs r2, 0xFF
|
|
strh r2, [r1]
|
|
lsls r0, 2
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
ldr r1, [r4]
|
|
ldrb r2, [r1, 0xE]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r5, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC81C
|
|
|
|
thumb_func_start sub_80DC864
|
|
sub_80DC864: @ 80DC864
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DC868:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DC87C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC868
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC864
|
|
|
|
thumb_func_start sub_80DC87C
|
|
sub_80DC87C: @ 80DC87C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_80DC81C
|
|
adds r0, r4, 0x5
|
|
lsls r2, r0, 5
|
|
ldr r3, =gPlttBufferUnfaded + 0x14
|
|
adds r6, r2, r3
|
|
ldr r5, =gPlttBufferFaded + 0x14
|
|
adds r2, r5
|
|
ldr r1, =0x040000d4
|
|
str r6, [r1]
|
|
str r2, [r1, 0x4]
|
|
ldr r2, =0x80000001
|
|
str r2, [r1, 0x8]
|
|
ldr r6, [r1, 0x8]
|
|
lsls r0, 4
|
|
adds r4, 0xC
|
|
adds r0, r4
|
|
lsls r0, 1
|
|
subs r3, 0x14
|
|
adds r3, r0, r3
|
|
subs r5, 0x14
|
|
adds r0, r5
|
|
str r3, [r1]
|
|
str r0, [r1, 0x4]
|
|
str r2, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC87C
|
|
|
|
thumb_func_start sub_80DC8D0
|
|
sub_80DC8D0: @ 80DC8D0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r7, 0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
mov r9, r1
|
|
lsls r6, r1, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r8, r0
|
|
ldr r1, =0x00004bff
|
|
mov r10, r1
|
|
_080DC8F0:
|
|
lsls r0, r7, 26
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 1
|
|
adds r0, r6
|
|
mov r4, r8
|
|
adds r2, r0, r4
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0xFF
|
|
beq _080DC996
|
|
adds r0, r3, 0x2
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
movs r4, 0
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080DC996
|
|
strh r4, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r1, r0, 1
|
|
adds r1, r6
|
|
add r1, r8
|
|
movs r4, 0
|
|
ldrsh r1, [r1, r4]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
bne _080DC940
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
b _080DC944
|
|
.pool
|
|
_080DC940:
|
|
ldrh r0, [r2]
|
|
subs r0, 0x1
|
|
_080DC944:
|
|
strh r0, [r2]
|
|
lsls r1, r3, 1
|
|
mov r5, r9
|
|
lsls r2, r5, 3
|
|
adds r0, r1, r2
|
|
ldr r3, =gTasks
|
|
adds r3, 0x8
|
|
adds r0, r3
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
adds r5, r1, 0
|
|
cmp r0, 0x10
|
|
beq _080DC962
|
|
cmp r0, 0
|
|
bne _080DC970
|
|
_080DC962:
|
|
lsls r0, r4, 1
|
|
adds r0, r2
|
|
adds r0, r3
|
|
ldrh r1, [r0]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strh r1, [r0]
|
|
_080DC970:
|
|
adds r4, r7, 0x5
|
|
lsls r4, 4
|
|
adds r0, r4, 0
|
|
adds r0, 0xA
|
|
adds r5, r6
|
|
add r5, r8
|
|
ldrb r2, [r5]
|
|
movs r1, 0x1
|
|
mov r3, r10
|
|
bl BlendPalette
|
|
adds r4, 0xC
|
|
adds r4, r7
|
|
ldrb r2, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
mov r3, r10
|
|
bl BlendPalette
|
|
_080DC996:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DC8F0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC8D0
|
|
|
|
thumb_func_start sub_80DC9B4
|
|
sub_80DC9B4: @ 80DC9B4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DC9E0
|
|
adds r0, r2, 0
|
|
bl sub_80DC630
|
|
b _080DC9E6
|
|
.pool
|
|
_080DC9E0:
|
|
adds r0, r2, 0
|
|
bl sub_80DC674
|
|
_080DC9E6:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC9B4
|
|
|
|
thumb_func_start sub_80DC9EC
|
|
sub_80DC9EC: @ 80DC9EC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
ldr r6, =gUnknown_02039F26
|
|
adds r6, r0, r6
|
|
ldrb r0, [r6]
|
|
lsls r5, r0, 2
|
|
adds r5, r0
|
|
lsls r5, 27
|
|
movs r0, 0x80
|
|
lsls r0, 22
|
|
adds r5, r0
|
|
lsrs r5, 24
|
|
ldr r1, [sp, 0xC]
|
|
lsls r4, r1, 3
|
|
ldr r0, =gUnknown_08589904
|
|
adds r0, r4, r0
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_08589924
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
ldr r2, [sp, 0xC]
|
|
lsls r4, r2, 1
|
|
adds r4, r2
|
|
lsls r4, 3
|
|
ldr r0, =gUnknown_0858998C
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB8
|
|
adds r2, r5, 0
|
|
movs r3, 0x1D
|
|
bl CreateSprite
|
|
mov r9, r0
|
|
mov r3, r9
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
adds r0, r4, 0
|
|
movs r1, 0xF8
|
|
adds r2, r5, 0
|
|
movs r3, 0x1D
|
|
bl CreateSprite
|
|
mov r8, r0
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r5, r0, 4
|
|
add r5, r8
|
|
lsls r5, 2
|
|
ldr r1, =gSprites
|
|
adds r5, r1
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x40
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
movs r4, 0xC0
|
|
lsls r4, 19
|
|
ldrb r0, [r6]
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
lsls r3, 6
|
|
ldr r0, =0x0600e026
|
|
adds r3, r0
|
|
ldr r7, =gUnknown_02039F34
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x34]
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl CopySpriteTiles
|
|
ldrb r0, [r6]
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
lsls r3, 6
|
|
ldr r1, =0x0600e036
|
|
adds r3, r1
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x38]
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl CopySpriteTiles
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x34]
|
|
movs r6, 0xA0
|
|
lsls r6, 3
|
|
adds r1, r6
|
|
ldr r2, =0x050000c0
|
|
mov r10, r2
|
|
add r0, sp, 0x4
|
|
bl CpuSet
|
|
str r4, [sp, 0x8]
|
|
add r0, sp, 0x8
|
|
ldr r1, [r7]
|
|
ldr r1, [r1, 0x38]
|
|
adds r1, r6
|
|
mov r2, r10
|
|
bl CpuSet
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x34]
|
|
mov r3, r9
|
|
lsls r4, r3, 4
|
|
add r4, r9
|
|
lsls r4, 2
|
|
ldr r1, =gSprites
|
|
adds r4, r1
|
|
ldrh r1, [r4, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r6, =0x06010000
|
|
adds r1, r6
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
mov r10, r2
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x38]
|
|
ldrh r1, [r5, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
adds r1, r6
|
|
mov r2, r10
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
mov r3, r8
|
|
strh r3, [r4, 0x2E]
|
|
mov r0, r9
|
|
strh r0, [r5, 0x2E]
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0xC]
|
|
strh r1, [r4, 0x30]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xC]
|
|
strh r2, [r5, 0x30]
|
|
mov r0, r9
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DC9EC
|
|
|
|
thumb_func_start sub_80DCB78
|
|
sub_80DCB78: @ 80DCB78
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gSprites
|
|
lsls r5, r0, 4
|
|
adds r5, r0
|
|
lsls r5, 2
|
|
adds r5, r1
|
|
ldrh r0, [r5, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r4, r1
|
|
adds r0, r4, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
adds r0, r5, 0
|
|
bl DestroySpriteAndFreeResources
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCB78
|
|
|
|
thumb_func_start sub_80DCBB4
|
|
sub_80DCBB4: @ 80DCBB4
|
|
push {lr}
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, =0x00000907
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCBB4
|
|
|
|
thumb_func_start sub_80DCBD0
|
|
sub_80DCBD0: @ 80DCBD0
|
|
push {lr}
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DCBD0
|
|
|
|
thumb_func_start sub_80DCBE8
|
|
sub_80DCBE8: @ 80DCBE8
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
adds r4, r0, 0
|
|
mov r9, r1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r0, r9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
bl sub_80DCBB4
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r1, [r0]
|
|
ldr r2, =gSprites
|
|
mov r8, r2
|
|
lsls r6, r4, 4
|
|
adds r6, r4
|
|
lsls r6, 2
|
|
adds r0, r6, r2
|
|
movs r3, 0x30
|
|
ldrsh r2, [r0, r3]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldrb r1, [r2, 0x2]
|
|
movs r3, 0x2
|
|
orrs r1, r3
|
|
strb r1, [r2, 0x2]
|
|
ldrh r5, [r0, 0x2E]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
mov r1, r8
|
|
adds r0, r4, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
movs r2, 0x1C
|
|
add r8, r2
|
|
add r6, r8
|
|
ldr r0, =sub_80DCC84
|
|
str r0, [r6]
|
|
add r4, r8
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r4]
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
bne _080DCC70
|
|
movs r0, 0x65
|
|
bl audio_play
|
|
b _080DCC76
|
|
.pool
|
|
_080DCC70:
|
|
movs r0, 0x2
|
|
bl audio_play
|
|
_080DCC76:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DCBE8
|
|
|
|
thumb_func_start sub_80DCC84
|
|
sub_80DCC84: @ 80DCC84
|
|
push {lr}
|
|
mov r12, r0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DCCCC
|
|
mov r0, r12
|
|
ldrh r1, [r0, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gSprites
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _080DCCCC
|
|
mov r3, r12
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =sub_80DCCD8
|
|
mov r1, r12
|
|
str r0, [r1, 0x1C]
|
|
_080DCCCC:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCC84
|
|
|
|
thumb_func_start sub_80DCCD8
|
|
sub_80DCCD8: @ 80DCCD8
|
|
push {lr}
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
movs r3, 0x30
|
|
ldrsh r2, [r0, r3]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldrb r3, [r2, 0x2]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r3
|
|
strb r1, [r2, 0x2]
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80DCB78
|
|
bl sub_80DCBD0
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCCD8
|
|
|
|
thumb_func_start sub_80DCD08
|
|
sub_80DCD08: @ 80DCD08
|
|
push {lr}
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
adds r3, r0, 0
|
|
cmp r1, 0x1
|
|
bne _080DCD24
|
|
movs r0, 0
|
|
b _080DCD26
|
|
.pool
|
|
_080DCD24:
|
|
movs r0, 0x1
|
|
_080DCD26:
|
|
strb r0, [r2]
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DCD3E
|
|
bl sub_80DAEA4
|
|
bl sub_80DB2BC
|
|
b _080DCD42
|
|
_080DCD3E:
|
|
bl sub_80DCD48
|
|
_080DCD42:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DCD08
|
|
|
|
thumb_func_start sub_80DCD48
|
|
sub_80DCD48: @ 80DCD48
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
ldr r0, =gUnknown_020322D5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DCE44
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DCE44
|
|
cmp r0, 0
|
|
blt _080DCD7C
|
|
cmp r0, 0x3
|
|
bgt _080DCD7C
|
|
cmp r0, 0x2
|
|
blt _080DCD7C
|
|
bl sub_80DF750
|
|
b _080DCE44
|
|
.pool
|
|
_080DCD7C:
|
|
movs r5, 0
|
|
_080DCD7E:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _080DCD7E
|
|
movs r5, 0
|
|
_080DCD92:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
add r2, sp, 0x4
|
|
ldrh r4, [r0, 0x4]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _080DCDBC
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r2, 0
|
|
ldr r1, =gUnknown_085E8D40
|
|
bl StringCopy
|
|
adds r2, r0, 0
|
|
_080DCDBC:
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7
|
|
str r1, [sp]
|
|
add r1, sp, 0x4
|
|
movs r2, 0x37
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _080DCD92
|
|
movs r5, 0
|
|
_080DCDEA:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
add r2, sp, 0x4
|
|
ldrh r4, [r0, 0x2]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _080DCE14
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r2, 0
|
|
ldr r1, =gUnknown_085E8D40
|
|
bl StringCopy
|
|
adds r2, r0, 0
|
|
_080DCE14:
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7
|
|
str r1, [sp]
|
|
add r1, sp, 0x4
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _080DCDEA
|
|
bl sub_80DB2BC
|
|
_080DCE44:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCD48
|
|
|
|
thumb_func_start sub_80DCE58
|
|
sub_80DCE58: @ 80DCE58
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
add r4, sp, 0x4
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
bl memset
|
|
movs r5, 0
|
|
add r4, sp, 0x4
|
|
adds r6, r4, 0
|
|
movs r7, 0
|
|
_080DCE7E:
|
|
bl Random
|
|
adds r1, r0, 0
|
|
mov r0, sp
|
|
adds r0, r7
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
movs r2, 0
|
|
cmp r2, r5
|
|
bge _080DCEB6
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x4]
|
|
cmp r0, r1
|
|
beq _080DCEB0
|
|
_080DCE9E:
|
|
adds r2, 0x1
|
|
cmp r2, r5
|
|
bge _080DCEB6
|
|
lsls r0, r2, 1
|
|
adds r0, r4, r0
|
|
ldrh r1, [r6]
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080DCE9E
|
|
_080DCEB0:
|
|
subs r6, 0x2
|
|
subs r7, 0x2
|
|
subs r5, 0x1
|
|
_080DCEB6:
|
|
adds r6, 0x2
|
|
adds r7, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCE7E
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _080DCF80
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_02039F26
|
|
mov r8, r3
|
|
_080DCECC:
|
|
mov r6, r8
|
|
strb r5, [r6]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bge _080DCF48
|
|
ldr r7, =gUnknown_02039F00
|
|
mov r9, r7
|
|
lsls r0, r5, 1
|
|
adds r1, r0, 0
|
|
add r1, r9
|
|
mov r12, r1
|
|
mov r2, sp
|
|
adds r2, 0x4
|
|
str r2, [sp, 0xC]
|
|
add r0, sp
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x10]
|
|
ldr r3, =gUnknown_02039F26
|
|
adds r6, r3, 0
|
|
mov r10, r6
|
|
_080DCEF4:
|
|
ldrb r0, [r3]
|
|
lsls r2, r0, 1
|
|
mov r7, r9
|
|
adds r0, r2, r7
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
mov r7, r12
|
|
movs r6, 0
|
|
ldrsh r0, [r7, r6]
|
|
cmp r1, r0
|
|
blt _080DCF1C
|
|
cmp r1, r0
|
|
bne _080DCF40
|
|
ldr r7, [sp, 0xC]
|
|
adds r0, r7, r2
|
|
ldrh r0, [r0]
|
|
ldr r1, [sp, 0x10]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bcs _080DCF40
|
|
_080DCF1C:
|
|
adds r2, r5, 0
|
|
cmp r5, r4
|
|
ble _080DCF34
|
|
subs r0, r5, 0x1
|
|
mov r6, r10
|
|
adds r1, r0, r6
|
|
_080DCF28:
|
|
ldrb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
subs r1, 0x1
|
|
subs r2, 0x1
|
|
cmp r2, r4
|
|
bgt _080DCF28
|
|
_080DCF34:
|
|
strb r5, [r3]
|
|
b _080DCF48
|
|
.pool
|
|
_080DCF40:
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
blt _080DCEF4
|
|
_080DCF48:
|
|
cmp r4, r5
|
|
bne _080DCF50
|
|
mov r7, r8
|
|
strb r5, [r7]
|
|
_080DCF50:
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCECC
|
|
ldr r4, =gUnknown_02039F26
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
movs r5, 0
|
|
_080DCF68:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
adds r0, r4
|
|
strb r5, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCF68
|
|
b _080DD034
|
|
.pool
|
|
_080DCF80:
|
|
mov r0, sp
|
|
movs r1, 0xFF
|
|
movs r2, 0x4
|
|
bl memset
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_02039F26
|
|
movs r6, 0
|
|
_080DCF90:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0, 0xB]
|
|
lsls r0, 30
|
|
lsrs r2, r0, 30
|
|
mov r7, sp
|
|
adds r1, r7, r2
|
|
b _080DCFB6
|
|
.pool
|
|
_080DCFAC:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
mov r0, sp
|
|
adds r1, r0, r2
|
|
_080DCFB6:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _080DCFAC
|
|
strb r5, [r1]
|
|
strb r2, [r3]
|
|
adds r3, 0x1
|
|
adds r6, 0x1C
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCF90
|
|
movs r5, 0
|
|
_080DCFCC:
|
|
movs r4, 0x3
|
|
adds r1, r5, 0x1
|
|
mov r10, r1
|
|
cmp r4, r5
|
|
ble _080DD02E
|
|
mov r9, r4
|
|
ldr r2, =gUnknown_02039F26
|
|
mov r8, r2
|
|
add r3, sp, 0x4
|
|
mov r12, r3
|
|
_080DCFE0:
|
|
ldr r6, =gUnknown_02039F34
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r1, r0, 0
|
|
subs r1, 0x1C
|
|
ldrb r2, [r1, 0xB]
|
|
ldrb r3, [r0, 0xB]
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r0, r9
|
|
ands r0, r3
|
|
subs r3, r4, 0x1
|
|
cmp r1, r0
|
|
bne _080DD028
|
|
mov r0, r8
|
|
adds r7, r3, r0
|
|
adds r2, r4, r0
|
|
ldrb r6, [r7]
|
|
ldrb r1, [r2]
|
|
cmp r6, r1
|
|
bcs _080DD028
|
|
lsls r0, r3, 1
|
|
add r0, r12
|
|
lsls r1, r4, 1
|
|
add r1, r12
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bcs _080DD028
|
|
ldrb r0, [r2]
|
|
strb r6, [r2]
|
|
strb r0, [r7]
|
|
_080DD028:
|
|
adds r4, r3, 0
|
|
cmp r4, r5
|
|
bgt _080DCFE0
|
|
_080DD02E:
|
|
mov r5, r10
|
|
cmp r5, 0x2
|
|
ble _080DCFCC
|
|
_080DD034:
|
|
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_80DCE58
|
|
|
|
thumb_func_start sub_80DD04C
|
|
sub_80DD04C: @ 80DD04C
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
movs r5, 0xA0
|
|
_080DD052:
|
|
ldr r0, =0x0201a004
|
|
adds r0, r5, r0
|
|
ldr r1, =gUnknown_02039F26
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x5
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r5, 0x20
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD052
|
|
bl sub_80DAEA4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD04C
|
|
|
|
thumb_func_start sub_80DD080
|
|
sub_80DD080: @ 80DD080
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r3, [r4]
|
|
ldr r1, [r3, 0x4]
|
|
lsls r7, r6, 3
|
|
subs r0, r7, r6
|
|
lsls r5, r0, 2
|
|
adds r1, r5, r1
|
|
movs r2, 0
|
|
strh r2, [r1, 0x2]
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r5, r0
|
|
strh r2, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80DBA68
|
|
lsls r0, 24
|
|
mov r8, r4
|
|
cmp r0, 0
|
|
bne _080DD0B4
|
|
b _080DD3C4
|
|
_080DD0B4:
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrh r0, [r1, 0x6]
|
|
ldr r2, =gContestMoves
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
mov r9, r2
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
lsrs r0, 29
|
|
strb r0, [r1, 0xA]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r5, r0
|
|
ldrh r0, [r2, 0x6]
|
|
ldrh r1, [r2, 0x8]
|
|
cmp r0, r1
|
|
bne _080DD110
|
|
cmp r0, 0
|
|
beq _080DD110
|
|
ldrb r0, [r2, 0x15]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, [r4]
|
|
ldr r2, [r0, 0x4]
|
|
adds r2, r5, r2
|
|
ldrb r3, [r2, 0xB]
|
|
lsls r1, r3, 25
|
|
lsrs r1, 29
|
|
adds r1, 0x1
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
lsls r1, 4
|
|
movs r0, 0x71
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xB]
|
|
b _080DD12C
|
|
.pool
|
|
_080DD110:
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r3, r6, 3
|
|
subs r1, r3, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xB]
|
|
movs r0, 0x71
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xB]
|
|
mov r8, r4
|
|
adds r7, r3, 0
|
|
_080DD12C:
|
|
mov r2, r8
|
|
ldr r4, [r2]
|
|
ldr r2, [r4, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldr r3, =gContestEffects
|
|
mov r1, r9
|
|
lsls r5, r1, 2
|
|
adds r3, r5, r3
|
|
ldrb r1, [r3, 0x1]
|
|
strh r1, [r2]
|
|
ldr r1, [r4, 0x4]
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
strh r1, [r0, 0x2]
|
|
ldr r1, [r4, 0x8]
|
|
ldrb r0, [r3, 0x2]
|
|
strh r0, [r1, 0x4]
|
|
ldr r1, [r4, 0x8]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r1, 0x6]
|
|
ldr r0, [r4, 0x8]
|
|
strb r6, [r0, 0x11]
|
|
movs r2, 0
|
|
mov r9, r5
|
|
mov r4, r8
|
|
movs r3, 0
|
|
movs r1, 0
|
|
_080DD166:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r1, r0
|
|
strb r3, [r0, 0xE]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0xD
|
|
adds r0, r2
|
|
strb r3, [r0]
|
|
adds r1, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DD166
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r2, r4, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD1B4
|
|
ldrh r0, [r2, 0x8]
|
|
ldrh r1, [r2, 0x6]
|
|
bl AreMovesContestCombo
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD1B4
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
_080DD1B4:
|
|
ldr r0, =gContestEffectFunctionTable
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, 0x10]
|
|
movs r0, 0x30
|
|
ands r0, r1
|
|
cmp r0, 0x10
|
|
bne _080DD1EC
|
|
ldrh r1, [r2, 0x2]
|
|
subs r1, 0xA
|
|
movs r0, 0xD
|
|
ldrsb r0, [r2, r0]
|
|
b _080DD206
|
|
.pool
|
|
_080DD1EC:
|
|
ldrb r1, [r2, 0x11]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD200
|
|
movs r1, 0xD
|
|
ldrsb r1, [r2, r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
b _080DD204
|
|
_080DD200:
|
|
movs r0, 0xD
|
|
ldrsb r0, [r2, r0]
|
|
_080DD204:
|
|
ldrh r1, [r2, 0x2]
|
|
_080DD206:
|
|
adds r0, r1
|
|
strh r0, [r2, 0x2]
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r1, r4, r1
|
|
movs r0, 0
|
|
strb r0, [r1, 0x16]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
adds r0, r6, 0
|
|
bl sub_80DE1E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DD2E2
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrh r0, [r1, 0x8]
|
|
ldrh r1, [r1, 0x6]
|
|
bl AreMovesContestCombo
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _080DD29C
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD29C
|
|
strb r3, [r2, 0x16]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1, 0x15]
|
|
movs r2, 0x40
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
ldrb r1, [r0, 0x16]
|
|
muls r1, r2
|
|
strb r1, [r0, 0x17]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1, 0x15]
|
|
movs r2, 0x8
|
|
b _080DD2C8
|
|
.pool
|
|
_080DD29C:
|
|
ldr r2, =gContestMoves
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r3, r4, r1
|
|
ldrh r0, [r3, 0x6]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _080DD2D8
|
|
ldrb r0, [r3, 0x15]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1, 0x15]
|
|
movs r2, 0x40
|
|
_080DD2C8:
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x15]
|
|
b _080DD2E2
|
|
.pool
|
|
_080DD2D8:
|
|
ldrb r1, [r3, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3, 0x15]
|
|
_080DD2E2:
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r2, r4, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD30A
|
|
ldrb r0, [r2, 0xB]
|
|
lsls r0, 25
|
|
lsrs r0, 29
|
|
adds r0, 0x1
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
strb r1, [r2, 0x18]
|
|
_080DD30A:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0xC]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD334
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r2, [r5]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
strh r1, [r0]
|
|
_080DD334:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x6]
|
|
bl sub_80DD9F0
|
|
ldr r1, [r5]
|
|
ldr r1, [r1, 0x10]
|
|
strb r0, [r1]
|
|
ldr r2, [r5]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x11]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD35C
|
|
ldr r0, [r2, 0x10]
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
_080DD35C:
|
|
ldr r1, [r5]
|
|
ldr r3, [r1, 0x10]
|
|
movs r0, 0
|
|
ldrsb r0, [r3, r0]
|
|
cmp r0, 0
|
|
ble _080DD388
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0
|
|
ldrsb r1, [r3, r1]
|
|
adds r0, r1
|
|
cmp r0, 0x4
|
|
ble _080DD384
|
|
movs r0, 0x3C
|
|
b _080DD38A
|
|
.pool
|
|
_080DD384:
|
|
movs r0, 0xA
|
|
b _080DD38A
|
|
_080DD388:
|
|
movs r0, 0
|
|
_080DD38A:
|
|
strb r0, [r3, 0x2]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0
|
|
b _080DD3AE
|
|
_080DD3A2:
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080DD3A8:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080DD3B6
|
|
_080DD3AE:
|
|
cmp r2, r6
|
|
beq _080DD3A8
|
|
cmp r0, 0
|
|
bne _080DD3A2
|
|
_080DD3B6:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strb r2, [r0, 0x1B]
|
|
_080DD3C4:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD080
|
|
|
|
thumb_func_start sub_80DD3D4
|
|
sub_80DD3D4: @ 80DD3D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r2, [r2]
|
|
ldr r3, [r2, 0x4]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
strb r1, [r2, 0x13]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DD3D4
|
|
|
|
thumb_func_start sub_80DD3F0
|
|
sub_80DD3F0: @ 80DD3F0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r2, [r2]
|
|
ldr r3, [r2, 0x4]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
strb r1, [r2, 0x14]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DD3F0
|
|
|
|
thumb_func_start sub_80DD40C
|
|
sub_80DD40C: @ 80DD40C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, r1, 0
|
|
cmp r1, 0x3B
|
|
bls _080DD426
|
|
movs r1, 0x35
|
|
bl sub_80DD3D4
|
|
b _080DD456
|
|
_080DD426:
|
|
cmp r1, 0x27
|
|
bls _080DD432
|
|
movs r1, 0x34
|
|
bl sub_80DD3D4
|
|
b _080DD456
|
|
_080DD432:
|
|
cmp r1, 0x1D
|
|
bls _080DD43E
|
|
movs r1, 0x33
|
|
bl sub_80DD3D4
|
|
b _080DD456
|
|
_080DD43E:
|
|
cmp r1, 0x13
|
|
bls _080DD44A
|
|
movs r1, 0x32
|
|
bl sub_80DD3D4
|
|
b _080DD456
|
|
_080DD44A:
|
|
cmp r2, 0x9
|
|
bls _080DD456
|
|
adds r0, r3, 0
|
|
movs r1, 0x31
|
|
bl sub_80DD3D4
|
|
_080DD456:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DD40C
|
|
|
|
thumb_func_start sub_80DD45C
|
|
sub_80DD45C: @ 80DD45C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r4, 6
|
|
ldr r2, =gUnknown_02039E02
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r0, =gStringVar2
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r4, 3
|
|
subs r1, r4
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x6]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r3, =gContestMoves
|
|
ldr r1, [r5]
|
|
ldr r0, [r1, 0x8]
|
|
ldrb r2, [r0, 0x11]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x6]
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r1, r0, 29
|
|
cmp r1, 0
|
|
bne _080DD4DC
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gUnknown_0827E837
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD4DC:
|
|
lsrs r0, r1, 29
|
|
cmp r0, 0x1
|
|
bne _080DD4F4
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gUnknown_0827E83F
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD4F4:
|
|
lsrs r0, r1, 29
|
|
cmp r0, 0x2
|
|
bne _080DD50C
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gUnknown_0827E847
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD50C:
|
|
lsrs r0, r1, 29
|
|
cmp r0, 0x3
|
|
bne _080DD524
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gUnknown_0827E850
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD524:
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gUnknown_0827E85A
|
|
bl StringCopy
|
|
_080DD52C:
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_08587E10
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
bl sub_80DB89C
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEC30
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD45C
|
|
|
|
thumb_func_start sub_80DD560
|
|
sub_80DD560: @ 80DD560
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r1, [r4]
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r3, r1, r3
|
|
ldrb r0, [r3, 0xC]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r3, 0xC]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD560
|
|
|
|
thumb_func_start sub_80DD590
|
|
sub_80DD590: @ 80DD590
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
mov r12, r0
|
|
movs r4, 0
|
|
ldr r1, =gUnknown_02039F26
|
|
mov r9, r1
|
|
add r2, sp, 0x4
|
|
mov r6, r9
|
|
movs r5, 0
|
|
adds r3, r2, 0
|
|
_080DD5AC:
|
|
mov r0, sp
|
|
adds r1, r0, r4
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, r4
|
|
strb r5, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD5AC
|
|
movs r4, 0
|
|
ldr r7, =gUnknown_02039F34
|
|
ldr r1, [r7]
|
|
mov r8, r1
|
|
adds r5, r2, 0
|
|
_080DD5CA:
|
|
movs r2, 0
|
|
mov r0, r8
|
|
ldr r1, [r0, 0x4]
|
|
_080DD5D0:
|
|
ldrb r0, [r1, 0x19]
|
|
cmp r0, r4
|
|
beq _080DD604
|
|
adds r1, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DD5D0
|
|
_080DD5DE:
|
|
cmp r2, 0x4
|
|
bne _080DD684
|
|
movs r2, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _080DD612
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0xFF
|
|
bne _080DD612
|
|
mov r12, r2
|
|
movs r2, 0x1
|
|
b _080DD63A
|
|
.pool
|
|
_080DD604:
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
strb r4, [r0]
|
|
adds r1, r5, r2
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _080DD5DE
|
|
_080DD612:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080DD676
|
|
adds r0, r5, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DD612
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0xFF
|
|
bne _080DD612
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
adds r2, 0x1
|
|
_080DD63A:
|
|
cmp r2, 0x3
|
|
bgt _080DD676
|
|
ldr r6, =gUnknown_02039F26
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r3, r0, 2
|
|
_080DD646:
|
|
adds r0, r5, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DD66E
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0xFF
|
|
bne _080DD66E
|
|
mov r1, r12
|
|
adds r0, r1, r6
|
|
adds r1, r2, r6
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bls _080DD66E
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
_080DD66E:
|
|
adds r3, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DD646
|
|
_080DD676:
|
|
mov r0, sp
|
|
add r0, r12
|
|
strb r4, [r0]
|
|
mov r0, r12
|
|
adds r1, r5, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080DD684:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD5CA
|
|
movs r4, 0
|
|
ldr r6, =gUnknown_02039F34
|
|
movs r5, 0
|
|
_080DD690:
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x8]
|
|
adds r1, r4
|
|
mov r0, sp
|
|
adds r3, r0, r4
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r5, r0
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x19]
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x3F
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
mov r0, r9
|
|
adds r1, r4, r0
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
adds r5, 0x1C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD690
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD590
|
|
|
|
thumb_func_start sub_80DD6DC
|
|
sub_80DD6DC: @ 80DD6DC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r2, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x54
|
|
ble _080DD712
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r2, 0x1C]
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
_080DD712:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD6DC
|
|
|
|
thumb_func_start sub_80DD720
|
|
sub_80DD720: @ 80DD720
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r5, [r0, 0x12]
|
|
cmp r1, 0x8
|
|
bls _080DD734
|
|
b _080DD8D4
|
|
_080DD734:
|
|
lsls r0, r1, 2
|
|
ldr r1, =_080DD748
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DD748:
|
|
.4byte _080DD76C
|
|
.4byte _080DD76C
|
|
.4byte _080DD79C
|
|
.4byte _080DD7D0
|
|
.4byte _080DD804
|
|
.4byte _080DD838
|
|
.4byte _080DD86C
|
|
.4byte _080DD8D4
|
|
.4byte _080DD8A0
|
|
_080DD76C:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x2E]
|
|
ldr r2, =0x000003ff
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x20
|
|
bl audio_play
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD79C:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x4
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x1F
|
|
bl audio_play
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD7D0:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x8
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x1F
|
|
bl audio_play
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD804:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0xC
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl audio_play
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD838:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0xC
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl audio_play
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD86C:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x10
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl audio_play
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD8A0:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x18
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0xC3
|
|
bl audio_play
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD8D4:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x14
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl audio_play
|
|
_080DD8F8:
|
|
adds r2, r4, 0
|
|
ldr r4, =gSprites
|
|
adds r2, r5
|
|
lsls r2, 2
|
|
adds r1, r2, r4
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
subs r0, 0x5
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
adds r4, 0x1C
|
|
adds r2, r4
|
|
ldr r0, =sub_80DD6DC
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD720
|
|
|
|
thumb_func_start sub_80DD940
|
|
sub_80DD940: @ 80DD940
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r5, 0
|
|
ldr r6, =gUnknown_02039F34
|
|
ldr r0, =gSprites
|
|
mov r9, r0
|
|
ldr r0, =0x06010000
|
|
mov r8, r0
|
|
ldr r7, =0x04000008
|
|
_080DD956:
|
|
ldr r0, [r6]
|
|
ldr r1, [r0]
|
|
movs r0, 0x13
|
|
ldrsb r0, [r1, r0]
|
|
ldr r4, =gUnknown_08D8EC24
|
|
cmp r5, r0
|
|
bge _080DD966
|
|
adds r4, 0x40
|
|
_080DD966:
|
|
adds r0, r1, 0
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrh r1, [r0, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r0, r5, 0
|
|
adds r0, 0x11
|
|
adds r1, r0
|
|
lsls r1, 5
|
|
add r1, r8
|
|
adds r0, r4, 0
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
ldr r1, [r6]
|
|
ldr r1, [r1]
|
|
adds r1, 0x58
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r2, r5, 0
|
|
adds r2, 0x19
|
|
adds r1, r2
|
|
lsls r1, 5
|
|
add r1, r8
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
ldr r0, [r6]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
ble _080DD9C8
|
|
bl sub_80DDA20
|
|
_080DD9C8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
ble _080DD956
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD940
|
|
|
|
thumb_func_start sub_80DD9F0
|
|
sub_80DD9F0: @ 80DD9F0
|
|
lsls r0, 16
|
|
ldr r3, =gUnknown_085899EC
|
|
ldr r1, =gContestMoves
|
|
lsrs r0, 13
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r1, 29
|
|
lsrs r1, 29
|
|
ldr r0, =gUnknown_02039F2C
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
adds r1, r0
|
|
adds r1, r3
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DD9F0
|
|
|
|
thumb_func_start sub_80DDA20
|
|
sub_80DDA20: @ 80DDA20
|
|
push {r4,r5,lr}
|
|
ldr r0, =c3_08130B10
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
ldr r0, =0x0000abe2
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0xC]
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DDA20
|
|
|
|
thumb_func_start c3_08130B10
|
|
c3_08130B10: @ 80DDA60
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080DDAFE
|
|
movs r0, 0
|
|
strh r0, [r2, 0x8]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
bne _080DDA94
|
|
ldrh r0, [r2, 0x10]
|
|
adds r0, 0x1
|
|
b _080DDA98
|
|
.pool
|
|
_080DDA94:
|
|
ldrh r0, [r2, 0x10]
|
|
subs r0, 0x1
|
|
_080DDA98:
|
|
strh r0, [r2, 0x10]
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 4
|
|
movs r3, 0x84
|
|
lsls r3, 1
|
|
adds r6, r3, 0
|
|
adds r0, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0x10]
|
|
ldr r3, =0x00007fff
|
|
movs r1, 0x1
|
|
bl BlendPalette
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080DDACA
|
|
cmp r0, 0x10
|
|
bne _080DDAFE
|
|
_080DDACA:
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0xE]
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bgt _080DDAFE
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 4
|
|
adds r0, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x1F
|
|
bl BlendPalette
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080DDAFE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c3_08130B10
|
|
|
|
thumb_func_start sub_80DDB0C
|
|
sub_80DDB0C: @ 80DDB0C
|
|
push {r4,lr}
|
|
ldr r0, =sub_80DDB6C
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
ldr r3, =gSprites
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r2, [r4]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r1, =0x0000ffba
|
|
strh r1, [r0, 0x24]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDB0C
|
|
|
|
thumb_func_start sub_80DDB6C
|
|
sub_80DDB6C: @ 80DDB6C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r0, 0
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r2, r0, r1
|
|
ldr r0, =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r5, 0xD0
|
|
lsls r5, 3
|
|
adds r0, r5, 0
|
|
ldrh r5, [r1, 0x1C]
|
|
adds r0, r5
|
|
strh r0, [r1, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r5, [r2, 0x24]
|
|
adds r0, r5
|
|
strh r0, [r2, 0x24]
|
|
ldrb r0, [r1, 0x1C]
|
|
strh r0, [r1, 0x1C]
|
|
movs r1, 0x24
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
ble _080DDBB8
|
|
movs r0, 0
|
|
strh r0, [r2, 0x24]
|
|
_080DDBB8:
|
|
movs r5, 0x24
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0
|
|
bne _080DDBD4
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r3, 0
|
|
bl DestroyTask
|
|
_080DDBD4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDB6C
|
|
|
|
thumb_func_start sub_80DDBE8
|
|
sub_80DDBE8: @ 80DDBE8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gSprites
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080DDC1C
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
b _080DDC40
|
|
.pool
|
|
_080DDC1C:
|
|
ldr r0, =task08_080CD1CC
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
ldr r2, [r4]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
ldr r2, [r2]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
_080DDC40:
|
|
strb r0, [r2, 0x6]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDBE8
|
|
|
|
thumb_func_start task08_080CD1CC
|
|
task08_080CD1CC: @ 80DDC4C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r3, r0, r1
|
|
ldr r0, =gTasks
|
|
lsls r2, r4, 2
|
|
adds r2, r4
|
|
lsls r2, 3
|
|
adds r2, r0
|
|
movs r1, 0xD0
|
|
lsls r1, 3
|
|
adds r0, r1, 0
|
|
ldrh r1, [r2, 0x1C]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r3, 0x24]
|
|
subs r1, r0
|
|
strh r1, [r3, 0x24]
|
|
ldrb r0, [r2, 0x1C]
|
|
strh r0, [r2, 0x1C]
|
|
movs r2, 0x24
|
|
ldrsh r0, [r3, r2]
|
|
movs r1, 0x46
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080DDC9C
|
|
ldr r0, =0x0000ffba
|
|
strh r0, [r3, 0x24]
|
|
_080DDC9C:
|
|
movs r2, 0x24
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, r1
|
|
bne _080DDCC4
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r5]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_080DDCC4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task08_080CD1CC
|
|
|
|
thumb_func_start sub_80DDCDC
|
|
sub_80DDCDC: @ 80DDCDC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =sub_80DDD20
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
strh r4, [r1, 0x8]
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDCDC
|
|
|
|
thumb_func_start sub_80DDD20
|
|
sub_80DDD20: @ 80DDD20
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080DDD54
|
|
cmp r0, 0x1
|
|
bgt _080DDD48
|
|
cmp r0, 0
|
|
beq _080DDD4E
|
|
b _080DDD9C
|
|
.pool
|
|
_080DDD48:
|
|
cmp r0, 0x2
|
|
beq _080DDD70
|
|
b _080DDD9C
|
|
_080DDD4E:
|
|
bl sub_80DDB0C
|
|
b _080DDD64
|
|
_080DDD54:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DDD9C
|
|
_080DDD64:
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
b _080DDD9C
|
|
.pool
|
|
_080DDD70:
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080DDD9C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1E]
|
|
bl sub_80DD940
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080DDD9C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDD20
|
|
|
|
thumb_func_start sub_80DDDA8
|
|
sub_80DDDA8: @ 80DDDA8
|
|
ldr r3, =gSprites
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r2, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DDDA8
|
|
|
|
thumb_func_start sub_80DDDE4
|
|
sub_80DDDE4: @ 80DDDE4
|
|
ldr r2, =gSprites
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DDDE4
|
|
|
|
thumb_func_start sub_80DDE0C
|
|
sub_80DDE0C: @ 80DDE0C
|
|
push {lr}
|
|
ldr r0, =sub_80DDE30
|
|
movs r1, 0xF
|
|
bl CreateTask
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDE0C
|
|
|
|
thumb_func_start sub_80DDE30
|
|
sub_80DDE30: @ 80DDE30
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
ble _080DDEBA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080DDE78
|
|
ldr r0, =0x02019000
|
|
ldr r1, =0x06002000
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
b _080DDE8C
|
|
.pool
|
|
_080DDE78:
|
|
ldr r0, =0x02018000
|
|
ldr r1, =0x06002000
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
_080DDE8C:
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x1E]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strh r1, [r0, 0x1E]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x9
|
|
bne _080DDEBA
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080DDEBA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDE30
|
|
|
|
thumb_func_start sub_80DDED0
|
|
sub_80DDED0: @ 80DDED0
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, =sub_80DDF80
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r4, 24
|
|
cmp r4, 0
|
|
ble _080DDF38
|
|
ldr r7, =0x0000237e
|
|
lsls r0, r5, 24
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
ble _080DDF1C
|
|
movs r5, 0
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
movs r1, 0x13
|
|
ldrsb r1, [r0, r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
b _080DDF4E
|
|
.pool
|
|
_080DDF1C:
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
movs r1, 0x13
|
|
ldrsb r1, [r0, r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r3, 0
|
|
b _080DDF4E
|
|
.pool
|
|
_080DDF38:
|
|
movs r7, 0
|
|
lsls r0, r5, 24
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
ble _080DDF48
|
|
movs r5, 0
|
|
movs r3, 0xC
|
|
b _080DDF4C
|
|
_080DDF48:
|
|
movs r5, 0xC
|
|
movs r3, 0
|
|
_080DDF4C:
|
|
ldr r2, =gUnknown_02039F34
|
|
_080DDF4E:
|
|
ldr r1, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r7, [r0, 0x8]
|
|
strh r5, [r0, 0xA]
|
|
asrs r1, r4, 24
|
|
strh r1, [r0, 0xC]
|
|
strh r3, [r0, 0xE]
|
|
ldr r0, [r2]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x7]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDED0
|
|
|
|
thumb_func_start sub_80DDF80
|
|
sub_80DDF80: @ 80DDF80
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r3, r0, r2
|
|
ldrh r0, [r3, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r3, 0x1C]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080DDFFC
|
|
movs r0, 0
|
|
strh r0, [r3, 0x1C]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
ble _080DDFB4
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
b _080DDFB8
|
|
.pool
|
|
_080DDFB4:
|
|
ldrh r0, [r3, 0xA]
|
|
subs r0, 0x1
|
|
_080DDFB8:
|
|
strh r0, [r3, 0xA]
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r2
|
|
ldrb r2, [r4, 0xA]
|
|
ldrh r3, [r4, 0x8]
|
|
movs r0, 0x11
|
|
movs r1, 0x1
|
|
bl BlendPalette
|
|
ldrb r2, [r4, 0xA]
|
|
ldrh r3, [r4, 0x8]
|
|
movs r0, 0x1A
|
|
movs r1, 0x1
|
|
bl BlendPalette
|
|
movs r2, 0xA
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080DDFFC
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x7]
|
|
_080DDFFC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDF80
|
|
|
|
thumb_func_start sub_80DE008
|
|
sub_80DE008: @ 80DE008
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_02039F34
|
|
mov r9, r0
|
|
mov r8, r9
|
|
ldr r6, =gSprites
|
|
movs r4, 0
|
|
movs r7, 0
|
|
_080DE026:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r7, r0
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DE0BC
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _080DE0BC
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_80DE0F0
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
ldr r1, [r1, 0x14]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r2, =0x060100c0
|
|
adds r1, r2
|
|
ldr r2, =0x04000008
|
|
bl CpuSet
|
|
mov r0, r8
|
|
ldr r3, [r0]
|
|
ldr r0, [r3, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldr r2, =gUnknown_08587A70
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x22]
|
|
ldr r0, [r3, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
ands r1, r2
|
|
b _080DE0D6
|
|
.pool
|
|
_080DE0BC:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
_080DE0D6:
|
|
strb r1, [r0]
|
|
adds r4, 0x4
|
|
adds r7, 0x1C
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DE026
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DE008
|
|
|
|
thumb_func_start sub_80DE0F0
|
|
sub_80DE0F0: @ 80DE0F0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0x10]
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0x40
|
|
bne _080DE120
|
|
ldrb r0, [r2, 0x19]
|
|
lsls r0, 5
|
|
ldr r1, =gUnknown_08D8E9B4
|
|
adds r0, r1
|
|
b _080DE122
|
|
.pool
|
|
_080DE120:
|
|
ldr r0, =gUnknown_08D8EA34
|
|
_080DE122:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DE0F0
|
|
|
|
thumb_func_start sub_80DE12C
|
|
sub_80DE12C: @ 80DE12C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
movs r7, 0
|
|
movs r0, 0x2
|
|
mov r10, r0
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
movs r0, 0x11
|
|
mov r9, r0
|
|
_080DE146:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0xD
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DE1CA
|
|
lsls r0, r7, 24
|
|
lsrs r0, 24
|
|
bl sub_80DBCA8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DE1CA
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
lsls r5, r0, 2
|
|
adds r5, r0
|
|
adds r6, r5, 0x2
|
|
movs r0, 0x3
|
|
bl sub_80DB748
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x14
|
|
adds r3, r6, 0
|
|
bl sub_80DECB8
|
|
adds r4, 0x10
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r5, 0x3
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x14
|
|
adds r3, r5, 0
|
|
bl sub_80DECB8
|
|
movs r0, 0x63
|
|
bl audio_play
|
|
_080DE1CA:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _080DE146
|
|
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_80DE12C
|
|
|
|
thumb_func_start sub_80DE1E8
|
|
sub_80DE1E8: @ 80DE1E8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0x15]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DE212
|
|
ldrb r1, [r2, 0xC]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DE21C
|
|
_080DE212:
|
|
movs r0, 0
|
|
b _080DE21E
|
|
.pool
|
|
_080DE21C:
|
|
movs r0, 0x1
|
|
_080DE21E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DE1E8
|
|
|
|
thumb_func_start sub_80DE224
|
|
sub_80DE224: @ 80DE224
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r2, sp
|
|
ldrb r1, [r2]
|
|
movs r4, 0x4
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r0, 0x8
|
|
bl GetGpuReg
|
|
mov r6, sp
|
|
adds r6, 0x2
|
|
strh r0, [r6]
|
|
movs r0, 0xC
|
|
bl GetGpuReg
|
|
add r5, sp, 0x4
|
|
strh r0, [r5]
|
|
ldrb r1, [r6]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
ldrb r0, [r5]
|
|
ands r4, r0
|
|
orrs r4, r1
|
|
strb r4, [r5]
|
|
ldrh r1, [r6]
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
ldrh r1, [r5]
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r1, =gUnknown_02022E18
|
|
movs r0, 0xF0
|
|
strh r0, [r1]
|
|
ldr r4, =gUnknown_02022E1A
|
|
movs r0, 0xA0
|
|
strh r0, [r4]
|
|
movs r0, 0x14
|
|
movs r1, 0xF0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
add r0, sp, 0x8
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x28]
|
|
ldr r2, =0x05000400
|
|
bl CpuSet
|
|
ldr r1, =gUnknown_08C17980
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl sub_80DED60
|
|
movs r5, 0
|
|
ldr r7, =gSprites
|
|
movs r6, 0x4
|
|
_080DE2F0:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
adds r3, r0
|
|
ldrb r0, [r3, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x5]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DE2F0
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE224
|
|
|
|
thumb_func_start sub_80DE350
|
|
sub_80DE350: @ 80DE350
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
ldr r1, =0x06008000
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
movs r0, 0
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
movs r5, 0
|
|
str r5, [sp]
|
|
ldr r6, =gUnknown_02039F34
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x28]
|
|
ldr r2, =0x05000400
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
bl sub_80DED60
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r3, sp, 0x4
|
|
strh r0, [r3]
|
|
ldrb r1, [r3]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
mov r1, sp
|
|
adds r1, 0x5
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3F
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
movs r4, 0xD
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r1, [r3]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E18
|
|
strh r5, [r0]
|
|
ldr r0, =gUnknown_02022E1A
|
|
strh r5, [r0]
|
|
ldr r7, =gSprites
|
|
_080DE3CA:
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x14]
|
|
adds r3, r0
|
|
ldrb r0, [r3, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DE3CA
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE350
|
|
|
|
thumb_func_start sub_80DE424
|
|
sub_80DE424: @ 80DE424
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, =gUnknown_02022E18
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02022E1A
|
|
movs r0, 0xA0
|
|
strh r0, [r1]
|
|
movs r0, 0x62
|
|
movs r1, 0
|
|
bl audio_play_and_stuff
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_80DE464
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE424
|
|
|
|
thumb_func_start sub_80DE464
|
|
sub_80DE464: @ 80DE464
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, =gUnknown_02022E1A
|
|
ldrh r0, [r1]
|
|
subs r0, 0x7
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080DE47C
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_080DE47C:
|
|
ldrh r2, [r1]
|
|
cmp r2, 0
|
|
bne _080DE496
|
|
ldr r0, =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r2, [r1, 0x8]
|
|
strh r2, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
ldr r0, =sub_80DE4A8
|
|
str r0, [r1]
|
|
_080DE496:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE464
|
|
|
|
thumb_func_start sub_80DE4A8
|
|
sub_80DE4A8: @ 80DE4A8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r3, r4, 2
|
|
adds r0, r3, r4
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
cmp r1, 0x1
|
|
beq _080DE52C
|
|
cmp r1, 0x1
|
|
bgt _080DE4D0
|
|
cmp r1, 0
|
|
beq _080DE4DA
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE4D0:
|
|
cmp r1, 0x2
|
|
beq _080DE58A
|
|
cmp r1, 0x3
|
|
beq _080DE5A4
|
|
b _080DE5B4
|
|
_080DE4DA:
|
|
movs r2, 0
|
|
adds r6, r3, 0
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r3, =gUnknown_02039F26
|
|
_080DE4E2:
|
|
ldr r0, [r5]
|
|
ldr r1, [r0]
|
|
adds r1, 0x14
|
|
adds r1, r2
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DE4E2
|
|
bl sub_80DBF90
|
|
bl sub_80DC864
|
|
bl sub_80DB69C
|
|
bl sub_80DD04C
|
|
movs r0, 0x1
|
|
bl sub_80DE008
|
|
bl sub_80DC44C
|
|
ldr r0, =gTasks
|
|
adds r1, r6, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE52C:
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080DE584
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x7]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x7]
|
|
bl sub_80DA8A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DE552
|
|
bl sub_80DBAA0
|
|
_080DE552:
|
|
ldr r4, =sub_80FCC88
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =sub_80DA110
|
|
adds r1, r4, 0
|
|
bl SetTaskFuncWithFollowupFunc
|
|
bl sub_80DBF68
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x8]
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE584:
|
|
bl sub_80DBAA0
|
|
b _080DE59A
|
|
_080DE58A:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DE5B4
|
|
_080DE59A:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x8]
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE5A4:
|
|
bl sub_80DB884
|
|
bl sub_80DB2BC
|
|
movs r0, 0
|
|
strh r0, [r5, 0x8]
|
|
ldr r0, =sub_80DE5F4
|
|
str r0, [r5]
|
|
_080DE5B4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE4A8
|
|
|
|
thumb_func_start sub_80DE5C0
|
|
sub_80DE5C0: @ 80DE5C0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, =gUnknown_02022E1A
|
|
ldrh r0, [r1]
|
|
adds r0, 0x7
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA0
|
|
ble _080DE5E4
|
|
ldr r0, =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80DA4F4
|
|
str r0, [r1]
|
|
_080DE5E4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE5C0
|
|
|
|
thumb_func_start sub_80DE5F4
|
|
sub_80DE5F4: @ 80DE5F4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x9
|
|
bgt _080DE618
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0xC]
|
|
b _080DE654
|
|
.pool
|
|
_080DE618:
|
|
ldrh r3, [r1, 0xA]
|
|
movs r4, 0xA
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
bne _080DE636
|
|
ldrh r2, [r1, 0x8]
|
|
movs r4, 0x8
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0x10
|
|
bne _080DE632
|
|
adds r0, r3, 0x1
|
|
strh r0, [r1, 0xA]
|
|
b _080DE654
|
|
_080DE632:
|
|
adds r0, r2, 0x1
|
|
b _080DE652
|
|
_080DE636:
|
|
ldrh r0, [r1, 0x8]
|
|
movs r3, 0x8
|
|
ldrsh r2, [r1, r3]
|
|
cmp r2, 0
|
|
bne _080DE650
|
|
strh r2, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
ldr r0, =sub_80DE65C
|
|
str r0, [r1]
|
|
b _080DE654
|
|
.pool
|
|
_080DE650:
|
|
subs r0, 0x1
|
|
_080DE652:
|
|
strh r0, [r1, 0x8]
|
|
_080DE654:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DE5F4
|
|
|
|
thumb_func_start sub_80DE65C
|
|
sub_80DE65C: @ 80DE65C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r1, [r4, 0xC]
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x9
|
|
bgt _080DE680
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0xC]
|
|
b _080DE690
|
|
.pool
|
|
_080DE680:
|
|
movs r0, 0
|
|
strh r0, [r4, 0xC]
|
|
movs r0, 0x61
|
|
movs r1, 0
|
|
bl audio_play_and_stuff
|
|
ldr r0, =sub_80DE5C0
|
|
str r0, [r4]
|
|
_080DE690:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE65C
|
|
|
|
thumb_func_start sub_80DE69C
|
|
sub_80DE69C: @ 80DE69C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r7, 0
|
|
ldr r6, =gSprites
|
|
ldr r5, =gUnknown_02039F34
|
|
_080DE6AE:
|
|
bl AllocOamMatrix
|
|
ldr r1, [r5]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r4, r7, 2
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1]
|
|
lsls r3, r1, 4
|
|
adds r3, r1
|
|
lsls r3, 2
|
|
adds r3, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1F
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
ldrb r1, [r3, 0x3]
|
|
movs r2, 0x3F
|
|
negs r2, r2
|
|
mov r12, r2
|
|
mov r2, r12
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x3]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r2, [r0, 0x1]
|
|
movs r3, 0x4
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r2, r1
|
|
movs r1, 0x1
|
|
orrs r2, r1
|
|
strb r2, [r0, 0x1]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r8
|
|
bl StartSpriteAffineAnim
|
|
mov r0, r8
|
|
cmp r0, 0x2
|
|
bne _080DE74C
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
bl AnimateSprite
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
_080DE74C:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _080DE6AE
|
|
ldr r0, =sub_80DE794
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
mov r0, r8
|
|
strh r0, [r1, 0x8]
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x7]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x7]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE69C
|
|
|
|
thumb_func_start sub_80DE794
|
|
sub_80DE794: @ 80DE794
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r2, =gSprites
|
|
ldr r3, =gUnknown_02039F34
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0x14]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _080DE822
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, 0x1
|
|
bne _080DE7EC
|
|
movs r4, 0
|
|
adds r5, r2, 0
|
|
movs r2, 0x4
|
|
_080DE7CC:
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DE7CC
|
|
_080DE7EC:
|
|
movs r4, 0
|
|
_080DE7EE:
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
bl FreeSpriteOamMatrix
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DE7EE
|
|
ldr r0, [r5]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x7]
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
_080DE822:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE794
|
|
|
|
thumb_func_start sub_80DE834
|
|
sub_80DE834: @ 80DE834
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
movs r0, 0xB1
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bls _080DE844
|
|
movs r1, 0x1
|
|
_080DE844:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DE834
|
|
|
|
thumb_func_start sub_80DE84C
|
|
sub_80DE84C: @ 80DE84C
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r0, =0x0000019b
|
|
cmp r1, r0
|
|
bls _080DE85A
|
|
movs r1, 0
|
|
_080DE85A:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DE84C
|
|
|
|
thumb_func_start sub_80DE864
|
|
sub_80DE864: @ 80DE864
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x6]
|
|
bl sub_80DE834
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r1, =gUnknown_02039E00
|
|
lsls r0, r7, 6
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_80DE84C
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x18]
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
bl sub_80A3934
|
|
ldr r1, =gUnknown_020244E4
|
|
movs r2, 0
|
|
adds r0, r1, 0x3
|
|
_080DE8A8:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _080DE8A8
|
|
cmp r5, 0x90
|
|
beq _080DE920
|
|
cmp r5, 0x90
|
|
bgt _080DE8DE
|
|
cmp r5, 0x4C
|
|
beq _080DE978
|
|
cmp r5, 0x4C
|
|
bgt _080DE8D4
|
|
cmp r5, 0xD
|
|
beq _080DE978
|
|
b _080DE9A2
|
|
.pool
|
|
_080DE8D4:
|
|
cmp r5, 0x82
|
|
beq _080DE978
|
|
cmp r5, 0x8F
|
|
beq _080DE978
|
|
b _080DE9A2
|
|
_080DE8DE:
|
|
cmp r5, 0xD8
|
|
beq _080DE960
|
|
cmp r5, 0xD8
|
|
bgt _080DE8EC
|
|
cmp r5, 0xAE
|
|
beq _080DE8FA
|
|
b _080DE9A2
|
|
_080DE8EC:
|
|
cmp r5, 0xDA
|
|
beq _080DE96C
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
beq _080DE920
|
|
b _080DE9A2
|
|
_080DE8FA:
|
|
ldr r0, =gBaseStats
|
|
lsls r1, r6, 3
|
|
subs r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0x7
|
|
beq _080DE910
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, 0x7
|
|
bne _080DE99C
|
|
_080DE910:
|
|
ldr r1, =gUnknown_02038432
|
|
movs r0, 0
|
|
b _080DE9A0
|
|
.pool
|
|
_080DE920:
|
|
ldr r6, =gUnknown_02039F34
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x1B]
|
|
ldr r5, =gUnknown_02039E00
|
|
lsls r4, 6
|
|
adds r0, r4, r5
|
|
ldrh r0, [r0]
|
|
bl sub_80DE84C
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x18]
|
|
strh r0, [r1, 0x2]
|
|
ldr r2, [r2, 0x18]
|
|
adds r5, 0x38
|
|
adds r4, r5
|
|
ldr r0, [r4]
|
|
str r0, [r2, 0x10]
|
|
ldrb r0, [r2, 0x4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x4]
|
|
b _080DE9A2
|
|
.pool
|
|
_080DE960:
|
|
ldr r1, =gUnknown_0203841A
|
|
movs r0, 0xFF
|
|
b _080DE9A0
|
|
.pool
|
|
_080DE96C:
|
|
ldr r1, =gUnknown_0203841A
|
|
movs r0, 0
|
|
b _080DE9A0
|
|
.pool
|
|
_080DE978:
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0x5A
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
bne _080DE99C
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_02038432
|
|
strb r1, [r0]
|
|
b _080DE9A2
|
|
.pool
|
|
_080DE99C:
|
|
ldr r1, =gUnknown_02038432
|
|
movs r0, 0x1
|
|
_080DE9A0:
|
|
strb r0, [r1]
|
|
_080DE9A2:
|
|
bl sub_80DEA5C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE864
|
|
|
|
thumb_func_start sub_80DE9B0
|
|
sub_80DE9B0: @ 80DE9B0
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02039F34
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x18]
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x5A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080DE9D2
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_080DE9D2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE9B0
|
|
|
|
thumb_func_start sub_80DE9DC
|
|
sub_80DE9DC: @ 80DE9DC
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r6, =gUnknown_02039F34
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x18]
|
|
strb r4, [r0, 0x5]
|
|
ldr r5, =gUnknown_02039E00
|
|
lsls r4, 6
|
|
adds r0, r4, r5
|
|
ldrh r0, [r0]
|
|
bl sub_80DE84C
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x18]
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x18]
|
|
adds r0, r5, 0
|
|
adds r0, 0x38
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x3C
|
|
adds r4, r5
|
|
ldr r0, [r4]
|
|
str r0, [r1, 0xC]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE9DC
|
|
|
|
thumb_func_start sub_80DEA20
|
|
sub_80DEA20: @ 80DEA20
|
|
push {lr}
|
|
ldr r0, =SpriteCallbackDummy
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, =gBankSpriteIds
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, =gBankTarget
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
bl InitSpriteAffineAnim
|
|
bl sub_80DEA5C
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DEA20
|
|
|
|
thumb_func_start sub_80DEA5C
|
|
sub_80DEA5C: @ 80DEA5C
|
|
push {r4,lr}
|
|
ldr r0, =gBankSpriteIds
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, =gSprites
|
|
adds r4, r0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
adds r4, 0x3E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DEA5C
|
|
|
|
thumb_func_start sub_80DEAA8
|
|
sub_80DEAA8: @ 80DEAA8
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, =gBattleMoves
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0x20
|
|
bhi _080DEB60
|
|
lsls r0, 2
|
|
ldr r1, =_080DEAD0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DEAD0:
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB54
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB54
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
_080DEB54:
|
|
ldr r1, =gBankTarget
|
|
movs r0, 0x2
|
|
b _080DEB64
|
|
.pool
|
|
_080DEB60:
|
|
ldr r1, =gBankTarget
|
|
movs r0, 0x3
|
|
_080DEB64:
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DEAA8
|
|
|
|
thumb_func_start sub_80DEB70
|
|
sub_80DEB70: @ 80DEB70
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
str r1, [sp]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
strb r4, [r0, 0x4]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x5]
|
|
strb r2, [r0, 0x6]
|
|
strb r1, [r0, 0x7]
|
|
strb r2, [r0, 0x8]
|
|
strb r1, [r0, 0x9]
|
|
strb r2, [r0, 0xA]
|
|
strb r2, [r0, 0xB]
|
|
mov r3, sp
|
|
ldrb r2, [r3, 0xC]
|
|
subs r1, 0x11
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3, 0xC]
|
|
mov r2, sp
|
|
movs r0, 0xF0
|
|
strb r0, [r2, 0xC]
|
|
ldrb r0, [r2, 0xD]
|
|
ands r1, r0
|
|
strb r1, [r2, 0xD]
|
|
mov r1, sp
|
|
movs r0, 0x80
|
|
strb r0, [r1, 0xD]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
bl sub_80DED60
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DEB70
|
|
|
|
thumb_func_start sub_80DEBD0
|
|
sub_80DEBD0: @ 80DEBD0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
ldr r4, [sp, 0x1C]
|
|
str r1, [sp]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
strb r5, [r0, 0x4]
|
|
strb r4, [r0, 0x5]
|
|
strb r2, [r0, 0x6]
|
|
strb r3, [r0, 0x7]
|
|
strb r2, [r0, 0x8]
|
|
strb r3, [r0, 0x9]
|
|
strb r1, [r0, 0xA]
|
|
strb r1, [r0, 0xB]
|
|
mov r3, sp
|
|
ldrb r2, [r3, 0xC]
|
|
subs r1, 0x10
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3, 0xC]
|
|
mov r2, sp
|
|
movs r0, 0xF0
|
|
strb r0, [r2, 0xC]
|
|
ldrb r0, [r2, 0xD]
|
|
ands r1, r0
|
|
strb r1, [r2, 0xD]
|
|
mov r1, sp
|
|
movs r0, 0x80
|
|
strb r0, [r1, 0xD]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r5, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
bl sub_80DED60
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DEBD0
|
|
|
|
thumb_func_start sub_80DEC30
|
|
sub_80DEC30: @ 80DEC30
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
str r0, [sp]
|
|
mov r2, sp
|
|
movs r3, 0
|
|
movs r0, 0x4
|
|
strb r0, [r2, 0x4]
|
|
mov r0, sp
|
|
movs r5, 0x1
|
|
strb r5, [r0, 0x5]
|
|
strb r3, [r0, 0x6]
|
|
strb r5, [r0, 0x7]
|
|
strb r3, [r0, 0x8]
|
|
strb r5, [r0, 0x9]
|
|
strb r3, [r0, 0xA]
|
|
strb r3, [r0, 0xB]
|
|
mov r4, sp
|
|
ldrb r3, [r4, 0xC]
|
|
movs r2, 0x10
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r4, 0xC]
|
|
mov r3, sp
|
|
movs r0, 0x10
|
|
strb r0, [r3, 0xC]
|
|
ldrb r0, [r3, 0xD]
|
|
ands r2, r0
|
|
strb r2, [r3, 0xD]
|
|
mov r2, sp
|
|
movs r0, 0x80
|
|
strb r0, [r2, 0xD]
|
|
cmp r1, 0
|
|
bne _080DEC80
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
b _080DECA4
|
|
_080DEC80:
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DEC94
|
|
movs r1, 0x4
|
|
b _080DEC9C
|
|
.pool
|
|
_080DEC94:
|
|
bl sav2_get_text_speed
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_080DEC9C:
|
|
mov r0, sp
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
_080DECA4:
|
|
movs r0, 0x4
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
bl sub_80DED60
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DEC30
|
|
|
|
thumb_func_start sub_80DECB8
|
|
sub_80DECB8: @ 80DECB8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
mov r8, r0
|
|
ldr r0, [sp, 0x28]
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r6, [sp, 0x34]
|
|
mov r7, r8
|
|
lsls r7, 24
|
|
lsrs r7, 24
|
|
mov r8, r7
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
str r6, [sp, 0xC]
|
|
mov r0, r8
|
|
bl WriteSequenceToBgTilemapBuffer
|
|
mov r0, r8
|
|
bl sub_80DED60
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DECB8
|
|
|
|
thumb_func_start sub_80DED10
|
|
sub_80DED10: @ 80DED10
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
ldr r4, [sp, 0x20]
|
|
ldr r5, [sp, 0x24]
|
|
ldr r6, [sp, 0x28]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r4, 0
|
|
str r4, [sp, 0xC]
|
|
bl sub_80DECB8
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DED10
|
|
|
|
thumb_func_start sub_80DED4C
|
|
sub_80DED4C: @ 80DED4C
|
|
push {lr}
|
|
bl RunTextPrinters
|
|
movs r0, 0x4
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DED4C
|
|
|
|
thumb_func_start sub_80DED60
|
|
sub_80DED60: @ 80DED60
|
|
ldr r2, =gUnknown_02039F38
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DED60
|
|
|
|
thumb_func_start sub_80DED74
|
|
sub_80DED74: @ 80DED74
|
|
push {r4-r6,lr}
|
|
movs r0, 0
|
|
ldr r6, =gSaveBlock2Ptr
|
|
ldr r5, =0x00000624
|
|
movs r4, 0
|
|
_080DED7E:
|
|
adds r3, r0, 0x1
|
|
lsls r1, r0, 3
|
|
movs r2, 0x3
|
|
_080DED84:
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080DED84
|
|
adds r0, r3, 0
|
|
cmp r0, 0x4
|
|
ble _080DED7E
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DED74
|
|
|
|
thumb_func_start sub_80DEDA8
|
|
sub_80DEDA8: @ 80DEDA8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r5, 0
|
|
ldr r1, =gUnknown_02039F20
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080DEDE6
|
|
_080DEDD8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
bgt _080DEDE6
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DEDD8
|
|
_080DEDE6:
|
|
ldr r0, [sp]
|
|
cmp r0, 0xFF
|
|
bne _080DEE00
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _080DEE00
|
|
movs r0, 0
|
|
b _080DEF90
|
|
.pool
|
|
_080DEE00:
|
|
ldr r0, =gUnknown_02039F2C
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _080DEE4C
|
|
lsls r0, 2
|
|
ldr r1, =_080DEE1C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DEE1C:
|
|
.4byte _080DEE4C
|
|
.4byte _080DEE30
|
|
.4byte _080DEE36
|
|
.4byte _080DEE3C
|
|
.4byte _080DEE42
|
|
_080DEE30:
|
|
mov r0, r8
|
|
adds r0, 0x3
|
|
b _080DEE46
|
|
_080DEE36:
|
|
mov r0, r8
|
|
adds r0, 0x6
|
|
b _080DEE46
|
|
_080DEE3C:
|
|
mov r0, r8
|
|
adds r0, 0x9
|
|
b _080DEE46
|
|
_080DEE42:
|
|
mov r0, r8
|
|
adds r0, 0xC
|
|
_080DEE46:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
_080DEE4C:
|
|
ldr r1, [sp]
|
|
cmp r1, 0xFE
|
|
bne _080DEE54
|
|
b _080DEF50
|
|
_080DEE54:
|
|
adds r0, r1, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEFA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r2, =gSaveBlock1Ptr
|
|
mov r10, r2
|
|
ldr r0, [r2]
|
|
mov r3, r9
|
|
lsls r7, r3, 5
|
|
ldr r6, =0x00002e90
|
|
adds r2, r0, r6
|
|
adds r2, r7
|
|
ldr r4, =gUnknown_02039E00
|
|
lsls r5, 6
|
|
adds r1, r4, 0
|
|
adds r1, 0x38
|
|
adds r1, r5, r1
|
|
ldr r1, [r1]
|
|
str r1, [r2]
|
|
adds r1, r0, r7
|
|
adds r2, r5, r4
|
|
ldrh r2, [r2]
|
|
ldr r3, =0x00002e98
|
|
adds r1, r3
|
|
strh r2, [r1]
|
|
ldr r1, =0x00002e94
|
|
adds r2, r0, r1
|
|
adds r2, r7
|
|
adds r1, r4, 0
|
|
adds r1, 0x3C
|
|
adds r1, r5, r1
|
|
ldr r1, [r1]
|
|
str r1, [r2]
|
|
adds r6, r7, r6
|
|
adds r0, r6
|
|
adds r0, 0xB
|
|
adds r1, r4, 0x2
|
|
adds r1, r5, r1
|
|
bl StringCopy
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r6
|
|
adds r0, 0x16
|
|
adds r4, 0xD
|
|
adds r5, r4
|
|
adds r1, r5, 0
|
|
bl StringCopy
|
|
ldr r0, =gUnknown_02039F2A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DEEF4
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
adds r0, r7
|
|
ldr r1, =0x00002eae
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
b _080DEF02
|
|
.pool
|
|
_080DEEF4:
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r7
|
|
ldr r1, =gUnknown_02039F2E
|
|
ldrh r1, [r1]
|
|
ldr r3, =0x00002eae
|
|
adds r0, r3
|
|
_080DEF02:
|
|
strb r1, [r0]
|
|
ldr r0, [sp]
|
|
cmp r0, 0xFF
|
|
beq _080DEF34
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
lsls r1, r2, 5
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02039F2C
|
|
ldrh r1, [r1]
|
|
ldr r3, =0x00002e9a
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
b _080DEF8E
|
|
.pool
|
|
_080DEF34:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
lsls r1, r2, 5
|
|
adds r0, r1
|
|
ldr r3, =0x00002e9a
|
|
adds r0, r3
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
b _080DEF8E
|
|
.pool
|
|
_080DEF50:
|
|
ldr r6, =gUnknown_02039F3C
|
|
ldr r4, =gUnknown_02039E00
|
|
lsls r5, 6
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
adds r0, r5, r0
|
|
ldr r0, [r0]
|
|
str r0, [r6]
|
|
adds r0, r4, 0
|
|
adds r0, 0x3C
|
|
adds r0, r5, r0
|
|
ldr r0, [r0]
|
|
str r0, [r6, 0x4]
|
|
adds r0, r5, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r6, 0x8]
|
|
adds r0, r6, 0
|
|
adds r0, 0xB
|
|
adds r1, r4, 0x2
|
|
adds r1, r5, r1
|
|
bl StringCopy
|
|
adds r0, r6, 0
|
|
adds r0, 0x16
|
|
adds r4, 0xD
|
|
adds r5, r4
|
|
adds r1, r5, 0
|
|
bl StringCopy
|
|
mov r2, r8
|
|
strb r2, [r6, 0xA]
|
|
_080DEF8E:
|
|
movs r0, 0x1
|
|
_080DEF90:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DEDA8
|
|
|
|
thumb_func_start sub_80DEFA8
|
|
sub_80DEFA8: @ 80DEFA8
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r0, 0x3
|
|
bgt _080DEFF8
|
|
cmp r0, 0
|
|
blt _080DEFF8
|
|
cmp r1, 0
|
|
beq _080DEFE6
|
|
movs r2, 0x5
|
|
ldr r0, =gSaveBlock1Ptr
|
|
mov r12, r0
|
|
ldr r4, =0x00002e90
|
|
ldr r3, =0x00002e70
|
|
_080DEFC8:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
lsls r1, r2, 5
|
|
adds r1, r0
|
|
adds r0, r1, r4
|
|
adds r1, r3
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5,r6}
|
|
stm r0!, {r5,r6}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bgt _080DEFC8
|
|
_080DEFE6:
|
|
movs r0, 0
|
|
b _080DF03A
|
|
.pool
|
|
_080DEFF8:
|
|
ldr r0, =gUnknown_02039F2C
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _080DF038
|
|
lsls r0, 2
|
|
ldr r1, =_080DF014
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DF014:
|
|
.4byte _080DF028
|
|
.4byte _080DF02C
|
|
.4byte _080DF030
|
|
.4byte _080DF034
|
|
.4byte _080DF038
|
|
_080DF028:
|
|
movs r0, 0x8
|
|
b _080DF03A
|
|
_080DF02C:
|
|
movs r0, 0x9
|
|
b _080DF03A
|
|
_080DF030:
|
|
movs r0, 0xA
|
|
b _080DF03A
|
|
_080DF034:
|
|
movs r0, 0xB
|
|
b _080DF03A
|
|
_080DF038:
|
|
movs r0, 0xC
|
|
_080DF03A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DEFA8
|
|
|
|
thumb_func_start sub_80DF040
|
|
sub_80DF040: @ 80DF040
|
|
push {r4-r7,lr}
|
|
movs r2, 0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
mov r12, r0
|
|
ldr r4, =0x00002e90
|
|
ldr r3, =gUnknown_08587FA4
|
|
_080DF04C:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
lsls r1, r2, 5
|
|
adds r0, r1
|
|
adds r0, r4
|
|
adds r1, r3, 0
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5,r6}
|
|
stm r0!, {r5,r6}
|
|
adds r3, 0x20
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _080DF04C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DF040
|
|
|
|
thumb_func_start sub_80DF080
|
|
sub_80DF080: @ 80DF080
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r3, [r2]
|
|
ldr r5, [r3, 0x10]
|
|
ldrb r1, [r5, 0x1]
|
|
movs r7, 0x1
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
adds r6, r2, 0
|
|
cmp r0, 0
|
|
bne _080DF0D2
|
|
movs r0, 0
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0
|
|
ble _080DF0D2
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF0D2
|
|
ldr r1, [r3, 0x1C]
|
|
lsls r2, r4, 4
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1, 0xC]
|
|
movs r0, 0x1
|
|
orrs r0, r3
|
|
strb r0, [r1, 0xC]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0xE]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xE]
|
|
_080DF0D2:
|
|
ldr r3, [r6]
|
|
ldr r1, [r3, 0x4]
|
|
lsls r2, r4, 3
|
|
subs r0, r2, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0xC]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
adds r7, r2, 0
|
|
cmp r0, 0
|
|
beq _080DF0FA
|
|
ldr r0, [r3, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
_080DF0FA:
|
|
ldr r3, [r6]
|
|
ldr r2, [r3, 0x10]
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF126
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0
|
|
beq _080DF126
|
|
movs r0, 0x2
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0x3C
|
|
bne _080DF126
|
|
ldr r0, [r3, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
_080DF126:
|
|
ldr r3, [r6]
|
|
ldr r1, [r3, 0x4]
|
|
subs r0, r7, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF14E
|
|
ldrb r0, [r2, 0x16]
|
|
cmp r0, 0
|
|
beq _080DF14E
|
|
ldr r0, [r3, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
_080DF14E:
|
|
movs r3, 0
|
|
movs r5, 0
|
|
_080DF152:
|
|
cmp r3, r4
|
|
beq _080DF180
|
|
ldr r1, [r6]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0, 0xE]
|
|
cmp r0, 0
|
|
beq _080DF180
|
|
ldr r0, [r1, 0x1C]
|
|
lsls r2, r4, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0xC]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
lsls r2, r3, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0xC]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
_080DF180:
|
|
adds r5, 0x1C
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF152
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
subs r0, r7, r4
|
|
lsls r5, r0, 2
|
|
adds r1, r5, r1
|
|
ldrb r3, [r1, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _080DF1A6
|
|
ldrb r1, [r1, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF1BC
|
|
_080DF1A6:
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
b _080DF1F6
|
|
.pool
|
|
_080DF1BC:
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _080DF1F6
|
|
ldr r2, [r2, 0x1C]
|
|
lsls r3, r4, 4
|
|
adds r2, r3, r2
|
|
ldrb r0, [r2, 0xC]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x1C]
|
|
adds r1, r3, r1
|
|
ldrb r0, [r1, 0xE]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xE]
|
|
ldr r1, [r6]
|
|
ldr r0, [r1, 0x1C]
|
|
adds r3, r0
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 1
|
|
adds r3, r0
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r3]
|
|
_080DF1F6:
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
subs r0, r7, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF21A
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xD]
|
|
movs r0, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xD]
|
|
_080DF21A:
|
|
ldr r2, [r6]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080DF24A
|
|
ldr r3, [r2, 0x10]
|
|
ldrb r1, [r3, 0x1]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF24A
|
|
movs r0, 0
|
|
ldrsb r0, [r3, r0]
|
|
cmp r0, 0
|
|
bge _080DF24A
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xD]
|
|
movs r0, 0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xD]
|
|
_080DF24A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DF080
|
|
|
|
thumb_func_start sub_80DF250
|
|
sub_80DF250: @ 80DF250
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x38
|
|
movs r1, 0
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
movs r4, 0
|
|
ldr r6, =gUnknown_02039F34
|
|
mov r2, sp
|
|
adds r2, 0xC
|
|
str r2, [sp, 0x28]
|
|
mov r3, sp
|
|
adds r3, 0x14
|
|
str r3, [sp, 0x2C]
|
|
mov r7, sp
|
|
adds r7, 0x2
|
|
str r7, [sp, 0x24]
|
|
ldr r5, =gUnknown_02039F20
|
|
movs r2, 0
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
_080DF280:
|
|
adds r0, r4, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF298
|
|
lsrs r0, r2, 24
|
|
str r0, [sp, 0x20]
|
|
b _080DF29E
|
|
.pool
|
|
_080DF298:
|
|
cmp r0, 0x3
|
|
bne _080DF29E
|
|
lsrs r1, r2, 24
|
|
_080DF29E:
|
|
adds r2, r3
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DF280
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xD]
|
|
movs r0, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xD]
|
|
movs r4, 0
|
|
ldr r1, [sp, 0x20]
|
|
lsls r1, 4
|
|
str r1, [sp, 0x30]
|
|
mov r9, r4
|
|
mov r10, r4
|
|
_080DF2C2:
|
|
ldr r2, [sp, 0x20]
|
|
cmp r4, r2
|
|
beq _080DF2EE
|
|
ldr r1, =gUnknown_02039F08
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
add r1, r10
|
|
movs r6, 0
|
|
ldrsh r0, [r1, r6]
|
|
subs r2, r0
|
|
cmp r2, 0x32
|
|
bgt _080DF2EE
|
|
ldr r7, =gUnknown_02039F34
|
|
ldr r0, [r7]
|
|
ldr r2, [r0, 0x1C]
|
|
add r2, r9
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF2EE:
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
mov r3, r9
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2, 0xE]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF30A
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF30A:
|
|
movs r5, 0
|
|
ldr r2, =gUnknown_02039F00
|
|
add r2, r10
|
|
movs r6, 0
|
|
ldrsh r1, [r2, r6]
|
|
ldr r7, =gUnknown_02039F00
|
|
movs r3, 0
|
|
ldrsh r0, [r7, r3]
|
|
cmp r1, r0
|
|
blt _080DF336
|
|
adds r3, r2, 0
|
|
adds r2, r7, 0
|
|
_080DF322:
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
bgt _080DF336
|
|
movs r6, 0
|
|
ldrsh r1, [r3, r6]
|
|
movs r7, 0
|
|
ldrsh r0, [r2, r7]
|
|
cmp r1, r0
|
|
bge _080DF322
|
|
_080DF336:
|
|
cmp r5, 0x4
|
|
bne _080DF354
|
|
ldr r1, =gUnknown_02039F20
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DF354
|
|
ldr r2, =gUnknown_02039F34
|
|
ldr r0, [r2]
|
|
ldr r2, [r0, 0x1C]
|
|
add r2, r9
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF354:
|
|
movs r3, 0
|
|
mov r12, r3
|
|
mov r8, r3
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_02039F00
|
|
add r0, r10
|
|
movs r7, 0
|
|
ldrsh r6, [r0, r7]
|
|
str r6, [sp, 0x34]
|
|
ldr r2, =gUnknown_02039F00
|
|
ldr r0, =gUnknown_02039F18
|
|
mov r1, r10
|
|
adds r6, r1, r0
|
|
adds r3, r0, 0
|
|
_080DF370:
|
|
movs r7, 0
|
|
ldrsh r0, [r2, r7]
|
|
ldr r1, [sp, 0x34]
|
|
cmp r1, r0
|
|
ble _080DF37E
|
|
movs r7, 0x1
|
|
mov r12, r7
|
|
_080DF37E:
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
movs r7, 0
|
|
ldrsh r0, [r3, r7]
|
|
cmp r1, r0
|
|
ble _080DF38E
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_080DF38E:
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DF370
|
|
mov r1, r12
|
|
cmp r1, 0
|
|
bne _080DF3B4
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _080DF3B4
|
|
ldr r3, =gUnknown_02039F34
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x1C]
|
|
add r2, r9
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF3B4:
|
|
ldr r6, =gUnknown_02039F34
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
mov r7, r9
|
|
adds r2, r7, r0
|
|
ldrb r1, [r2, 0xE]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF3D0
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF3D0:
|
|
movs r0, 0x10
|
|
add r9, r0
|
|
movs r1, 0x2
|
|
add r10, r1
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _080DF3E0
|
|
b _080DF2C2
|
|
_080DF3E0:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
movs r3, 0
|
|
ldr r2, [sp, 0x28]
|
|
mov r1, sp
|
|
_080DF3EA:
|
|
strh r3, [r1]
|
|
adds r0, r2, r4
|
|
strb r5, [r0]
|
|
adds r1, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x4
|
|
ble _080DF3EA
|
|
mov r1, sp
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r1, 0xA]
|
|
movs r0, 0
|
|
ldr r2, [sp, 0x28]
|
|
strb r0, [r2, 0x5]
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
mov r8, r0
|
|
ldr r7, [sp, 0x30]
|
|
_080DF40E:
|
|
mov r3, r8
|
|
ldr r0, [r3, 0x1C]
|
|
adds r0, r7, r0
|
|
lsls r1, r4, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
adds r4, 0x1
|
|
mov r12, r4
|
|
cmp r0, 0
|
|
beq _080DF450
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r6, [r0]
|
|
ldr r3, [sp, 0x28]
|
|
mov r4, sp
|
|
movs r5, 0x4
|
|
_080DF42C:
|
|
ldr r0, [r6, 0x1C]
|
|
adds r0, r7, r0
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r4]
|
|
cmp r0, r2
|
|
beq _080DF440
|
|
cmp r2, 0
|
|
bne _080DF446
|
|
strh r0, [r4]
|
|
_080DF440:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
_080DF446:
|
|
adds r3, 0x1
|
|
adds r4, 0x2
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080DF42C
|
|
_080DF450:
|
|
mov r4, r12
|
|
cmp r4, 0x4
|
|
ble _080DF40E
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
ldr r6, [sp, 0x2C]
|
|
strh r0, [r6]
|
|
ldr r7, [sp, 0x28]
|
|
ldrb r3, [r7]
|
|
movs r6, 0
|
|
movs r4, 0x1
|
|
ldr r1, [sp, 0x24]
|
|
ldrh r0, [r1]
|
|
ldr r1, =0x0000ffff
|
|
cmp r0, r1
|
|
beq _080DF4C0
|
|
ldr r5, [sp, 0x2C]
|
|
adds r7, r1, 0
|
|
mov r2, sp
|
|
adds r2, 0x2
|
|
_080DF478:
|
|
ldr r0, [sp, 0x28]
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1]
|
|
cmp r3, r0
|
|
bcs _080DF4A4
|
|
ldrh r0, [r2]
|
|
strh r0, [r5]
|
|
ldrb r3, [r1]
|
|
movs r6, 0x1
|
|
b _080DF4B6
|
|
.pool
|
|
_080DF4A4:
|
|
cmp r3, r0
|
|
bne _080DF4B6
|
|
lsls r0, r6, 1
|
|
adds r0, r5, r0
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080DF4B6:
|
|
adds r2, 0x2
|
|
adds r4, 0x1
|
|
ldrh r0, [r2]
|
|
cmp r0, r7
|
|
bne _080DF478
|
|
_080DF4C0:
|
|
bl Random
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r1, [r1]
|
|
ldr r4, [r1, 0x1C]
|
|
ldr r1, [sp, 0x30]
|
|
adds r4, r1, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r6, 0
|
|
bl __modsi3
|
|
lsls r0, 1
|
|
ldr r2, [sp, 0x2C]
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0xA]
|
|
add sp, 0x38
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DF250
|
|
|
|
thumb_func_start sub_80DF4F8
|
|
sub_80DF4F8: @ 80DF4F8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
ldr r1, =gUnknown_02039F20
|
|
ldr r0, =gUnknown_02039F25
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DF514
|
|
b _080DF6EE
|
|
_080DF514:
|
|
movs r7, 0
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_02039F34
|
|
mov r12, r0
|
|
_080DF51C:
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF528
|
|
lsls r0, r3, 24
|
|
lsrs r7, r0, 24
|
|
_080DF528:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF51C
|
|
movs r1, 0
|
|
mov r9, r1
|
|
mov r10, r1
|
|
movs r3, 0
|
|
lsls r2, r7, 1
|
|
lsls r4, r7, 4
|
|
mov r8, r4
|
|
ldr r1, =gUnknown_02039F00
|
|
adds r0, r2, r1
|
|
movs r6, 0
|
|
ldrsh r5, [r0, r6]
|
|
str r5, [sp, 0x8]
|
|
adds r5, r1, 0
|
|
ldr r0, =gUnknown_02039F18
|
|
adds r2, r0
|
|
adds r4, r0, 0
|
|
_080DF54E:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
ldr r6, [sp, 0x8]
|
|
cmp r6, r0
|
|
bge _080DF562
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080DF562:
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
movs r6, 0
|
|
ldrsh r0, [r4, r6]
|
|
cmp r1, r0
|
|
bge _080DF578
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
_080DF578:
|
|
adds r5, 0x2
|
|
adds r4, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF54E
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
add r0, r8
|
|
ldrb r1, [r0, 0xC]
|
|
movs r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x7
|
|
_080DF592:
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080DF5A0
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080DF5A0:
|
|
lsrs r1, 1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080DF592
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r4, 0
|
|
bl __modsi3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x1C]
|
|
add r0, r8
|
|
ldrb r1, [r0, 0xC]
|
|
movs r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF5DC
|
|
cmp r5, 0
|
|
beq _080DF5F6
|
|
_080DF5D6:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080DF5DC:
|
|
lsrs r1, 1
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _080DF5F6
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF5DC
|
|
cmp r5, r4
|
|
bne _080DF5D6
|
|
_080DF5F6:
|
|
movs r1, 0x1
|
|
adds r0, r1, 0
|
|
lsls r0, r2
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r7, 0
|
|
bne _080DF628
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
ldrb r4, [r0, 0x1D]
|
|
movs r3, 0x2
|
|
b _080DF638
|
|
.pool
|
|
_080DF628:
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02039F34
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
ldrb r4, [r0, 0xD]
|
|
movs r3, 0x1
|
|
_080DF638:
|
|
mov r12, r1
|
|
movs r5, 0x1
|
|
lsls r2, 24
|
|
str r2, [sp, 0x4]
|
|
cmp r3, 0x3
|
|
bgt _080DF682
|
|
_080DF644:
|
|
cmp r3, r7
|
|
beq _080DF67C
|
|
mov r6, r12
|
|
ldr r2, [r6]
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r3, 4
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0, 0xD]
|
|
cmp r4, r0
|
|
bcs _080DF66C
|
|
mov r0, sp
|
|
strb r3, [r0]
|
|
ldr r0, [r2, 0x1C]
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0, 0xD]
|
|
movs r5, 0x1
|
|
b _080DF67C
|
|
.pool
|
|
_080DF66C:
|
|
cmp r4, r0
|
|
bne _080DF67C
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
strb r3, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_080DF67C:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF644
|
|
_080DF682:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r5, 0
|
|
bl __modsi3
|
|
add r0, sp
|
|
ldrb r6, [r0]
|
|
movs r2, 0x80
|
|
movs r3, 0
|
|
ldr r5, =gUnknown_02039F34
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x1C]
|
|
lsls r1, r6, 4
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0, 0xD]
|
|
ands r0, r2
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080DF6C4
|
|
_080DF6AE:
|
|
lsrs r2, 1
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _080DF6C4
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x1C]
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0, 0xD]
|
|
ands r4, r2
|
|
cmp r4, 0
|
|
beq _080DF6AE
|
|
_080DF6C4:
|
|
mov r0, r9
|
|
bl sub_80ECDA4
|
|
mov r0, r10
|
|
bl sub_80ECDF4
|
|
ldr r5, [sp, 0x4]
|
|
lsrs r0, r5, 24
|
|
bl sub_80ECE34
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x1C]
|
|
add r0, r8
|
|
ldrh r0, [r0, 0xA]
|
|
bl sub_80ECE74
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_80ECEB4
|
|
_080DF6EE:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DF4F8
|
|
|
|
thumb_func_start sub_80DF704
|
|
sub_80DF704: @ 80DF704
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
bne _080DF72C
|
|
cmp r3, 0
|
|
bne _080DF728
|
|
movs r0, 0x2
|
|
b _080DF72E
|
|
.pool
|
|
_080DF728:
|
|
movs r0, 0x3
|
|
b _080DF72E
|
|
_080DF72C:
|
|
movs r0, 0
|
|
_080DF72E:
|
|
strb r0, [r2]
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF746
|
|
bl sub_80DAEA4
|
|
bl sub_80DB2BC
|
|
b _080DF74A
|
|
_080DF746:
|
|
bl sub_80DF750
|
|
_080DF74A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DF704
|
|
|
|
thumb_func_start sub_80DF750
|
|
sub_80DF750: @ 80DF750
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
ldr r0, =gUnknown_020322D5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF766
|
|
b _080DF924
|
|
_080DF766:
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _080DF77C
|
|
b _080DF924
|
|
_080DF77C:
|
|
movs r7, 0
|
|
mov r2, sp
|
|
adds r2, 0x18
|
|
str r2, [sp, 0x30]
|
|
_080DF784:
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DF784
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080DF874
|
|
movs r7, 0
|
|
movs r2, 0x7
|
|
mov r10, r2
|
|
ldr r0, [sp, 0x30]
|
|
mov r9, r0
|
|
_080DF7AE:
|
|
add r0, sp, 0x4
|
|
ldr r1, =gUnknown_085ED1B2
|
|
bl StringCopy
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
add r1, sp, 0x4
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x1C]
|
|
lsls r0, r7, 4
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0xC]
|
|
movs r6, 0x7
|
|
adds r2, r7, 0x1
|
|
mov r8, r2
|
|
_080DF7DE:
|
|
movs r1, 0x1
|
|
ands r1, r4
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
adds r5, r0, 0
|
|
lsrs r4, 1
|
|
lsls r0, r6, 24
|
|
movs r1, 0xFF
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r6, r0, 24
|
|
asrs r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r0, r2
|
|
bgt _080DF7DE
|
|
movs r6, 0
|
|
ldr r4, =gUnknown_02039F26
|
|
ldr r3, [sp, 0x30]
|
|
_080DF80A:
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
adds r2, r3, r0
|
|
mov r1, sp
|
|
adds r1, r0
|
|
adds r1, 0x4
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
asrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
ble _080DF80A
|
|
mov r0, r9
|
|
adds r1, r0, r5
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r4, r7, r4
|
|
ldrb r0, [r4]
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
mov r1, r9
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
ldrb r0, [r4]
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r2, r10
|
|
str r2, [sp]
|
|
movs r2, 0x37
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DF7AE
|
|
b _080DF920
|
|
.pool
|
|
_080DF874:
|
|
movs r7, 0
|
|
mov r2, sp
|
|
adds r2, 0x6
|
|
str r2, [sp, 0x2C]
|
|
ldr r0, [sp, 0x30]
|
|
mov r9, r0
|
|
movs r1, 0x7
|
|
mov r10, r1
|
|
_080DF884:
|
|
add r0, sp, 0x4
|
|
ldr r1, =gUnknown_085ED1B5
|
|
bl StringCopy
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x1C]
|
|
lsls r0, r7, 4
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0xD]
|
|
ldr r5, [sp, 0x2C]
|
|
movs r6, 0x7
|
|
adds r2, r7, 0x1
|
|
mov r8, r2
|
|
_080DF8A0:
|
|
movs r1, 0x1
|
|
ands r1, r4
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
adds r5, r0, 0
|
|
lsrs r4, 1
|
|
lsls r0, r6, 24
|
|
movs r1, 0xFF
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r6, r0, 24
|
|
asrs r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r0, r2
|
|
bgt _080DF8A0
|
|
movs r6, 0
|
|
ldr r4, =gUnknown_02039F26
|
|
ldr r3, [sp, 0x30]
|
|
_080DF8CC:
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
adds r2, r3, r0
|
|
mov r1, sp
|
|
adds r1, r0
|
|
adds r1, 0x4
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
asrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
ble _080DF8CC
|
|
mov r0, r9
|
|
adds r1, r0, r5
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r4, r7, r4
|
|
ldrb r0, [r4]
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
mov r1, r9
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
ldrb r0, [r4]
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r2, r10
|
|
str r2, [sp]
|
|
movs r2, 0x37
|
|
movs r3, 0x1
|
|
bl sub_80DEBD0
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DF884
|
|
_080DF920:
|
|
bl sub_80DB2BC
|
|
_080DF924:
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DF750
|
|
|
|
thumb_func_start sub_80DF940
|
|
sub_80DF940: @ 80DF940
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0x2
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFC
|
|
bne _080DF956
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x15
|
|
bne _080DF956
|
|
movs r0, 0x2
|
|
b _080DF9CC
|
|
_080DF956:
|
|
adds r0, r4, 0
|
|
bl StringLength
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x5
|
|
bhi _080DF9CA
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _080DF9CA
|
|
_080DF96A:
|
|
ldrb r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x45
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x33
|
|
bls _080DF9BE
|
|
adds r0, r1, 0
|
|
adds r0, 0x5F
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bls _080DF9BE
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
beq _080DF9BE
|
|
cmp r0, 0xAD
|
|
beq _080DF9BE
|
|
cmp r0, 0xB8
|
|
beq _080DF9BE
|
|
cmp r0, 0xAB
|
|
beq _080DF9BE
|
|
cmp r0, 0xAC
|
|
beq _080DF9BE
|
|
cmp r0, 0xB5
|
|
beq _080DF9BE
|
|
cmp r0, 0xB6
|
|
beq _080DF9BE
|
|
cmp r0, 0xBA
|
|
beq _080DF9BE
|
|
cmp r0, 0xAE
|
|
beq _080DF9BE
|
|
cmp r0, 0xB0
|
|
beq _080DF9BE
|
|
cmp r0, 0xB1
|
|
beq _080DF9BE
|
|
cmp r0, 0xB2
|
|
beq _080DF9BE
|
|
cmp r0, 0xB3
|
|
beq _080DF9BE
|
|
cmp r0, 0xB1
|
|
bne _080DF9C8
|
|
_080DF9BE:
|
|
adds r4, 0x1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
bne _080DF96A
|
|
b _080DF9CA
|
|
_080DF9C8:
|
|
movs r5, 0x1
|
|
_080DF9CA:
|
|
adds r0, r5, 0
|
|
_080DF9CC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DF940
|
|
|
|
thumb_func_start sub_80DF9D4
|
|
sub_80DF9D4: @ 80DF9D4
|
|
ldrb r2, [r0, 0x5]
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x5]
|
|
strb r2, [r0, 0x7]
|
|
bx lr
|
|
thumb_func_end sub_80DF9D4
|
|
|
|
thumb_func_start sub_80DF9E0
|
|
sub_80DF9E0: @ 80DF9E0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
bl StripExtCtrlCodes
|
|
cmp r4, 0x1
|
|
bne _080DF9F8
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x5]
|
|
movs r0, 0xFC
|
|
strb r0, [r5, 0xA]
|
|
b _080DFA00
|
|
_080DF9F8:
|
|
ldrb r1, [r5, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x5]
|
|
strb r1, [r5, 0xA]
|
|
_080DFA00:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DF9E0
|
|
|
|
thumb_func_start sub_80DFA08
|
|
sub_80DFA08: @ 80DFA08
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r5, 0x2
|
|
cmp r6, 0x1
|
|
bne _080DFA28
|
|
adds r0, r4, 0
|
|
bl sub_80DF940
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl ConvertInternationalString
|
|
b _080DFA3E
|
|
_080DFA28:
|
|
ldrb r0, [r4, 0xA]
|
|
cmp r0, 0xFC
|
|
bne _080DFA38
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl ConvertInternationalString
|
|
b _080DFA3E
|
|
_080DFA38:
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0xA]
|
|
_080DFA3E:
|
|
adds r4, r5, 0
|
|
adds r4, 0xD
|
|
cmp r6, 0x1
|
|
bne _080DFA68
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x7]
|
|
ldrb r0, [r4, 0x4]
|
|
strb r0, [r4, 0x6]
|
|
ldrb r0, [r4, 0x3]
|
|
strb r0, [r4, 0x5]
|
|
ldrb r0, [r4, 0x2]
|
|
strb r0, [r4, 0x4]
|
|
ldrb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x3]
|
|
ldrb r0, [r5, 0xD]
|
|
strb r0, [r4, 0x2]
|
|
movs r0, 0x15
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0xFC
|
|
strb r0, [r5, 0xD]
|
|
b _080DFA70
|
|
_080DFA68:
|
|
ldrb r0, [r4, 0x7]
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x7]
|
|
_080DFA70:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DFA08
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|