pokeemerald/asm/contest.s
2018-12-17 23:00:08 +01:00

8291 lines
125 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
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 Contest_SetBgCopyFlags
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 Contest_IsMonsTurnDisabled
lsls r0, 24
cmp r0, 0
beq _080DB8D0
movs r0, 0
b _080DB90A
_080DB8D0:
ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r4, r0
beq _080DB8F4
adds r0, r4, 0
bl ContestAI_ResetAI
bl ContestAI_GetActionToUse
lsls r0, 24
ldr r2, =gContestMons
lsrs r0, 23
lsls r1, r4, 6
b _080DB902
.pool
_080DB8F4:
ldr r2, =gContestMons
ldr r0, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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 Contest_GetMoveExcitement
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, =gContestResources
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 Contest_IsMonsTurnDisabled
Contest_IsMonsTurnDisabled: @ 80DBCA8
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gContestResources
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 Contest_IsMonsTurnDisabled
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, =gContestMonConditions
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, =gContestMonConditions
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, =gContestFinalStandings
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, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080DBF0E
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldr r1, =gContestFinalStandings
ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r1, 1
ldr r0, =gSpecialVar_ContestCategory
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, =gBattle_BG0_Y
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG2_Y
strh r1, [r0]
bl sub_80DB89C
ldr r0, =gUnknown_0827E8DA
movs r1, 0
bl Contest_StartTextPrinter
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 ContestBG_FillBoxWithTile
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, =gContestResources
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, =gContestResources
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 ContestBG_FillBoxWithTile
mov r3, r8
cmp r3, 0
ble _080DC284
movs r0, 0x60
bl PlaySE
ldr r4, =gMPlayInfo_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 PlaySE
_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, =gSpriteTemplate_8587AD0
movs r1, 0xB4
movs r3, 0x1
bl CreateSprite
ldr r1, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
ldr r0, =gSprites
mov r8, r0
movs r6, 0
_080DC506:
lsls r0, r5, 3
ldr r1, =gUnknown_08587AE8
adds r0, r1
bl LoadCompressedSpriteSheet
ldr r0, =gSpriteTemplate_8587B18
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, =gSubspriteTables_8587B80
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 LoadCompressedSpriteSheet
ldr r0, =gUnknown_08587BB8
bl LoadSpritePalette
ldr r0, =gSpriteTemplate_8587BC8
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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 LoadCompressedSpriteSheet
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, =gSpriteTemplate_858998C
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, =gContestResources
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, =gContestResources
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 PlaySE
b _080DCC76
.pool
_080DCC70:
movs r0, 0x2
bl PlaySE
_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, =gContestResources
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, =gHeap
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, =gHeap
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, =gContestResources
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, =gText_OneDash
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 Contest_PrintTextToBg0WindowAt
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _080DCD92
movs r5, 0
_080DCDEA:
ldr r0, =gContestResources
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, =gText_OneDash
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 Contest_PrintTextToBg0WindowAt
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, =gContestMonConditions
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, =gContestResources
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, =gContestResources
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, =gHeap+0x1A004
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestEffectFuncs
add r0, r9
ldr r0, [r0]
bl _call_via_r0
ldr r0, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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 Contest_GetMoveExcitement
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, =gContestResources
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 SetContestantEffectStringID
SetContestantEffectStringID: @ 80DD3D4
lsls r0, 24
lsrs r0, 24
ldr r2, =gContestResources
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 SetContestantEffectStringID
thumb_func_start SetContestantEffectStringID2
SetContestantEffectStringID2: @ 80DD3F0
lsls r0, 24
lsrs r0, 24
ldr r2, =gContestResources
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 SetContestantEffectStringID2
thumb_func_start SetStartledString
SetStartledString: @ 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 SetContestantEffectStringID
b _080DD456
_080DD426:
cmp r1, 0x27
bls _080DD432
movs r1, 0x34
bl SetContestantEffectStringID
b _080DD456
_080DD432:
cmp r1, 0x1D
bls _080DD43E
movs r1, 0x33
bl SetContestantEffectStringID
b _080DD456
_080DD43E:
cmp r1, 0x13
bls _080DD44A
movs r1, 0x32
bl SetContestantEffectStringID
b _080DD456
_080DD44A:
cmp r2, 0x9
bls _080DD456
adds r0, r3, 0
movs r1, 0x31
bl SetContestantEffectStringID
_080DD456:
pop {r0}
bx r0
thumb_func_end SetStartledString
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, =gContestMons + 2
adds r1, r2
bl StringCopy
ldr r0, =gStringVar2
ldr r5, =gContestResources
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, =gText_0827E837
bl StringCopy
b _080DD52C
.pool
_080DD4DC:
lsrs r0, r1, 29
cmp r0, 0x1
bne _080DD4F4
ldr r0, =gStringVar3
ldr r1, =gText_0827E83F
bl StringCopy
b _080DD52C
.pool
_080DD4F4:
lsrs r0, r1, 29
cmp r0, 0x2
bne _080DD50C
ldr r0, =gStringVar3
ldr r1, =gText_0827E847
bl StringCopy
b _080DD52C
.pool
_080DD50C:
lsrs r0, r1, 29
cmp r0, 0x3
bne _080DD524
ldr r0, =gStringVar3
ldr r1, =gText_0827E850
bl StringCopy
b _080DD52C
.pool
_080DD524:
ldr r0, =gStringVar3
ldr r1, =gText_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 Contest_StartTextPrinter
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80DD45C
thumb_func_start MakeContestantNervous
MakeContestantNervous: @ 80DD560
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r4, =gContestResources
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 MakeContestantNervous
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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 PlaySE
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 PlaySE
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 PlaySE
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 PlaySE
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 PlaySE
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 PlaySE
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 PlaySE
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 PlaySE
_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, =gContestResources
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, =gContestResources
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, =gContestApplauseMeterGfx
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 Contest_GetMoveExcitement
Contest_GetMoveExcitement: @ 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, =gSpecialVar_ContestCategory
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 Contest_GetMoveExcitement
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gHeap+0x19000
ldr r1, =0x06002000
movs r2, 0x80
lsls r2, 5
movs r3, 0x1
bl RequestDma3Copy
b _080DDE8C
.pool
_080DDE78:
ldr r0, =gHeap+0x18000
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
_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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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 Contest_IsMonsTurnDisabled
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 ContestBG_FillBoxWithIncrementingTile
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 ContestBG_FillBoxWithIncrementingTile
movs r0, 0x63
bl PlaySE
_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, =gContestResources
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, =gBattle_BG1_X
movs r0, 0xF0
strh r0, [r1]
ldr r4, =gBattle_BG1_Y
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, =gContestResources
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 Contest_SetBgCopyFlags
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, =gContestResources
ldr r0, [r6]
ldr r1, [r0, 0x28]
ldr r2, =0x05000400
mov r0, sp
bl CpuSet
movs r0, 0x1
bl Contest_SetBgCopyFlags
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, =gBattle_BG1_X
strh r5, [r0]
ldr r0, =gBattle_BG1_Y
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, =gBattle_BG1_X
movs r0, 0
strh r0, [r1]
ldr r1, =gBattle_BG1_Y
movs r0, 0xA0
strh r0, [r1]
movs r0, 0x62
movs r1, 0
bl PlaySE12WithPanning
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, =gBattle_BG1_Y
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, =gContestResources
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, =gIsLinkContest
ldrb r0, [r0]
ands r1, r0
cmp r1, 0
beq _080DE584
ldr r0, =gContestResources
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, =gContestResources
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, =gBattle_BG1_Y
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 PlaySE12WithPanning
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, =gContestResources
_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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestMons
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 ClearBattleAnimationVars
ldr r1, =gBattleMonForms
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, =gAnimMoveTurn
movs r0, 0
b _080DE9A0
.pool
_080DE920:
ldr r6, =gContestResources
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, =gContestMons
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, =gAnimFriendship
movs r0, 0xFF
b _080DE9A0
.pool
_080DE96C:
ldr r1, =gAnimFriendship
movs r0, 0
b _080DE9A0
.pool
_080DE978:
ldr r0, =gContestResources
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, =gAnimMoveTurn
strb r1, [r0]
b _080DE9A2
.pool
_080DE99C:
ldr r1, =gAnimMoveTurn
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, =gContestResources
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, =gContestResources
ldr r0, [r6]
ldr r0, [r0, 0x18]
strb r4, [r0, 0x5]
ldr r5, =gContestMons
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, =gBattlerSpriteIds
strb r0, [r1, 0x3]
ldr r0, =gBattlerTarget
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, =gBattlerSpriteIds
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 GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
movs r0, 0x3
movs r1, 0x1
bl GetBattlerSpriteCoord
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, =gBattlerTarget
movs r0, 0x2
b _080DEB64
.pool
_080DEB60:
ldr r1, =gBattlerTarget
movs r0, 0x3
_080DEB64:
strb r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end sub_80DEAA8
thumb_func_start Contest_PrintTextToBg0WindowStd
Contest_PrintTextToBg0WindowStd: @ 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 Contest_SetBgCopyFlags
add sp, 0x10
pop {r4}
pop {r0}
bx r0
thumb_func_end Contest_PrintTextToBg0WindowStd
thumb_func_start Contest_PrintTextToBg0WindowAt
Contest_PrintTextToBg0WindowAt: @ 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 Contest_SetBgCopyFlags
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end Contest_PrintTextToBg0WindowAt
thumb_func_start Contest_StartTextPrinter
Contest_StartTextPrinter: @ 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, =gIsLinkContest
ldrb r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080DEC94
movs r1, 0x4
b _080DEC9C
.pool
_080DEC94:
bl GetPlayerTextSpeedDelay
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 Contest_SetBgCopyFlags
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end Contest_StartTextPrinter
thumb_func_start ContestBG_FillBoxWithIncrementingTile
ContestBG_FillBoxWithIncrementingTile: @ 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 Contest_SetBgCopyFlags
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end ContestBG_FillBoxWithIncrementingTile
thumb_func_start ContestBG_FillBoxWithTile
ContestBG_FillBoxWithTile: @ 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 ContestBG_FillBoxWithIncrementingTile
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end ContestBG_FillBoxWithTile
thumb_func_start Contest_RunTextPrinters
Contest_RunTextPrinters: @ 80DED4C
push {lr}
bl RunTextPrinters
movs r0, 0x4
bl IsTextPrinterActive
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end Contest_RunTextPrinters
thumb_func_start Contest_SetBgCopyFlags
Contest_SetBgCopyFlags: @ 80DED60
ldr r2, =sContestBgCopyFlags
movs r1, 0x1
lsls r1, r0
ldrb r0, [r2]
orrs r1, r0
strb r1, [r2]
bx lr
.pool
thumb_func_end Contest_SetBgCopyFlags
thumb_func_start ResetContestLinkResults
ResetContestLinkResults: @ 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 ResetContestLinkResults
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, =gContestFinalStandings
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, =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r5, r0
beq _080DEE00
movs r0, 0
b _080DEF90
.pool
_080DEE00:
ldr r0, =gSpecialVar_ContestCategory
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, =gContestMons
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, =gIsLinkContest
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, =gSpecialVar_ContestRank
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, =gSpecialVar_ContestCategory
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, =gContestMons
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, =gSpecialVar_ContestCategory
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 ClearContestWinnerPicsInContestHall
ClearContestWinnerPicsInContestHall: @ 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 ClearContestWinnerPicsInContestHall
thumb_func_start sub_80DF080
sub_80DF080: @ 80DF080
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r2, =gContestResources
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, =gContestResources
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, =gContestFinalStandings
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, =gContestResources
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, =gContestResources
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, =gContestMonConditions
add r2, r10
movs r6, 0
ldrsh r1, [r2, r6]
ldr r7, =gContestMonConditions
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, =gContestFinalStandings
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
beq _080DF354
ldr r2, =gContestResources
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, =gContestMonConditions
add r0, r10
movs r7, 0
ldrsh r6, [r0, r7]
str r6, [sp, 0x34]
ldr r2, =gContestMonConditions
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestFinalStandings
ldr r0, =gContestPlayerMonIndex
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, =gContestResources
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, =gContestMonConditions
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, =gContestResources
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, =gContestResources
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, =gContestResources
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, =gContestResources
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 ContestLiveUpdates_BeforeInterview_1
mov r0, r10
bl ContestLiveUpdates_BeforeInterview_2
ldr r5, [sp, 0x4]
lsrs r0, r5, 24
bl ContestLiveUpdates_BeforeInterview_3
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x1C]
add r0, r8
ldrh r0, [r0, 0xA]
bl ContestLiveUpdates_BeforeInterview_4
adds r0, r4, 0
adds r1, r6, 0
bl ContestLiveUpdates_BeforeInterview_5
_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, =gHeap
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, =gHeap
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, =gHeap
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, =gText_CDot
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 Contest_PrintTextToBg0WindowAt
ldr r0, =gContestResources
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 Contest_PrintTextToBg0WindowAt
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 Contest_PrintTextToBg0WindowAt
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, =gText_BDot
bl StringCopy
ldr r0, =gContestResources
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 Contest_PrintTextToBg0WindowAt
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 Contest_PrintTextToBg0WindowAt
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.