pokeemerald/asm/contest.s

1325 lines
20 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
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.