Files
2019-09-27 01:42:56 -04:00

16452 lines
275 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start TaskDummy1
TaskDummy1: @ 0x080D6E94
bx lr
.align 2, 0
thumb_func_end TaskDummy1
thumb_func_start ResetLinkContestBoolean
ResetLinkContestBoolean: @ 0x080D6E98
ldr r1, _080D6EA0
movs r0, #0
strb r0, [r1]
bx lr
.align 2, 0
_080D6EA0: .4byte 0x02039BCA
thumb_func_end ResetLinkContestBoolean
thumb_func_start SetupContestGpuRegs
SetupContestGpuRegs: @ 0x080D6EA4
push {r4, lr}
movs r0, #0
movs r1, #0x40
bl SetGpuReg
movs r0, #0x50
movs r1, #0
bl SetGpuReg
movs r0, #0x52
movs r1, #0
bl SetGpuReg
movs r0, #0x54
movs r1, #0
bl SetGpuReg
ldr r4, _080D6F1C
movs r0, #0x48
adds r1, r4, #0
bl SetGpuReg
movs r0, #0x4a
adds r1, r4, #0
bl SetGpuReg
movs r1, #0xfe
lsls r1, r1, #7
movs r0, #0
bl SetGpuRegBits
ldr r0, _080D6F20
movs r1, #0
strh r1, [r0]
ldr r0, _080D6F24
strh r1, [r0]
ldr r0, _080D6F28
strh r1, [r0]
ldr r0, _080D6F2C
strh r1, [r0]
ldr r0, _080D6F30
strh r1, [r0]
ldr r0, _080D6F34
strh r1, [r0]
ldr r0, _080D6F38
strh r1, [r0]
ldr r0, _080D6F3C
strh r1, [r0]
ldr r0, _080D6F40
strh r1, [r0]
ldr r0, _080D6F44
strh r1, [r0]
ldr r0, _080D6F48
strh r1, [r0]
ldr r0, _080D6F4C
strh r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D6F1C: .4byte 0x00003F3F
_080D6F20: .4byte 0x02022AC8
_080D6F24: .4byte 0x02022ACA
_080D6F28: .4byte 0x02022ACC
_080D6F2C: .4byte 0x02022ACE
_080D6F30: .4byte 0x02022AD0
_080D6F34: .4byte 0x02022AD2
_080D6F38: .4byte 0x02022AD4
_080D6F3C: .4byte 0x02022AD6
_080D6F40: .4byte 0x02022AD8
_080D6F44: .4byte 0x02022ADA
_080D6F48: .4byte 0x02022ADC
_080D6F4C: .4byte 0x02022ADE
thumb_func_end SetupContestGpuRegs
thumb_func_start LoadContestBgAfterMoveAnim
LoadContestBgAfterMoveAnim: @ 0x080D6F50
push {r4, r5, lr}
ldr r0, _080D6FAC
movs r1, #0xc0
lsls r1, r1, #0x13
bl LZDecompressWram
ldr r0, _080D6FB0
ldr r1, _080D6FB4
bl LZDecompressWram
ldr r1, _080D6FB8
movs r0, #3
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
movs r0, #3
bl CopyBgTilemapBufferToVram
ldr r0, _080D6FBC
movs r2, #0x80
lsls r2, r2, #2
movs r1, #0
bl LoadCompressedPalette
bl sub_080D7058
movs r4, #0
movs r5, #0xa0
_080D6F8A:
ldr r0, _080D6FC0
adds r0, r5, r0
ldr r1, _080D6FC4
adds r1, r4, r1
ldrb r1, [r1]
adds r1, #5
lsls r1, r1, #4
movs r2, #0x20
bl LoadPalette
adds r5, #0x20
adds r4, #1
cmp r4, #3
ble _080D6F8A
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D6FAC: .4byte 0x08C17AB8
_080D6FB0: .4byte 0x08C18650
_080D6FB4: .4byte 0x06002000
_080D6FB8: .4byte 0x08C16FB0
_080D6FBC: .4byte 0x08C16E98
_080D6FC0: .4byte 0x0201A004
_080D6FC4: .4byte 0x02039BC6
thumb_func_end LoadContestBgAfterMoveAnim
thumb_func_start InitContestInfoBgs
InitContestInfoBgs: @ 0x080D6FC8
push {r4, lr}
movs r0, #0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080D7008
movs r0, #0
movs r2, #4
bl InitBgsFromTemplates
movs r0, #3
movs r1, #6
movs r2, #1
bl SetBgAttribute
movs r4, #0
_080D6FE6:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
ldr r1, _080D700C
ldr r1, [r1]
lsls r2, r4, #2
adds r1, #0x24
adds r1, r1, r2
ldr r1, [r1]
bl SetBgTilemapBuffer
adds r4, #1
cmp r4, #3
ble _080D6FE6
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D7008: .4byte 0x08560E98
_080D700C: .4byte 0x02039BD4
thumb_func_end InitContestInfoBgs
thumb_func_start InitContestWindows
InitContestWindows: @ 0x080D7010
push {lr}
ldr r0, _080D7038
bl InitWindows
bl DeactivateAllTextPrinters
ldr r0, _080D703C
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D7044
ldr r2, _080D7040
ldrb r1, [r2]
movs r0, #2
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
b _080D704E
.align 2, 0
_080D7038: .4byte 0x08560EA8
_080D703C: .4byte 0x02039BCA
_080D7040: .4byte 0x030030B4
_080D7044:
ldr r0, _080D7054
ldrb r1, [r0]
movs r2, #1
orrs r1, r2
strb r1, [r0]
_080D704E:
pop {r0}
bx r0
.align 2, 0
_080D7054: .4byte 0x030030B4
thumb_func_end InitContestWindows
thumb_func_start sub_080D7058
sub_080D7058: @ 0x080D7058
push {r4, r5, lr}
ldr r0, _080D709C
movs r1, #0xf0
movs r2, #0x20
bl LoadPalette
movs r0, #0
movs r1, #0
movs r2, #2
bl FillPalette
movs r5, #0xa
movs r4, #0xfa
lsls r4, r4, #0x10
_080D7074:
lsrs r1, r4, #0x10
ldr r0, _080D70A0
movs r2, #2
bl LoadPalette
movs r0, #0x80
lsls r0, r0, #9
adds r4, r4, r0
adds r5, #1
cmp r5, #0xd
ble _080D7074
ldr r0, _080D70A4
movs r1, #0xf3
movs r2, #2
bl FillPalette
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D709C: .4byte 0x08560B94
_080D70A0: .4byte 0x02037596
_080D70A4: .4byte 0x00007E3F
thumb_func_end sub_080D7058
thumb_func_start InitContestResources
InitContestResources: @ 0x080D70A8
push {r4, r5, r6, r7, lr}
ldr r4, _080D71A8
ldr r0, [r4]
ldr r0, [r0]
movs r1, #0
movs r2, #0x5c
bl memset
movs r5, #0
movs r2, #0xff
_080D70BC:
ldr r0, [r4]
ldr r1, [r0]
adds r1, #2
adds r1, r1, r5
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
adds r5, #1
cmp r5, #3
ble _080D70BC
movs r4, #0
ldr r6, _080D71A8
movs r5, #3
_080D70D6:
ldr r0, [r6]
ldr r0, [r0, #4]
adds r0, r4, r0
movs r1, #0
movs r2, #0x1c
bl memset
adds r4, #0x1c
subs r5, #1
cmp r5, #0
bge _080D70D6
ldr r4, _080D71A8
movs r7, #4
rsbs r7, r7, #0
movs r6, #0xff
movs r3, #0
movs r5, #3
_080D70F8:
ldr r0, [r4]
ldr r1, [r0, #4]
adds r1, r3, r1
ldrb r2, [r1, #0xb]
adds r0, r7, #0
ands r0, r2
strb r0, [r1, #0xb]
ldr r0, [r4]
ldr r1, [r0, #4]
adds r1, r3, r1
ldrb r0, [r1, #0x13]
orrs r0, r6
strb r0, [r1, #0x13]
ldr r0, [r4]
ldr r1, [r0, #4]
adds r1, r3, r1
ldrb r0, [r1, #0x14]
orrs r0, r6
strb r0, [r1, #0x14]
adds r3, #0x1c
subs r5, #1
cmp r5, #0
bge _080D70F8
ldr r4, _080D71A8
ldr r0, [r4]
ldr r0, [r0, #8]
movs r1, #0
movs r2, #0x14
bl memset
ldr r0, [r4]
ldr r0, [r0, #0xc]
movs r1, #0
movs r2, #0x44
bl memset
ldr r2, [r4]
ldr r1, [r2, #0x10]
movs r0, #0
str r0, [r1]
ldr r0, [r2, #0x14]
movs r1, #0
movs r2, #0x10
bl memset
ldr r0, _080D71AC
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080D7164
movs r0, #0
bl SortContestants
_080D7164:
movs r5, #0
adds r2, r4, #0
movs r6, #0xff
movs r3, #0
ldr r4, _080D71B0
_080D716E:
ldr r0, [r2]
ldr r1, [r0, #4]
adds r1, r3, r1
ldrb r0, [r1, #0x19]
orrs r0, r6
strb r0, [r1, #0x19]
ldr r0, [r2]
ldr r1, [r0]
adds r1, #0x14
adds r1, r1, r5
adds r0, r5, r4
ldrb r0, [r0]
strb r0, [r1]
adds r3, #0x1c
adds r5, #1
cmp r5, #3
ble _080D716E
bl ApplyNextTurnOrder
ldr r0, _080D71A8
ldr r0, [r0]
ldr r0, [r0, #0x1c]
movs r1, #0
movs r2, #0x40
bl memset
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080D71A8: .4byte 0x02039BD4
_080D71AC: .4byte 0x02039BCA
_080D71B0: .4byte 0x02039BC6
thumb_func_end InitContestResources
thumb_func_start AllocContestResources
AllocContestResources: @ 0x080D71B4
push {r4, r5, lr}
ldr r4, _080D727C
movs r0, #0x40
bl AllocZeroed
str r0, [r4]
movs r0, #0x5c
bl AllocZeroed
ldr r1, [r4]
str r0, [r1]
movs r0, #0x70
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #4]
movs r0, #0x14
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #8]
movs r0, #0x44
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0xc]
movs r0, #0x10
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x10]
movs r0, #0x10
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x14]
movs r0, #0x14
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x18]
movs r0, #0x40
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x1c]
movs r0, #0xc
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x20]
movs r5, #0x80
lsls r5, r5, #5
adds r0, r5, #0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x24]
adds r0, r5, #0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x28]
adds r0, r5, #0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x2c]
adds r0, r5, #0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x30]
movs r5, #0x80
lsls r5, r5, #4
adds r0, r5, #0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x34]
adds r0, r5, #0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, #0x38]
movs r0, #0x80
lsls r0, r0, #6
bl AllocZeroed
ldr r2, [r4]
str r0, [r2, #0x3c]
ldr r1, _080D7280
str r0, [r1]
ldr r1, _080D7284
ldr r0, [r2, #0x28]
str r0, [r1]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D727C: .4byte 0x02039BD4
_080D7280: .4byte 0x02022D00
_080D7284: .4byte 0x02022D04
thumb_func_end AllocContestResources
thumb_func_start FreeContestResources
FreeContestResources: @ 0x080D7288
push {r4, r5, lr}
ldr r5, _080D7344
ldr r0, [r5]
ldr r0, [r0]
bl Free
ldr r0, [r5]
movs r4, #0
str r4, [r0]
ldr r0, [r0, #4]
bl Free
ldr r0, [r5]
str r4, [r0, #4]
ldr r0, [r0, #8]
bl Free
ldr r0, [r5]
str r4, [r0, #8]
ldr r0, [r0, #0xc]
bl Free
ldr r0, [r5]
str r4, [r0, #0xc]
ldr r0, [r0, #0x10]
bl Free
ldr r0, [r5]
str r4, [r0, #0x10]
ldr r0, [r0, #0x14]
bl Free
ldr r0, [r5]
str r4, [r0, #0x14]
ldr r0, [r0, #0x18]
bl Free
ldr r0, [r5]
str r4, [r0, #0x18]
ldr r0, [r0, #0x1c]
bl Free
ldr r0, [r5]
str r4, [r0, #0x1c]
ldr r0, [r0, #0x20]
bl Free
ldr r0, [r5]
str r4, [r0, #0x20]
ldr r0, [r0, #0x24]
bl Free
ldr r0, [r5]
str r4, [r0, #0x24]
ldr r0, [r0, #0x28]
bl Free
ldr r0, [r5]
str r4, [r0, #0x28]
ldr r0, [r0, #0x2c]
bl Free
ldr r0, [r5]
str r4, [r0, #0x2c]
ldr r0, [r0, #0x30]
bl Free
ldr r0, [r5]
str r4, [r0, #0x30]
ldr r0, [r0, #0x34]
bl Free
ldr r0, [r5]
str r4, [r0, #0x34]
ldr r0, [r0, #0x38]
bl Free
ldr r0, [r5]
str r4, [r0, #0x38]
ldr r0, [r0, #0x3c]
bl Free
ldr r0, [r5]
str r4, [r0, #0x3c]
bl Free
str r4, [r5]
ldr r0, _080D7348
str r4, [r0]
ldr r0, _080D734C
str r4, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D7344: .4byte 0x02039BD4
_080D7348: .4byte 0x02022D00
_080D734C: .4byte 0x02022D04
thumb_func_end FreeContestResources
thumb_func_start CB2_StartContest
CB2_StartContest: @ 0x080D7350
push {r4, r5, r6, lr}
ldr r0, _080D736C
movs r1, #0x87
lsls r1, r1, #3
adds r6, r0, r1
ldrb r5, [r6]
cmp r5, #1
beq _080D7400
cmp r5, #1
bgt _080D7370
cmp r5, #0
beq _080D737A
b _080D7482
.align 2, 0
_080D736C: .4byte 0x03002360
_080D7370:
cmp r5, #2
beq _080D7406
cmp r5, #3
beq _080D7430
b _080D7482
_080D737A:
ldr r0, _080D73EC
strb r5, [r0]
bl AllocContestResources
bl AllocateMonSpritesGfx
ldr r4, _080D73F0
ldr r0, [r4]
ldr r0, [r0]
bl Free
ldr r0, [r4]
str r5, [r0]
movs r0, #0x80
lsls r0, r0, #7
bl AllocZeroed
ldr r1, [r4]
str r0, [r1]
movs r0, #0
bl SetVBlankCallback
bl InitContestInfoBgs
bl InitContestWindows
bl SetupContestGpuRegs
bl ScanlineEffect_Clear
bl ResetPaletteFade
ldr r2, _080D73F4
ldrb r0, [r2, #8]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #8]
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
ldr r1, _080D73F8
movs r0, #4
strb r0, [r1]
ldr r0, _080D73FC
movs r1, #0xd0
lsls r1, r1, #9
adds r0, r0, r1
strb r5, [r0]
bl ClearBattleMonForms
bl InitContestResources
b _080D7422
.align 2, 0
_080D73EC: .4byte 0x02039BD8
_080D73F0: .4byte 0x02024178
_080D73F4: .4byte 0x02037C74
_080D73F8: .4byte 0x030030BC
_080D73FC: .4byte 0x02000000
_080D7400:
movs r0, #2
strb r0, [r6]
b _080D7482
_080D7406:
ldr r4, _080D742C
ldr r0, [r4]
ldr r0, [r0]
adds r0, #0x59
bl SetupContestGraphics
lsls r0, r0, #0x18
cmp r0, #0
beq _080D7482
ldr r0, [r4]
ldr r0, [r0]
adds r0, #0x59
movs r1, #0
strb r1, [r0]
_080D7422:
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
b _080D7482
.align 2, 0
_080D742C: .4byte 0x02039BD4
_080D7430:
bl sub_080DD988
ldr r0, _080D7488
movs r1, #0
strh r1, [r0]
ldr r0, _080D748C
strh r1, [r0]
movs r0, #2
bl BeginFastPaletteFade
ldr r2, _080D7490
ldrb r1, [r2, #8]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #8]
ldr r0, _080D7494
bl SetVBlankCallback
ldr r0, _080D7498
movs r1, #0xa
bl CreateTask
ldr r1, _080D749C
ldr r1, [r1]
ldr r1, [r1]
strb r0, [r1, #8]
ldr r0, _080D74A0
bl SetMainCallback2
ldr r0, _080D74A4
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080D7482
bl LoadWirelessStatusIndicatorSpriteGfx
movs r0, #8
movs r1, #8
bl CreateWirelessStatusIndicatorSprite
_080D7482:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080D7488: .4byte 0x02022ACC
_080D748C: .4byte 0x02022ACE
_080D7490: .4byte 0x02037C74
_080D7494: .4byte 0x080D7AA9
_080D7498: .4byte 0x080D74A9
_080D749C: .4byte 0x02039BD4
_080D74A0: .4byte 0x080D7A69
_080D74A4: .4byte 0x02039BCA
thumb_func_end CB2_StartContest
thumb_func_start sub_080D74A8
sub_080D74A8: @ 0x080D74A8
push {lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldr r0, _080D74D4
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
bne _080D74CE
ldr r0, _080D74D8
lsls r1, r3, #2
adds r1, r1, r3
lsls r1, r1, #3
adds r1, r1, r0
strh r2, [r1, #8]
ldr r0, _080D74DC
str r0, [r1]
_080D74CE:
pop {r0}
bx r0
.align 2, 0
_080D74D4: .4byte 0x02037C74
_080D74D8: .4byte 0x03005B60
_080D74DC: .4byte 0x080D74E1
thumb_func_end sub_080D74A8
thumb_func_start sub_080D74E0
sub_080D74E0: @ 0x080D74E0
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _080D7518
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D75BC
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080D7566
ldr r2, _080D751C
lsls r1, r5, #2
adds r0, r1, r5
lsls r0, r0, #3
adds r4, r0, r2
movs r2, #8
ldrsh r0, [r4, r2]
adds r6, r1, #0
cmp r0, #1
beq _080D7530
cmp r0, #1
bgt _080D7520
cmp r0, #0
beq _080D7526
b _080D7566
.align 2, 0
_080D7518: .4byte 0x02039BCA
_080D751C: .4byte 0x03005B60
_080D7520:
cmp r0, #2
beq _080D7554
b _080D7566
_080D7526:
bl ContestPrintLinkStandby
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
_080D7530:
bl IsLinkTaskFinished
lsls r0, r0, #0x18
cmp r0, #0
beq _080D75CA
bl sub_0800A8D4
ldr r0, _080D7550
adds r1, r6, r5
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
b _080D75CA
.align 2, 0
_080D7550: .4byte 0x03005B60
_080D7554:
bl IsLinkTaskFinished
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _080D75CA
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
_080D7566:
ldr r2, _080D75A8
ldrb r1, [r2, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _080D75CA
ldrb r1, [r2, #8]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #8]
ldr r0, _080D75AC
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _080D758E
bl ContestPrintLinkStandby
_080D758E:
ldr r0, _080D75B0
movs r1, #0
bl CreateTask
ldr r1, _080D75B4
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
strh r4, [r0, #8]
ldr r1, _080D75B8
str r1, [r0]
b _080D75CA
.align 2, 0
_080D75A8: .4byte 0x02037C74
_080D75AC: .4byte 0x02039BCA
_080D75B0: .4byte 0x080D75D9
_080D75B4: .4byte 0x03005B60
_080D75B8: .4byte 0x080D6E95
_080D75BC:
ldr r0, _080D75D0
lsls r1, r5, #2
adds r1, r1, r5
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D75D4
str r0, [r1]
_080D75CA:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080D75D0: .4byte 0x03005B60
_080D75D4: .4byte 0x080D78F5
thumb_func_end sub_080D74E0
thumb_func_start sub_080D75D8
sub_080D75D8: @ 0x080D75D8
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080D75EC
ldr r2, _080D75F0
bl SetTaskFuncWithFollowupFunc
pop {r0}
bx r0
.align 2, 0
_080D75EC: .4byte 0x080FD1ED
_080D75F0: .4byte 0x080D75F5
thumb_func_end sub_080D75D8
thumb_func_start sub_080D75F4
sub_080D75F4: @ 0x080D75F4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D760C
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
movs r0, #1
strh r0, [r1, #8]
ldr r0, _080D7610
str r0, [r1]
bx lr
.align 2, 0
_080D760C: .4byte 0x03005B60
_080D7610: .4byte 0x080D7615
thumb_func_end sub_080D75F4
thumb_func_start sub_080D7614
sub_080D7614: @ 0x080D7614
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r5, _080D765C
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r5
ldrh r1, [r0, #8]
subs r1, #1
strh r1, [r0, #8]
lsls r1, r1, #0x10
cmp r1, #0
bgt _080D7656
bl GetMultiplayerId
adds r0, r4, #0
bl DestroyTask
ldr r0, _080D7660
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #8]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldr r1, _080D7664
str r1, [r0]
ldr r1, _080D7668
ldr r0, _080D766C
ldr r0, [r0]
str r0, [r1]
_080D7656:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D765C: .4byte 0x03005B60
_080D7660: .4byte 0x02039BD4
_080D7664: .4byte 0x080D78F5
_080D7668: .4byte 0x03005AE0
_080D766C: .4byte 0x03005E18
thumb_func_end sub_080D7614
thumb_func_start SetupContestGraphics
SetupContestGraphics: @ 0x080D7670
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x40
mov sl, r0
ldrb r0, [r0]
cmp r0, #6
bls _080D7686
b _080D78D0
_080D7686:
lsls r0, r0, #2
ldr r1, _080D7690
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080D7690: .4byte 0x080D7694
_080D7694: @ jump table
.4byte _080D76B0 @ case 0
.4byte _080D76F4 @ case 1
.4byte _080D7704 @ case 2
.4byte _080D7754 @ case 3
.4byte _080D776C @ case 4
.4byte _080D77A8 @ case 5
.4byte _080D7830 @ case 6
_080D76B0:
ldr r2, _080D76E8
ldrb r0, [r2, #8]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #8]
movs r1, #0xc0
lsls r1, r1, #0x13
movs r4, #0x80
lsls r4, r4, #8
movs r0, #0
adds r2, r4, #0
movs r3, #1
bl RequestDma3Fill
ldr r1, _080D76EC
movs r0, #0
adds r2, r4, #0
movs r3, #1
bl RequestDma3Fill
ldr r1, _080D76F0
movs r0, #0
adds r2, r4, #0
movs r3, #1
bl RequestDma3Fill
b _080D78DA
.align 2, 0
_080D76E8: .4byte 0x02037C74
_080D76EC: .4byte 0x06008000
_080D76F0: .4byte 0x06010000
_080D76F4:
ldr r0, _080D7700
movs r1, #0xc0
lsls r1, r1, #0x13
bl LZDecompressWram
b _080D78DA
.align 2, 0
_080D7700: .4byte 0x08C17AB8
_080D7704:
ldr r0, _080D7740
ldr r4, _080D7744
adds r1, r4, #0
bl LZDecompressWram
ldr r3, _080D7748
movs r5, #0x80
lsls r5, r5, #6
ldr r1, _080D774C
ldr r6, _080D7750
movs r2, #0x80
lsls r2, r2, #5
movs r7, #0x84
lsls r7, r7, #0x18
_080D7720:
str r4, [r1]
str r3, [r1, #4]
str r6, [r1, #8]
ldr r0, [r1, #8]
adds r4, r4, r2
adds r3, r3, r2
subs r5, r5, r2
cmp r5, r2
bhi _080D7720
str r4, [r1]
str r3, [r1, #4]
lsrs r0, r5, #2
orrs r0, r7
str r0, [r1, #8]
ldr r0, [r1, #8]
b _080D78DA
.align 2, 0
_080D7740: .4byte 0x08C18650
_080D7744: .4byte 0x06002000
_080D7748: .4byte 0x02018000
_080D774C: .4byte 0x040000D4
_080D7750: .4byte 0x84000400
_080D7754:
ldr r1, _080D7768
movs r0, #3
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
movs r0, #3
bl CopyBgTilemapBufferToVram
b _080D78DA
.align 2, 0
_080D7768: .4byte 0x08C16FB0
_080D776C:
ldr r1, _080D7794
movs r0, #2
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
movs r0, #2
bl CopyBgTilemapBufferToVram
ldr r0, _080D7798
ldr r0, [r0]
ldr r1, [r0, #0x2c]
ldr r2, _080D779C
ldr r0, _080D77A0
str r1, [r0]
str r2, [r0, #4]
ldr r1, _080D77A4
str r1, [r0, #8]
ldr r0, [r0, #8]
b _080D78DA
.align 2, 0
_080D7794: .4byte 0x08C17178
_080D7798: .4byte 0x02039BD4
_080D779C: .4byte 0x0201AA04
_080D77A0: .4byte 0x040000D4
_080D77A4: .4byte 0x84000200
_080D77A8:
ldr r0, _080D7810
movs r2, #0x80
lsls r2, r2, #2
movs r1, #0
bl LoadCompressedPalette
ldr r5, _080D7814
ldr r6, _080D7818
adds r0, r5, #0
mov r1, sp
adds r2, r6, #0
bl CpuSet
ldr r0, _080D781C
mov sb, r0
ldrb r0, [r0]
adds r0, #5
lsls r0, r0, #5
ldr r1, _080D7820
adds r1, r1, r5
mov r8, r1
add r0, r8
add r4, sp, #0x20
adds r1, r4, #0
adds r2, r6, #0
bl CpuSet
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl CpuSet
mov r2, sb
ldrb r1, [r2]
adds r1, #5
lsls r1, r1, #5
add r1, r8
mov r0, sp
adds r2, r6, #0
bl CpuSet
ldr r1, _080D7824
ldr r0, _080D7828
mov r2, r8
str r2, [r0]
str r1, [r0, #4]
ldr r1, _080D782C
str r1, [r0, #8]
ldr r0, [r0, #8]
bl sub_080D7058
b _080D78DA
.align 2, 0
_080D7810: .4byte 0x08C16E98
_080D7814: .4byte 0x020374B4
_080D7818: .4byte 0x04000008
_080D781C: .4byte 0x02039BC5
_080D7820: .4byte 0xFFFFFF00
_080D7824: .4byte 0x0201A004
_080D7828: .4byte 0x040000D4
_080D782C: .4byte 0x84000080
_080D7830:
bl DrawContestantWindows
bl FillContestantWindowBgs
bl SwapMoveDescAndContestTilemaps
bl sub_080DA884
ldr r1, _080D78B8
ldr r1, [r1]
ldr r1, [r1]
movs r4, #0
strb r0, [r1, #0x12]
bl sub_080DBA20
bl sub_080DBC54
bl CreateApplauseMeterSprite
bl sub_080DBD4C
bl sub_080DBF50
ldr r1, _080D78BC
strb r4, [r1]
movs r0, #1
strb r0, [r1, #1]
movs r3, #3
strb r3, [r1, #2]
movs r2, #2
strb r2, [r1, #3]
ldr r0, _080D78C0
str r4, [r0]
ldr r4, _080D78C4
strb r2, [r4]
ldr r0, _080D78C8
strb r3, [r0]
bl sub_080DA828
ldr r2, _080D78CC
ldrb r1, [r4]
adds r1, r1, r2
strb r0, [r1]
bl sub_080DE184
movs r0, #3
bl CopyBgTilemapBufferToVram
movs r0, #2
bl CopyBgTilemapBufferToVram
movs r0, #1
bl CopyBgTilemapBufferToVram
movs r0, #3
bl ShowBg
movs r0, #2
bl ShowBg
movs r0, #0
bl ShowBg
movs r0, #1
bl ShowBg
b _080D78DA
.align 2, 0
_080D78B8: .4byte 0x02039BD4
_080D78BC: .4byte 0x02023D1A
_080D78C0: .4byte 0x02022C90
_080D78C4: .4byte 0x02023EAF
_080D78C8: .4byte 0x02023EB0
_080D78CC: .4byte 0x02023E88
_080D78D0:
movs r0, #0
mov r1, sl
strb r0, [r1]
movs r0, #1
b _080D78E4
_080D78DA:
mov r2, sl
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
movs r0, #0
_080D78E4:
add sp, #0x40
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_end SetupContestGraphics
thumb_func_start sub_080D78F4
sub_080D78F4: @ 0x080D78F4
push {lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldr r1, _080D7928
ldrb r2, [r1, #8]
movs r0, #0x7f
ands r0, r2
strb r0, [r1, #8]
ldrb r1, [r1, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
bne _080D7924
ldr r0, _080D792C
lsls r1, r3, #2
adds r1, r1, r3
lsls r1, r1, #3
adds r1, r1, r0
strh r2, [r1, #8]
strh r2, [r1, #0xa]
ldr r0, _080D7930
str r0, [r1]
_080D7924:
pop {r0}
bx r0
.align 2, 0
_080D7928: .4byte 0x02037C74
_080D792C: .4byte 0x03005B60
_080D7930: .4byte 0x080D7935
thumb_func_end sub_080D78F4
thumb_func_start sub_080D7934
sub_080D7934: @ 0x080D7934
push {r4, r5, lr}
sub sp, #4
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, _080D795C
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
movs r2, #8
ldrsh r0, [r0, r2]
adds r2, r1, #0
cmp r0, #4
bhi _080D7A34
lsls r0, r0, #2
ldr r1, _080D7960
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080D795C: .4byte 0x03005B60
_080D7960: .4byte 0x080D7964
_080D7964: @ jump table
.4byte _080D7978 @ case 0
.4byte _080D79A2 @ case 1
.4byte _080D79C0 @ case 2
.4byte _080D79DC @ case 3
.4byte _080D7A34 @ case 4
_080D7978:
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r4, r0, r2
ldrh r0, [r4, #0xa]
adds r1, r0, #1
strh r1, [r4, #0xa]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x3c
ble _080D7A58
movs r0, #0
strh r0, [r4, #0xa]
movs r0, #0x61
movs r1, #0
bl PlaySE12WithPanning
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
b _080D7A58
_080D79A2:
ldr r1, _080D79BC
ldrh r0, [r1]
adds r0, #7
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xa0
ble _080D7A58
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r2
b _080D7A26
.align 2, 0
_080D79BC: .4byte 0x02022ACE
_080D79C0:
bl sub_080DDAB4
ldr r0, _080D79D8
lsls r1, r5, #2
adds r1, r1, r5
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
b _080D7A58
.align 2, 0
_080D79D8: .4byte 0x03005B60
_080D79DC:
movs r0, #8
bl GetGpuReg
mov r1, sp
strh r0, [r1]
movs r0, #0xc
bl GetGpuReg
mov r4, sp
adds r4, #2
strh r0, [r4]
mov r3, sp
ldrb r2, [r3]
movs r1, #4
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
strb r0, [r3]
ldrb r0, [r4]
ands r1, r0
strb r1, [r4]
mov r0, sp
ldrh r1, [r0]
movs r0, #8
bl SetGpuReg
ldrh r1, [r4]
movs r0, #0xc
bl SetGpuReg
bl StartMoveApplauseMeterOnscreen
ldr r1, _080D7A30
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
_080D7A26:
ldrh r1, [r0, #8]
adds r1, #1
strh r1, [r0, #8]
b _080D7A58
.align 2, 0
_080D7A30: .4byte 0x03005B60
_080D7A34:
ldr r0, _080D7A60
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #6]
movs r0, #0x40
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _080D7A58
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r2
strh r1, [r0, #8]
strh r1, [r0, #0xa]
ldr r1, _080D7A64
str r1, [r0]
_080D7A58:
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D7A60: .4byte 0x02039BD4
_080D7A64: .4byte 0x080D7B69
thumb_func_end sub_080D7934
thumb_func_start CB2_ContestMain
CB2_ContestMain: @ 0x080D7A68
push {r4, r5, lr}
bl AnimateSprites
bl RunTasks
bl BuildOamBuffer
bl UpdatePaletteFade
movs r4, #0
_080D7A7C:
ldr r5, _080D7AA4
ldrb r0, [r5]
asrs r0, r4
movs r1, #1
ands r0, r1
cmp r0, #0
beq _080D7A92
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl CopyBgTilemapBufferToVram
_080D7A92:
adds r4, #1
cmp r4, #3
ble _080D7A7C
movs r0, #0
strb r0, [r5]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D7AA4: .4byte 0x02039BD8
thumb_func_end CB2_ContestMain
thumb_func_start vblank_cb_battle
vblank_cb_battle: @ 0x080D7AA8
push {lr}
ldr r0, _080D7B38
ldrh r1, [r0]
movs r0, #0x10
bl SetGpuReg
ldr r0, _080D7B3C
ldrh r1, [r0]
movs r0, #0x12
bl SetGpuReg
ldr r0, _080D7B40
ldrh r1, [r0]
movs r0, #0x14
bl SetGpuReg
ldr r0, _080D7B44
ldrh r1, [r0]
movs r0, #0x16
bl SetGpuReg
ldr r0, _080D7B48
ldrh r1, [r0]
movs r0, #0x18
bl SetGpuReg
ldr r0, _080D7B4C
ldrh r1, [r0]
movs r0, #0x1a
bl SetGpuReg
ldr r0, _080D7B50
ldrh r1, [r0]
movs r0, #0x1c
bl SetGpuReg
ldr r0, _080D7B54
ldrh r1, [r0]
movs r0, #0x1e
bl SetGpuReg
ldr r0, _080D7B58
ldrh r1, [r0]
movs r0, #0x40
bl SetGpuReg
ldr r0, _080D7B5C
ldrh r1, [r0]
movs r0, #0x44
bl SetGpuReg
ldr r0, _080D7B60
ldrh r1, [r0]
movs r0, #0x42
bl SetGpuReg
ldr r0, _080D7B64
ldrh r1, [r0]
movs r0, #0x46
bl SetGpuReg
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
_080D7B38: .4byte 0x02022AC8
_080D7B3C: .4byte 0x02022ACA
_080D7B40: .4byte 0x02022ACC
_080D7B44: .4byte 0x02022ACE
_080D7B48: .4byte 0x02022AD0
_080D7B4C: .4byte 0x02022AD2
_080D7B50: .4byte 0x02022AD4
_080D7B54: .4byte 0x02022AD6
_080D7B58: .4byte 0x02022AD8
_080D7B5C: .4byte 0x02022ADA
_080D7B60: .4byte 0x02022ADC
_080D7B64: .4byte 0x02022ADE
thumb_func_end vblank_cb_battle
thumb_func_start sub_080D7B68
sub_080D7B68: @ 0x080D7B68
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, _080D7BCC
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r4, r0, r1
movs r0, #8
ldrsh r1, [r4, r0]
cmp r1, #0
bne _080D7C38
ldr r0, _080D7BD0
strh r1, [r0]
ldr r0, _080D7BD4
strh r1, [r0]
bl ContestDebugDoPrint
ldr r1, _080D7BD8
ldr r2, _080D7BDC
ldr r0, _080D7BE0
str r1, [r0]
str r2, [r0, #4]
ldr r1, _080D7BE4
str r1, [r0, #8]
ldr r0, [r0, #8]
ldr r0, _080D7BE8
ldr r1, _080D7BEC
ldr r1, [r1]
ldr r1, [r1]
ldrb r1, [r1, #1]
adds r1, #1
movs r2, #0
movs r3, #1
bl ConvertIntToDecimalStringN
adds r4, r0, #0
ldr r0, _080D7BF0
ldrb r0, [r0]
bl Contest_IsMonsTurnDisabled
lsls r0, r0, #0x18
cmp r0, #0
bne _080D7BF8
ldr r1, _080D7BF4
adds r0, r4, #0
bl StringCopy
b _080D7C00
.align 2, 0
_080D7BCC: .4byte 0x03005B60
_080D7BD0: .4byte 0x02022ACA
_080D7BD4: .4byte 0x02022AD2
_080D7BD8: .4byte 0x020373B4
_080D7BDC: .4byte 0x0201A204
_080D7BE0: .4byte 0x040000D4
_080D7BE4: .4byte 0x84000100
_080D7BE8: .4byte 0x02022AE0
_080D7BEC: .4byte 0x02039BD4
_080D7BF0: .4byte 0x02039BC5
_080D7BF4: .4byte 0x0824B317
_080D7BF8:
ldr r1, _080D7C28
adds r0, r4, #0
bl StringCopy
_080D7C00:
bl sub_080DB000
ldr r4, _080D7C2C
ldr r1, _080D7C30
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D7C34
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #8]
adds r1, #1
strh r1, [r0, #8]
b _080D7C46
.align 2, 0
_080D7C28: .4byte 0x0824B32D
_080D7C2C: .4byte 0x02021C7C
_080D7C30: .4byte 0x02022AE0
_080D7C34: .4byte 0x03005B60
_080D7C38:
bl Contest_RunTextPrinters
cmp r0, #0
bne _080D7C46
strh r0, [r4, #8]
ldr r0, _080D7C4C
str r0, [r4]
_080D7C46:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D7C4C: .4byte 0x080D7C51
thumb_func_end sub_080D7B68
thumb_func_start sub_080D7C50
sub_080D7C50: @ 0x080D7C50
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
adds r5, r4, #0
ldr r0, _080D7C90
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080D7C68
cmp r1, #2
bne _080D7CAE
_080D7C68:
movs r0, #5
bl PlaySE
ldr r0, _080D7C94
ldrb r0, [r0]
bl Contest_IsMonsTurnDisabled
lsls r0, r0, #0x18
cmp r0, #0
bne _080D7CA0
movs r0, #1
bl sub_080DBBF4
ldr r0, _080D7C98
lsls r1, r4, #2
adds r1, r1, r4
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D7C9C
b _080D7CAC
.align 2, 0
_080D7C90: .4byte 0x03002360
_080D7C94: .4byte 0x02039BC5
_080D7C98: .4byte 0x03005B60
_080D7C9C: .4byte 0x080D7CBD
_080D7CA0:
ldr r0, _080D7CB4
lsls r1, r5, #2
adds r1, r1, r5
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D7CB8
_080D7CAC:
str r0, [r1]
_080D7CAE:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D7CB4: .4byte 0x03005B60
_080D7CB8: .4byte 0x080D8091
thumb_func_end sub_080D7C50
thumb_func_start sub_080D7CBC
sub_080D7CBC: @ 0x080D7CBC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x20
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sl, r0
ldr r0, _080D7D60
movs r1, #0xa0
strh r1, [r0]
ldr r0, _080D7D64
strh r1, [r0]
movs r7, #0
ldr r0, _080D7D68
mov sb, r0
ldr r1, _080D7D6C
mov r8, r1
_080D7CE2:
lsls r1, r7, #1
mov r0, sb
ldrb r2, [r0]
lsls r0, r2, #6
adds r1, r1, r0
ldr r0, _080D7D70
adds r1, r1, r0
ldrh r5, [r1]
mov r6, sp
mov r1, r8
ldr r0, [r1]
ldr r1, [r0, #4]
lsls r0, r2, #3
subs r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0, #8]
cmp r0, #0
beq _080D7D78
adds r0, r2, #0
bl sub_080DD94C
lsls r0, r0, #0x18
cmp r0, #0
beq _080D7D78
mov r2, r8
ldr r0, [r2]
mov r2, sb
ldrb r1, [r2]
ldr r2, [r0, #4]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0, #8]
adds r1, r5, #0
bl AreMovesContestCombo
lsls r0, r0, #0x18
cmp r0, #0
beq _080D7D78
mov r1, r8
ldr r0, [r1]
mov r2, sb
ldrb r1, [r2]
ldr r2, [r0, #4]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080D7D78
mov r0, sp
ldr r1, _080D7D74
bl StringCopy
adds r6, r0, #0
lsls r4, r5, #3
b _080D7DAA
.align 2, 0
_080D7D60: .4byte 0x02022ACA
_080D7D64: .4byte 0x02022AD2
_080D7D68: .4byte 0x02039BC5
_080D7D6C: .4byte 0x02039BD4
_080D7D70: .4byte 0x02039ABE
_080D7D74: .4byte 0x085CC48C
_080D7D78:
lsls r4, r5, #3
cmp r5, #0
beq _080D7DAA
mov r1, r8
ldr r0, [r1]
mov r2, sb
ldrb r1, [r2]
ldr r2, [r0, #4]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0, #8]
cmp r0, r5
bne _080D7DAA
ldr r0, _080D7E20
adds r0, r4, r0
ldrb r0, [r0]
cmp r0, #3
beq _080D7DAA
mov r0, sp
ldr r1, _080D7E24
bl StringCopy
adds r6, r0, #0
_080D7DAA:
ldr r1, _080D7E28
adds r1, r4, r1
adds r0, r6, #0
bl StringCopy
adds r4, r7, #0
adds r4, #9
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r4, #0
mov r1, sp
bl Contest_PrintTextToBg0WindowStd
adds r0, r7, #1
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
cmp r7, #3
bls _080D7CE2
ldr r4, _080D7E2C
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_080D8038
ldr r2, _080D7E30
ldr r0, [r4]
ldr r0, [r0]
ldrb r1, [r0]
lsls r1, r1, #1
ldr r0, _080D7E34
ldrb r0, [r0]
lsls r0, r0, #6
adds r1, r1, r0
adds r2, #0x1e
adds r1, r1, r2
ldrh r0, [r1]
bl sub_080DAAD4
ldr r1, _080D7E38
mov r2, sl
lsls r0, r2, #2
add r0, sl
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _080D7E3C
str r1, [r0]
add sp, #0x20
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080D7E20: .4byte 0x08565FCC
_080D7E24: .4byte 0x085CC493
_080D7E28: .4byte 0x082EACC4
_080D7E2C: .4byte 0x02039BD4
_080D7E30: .4byte 0x02039AA0
_080D7E34: .4byte 0x02039BC5
_080D7E38: .4byte 0x03005B60
_080D7E3C: .4byte 0x080D7E41
thumb_func_end sub_080D7CBC
thumb_func_start sub_080D7E40
sub_080D7E40: @ 0x080D7E40
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
movs r6, #0
ldr r3, _080D7E8C
ldr r1, _080D7E90
ldr r0, _080D7E94
ldrb r0, [r0]
lsls r0, r0, #6
adds r1, #0x1e
adds r1, r0, r1
movs r2, #3
_080D7E58:
ldrh r0, [r1]
cmp r0, #0
beq _080D7E64
adds r0, r6, #1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
_080D7E64:
adds r1, #2
subs r2, #1
cmp r2, #0
bge _080D7E58
ldrh r0, [r3, #0x2e]
movs r5, #1
ands r5, r0
cmp r5, #0
beq _080D7EA0
movs r0, #5
bl PlaySE
ldr r0, _080D7E98
lsls r1, r7, #2
adds r1, r1, r7
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D7E9C
str r0, [r1]
b _080D8026
.align 2, 0
_080D7E8C: .4byte 0x03002360
_080D7E90: .4byte 0x02039AA0
_080D7E94: .4byte 0x02039BC5
_080D7E98: .4byte 0x03005B60
_080D7E9C: .4byte 0x080D8091
_080D7EA0:
ldrh r0, [r3, #0x30]
cmp r0, #0x20
bne _080D7EA8
b _080D8026
_080D7EA8:
cmp r0, #0x20
bgt _080D7EB2
cmp r0, #2
beq _080D7EBE
b _080D8026
_080D7EB2:
cmp r0, #0x40
beq _080D7F5C
cmp r0, #0x80
bne _080D7EBC
b _080D7FC8
_080D7EBC:
b _080D8026
_080D7EBE:
movs r0, #5
bl PlaySE
movs r0, #0
bl sub_080DBBF4
ldr r0, _080D7EF8
ldr r1, _080D7EFC
ldr r1, [r1]
ldr r1, [r1]
ldrb r1, [r1, #1]
adds r1, #1
movs r2, #0
movs r3, #1
bl ConvertIntToDecimalStringN
adds r4, r0, #0
ldr r0, _080D7F00
ldrb r0, [r0]
bl Contest_IsMonsTurnDisabled
lsls r0, r0, #0x18
cmp r0, #0
bne _080D7F08
ldr r1, _080D7F04
adds r0, r4, #0
bl StringCopy
b _080D7F10
.align 2, 0
_080D7EF8: .4byte 0x02022AE0
_080D7EFC: .4byte 0x02039BD4
_080D7F00: .4byte 0x02039BC5
_080D7F04: .4byte 0x0824B317
_080D7F08:
ldr r1, _080D7F40
adds r0, r4, #0
bl StringCopy
_080D7F10:
bl sub_080DB000
ldr r4, _080D7F44
ldr r1, _080D7F48
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #0
bl Contest_StartTextPrinter
ldr r0, _080D7F4C
movs r1, #0
strh r1, [r0]
ldr r0, _080D7F50
strh r1, [r0]
ldr r1, _080D7F54
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _080D7F58
str r1, [r0]
b _080D8026
.align 2, 0
_080D7F40: .4byte 0x0824B32D
_080D7F44: .4byte 0x02021C7C
_080D7F48: .4byte 0x02022AE0
_080D7F4C: .4byte 0x02022ACA
_080D7F50: .4byte 0x02022AD2
_080D7F54: .4byte 0x03005B60
_080D7F58: .4byte 0x080D7C51
_080D7F5C:
ldr r4, _080D7F7C
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_080D8064
ldr r0, [r4]
ldr r1, [r0]
ldrb r0, [r1]
cmp r0, #0
bne _080D7F80
subs r0, r6, #1
b _080D7F82
.align 2, 0
_080D7F7C: .4byte 0x02039BD4
_080D7F80:
subs r0, #1
_080D7F82:
strb r0, [r1]
ldr r4, _080D7FBC
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_080D8038
ldr r2, _080D7FC0
ldr r0, [r4]
ldr r0, [r0]
ldrb r1, [r0]
lsls r1, r1, #1
ldr r0, _080D7FC4
ldrb r0, [r0]
lsls r0, r0, #6
adds r1, r1, r0
adds r2, #0x1e
adds r1, r1, r2
ldrh r0, [r1]
bl sub_080DAAD4
cmp r6, #1
bls _080D8026
movs r0, #5
bl PlaySE
b _080D8026
.align 2, 0
_080D7FBC: .4byte 0x02039BD4
_080D7FC0: .4byte 0x02039AA0
_080D7FC4: .4byte 0x02039BC5
_080D7FC8:
ldr r4, _080D7FE8
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_080D8064
ldr r0, [r4]
ldr r1, [r0]
ldrb r2, [r1]
subs r0, r6, #1
cmp r2, r0
bne _080D7FEC
strb r5, [r1]
b _080D7FF0
.align 2, 0
_080D7FE8: .4byte 0x02039BD4
_080D7FEC:
adds r0, r2, #1
strb r0, [r1]
_080D7FF0:
ldr r4, _080D802C
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_080D8038
ldr r2, _080D8030
ldr r0, [r4]
ldr r0, [r0]
ldrb r1, [r0]
lsls r1, r1, #1
ldr r0, _080D8034
ldrb r0, [r0]
lsls r0, r0, #6
adds r1, r1, r0
adds r2, #0x1e
adds r1, r1, r2
ldrh r0, [r1]
bl sub_080DAAD4
cmp r6, #1
bls _080D8026
movs r0, #5
bl PlaySE
_080D8026:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080D802C: .4byte 0x02039BD4
_080D8030: .4byte 0x02039AA0
_080D8034: .4byte 0x02039BC5
thumb_func_end sub_080D7E40
thumb_func_start sub_080D8038
sub_080D8038: @ 0x080D8038
push {lr}
sub sp, #0x10
adds r3, r0, #0
lsls r3, r3, #0x19
movs r0, #0xf8
lsls r0, r0, #0x15
adds r3, r3, r0
lsrs r3, r3, #0x18
movs r1, #1
str r1, [sp]
movs r0, #2
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
str r1, [sp, #0xc]
movs r0, #2
movs r2, #1
bl ContestBG_FillBoxWithIncrementingTile
add sp, #0x10
pop {r0}
bx r0
thumb_func_end sub_080D8038
thumb_func_start sub_080D8064
sub_080D8064: @ 0x080D8064
push {lr}
sub sp, #0xc
adds r3, r0, #0
lsls r3, r3, #0x19
movs r0, #0xf8
lsls r0, r0, #0x15
adds r3, r3, r0
lsrs r3, r3, #0x18
movs r0, #1
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #2
movs r1, #0xc
movs r2, #1
bl ContestBG_FillBoxWithTile
add sp, #0xc
pop {r0}
bx r0
thumb_func_end sub_080D8064
thumb_func_start sub_080D8090
sub_080D8090: @ 0x080D8090
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _080D80EC
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D8108
ldr r4, _080D80F0
ldrb r0, [r4]
bl GetChosenMove
ldr r1, _080D80F4
ldr r1, [r1]
ldrb r2, [r4]
ldr r3, [r1, #4]
lsls r1, r2, #3
subs r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r3
strh r0, [r1, #6]
ldr r4, _080D80F8
adds r0, r4, #0
movs r1, #0
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D80FC
adds r1, r4, #0
bl SetTaskFuncWithFollowupFunc
ldr r1, _080D8100
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _080D8104
str r1, [r0]
bl ContestPrintLinkStandby
movs r0, #0
bl sub_080DBBF4
b _080D811A
.align 2, 0
_080D80EC: .4byte 0x02039BCA
_080D80F0: .4byte 0x02039BC5
_080D80F4: .4byte 0x02039BD4
_080D80F8: .4byte 0x080FD24D
_080D80FC: .4byte 0x080D8129
_080D8100: .4byte 0x03005B60
_080D8104: .4byte 0x080D6E95
_080D8108:
bl GetAllChosenMoves
ldr r0, _080D8120
lsls r1, r5, #2
adds r1, r1, r5
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D8124
str r0, [r1]
_080D811A:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D8120: .4byte 0x03005B60
_080D8124: .4byte 0x080D8159
thumb_func_end sub_080D8090
thumb_func_start sub_080D8128
sub_080D8128: @ 0x080D8128
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl DestroyTask
ldr r2, _080D814C
ldr r0, _080D8150
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #8]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldr r1, _080D8154
str r1, [r0]
pop {r0}
bx r0
.align 2, 0
_080D814C: .4byte 0x03005B60
_080D8150: .4byte 0x02039BD4
_080D8154: .4byte 0x080D8159
thumb_func_end sub_080D8128
thumb_func_start sub_080D8158
sub_080D8158: @ 0x080D8158
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
bl sub_080DB000
ldr r0, _080D81E0
movs r1, #0
strh r1, [r0]
ldr r0, _080D81E4
strh r1, [r0]
movs r0, #0
bl sub_080DBBF4
movs r6, #0
movs r5, #0x90
lsls r5, r5, #0x14
_080D8178:
lsrs r4, r5, #0x18
adds r0, r4, #0
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r4, #0
bl PutWindowTilemap
adds r0, r4, #0
movs r1, #2
bl CopyWindowToVram
movs r0, #0x80
lsls r0, r0, #0x11
adds r5, r5, r0
adds r6, #1
cmp r6, #3
ble _080D8178
movs r0, #0
bl Contest_SetBgCopyFlags
ldr r1, _080D81E8
ldr r0, _080D81EC
movs r2, #0x80
lsls r2, r2, #3
ldr r4, _080D81F0
str r1, [r4]
str r0, [r4, #4]
lsrs r1, r2, #2
movs r3, #0x84
lsls r3, r3, #0x18
orrs r1, r3
str r1, [r4, #8]
ldr r1, [r4, #8]
ldr r1, _080D81F4
adds r0, r0, r1
movs r1, #0
bl LoadPalette
ldr r1, _080D81F8
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #8]
strh r1, [r0, #0xa]
ldr r1, _080D81FC
str r1, [r0]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080D81E0: .4byte 0x02022ACA
_080D81E4: .4byte 0x02022AD2
_080D81E8: .4byte 0x020377B4
_080D81EC: .4byte 0x0201A604
_080D81F0: .4byte 0x040000D4
_080D81F4: .4byte 0xFFFFFC00
_080D81F8: .4byte 0x03005B60
_080D81FC: .4byte 0x080D8201
thumb_func_end sub_080D8158
thumb_func_start sub_080D8200
sub_080D8200: @ 0x080D8200
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D8244
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r4, r1, r2
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _080D823E
movs r0, #0
strh r0, [r4, #8]
ldrh r0, [r4, #0xa]
adds r0, #1
strh r0, [r4, #0xa]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
bne _080D823E
bl TryMoveApplauseMeterOffscreen
movs r0, #1
bl sub_080DDE00
ldr r0, _080D8248
str r0, [r4]
_080D823E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D8244: .4byte 0x03005B60
_080D8248: .4byte 0x080D824D
thumb_func_end sub_080D8200
thumb_func_start sub_080D824C
sub_080D824C: @ 0x080D824C
push {lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _080D8278
ldr r0, [r0]
ldr r0, [r0]
ldrh r1, [r0, #6]
movs r0, #0x90
lsls r0, r0, #2
ands r0, r1
cmp r0, #0
bne _080D8272
ldr r0, _080D827C
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D8280
str r0, [r1]
_080D8272:
pop {r0}
bx r0
.align 2, 0
_080D8278: .4byte 0x02039BD4
_080D827C: .4byte 0x03005B60
_080D8280: .4byte 0x080D8285
thumb_func_end sub_080D824C
thumb_func_start sub_080D8284
sub_080D8284: @ 0x080D8284
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
ldr r0, _080D831C
lsls r3, r6, #2
adds r1, r3, r6
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x13
ble _080D8314
ldr r2, _080D8320
ldr r0, [r2]
ldr r1, [r0]
movs r0, #0
strb r0, [r1, #0x10]
ldr r0, [r2]
ldr r1, [r0]
ldr r0, _080D8324
ldr r0, [r0]
str r0, [r1, #0x18]
ldr r0, _080D8328
ldrb r1, [r0]
movs r0, #1
ands r0, r1
adds r7, r3, #0
cmp r0, #0
beq _080D8304
bl sub_080DA094
lsls r0, r0, #0x18
cmp r0, #0
beq _080D8304
movs r4, #0
ldr r1, _080D832C
ldrb r0, [r1]
cmp r0, #3
bgt _080D8304
adds r5, r1, #0
_080D82DA:
ldrb r0, [r5]
adds r0, r0, r4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl GetChosenMove
ldr r1, _080D8320
ldr r1, [r1]
ldrb r2, [r5]
adds r2, r2, r4
ldr r3, [r1, #4]
lsls r1, r2, #3
subs r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r3
strh r0, [r1, #6]
adds r4, #1
ldrb r0, [r5]
adds r0, r4, r0
cmp r0, #3
ble _080D82DA
_080D8304:
ldr r1, _080D831C
adds r0, r7, r6
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #8]
ldr r1, _080D8330
str r1, [r0]
_080D8314:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080D831C: .4byte 0x03005B60
_080D8320: .4byte 0x02039BD4
_080D8324: .4byte 0x03005AE0
_080D8328: .4byte 0x02039BCA
_080D832C: .4byte 0x02039BD0
_080D8330: .4byte 0x080D8335
thumb_func_end sub_080D8284
thumb_func_start sub_080D8334
sub_080D8334: @ 0x080D8334
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
ldr r2, _080D8374
ldr r0, [r2]
ldr r0, [r0]
ldrb r6, [r0, #0x11]
ldr r1, _080D8378
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r4, #8
ldrsh r0, [r0, r4]
mov sb, r2
adds r4, r1, #0
cmp r0, #0x3b
bls _080D836A
bl _080D98F0
_080D836A:
lsls r0, r0, #2
ldr r1, _080D837C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080D8374: .4byte 0x02039BD4
_080D8378: .4byte 0x03005B60
_080D837C: .4byte 0x080D8380
_080D8380: @ jump table
.4byte _080D8470 @ case 0
.4byte _080D852C @ case 1
.4byte _080D8552 @ case 2
.4byte _080D85C0 @ case 3
.4byte _080D8678 @ case 4
.4byte _080D86C4 @ case 5
.4byte _080D877C @ case 6
.4byte _080D87B0 @ case 7
.4byte _080D8808 @ case 8
.4byte _080D8884 @ case 9
.4byte _080D97B0 @ case 10
.4byte _080D97DC @ case 11
.4byte _080D8A30 @ case 12
.4byte _080D8A64 @ case 13
.4byte _080D8F6C @ case 14
.4byte _080D905C @ case 15
.4byte _080D90CC @ case 16
.4byte _080D90FC @ case 17
.4byte _080D91E4 @ case 18
.4byte _080D9196 @ case 19
.4byte _080D9814 @ case 20
.4byte _080D9890 @ case 21
.4byte _080D98B2 @ case 22
.4byte _080D88AC @ case 23
.4byte _080D8978 @ case 24
.4byte _080D8B80 @ case 25
.4byte _080D8B96 @ case 26
.4byte _080D8C74 @ case 27
.4byte _080D8C98 @ case 28
.4byte _080D8D00 @ case 29
.4byte _080D8DE4 @ case 30
.4byte _080D9828 @ case 31
.4byte _080D9870 @ case 32
.4byte _080D96B0 @ case 33
.4byte _080D9738 @ case 34
.4byte _080D8A92 @ case 35
.4byte _080D8AC8 @ case 36
.4byte _080D8AEE @ case 37
.4byte _080D8B2C @ case 38
.4byte _080D8D54 @ case 39
.4byte _080D8DBC @ case 40
.4byte _080D9224 @ case 41
.4byte _080D98F0 @ case 42
.4byte _080D95A4 @ case 43
.4byte _080D98F0 @ case 44
.4byte _080D9028 @ case 45
.4byte _080D9174 @ case 46
.4byte _080D8A12 @ case 47
.4byte _080D899C @ case 48
.4byte _080D89EC @ case 49
.4byte _080D8B54 @ case 50
.4byte _080D8E88 @ case 51
.4byte _080D8F14 @ case 52
.4byte _080D93A2 @ case 53
.4byte _080D9460 @ case 54
.4byte _080D9758 @ case 55
.4byte _080D9774 @ case 56
.4byte _080D95CC @ case 57
.4byte _080D9654 @ case 58
.4byte _080D9694 @ case 59
_080D8470:
bl ContestDebugDoPrint
movs r7, #0
ldr r0, _080D84FC
ldr r0, [r0]
ldr r1, [r0]
ldr r0, [r0, #8]
ldrb r1, [r1, #0x10]
mov r5, r8
lsls r5, r5, #2
mov sl, r5
ldrb r2, [r0]
cmp r1, r2
beq _080D8498
adds r2, r0, #0
_080D848E:
adds r7, #1
adds r0, r2, r7
ldrb r0, [r0]
cmp r1, r0
bne _080D848E
_080D8498:
ldr r4, _080D84FC
ldr r0, [r4]
ldr r0, [r0]
strb r7, [r0, #0x11]
ldr r0, [r4]
ldr r2, [r0]
ldrb r6, [r2, #0x11]
ldr r0, _080D8500
ldrb r1, [r0]
movs r5, #1
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _080D8510
ldrb r0, [r2, #7]
movs r1, #4
orrs r0, r1
strb r0, [r2, #7]
bl sub_080DA094
lsls r0, r0, #0x18
cmp r0, #0
beq _080D84D0
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0, #0x11]
bl sub_080DC7E4
_080D84D0:
ldr r4, _080D8504
adds r0, r4, #0
movs r1, #0
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D8508
adds r1, r4, #0
bl SetTaskFuncWithFollowupFunc
bl ContestPrintLinkStandby
ldr r1, _080D850C
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
strh r5, [r0, #8]
bl _080D98F0
.align 2, 0
_080D84FC: .4byte 0x02039BD4
_080D8500: .4byte 0x02039BCA
_080D8504: .4byte 0x080FD4DD
_080D8508: .4byte 0x080D9901
_080D850C: .4byte 0x03005B60
_080D8510:
adds r0, r6, #0
bl sub_080DC7E4
ldr r0, _080D8528
mov r1, sl
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #2
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8528: .4byte 0x03005B60
_080D852C:
mov r3, sb
ldr r0, [r3]
ldr r0, [r0]
ldrb r1, [r0, #7]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080D8540
bl _080D98F0
_080D8540:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #2
strh r1, [r0, #8]
bl _080D98F0
_080D8552:
adds r0, r6, #0
bl sub_080DE788
bl ContestDebugPrintBitStrings
ldr r0, _080D8598
ldr r0, [r0]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r2, r0, r1
ldrb r1, [r2, #0xc]
movs r0, #6
ands r0, r1
cmp r0, #0
bne _080D8582
ldrb r1, [r2, #0xb]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #0
beq _080D85A0
_080D8582:
ldr r0, _080D859C
mov r2, r8
lsls r1, r2, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x1f
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8598: .4byte 0x02039BD4
_080D859C: .4byte 0x03005B60
_080D85A0:
bl sub_080DB000
ldr r0, _080D85BC
mov r3, r8
lsls r1, r3, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
strh r6, [r1, #0x1c]
movs r0, #3
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D85BC: .4byte 0x03005B60
_080D85C0:
mov r4, r8
lsls r4, r4, #2
mov sl, r4
ldr r1, _080D865C
movs r2, #0
adds r0, r1, #3
_080D85CC:
strb r2, [r0]
subs r0, #1
cmp r0, r1
bge _080D85CC
movs r7, #4
mov r5, sb
ldr r0, [r5]
ldr r0, [r0, #0x18]
movs r1, #0
movs r2, #0x14
bl memset
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, #0x11]
bl sub_080DE140
ldr r4, _080D8660
ldr r0, [r5]
ldr r0, [r0]
ldrb r3, [r0, #0x11]
lsls r2, r3, #6
adds r0, r2, r4
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x3c
adds r1, r2, r1
ldr r1, [r1]
adds r4, #0x38
adds r2, r2, r4
ldr r2, [r2]
bl sub_080DA8D8
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r2, _080D8664
lsls r0, r5, #4
adds r0, r0, r5
lsls r0, r0, #2
adds r3, r0, r2
movs r1, #0x78
strh r1, [r3, #0x24]
adds r2, #0x1c
adds r0, r0, r2
ldr r1, _080D8668
str r1, [r0]
ldr r0, _080D866C
mov r4, sl
add r4, r8
lsls r4, r4, #3
adds r4, r4, r0
strh r5, [r4, #0xc]
ldr r1, _080D8670
ldr r0, _080D8674
ldrb r0, [r0]
adds r0, r0, r1
strb r5, [r0]
mov r1, sb
ldr r0, [r1]
ldr r0, [r0]
ldrb r0, [r0, #0x11]
bl sub_080DC150
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0
bl sub_080DC34C
strh r7, [r4, #8]
bl _080D98F0
.align 2, 0
_080D865C: .4byte 0x02024188
_080D8660: .4byte 0x02039AA0
_080D8664: .4byte 0x020205AC
_080D8668: .4byte 0x080D9925
_080D866C: .4byte 0x03005B60
_080D8670: .4byte 0x02023E88
_080D8674: .4byte 0x02023EAF
_080D8678:
mov r2, r8
lsls r0, r2, #2
add r0, r8
lsls r0, r0, #3
adds r2, r0, r4
ldrb r5, [r2, #0xc]
ldr r1, _080D86BC
lsls r0, r5, #4
adds r0, r0, r5
lsls r0, r0, #2
adds r1, #0x1c
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _080D86C0
cmp r1, r0
beq _080D869C
bl _080D98F0
_080D869C:
mov r3, sb
ldr r0, [r3]
ldr r1, [r0, #0x14]
lsls r0, r6, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080D86B4
bl _080D98F0
_080D86B4:
movs r0, #5
strh r0, [r2, #8]
bl _080D98F0
.align 2, 0
_080D86BC: .4byte 0x020205AC
_080D86C0: .4byte 0x08007141
_080D86C4:
mov r5, sb
ldr r0, [r5]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r5, r0, #2
adds r1, r5, r1
ldrb r1, [r1, #0xc]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D86EE
mov r1, r8
lsls r0, r1, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x21
strh r1, [r0, #8]
bl _080D98F0
_080D86EE:
bl sub_080DB000
ldr r0, _080D8720
lsls r1, r6, #6
ldr r2, _080D8724
adds r1, r1, r2
bl StringCopy
mov r2, sb
ldr r0, [r2]
ldr r0, [r0, #4]
adds r3, r5, r0
ldrh r1, [r3, #6]
movs r0, #0xb1
lsls r0, r0, #1
cmp r1, r0
bhi _080D8730
ldr r0, _080D8728
lsls r1, r1, #3
ldr r2, _080D872C
adds r1, r1, r2
bl StringCopy
b _080D8740
.align 2, 0
_080D8720: .4byte 0x02021C40
_080D8724: .4byte 0x02039AA2
_080D8728: .4byte 0x02021C54
_080D872C: .4byte 0x082EACC4
_080D8730:
ldr r0, _080D8768
ldr r2, _080D876C
ldrb r1, [r3, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl StringCopy
_080D8740:
ldr r4, _080D8770
ldr r1, _080D8774
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D8778
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #6
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D8768: .4byte 0x02021C54
_080D876C: .4byte 0x08560E80
_080D8770: .4byte 0x02021C7C
_080D8774: .4byte 0x0824B346
_080D8778: .4byte 0x03005B60
_080D877C:
bl Contest_RunTextPrinters
adds r1, r0, #0
cmp r1, #0
beq _080D878A
bl _080D98F0
_080D878A:
ldr r0, _080D87A8
ldr r0, [r0]
ldr r0, [r0]
adds r0, #0x5a
strb r1, [r0]
ldr r1, _080D87AC
mov r4, r8
lsls r0, r4, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #7
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D87A8: .4byte 0x02039BD4
_080D87AC: .4byte 0x03005B60
_080D87B0:
mov r5, sb
ldr r1, [r5]
ldr r0, [r1]
ldrb r2, [r0, #0x11]
ldr r1, [r1, #4]
lsls r0, r2, #3
subs r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0, #6]
bl SanitizeMove
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, #0x11]
bl sub_080DDFC8
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, #0x11]
bl sub_080DE140
adds r0, r4, #0
bl SelectContestMoveBankTarget
adds r0, r4, #0
bl DoMoveAnim
ldr r1, _080D8804
mov r2, r8
lsls r0, r2, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #8
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D8804: .4byte 0x03005B60
_080D8808:
ldr r0, _080D8848
ldr r0, [r0]
bl _call_via_r0
ldr r0, _080D884C
ldrb r4, [r0]
cmp r4, #0
beq _080D881C
bl _080D98F0
_080D881C:
adds r0, r6, #0
bl sub_080DE114
ldr r0, _080D8850
ldr r1, [r0]
ldr r0, [r1]
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
beq _080D8858
ldr r0, _080D8854
mov r3, r8
lsls r1, r3, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
strh r4, [r1, #0x1c]
movs r0, #9
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8848: .4byte 0x02038098
_080D884C: .4byte 0x0203809D
_080D8850: .4byte 0x02039BD4
_080D8854: .4byte 0x03005B60
_080D8858:
ldr r1, [r1, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _080D8872
adds r0, r6, #0
bl sub_080DBDD8
_080D8872:
bl sub_080DD890
ldr r0, _080D8880
mov r4, r8
lsls r1, r4, #2
b _080D898A
.align 2, 0
_080D8880: .4byte 0x03005B60
_080D8884:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r2, r0, r4
ldrh r0, [r2, #0x1c]
adds r1, r0, #1
strh r1, [r2, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1e
bgt _080D88A0
bl _080D98F0
_080D88A0:
movs r0, #0
strh r0, [r2, #0x1c]
movs r0, #7
strh r0, [r2, #8]
bl _080D98F0
_080D88AC:
mov r0, r8
lsls r2, r0, #2
adds r0, r2, r0
lsls r0, r0, #3
adds r7, r0, r4
movs r0, #0
strh r0, [r7, #0xa]
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #4]
mov ip, r0
lsls r1, r6, #3
subs r0, r1, r6
lsls r5, r0, #2
mov r0, ip
adds r3, r5, r0
ldrb r0, [r3, #0x13]
mov sl, r2
str r1, [sp, #4]
cmp r0, #0xff
beq _080D88F2
ldrb r1, [r3, #0x13]
adds r0, r6, #0
bl sub_080DCBC0
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #4]
adds r0, r5, r0
movs r1, #0xff
strb r1, [r0, #0x13]
movs r0, #0x18
strh r0, [r7, #8]
bl _080D98F0
_080D88F2:
ldrb r0, [r3, #0x14]
cmp r0, #0xff
beq _080D8970
movs r7, #0
cmp r7, r6
beq _080D8906
mov r2, ip
ldrb r0, [r2, #0x13]
cmp r0, #0xff
bne _080D8924
_080D8906:
adds r7, #1
cmp r7, #3
bgt _080D8924
cmp r7, r6
beq _080D8906
mov r3, sb
ldr r0, [r3]
ldr r1, [r0, #4]
lsls r0, r7, #3
subs r0, r0, r7
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #0x13]
cmp r0, #0xff
beq _080D8906
_080D8924:
cmp r7, #4
bne _080D8960
mov r4, sb
ldr r0, [r4]
ldr r0, [r0, #4]
ldr r5, [sp, #4]
subs r4, r5, r6
lsls r4, r4, #2
adds r0, r4, r0
ldrb r1, [r0, #0x14]
adds r0, r6, #0
bl sub_080DCBC0
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #4]
adds r4, r4, r0
movs r0, #0xff
strb r0, [r4, #0x14]
ldr r1, _080D895C
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x18
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D895C: .4byte 0x03005B60
_080D8960:
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x30
strh r1, [r0, #8]
bl _080D98F0
_080D8970:
movs r0, #0x30
strh r0, [r7, #8]
bl _080D98F0
_080D8978:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D8984
bl _080D98F0
_080D8984:
ldr r0, _080D8998
mov r2, r8
lsls r1, r2, #2
_080D898A:
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x17
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8998: .4byte 0x03005B60
_080D899C:
mov r3, sb
ldr r0, [r3]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #0x11]
movs r3, #3
ands r3, r0
cmp r3, #1
bne _080D89BC
movs r0, #5
bl sub_080DCE84
b _080D89D2
_080D89BC:
cmp r3, #2
bne _080D89C8
movs r0, #6
bl sub_080DCE84
b _080D89D2
_080D89C8:
cmp r3, #3
bne _080D8A00
movs r0, #7
bl sub_080DCE84
_080D89D2:
ldr r0, _080D89E8
mov r2, r8
lsls r1, r2, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x31
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D89E8: .4byte 0x03005B60
_080D89EC:
mov r3, sb
ldr r0, [r3]
ldr r0, [r0]
ldrb r1, [r0, #6]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080D8A00
bl _080D98F0
_080D8A00:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x2f
strh r1, [r0, #8]
bl _080D98F0
_080D8A12:
movs r0, #1
bl sub_080DD76C
ldr r0, _080D8A2C
mov r2, r8
lsls r1, r2, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0xc
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8A2C: .4byte 0x03005B60
_080D8A30:
mov r3, sb
ldr r0, [r3]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
movs r4, #2
ldrsh r1, [r0, r4]
movs r0, #0
adds r2, r6, #0
bl sub_080DB78C
ldr r1, _080D8A60
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0xd
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D8A60: .4byte 0x03005B60
_080D8A64:
mov r0, sb
ldr r1, [r0]
ldr r0, [r1]
ldrb r0, [r0, #0x11]
ldr r1, [r1, #0x14]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080D8A80
bl _080D98F0
_080D8A80:
mov r1, r8
lsls r0, r1, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x23
strh r1, [r0, #8]
bl _080D98F0
_080D8A92:
mov r2, sb
ldr r0, [r2]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x10]
movs r0, #0x30
ands r0, r1
cmp r0, #0x10
bne _080D8AB0
movs r0, #8
bl sub_080DCE84
_080D8AB0:
ldr r0, _080D8AC4
mov r3, r8
lsls r1, r3, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x24
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8AC4: .4byte 0x03005B60
_080D8AC8:
mov r5, sb
ldr r0, [r5]
ldr r0, [r0]
ldrb r1, [r0, #6]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080D8ADC
bl _080D98F0
_080D8ADC:
mov r1, r8
lsls r0, r1, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x25
strh r1, [r0, #8]
bl _080D98F0
_080D8AEE:
adds r0, r6, #0
movs r1, #1
bl sub_080DAD1C
lsls r0, r0, #0x18
cmp r0, #0
beq _080D8B18
ldr r1, _080D8B14
mov r2, r8
lsls r0, r2, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #0x1c]
movs r1, #0x26
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D8B14: .4byte 0x03005B60
_080D8B18:
ldr r0, _080D8B28
mov r3, r8
lsls r1, r3, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
b _080D8B4C
.align 2, 0
_080D8B28: .4byte 0x03005B60
_080D8B2C:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r1, r0, r4
ldrh r0, [r1, #0x1c]
adds r0, #1
strh r0, [r1, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
bgt _080D8B48
bl _080D98F0
_080D8B48:
movs r0, #0
strh r0, [r1, #0x1c]
_080D8B4C:
movs r0, #0x32
strh r0, [r1, #8]
bl _080D98F0
_080D8B54:
adds r0, r6, #0
bl sub_080DAEFC
lsls r0, r0, #0x18
cmp r0, #0
beq _080D8B66
movs r0, #0x63
bl PlaySE
_080D8B66:
ldr r0, _080D8B7C
mov r2, r8
lsls r1, r2, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x19
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8B7C: .4byte 0x03005B60
_080D8B80:
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0
strh r1, [r0, #0xa]
movs r1, #0x1a
strh r1, [r0, #8]
bl _080D98F0
_080D8B96:
movs r3, #0
movs r5, #0
str r5, [sp]
mov r0, r8
lsls r1, r0, #2
adds r0, r1, r0
lsls r0, r0, #3
adds r0, r0, r4
movs r2, #0xa
ldrsh r7, [r0, r2]
mov sl, r1
cmp r7, #3
bgt _080D8C10
ldr r5, _080D8BD4
ldr r2, _080D8BD8
_080D8BB4:
movs r3, #0
str r3, [sp]
adds r0, r3, #0
cmp r0, r6
beq _080D8BDC
ldrb r0, [r5]
cmp r0, r7
bne _080D8BDC
ldr r0, [r2]
ldr r0, [r0, #4]
ldrb r0, [r0, #0x13]
cmp r0, #0xff
beq _080D8BDC
movs r1, #1
str r1, [sp]
b _080D8C04
.align 2, 0
_080D8BD4: .4byte 0x02039BC6
_080D8BD8: .4byte 0x02039BD4
_080D8BDC:
adds r3, #1
cmp r3, #3
bgt _080D8C04
cmp r3, r6
beq _080D8BDC
adds r0, r3, r5
ldrb r0, [r0]
cmp r0, r7
bne _080D8BDC
ldr r0, [r2]
ldr r1, [r0, #4]
lsls r0, r3, #3
subs r0, r0, r3
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #0x13]
cmp r0, #0xff
beq _080D8BDC
movs r0, #1
str r0, [sp]
_080D8C04:
ldr r1, [sp]
cmp r1, #0
bne _080D8C1A
adds r7, #1
cmp r7, #3
ble _080D8BB4
_080D8C10:
ldr r2, [sp]
lsls r0, r2, #0x18
asrs r2, r0, #0x18
cmp r2, #0
beq _080D8C5C
_080D8C1A:
mov r5, sl
add r5, r8
lsls r5, r5, #3
adds r5, r5, r4
ldr r0, _080D8C58
adds r0, r3, r0
ldrb r0, [r0]
strh r0, [r5, #0xa]
lsls r0, r3, #0x18
lsrs r0, r0, #0x18
mov r4, sb
ldr r1, [r4]
ldr r1, [r1, #4]
lsls r4, r3, #3
subs r4, r4, r3
lsls r4, r4, #2
adds r1, r4, r1
ldrb r1, [r1, #0x13]
bl sub_080DCBC0
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #4]
adds r4, r4, r0
movs r0, #0xff
strb r0, [r4, #0x13]
movs r0, #0x1b
strh r0, [r5, #8]
bl _080D98F0
.align 2, 0
_080D8C58: .4byte 0x02039BC6
_080D8C5C:
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
strh r2, [r0, #0xa]
strh r2, [r0, #0x1c]
movs r1, #0x33
strh r1, [r0, #8]
bl sub_080DAFE8
bl _080D98F0
_080D8C74:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D8C80
bl _080D98F0
_080D8C80:
ldr r0, _080D8C94
mov r2, r8
lsls r1, r2, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x1c
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8C94: .4byte 0x03005B60
_080D8C98:
movs r7, #0
mov r3, r8
lsls r0, r3, #2
adds r1, r0, r3
lsls r1, r1, #3
adds r1, r1, r4
movs r4, #0xa
ldrsh r2, [r1, r4]
ldr r1, _080D8CF8
mov sl, r0
adds r5, r1, #0
ldrb r0, [r5]
cmp r2, r0
beq _080D8CC2
adds r1, r2, #0
adds r2, r5, #0
_080D8CB8:
adds r7, #1
adds r0, r7, r2
ldrb r0, [r0]
cmp r1, r0
bne _080D8CB8
_080D8CC2:
mov r1, sb
ldr r0, [r1]
ldr r1, [r0, #4]
lsls r0, r7, #3
subs r0, r0, r7
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0xe]
ldrh r0, [r0, #2]
adds r0, r0, r1
lsls r0, r0, #0x10
asrs r0, r0, #0x10
rsbs r1, r1, #0
lsls r2, r7, #0x18
lsrs r2, r2, #0x18
bl sub_080DB78C
ldr r1, _080D8CFC
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x1d
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D8CF8: .4byte 0x02039BC6
_080D8CFC: .4byte 0x03005B60
_080D8D00:
movs r7, #0
mov r2, r8
lsls r0, r2, #2
adds r1, r0, r2
lsls r1, r1, #3
adds r1, r1, r4
movs r5, #0xa
ldrsh r3, [r1, r5]
ldr r1, _080D8D50
mov sl, r0
adds r5, r1, #0
ldrb r0, [r5]
cmp r3, r0
beq _080D8D26
_080D8D1C:
adds r7, #1
adds r0, r7, r1
ldrb r0, [r0]
cmp r3, r0
bne _080D8D1C
_080D8D26:
mov r1, sb
ldr r0, [r1]
ldr r1, [r0, #0x14]
lsls r0, r7, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080D8D3E
bl _080D98F0
_080D8D3E:
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x27
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D8D50: .4byte 0x02039BC6
_080D8D54:
movs r7, #0
mov r2, r8
lsls r0, r2, #2
adds r1, r0, r2
lsls r1, r1, #3
adds r1, r1, r4
movs r3, #0xa
ldrsh r2, [r1, r3]
ldr r1, _080D8DA4
mov sl, r0
adds r5, r1, #0
ldrb r4, [r5]
cmp r2, r4
beq _080D8D7E
adds r1, r2, #0
adds r2, r5, #0
_080D8D74:
adds r7, #1
adds r0, r7, r2
ldrb r0, [r0]
cmp r1, r0
bne _080D8D74
_080D8D7E:
lsls r0, r7, #0x18
lsrs r0, r0, #0x18
movs r1, #1
bl sub_080DAD1C
lsls r0, r0, #0x18
cmp r0, #0
beq _080D8DAC
ldr r1, _080D8DA8
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #0x1c]
movs r1, #0x28
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D8DA4: .4byte 0x02039BC6
_080D8DA8: .4byte 0x03005B60
_080D8DAC:
ldr r0, _080D8DB8
mov r1, sl
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
b _080D8DDC
.align 2, 0
_080D8DB8: .4byte 0x03005B60
_080D8DBC:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r1, r0, r4
ldrh r0, [r1, #0x1c]
adds r0, #1
strh r0, [r1, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
bgt _080D8DD8
bl _080D98F0
_080D8DD8:
movs r0, #0
strh r0, [r1, #0x1c]
_080D8DDC:
movs r0, #0x1e
strh r0, [r1, #8]
bl _080D98F0
_080D8DE4:
movs r7, #0
ldr r2, _080D8E30
ldrb r3, [r2]
mov r0, r8
lsls r1, r0, #2
adds r0, r1, r0
lsls r0, r0, #3
adds r4, r0, r4
movs r5, #0xa
ldrsh r0, [r4, r5]
mov sl, r1
adds r5, r2, #0
cmp r3, r0
beq _080D8E16
adds r3, r5, #0
adds r2, r4, #0
_080D8E04:
adds r7, #1
cmp r7, #3
bgt _080D8E16
adds r0, r7, r3
ldrb r1, [r0]
movs r4, #0xa
ldrsh r0, [r2, r4]
cmp r1, r0
bne _080D8E04
_080D8E16:
lsls r4, r7, #0x18
lsrs r0, r4, #0x18
bl sub_080DAEFC
lsls r0, r0, #0x18
adds r6, r4, #0
cmp r0, #0
beq _080D8E34
movs r0, #0x63
bl PlaySE
b _080D8E3A
.align 2, 0
_080D8E30: .4byte 0x02039BC6
_080D8E34:
movs r0, #0x64
bl PlaySE
_080D8E3A:
ldr r5, _080D8E80
ldr r0, [r5]
ldr r1, [r0, #4]
lsls r0, r7, #3
subs r0, r0, r7
lsls r4, r0, #2
adds r1, r4, r1
ldrb r1, [r1, #0x15]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080D8E68
lsrs r0, r6, #0x18
bl sub_080DBDD8
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x15]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x15]
_080D8E68:
ldr r0, _080D8E84
mov r1, sl
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0xa]
adds r0, #1
strh r0, [r1, #0xa]
movs r0, #0x1a
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8E80: .4byte 0x02039BD4
_080D8E84: .4byte 0x03005B60
_080D8E88:
mov r5, r8
lsls r2, r5, #2
adds r0, r2, r5
lsls r0, r0, #3
adds r4, r0, r4
ldrh r0, [r4, #0x1c]
adds r1, r0, #1
strh r1, [r4, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov sl, r2
cmp r0, #9
bgt _080D8EA6
bl _080D98F0
_080D8EA6:
movs r0, #0
strh r0, [r4, #0x1c]
mov r1, sb
ldr r0, [r1]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r2, r0, r1
ldrb r1, [r2, #0xc]
movs r0, #6
ands r0, r1
cmp r0, #0
bne _080D8ECC
ldrb r1, [r2, #0x11]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080D8EEE
_080D8ECC:
bl sub_080DB000
ldr r0, _080D8F00
lsls r1, r6, #6
ldr r2, _080D8F04
adds r1, r1, r2
bl StringCopy
ldr r4, _080D8F08
ldr r1, _080D8F0C
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
_080D8EEE:
ldr r0, _080D8F10
mov r1, sl
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x34
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8F00: .4byte 0x02021C40
_080D8F04: .4byte 0x02039AA2
_080D8F08: .4byte 0x02021C7C
_080D8F0C: .4byte 0x0824C04A
_080D8F10: .4byte 0x03005B60
_080D8F14:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D8F20
bl _080D98F0
_080D8F20:
ldr r0, _080D8F4C
ldr r0, [r0]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x15]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _080D8F54
ldr r0, _080D8F50
mov r2, r8
lsls r1, r2, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x11
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8F4C: .4byte 0x02039BD4
_080D8F50: .4byte 0x03005B60
_080D8F54:
ldr r0, _080D8F68
mov r3, r8
lsls r1, r3, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0xe
strh r0, [r1, #8]
bl _080D98F0
.align 2, 0
_080D8F68: .4byte 0x03005B60
_080D8F6C:
mov r4, sb
ldr r0, [r4]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #0x16]
lsls r4, r0, #0x18
lsrs r5, r4, #0x18
cmp r5, #0
beq _080D8FD4
bl sub_080DB000
asrs r0, r4, #0x18
cmp r0, #1
bne _080D8F98
ldr r0, _080D8F94
b _080D8F9E
.align 2, 0
_080D8F94: .4byte 0x0824BCF2
_080D8F98:
cmp r0, #2
bne _080D8FAC
ldr r0, _080D8FA8
_080D8F9E:
movs r1, #1
bl Contest_StartTextPrinter
b _080D8FB4
.align 2, 0
_080D8FA8: .4byte 0x0824BD18
_080D8FAC:
ldr r0, _080D8FCC
movs r1, #1
bl Contest_StartTextPrinter
_080D8FB4:
movs r0, #3
bl sub_080DCE84
ldr r1, _080D8FD0
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #0x1c]
b _080D900A
.align 2, 0
_080D8FCC: .4byte 0x0824BD3E
_080D8FD0: .4byte 0x03005B60
_080D8FD4:
bl sub_080DB000
ldr r0, _080D9014
lsls r1, r6, #6
ldr r2, _080D9018
adds r1, r1, r2
bl StringCopy
ldr r4, _080D901C
ldr r1, _080D9020
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
movs r0, #2
bl sub_080DCE84
ldr r1, _080D9024
mov r2, r8
lsls r0, r2, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
strh r5, [r0, #0x1c]
_080D900A:
movs r1, #0x2d
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D9014: .4byte 0x02021C40
_080D9018: .4byte 0x02039AA2
_080D901C: .4byte 0x02021C7C
_080D9020: .4byte 0x0824BCCF
_080D9024: .4byte 0x03005B60
_080D9028:
mov r3, sb
ldr r0, [r3]
ldr r2, [r0]
ldrb r1, [r2, #6]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080D903C
bl _080D98F0
_080D903C:
ldrb r0, [r2, #0x11]
bl sub_080DC118
ldr r1, _080D9058
mov r4, r8
lsls r0, r4, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0xf
strh r1, [r0, #8]
bl _080D98F0
.align 2, 0
_080D9058: .4byte 0x03005B60
_080D905C:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D9068
bl _080D98F0
_080D9068:
ldr r1, _080D90C4
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r4, r0, r1
ldrh r0, [r4, #0x1c]
adds r0, #1
strh r0, [r4, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x32
bgt _080D9086
bl _080D98F0
_080D9086:
ldr r7, _080D90C8
ldr r0, [r7]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r5, r0, #2
adds r2, r5, r1
ldrb r1, [r2, #0x15]
movs r0, #0x10
mov r8, r0
ands r0, r1
cmp r0, #0
bne _080D90BA
movs r1, #2
ldrsh r0, [r2, r1]
ldrb r1, [r2, #0x17]
adds r2, r6, #0
bl sub_080DB78C
ldr r0, [r7]
ldr r1, [r0, #4]
adds r1, r5, r1
ldrh r0, [r1, #2]
ldrb r2, [r1, #0x17]
adds r0, r0, r2
strh r0, [r1, #2]
_080D90BA:
mov r3, r8
strh r3, [r4, #8]
bl _080D98F0
.align 2, 0
_080D90C4: .4byte 0x03005B60
_080D90C8: .4byte 0x02039BD4
_080D90CC:
mov r5, sb
ldr r0, [r5]
ldr r1, [r0, #0x14]
lsls r0, r6, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
movs r0, #4
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _080D90E8
bl _080D98F0
_080D90E8:
mov r2, r8
lsls r0, r2, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
strh r1, [r0, #0x1c]
movs r1, #0x11
strh r1, [r0, #8]
bl _080D98F0
_080D90FC:
mov r3, sb
ldr r0, [r3]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x15]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D9164
bl sub_080DB000
ldr r0, _080D9150
lsls r1, r6, #6
ldr r2, _080D9154
adds r1, r1, r2
bl StringCopy
ldr r4, _080D9158
ldr r1, _080D915C
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r0, _080D9160
mov r5, r8
lsls r4, r5, #2
add r4, r8
lsls r4, r4, #3
adds r4, r4, r0
movs r0, #0
strh r0, [r4, #0x1c]
bl sub_080DCE84
movs r0, #0x2e
strh r0, [r4, #8]
b _080D98F0
.align 2, 0
_080D9150: .4byte 0x02021C40
_080D9154: .4byte 0x02039AA2
_080D9158: .4byte 0x02021C7C
_080D915C: .4byte 0x0824BFBE
_080D9160: .4byte 0x03005B60
_080D9164:
mov r1, r8
lsls r0, r1, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x29
strh r1, [r0, #8]
b _080D98F0
_080D9174:
mov r2, sb
ldr r0, [r2]
ldr r0, [r0]
ldrb r1, [r0, #6]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080D9186
b _080D98F0
_080D9186:
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x13
strh r1, [r0, #8]
b _080D98F0
_080D9196:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D91A0
b _080D98F0
_080D91A0:
ldr r5, _080D91DC
ldr r0, [r5]
ldr r1, [r0, #4]
lsls r4, r6, #3
subs r4, r4, r6
lsls r4, r4, #2
adds r1, r4, r1
movs r2, #2
ldrsh r0, [r1, r2]
ldrb r1, [r1, #0x18]
rsbs r1, r1, #0
adds r2, r6, #0
bl sub_080DB78C
ldr r0, [r5]
ldr r0, [r0, #4]
adds r4, r4, r0
ldrb r1, [r4, #0x18]
ldrh r0, [r4, #2]
subs r0, r0, r1
strh r0, [r4, #2]
ldr r1, _080D91E0
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x12
strh r1, [r0, #8]
b _080D98F0
.align 2, 0
_080D91DC: .4byte 0x02039BD4
_080D91E0: .4byte 0x03005B60
_080D91E4:
bl ContestDebugDoPrint
ldr r0, _080D921C
ldr r0, [r0]
ldr r1, [r0, #0x14]
lsls r0, r6, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
movs r0, #4
ands r0, r1
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
beq _080D9202
b _080D98F0
_080D9202:
ldr r0, _080D9220
mov r5, r8
lsls r4, r5, #2
add r4, r8
lsls r4, r4, #3
adds r4, r4, r0
strh r3, [r4, #0x1c]
bl sub_080DB000
movs r0, #0x29
strh r0, [r4, #8]
b _080D98F0
.align 2, 0
_080D921C: .4byte 0x02039BD4
_080D9220: .4byte 0x03005B60
_080D9224:
mov r1, sb
ldr r0, [r1]
ldr r2, [r0, #0x10]
ldrb r1, [r2, #1]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D924E
ldr r0, [r2]
lsls r0, r0, #0x14
lsrs r0, r0, #0x1d
cmp r6, r0
beq _080D924E
mov r2, r8
lsls r0, r2, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0x39
strh r1, [r0, #8]
b _080D98F0
_080D924E:
mov r3, sb
ldr r1, [r3]
ldr r0, [r1, #0x10]
ldrb r0, [r0]
str r0, [sp]
ldr r1, [r1, #4]
lsls r2, r6, #3
subs r0, r2, r6
lsls r0, r0, #2
adds r5, r0, r1
ldrb r1, [r5, #0x11]
movs r0, #0x10
ands r0, r1
str r2, [sp, #4]
cmp r0, #0
beq _080D928C
movs r4, #1
str r4, [sp]
ldr r0, _080D9284
ldrh r1, [r5, #6]
lsls r1, r1, #3
ldr r2, _080D9288
adds r1, r1, r2
bl StringCopy
b _080D92A6
.align 2, 0
_080D9284: .4byte 0x02021C68
_080D9288: .4byte 0x082EACC4
_080D928C:
ldr r0, _080D930C
ldr r3, _080D9310
ldr r2, _080D9314
ldrh r1, [r5, #6]
lsls r1, r1, #3
adds r1, r1, r2
ldrb r1, [r1, #1]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1b
adds r1, r1, r3
ldr r1, [r1]
bl StringCopy
_080D92A6:
ldr r5, [sp]
lsls r0, r5, #0x18
cmp r0, #0
ble _080D92CA
ldr r0, _080D9318
ldr r0, [r0]
ldr r1, [r0, #4]
ldr r2, [sp, #4]
subs r0, r2, r6
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x15]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D92CA
movs r3, #0
str r3, [sp]
_080D92CA:
bl sub_080DB000
ldr r0, _080D931C
lsls r1, r6, #6
ldr r2, _080D9320
adds r1, r1, r2
bl StringCopy
ldr r4, _080D9318
ldr r0, [r4]
ldr r1, [r0]
ldrb r0, [r1, #0x13]
ldr r5, [sp]
lsls r2, r5, #0x18
asrs r3, r2, #0x18
adds r0, r3, r0
strb r0, [r1, #0x13]
ldr r0, [r4]
ldr r1, [r0]
movs r0, #0x13
ldrsb r0, [r1, r0]
adds r5, r2, #0
cmp r0, #0
bge _080D92FE
movs r0, #0
strb r0, [r1, #0x13]
_080D92FE:
cmp r3, #0
bne _080D9328
ldr r0, _080D9324
mov r2, r8
lsls r1, r2, #2
b _080D9748
.align 2, 0
_080D930C: .4byte 0x02021C68
_080D9310: .4byte 0x08560E6C
_080D9314: .4byte 0x08565FCC
_080D9318: .4byte 0x02039BD4
_080D931C: .4byte 0x02021C40
_080D9320: .4byte 0x02039AA2
_080D9324: .4byte 0x03005B60
_080D9328:
cmp r3, #0
bge _080D9340
ldr r0, _080D9338
ldr r1, _080D933C
bl StringExpandPlaceholders
b _080D936C
.align 2, 0
_080D9338: .4byte 0x02021C7C
_080D933C: .4byte 0x0824C008
_080D9340:
cmp r3, #0
ble _080D9364
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bgt _080D9364
ldr r0, _080D935C
ldr r1, _080D9360
bl StringExpandPlaceholders
b _080D936C
.align 2, 0
_080D935C: .4byte 0x02021C7C
_080D9360: .4byte 0x0824BFE6
_080D9364:
ldr r0, _080D9390
ldr r1, _080D9394
bl StringExpandPlaceholders
_080D936C:
ldr r0, _080D9390
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D9398
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r1, r0, r1
movs r0, #0
strh r0, [r1, #0x1c]
strh r0, [r1, #0x1e]
cmp r5, #0
bge _080D939C
movs r0, #0x35
strh r0, [r1, #8]
b _080D98F0
.align 2, 0
_080D9390: .4byte 0x02021C7C
_080D9394: .4byte 0x0824C029
_080D9398: .4byte 0x03005B60
_080D939C:
movs r0, #0x36
strh r0, [r1, #8]
b _080D98F0
_080D93A2:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r4, r0, r4
movs r0, #0x1c
ldrsh r3, [r4, r0]
cmp r3, #1
beq _080D93E0
cmp r3, #1
bgt _080D93BE
cmp r3, #0
beq _080D93C8
b _080D98F0
_080D93BE:
cmp r3, #2
beq _080D9404
cmp r3, #3
beq _080D943E
b _080D98F0
_080D93C8:
movs r0, #1
rsbs r0, r0, #0
movs r1, #1
bl sub_080DD634
ldr r0, _080D93DC
bl PlayFanfare
b _080D9436
.align 2, 0
_080D93DC: .4byte 0x00000187
_080D93E0:
mov r1, sb
ldr r0, [r1]
ldr r0, [r0]
ldrb r0, [r0, #7]
ands r3, r0
cmp r3, #0
beq _080D93F0
b _080D98F0
_080D93F0:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D93FA
b _080D98F0
_080D93FA:
movs r0, #1
rsbs r0, r0, #0
bl ShowAndUpdateApplauseMeter
b _080D9436
_080D9404:
mov r2, sb
ldr r0, [r2]
ldr r0, [r0]
ldrb r1, [r0, #6]
movs r0, #0x20
ands r0, r1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
beq _080D941A
b _080D98F0
_080D941A:
ldrh r0, [r4, #0x1e]
adds r1, r0, #1
strh r1, [r4, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1d
bgt _080D942A
b _080D98F0
_080D942A:
strh r2, [r4, #0x1e]
movs r1, #1
rsbs r1, r1, #0
adds r0, r1, #0
bl sub_080DD634
_080D9436:
ldrh r0, [r4, #0x1c]
adds r0, #1
strh r0, [r4, #0x1c]
b _080D98F0
_080D943E:
ldr r0, _080D945C
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _080D9450
b _080D98F0
_080D9450:
strh r0, [r4, #0x1c]
strh r0, [r4, #0x1e]
movs r0, #0x2b
strh r0, [r4, #8]
b _080D98F0
.align 2, 0
_080D945C: .4byte 0x02037C74
_080D9460:
mov r3, r8
lsls r1, r3, #2
adds r0, r1, r3
lsls r0, r0, #3
adds r0, r0, r4
movs r5, #0x1c
ldrsh r0, [r0, r5]
mov sl, r1
cmp r0, #4
bls _080D9476
b _080D98F0
_080D9476:
lsls r0, r0, #2
ldr r1, _080D9480
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080D9480: .4byte 0x080D9484
_080D9484: @ jump table
.4byte _080D9498 @ case 0
.4byte _080D94A8 @ case 1
.4byte _080D94CC @ case 2
.4byte _080D9536 @ case 3
.4byte _080D957C @ case 4
_080D9498:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D94A2
b _080D98F0
_080D94A2:
movs r0, #1
movs r1, #1
b _080D9560
_080D94A8:
mov r1, sb
ldr r0, [r1]
ldr r0, [r0]
ldrb r1, [r0, #7]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080D94BA
b _080D98F0
_080D94BA:
bl sub_080DD570
movs r0, #0xdf
bl PlaySE
movs r0, #1
bl ShowAndUpdateApplauseMeter
b _080D9564
_080D94CC:
mov r3, sb
ldr r2, [r3]
ldr r0, [r2]
ldrb r1, [r0, #6]
movs r0, #0x20
ands r0, r1
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
beq _080D94E2
b _080D98F0
_080D94E2:
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r5, r0, r4
ldrh r0, [r5, #0x1e]
adds r1, r0, #1
strh r1, [r5, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1d
bgt _080D94FA
b _080D98F0
_080D94FA:
strh r3, [r5, #0x1e]
ldr r0, [r2, #4]
lsls r4, r6, #3
subs r4, r4, r6
lsls r4, r4, #2
adds r0, r4, r0
movs r1, #2
ldrsh r0, [r0, r1]
ldr r1, [r2, #0x10]
ldrb r1, [r1, #2]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r2, r6, #0
bl sub_080DB78C
mov r2, sb
ldr r1, [r2]
ldr r0, [r1, #4]
adds r4, r4, r0
ldr r0, [r1, #0x10]
ldrb r0, [r0, #2]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r3, [r4, #2]
adds r0, r0, r3
strh r0, [r4, #2]
ldrh r0, [r5, #0x1c]
adds r0, #1
strh r0, [r5, #0x1c]
b _080D98F0
_080D9536:
mov r4, sb
ldr r2, [r4]
ldr r1, [r2, #0x14]
lsls r0, r6, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080D954C
b _080D98F0
_080D954C:
ldr r0, [r2]
ldrb r1, [r0, #6]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080D955A
b _080D98F0
_080D955A:
movs r1, #1
rsbs r1, r1, #0
movs r0, #1
_080D9560:
bl sub_080DD634
_080D9564:
ldr r0, _080D9578
mov r1, sl
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x1c]
adds r0, #1
strh r0, [r1, #0x1c]
b _080D98F0
.align 2, 0
_080D9578: .4byte 0x03005B60
_080D957C:
ldr r0, _080D95A0
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
beq _080D958E
b _080D98F0
_080D958E:
mov r0, sl
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
strh r3, [r0, #0x1c]
strh r3, [r0, #0x1e]
movs r1, #0x2b
strh r1, [r0, #8]
b _080D98F0
.align 2, 0
_080D95A0: .4byte 0x02037C74
_080D95A4:
mov r5, sb
ldr r0, [r5]
ldr r1, [r0, #0x14]
lsls r0, r6, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080D95BA
b _080D98F0
_080D95BA:
bl sub_080DB000
ldr r0, _080D95C8
mov r2, r8
lsls r1, r2, #2
b _080D9748
.align 2, 0
_080D95C8: .4byte 0x03005B60
_080D95CC:
bl sub_080DB000
ldr r0, _080D9630
ldr r5, _080D9634
ldr r1, [r5]
ldr r1, [r1, #0x10]
ldr r1, [r1]
lsls r1, r1, #0x14
lsrs r1, r1, #0x1d
lsls r1, r1, #6
ldr r4, _080D9638
adds r1, r1, r4
bl StringCopy
ldr r0, _080D963C
lsls r1, r6, #6
adds r1, r1, r4
bl StringCopy
ldr r0, _080D9640
ldr r1, [r5]
ldr r2, [r1, #4]
lsls r1, r6, #3
subs r1, r1, r6
lsls r1, r1, #2
adds r1, r1, r2
ldrh r1, [r1, #6]
lsls r1, r1, #3
ldr r2, _080D9644
adds r1, r1, r2
bl StringCopy
ldr r4, _080D9648
ldr r1, _080D964C
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D9650
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x3a
strh r1, [r0, #8]
b _080D98F0
.align 2, 0
_080D9630: .4byte 0x02021C68
_080D9634: .4byte 0x02039BD4
_080D9638: .4byte 0x02039AA2
_080D963C: .4byte 0x02021C40
_080D9640: .4byte 0x02021C54
_080D9644: .4byte 0x082EACC4
_080D9648: .4byte 0x02021C7C
_080D964C: .4byte 0x0824C091
_080D9650: .4byte 0x03005B60
_080D9654:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D965E
b _080D98F0
_080D965E:
bl sub_080DB000
ldr r4, _080D9688
ldr r1, _080D968C
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D9690
mov r4, r8
lsls r0, r4, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x3b
strh r1, [r0, #8]
b _080D98F0
.align 2, 0
_080D9688: .4byte 0x02021C7C
_080D968C: .4byte 0x0824C0B1
_080D9690: .4byte 0x03005B60
_080D9694:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D969E
b _080D98F0
_080D969E:
bl sub_080DB000
ldr r0, _080D96AC
mov r5, r8
lsls r1, r5, #2
b _080D9748
.align 2, 0
_080D96AC: .4byte 0x03005B60
_080D96B0:
mov r1, sb
ldr r0, [r1]
ldr r1, [r0, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r4, r0, #2
adds r2, r4, r1
ldrb r1, [r2, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080D96D0
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x15]
_080D96D0:
adds r0, r6, #0
bl sub_080DC118
ldr r0, _080D971C
lsls r1, r6, #6
ldr r2, _080D9720
adds r1, r1, r2
bl StringCopy
ldr r0, _080D9724
mov r2, sb
ldr r1, [r2]
ldr r1, [r1, #4]
adds r1, r4, r1
ldrh r1, [r1, #6]
lsls r1, r1, #3
ldr r2, _080D9728
adds r1, r1, r2
bl StringCopy
ldr r4, _080D972C
ldr r1, _080D9730
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D9734
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x22
strh r1, [r0, #8]
b _080D98F0
.align 2, 0
_080D971C: .4byte 0x02021C40
_080D9720: .4byte 0x02039AA2
_080D9724: .4byte 0x02021C54
_080D9728: .4byte 0x082EACC4
_080D972C: .4byte 0x02021C7C
_080D9730: .4byte 0x0824BEC1
_080D9734: .4byte 0x03005B60
_080D9738:
bl Contest_RunTextPrinters
cmp r0, #0
beq _080D9742
b _080D98F0
_080D9742:
ldr r0, _080D9754
mov r4, r8
lsls r1, r4, #2
_080D9748:
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x37
strh r0, [r1, #8]
b _080D98F0
.align 2, 0
_080D9754: .4byte 0x03005B60
_080D9758:
bl TryMoveApplauseMeterOffscreen
ldr r0, _080D9770
mov r5, r8
lsls r1, r5, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x38
strh r0, [r1, #8]
b _080D98F0
.align 2, 0
_080D9770: .4byte 0x03005B60
_080D9774:
mov r1, sb
ldr r0, [r1]
ldr r2, [r0]
ldrb r1, [r2, #6]
movs r0, #0x40
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _080D978A
b _080D98F0
_080D978A:
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #4
ble _080D9798
strb r1, [r2, #0x13]
bl UpdateApplauseMeter
_080D9798:
ldr r0, _080D97AC
mov r2, r8
lsls r1, r2, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0xa
strh r0, [r1, #8]
b _080D98F0
.align 2, 0
_080D97AC: .4byte 0x03005B60
_080D97B0:
mov r3, r8
lsls r2, r3, #2
add r2, r8
lsls r2, r2, #3
adds r2, r2, r4
ldrb r5, [r2, #0xc]
ldr r1, _080D97D4
lsls r0, r5, #4
adds r0, r0, r5
lsls r0, r0, #2
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _080D97D8
str r1, [r0]
movs r0, #0xb
strh r0, [r2, #8]
b _080D98F0
.align 2, 0
_080D97D4: .4byte 0x020205AC
_080D97D8: .4byte 0x080D9955
_080D97DC:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r4, r0, r4
ldrb r5, [r4, #0xc]
ldr r1, _080D9810
lsls r0, r5, #4
adds r0, r0, r5
lsls r0, r0, #2
adds r6, r0, r1
adds r0, r6, #0
adds r0, #0x3e
ldrb r0, [r0]
lsls r0, r0, #0x1d
cmp r0, #0
bge _080D98F0
adds r0, r6, #0
bl FreeSpriteOamMatrix
adds r0, r6, #0
bl DestroySprite
movs r0, #0x14
strh r0, [r4, #8]
b _080D98F0
.align 2, 0
_080D9810: .4byte 0x020205AC
_080D9814:
mov r1, r8
lsls r0, r1, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
movs r1, #0
strh r1, [r0, #0x1c]
movs r1, #0x15
strh r1, [r0, #8]
b _080D98F0
_080D9828:
bl sub_080DB000
ldr r0, _080D985C
lsls r1, r6, #6
ldr r2, _080D9860
adds r1, r1, r2
bl StringCopy
ldr r4, _080D9864
ldr r1, _080D9868
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D986C
mov r2, r8
lsls r0, r2, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x20
strh r1, [r0, #8]
b _080D98F0
.align 2, 0
_080D985C: .4byte 0x02021C40
_080D9860: .4byte 0x02039AA2
_080D9864: .4byte 0x02021C7C
_080D9868: .4byte 0x0824B354
_080D986C: .4byte 0x03005B60
_080D9870:
bl Contest_RunTextPrinters
cmp r0, #0
bne _080D98F0
ldr r0, _080D988C
mov r3, r8
lsls r1, r3, #2
add r1, r8
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x15
strh r0, [r1, #8]
b _080D98F0
.align 2, 0
_080D988C: .4byte 0x03005B60
_080D9890:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r1, r0, r4
ldrh r0, [r1, #0x1c]
adds r0, #1
strh r0, [r1, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1d
ble _080D98F0
movs r0, #0
strh r0, [r1, #0x1c]
movs r0, #0x16
strh r0, [r1, #8]
b _080D98F0
_080D98B2:
mov r1, sb
ldr r0, [r1]
ldr r1, [r0]
ldrb r0, [r1, #0x10]
adds r0, #1
movs r2, #0
strb r0, [r1, #0x10]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bne _080D98E4
mov r3, r8
lsls r0, r3, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
strh r2, [r0, #8]
strh r2, [r0, #0xa]
strh r2, [r0, #0xc]
ldr r1, _080D98E0
str r1, [r0]
b _080D98F0
.align 2, 0
_080D98E0: .4byte 0x080D9989
_080D98E4:
mov r5, r8
lsls r0, r5, #2
add r0, r8
lsls r0, r0, #3
adds r0, r0, r4
strh r2, [r0, #8]
_080D98F0:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_080D8334
thumb_func_start sub_080D9900
sub_080D9900: @ 0x080D9900
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080D9920
ldr r1, [r1]
ldr r3, [r1]
ldrb r2, [r3, #7]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r3, #7]
bl DestroyTask
pop {r0}
bx r0
.align 2, 0
_080D9920: .4byte 0x02039BD4
thumb_func_end sub_080D9900
thumb_func_start sub_080D9924
sub_080D9924: @ 0x080D9924
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #0x24]
movs r3, #0x24
ldrsh r2, [r1, r3]
cmp r2, #0
beq _080D9938
subs r0, #2
strh r0, [r1, #0x24]
b _080D994C
_080D9938:
ldrh r0, [r1, #0x2e]
adds r0, #1
strh r0, [r1, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1f
bne _080D994C
strh r2, [r1, #0x2e]
ldr r0, _080D9950
str r0, [r1, #0x1c]
_080D994C:
pop {r0}
bx r0
.align 2, 0
_080D9950: .4byte 0x08007141
thumb_func_end sub_080D9924
thumb_func_start sub_080D9954
sub_080D9954: @ 0x080D9954
push {lr}
adds r2, r0, #0
ldrh r0, [r2, #0x24]
subs r0, #6
strh r0, [r2, #0x24]
movs r1, #0x20
ldrsh r0, [r2, r1]
movs r3, #0x24
ldrsh r1, [r2, r3]
adds r0, r0, r1
movs r1, #0x20
rsbs r1, r1, #0
cmp r0, r1
bge _080D997E
ldr r0, _080D9984
str r0, [r2, #0x1c]
adds r2, #0x3e
ldrb r0, [r2]
movs r1, #4
orrs r0, r1
strb r0, [r2]
_080D997E:
pop {r0}
bx r0
.align 2, 0
_080D9984: .4byte 0x08007141
thumb_func_end sub_080D9954
thumb_func_start sub_080D9988
sub_080D9988: @ 0x080D9988
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D99AC
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r5, r1, r2
movs r1, #8
ldrsh r0, [r5, r1]
cmp r0, #1
beq _080D9A1E
cmp r0, #1
bgt _080D99B0
cmp r0, #0
beq _080D99B6
b _080D9A40
.align 2, 0
_080D99AC: .4byte 0x03005B60
_080D99B0:
cmp r0, #2
beq _080D9A38
b _080D9A40
_080D99B6:
ldr r0, _080D9A04
ldrb r1, [r0]
movs r6, #1
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _080D9A14
ldr r0, _080D9A08
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, #7]
movs r1, #4
orrs r0, r1
strb r0, [r2, #7]
bl sub_080DA094
lsls r0, r0, #0x18
cmp r0, #0
beq _080D99E4
bl RankContestants
bl sub_080DB17C
_080D99E4:
ldr r4, _080D9A0C
adds r0, r4, #0
movs r1, #0
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9A10
adds r1, r4, #0
bl SetTaskFuncWithFollowupFunc
bl ContestPrintLinkStandby
strh r6, [r5, #8]
b _080D9A40
.align 2, 0
_080D9A04: .4byte 0x02039BCA
_080D9A08: .4byte 0x02039BD4
_080D9A0C: .4byte 0x080FD4DD
_080D9A10: .4byte 0x080D9901
_080D9A14:
bl RankContestants
bl sub_080DB17C
b _080D9A2E
_080D9A1E:
ldr r0, _080D9A34
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #7]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _080D9A40
_080D9A2E:
movs r0, #2
strh r0, [r5, #8]
b _080D9A40
.align 2, 0
_080D9A34: .4byte 0x02039BD4
_080D9A38:
movs r0, #0
strh r0, [r5, #8]
ldr r0, _080D9A48
str r0, [r5]
_080D9A40:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080D9A48: .4byte 0x080D9A4D
thumb_func_end sub_080D9988
thumb_func_start sub_080D9A4C
sub_080D9A4C: @ 0x080D9A4C
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
movs r0, #0
bl sub_080DD76C
ldr r1, _080D9A74
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #8]
strh r1, [r0, #0xa]
ldr r1, _080D9A78
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D9A74: .4byte 0x03005B60
_080D9A78: .4byte 0x080D9A7D
thumb_func_end sub_080D9A4C
thumb_func_start sub_080D9A7C
sub_080D9A7C: @ 0x080D9A7C
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9AA0
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r4, r1, r2
movs r0, #8
ldrsh r5, [r4, r0]
cmp r5, #1
beq _080D9AC2
cmp r5, #1
bgt _080D9AA4
cmp r5, #0
beq _080D9AAA
b _080D9B02
.align 2, 0
_080D9AA0: .4byte 0x03005B60
_080D9AA4:
cmp r5, #2
beq _080D9AF4
b _080D9B02
_080D9AAA:
ldrh r0, [r4, #0xa]
adds r0, #1
strh r0, [r4, #0xa]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
ble _080D9B02
movs r0, #2
bl sub_080DDE00
strh r5, [r4, #0xa]
b _080D9AE6
_080D9AC2:
ldr r0, _080D9AF0
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #7]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _080D9B02
ldrh r0, [r4, #0xa]
adds r0, #1
strh r0, [r4, #0xa]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
ble _080D9B02
strh r1, [r4, #0xa]
_080D9AE6:
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
b _080D9B02
.align 2, 0
_080D9AF0: .4byte 0x02039BD4
_080D9AF4:
bl sub_080DBB10
movs r0, #0
strh r0, [r4, #8]
strh r0, [r4, #0xa]
ldr r0, _080D9B08
str r0, [r4]
_080D9B02:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D9B08: .4byte 0x080D9B0D
thumb_func_end sub_080D9A7C
thumb_func_start sub_080D9B0C
sub_080D9B0C: @ 0x080D9B0C
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
bl sub_080DBB28
lsls r0, r0, #0x18
cmp r0, #0
beq _080D9B2A
ldr r0, _080D9B30
lsls r1, r4, #2
adds r1, r1, r4
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D9B34
str r0, [r1]
_080D9B2A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D9B30: .4byte 0x03005B60
_080D9B34: .4byte 0x080D9B39
thumb_func_end sub_080D9B0C
thumb_func_start sub_080D9B38
sub_080D9B38: @ 0x080D9B38
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9B64
ldr r3, _080D9B68
ldr r1, _080D9B6C
str r2, [r1]
str r3, [r1, #4]
ldr r2, _080D9B70
str r2, [r1, #8]
ldr r1, [r1, #8]
ldr r2, _080D9B74
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
movs r0, #0
strh r0, [r1, #8]
movs r0, #2
strh r0, [r1, #0xa]
ldr r0, _080D9B78
str r0, [r1]
bx lr
.align 2, 0
_080D9B64: .4byte 0x0201A204
_080D9B68: .4byte 0x020373B4
_080D9B6C: .4byte 0x040000D4
_080D9B70: .4byte 0x84000100
_080D9B74: .4byte 0x03005B60
_080D9B78: .4byte 0x080D9B7D
thumb_func_end sub_080D9B38
thumb_func_start sub_080D9B7C
sub_080D9B7C: @ 0x080D9B7C
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9BB4
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _080D9BAE
movs r0, #0
strh r0, [r1, #8]
ldrh r0, [r1, #0xa]
subs r0, #1
strh r0, [r1, #0xa]
lsls r0, r0, #0x10
cmp r0, #0
bne _080D9BAE
ldr r0, _080D9BB8
str r0, [r1]
_080D9BAE:
pop {r0}
bx r0
.align 2, 0
_080D9BB4: .4byte 0x03005B60
_080D9BB8: .4byte 0x080D9BBD
thumb_func_end sub_080D9B7C
thumb_func_start sub_080D9BBC
sub_080D9BBC: @ 0x080D9BBC
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9C1C
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r6, r1, r2
movs r1, #8
ldrsh r0, [r6, r1]
cmp r0, #0
bne _080D9C38
ldr r0, _080D9C20
ldr r0, [r0]
ldr r5, _080D9C24
ldrb r1, [r5]
ldr r2, [r0, #4]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r4, [r0, #0x1a]
bl sub_080DB000
ldr r0, _080D9C28
ldrb r1, [r5]
lsls r1, r1, #6
ldr r2, _080D9C2C
adds r1, r1, r2
bl StringCopy
ldr r5, _080D9C30
ldr r0, _080D9C34
lsls r4, r4, #2
adds r4, r4, r0
ldr r1, [r4]
adds r0, r5, #0
bl StringExpandPlaceholders
adds r0, r5, #0
movs r1, #1
bl Contest_StartTextPrinter
ldrh r0, [r6, #8]
adds r0, #1
strh r0, [r6, #8]
b _080D9C4A
.align 2, 0
_080D9C1C: .4byte 0x03005B60
_080D9C20: .4byte 0x02039BD4
_080D9C24: .4byte 0x02039BC5
_080D9C28: .4byte 0x02021C40
_080D9C2C: .4byte 0x02039AA2
_080D9C30: .4byte 0x02021C7C
_080D9C34: .4byte 0x08560CF4
_080D9C38:
bl Contest_RunTextPrinters
cmp r0, #0
bne _080D9C4A
strh r0, [r6, #8]
ldr r0, _080D9C50
str r0, [r6]
bl ContestDebugDoPrint
_080D9C4A:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080D9C50: .4byte 0x080D9C55
thumb_func_end sub_080D9BBC
thumb_func_start sub_080D9C54
sub_080D9C54: @ 0x080D9C54
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9C84
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r4, r1, r2
ldrh r0, [r4, #8]
adds r1, r0, #1
strh r1, [r4, #8]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1d
ble _080D9C7E
movs r0, #0
strh r0, [r4, #8]
bl sub_080DBB10
ldr r0, _080D9C88
str r0, [r4]
_080D9C7E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D9C84: .4byte 0x03005B60
_080D9C88: .4byte 0x080D9C8D
thumb_func_end sub_080D9C54
thumb_func_start sub_080D9C8C
sub_080D9C8C: @ 0x080D9C8C
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
bl sub_080DBB28
lsls r0, r0, #0x18
cmp r0, #0
beq _080D9CAE
ldr r1, _080D9CB4
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #8]
ldr r1, _080D9CB8
str r1, [r0]
_080D9CAE:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D9CB4: .4byte 0x03005B60
_080D9CB8: .4byte 0x080D9CBD
thumb_func_end sub_080D9C8C
thumb_func_start sub_080D9CBC
sub_080D9CBC: @ 0x080D9CBC
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
bl sub_080DD988
ldr r1, _080D9CDC
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _080D9CE0
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D9CDC: .4byte 0x03005B60
_080D9CE0: .4byte 0x080DDB89
thumb_func_end sub_080D9CBC
thumb_func_start sub_080D9CE4
sub_080D9CE4: @ 0x080D9CE4
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
bl sub_080DDAB4
ldr r1, _080D9D04
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _080D9D08
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D9D04: .4byte 0x03005B60
_080D9D08: .4byte 0x080D9D0D
thumb_func_end sub_080D9CE4
thumb_func_start sub_080D9D0C
sub_080D9D0C: @ 0x080D9D0C
push {r4, r5, lr}
sub sp, #4
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r0, #8
bl GetGpuReg
mov r1, sp
strh r0, [r1]
movs r0, #0xc
bl GetGpuReg
mov r4, sp
adds r4, #2
strh r0, [r4]
mov r3, sp
ldrb r2, [r3]
movs r1, #4
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
strb r0, [r3]
ldrb r0, [r4]
ands r1, r0
strb r1, [r4]
mov r0, sp
ldrh r1, [r0]
movs r0, #8
bl SetGpuReg
ldrh r1, [r4]
movs r0, #0xc
bl SetGpuReg
ldr r2, _080D9D74
ldr r0, [r2]
ldr r1, [r0]
ldrb r0, [r1, #1]
adds r0, #1
strb r0, [r1, #1]
ldr r0, [r2]
ldr r0, [r0]
ldrb r0, [r0, #1]
cmp r0, #5
bne _080D9D80
ldr r0, _080D9D78
lsls r1, r5, #2
adds r1, r1, r5
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D9D7C
b _080D9D90
.align 2, 0
_080D9D74: .4byte 0x02039BD4
_080D9D78: .4byte 0x03005B60
_080D9D7C: .4byte 0x080D9DD9
_080D9D80:
bl StartMoveApplauseMeterOnscreen
ldr r0, _080D9D9C
lsls r1, r5, #2
adds r1, r1, r5
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D9DA0
_080D9D90:
str r0, [r1]
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D9D9C: .4byte 0x03005B60
_080D9DA0: .4byte 0x080D9DA5
thumb_func_end sub_080D9D0C
thumb_func_start sub_080D9DA4
sub_080D9DA4: @ 0x080D9DA4
push {lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _080D9DCC
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #6]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _080D9DC8
ldr r0, _080D9DD0
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D9DD4
str r0, [r1]
_080D9DC8:
pop {r0}
bx r0
.align 2, 0
_080D9DCC: .4byte 0x02039BD4
_080D9DD0: .4byte 0x03005B60
_080D9DD4: .4byte 0x080D7B69
thumb_func_end sub_080D9DA4
thumb_func_start sub_080D9DD8
sub_080D9DD8: @ 0x080D9DD8
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _080D9E34
movs r1, #0
strh r1, [r0]
ldr r0, _080D9E38
strh r1, [r0]
ldr r4, _080D9E3C
movs r3, #0
ldr r2, _080D9E40
movs r1, #3
_080D9DF0:
ldr r0, [r4]
ldr r0, [r0, #4]
adds r0, r3, r0
ldrh r0, [r0, #4]
strh r0, [r2]
adds r3, #0x1c
adds r2, #2
subs r1, #1
cmp r1, #0
bge _080D9DF0
bl sub_080DB47C
bl sub_080DB000
ldr r0, _080D9E44
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080D9E4C
ldr r0, _080D9E3C
ldr r2, [r0]
ldr r0, _080D9E48
ldrb r1, [r0]
ldr r2, [r2, #4]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r0, [r0, #8]
bl BravoTrainerPokemonProfile_BeforeInterview1
b _080D9E58
.align 2, 0
_080D9E34: .4byte 0x02022ACA
_080D9E38: .4byte 0x02022AD2
_080D9E3C: .4byte 0x02039BD4
_080D9E40: .4byte 0x02039BB0
_080D9E44: .4byte 0x02039BCA
_080D9E48: .4byte 0x02039BC5
_080D9E4C:
bl sub_080DE958
bl sub_080DEC00
bl ContestDebugPrintBitStrings
_080D9E58:
ldr r1, _080D9E8C
ldr r0, _080D9E90
ldr r0, [r0]
str r0, [r1]
ldr r4, _080D9E94
ldr r1, _080D9E98
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
ldr r1, _080D9E9C
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0
strh r1, [r0, #0xc]
ldr r1, _080D9EA0
str r1, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D9E8C: .4byte 0x03005E18
_080D9E90: .4byte 0x03005AE0
_080D9E94: .4byte 0x02021C7C
_080D9E98: .4byte 0x0824B36F
_080D9E9C: .4byte 0x03005B60
_080D9EA0: .4byte 0x080D9EA5
thumb_func_end sub_080D9DD8
thumb_func_start sub_080D9EA4
sub_080D9EA4: @ 0x080D9EA4
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
bl Contest_RunTextPrinters
adds r4, r0, #0
cmp r4, #0
bne _080D9EDA
bl sub_080DD988
ldr r0, _080D9EE0
strh r4, [r0]
ldr r1, _080D9EE4
movs r0, #0xa0
strh r0, [r1]
movs r0, #0x62
movs r1, #0
bl PlaySE12WithPanning
ldr r1, _080D9EE8
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
strh r4, [r0, #8]
ldr r1, _080D9EEC
str r1, [r0]
_080D9EDA:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D9EE0: .4byte 0x02022ACC
_080D9EE4: .4byte 0x02022ACE
_080D9EE8: .4byte 0x03005B60
_080D9EEC: .4byte 0x080D9EF1
thumb_func_end sub_080D9EA4
thumb_func_start sub_080D9EF0
sub_080D9EF0: @ 0x080D9EF0
push {lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldr r1, _080D9F24
ldrh r0, [r1]
subs r0, #7
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bge _080D9F08
movs r0, #0
strh r0, [r1]
_080D9F08:
ldrh r2, [r1]
cmp r2, #0
bne _080D9F1E
ldr r0, _080D9F28
lsls r1, r3, #2
adds r1, r1, r3
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080D9F2C
str r0, [r1]
strh r2, [r1, #8]
_080D9F1E:
pop {r0}
bx r0
.align 2, 0
_080D9F24: .4byte 0x02022ACE
_080D9F28: .4byte 0x03005B60
_080D9F2C: .4byte 0x080D9F31
thumb_func_end sub_080D9EF0
thumb_func_start sub_080D9F30
sub_080D9F30: @ 0x080D9F30
push {r4, lr}
sub sp, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9F64
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r4, r1, r2
ldrh r0, [r4, #8]
adds r1, r0, #1
strh r1, [r4, #8]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x31
ble _080D9F84
movs r0, #0
strh r0, [r4, #8]
ldr r0, _080D9F68
ldrb r0, [r0]
movs r1, #1
ands r1, r0
cmp r1, #0
beq _080D9F70
ldr r0, _080D9F6C
b _080D9F82
.align 2, 0
_080D9F64: .4byte 0x03005B60
_080D9F68: .4byte 0x02039BCA
_080D9F6C: .4byte 0x080D9F91
_080D9F70:
movs r0, #1
rsbs r0, r0, #0
str r1, [sp]
movs r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _080D9F8C
_080D9F82:
str r0, [r4]
_080D9F84:
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D9F8C: .4byte 0x080DA021
thumb_func_end sub_080D9F30
thumb_func_start sub_080D9F90
sub_080D9F90: @ 0x080D9F90
push {r4, r5, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r5, _080D9FCC
adds r0, r5, #0
movs r1, #0
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080D9FD0
adds r1, r5, #0
bl SetTaskFuncWithFollowupFunc
ldr r1, _080D9FD4
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _080D9FD8
str r1, [r0]
bl ContestPrintLinkStandby
movs r0, #0
bl sub_080DBBF4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080D9FCC: .4byte 0x080FD321
_080D9FD0: .4byte 0x080D9FDD
_080D9FD4: .4byte 0x03005B60
_080D9FD8: .4byte 0x080D6E95
thumb_func_end sub_080D9F90
thumb_func_start sub_080D9FDC
sub_080D9FDC: @ 0x080D9FDC
push {lr}
sub sp, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl DestroyTask
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r2, _080DA014
ldr r0, _080DA018
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #8]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldr r1, _080DA01C
str r1, [r0]
add sp, #4
pop {r0}
bx r0
.align 2, 0
_080DA014: .4byte 0x03005B60
_080DA018: .4byte 0x02039BD4
_080DA01C: .4byte 0x080DA021
thumb_func_end sub_080D9FDC
thumb_func_start sub_080DA020
sub_080DA020: @ 0x080DA020
push {lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _080DA054
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _080DA050
adds r0, r2, #0
bl DestroyTask
ldr r0, _080DA058
ldr r1, _080DA05C
str r1, [r0]
bl FreeAllWindowBuffers
bl FreeContestResources
bl FreeMonSpritesGfx
ldr r0, _080DA060
bl SetMainCallback2
_080DA050:
pop {r0}
bx r0
.align 2, 0
_080DA054: .4byte 0x02037C74
_080DA058: .4byte 0x03005B0C
_080DA05C: .4byte 0x080DA065
_080DA060: .4byte 0x08085A31
thumb_func_end sub_080DA020
thumb_func_start sub_080DA064
sub_080DA064: @ 0x080DA064
push {lr}
bl ScriptContext2_Disable
bl EnableBothScriptContexts
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080DA064
thumb_func_start TryPutPlayerLast
TryPutPlayerLast: @ 0x080DA074
push {lr}
ldr r0, _080DA08C
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080DA088
ldr r1, _080DA090
movs r0, #3
strb r0, [r1]
_080DA088:
pop {r0}
bx r0
.align 2, 0
_080DA08C: .4byte 0x02039BCA
_080DA090: .4byte 0x02039BC5
thumb_func_end TryPutPlayerLast
thumb_func_start sub_080DA094
sub_080DA094: @ 0x080DA094
push {lr}
ldr r0, _080DA0A8
ldr r1, _080DA0AC
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
beq _080DA0B0
movs r0, #0
b _080DA0B2
.align 2, 0
_080DA0A8: .4byte 0x02039BC5
_080DA0AC: .4byte 0x02039BCB
_080DA0B0:
movs r0, #1
_080DA0B2:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_080DA094
thumb_func_start sub_080DA0B8
sub_080DA0B8: @ 0x080DA0B8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r4, _080DA0F0
ldr r1, [r4]
mov r0, sp
bl StringCopy
mov r1, sp
movs r0, #0xff
strb r0, [r1, #5]
ldr r6, _080DA0F4
ldrb r0, [r6]
lsls r0, r0, #6
ldr r5, _080DA0F8
adds r0, r0, r5
bl StringCopy
ldr r0, [r4]
ldrb r0, [r0, #8]
cmp r0, #0
bne _080DA0FC
ldrb r0, [r6]
lsls r0, r0, #6
adds r0, r5, r0
movs r1, #0xd8
b _080DA104
.align 2, 0
_080DA0F0: .4byte 0x03005AF0
_080DA0F4: .4byte 0x02039BC5
_080DA0F8: .4byte 0x02039AAD
_080DA0FC:
ldrb r0, [r6]
lsls r0, r0, #6
adds r0, r5, r0
movs r1, #0xd9
_080DA104:
strb r1, [r0, #8]
ldr r6, _080DA260
ldr r5, _080DA264
ldrb r0, [r5]
lsls r0, r0, #6
adds r1, r6, #0
adds r1, #0x18
adds r0, r0, r1
movs r1, #0
str r1, [r0]
ldrb r0, [r5]
lsls r0, r0, #6
adds r0, r0, r6
adds r0, #0x2c
strb r1, [r0]
movs r0, #0x64
adds r4, r7, #0
muls r4, r0, r4
ldr r0, _080DA268
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0xb
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
strh r0, [r1]
adds r0, r4, #0
movs r1, #2
mov r2, sp
bl GetMonData
mov r0, sp
bl StringGetEnd10
ldrb r0, [r5]
lsls r0, r0, #6
adds r1, r6, #2
adds r0, r0, r1
mov r1, sp
bl StringCopy
adds r0, r4, #0
movs r1, #0x16
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
adds r1, #0x26
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x17
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
adds r1, #0x27
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x18
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
adds r1, #0x28
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x21
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
adds r1, #0x29
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x2f
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
adds r1, #0x2a
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x30
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
adds r1, #0x2b
strb r0, [r1]
adds r0, r4, #0
movs r1, #0xd
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
strh r0, [r1, #0x1e]
adds r0, r4, #0
movs r1, #0xe
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
strh r0, [r1, #0x20]
adds r0, r4, #0
movs r1, #0xf
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
strh r0, [r1, #0x22]
adds r0, r4, #0
movs r1, #0x10
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r1, r1, r6
strh r0, [r1, #0x24]
adds r0, r4, #0
movs r1, #0
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r2, r6, #0
adds r2, #0x38
adds r1, r1, r2
str r0, [r1]
adds r0, r4, #0
movs r1, #1
bl GetMonData
ldrb r1, [r5]
lsls r1, r1, #6
adds r2, r6, #0
adds r2, #0x3c
adds r1, r1, r2
str r0, [r1]
adds r0, r4, #0
movs r1, #0xc
bl GetMonData
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
mov ip, r2
ldrb r0, [r5]
lsls r0, r0, #6
adds r1, r0, r6
adds r0, r1, #0
adds r0, #0x26
ldrb r3, [r0]
adds r0, #1
ldrb r4, [r0]
adds r0, #1
ldrb r5, [r0]
adds r0, #1
ldrb r6, [r0]
adds r0, #1
ldrb r7, [r0]
cmp r2, #0xfe
bne _080DA26C
adds r3, #0x14
b _080DA2BA
.align 2, 0
_080DA260: .4byte 0x02039AA0
_080DA264: .4byte 0x02039BC5
_080DA268: .4byte 0x02024190
_080DA26C:
cmp r2, #0xff
bne _080DA27C
lsls r0, r4, #0x10
movs r1, #0xa0
lsls r1, r1, #0xd
adds r0, r0, r1
lsrs r4, r0, #0x10
b _080DA2BA
_080DA27C:
movs r0, #0x80
lsls r0, r0, #1
cmp r2, r0
bne _080DA290
lsls r0, r5, #0x10
movs r1, #0xa0
lsls r1, r1, #0xd
adds r0, r0, r1
lsrs r5, r0, #0x10
b _080DA2BA
_080DA290:
ldr r0, _080DA2A4
cmp r2, r0
bne _080DA2A8
lsls r0, r6, #0x10
movs r1, #0xa0
lsls r1, r1, #0xd
adds r0, r0, r1
lsrs r6, r0, #0x10
b _080DA2BA
.align 2, 0
_080DA2A4: .4byte 0x00000101
_080DA2A8:
movs r0, #0x81
lsls r0, r0, #1
cmp ip, r0
bne _080DA2BA
lsls r0, r7, #0x10
movs r1, #0xa0
lsls r1, r1, #0xd
adds r0, r0, r1
lsrs r7, r0, #0x10
_080DA2BA:
cmp r3, #0xff
ble _080DA2C0
movs r3, #0xff
_080DA2C0:
lsls r0, r4, #0x10
asrs r0, r0, #0x10
cmp r0, #0xff
ble _080DA2CA
movs r4, #0xff
_080DA2CA:
lsls r0, r5, #0x10
asrs r0, r0, #0x10
cmp r0, #0xff
ble _080DA2D4
movs r5, #0xff
_080DA2D4:
lsls r0, r6, #0x10
asrs r0, r0, #0x10
cmp r0, #0xff
ble _080DA2DE
movs r6, #0xff
_080DA2DE:
lsls r0, r7, #0x10
asrs r0, r0, #0x10
cmp r0, #0xff
ble _080DA2E8
movs r7, #0xff
_080DA2E8:
ldr r2, _080DA328
ldr r1, _080DA32C
ldrb r0, [r1]
lsls r0, r0, #6
adds r0, r0, r2
adds r0, #0x26
strb r3, [r0]
ldrb r0, [r1]
lsls r0, r0, #6
adds r0, r0, r2
adds r0, #0x27
strb r4, [r0]
ldrb r0, [r1]
lsls r0, r0, #6
adds r0, r0, r2
adds r0, #0x28
strb r5, [r0]
ldrb r0, [r1]
lsls r0, r0, #6
adds r0, r0, r2
adds r0, #0x29
strb r6, [r0]
ldrb r0, [r1]
lsls r0, r0, #6
adds r0, r0, r2
adds r0, #0x2a
strb r7, [r0]
add sp, #0x14
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DA328: .4byte 0x02039AA0
_080DA32C: .4byte 0x02039BC5
thumb_func_end sub_080DA0B8
thumb_func_start sub_080DA330
sub_080DA330: @ 0x080DA330
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x64
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
mov r8, r1
movs r6, #0
movs r7, #0
bl TryPutPlayerLast
ldr r0, _080DA380
bl FlagGet
lsls r0, r0, #0x18
cmp r0, #0
beq _080DA364
ldr r0, _080DA384
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080DA364
movs r7, #1
_080DA364:
movs r5, #0
ldr r2, _080DA388
ldr r3, _080DA38C
_080DA36A:
ldrb r0, [r2, #0x1c]
lsls r0, r0, #0x1e
lsrs r0, r0, #0x1e
cmp r8, r0
bne _080DA3DE
cmp r7, #1
bne _080DA390
ldrb r0, [r3]
cmp r0, #1
beq _080DA3DE
b _080DA396
.align 2, 0
_080DA380: .4byte 0x00000864
_080DA384: .4byte 0x02039BCA
_080DA388: .4byte 0x08561028
_080DA38C: .4byte 0x08562828
_080DA390:
ldrb r0, [r3]
cmp r0, #2
beq _080DA3DE
_080DA396:
cmp r4, #0
bne _080DA3A2
ldrb r0, [r2, #0x1c]
lsls r0, r0, #0x1d
cmp r0, #0
blt _080DA3D2
_080DA3A2:
cmp r4, #1
bne _080DA3AE
ldrb r0, [r2, #0x1c]
lsls r0, r0, #0x1c
cmp r0, #0
blt _080DA3D2
_080DA3AE:
cmp r4, #2
bne _080DA3BA
ldrb r0, [r2, #0x1c]
lsls r0, r0, #0x1b
cmp r0, #0
blt _080DA3D2
_080DA3BA:
cmp r4, #3
bne _080DA3C6
ldrb r0, [r2, #0x1c]
lsls r0, r0, #0x1a
cmp r0, #0
blt _080DA3D2
_080DA3C6:
cmp r4, #4
bne _080DA3DE
ldrb r0, [r2, #0x1c]
lsls r0, r0, #0x19
cmp r0, #0
bge _080DA3DE
_080DA3D2:
adds r0, r6, #0
adds r1, r0, #1
lsls r1, r1, #0x18
lsrs r6, r1, #0x18
add r0, sp
strb r5, [r0]
_080DA3DE:
adds r2, #0x40
adds r3, #1
adds r5, #1
cmp r5, #0x5f
bls _080DA36A
mov r0, sp
adds r1, r0, r6
movs r0, #0xff
strb r0, [r1]
movs r5, #0
ldr r7, _080DA454
_080DA3F4:
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r6, #0
bl __modsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _080DA458
lsls r2, r5, #6
adds r2, r2, r1
mov r1, sp
adds r4, r1, r0
ldrb r1, [r4]
lsls r1, r1, #6
adds r1, r1, r7
adds r0, r2, #0
movs r2, #0x40
bl memcpy
ldrb r0, [r4]
adds r2, r5, #1
subs r1, r6, #1
cmp r0, #0xff
beq _080DA436
adds r3, r4, #0
_080DA42A:
ldrb r0, [r3, #1]
strb r0, [r3]
adds r3, #1
ldrb r0, [r3]
cmp r0, #0xff
bne _080DA42A
_080DA436:
lsls r0, r1, #0x18
lsrs r6, r0, #0x18
adds r5, r2, #0
cmp r5, #2
ble _080DA3F4
ldr r0, _080DA45C
ldrb r0, [r0]
bl sub_080DA0B8
add sp, #0x64
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DA454: .4byte 0x08561028
_080DA458: .4byte 0x02039AA0
_080DA45C: .4byte 0x02039BC4
thumb_func_end sub_080DA330
thumb_func_start sub_080DA460
sub_080DA460: @ 0x080DA460
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x64
mov ip, r2
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
lsls r1, r1, #0x18
lsrs r7, r1, #0x18
movs r6, #0
ldr r0, _080DA49C
ldrb r1, [r0]
mov r8, r0
cmp r1, #4
beq _080DA572
movs r5, #0
ldr r3, _080DA4A0
ldr r2, _080DA4A4
_080DA484:
ldrb r0, [r3, #0x1c]
lsls r0, r0, #0x1e
lsrs r0, r0, #0x1e
cmp r7, r0
bne _080DA4F6
mov r0, ip
cmp r0, #1
bne _080DA4A8
ldrb r0, [r2]
cmp r0, #1
beq _080DA4F6
b _080DA4AE
.align 2, 0
_080DA49C: .4byte 0x02039BD0
_080DA4A0: .4byte 0x08561028
_080DA4A4: .4byte 0x08562828
_080DA4A8:
ldrb r0, [r2]
cmp r0, #2
beq _080DA4F6
_080DA4AE:
cmp r4, #0
bne _080DA4BA
ldrb r0, [r3, #0x1c]
lsls r0, r0, #0x1d
cmp r0, #0
blt _080DA4EA
_080DA4BA:
cmp r4, #1
bne _080DA4C6
ldrb r0, [r3, #0x1c]
lsls r0, r0, #0x1c
cmp r0, #0
blt _080DA4EA
_080DA4C6:
cmp r4, #2
bne _080DA4D2
ldrb r0, [r3, #0x1c]
lsls r0, r0, #0x1b
cmp r0, #0
blt _080DA4EA
_080DA4D2:
cmp r4, #3
bne _080DA4DE
ldrb r0, [r3, #0x1c]
lsls r0, r0, #0x1a
cmp r0, #0
blt _080DA4EA
_080DA4DE:
cmp r4, #4
bne _080DA4F6
ldrb r0, [r3, #0x1c]
lsls r0, r0, #0x19
cmp r0, #0
bge _080DA4F6
_080DA4EA:
adds r0, r6, #0
adds r1, r0, #1
lsls r1, r1, #0x18
lsrs r6, r1, #0x18
add r0, sp
strb r5, [r0]
_080DA4F6:
adds r3, #0x40
adds r2, #1
adds r5, #1
cmp r5, #0x5f
bls _080DA484
mov r3, sp
adds r1, r3, r6
movs r0, #0xff
strb r0, [r1]
movs r5, #0
mov r0, r8
ldrb r1, [r0]
movs r0, #4
subs r0, r0, r1
cmp r5, r0
bge _080DA572
ldr r7, _080DA580
_080DA518:
bl sub_080F98CC
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r6, #0
bl __modsi3
adds r1, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldr r0, _080DA584
ldrb r0, [r0]
adds r0, r0, r5
lsls r0, r0, #6
adds r0, r0, r7
ldr r2, _080DA588
mov r3, sp
adds r4, r3, r1
ldrb r1, [r4]
lsls r1, r1, #6
adds r1, r1, r2
movs r2, #0x40
bl memcpy
ldrb r0, [r4]
adds r3, r5, #1
subs r1, r6, #1
cmp r0, #0xff
beq _080DA560
adds r2, r4, #0
_080DA554:
ldrb r0, [r2, #1]
strb r0, [r2]
adds r2, #1
ldrb r0, [r2]
cmp r0, #0xff
bne _080DA554
_080DA560:
lsls r0, r1, #0x18
lsrs r6, r0, #0x18
adds r5, r3, #0
ldr r0, _080DA584
ldrb r1, [r0]
movs r0, #4
subs r0, r0, r1
cmp r5, r0
blt _080DA518
_080DA572:
add sp, #0x64
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DA580: .4byte 0x02039AA0
_080DA584: .4byte 0x02039BD0
_080DA588: .4byte 0x08561028
thumb_func_end sub_080DA460
thumb_func_start sub_080DA58C
sub_080DA58C: @ 0x080DA58C
push {r4, lr}
adds r4, r0, #0
movs r1, #0x2d
bl GetMonData
cmp r0, #0
beq _080DA59E
movs r0, #3
b _080DA61A
_080DA59E:
adds r0, r4, #0
movs r1, #0x39
bl GetMonData
cmp r0, #0
bne _080DA5AE
movs r0, #4
b _080DA61A
_080DA5AE:
ldr r0, _080DA5C0
ldrh r0, [r0]
cmp r0, #4
bhi _080DA602
lsls r0, r0, #2
ldr r1, _080DA5C4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DA5C0: .4byte 0x02039BCC
_080DA5C4: .4byte 0x080DA5C8
_080DA5C8: @ jump table
.4byte _080DA5DC @ case 0
.4byte _080DA5E2 @ case 1
.4byte _080DA5E8 @ case 2
.4byte _080DA5EE @ case 3
.4byte _080DA5F4 @ case 4
_080DA5DC:
adds r0, r4, #0
movs r1, #0x32
b _080DA5F8
_080DA5E2:
adds r0, r4, #0
movs r1, #0x33
b _080DA5F8
_080DA5E8:
adds r0, r4, #0
movs r1, #0x34
b _080DA5F8
_080DA5EE:
adds r0, r4, #0
movs r1, #0x35
b _080DA5F8
_080DA5F4:
adds r0, r4, #0
movs r1, #0x36
_080DA5F8:
bl GetMonData
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
b _080DA606
_080DA602:
movs r0, #0
b _080DA61A
_080DA606:
ldr r0, _080DA620
adds r2, r1, #0
ldrh r1, [r0]
movs r0, #2
cmp r2, r1
bhi _080DA61A
movs r0, #0
cmp r2, r1
blo _080DA61A
movs r0, #1
_080DA61A:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080DA620: .4byte 0x02039BCE
thumb_func_end sub_080DA58C
thumb_func_start DrawContestantWindowText
DrawContestantWindowText: @ 0x080DA624
push {r4, r5, lr}
movs r5, #0
_080DA628:
ldr r4, _080DA660
adds r4, r5, r4
ldrb r0, [r4]
movs r1, #0
bl FillWindowPixelBuffer
ldrb r0, [r4]
adds r0, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0
bl FillWindowPixelBuffer
lsls r4, r5, #0x18
lsrs r4, r4, #0x18
adds r0, r4, #0
bl PrintContestantMonName
adds r0, r4, #0
bl PrintContestantTrainerName
adds r5, #1
cmp r5, #3
ble _080DA628
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DA660: .4byte 0x02039BC6
thumb_func_end DrawContestantWindowText
thumb_func_start Contest_CopyStringWithColor
Contest_CopyStringWithColor: @ 0x080DA664
push {r4, r5, lr}
adds r5, r0, #0
lsls r4, r1, #0x18
lsrs r4, r4, #0x18
ldr r0, _080DA684
ldr r1, _080DA688
bl StringCopy
strb r4, [r0]
adds r0, #1
adds r1, r5, #0
bl StringCopy
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_080DA684: .4byte 0x02022AE0
_080DA688: .4byte 0x085CC497
thumb_func_end Contest_CopyStringWithColor
thumb_func_start PrintContestantMonName
PrintContestantMonName: @ 0x080DA68C
push {lr}
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r0, r1, #0x18
movs r2, #0xa0
lsls r2, r2, #0x14
adds r1, r1, r2
lsrs r1, r1, #0x18
bl PrintContestantMonNameWithColor
pop {r0}
bx r0
thumb_func_end PrintContestantMonName
thumb_func_start PrintContestantMonNameWithColor
PrintContestantMonNameWithColor: @ 0x080DA6A4
push {r4, r5, lr}
sub sp, #0x20
adds r4, r0, #0
adds r5, r1, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
ldr r1, _080DA6E8
mov r0, sp
bl StringCopy
lsls r1, r4, #6
ldr r0, _080DA6EC
adds r1, r1, r0
mov r0, sp
bl StringAppend
mov r0, sp
adds r1, r5, #0
bl Contest_CopyStringWithColor
ldr r0, _080DA6F0
adds r4, r4, r0
ldrb r0, [r4]
adds r0, #4
ldr r1, _080DA6F4
bl Contest_PrintTextToBg0WindowStd
add sp, #0x20
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DA6E8: .4byte 0x085C93FF
_080DA6EC: .4byte 0x02039AAD
_080DA6F0: .4byte 0x02039BC6
_080DA6F4: .4byte 0x02022AE0
thumb_func_end PrintContestantMonNameWithColor
thumb_func_start PrintContestantTrainerName
PrintContestantTrainerName: @ 0x080DA6F8
push {lr}
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r0, r1, #0x18
movs r2, #0xa0
lsls r2, r2, #0x14
adds r1, r1, r2
lsrs r1, r1, #0x18
bl sub_080DA710
pop {r0}
bx r0
thumb_func_end PrintContestantTrainerName
thumb_func_start sub_080DA710
sub_080DA710: @ 0x080DA710
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r0, r4, #6
ldr r2, _080DA738
adds r0, r0, r2
bl Contest_CopyStringWithColor
ldr r0, _080DA73C
adds r4, r4, r0
ldrb r0, [r4]
ldr r1, _080DA740
bl Contest_PrintTextToBg0WindowStd
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DA738: .4byte 0x02039AA2
_080DA73C: .4byte 0x02039BC6
_080DA740: .4byte 0x02022AE0
thumb_func_end sub_080DA710
thumb_func_start sub_080DA744
sub_080DA744: @ 0x080DA744
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
lsls r1, r1, #0x18
lsrs r0, r1, #0x18
cmp r0, #4
bhi _080DA7D0
lsls r0, r0, #2
ldr r1, _080DA75C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DA75C: .4byte 0x080DA760
_080DA760: @ jump table
.4byte _080DA774 @ case 0
.4byte _080DA78C @ case 1
.4byte _080DA7A4 @ case 2
.4byte _080DA7B4 @ case 3
.4byte _080DA7D0 @ case 4
_080DA774:
ldr r0, _080DA788
lsls r2, r2, #6
adds r1, r2, r0
adds r3, r1, #0
adds r3, #0x26
ldrb r5, [r3]
adds r3, #4
ldrb r4, [r3]
adds r1, #0x27
b _080DA7E2
.align 2, 0
_080DA788: .4byte 0x02039AA0
_080DA78C:
ldr r0, _080DA7A0
lsls r2, r2, #6
adds r1, r2, r0
adds r3, r1, #0
adds r3, #0x27
ldrb r5, [r3]
subs r3, #1
ldrb r4, [r3]
adds r1, #0x28
b _080DA7E2
.align 2, 0
_080DA7A0: .4byte 0x02039AA0
_080DA7A4:
ldr r1, _080DA7B0
lsls r2, r2, #6
adds r3, r2, r1
adds r0, r3, #0
adds r0, #0x28
b _080DA7BE
.align 2, 0
_080DA7B0: .4byte 0x02039AA0
_080DA7B4:
ldr r1, _080DA7CC
lsls r2, r2, #6
adds r3, r2, r1
adds r0, r3, #0
adds r0, #0x29
_080DA7BE:
ldrb r5, [r0]
subs r0, #1
ldrb r4, [r0]
adds r0, #2
ldrb r3, [r0]
adds r0, r1, #0
b _080DA7E4
.align 2, 0
_080DA7CC: .4byte 0x02039AA0
_080DA7D0:
ldr r0, _080DA7FC
lsls r2, r2, #6
adds r1, r2, r0
adds r3, r1, #0
adds r3, #0x2a
ldrb r5, [r3]
subs r3, #1
ldrb r4, [r3]
adds r1, #0x26
_080DA7E2:
ldrb r3, [r1]
_080DA7E4:
adds r1, r2, r0
adds r1, #0x2b
adds r0, r4, r3
ldrb r1, [r1]
adds r0, r0, r1
asrs r0, r0, #1
adds r0, r5, r0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_080DA7FC: .4byte 0x02039AA0
thumb_func_end sub_080DA744
thumb_func_start sub_080DA800
sub_080DA800: @ 0x080DA800
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
movs r4, #0
ldr r5, _080DA824
_080DA80A:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
adds r1, r6, #0
bl sub_080DA744
strh r0, [r5]
adds r5, #2
adds r4, #1
cmp r4, #3
ble _080DA80A
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DA824: .4byte 0x02039BA0
thumb_func_end sub_080DA800
thumb_func_start sub_080DA828
sub_080DA828: @ 0x080DA828
push {r4, r5, lr}
ldr r0, _080DA870
bl LoadCompressedSpriteSheet
ldr r0, _080DA874
movs r1, #0x88
lsls r1, r1, #1
movs r2, #0x20
bl LoadCompressedPalette
ldr r0, _080DA878
movs r1, #0x70
movs r2, #0x24
movs r3, #0x1e
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r4, _080DA87C
lsls r2, r0, #4
adds r2, r2, r0
lsls r2, r2, #2
adds r5, r2, r4
ldrb r3, [r5, #5]
movs r1, #0xf
ands r1, r3
movs r3, #0x10
orrs r1, r3
strb r1, [r5, #5]
adds r4, #0x1c
adds r2, r2, r4
ldr r1, _080DA880
str r1, [r2]
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_080DA870: .4byte 0x08560B64
_080DA874: .4byte 0x08C1C700
_080DA878: .4byte 0x08560B4C
_080DA87C: .4byte 0x020205AC
_080DA880: .4byte 0x08007141
thumb_func_end sub_080DA828
thumb_func_start sub_080DA884
sub_080DA884: @ 0x080DA884
push {lr}
ldr r0, _080DA8C8
bl LoadCompressedSpriteSheet
ldr r0, _080DA8CC
bl LoadCompressedSpritePalette
ldr r0, _080DA8D0
movs r1, #0x60
movs r2, #0xa
movs r3, #0x1d
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DA8D4
lsls r2, r0, #4
adds r2, r2, r0
lsls r2, r2, #2
adds r2, r2, r1
movs r1, #0x3e
adds r1, r1, r2
mov ip, r1
ldrb r1, [r1]
movs r3, #4
orrs r1, r3
mov r3, ip
strb r1, [r3]
ldrh r1, [r2, #4]
lsls r1, r1, #0x16
lsrs r1, r1, #0x16
strh r1, [r2, #0x2e]
pop {r1}
bx r1
.align 2, 0
_080DA8C8: .4byte 0x08560B6C
_080DA8CC: .4byte 0x08560B74
_080DA8D0: .4byte 0x08560B7C
_080DA8D4: .4byte 0x020205AC
thumb_func_end sub_080DA884
thumb_func_start sub_080DA8D8
sub_080DA8D8: @ 0x080DA8D8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r1, #0
adds r6, r2, #0
adds r4, r3, #0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
adds r0, r5, #0
bl SanitizeSpecies
adds r5, r0, #0
ldr r0, _080DA910
ldrb r0, [r0]
cmp r4, r0
bne _080DA91C
lsls r0, r5, #3
ldr r1, _080DA914
adds r0, r0, r1
ldr r1, _080DA918
ldr r1, [r1]
ldr r1, [r1, #4]
adds r2, r5, #0
adds r3, r6, #0
bl HandleLoadSpecialPokePic_2
b _080DA930
.align 2, 0
_080DA910: .4byte 0x02039BC5
_080DA914: .4byte 0x082D6148
_080DA918: .4byte 0x02024178
_080DA91C:
lsls r0, r5, #3
ldr r1, _080DA9C4
adds r0, r0, r1
ldr r1, _080DA9C8
ldr r1, [r1]
ldr r1, [r1, #4]
adds r2, r5, #0
adds r3, r6, #0
bl HandleLoadSpecialPokePic_DontHandleDeoxys
_080DA930:
adds r0, r5, #0
adds r1, r7, #0
adds r2, r6, #0
bl GetMonSpritePalFromSpeciesAndPersonality
movs r1, #0x90
lsls r1, r1, #1
movs r2, #0x20
bl LoadCompressedPalette
adds r0, r5, #0
movs r1, #0
bl SetMultiuseSpriteTemplateToPokemon
ldr r4, _080DA9CC
movs r0, #2
adds r1, r5, #0
movs r2, #0
bl GetBattlerSpriteFinal_Y
adds r2, r0, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
adds r0, r4, #0
movs r1, #0x70
movs r3, #0x1e
bl CreateSprite
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r0, _080DA9D0
mov r8, r0
lsls r0, r7, #4
adds r0, r0, r7
lsls r6, r0, #2
mov r0, r8
adds r4, r6, r0
ldrb r1, [r4, #5]
movs r0, #0xf
ands r0, r1
movs r1, #0x20
orrs r0, r1
movs r1, #0xd
rsbs r1, r1, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r4, #5]
movs r0, #2
bl GetBattlerSpriteSubpriority
adds r1, r4, #0
adds r1, #0x43
strb r0, [r1]
mov r0, r8
adds r0, #0x1c
adds r0, r6, r0
ldr r1, _080DA9D4
str r1, [r0]
ldrb r0, [r4, #5]
lsrs r0, r0, #4
strh r0, [r4, #0x2e]
strh r5, [r4, #0x32]
adds r0, r5, #0
bl IsSpeciesNotUnown
lsls r0, r0, #0x18
cmp r0, #0
beq _080DA9DC
mov r0, r8
adds r0, #0x10
adds r0, r6, r0
ldr r1, _080DA9D8
b _080DA9E4
.align 2, 0
_080DA9C4: .4byte 0x082D6148
_080DA9C8: .4byte 0x02024178
_080DA9CC: .4byte 0x02024640
_080DA9D0: .4byte 0x020205AC
_080DA9D4: .4byte 0x08007141
_080DA9D8: .4byte 0x082D2F50
_080DA9DC:
mov r0, r8
adds r0, #0x10
adds r0, r6, r0
ldr r1, _080DAA04
_080DA9E4:
str r1, [r0]
lsls r0, r7, #4
adds r0, r0, r7
lsls r0, r0, #2
ldr r1, _080DAA08
adds r0, r0, r1
movs r1, #0
bl StartSpriteAffineAnim
adds r0, r7, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_080DAA04: .4byte 0x082D2F24
_080DAA08: .4byte 0x020205AC
thumb_func_end sub_080DA8D8
thumb_func_start IsSpeciesNotUnown
IsSpeciesNotUnown: @ 0x080DAA0C
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xc9
beq _080DAA1A
movs r0, #1
b _080DAA1C
_080DAA1A:
movs r0, #0
_080DAA1C:
pop {r1}
bx r1
thumb_func_end IsSpeciesNotUnown
thumb_func_start SwapMoveDescAndContestTilemaps
SwapMoveDescAndContestTilemaps: @ 0x080DAA20
push {r4, r5, r6, lr}
ldr r5, _080DAA4C
ldr r0, [r5]
ldr r0, [r0, #0x24]
movs r4, #0xa0
lsls r4, r4, #3
adds r1, r0, r4
movs r6, #0xa0
lsls r6, r6, #1
adds r2, r6, #0
bl CpuSet
ldr r0, [r5]
ldr r0, [r0, #0x2c]
adds r4, r0, r4
adds r1, r4, #0
adds r2, r6, #0
bl CpuSet
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DAA4C: .4byte 0x02039BD4
thumb_func_end SwapMoveDescAndContestTilemaps
thumb_func_start sub_080DAA50
sub_080DAA50: @ 0x080DAA50
push {lr}
lsls r0, r0, #0x10
lsls r1, r1, #0x18
lsrs r3, r1, #0x18
ldr r2, _080DAA78
ldr r1, _080DAA7C
lsrs r0, r0, #0xd
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #8
bhi _080DAAB8
lsls r0, r0, #2
ldr r1, _080DAA80
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DAA78: .4byte 0x08566AE4
_080DAA7C: .4byte 0x08565FCC
_080DAA80: .4byte 0x080DAA84
_080DAA84: @ jump table
.4byte _080DAAA8 @ case 0
.4byte _080DAAA8 @ case 1
.4byte _080DAAB0 @ case 2
.4byte _080DAAB0 @ case 3
.4byte _080DAAB8 @ case 4
.4byte _080DAAB8 @ case 5
.4byte _080DAAB8 @ case 6
.4byte _080DAAB8 @ case 7
.4byte _080DAAA8 @ case 8
_080DAAA8:
ldr r0, _080DAAAC
b _080DAABA
.align 2, 0
_080DAAAC: .4byte 0x00009082
_080DAAB0:
ldr r0, _080DAAB4
b _080DAABA
.align 2, 0
_080DAAB4: .4byte 0x00009088
_080DAAB8:
ldr r0, _080DAAD0
_080DAABA:
lsls r1, r3, #0xc
movs r2, #0x90
lsls r2, r2, #8
adds r1, r1, r2
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r1}
bx r1
.align 2, 0
_080DAAD0: .4byte 0x00009086
thumb_func_end sub_080DAA50
thumb_func_start sub_080DAAD4
sub_080DAAD4: @ 0x080DAAD4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x10
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
ldr r1, _080DAB54
lsls r0, r0, #3
adds r0, r0, r1
ldrb r0, [r0, #1]
lsls r0, r0, #0x1d
lsrs r0, r0, #0x1d
ldr r7, _080DAB58
cmp r0, #0
beq _080DAB08
adds r7, #5
cmp r0, #1
beq _080DAB08
adds r7, #5
cmp r0, #2
beq _080DAB08
adds r7, #0x40
cmp r0, #3
bne _080DAB08
subs r7, #0x20
_080DAB08:
movs r6, #5
str r6, [sp]
movs r4, #1
str r4, [sp, #4]
movs r5, #0x11
str r5, [sp, #8]
str r4, [sp, #0xc]
movs r0, #0
adds r1, r7, #0
movs r2, #0xb
movs r3, #0x1f
bl ContestBG_FillBoxWithIncrementingTile
adds r1, r7, #0
adds r1, #0x10
str r6, [sp]
str r4, [sp, #4]
str r5, [sp, #8]
str r4, [sp, #0xc]
movs r0, #0
movs r2, #0xb
movs r3, #0x20
bl ContestBG_FillBoxWithIncrementingTile
ldr r2, _080DAB5C
ldr r0, _080DAB54
mov r3, r8
lsls r1, r3, #3
adds r0, r1, r0
ldrb r0, [r0]
lsls r0, r0, #2
adds r2, r0, r2
ldrb r0, [r2, #1]
adds r7, r1, #0
cmp r0, #0xff
bne _080DAB60
movs r6, #0
b _080DAB6C
.align 2, 0
_080DAB54: .4byte 0x08565FCC
_080DAB58: .4byte 0x00004040
_080DAB5C: .4byte 0x08566AE4
_080DAB60:
ldrb r0, [r2, #1]
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
_080DAB6C:
cmp r6, #8
bls _080DAB72
movs r6, #8
_080DAB72:
ldr r1, _080DABB4
movs r0, #8
str r0, [sp]
movs r5, #1
str r5, [sp, #4]
movs r4, #0x11
str r4, [sp, #8]
movs r0, #0
movs r2, #0x15
movs r3, #0x1f
bl ContestBG_FillBoxWithTile
ldr r1, _080DABB8
str r6, [sp]
str r5, [sp, #4]
str r4, [sp, #8]
movs r0, #0
movs r2, #0x15
movs r3, #0x1f
bl ContestBG_FillBoxWithTile
ldr r1, _080DABBC
ldr r0, _080DABC0
adds r0, r7, r0
ldrb r0, [r0]
lsls r0, r0, #2
adds r1, r0, r1
ldrb r0, [r1, #2]
cmp r0, #0xff
bne _080DABC4
movs r6, #0
b _080DABD0
.align 2, 0
_080DABB4: .4byte 0x00005035
_080DABB8: .4byte 0x00005012
_080DABBC: .4byte 0x08566AE4
_080DABC0: .4byte 0x08565FCC
_080DABC4:
ldrb r0, [r1, #2]
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
_080DABD0:
cmp r6, #8
bls _080DABD6
movs r6, #8
_080DABD6:
ldr r1, _080DAC30
movs r0, #8
str r0, [sp]
movs r5, #1
str r5, [sp, #4]
movs r4, #0x11
str r4, [sp, #8]
movs r0, #0
movs r2, #0x15
movs r3, #0x20
bl ContestBG_FillBoxWithTile
ldr r1, _080DAC34
str r6, [sp]
str r5, [sp, #4]
str r4, [sp, #8]
movs r0, #0
movs r2, #0x15
movs r3, #0x20
bl ContestBG_FillBoxWithTile
movs r0, #0xe
movs r1, #0
bl FillWindowPixelBuffer
ldr r1, _080DAC38
ldr r0, _080DAC3C
adds r0, r7, r0
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
movs r0, #0xe
bl Contest_PrintTextToBg0WindowStd
ldr r1, _080DAC40
movs r0, #0xd
bl Contest_PrintTextToBg0WindowStd
add sp, #0x10
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DAC30: .4byte 0x00005036
_080DAC34: .4byte 0x00005014
_080DAC38: .4byte 0x08560BB4
_080DAC3C: .4byte 0x08565FCC
_080DAC40: .4byte 0x085C93FF
thumb_func_end sub_080DAAD4
thumb_func_start sub_080DAC44
sub_080DAC44: @ 0x080DAC44
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x10
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
lsls r1, r1, #0x18
lsrs r4, r1, #0x18
ldr r0, _080DACC0
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
adds r0, #2
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
adds r0, r4, #0
bl Contest_IsMonsTurnDisabled
lsls r0, r0, #0x18
cmp r0, #0
bne _080DACC4
cmp r5, #0
beq _080DACC4
adds r0, r5, #0
adds r1, r4, #0
bl sub_080DAA50
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
movs r0, #2
mov r8, r0
str r0, [sp]
movs r5, #1
str r5, [sp, #4]
movs r6, #0x11
str r6, [sp, #8]
str r5, [sp, #0xc]
movs r0, #0
adds r1, r4, #0
movs r2, #0x14
adds r3, r7, #0
bl ContestBG_FillBoxWithIncrementingTile
adds r4, #0x10
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r3, r7, #1
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
mov r0, r8
str r0, [sp]
str r5, [sp, #4]
str r6, [sp, #8]
str r5, [sp, #0xc]
movs r0, #0
adds r1, r4, #0
movs r2, #0x14
bl ContestBG_FillBoxWithIncrementingTile
b _080DACDA
.align 2, 0
_080DACC0: .4byte 0x02039BC6
_080DACC4:
movs r0, #2
str r0, [sp]
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #0
movs r1, #0
movs r2, #0x14
adds r3, r7, #0
bl ContestBG_FillBoxWithTile
_080DACDA:
add sp, #0x10
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080DAC44
thumb_func_start sub_080DACE8
sub_080DACE8: @ 0x080DACE8
push {r4, r5, lr}
movs r4, #0
movs r5, #0
_080DACEE:
ldr r0, _080DAD10
ldr r0, [r0]
ldr r0, [r0, #4]
adds r0, r5, r0
ldrh r0, [r0, #6]
lsls r1, r4, #0x18
lsrs r1, r1, #0x18
bl sub_080DAC44
adds r5, #0x1c
adds r4, #1
cmp r4, #3
ble _080DACEE
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DAD10: .4byte 0x02039BD4
thumb_func_end sub_080DACE8
thumb_func_start sub_080DAD14
sub_080DAD14: @ 0x080DAD14
ldr r0, _080DAD18
bx lr
.align 2, 0
_080DAD18: .4byte 0x00002034
thumb_func_end sub_080DAD14
thumb_func_start sub_080DAD1C
sub_080DAD1C: @ 0x080DAD1C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
mov r8, r1
mov sl, r8
ldr r0, _080DAD54
mov sb, r0
ldr r0, [r0]
ldr r1, [r0, #4]
lsls r0, r2, #3
subs r0, r0, r2
lsls r7, r0, #2
adds r3, r7, r1
ldrb r0, [r3, #0x10]
movs r5, #0x30
ands r5, r0
cmp r5, #0
bne _080DAD58
movs r0, #0
b _080DADEE
.align 2, 0
_080DAD54: .4byte 0x02039BD4
_080DAD58:
ldr r0, _080DADA8
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
adds r0, #2
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
movs r0, #0xd
ldrsb r0, [r3, r0]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x18
asrs r4, r0, #0x18
cmp r5, #0x10
bne _080DADAC
bl sub_080DAD14
adds r1, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
movs r0, #1
str r0, [sp]
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #0
movs r2, #0x13
adds r3, r6, #0
bl ContestBG_FillBoxWithTile
mov r1, r8
cmp r1, #0
beq _080DADEC
movs r0, #0x5b
b _080DADD6
.align 2, 0
_080DADA8: .4byte 0x02039BC6
_080DADAC:
adds r3, r6, r4
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
movs r0, #1
str r0, [sp]
movs r0, #3
subs r0, r0, r4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #0
movs r1, #0
movs r2, #0x13
bl ContestBG_FillBoxWithTile
mov r0, sl
cmp r0, #0
beq _080DADEC
movs r0, #0x26
_080DADD6:
bl PlaySE
mov r1, sb
ldr r0, [r1]
ldr r1, [r0, #4]
adds r1, r7, r1
ldrb r2, [r1, #0x10]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x10]
_080DADEC:
movs r0, #1
_080DADEE:
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_080DAD1C
thumb_func_start sub_080DAE00
sub_080DAE00: @ 0x080DAE00
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
movs r7, #0
movs r0, #1
mov sl, r0
movs r1, #0x11
mov sb, r1
movs r0, #0
mov r8, r0
_080DAE1A:
ldr r0, _080DAEA4
adds r0, r7, r0
ldrb r0, [r0]
lsls r4, r0, #2
adds r4, r4, r0
adds r4, #2
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
bl sub_080DAD14
adds r5, r0, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
ldr r0, _080DAEA8
ldr r0, [r0]
ldr r0, [r0, #4]
add r0, r8
ldrb r0, [r0, #0xd]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x18
mov r1, sl
str r1, [sp]
asrs r6, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #4]
mov r0, sb
str r0, [sp, #8]
movs r0, #0
adds r1, r5, #0
movs r2, #0x13
adds r3, r4, #0
bl ContestBG_FillBoxWithTile
adds r4, r4, r6
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
mov r1, sl
str r1, [sp]
movs r0, #3
subs r0, r0, r6
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #4]
mov r0, sb
str r0, [sp, #8]
movs r0, #0
movs r1, #0
movs r2, #0x13
adds r3, r4, #0
bl ContestBG_FillBoxWithTile
movs r1, #0x1c
add r8, r1
adds r7, #1
cmp r7, #3
ble _080DAE1A
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DAEA4: .4byte 0x02039BC6
_080DAEA8: .4byte 0x02039BD4
thumb_func_end sub_080DAE00
thumb_func_start sub_080DAEAC
sub_080DAEAC: @ 0x080DAEAC
push {lr}
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
movs r0, #0
cmp r1, #4
bhi _080DAEEE
lsls r0, r1, #2
ldr r1, _080DAEC4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DAEC4: .4byte 0x080DAEC8
_080DAEC8: @ jump table
.4byte _080DAEDC @ case 0
.4byte _080DAEE0 @ case 1
.4byte _080DAEE4 @ case 2
.4byte _080DAEE8 @ case 3
.4byte _080DAEEC @ case 4
_080DAEDC:
movs r0, #0x80
b _080DAEEE
_080DAEE0:
movs r0, #0x84
b _080DAEEE
_080DAEE4:
movs r0, #0x86
b _080DAEEE
_080DAEE8:
movs r0, #0x88
b _080DAEEE
_080DAEEC:
movs r0, #0x82
_080DAEEE:
movs r1, #0x90
lsls r1, r1, #8
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r1}
bx r1
thumb_func_end sub_080DAEAC
thumb_func_start sub_080DAEFC
sub_080DAEFC: @ 0x080DAEFC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x10
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #1
mov sb, r1
movs r1, #0
mov r8, r1
ldr r1, _080DAF44
adds r1, r0, r1
ldrb r2, [r1]
lsls r1, r2, #2
adds r1, r1, r2
adds r1, #2
lsls r1, r1, #0x18
lsrs r7, r1, #0x18
ldr r1, _080DAF48
ldr r1, [r1]
ldr r2, [r1, #4]
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r2, r1, r2
ldr r0, [r2, #0x10]
ldr r1, _080DAF4C
ands r0, r1
cmp r0, #0
bne _080DAF40
ldrb r0, [r2, #0xf]
cmp r0, #0
beq _080DAF50
_080DAF40:
movs r0, #0
b _080DAF72
.align 2, 0
_080DAF44: .4byte 0x02039BC6
_080DAF48: .4byte 0x02039BD4
_080DAF4C: .4byte 0x00FF0003
_080DAF50:
ldrb r1, [r2, #0xc]
mov r0, sb
ands r0, r1
cmp r0, #0
beq _080DAF5E
movs r0, #1
b _080DAF72
_080DAF5E:
movs r0, #6
ands r0, r1
cmp r0, #0
bne _080DAF70
ldrb r1, [r2, #0xb]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080DAF7E
_080DAF70:
movs r0, #2
_080DAF72:
bl sub_080DAEAC
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
b _080DAF82
_080DAF7E:
movs r0, #0
mov sb, r0
_080DAF82:
mov r1, sb
cmp r1, #0
beq _080DAFC2
movs r6, #2
str r6, [sp]
movs r4, #1
str r4, [sp, #4]
movs r5, #0x11
str r5, [sp, #8]
str r4, [sp, #0xc]
movs r0, #0
mov r1, r8
movs r2, #0x14
adds r3, r7, #0
bl ContestBG_FillBoxWithIncrementingTile
mov r1, r8
adds r1, #0x10
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
adds r3, r7, #1
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
str r6, [sp]
str r4, [sp, #4]
str r5, [sp, #8]
str r4, [sp, #0xc]
movs r0, #0
movs r2, #0x14
bl ContestBG_FillBoxWithIncrementingTile
b _080DAFD8
_080DAFC2:
movs r0, #2
str r0, [sp]
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #0
movs r1, #0
movs r2, #0x14
adds r3, r7, #0
bl ContestBG_FillBoxWithTile
_080DAFD8:
mov r0, sb
add sp, #0x10
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_end sub_080DAEFC
thumb_func_start sub_080DAFE8
sub_080DAFE8: @ 0x080DAFE8
push {r4, lr}
movs r4, #0
_080DAFEC:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_080DAEFC
adds r4, #1
cmp r4, #3
ble _080DAFEC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_080DAFE8
thumb_func_start sub_080DB000
sub_080DB000: @ 0x080DB000
push {lr}
movs r0, #8
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #8
movs r1, #2
bl CopyWindowToVram
movs r0, #0
bl Contest_SetBgCopyFlags
pop {r0}
bx r0
thumb_func_end sub_080DB000
thumb_func_start GetChosenMove
GetChosenMove: @ 0x080DB01C
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
adds r5, r4, #0
adds r0, r4, #0
bl Contest_IsMonsTurnDisabled
lsls r0, r0, #0x18
cmp r0, #0
beq _080DB034
movs r0, #0
b _080DB06E
_080DB034:
ldr r0, _080DB050
ldrb r0, [r0]
cmp r4, r0
beq _080DB058
adds r0, r4, #0
bl ContestAI_ResetAI
bl ContestAI_GetActionToUse
lsls r0, r0, #0x18
ldr r2, _080DB054
lsrs r0, r0, #0x17
lsls r1, r4, #6
b _080DB066
.align 2, 0
_080DB050: .4byte 0x02039BC5
_080DB054: .4byte 0x02039AA0
_080DB058:
ldr r2, _080DB074
ldr r0, _080DB078
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, r0, #1
lsls r1, r5, #6
_080DB066:
adds r0, r0, r1
adds r2, #0x1e
adds r0, r0, r2
ldrh r0, [r0]
_080DB06E:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_080DB074: .4byte 0x02039AA0
_080DB078: .4byte 0x02039BD4
thumb_func_end GetChosenMove
thumb_func_start GetAllChosenMoves
GetAllChosenMoves: @ 0x080DB07C
push {r4, r5, lr}
movs r4, #0
movs r5, #0
_080DB082:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl GetChosenMove
ldr r1, _080DB0A4
ldr r1, [r1]
ldr r1, [r1, #4]
adds r1, r5, r1
strh r0, [r1, #6]
adds r5, #0x1c
adds r4, #1
cmp r4, #3
ble _080DB082
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DB0A4: .4byte 0x02039BD4
thumb_func_end GetAllChosenMoves
thumb_func_start RankContestants
RankContestants: @ 0x080DB0A8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
ldr r5, _080DB150
mov r4, sp
movs r3, #0
movs r6, #3
_080DB0BA:
ldr r2, [r5]
ldr r1, [r2, #4]
adds r1, r3, r1
ldrh r0, [r1, #2]
ldrh r7, [r1, #4]
adds r0, r0, r7
strh r0, [r1, #4]
ldr r0, [r2, #4]
adds r0, r3, r0
ldrh r0, [r0, #4]
strh r0, [r4]
adds r4, #2
adds r3, #0x1c
subs r6, #1
cmp r6, #0
bge _080DB0BA
movs r6, #0
_080DB0DC:
movs r4, #3
cmp r4, r6
ble _080DB108
_080DB0E2:
subs r5, r4, #1
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 _080DB102
ldrh r0, [r2]
strh r4, [r2]
strh r0, [r3]
_080DB102:
adds r4, r5, #0
cmp r4, r6
bgt _080DB0E2
_080DB108:
adds r6, #1
cmp r6, #2
ble _080DB0DC
movs r6, #0
movs r0, #4
rsbs r0, r0, #0
mov sb, r0
ldr r1, _080DB150
mov r8, r1
movs r7, #3
mov ip, r7
_080DB11E:
movs r4, #0
lsls r0, r6, #3
adds r7, r6, #1
subs r0, r0, r6
lsls r5, r0, #2
mov r3, sp
_080DB12A:
mov r1, r8
ldr r0, [r1]
ldr r0, [r0, #4]
adds r2, r5, r0
movs r6, #4
ldrsh r1, [r2, r6]
movs r6, #0
ldrsh r0, [r3, r6]
cmp r1, r0
bne _080DB154
mov r0, ip
ands r4, r0
ldrb r1, [r2, #0xb]
mov r0, sb
ands r0, r1
orrs r0, r4
strb r0, [r2, #0xb]
b _080DB15C
.align 2, 0
_080DB150: .4byte 0x02039BD4
_080DB154:
adds r3, #2
adds r4, #1
cmp r4, #3
ble _080DB12A
_080DB15C:
adds r6, r7, #0
cmp r6, #3
ble _080DB11E
movs r0, #1
bl SortContestants
bl ApplyNextTurnOrder
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end RankContestants
thumb_func_start sub_080DB17C
sub_080DB17C: @ 0x080DB17C
push {r4, r5, lr}
ldr r4, _080DB194
movs r2, #0
movs r3, #3
_080DB184:
ldr r0, [r4]
ldr r0, [r0, #4]
adds r1, r2, r0
ldrh r0, [r1, #6]
cmp r0, #0
bne _080DB198
movs r1, #5
b _080DB1B6
.align 2, 0
_080DB194: .4byte 0x02039BD4
_080DB198:
movs r5, #2
ldrsh r0, [r1, r5]
movs r1, #0
cmp r0, #0
ble _080DB1B6
movs r1, #1
cmp r0, #0x1d
ble _080DB1B6
movs r1, #2
cmp r0, #0x3b
ble _080DB1B6
movs r1, #4
cmp r0, #0x4f
bgt _080DB1B6
movs r1, #3
_080DB1B6:
ldr r0, [r4]
ldr r0, [r0, #4]
adds r0, r2, r0
strb r1, [r0, #0x1a]
adds r2, #0x1c
subs r3, #1
cmp r3, #0
bge _080DB184
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end sub_080DB17C
thumb_func_start ContestantCanUseTurn
ContestantCanUseTurn: @ 0x080DB1CC
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DB1F8
ldr r1, [r1]
ldr r2, [r1, #4]
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r2, r1, r2
ldrb r1, [r2, #0xc]
movs r0, #6
ands r0, r1
cmp r0, #0
bne _080DB1F4
ldrb r1, [r2, #0xb]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080DB1FC
_080DB1F4:
movs r0, #0
b _080DB1FE
.align 2, 0
_080DB1F8: .4byte 0x02039BD4
_080DB1FC:
movs r0, #1
_080DB1FE:
pop {r1}
bx r1
.align 2, 0
thumb_func_end ContestantCanUseTurn
thumb_func_start sub_080DB204
sub_080DB204: @ 0x080DB204
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r5, _080DB408
movs r0, #0
mov r8, r0
movs r1, #7
rsbs r1, r1, #0
mov sl, r1
movs r0, #2
rsbs r0, r0, #0
mov sb, r0
movs r4, #0
movs r6, #3
_080DB224:
ldr r1, [r5]
ldr r0, [r1, #4]
adds r0, r4, r0
movs r2, #0
strh r2, [r0, #2]
ldr r0, [r1, #4]
adds r0, r4, r0
strh r2, [r0]
ldr r0, [r1, #4]
adds r0, r4, r0
mov r1, r8
strb r1, [r0, #0x12]
ldr r0, [r5]
ldr r0, [r0, #4]
adds r3, r4, r0
ldrb r2, [r3, #0xc]
movs r0, #6
ands r0, r2
cmp r0, #0
beq _080DB260
lsls r0, r2, #0x1d
lsrs r0, r0, #0x1e
subs r0, #1
movs r1, #3
ands r0, r1
lsls r0, r0, #1
mov r1, sl
ands r1, r2
orrs r1, r0
strb r1, [r3, #0xc]
_080DB260:
ldr r0, [r5]
ldr r0, [r0, #4]
adds r0, r4, r0
mov r1, r8
strb r1, [r0, #0xe]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x10]
mov r0, sb
ands r0, r2
strb r0, [r1, #0x10]
ldr r0, [r5]
ldr r0, [r0, #4]
adds r0, r4, r0
mov r1, r8
strb r1, [r0, #0xf]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x10]
movs r0, #3
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x10]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x10]
movs r7, #5
rsbs r7, r7, #0
adds r0, r7, #0
ands r0, r2
strb r0, [r1, #0x10]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x10]
movs r0, #9
rsbs r0, r0, #0
mov ip, r0
ands r0, r2
strb r0, [r1, #0x10]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0xc]
mov r0, sb
ands r0, r2
strb r0, [r1, #0xc]
ldr r0, [r5]
ldr r0, [r0, #4]
adds r0, r4, r0
movs r1, #0xff
strb r1, [r0, #0x13]
ldr r0, [r5]
ldr r0, [r0, #4]
adds r0, r4, r0
movs r1, #1
rsbs r1, r1, #0
strb r1, [r0, #0x14]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x10]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x10]
ldr r0, [r5]
ldr r2, [r0, #4]
adds r2, r4, r2
ldrb r3, [r2, #0x15]
lsls r1, r3, #0x1f
lsrs r1, r1, #0x1f
lsls r1, r1, #2
adds r0, r7, #0
ands r0, r3
orrs r0, r1
strb r0, [r2, #0x15]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x15]
mov r0, sb
ands r0, r2
strb r0, [r1, #0x15]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x11]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x11]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x11]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x11]
ldr r0, [r5]
ldr r0, [r0, #4]
adds r2, r4, r0
ldrb r1, [r2, #0x11]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080DB358
ldrb r1, [r2, #0xc]
mov r0, sl
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #0xc]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x11]
adds r0, r7, #0
ands r0, r2
strb r0, [r1, #0x11]
_080DB358:
ldr r0, [r5]
ldr r0, [r0, #4]
adds r2, r4, r0
ldrb r1, [r2, #0x11]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080DB37E
ldrb r0, [r2, #0xb]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0xb]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x11]
mov r0, ip
ands r0, r2
strb r0, [r1, #0x11]
_080DB37E:
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x11]
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x11]
adds r4, #0x1c
subs r6, #1
cmp r6, #0
blt _080DB398
b _080DB224
_080DB398:
movs r6, #0
ldr r5, _080DB408
movs r7, #0
movs r4, #0
_080DB3A0:
ldr r3, [r5]
ldr r0, [r3, #4]
adds r0, r4, r0
ldrh r1, [r0, #6]
strh r1, [r0, #8]
ldr r2, [r3]
lsls r1, r6, #1
ldrb r0, [r2, #1]
lsls r0, r0, #3
adds r1, r1, r0
adds r2, #0x1c
adds r2, r2, r1
ldr r0, [r3, #4]
adds r0, r4, r0
ldrh r0, [r0, #6]
strh r0, [r2]
ldr r0, [r3, #4]
adds r0, r4, r0
ldrh r0, [r0, #6]
bl Contest_GetMoveExcitement
ldr r1, [r5]
ldr r2, [r1]
ldrb r1, [r2, #1]
lsls r1, r1, #2
adds r1, r6, r1
adds r2, #0x44
adds r2, r2, r1
strb r0, [r2]
ldr r0, [r5]
ldr r0, [r0, #4]
adds r0, r4, r0
strh r7, [r0, #6]
adds r4, #0x1c
adds r6, #1
cmp r6, #3
ble _080DB3A0
ldr r0, _080DB408
ldr r0, [r0]
ldr r2, [r0, #0x10]
ldrb r1, [r2, #1]
movs r0, #2
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #1]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DB408: .4byte 0x02039BD4
thumb_func_end sub_080DB204
thumb_func_start Contest_IsMonsTurnDisabled
Contest_IsMonsTurnDisabled: @ 0x080DB40C
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DB438
ldr r1, [r1]
ldr r2, [r1, #4]
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r2, r1, r2
ldrb r1, [r2, #0xc]
movs r0, #6
ands r0, r1
cmp r0, #0
bne _080DB434
ldrb r1, [r2, #0xb]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080DB43C
_080DB434:
movs r0, #1
b _080DB43E
.align 2, 0
_080DB438: .4byte 0x02039BD4
_080DB43C:
movs r0, #0
_080DB43E:
pop {r1}
bx r1
.align 2, 0
thumb_func_end Contest_IsMonsTurnDisabled
thumb_func_start sub_080DB444
sub_080DB444: @ 0x080DB444
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r4, #0
bl sub_080DB498
ldr r1, _080DB470
lsls r4, r4, #1
adds r1, r4, r1
strh r0, [r1]
ldr r2, _080DB474
adds r2, r4, r2
ldr r1, _080DB478
adds r4, r4, r1
ldrh r4, [r4]
adds r0, r0, r4
strh r0, [r2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DB470: .4byte 0x02039BB8
_080DB474: .4byte 0x02039BA8
_080DB478: .4byte 0x02039BA0
thumb_func_end sub_080DB444
thumb_func_start sub_080DB47C
sub_080DB47C: @ 0x080DB47C
push {r4, lr}
movs r4, #0
_080DB480:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_080DB444
adds r4, #1
cmp r4, #3
ble _080DB480
bl DetermineFinalStandings
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_080DB47C
thumb_func_start sub_080DB498
sub_080DB498: @ 0x080DB498
lsls r0, r0, #0x18
ldr r1, _080DB4AC
lsrs r0, r0, #0x17
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
lsls r0, r0, #0x11
asrs r0, r0, #0x10
bx lr
.align 2, 0
_080DB4AC: .4byte 0x02039BB0
thumb_func_end sub_080DB498
thumb_func_start DetermineFinalStandings
DetermineFinalStandings: @ 0x080DB4B0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x70
mov r0, sp
movs r1, #0
movs r2, #8
bl memset
movs r0, #0
mov sb, r0
mov r1, sp
adds r1, #8
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
_080DB4DE:
bl Random
strh r0, [r4]
movs r2, #0
cmp r2, sb
bge _080DB51C
mov r1, sp
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldrh r1, [r1]
cmp r0, r1
bne _080DB500
subs r4, #2
movs r7, #1
rsbs r7, r7, #0
add sb, r7
b _080DB51C
_080DB500:
adds r2, #1
cmp r2, sb
bge _080DB51C
lsls r0, r2, #1
mov r3, sp
adds r1, r3, r0
ldrh r0, [r4]
ldrh r1, [r1]
cmp r0, r1
bne _080DB500
subs r4, #2
movs r6, #1
rsbs r6, r6, #0
add sb, r6
_080DB51C:
adds r4, #2
movs r7, #1
add sb, r7
mov r0, sb
cmp r0, #3
ble _080DB4DE
movs r1, #0
mov sb, r1
mov r4, sp
ldr r6, _080DB62C
ldr r2, [sp, #0x64]
ldr r5, _080DB630
ldr r3, [sp, #0x68]
_080DB536:
mov r7, sb
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, #8]
ldr r0, [sp, #0x6c]
adds r1, r0, r1
mov r7, sb
str r7, [r1]
adds r4, #2
adds r6, #2
adds r2, #0x10
adds r5, #2
adds r3, #0x10
movs r0, #1
add sb, r0
mov r1, sb
cmp r1, #3
ble _080DB536
movs r3, #0
mov sb, r3
_080DB56A:
movs r4, #3
cmp r4, sb
ble _080DB5F4
add r7, sp, #0x48
ldr r6, [sp, #0x68]
str r6, [sp, #0x58]
ldr r0, [sp, #0x64]
adds r0, #8
str r0, [sp, #0x5c]
ldr r1, [sp, #0x6c]
str r1, [sp, #0x60]
_080DB580:
subs r3, r4, #1
mov sl, r3
mov r0, sl
adds r1, r4, #0
ldr r2, [sp, #0x64]
bl sub_080DB694
lsls r0, r0, #0x18
cmp r0, #0
beq _080DB5EE
mov r6, sl
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, #4]
ldr r0, [sp, #0x5c]
adds r0, r0, r2
mov r8, r0
ldr r0, [r0]
str r0, [r7, #8]
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, #4]
str r0, [r4]
ldr r0, [r7, #8]
str r0, [r3]
ldr r0, [r7, #0xc]
str r0, [r1]
_080DB5EE:
mov r4, sl
cmp r4, sb
bgt _080DB580
_080DB5F4:
movs r1, #1
add sb, r1
mov r3, sb
cmp r3, #2
ble _080DB56A
movs r6, #0
mov sb, r6
ldr r2, _080DB634
ldr r1, [sp, #0x6c]
_080DB606:
ldr r0, [r1]
adds r0, r0, r2
mov r7, sb
strb r7, [r0]
adds r1, #0x10
movs r0, #1
add sb, r0
mov r3, sb
cmp r3, #3
ble _080DB606
add sp, #0x70
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DB62C: .4byte 0x02039BA8
_080DB630: .4byte 0x02039BA0
_080DB634: .4byte 0x02039BC0
thumb_func_end DetermineFinalStandings
thumb_func_start SaveLinkContestResults
SaveLinkContestResults: @ 0x080DB638
push {lr}
ldr r0, _080DB678
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080DB672
ldr r0, _080DB67C
ldr r2, [r0]
ldr r1, _080DB680
ldr r0, _080DB684
ldrb r0, [r0]
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #1
ldr r0, _080DB688
ldrh r0, [r0]
lsls r0, r0, #3
adds r1, r1, r0
ldr r0, _080DB68C
adds r2, r2, r0
adds r2, r2, r1
ldrh r0, [r2]
adds r0, #1
ldr r1, _080DB690
cmp r0, r1
ble _080DB670
adds r0, r1, #0
_080DB670:
strh r0, [r2]
_080DB672:
pop {r0}
bx r0
.align 2, 0
_080DB678: .4byte 0x02039BCA
_080DB67C: .4byte 0x03005AF0
_080DB680: .4byte 0x02039BC0
_080DB684: .4byte 0x02039BC5
_080DB688: .4byte 0x02039BCC
_080DB68C: .4byte 0x00000624
_080DB690: .4byte 0x0000270F
thumb_func_end SaveLinkContestResults
thumb_func_start sub_080DB694
sub_080DB694: @ 0x080DB694
push {lr}
lsls r0, r0, #4
adds r0, r0, r2
lsls r1, r1, #4
adds r3, r1, r2
ldr r2, [r0]
ldr r1, [r3]
cmp r2, r1
blt _080DB6C4
cmp r2, r1
bgt _080DB6B6
ldr r2, [r0, #4]
ldr r1, [r3, #4]
cmp r2, r1
blt _080DB6C4
cmp r2, r1
ble _080DB6BA
_080DB6B6:
movs r2, #0
b _080DB6C6
_080DB6BA:
ldr r1, [r0, #8]
ldr r0, [r3, #8]
movs r2, #0
cmp r1, r0
bge _080DB6C6
_080DB6C4:
movs r2, #1
_080DB6C6:
adds r0, r2, #0
pop {r1}
bx r1
thumb_func_end sub_080DB694
thumb_func_start ContestPrintLinkStandby
ContestPrintLinkStandby: @ 0x080DB6CC
push {lr}
ldr r0, _080DB6E8
movs r1, #0
strh r1, [r0]
ldr r0, _080DB6EC
strh r1, [r0]
bl sub_080DB000
ldr r0, _080DB6F0
movs r1, #0
bl Contest_StartTextPrinter
pop {r0}
bx r0
.align 2, 0
_080DB6E8: .4byte 0x02022ACA
_080DB6EC: .4byte 0x02022AD2
_080DB6F0: .4byte 0x0824C140
thumb_func_end ContestPrintLinkStandby
thumb_func_start FillContestantWindowBgs
FillContestantWindowBgs: @ 0x080DB6F4
push {r4, r5, lr}
sub sp, #0xc
movs r5, #0x80
lsls r5, r5, #0x12
movs r4, #3
_080DB6FE:
lsrs r3, r5, #0x18
movs r0, #8
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #0
movs r1, #0
movs r2, #0x16
bl ContestBG_FillBoxWithTile
movs r0, #0xa0
lsls r0, r0, #0x13
adds r5, r5, r0
subs r4, #1
cmp r4, #0
bge _080DB6FE
add sp, #0xc
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end FillContestantWindowBgs
thumb_func_start sub_080DB72C
sub_080DB72C: @ 0x080DB72C
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DB750
cmp r0, #0
beq _080DB746
ldr r1, _080DB754
cmp r0, #1
beq _080DB746
ldr r1, _080DB758
cmp r0, #2
bne _080DB746
ldr r1, _080DB75C
_080DB746:
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r1}
bx r1
.align 2, 0
_080DB750: .4byte 0x00005011
_080DB754: .4byte 0x00006011
_080DB758: .4byte 0x00008011
_080DB75C: .4byte 0x00007011
thumb_func_end sub_080DB72C
thumb_func_start sub_080DB760
sub_080DB760: @ 0x080DB760
push {lr}
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
asrs r2, r0, #0x18
cmp r2, #0x10
ble _080DB77A
movs r1, #0x10
b _080DB784
_080DB77A:
movs r0, #0x10
rsbs r0, r0, #0
cmp r2, r0
bge _080DB784
movs r1, #0xf0
_080DB784:
lsls r0, r1, #0x18
asrs r0, r0, #0x18
pop {r1}
bx r1
thumb_func_end sub_080DB760
thumb_func_start sub_080DB78C
sub_080DB78C: @ 0x080DB78C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
adds r6, r1, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
lsls r6, r6, #0x10
lsrs r6, r6, #0x10
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
mov r8, r2
ldr r0, _080DB820
ldr r0, [r0]
ldr r0, [r0, #0x14]
lsls r1, r2, #2
adds r1, r1, r0
ldrb r0, [r1, #2]
movs r2, #4
orrs r0, r2
strb r0, [r1, #2]
ldr r0, _080DB824
movs r1, #0x14
bl CreateTask
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
lsls r5, r5, #0x10
asrs r5, r5, #0x10
adds r0, r5, #0
bl sub_080DB760
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r6, r6, #0x10
asrs r6, r6, #0x10
adds r5, r5, r6
lsls r5, r5, #0x10
asrs r5, r5, #0x10
adds r0, r5, #0
bl sub_080DB760
lsls r4, r4, #0x18
asrs r4, r4, #0x18
subs r0, r0, r4
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
mov r0, r8
bl sub_080DB72C
ldr r2, _080DB828
lsls r3, r7, #2
adds r0, r3, r7
lsls r0, r0, #3
adds r1, r0, r2
adds r0, r4, #0
cmp r4, #0
bge _080DB804
rsbs r0, r4, #0
_080DB804:
strh r0, [r1, #8]
lsls r0, r5, #0x18
asrs r0, r0, #0x18
strh r0, [r1, #0xa]
cmp r4, #0
bgt _080DB818
cmp r4, #0
bne _080DB82C
cmp r0, #0
ble _080DB82C
_080DB818:
movs r0, #1
strh r0, [r1, #0xc]
b _080DB83A
.align 2, 0
_080DB820: .4byte 0x02039BD4
_080DB824: .4byte 0x080DB859
_080DB828: .4byte 0x03005B60
_080DB82C:
ldr r2, _080DB850
lsls r3, r7, #2
adds r0, r3, r7
lsls r0, r0, #3
adds r0, r0, r2
ldr r1, _080DB854
strh r1, [r0, #0xc]
_080DB83A:
adds r0, r3, r7
lsls r0, r0, #3
adds r0, r0, r2
mov r1, r8
strh r1, [r0, #0xe]
adds r0, r7, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_080DB850: .4byte 0x03005B60
_080DB854: .4byte 0x0000FFFF
thumb_func_end sub_080DB78C
thumb_func_start sub_080DB858
sub_080DB858: @ 0x080DB858
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r1, _080DB8B8
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r4, r0, r1
ldrb r0, [r4, #0xe]
mov sb, r0
ldrh r3, [r4, #8]
ldrh r1, [r4, #0xa]
ldrh r0, [r4, #0x1c]
adds r0, #1
strh r0, [r4, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xe
bgt _080DB88A
b _080DBA0C
_080DB88A:
movs r0, #0
strh r0, [r4, #0x1c]
ldrh r2, [r4, #0xa]
movs r5, #0xa
ldrsh r0, [r4, r5]
cmp r0, #0
bne _080DB8C0
adds r0, r7, #0
bl DestroyTask
ldr r0, _080DB8BC
ldr r0, [r0]
ldr r0, [r0, #0x14]
mov r2, sb
lsls r1, r2, #2
adds r1, r1, r0
ldrb r2, [r1, #2]
movs r0, #5
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #2]
b _080DBA0C
.align 2, 0
_080DB8B8: .4byte 0x03005B60
_080DB8BC: .4byte 0x02039BD4
_080DB8C0:
cmp r3, #0
bne _080DB908
lsls r0, r1, #0x10
mov r8, r0
cmp r0, #0
bge _080DB8DE
mov r0, sb
bl sub_080DB72C
adds r0, #2
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldrh r0, [r4, #0xa]
adds r0, #1
b _080DB8EC
_080DB8DE:
mov r0, sb
bl sub_080DB72C
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldrh r0, [r4, #0xa]
subs r0, #1
_080DB8EC:
strh r0, [r4, #0xa]
ldr r1, _080DB904
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #8]
adds r2, r1, #1
strh r2, [r0, #8]
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
b _080DB974
.align 2, 0
_080DB904: .4byte 0x03005B60
_080DB908:
movs r3, #0xc
ldrsh r0, [r4, r3]
cmp r0, #0
bge _080DB942
lsls r0, r1, #0x10
mov r8, r0
cmp r0, #0
bge _080DB930
ldrh r0, [r4, #8]
adds r1, r0, #1
strh r1, [r4, #8]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
adds r0, r2, #1
strh r0, [r4, #0xa]
mov r0, sb
bl sub_080DB72C
adds r0, #2
b _080DB970
_080DB930:
ldrh r0, [r4, #8]
subs r0, #1
strh r0, [r4, #8]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r6, #0
subs r0, r2, #1
strh r0, [r4, #0xa]
b _080DB974
_080DB942:
lsls r0, r1, #0x10
mov r8, r0
cmp r0, #0
bge _080DB95C
ldrh r0, [r4, #8]
subs r0, #1
strh r0, [r4, #8]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r6, #0
adds r0, r2, #1
strh r0, [r4, #0xa]
b _080DB974
_080DB95C:
ldrh r0, [r4, #8]
adds r1, r0, #1
strh r1, [r4, #8]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
subs r0, r2, #1
strh r0, [r4, #0xa]
mov r0, sb
bl sub_080DB72C
_080DB970:
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
_080DB974:
str r5, [sp, #0xc]
movs r0, #0
mov sl, r0
cmp r5, #7
bls _080DB98A
movs r2, #1
mov sl, r2
adds r0, r5, #0
subs r0, #8
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
_080DB98A:
adds r2, r5, #0
adds r2, #0x16
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldr r0, _080DB9DC
add r0, sb
ldrb r0, [r0]
lsls r3, r0, #2
adds r3, r3, r0
adds r3, #2
add r3, sl
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
movs r0, #1
str r0, [sp]
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #0
adds r1, r6, #0
bl ContestBG_FillBoxWithTile
mov r3, r8
cmp r3, #0
ble _080DB9E8
movs r0, #0x60
bl PlaySE
ldr r4, _080DB9E0
adds r0, r4, #0
bl m4aMPlayImmInit
ldr r1, _080DB9E4
ldr r0, [sp, #0xc]
lsls r2, r0, #0x18
asrs r2, r2, #0x10
adds r0, r4, #0
bl m4aMPlayPitchControl
b _080DB9EE
.align 2, 0
_080DB9DC: .4byte 0x02039BC6
_080DB9E0: .4byte 0x03007510
_080DB9E4: .4byte 0x0000FFFF
_080DB9E8:
movs r0, #0x16
bl PlaySE
_080DB9EE:
mov r2, sl
cmp r2, #0
bne _080DBA0C
cmp r5, #0
bne _080DBA0C
cmp r6, #0
bne _080DBA0C
ldr r0, _080DBA1C
lsls r1, r7, #2
adds r1, r1, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0xc]
rsbs r0, r0, #0
strh r0, [r1, #0xc]
_080DBA0C:
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DBA1C: .4byte 0x03005B60
thumb_func_end sub_080DB858
thumb_func_start sub_080DBA20
sub_080DBA20: @ 0x080DBA20
push {r4, r5, lr}
ldr r0, _080DBA58
bl LoadSpriteSheet
movs r4, #0
ldr r5, _080DBA5C
_080DBA2C:
ldr r0, _080DBA60
adds r0, r4, r0
ldrb r0, [r0]
adds r0, r0, r5
ldrb r2, [r0]
ldr r0, _080DBA64
movs r1, #0xb4
movs r3, #1
bl CreateSprite
ldr r1, _080DBA68
ldr r1, [r1]
ldr r2, [r1, #0x14]
lsls r1, r4, #2
adds r1, r1, r2
strb r0, [r1]
adds r4, #1
cmp r4, #3
ble _080DBA2C
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DBA58: .4byte 0x085609D8
_080DBA5C: .4byte 0x085609D0
_080DBA60: .4byte 0x02039BC6
_080DBA64: .4byte 0x08560A34
_080DBA68: .4byte 0x02039BD4
thumb_func_end sub_080DBA20
thumb_func_start sub_080DBA6C
sub_080DBA6C: @ 0x080DBA6C
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
ldr r4, _080DBAB0
ldr r0, [r4]
ldr r2, [r0, #0x14]
lsls r3, r6, #2
adds r2, r3, r2
ldrb r0, [r2, #2]
movs r1, #1
orrs r0, r1
strb r0, [r2, #2]
ldr r1, [r4]
ldr r0, [r1, #0x14]
adds r3, r3, r0
ldrb r7, [r3]
ldr r1, [r1, #4]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #2
adds r0, r0, r1
movs r1, #4
ldrsh r0, [r0, r1]
movs r1, #0xa
bl __divsi3
lsls r0, r0, #0x11
lsrs r5, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x38
ble _080DBAB4
movs r5, #0x38
b _080DBABA
.align 2, 0
_080DBAB0: .4byte 0x02039BD4
_080DBAB4:
cmp r0, #0
bge _080DBABA
movs r5, #0
_080DBABA:
ldr r2, _080DBAEC
lsls r3, r7, #4
adds r0, r3, r7
lsls r0, r0, #2
adds r4, r0, r2
movs r0, #0x3e
adds r0, r0, r4
mov ip, r0
ldrb r1, [r0]
movs r0, #5
rsbs r0, r0, #0
ands r0, r1
mov r1, ip
strb r0, [r1]
strh r6, [r4, #0x2e]
strh r5, [r4, #0x30]
lsls r0, r5, #0x10
asrs r0, r0, #0x10
movs r5, #0x24
ldrsh r1, [r4, r5]
cmp r0, r1
ble _080DBAF0
movs r0, #1
b _080DBAF2
.align 2, 0
_080DBAEC: .4byte 0x020205AC
_080DBAF0:
ldr r0, _080DBB08
_080DBAF2:
strh r0, [r4, #0x32]
adds r0, r3, r7
lsls r0, r0, #2
adds r1, r2, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _080DBB0C
str r1, [r0]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DBB08: .4byte 0x0000FFFF
_080DBB0C: .4byte 0x080DBB6D
thumb_func_end sub_080DBA6C
thumb_func_start sub_080DBB10
sub_080DBB10: @ 0x080DBB10
push {r4, lr}
movs r4, #0
_080DBB14:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_080DBA6C
adds r4, #1
cmp r4, #3
ble _080DBB14
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_080DBB10
thumb_func_start sub_080DBB28
sub_080DBB28: @ 0x080DBB28
push {r4, lr}
movs r2, #0
ldr r3, _080DBB60
ldr r0, [r3]
ldr r0, [r0, #0x14]
ldrb r1, [r0, #2]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080DBB56
movs r4, #1
_080DBB3E:
adds r2, #1
cmp r2, #3
bgt _080DBB56
ldr r0, [r3]
ldr r1, [r0, #0x14]
lsls r0, r2, #2
adds r0, r0, r1
ldrb r1, [r0, #2]
adds r0, r4, #0
ands r0, r1
cmp r0, #0
beq _080DBB3E
_080DBB56:
cmp r2, #4
beq _080DBB64
movs r0, #0
b _080DBB66
.align 2, 0
_080DBB60: .4byte 0x02039BD4
_080DBB64:
movs r0, #1
_080DBB66:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_080DBB28
thumb_func_start sub_080DBB6C
sub_080DBB6C: @ 0x080DBB6C
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 _080DBBA4
ldr r0, _080DBB9C
ldr r0, [r0]
movs r2, #0x2e
ldrsh r1, [r3, r2]
ldr r0, [r0, #0x14]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1, #2]
movs r0, #2
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #2]
ldr r0, _080DBBA0
str r0, [r3, #0x1c]
b _080DBBAA
.align 2, 0
_080DBB9C: .4byte 0x02039BD4
_080DBBA0: .4byte 0x08007141
_080DBBA4:
ldrh r0, [r3, #0x32]
adds r0, r2, r0
strh r0, [r3, #0x24]
_080DBBAA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_080DBB6C
thumb_func_start sub_080DBBB0
sub_080DBBB0: @ 0x080DBBB0
push {r4, r5, r6, lr}
movs r2, #0
ldr r6, _080DBBE4
ldr r5, _080DBBE8
ldr r4, _080DBBEC
ldr r3, _080DBBF0
_080DBBBC:
ldr r0, [r5]
ldr r1, [r0, #0x14]
lsls r0, r2, #2
adds r0, r0, r1
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r6
adds r0, r2, r3
ldrb r0, [r0]
adds r0, r0, r4
ldrb r0, [r0]
strh r0, [r1, #0x22]
adds r2, #1
cmp r2, #3
ble _080DBBBC
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DBBE4: .4byte 0x020205AC
_080DBBE8: .4byte 0x02039BD4
_080DBBEC: .4byte 0x085609D0
_080DBBF0: .4byte 0x02039BC6
thumb_func_end sub_080DBBB0
thumb_func_start sub_080DBBF4
sub_080DBBF4: @ 0x080DBBF4
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
movs r3, #0
ldr r7, _080DBC24
ldr r5, _080DBC28
ldr r4, _080DBC2C
movs r2, #0
_080DBC04:
adds r0, r3, r7
ldrb r0, [r0]
cmp r0, #1
bls _080DBC46
cmp r6, #0
bne _080DBC30
ldr r0, [r4]
ldr r0, [r0, #0x14]
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #0xb4
b _080DBC44
.align 2, 0
_080DBC24: .4byte 0x02039BC6
_080DBC28: .4byte 0x020205AC
_080DBC2C: .4byte 0x02039BD4
_080DBC30:
ldr r0, [r4]
ldr r0, [r0, #0x14]
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #0x80
lsls r1, r1, #1
_080DBC44:
strh r1, [r0, #0x20]
_080DBC46:
adds r2, #4
adds r3, #1
cmp r3, #3
ble _080DBC04
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_080DBBF4
thumb_func_start sub_080DBC54
sub_080DBC54: @ 0x080DBC54
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _080DBCD8
bl LoadSpritePalette
movs r5, #0
ldr r7, _080DBCDC
ldr r0, _080DBCE0
mov r8, r0
movs r6, #0
_080DBC6A:
lsls r0, r5, #3
ldr r1, _080DBCE4
adds r0, r0, r1
bl LoadCompressedSpriteSheet
ldr r0, _080DBCE8
adds r0, r6, r0
ldr r2, _080DBCEC
ldr r1, _080DBCF0
adds r1, r5, r1
ldrb r1, [r1]
adds r1, 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, #1]
ldr r0, [r7]
ldr r0, [r0, #0x14]
adds r0, r4, r0
ldrb r1, [r0, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
add r0, r8
ldr r1, _080DBCF4
bl SetSubspriteTables
ldr r0, [r7]
ldr r0, [r0, #0x14]
adds r4, r4, r0
ldrb r1, [r4, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
add r0, r8
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
adds r6, #0x18
adds r5, #1
cmp r5, #3
ble _080DBC6A
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DBCD8: .4byte 0x08560A6C
_080DBCDC: .4byte 0x02039BD4
_080DBCE0: .4byte 0x020205AC
_080DBCE4: .4byte 0x08560A4C
_080DBCE8: .4byte 0x08560A7C
_080DBCEC: .4byte 0x085609D4
_080DBCF0: .4byte 0x02039BC6
_080DBCF4: .4byte 0x08560AE4
thumb_func_end sub_080DBC54
thumb_func_start CreateApplauseMeterSprite
CreateApplauseMeterSprite: @ 0x080DBCF8
push {lr}
ldr r0, _080DBD38
bl LoadCompressedSpriteSheet
ldr r0, _080DBD3C
bl LoadSpritePalette
ldr r0, _080DBD40
movs r1, #0x1e
movs r2, #0x2c
movs r3, #1
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DBD44
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r2
adds r1, #0x3e
ldrb r2, [r1]
movs r3, #4
orrs r2, r3
strb r2, [r1]
ldr r1, _080DBD48
ldr r1, [r1]
ldr r1, [r1]
adds r1, #0x58
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080DBD38: .4byte 0x08560B14
_080DBD3C: .4byte 0x08560B1C
_080DBD40: .4byte 0x08560B2C
_080DBD44: .4byte 0x020205AC
_080DBD48: .4byte 0x02039BD4
thumb_func_end CreateApplauseMeterSprite
thumb_func_start sub_080DBD4C
sub_080DBD4C: @ 0x080DBD4C
push {r4, lr}
ldr r0, _080DBD88
movs r1, #0x1e
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DBD8C
ldr r1, [r1]
ldr r1, [r1]
strb r0, [r1, #0xd]
movs r2, #0
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
ldr r4, _080DBD90
movs r3, #0xff
_080DBD6E:
lsls r0, r2, #3
adds r0, r0, r1
adds r0, r0, r4
strh r3, [r0]
adds r0, r2, #1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #3
bls _080DBD6E
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DBD88: .4byte 0x080DBE8D
_080DBD8C: .4byte 0x02039BD4
_080DBD90: .4byte 0x03005B68
thumb_func_end sub_080DBD4C
thumb_func_start sub_080DBD94
sub_080DBD94: @ 0x080DBD94
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r3, _080DBDD0
ldr r1, _080DBDD4
ldr r5, [r1]
ldr r1, [r5]
ldrb r2, [r1, #0xd]
lsls r1, r2, #2
adds r1, r1, r2
adds r1, r1, r0
lsls r1, r1, #3
adds r3, #8
adds r1, r1, r3
movs r4, #0
strh r4, [r1]
lsls r0, r0, #2
adds r0, #1
lsls r0, r0, #1
ldr r1, [r5]
ldrb r2, [r1, #0xd]
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
strh r4, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DBDD0: .4byte 0x03005B60
_080DBDD4: .4byte 0x02039BD4
thumb_func_end sub_080DBD94
thumb_func_start sub_080DBDD8
sub_080DBDD8: @ 0x080DBDD8
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r0, _080DBE00
movs r1, #0x1f
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DBE04
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
strh r4, [r1, #8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DBE00: .4byte 0x080DBE09
_080DBE04: .4byte 0x03005B60
thumb_func_end sub_080DBDD8
thumb_func_start sub_080DBE08
sub_080DBE08: @ 0x080DBE08
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r6, r0, #0
ldr r2, _080DBE80
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #8]
adds r5, r0, #0
ldr r0, _080DBE84
ldr r4, [r0]
ldr r0, [r4]
ldrb r1, [r0, #0xd]
lsls r0, r1, #2
adds r0, r0, r1
adds r0, r0, r5
lsls r0, r0, #3
adds r7, r2, #0
adds r7, #8
adds r1, r0, r7
movs r2, #0
ldrsh r0, [r1, r2]
cmp r0, #0
beq _080DBE40
cmp r0, #0xff
bne _080DBE7A
_080DBE40:
movs r3, #0
movs r0, #0xff
strh r0, [r1]
lsls r1, r5, #2
adds r1, #1
lsls r1, r1, #1
ldr r0, [r4]
ldrb r2, [r0, #0xd]
lsls r0, r2, #2
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
adds r1, r1, r7
strh r3, [r1]
ldr r0, [r4]
adds r0, #0x14
adds r0, r0, r5
ldrb r0, [r0]
adds r0, #5
lsls r0, r0, #4
adds r0, #6
ldr r3, _080DBE88
movs r1, #2
movs r2, #0
bl BlendPalette
adds r0, r6, #0
bl DestroyTask
_080DBE7A:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DBE80: .4byte 0x03005B60
_080DBE84: .4byte 0x02039BD4
_080DBE88: .4byte 0x00004BFF
thumb_func_end sub_080DBE08
thumb_func_start sub_080DBE8C
sub_080DBE8C: @ 0x080DBE8C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r6, #0
lsls r1, r0, #2
adds r1, r1, r0
mov sb, r1
lsls r7, r1, #3
ldr r0, _080DBEDC
mov r8, r0
movs r1, #8
rsbs r1, r1, #0
add r1, r8
mov sl, r1
_080DBEB0:
lsls r0, r6, #0x1a
lsrs r3, r0, #0x18
lsls r0, r3, #1
adds r0, r0, r7
mov r4, r8
adds r2, r0, r4
ldrh r4, [r2]
movs r5, #0
ldrsh r0, [r2, r5]
cmp r0, #0xff
beq _080DBF2E
adds r0, r3, #1
lsls r1, r0, #1
adds r1, r1, r7
add r1, r8
movs r5, #0
ldrsh r1, [r1, r5]
adds r5, r0, #0
cmp r1, #0
bne _080DBEE0
adds r0, r4, #1
b _080DBEE2
.align 2, 0
_080DBEDC: .4byte 0x03005B68
_080DBEE0:
subs r0, r4, #1
_080DBEE2:
strh r0, [r2]
lsls r1, r3, #1
mov r0, sb
lsls r2, r0, #3
adds r0, r1, r2
mov r3, sl
adds r3, #8
adds r0, r0, r3
movs r4, #0
ldrsh r0, [r0, r4]
adds r4, r1, #0
cmp r0, #0x10
beq _080DBF00
cmp r0, #0
bne _080DBF0E
_080DBF00:
lsls r0, r5, #1
adds r0, r0, r2
adds r0, r0, r3
ldrh r1, [r0]
movs r2, #1
eors r1, r2
strh r1, [r0]
_080DBF0E:
ldr r0, _080DBF48
ldr r0, [r0]
ldr r0, [r0]
adds r0, #0x14
adds r0, r0, r6
ldrb r0, [r0]
adds r0, #5
lsls r0, r0, #4
adds r0, #6
adds r1, r4, r7
add r1, r8
ldrb r2, [r1]
movs r1, #2
ldr r3, _080DBF4C
bl BlendPalette
_080DBF2E:
adds r0, r6, #1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #3
bls _080DBEB0
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DBF48: .4byte 0x02039BD4
_080DBF4C: .4byte 0x00004BFF
thumb_func_end sub_080DBE8C
thumb_func_start sub_080DBF50
sub_080DBF50: @ 0x080DBF50
push {r4, lr}
ldr r0, _080DBF78
movs r1, #0x1e
bl CreateTask
ldr r1, _080DBF7C
ldr r1, [r1]
ldr r1, [r1]
strb r0, [r1, #0xe]
movs r4, #0
_080DBF64:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_080DBF80
adds r4, #1
cmp r4, #3
ble _080DBF64
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DBF78: .4byte 0x080DC035
_080DBF7C: .4byte 0x02039BD4
thumb_func_end sub_080DBF50
thumb_func_start sub_080DBF80
sub_080DBF80: @ 0x080DBF80
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r3, _080DBFC0
ldr r1, _080DBFC4
ldr r4, [r1]
ldr r1, [r4]
ldrb r2, [r1, #0xe]
lsls r1, r2, #2
adds r1, r1, r2
adds r1, r1, r0
lsls r1, r1, #3
adds r3, #8
adds r1, r1, r3
movs r5, #0
movs r2, #0xff
strh r2, [r1]
lsls r0, r0, #2
adds r0, #1
lsls r0, r0, #1
ldr r1, [r4]
ldrb r2, [r1, #0xe]
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #3
adds r0, r0, r1
adds r0, r0, r3
strh r5, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DBFC0: .4byte 0x03005B60
_080DBFC4: .4byte 0x02039BD4
thumb_func_end sub_080DBF80
thumb_func_start sub_080DBFC8
sub_080DBFC8: @ 0x080DBFC8
push {r4, lr}
movs r4, #0
_080DBFCC:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_080DBFE0
adds r4, #1
cmp r4, #3
ble _080DBFCC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_080DBFC8
thumb_func_start sub_080DBFE0
sub_080DBFE0: @ 0x080DBFE0
push {r4, r5, r6, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r4, #0
bl sub_080DBF80
adds r0, r4, #5
lsls r2, r0, #5
ldr r3, _080DC024
adds r6, r2, r3
ldr r5, _080DC028
adds r2, r2, r5
ldr r1, _080DC02C
str r6, [r1]
str r2, [r1, #4]
ldr r2, _080DC030
str r2, [r1, #8]
ldr r6, [r1, #8]
lsls r0, r0, #4
adds r4, #0xc
adds r0, r0, r4
lsls r0, r0, #1
subs r3, #0x14
adds r3, r0, r3
subs r5, #0x14
adds r0, r0, r5
str r3, [r1]
str r0, [r1, #4]
str r2, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DC024: .4byte 0x020373C8
_080DC028: .4byte 0x020377C8
_080DC02C: .4byte 0x040000D4
_080DC030: .4byte 0x80000001
thumb_func_end sub_080DBFE0
thumb_func_start sub_080DC034
sub_080DC034: @ 0x080DC034
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r7, #0
lsls r1, r0, #2
adds r1, r1, r0
mov sb, r1
lsls r6, r1, #3
ldr r0, _080DC09C
mov r8, r0
ldr r1, _080DC0A0
mov sl, r1
_080DC054:
lsls r0, r7, #0x1a
lsrs r3, r0, #0x18
lsls r0, r3, #1
adds r0, r0, r6
mov r4, r8
adds r2, r0, r4
movs r5, #0
ldrsh r0, [r2, r5]
cmp r0, #0xff
beq _080DC0FA
adds r0, r3, #2
lsls r0, r0, #1
adds r0, r0, r6
adds r1, r0, r4
ldrh r0, [r1]
adds r0, #1
movs r4, #0
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _080DC0FA
strh r4, [r1]
adds r0, r3, #1
lsls r1, r0, #1
adds r1, r1, r6
add r1, r8
movs r4, #0
ldrsh r1, [r1, r4]
adds r4, r0, #0
cmp r1, #0
bne _080DC0A4
ldrh r0, [r2]
adds r0, #1
b _080DC0A8
.align 2, 0
_080DC09C: .4byte 0x03005B68
_080DC0A0: .4byte 0x00004BFF
_080DC0A4:
ldrh r0, [r2]
subs r0, #1
_080DC0A8:
strh r0, [r2]
lsls r1, r3, #1
mov r5, sb
lsls r2, r5, #3
adds r0, r1, r2
ldr r3, _080DC114
adds r3, #8
adds r0, r0, r3
movs r5, #0
ldrsh r0, [r0, r5]
adds r5, r1, #0
cmp r0, #0x10
beq _080DC0C6
cmp r0, #0
bne _080DC0D4
_080DC0C6:
lsls r0, r4, #1
adds r0, r0, r2
adds r0, r0, r3
ldrh r1, [r0]
movs r2, #1
eors r1, r2
strh r1, [r0]
_080DC0D4:
adds r4, r7, #5
lsls r4, r4, #4
adds r0, r4, #0
adds r0, #0xa
adds r5, r5, r6
add r5, r8
ldrb r2, [r5]
movs r1, #1
mov r3, sl
bl BlendPalette
adds r4, #0xc
adds r4, r4, r7
ldrb r2, [r5]
adds r0, r4, #0
movs r1, #1
mov r3, sl
bl BlendPalette
_080DC0FA:
adds r0, r7, #1
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
cmp r7, #3
bls _080DC054
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DC114: .4byte 0x03005B60
thumb_func_end sub_080DC034
thumb_func_start sub_080DC118
sub_080DC118: @ 0x080DC118
push {lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _080DC140
ldr r0, [r0]
ldr r1, [r0, #4]
lsls r0, r2, #3
subs r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080DC144
adds r0, r2, #0
bl sub_080DBD94
b _080DC14A
.align 2, 0
_080DC140: .4byte 0x02039BD4
_080DC144:
adds r0, r2, #0
bl sub_080DBDD8
_080DC14A:
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080DC118
thumb_func_start sub_080DC150
sub_080DC150: @ 0x080DC150
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0xc]
ldr r6, _080DC2AC
adds r6, r0, r6
ldrb r0, [r6]
lsls r5, r0, #2
adds r5, r5, r0
lsls r5, r5, #0x1b
movs r0, #0x80
lsls r0, r0, #0x16
adds r5, r5, r0
lsrs r5, r5, #0x18
ldr r1, [sp, #0xc]
lsls r4, r1, #3
ldr r0, _080DC2B0
adds r0, r4, r0
bl LoadCompressedSpriteSheet
ldr r0, _080DC2B4
adds r4, r4, r0
adds r0, r4, #0
bl LoadSpritePalette
ldr r2, [sp, #0xc]
lsls r4, r2, #1
adds r4, r4, r2
lsls r4, r4, #3
ldr r0, _080DC2B8
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0xb8
adds r2, r5, #0
movs r3, #0x1d
bl CreateSprite
mov sb, r0
mov r3, sb
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
mov sb, 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, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
lsls r5, r0, #4
add r5, r8
lsls r5, r5, #2
ldr r1, _080DC2BC
adds r5, r5, r1
ldrh r2, [r5, #4]
lsls r1, r2, #0x16
lsrs r1, r1, #0x16
adds r1, #0x40
ldr r3, _080DC2C0
adds r0, r3, #0
ands r1, r0
ldr r0, _080DC2C4
ands r0, r2
orrs r0, r1
strh r0, [r5, #4]
movs r4, #0xc0
lsls r4, r4, #0x13
ldrb r0, [r6]
lsls r3, r0, #2
adds r3, r3, r0
lsls r3, r3, #6
ldr r0, _080DC2C8
adds r3, r3, r0
ldr r7, _080DC2CC
ldr r0, [r7]
ldr r0, [r0, #0x34]
str r0, [sp]
movs r0, #0
movs r1, #3
adds r2, r4, #0
bl CopySpriteTiles
ldrb r0, [r6]
lsls r3, r0, #2
adds r3, r3, r0
lsls r3, r3, #6
ldr r1, _080DC2D0
adds r3, r3, r1
ldr r0, [r7]
ldr r0, [r0, #0x38]
str r0, [sp]
movs r0, #0
movs r1, #3
adds r2, r4, #0
bl CopySpriteTiles
movs r4, #0
str r4, [sp, #4]
ldr r0, [r7]
ldr r1, [r0, #0x34]
movs r6, #0xa0
lsls r6, r6, #3
adds r1, r1, r6
ldr r2, _080DC2D4
mov sl, r2
add r0, sp, #4
bl CpuSet
str r4, [sp, #8]
add r0, sp, #8
ldr r1, [r7]
ldr r1, [r1, #0x38]
adds r1, r1, r6
mov r2, sl
bl CpuSet
ldr r0, [r7]
ldr r0, [r0, #0x34]
mov r3, sb
lsls r4, r3, #4
add r4, sb
lsls r4, r4, #2
ldr r1, _080DC2BC
adds r4, r4, r1
ldrh r1, [r4, #4]
lsls r1, r1, #0x16
lsrs r1, r1, #0x11
ldr r6, _080DC2D8
adds r1, r1, r6
movs r2, #0x80
lsls r2, r2, #4
mov sl, r2
movs r3, #1
bl RequestDma3Copy
ldr r0, [r7]
ldr r0, [r0, #0x38]
ldrh r1, [r5, #4]
lsls r1, r1, #0x16
lsrs r1, r1, #0x11
adds r1, r1, r6
mov r2, sl
movs r3, #1
bl RequestDma3Copy
mov r3, r8
strh r3, [r4, #0x2e]
mov r0, sb
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, sb
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_080DC2AC: .4byte 0x02039BC6
_080DC2B0: .4byte 0x08562888
_080DC2B4: .4byte 0x085628A8
_080DC2B8: .4byte 0x08562910
_080DC2BC: .4byte 0x020205AC
_080DC2C0: .4byte 0x000003FF
_080DC2C4: .4byte 0xFFFFFC00
_080DC2C8: .4byte 0x0600E026
_080DC2CC: .4byte 0x02039BD4
_080DC2D0: .4byte 0x0600E036
_080DC2D4: .4byte 0x050000C0
_080DC2D8: .4byte 0x06010000
thumb_func_end sub_080DC150
thumb_func_start sub_080DC2DC
sub_080DC2DC: @ 0x080DC2DC
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DC314
lsls r5, r0, #4
adds r5, r5, r0
lsls r5, r5, #2
adds r5, r5, r1
ldrh r0, [r5, #0x2e]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r0, #4
adds r4, r4, r0
lsls r4, r4, #2
adds r4, 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
.align 2, 0
_080DC314: .4byte 0x020205AC
thumb_func_end sub_080DC2DC
thumb_func_start sub_080DC318
sub_080DC318: @ 0x080DC318
push {lr}
movs r1, #0xfd
lsls r1, r1, #6
movs r0, #0x50
bl SetGpuReg
ldr r1, _080DC330
movs r0, #0x52
bl SetGpuReg
pop {r0}
bx r0
.align 2, 0
_080DC330: .4byte 0x00000907
thumb_func_end sub_080DC318
thumb_func_start sub_080DC334
sub_080DC334: @ 0x080DC334
push {lr}
movs r0, #0x50
movs r1, #0
bl SetGpuReg
movs r0, #0x52
movs r1, #0
bl SetGpuReg
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080DC334
thumb_func_start sub_080DC34C
sub_080DC34C: @ 0x080DC34C
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
adds r4, r0, #0
mov sb, r1
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
mov r0, sb
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
bl sub_080DC318
ldr r0, _080DC3C4
ldr r1, [r0]
ldr r2, _080DC3C8
mov r8, r2
lsls r6, r4, #4
adds r6, r6, r4
lsls r6, r6, #2
adds r0, r6, r2
movs r3, #0x30
ldrsh r2, [r0, r3]
ldr r1, [r1, #0x14]
lsls r2, r2, #2
adds r2, r2, r1
ldrb r1, [r2, #2]
movs r3, #2
orrs r1, r3
strb r1, [r2, #2]
ldrh r5, [r0, #0x2e]
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
movs r1, #1
bl StartSpriteAffineAnim
lsls r4, r5, #4
adds r4, r4, r5
lsls r4, r4, #2
mov r1, r8
adds r0, r4, r1
movs r1, #1
bl StartSpriteAffineAnim
movs r2, #0x1c
add r8, r2
add r6, r8
ldr r0, _080DC3CC
str r0, [r6]
add r4, r8
ldr r0, _080DC3D0
str r0, [r4]
mov r3, sb
cmp r3, #0
bne _080DC3D4
movs r0, #0x65
bl PlaySE
b _080DC3DA
.align 2, 0
_080DC3C4: .4byte 0x02039BD4
_080DC3C8: .4byte 0x020205AC
_080DC3CC: .4byte 0x080DC3E9
_080DC3D0: .4byte 0x08007141
_080DC3D4:
movs r0, #2
bl PlaySE
_080DC3DA:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080DC34C
thumb_func_start sub_080DC3E8
sub_080DC3E8: @ 0x080DC3E8
push {lr}
mov ip, r0
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080DC430
mov r0, ip
ldrh r1, [r0, #0x2e]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
ldr r2, _080DC434
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r0, r2
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
lsls r0, r0, #0x1a
cmp r0, #0
bge _080DC430
mov r3, ip
adds r3, #0x3e
ldrb r0, [r3]
movs r2, #4
orrs r0, r2
strb r0, [r3]
adds r1, #0x3e
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r0, _080DC438
mov r1, ip
str r0, [r1, #0x1c]
_080DC430:
pop {r0}
bx r0
.align 2, 0
_080DC434: .4byte 0x020205AC
_080DC438: .4byte 0x080DC43D
thumb_func_end sub_080DC3E8
thumb_func_start sub_080DC43C
sub_080DC43C: @ 0x080DC43C
push {lr}
ldr r1, _080DC468
ldr r1, [r1]
movs r3, #0x30
ldrsh r2, [r0, r3]
ldr r1, [r1, #0x14]
lsls r2, r2, #2
adds r2, r2, r1
ldrb r3, [r2, #2]
movs r1, #3
rsbs r1, r1, #0
ands r1, r3
strb r1, [r2, #2]
ldrh r0, [r0, #0x2e]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl sub_080DC2DC
bl sub_080DC334
pop {r0}
bx r0
.align 2, 0
_080DC468: .4byte 0x02039BD4
thumb_func_end sub_080DC43C
thumb_func_start ContestDebugTogglePointTotal
ContestDebugTogglePointTotal: @ 0x080DC46C
push {lr}
ldr r0, _080DC484
movs r1, #0xd0
lsls r1, r1, #9
adds r2, r0, r1
ldrb r1, [r2]
adds r3, r0, #0
cmp r1, #1
bne _080DC488
movs r0, #0
b _080DC48A
.align 2, 0
_080DC484: .4byte 0x02000000
_080DC488:
movs r0, #1
_080DC48A:
strb r0, [r2]
movs r1, #0xd0
lsls r1, r1, #9
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, #0
bne _080DC4A2
bl DrawContestantWindowText
bl SwapMoveDescAndContestTilemaps
b _080DC4A6
_080DC4A2:
bl ContestDebugDoPrint
_080DC4A6:
pop {r0}
bx r0
.align 2, 0
thumb_func_end ContestDebugTogglePointTotal
thumb_func_start ContestDebugDoPrint
ContestDebugDoPrint: @ 0x080DC4AC
push {r4, r5, lr}
sub sp, #8
ldr r0, _080DC4D8
ldrb r0, [r0]
cmp r0, #0
beq _080DC5A6
ldr r0, _080DC4DC
movs r1, #0xd0
lsls r1, r1, #9
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq _080DC5A6
cmp r0, #0
blt _080DC4E0
cmp r0, #3
bgt _080DC4E0
cmp r0, #2
blt _080DC4E0
bl ContestDebugPrintBitStrings
b _080DC5A6
.align 2, 0
_080DC4D8: .4byte 0x02031F75
_080DC4DC: .4byte 0x02000000
_080DC4E0:
movs r4, #0
_080DC4E2:
adds r0, r4, #0
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r4, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #3
bls _080DC4E2
movs r4, #0
_080DC502:
ldr r0, _080DC5B0
ldr r0, [r0]
ldr r1, [r0, #4]
lsls r0, r4, #3
subs r0, r0, r4
lsls r0, r0, #2
adds r0, r0, r1
mov r2, sp
ldrh r5, [r0, #4]
movs r1, #4
ldrsh r0, [r0, r1]
cmp r0, #0
bge _080DC52C
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
mov r0, sp
ldr r1, _080DC5B4
bl StringCopy
adds r2, r0, #0
_080DC52C:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r0, r2, #0
movs r2, #0
movs r3, #4
bl ConvertIntToDecimalStringN
ldr r0, _080DC5B8
adds r0, r4, r0
ldrb r0, [r0]
adds r0, #4
mov r1, sp
bl Contest_PrintTextToBg0WindowStd
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #3
bls _080DC502
movs r4, #0
_080DC554:
ldr r0, _080DC5B0
ldr r0, [r0]
ldr r1, [r0, #4]
lsls r0, r4, #3
subs r0, r0, r4
lsls r0, r0, #2
adds r0, r0, r1
mov r2, sp
ldrh r5, [r0, #2]
movs r1, #2
ldrsh r0, [r0, r1]
cmp r0, #0
bge _080DC57E
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
mov r0, sp
ldr r1, _080DC5B4
bl StringCopy
adds r2, r0, #0
_080DC57E:
lsls r1, r5, #0x10
asrs r1, r1, #0x10
adds r0, r2, #0
movs r2, #0
movs r3, #4
bl ConvertIntToDecimalStringN
ldr r0, _080DC5B8
adds r0, r4, r0
ldrb r0, [r0]
mov r1, sp
bl Contest_PrintTextToBg0WindowStd
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #3
bls _080DC554
bl SwapMoveDescAndContestTilemaps
_080DC5A6:
add sp, #8
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DC5B0: .4byte 0x02039BD4
_080DC5B4: .4byte 0x085C9401
_080DC5B8: .4byte 0x02039BC6
thumb_func_end ContestDebugDoPrint
thumb_func_start SortContestants
SortContestants: @ 0x080DC5BC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
add r4, sp, #4
adds r0, r4, #0
movs r1, #0
movs r2, #8
bl memset
movs r5, #0
add r4, sp, #4
adds r6, r4, #0
movs r7, #0
_080DC5E2:
bl Random
adds r1, r0, #0
mov r0, sp
adds r0, r0, r7
adds r0, #4
strh r1, [r0]
movs r2, #0
cmp r2, r5
bge _080DC61A
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
mov r1, sp
ldrh r1, [r1, #4]
cmp r0, r1
beq _080DC614
_080DC602:
adds r2, #1
cmp r2, r5
bge _080DC61A
lsls r0, r2, #1
adds r0, r4, r0
ldrh r1, [r6]
ldrh r0, [r0]
cmp r1, r0
bne _080DC602
_080DC614:
subs r6, #2
subs r7, #2
subs r5, #1
_080DC61A:
adds r6, #2
adds r7, #2
adds r5, #1
cmp r5, #3
ble _080DC5E2
mov r2, r8
cmp r2, #0
bne _080DC6E4
movs r5, #0
ldr r3, _080DC69C
mov r8, r3
_080DC630:
mov r6, r8
strb r5, [r6]
movs r4, #0
cmp r4, r5
bge _080DC6AC
ldr r7, _080DC6A0
mov sb, r7
lsls r0, r5, #1
adds r1, r0, #0
add r1, sb
mov ip, r1
mov r2, sp
adds r2, #4
str r2, [sp, #0xc]
add r0, sp
adds r0, #4
str r0, [sp, #0x10]
ldr r3, _080DC69C
adds r6, r3, #0
mov sl, r6
_080DC658:
ldrb r0, [r3]
lsls r2, r0, #1
mov r7, sb
adds r0, r2, r7
movs r6, #0
ldrsh r1, [r0, r6]
mov r7, ip
movs r6, #0
ldrsh r0, [r7, r6]
cmp r1, r0
blt _080DC680
cmp r1, r0
bne _080DC6A4
ldr r7, [sp, #0xc]
adds r0, r7, r2
ldrh r0, [r0]
ldr r1, [sp, #0x10]
ldrh r1, [r1]
cmp r0, r1
bhs _080DC6A4
_080DC680:
adds r2, r5, #0
cmp r5, r4
ble _080DC698
subs r0, r5, #1
mov r6, sl
adds r1, r0, r6
_080DC68C:
ldrb r0, [r1]
strb r0, [r1, #1]
subs r1, #1
subs r2, #1
cmp r2, r4
bgt _080DC68C
_080DC698:
strb r5, [r3]
b _080DC6AC
.align 2, 0
_080DC69C: .4byte 0x02039BC6
_080DC6A0: .4byte 0x02039BA0
_080DC6A4:
adds r3, #1
adds r4, #1
cmp r4, r5
blt _080DC658
_080DC6AC:
cmp r4, r5
bne _080DC6B4
mov r7, r8
strb r5, [r7]
_080DC6B4:
movs r0, #1
add r8, r0
adds r5, #1
cmp r5, #3
ble _080DC630
ldr r4, _080DC6E0
mov r0, sp
adds r1, r4, #0
movs r2, #4
bl memcpy
movs r5, #0
_080DC6CC:
mov r1, sp
adds r0, r1, r5
ldrb r0, [r0]
adds r0, r0, r4
strb r5, [r0]
adds r5, #1
cmp r5, #3
ble _080DC6CC
b _080DC798
.align 2, 0
_080DC6E0: .4byte 0x02039BC6
_080DC6E4:
mov r0, sp
movs r1, #0xff
movs r2, #4
bl memset
movs r5, #0
ldr r3, _080DC708
movs r6, #0
_080DC6F4:
ldr r0, _080DC70C
ldr r0, [r0]
ldr r0, [r0, #4]
adds r0, r6, r0
ldrb r0, [r0, #0xb]
lsls r0, r0, #0x1e
lsrs r2, r0, #0x1e
mov r7, sp
adds r1, r7, r2
b _080DC71A
.align 2, 0
_080DC708: .4byte 0x02039BC6
_080DC70C: .4byte 0x02039BD4
_080DC710:
adds r0, r2, #1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
mov r0, sp
adds r1, r0, r2
_080DC71A:
ldrb r0, [r1]
cmp r0, #0xff
bne _080DC710
strb r5, [r1]
strb r2, [r3]
adds r3, #1
adds r6, #0x1c
adds r5, #1
cmp r5, #3
ble _080DC6F4
movs r5, #0
_080DC730:
movs r4, #3
adds r1, r5, #1
mov sl, r1
cmp r4, r5
ble _080DC792
mov sb, r4
ldr r2, _080DC7A8
mov r8, r2
add r3, sp, #4
mov ip, r3
_080DC744:
ldr r6, _080DC7AC
ldr r0, [r6]
ldr r1, [r0, #4]
lsls r0, r4, #3
subs r0, r0, r4
lsls r0, r0, #2
adds r0, r0, r1
adds r1, r0, #0
subs r1, #0x1c
ldrb r2, [r1, #0xb]
ldrb r3, [r0, #0xb]
mov r1, sb
ands r1, r2
mov r0, sb
ands r0, r3
subs r3, r4, #1
cmp r1, r0
bne _080DC78C
mov r0, r8
adds r7, r3, r0
adds r2, r4, r0
ldrb r6, [r7]
ldrb r1, [r2]
cmp r6, r1
bhs _080DC78C
lsls r0, r3, #1
add r0, ip
lsls r1, r4, #1
add r1, ip
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
bhs _080DC78C
ldrb r0, [r2]
strb r6, [r2]
strb r0, [r7]
_080DC78C:
adds r4, r3, #0
cmp r4, r5
bgt _080DC744
_080DC792:
mov r5, sl
cmp r5, #2
ble _080DC730
_080DC798:
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DC7A8: .4byte 0x02039BC6
_080DC7AC: .4byte 0x02039BD4
thumb_func_end SortContestants
thumb_func_start DrawContestantWindows
DrawContestantWindows: @ 0x080DC7B0
push {r4, r5, lr}
movs r4, #0
movs r5, #0xa0
_080DC7B6:
ldr r0, _080DC7DC
adds r0, r5, r0
ldr r1, _080DC7E0
adds r1, r4, r1
ldrb r1, [r1]
adds r1, #5
lsls r1, r1, #4
movs r2, #0x20
bl LoadPalette
adds r5, #0x20
adds r4, #1
cmp r4, #3
ble _080DC7B6
bl DrawContestantWindowText
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DC7DC: .4byte 0x0201A004
_080DC7E0: .4byte 0x02039BC6
thumb_func_end DrawContestantWindows
thumb_func_start sub_080DC7E4
sub_080DC7E4: @ 0x080DC7E4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
ldr r4, _080DC86C
ldr r3, [r4]
ldr r1, [r3, #4]
lsls r7, r6, #3
subs r0, r7, r6
lsls r5, r0, #2
adds r1, r5, r1
movs r2, #0
strh r2, [r1, #2]
ldr r0, [r3, #4]
adds r0, r5, r0
strh r2, [r0]
adds r0, r6, #0
bl ContestantCanUseTurn
lsls r0, r0, #0x18
mov r8, r4
cmp r0, #0
bne _080DC818
b _080DCB28
_080DC818:
ldr r0, [r4]
ldr r1, [r0, #4]
adds r1, r5, r1
ldrh r0, [r1, #6]
ldr r2, _080DC870
lsls r0, r0, #3
adds r0, r0, r2
ldrb r2, [r0]
mov sb, r2
ldrb r0, [r0, #1]
lsls r0, r0, #0x1d
lsrs r0, r0, #0x1d
strb r0, [r1, #0xa]
ldr r0, [r4]
ldr r0, [r0, #4]
adds r2, r5, r0
ldrh r0, [r2, #6]
ldrh r1, [r2, #8]
cmp r0, r1
bne _080DC874
cmp r0, #0
beq _080DC874
ldrb r0, [r2, #0x15]
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x15]
ldr r0, [r4]
ldr r2, [r0, #4]
adds r2, r5, r2
ldrb r3, [r2, #0xb]
lsls r1, r3, #0x19
lsrs r1, r1, #0x1d
adds r1, #1
movs r0, #7
ands r1, r0
lsls r1, r1, #4
movs r0, #0x71
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r2, #0xb]
b _080DC890
.align 2, 0
_080DC86C: .4byte 0x02039BD4
_080DC870: .4byte 0x08565FCC
_080DC874:
ldr r4, _080DC944
ldr r0, [r4]
ldr r0, [r0, #4]
lsls r3, r6, #3
subs r1, r3, r6
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1, #0xb]
movs r0, #0x71
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0xb]
mov r8, r4
adds r7, r3, #0
_080DC890:
mov r2, r8
ldr r4, [r2]
ldr r2, [r4, #4]
subs r0, r7, r6
lsls r0, r0, #2
adds r2, r0, r2
ldr r3, _080DC948
mov r1, sb
lsls r5, r1, #2
adds r3, r5, r3
ldrb r1, [r3, #1]
strh r1, [r2]
ldr r1, [r4, #4]
adds r0, r0, r1
ldrh r1, [r0]
strh r1, [r0, #2]
ldr r1, [r4, #8]
ldrb r0, [r3, #2]
strh r0, [r1, #4]
ldr r1, [r4, #8]
ldrh r0, [r1, #4]
strh r0, [r1, #6]
ldr r0, [r4, #8]
strb r6, [r0, #0x11]
movs r2, #0
mov sb, r5
mov r4, r8
movs r3, #0
movs r1, #0
_080DC8CA:
ldr r0, [r4]
ldr r0, [r0, #4]
adds r0, r1, r0
strb r3, [r0, #0xe]
ldr r0, [r4]
ldr r0, [r0, #8]
adds r0, #0xd
adds r0, r0, r2
strb r3, [r0]
adds r1, #0x1c
adds r2, #1
cmp r2, #3
ble _080DC8CA
ldr r5, _080DC944
ldr r0, [r5]
ldr r1, [r0, #4]
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 _080DC918
ldrh r0, [r2, #8]
ldrh r1, [r2, #6]
bl AreMovesContestCombo
lsls r0, r0, #0x18
cmp r0, #0
bne _080DC918
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x15]
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x15]
_080DC918:
ldr r0, _080DC94C
add r0, sb
ldr r0, [r0]
bl _call_via_r0
ldr r0, _080DC944
ldr r0, [r0]
ldr r1, [r0, #4]
subs r0, r7, r6
lsls r0, r0, #2
adds r2, r0, r1
ldrb r1, [r2, #0x10]
movs r0, #0x30
ands r0, r1
cmp r0, #0x10
bne _080DC950
ldrh r1, [r2, #2]
subs r1, #0xa
movs r0, #0xd
ldrsb r0, [r2, r0]
b _080DC96A
.align 2, 0
_080DC944: .4byte 0x02039BD4
_080DC948: .4byte 0x08566AE4
_080DC94C: .4byte 0x08566BE4
_080DC950:
ldrb r1, [r2, #0x11]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080DC964
movs r1, #0xd
ldrsb r1, [r2, r1]
lsls r0, r1, #1
adds r0, r0, r1
b _080DC968
_080DC964:
movs r0, #0xd
ldrsb r0, [r2, r0]
_080DC968:
ldrh r1, [r2, #2]
_080DC96A:
adds r0, r0, r1
strh r0, [r2, #2]
ldr r5, _080DC9FC
ldr r0, [r5]
ldr r1, [r0, #4]
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, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x15]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x15]
adds r0, r6, #0
bl sub_080DD94C
lsls r0, r0, #0x18
cmp r0, #0
beq _080DCA46
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrh r0, [r1, #8]
ldrh r1, [r1, #6]
bl AreMovesContestCombo
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
beq _080DCA00
ldr r0, [r5]
ldr r0, [r0, #4]
adds r2, r4, r0
ldrb r1, [r2, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080DCA00
strb r3, [r2, #0x16]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r0, [r1, #0x15]
movs r2, #0x40
orrs r0, r2
strb r0, [r1, #0x15]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r2, [r1, #0x15]
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #0x15]
ldr r0, [r5]
ldr r0, [r0, #4]
adds r0, r4, r0
movs r1, #0
ldrsh r2, [r0, r1]
ldrb r1, [r0, #0x16]
muls r1, r2, r1
strb r1, [r0, #0x17]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r0, [r1, #0x15]
movs r2, #8
b _080DCA2C
.align 2, 0
_080DC9FC: .4byte 0x02039BD4
_080DCA00:
ldr r2, _080DCA34
ldr r5, _080DCA38
ldr r0, [r5]
ldr r1, [r0, #4]
subs r0, r7, r6
lsls r4, r0, #2
adds r3, r4, r1
ldrh r0, [r3, #6]
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #2]
cmp r0, #0
beq _080DCA3C
ldrb r0, [r3, #0x15]
movs r1, #0x10
orrs r0, r1
strb r0, [r3, #0x15]
ldr r0, [r5]
ldr r1, [r0, #4]
adds r1, r4, r1
ldrb r0, [r1, #0x15]
movs r2, #0x40
_080DCA2C:
orrs r0, r2
strb r0, [r1, #0x15]
b _080DCA46
.align 2, 0
_080DCA34: .4byte 0x08565FCC
_080DCA38: .4byte 0x02039BD4
_080DCA3C:
ldrb r1, [r3, #0x15]
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r1
strb r0, [r3, #0x15]
_080DCA46:
ldr r5, _080DCAE4
ldr r0, [r5]
ldr r1, [r0, #4]
subs r0, r7, r6
lsls r4, r0, #2
adds r2, r4, r1
ldrb r1, [r2, #0x15]
movs r0, #1
mov r8, r0
ands r0, r1
cmp r0, #0
beq _080DCA6E
ldrb r0, [r2, #0xb]
lsls r0, r0, #0x19
lsrs r0, r0, #0x1d
adds r0, #1
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #1
strb r1, [r2, #0x18]
_080DCA6E:
ldr r0, [r5]
ldr r0, [r0, #4]
adds r2, r4, r0
ldrb r1, [r2, #0xc]
mov r0, r8
ands r0, r1
cmp r0, #0
beq _080DCA98
ldrb r1, [r2, #0x15]
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x15]
ldr r2, [r5]
ldr r0, [r2, #4]
adds r0, r4, r0
movs r1, #0
strh r1, [r0, #2]
ldr r0, [r2, #4]
adds r0, r4, r0
strh r1, [r0]
_080DCA98:
ldr r0, [r5]
ldr r0, [r0, #4]
adds r0, r4, r0
ldrh r0, [r0, #6]
bl Contest_GetMoveExcitement
ldr r1, [r5]
ldr r1, [r1, #0x10]
strb r0, [r1]
ldr r2, [r5]
ldr r0, [r2, #4]
adds r0, r4, r0
ldrb r1, [r0, #0x11]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080DCAC0
ldr r0, [r2, #0x10]
mov r1, r8
strb r1, [r0]
_080DCAC0:
ldr r1, [r5]
ldr r3, [r1, #0x10]
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
ble _080DCAEC
ldr r0, [r1]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #0
ldrsb r1, [r3, r1]
adds r0, r0, r1
cmp r0, #4
ble _080DCAE8
movs r0, #0x3c
b _080DCAEE
.align 2, 0
_080DCAE4: .4byte 0x02039BD4
_080DCAE8:
movs r0, #0xa
b _080DCAEE
_080DCAEC:
movs r0, #0
_080DCAEE:
strb r0, [r3, #2]
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #3
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r2, #0
b _080DCB12
_080DCB06:
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
_080DCB0C:
adds r2, #1
cmp r2, #3
bgt _080DCB1A
_080DCB12:
cmp r2, r6
beq _080DCB0C
cmp r0, #0
bne _080DCB06
_080DCB1A:
ldr r0, _080DCB34
ldr r0, [r0]
ldr r1, [r0, #4]
subs r0, r7, r6
lsls r0, r0, #2
adds r0, r0, r1
strb r2, [r0, #0x1b]
_080DCB28:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DCB34: .4byte 0x02039BD4
thumb_func_end sub_080DC7E4
thumb_func_start SetContestantEffectStringID
SetContestantEffectStringID: @ 0x080DCB38
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DCB50
ldr r2, [r2]
ldr r3, [r2, #4]
lsls r2, r0, #3
subs r2, r2, r0
lsls r2, r2, #2
adds r2, r2, r3
strb r1, [r2, #0x13]
bx lr
.align 2, 0
_080DCB50: .4byte 0x02039BD4
thumb_func_end SetContestantEffectStringID
thumb_func_start SetContestantEffectStringID2
SetContestantEffectStringID2: @ 0x080DCB54
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DCB6C
ldr r2, [r2]
ldr r3, [r2, #4]
lsls r2, r0, #3
subs r2, r2, r0
lsls r2, r2, #2
adds r2, r2, r3
strb r1, [r2, #0x14]
bx lr
.align 2, 0
_080DCB6C: .4byte 0x02039BD4
thumb_func_end SetContestantEffectStringID2
thumb_func_start SetStartledString
SetStartledString: @ 0x080DCB70
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r3, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r2, r1, #0
cmp r1, #0x3b
bls _080DCB8A
movs r1, #0x35
bl SetContestantEffectStringID
b _080DCBBA
_080DCB8A:
cmp r1, #0x27
bls _080DCB96
movs r1, #0x34
bl SetContestantEffectStringID
b _080DCBBA
_080DCB96:
cmp r1, #0x1d
bls _080DCBA2
movs r1, #0x33
bl SetContestantEffectStringID
b _080DCBBA
_080DCBA2:
cmp r1, #0x13
bls _080DCBAE
movs r1, #0x32
bl SetContestantEffectStringID
b _080DCBBA
_080DCBAE:
cmp r2, #9
bls _080DCBBA
adds r0, r3, #0
movs r1, #0x31
bl SetContestantEffectStringID
_080DCBBA:
pop {r0}
bx r0
.align 2, 0
thumb_func_end SetStartledString
thumb_func_start sub_080DCBC0
sub_080DCBC0: @ 0x080DCBC0
push {r4, r5, r6, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r1, r1, #0x18
lsrs r6, r1, #0x18
ldr r0, _080DCC20
lsls r1, r4, #6
ldr r2, _080DCC24
adds r1, r1, r2
bl StringCopy
ldr r0, _080DCC28
ldr r5, _080DCC2C
ldr r1, [r5]
ldr r2, [r1, #4]
lsls r1, r4, #3
subs r1, r1, r4
lsls r1, r1, #2
adds r1, r1, r2
ldrh r1, [r1, #6]
lsls r1, r1, #3
ldr r2, _080DCC30
adds r1, r1, r2
bl StringCopy
ldr r3, _080DCC34
ldr r1, [r5]
ldr r0, [r1, #8]
ldrb r2, [r0, #0x11]
ldr r1, [r1, #4]
lsls r0, r2, #3
subs r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0, #6]
lsls r0, r0, #3
adds r0, r0, r3
ldrb r0, [r0, #1]
lsls r1, r0, #0x1d
cmp r1, #0
bne _080DCC40
ldr r0, _080DCC38
ldr r1, _080DCC3C
bl StringCopy
b _080DCC90
.align 2, 0
_080DCC20: .4byte 0x02021C40
_080DCC24: .4byte 0x02039AA2
_080DCC28: .4byte 0x02021C54
_080DCC2C: .4byte 0x02039BD4
_080DCC30: .4byte 0x082EACC4
_080DCC34: .4byte 0x08565FCC
_080DCC38: .4byte 0x02021C68
_080DCC3C: .4byte 0x0824C0D2
_080DCC40:
lsrs r0, r1, #0x1d
cmp r0, #1
bne _080DCC58
ldr r0, _080DCC50
ldr r1, _080DCC54
bl StringCopy
b _080DCC90
.align 2, 0
_080DCC50: .4byte 0x02021C68
_080DCC54: .4byte 0x0824C0D7
_080DCC58:
lsrs r0, r1, #0x1d
cmp r0, #2
bne _080DCC70
ldr r0, _080DCC68
ldr r1, _080DCC6C
bl StringCopy
b _080DCC90
.align 2, 0
_080DCC68: .4byte 0x02021C68
_080DCC6C: .4byte 0x0824C0DC
_080DCC70:
lsrs r0, r1, #0x1d
cmp r0, #3
bne _080DCC88
ldr r0, _080DCC80
ldr r1, _080DCC84
bl StringCopy
b _080DCC90
.align 2, 0
_080DCC80: .4byte 0x02021C68
_080DCC84: .4byte 0x0824C0E1
_080DCC88:
ldr r0, _080DCCB4
ldr r1, _080DCCB8
bl StringCopy
_080DCC90:
ldr r4, _080DCCBC
ldr r1, _080DCCC0
lsls r0, r6, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl StringExpandPlaceholders
bl sub_080DB000
adds r0, r4, #0
movs r1, #1
bl Contest_StartTextPrinter
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DCCB4: .4byte 0x02021C68
_080DCCB8: .4byte 0x0824C0E6
_080DCCBC: .4byte 0x02021C7C
_080DCCC0: .4byte 0x08560D74
thumb_func_end sub_080DCBC0
thumb_func_start MakeContestantNervous
MakeContestantNervous: @ 0x080DCCC4
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r4, _080DCCF0
ldr r1, [r4]
ldr r3, [r1, #4]
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r3, r1, r3
ldrb r0, [r3, #0xc]
movs r2, #1
orrs r0, r2
strb r0, [r3, #0xc]
ldr r0, [r4]
ldr r0, [r0, #4]
adds r1, r1, r0
movs r0, #0
strh r0, [r1, #6]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DCCF0: .4byte 0x02039BD4
thumb_func_end MakeContestantNervous
thumb_func_start ApplyNextTurnOrder
ApplyNextTurnOrder: @ 0x080DCCF4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
movs r0, #0
mov ip, r0
movs r4, #0
ldr r1, _080DCD60
mov sb, r1
add r2, sp, #4
mov r6, sb
movs r5, #0
adds r3, r2, #0
_080DCD10:
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, #1
cmp r4, #3
ble _080DCD10
movs r4, #0
ldr r7, _080DCD64
ldr r1, [r7]
mov r8, r1
adds r5, r2, #0
_080DCD2E:
movs r2, #0
mov r0, r8
ldr r1, [r0, #4]
_080DCD34:
ldrb r0, [r1, #0x19]
cmp r0, r4
beq _080DCD68
adds r1, #0x1c
adds r2, #1
cmp r2, #3
ble _080DCD34
_080DCD42:
cmp r2, #4
bne _080DCDE8
movs r2, #0
ldrb r0, [r5]
cmp r0, #0
bne _080DCD76
ldr r0, [r7]
ldr r0, [r0, #4]
ldrb r0, [r0, #0x19]
cmp r0, #0xff
bne _080DCD76
mov ip, r2
movs r2, #1
b _080DCD9E
.align 2, 0
_080DCD60: .4byte 0x02039BC6
_080DCD64: .4byte 0x02039BD4
_080DCD68:
mov r1, sp
adds r0, r1, r2
strb r4, [r0]
adds r1, r5, r2
movs r0, #1
strb r0, [r1]
b _080DCD42
_080DCD76:
adds r2, #1
cmp r2, #3
bgt _080DCDDA
adds r0, r5, r2
ldrb r0, [r0]
cmp r0, #0
bne _080DCD76
ldr r0, [r7]
ldr r1, [r0, #4]
lsls r0, r2, #3
subs r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #0x19]
cmp r0, #0xff
bne _080DCD76
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
mov ip, r0
adds r2, #1
_080DCD9E:
cmp r2, #3
bgt _080DCDDA
ldr r6, _080DCE38
lsls r0, r2, #3
subs r0, r0, r2
lsls r3, r0, #2
_080DCDAA:
adds r0, r5, r2
ldrb r0, [r0]
cmp r0, #0
bne _080DCDD2
ldr r0, [r7]
ldr r0, [r0, #4]
adds r0, r3, r0
ldrb r0, [r0, #0x19]
cmp r0, #0xff
bne _080DCDD2
mov r1, ip
adds r0, r1, r6
adds r1, r2, r6
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bls _080DCDD2
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
mov ip, r0
_080DCDD2:
adds r3, #0x1c
adds r2, #1
cmp r2, #3
ble _080DCDAA
_080DCDDA:
mov r0, sp
add r0, ip
strb r4, [r0]
mov r0, ip
adds r1, r5, r0
movs r0, #1
strb r0, [r1]
_080DCDE8:
adds r4, #1
cmp r4, #3
ble _080DCD2E
movs r4, #0
ldr r6, _080DCE3C
movs r5, #0
_080DCDF4:
ldr r0, [r6]
ldr r1, [r0, #8]
adds r1, r1, r4
mov r0, sp
adds r3, r0, r4
ldrb r0, [r3]
strb r0, [r1]
ldr r0, [r6]
ldr r0, [r0, #4]
adds r0, r5, r0
movs r1, #0xff
strb r1, [r0, #0x19]
ldr r0, [r6]
ldr r1, [r0, #4]
adds r1, r5, r1
ldrb r2, [r1, #0x10]
movs r0, #0x3f
ands r0, r2
strb r0, [r1, #0x10]
mov r0, sb
adds r1, r4, r0
ldrb r0, [r3]
strb r0, [r1]
adds r5, #0x1c
adds r4, #1
cmp r4, #3
ble _080DCDF4
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DCE38: .4byte 0x02039BC6
_080DCE3C: .4byte 0x02039BD4
thumb_func_end ApplyNextTurnOrder
thumb_func_start sub_080DCE40
sub_080DCE40: @ 0x080DCE40
push {lr}
adds r2, r0, #0
ldrh r0, [r2, #0x30]
adds r1, r0, #1
strh r1, [r2, #0x30]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x54
ble _080DCE76
movs r0, #0
strh r0, [r2, #0x30]
adds r3, r2, #0
adds r3, #0x3e
ldrb r0, [r3]
movs r1, #4
orrs r0, r1
strb r0, [r3]
ldr r0, _080DCE7C
str r0, [r2, #0x1c]
ldr r0, _080DCE80
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, #6]
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #6]
_080DCE76:
pop {r0}
bx r0
.align 2, 0
_080DCE7C: .4byte 0x08007141
_080DCE80: .4byte 0x02039BD4
thumb_func_end sub_080DCE40
thumb_func_start sub_080DCE84
sub_080DCE84: @ 0x080DCE84
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
ldr r0, _080DCEA4
ldr r0, [r0]
ldr r0, [r0]
ldrb r5, [r0, #0x12]
cmp r1, #8
bls _080DCE98
b _080DD038
_080DCE98:
lsls r0, r1, #2
ldr r1, _080DCEA8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DCEA4: .4byte 0x02039BD4
_080DCEA8: .4byte 0x080DCEAC
_080DCEAC: @ jump table
.4byte _080DCED0 @ case 0
.4byte _080DCED0 @ case 1
.4byte _080DCF00 @ case 2
.4byte _080DCF34 @ case 3
.4byte _080DCF68 @ case 4
.4byte _080DCF9C @ case 5
.4byte _080DCFD0 @ case 6
.4byte _080DD038 @ case 7
.4byte _080DD004 @ case 8
_080DCED0:
ldr r0, _080DCEF4
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r0, [r1, #0x2e]
ldr r2, _080DCEF8
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DCEFC
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0x20
bl PlaySE
b _080DD05C
.align 2, 0
_080DCEF4: .4byte 0x020205AC
_080DCEF8: .4byte 0x000003FF
_080DCEFC: .4byte 0xFFFFFC00
_080DCF00:
ldr r0, _080DCF28
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r2, [r1, #0x2e]
adds r2, #4
ldr r3, _080DCF2C
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DCF30
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0x1f
bl PlaySE
b _080DD05C
.align 2, 0
_080DCF28: .4byte 0x020205AC
_080DCF2C: .4byte 0x000003FF
_080DCF30: .4byte 0xFFFFFC00
_080DCF34:
ldr r0, _080DCF5C
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r2, [r1, #0x2e]
adds r2, #8
ldr r3, _080DCF60
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DCF64
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0x1f
bl PlaySE
b _080DD05C
.align 2, 0
_080DCF5C: .4byte 0x020205AC
_080DCF60: .4byte 0x000003FF
_080DCF64: .4byte 0xFFFFFC00
_080DCF68:
ldr r0, _080DCF90
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r2, [r1, #0x2e]
adds r2, #0xc
ldr r3, _080DCF94
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DCF98
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0x2d
bl PlaySE
b _080DD05C
.align 2, 0
_080DCF90: .4byte 0x020205AC
_080DCF94: .4byte 0x000003FF
_080DCF98: .4byte 0xFFFFFC00
_080DCF9C:
ldr r0, _080DCFC4
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r2, [r1, #0x2e]
adds r2, #0xc
ldr r3, _080DCFC8
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DCFCC
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0x2d
bl PlaySE
b _080DD05C
.align 2, 0
_080DCFC4: .4byte 0x020205AC
_080DCFC8: .4byte 0x000003FF
_080DCFCC: .4byte 0xFFFFFC00
_080DCFD0:
ldr r0, _080DCFF8
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r2, [r1, #0x2e]
adds r2, #0x10
ldr r3, _080DCFFC
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DD000
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0x2d
bl PlaySE
b _080DD05C
.align 2, 0
_080DCFF8: .4byte 0x020205AC
_080DCFFC: .4byte 0x000003FF
_080DD000: .4byte 0xFFFFFC00
_080DD004:
ldr r0, _080DD02C
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r2, [r1, #0x2e]
adds r2, #0x18
ldr r3, _080DD030
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DD034
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0xc3
bl PlaySE
b _080DD05C
.align 2, 0
_080DD02C: .4byte 0x020205AC
_080DD030: .4byte 0x000003FF
_080DD034: .4byte 0xFFFFFC00
_080DD038:
ldr r0, _080DD090
lsls r4, r5, #4
adds r1, r4, r5
lsls r1, r1, #2
adds r1, r1, r0
ldrh r2, [r1, #0x2e]
adds r2, #0x14
ldr r3, _080DD094
adds r0, r3, #0
ands r2, r0
ldrh r3, [r1, #4]
ldr r0, _080DD098
ands r0, r3
orrs r0, r2
strh r0, [r1, #4]
movs r0, #0x2d
bl PlaySE
_080DD05C:
adds r2, r4, #0
ldr r4, _080DD090
adds r2, r2, r5
lsls r2, r2, #2
adds r1, r2, r4
movs r0, #0
strh r0, [r1, #0x30]
adds r1, #0x3e
ldrb r3, [r1]
subs r0, #5
ands r0, r3
strb r0, [r1]
adds r4, #0x1c
adds r2, r2, r4
ldr r0, _080DD09C
str r0, [r2]
ldr r0, _080DD0A0
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, #6]
movs r1, #0x10
orrs r0, r1
strb r0, [r2, #6]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DD090: .4byte 0x020205AC
_080DD094: .4byte 0x000003FF
_080DD098: .4byte 0xFFFFFC00
_080DD09C: .4byte 0x080DCE41
_080DD0A0: .4byte 0x02039BD4
thumb_func_end sub_080DCE84
thumb_func_start UpdateApplauseMeter
UpdateApplauseMeter: @ 0x080DD0A4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r5, #0
ldr r6, _080DD140
ldr r0, _080DD144
mov sb, r0
ldr r0, _080DD148
mov r8, r0
ldr r7, _080DD14C
_080DD0BA:
ldr r0, [r6]
ldr r1, [r0]
movs r0, #0x13
ldrsb r0, [r1, r0]
ldr r4, _080DD150
cmp r5, r0
bge _080DD0CA
adds r4, #0x40
_080DD0CA:
adds r0, r1, #0
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
add r0, sb
ldrh r1, [r0, #4]
lsls r1, r1, #0x16
lsrs r1, r1, #0x16
adds r0, r5, #0
adds r0, #0x11
adds r1, r1, r0
lsls r1, 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, r1, r2
lsls r1, r1, #2
add r1, sb
ldrh r1, [r1, #4]
lsls r1, r1, #0x16
lsrs r1, r1, #0x16
adds r2, r5, #0
adds r2, #0x19
adds r1, r1, r2
lsls r1, r1, #5
add r1, r8
adds r2, r7, #0
bl CpuSet
ldr r0, [r6]
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
ble _080DD12C
bl StartApplauseOverflowAnimation
_080DD12C:
adds r5, #1
cmp r5, #4
ble _080DD0BA
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DD140: .4byte 0x02039BD4
_080DD144: .4byte 0x020205AC
_080DD148: .4byte 0x06010000
_080DD14C: .4byte 0x04000008
_080DD150: .4byte 0x08D8EBD8
thumb_func_end UpdateApplauseMeter
thumb_func_start Contest_GetMoveExcitement
Contest_GetMoveExcitement: @ 0x080DD154
lsls r0, r0, #0x10
ldr r3, _080DD178
ldr r1, _080DD17C
lsrs r0, r0, #0xd
adds r0, r0, r1
ldrb r1, [r0, #1]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
ldr r0, _080DD180
ldrh r2, [r0]
lsls r0, r2, #2
adds r0, r0, r2
adds r1, r1, r0
adds r1, r1, r3
movs r0, #0
ldrsb r0, [r1, r0]
bx lr
.align 2, 0
_080DD178: .4byte 0x08562970
_080DD17C: .4byte 0x08565FCC
_080DD180: .4byte 0x02039BCC
thumb_func_end Contest_GetMoveExcitement
thumb_func_start StartApplauseOverflowAnimation
StartApplauseOverflowAnimation: @ 0x080DD184
push {r4, r5, lr}
ldr r0, _080DD1B8
movs r1, #0xa
bl CreateTask
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
ldr r0, _080DD1BC
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
adds r4, r4, r0
movs r0, #1
strh r0, [r4, #0xa]
ldr r0, _080DD1C0
bl IndexOfSpritePaletteTag
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r4, #0xc]
adds r0, r5, #0
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_080DD1B8: .4byte 0x080DD1C5
_080DD1BC: .4byte 0x03005B60
_080DD1C0: .4byte 0x0000ABE2
thumb_func_end StartApplauseOverflowAnimation
thumb_func_start Task_ApplauseOverflowAnimation
Task_ApplauseOverflowAnimation: @ 0x080DD1C4
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, _080DD1F4
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r2, r0, r1
ldrh r0, [r2, #8]
adds r0, #1
strh r0, [r2, #8]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #1
bne _080DD262
movs r0, #0
strh r0, [r2, #8]
movs r3, #0xe
ldrsh r0, [r2, r3]
cmp r0, #0
bne _080DD1F8
ldrh r0, [r2, #0x10]
adds r0, #1
b _080DD1FC
.align 2, 0
_080DD1F4: .4byte 0x03005B60
_080DD1F8:
ldrh r0, [r2, #0x10]
subs r0, #1
_080DD1FC:
strh r0, [r2, #0x10]
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r4, r0, r1
movs r1, #0xc
ldrsh r0, [r4, r1]
lsls r0, r0, #4
movs r3, #0x84
lsls r3, r3, #1
adds r6, r3, #0
adds r0, r0, r6
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldrb r2, [r4, #0x10]
ldr r3, _080DD268
movs r1, #1
bl BlendPalette
movs r1, #0x10
ldrsh r0, [r4, r1]
cmp r0, #0
beq _080DD22E
cmp r0, #0x10
bne _080DD262
_080DD22E:
ldrh r0, [r4, #0xe]
movs r1, #1
eors r0, r1
strh r0, [r4, #0xe]
ldr r0, _080DD26C
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bgt _080DD262
movs r3, #0xc
ldrsh r0, [r4, r3]
lsls r0, r0, #4
adds r0, r0, r6
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #1
movs r2, #0
movs r3, #0x1f
bl BlendPalette
adds r0, r5, #0
bl DestroyTask
_080DD262:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DD268: .4byte 0x00007FFF
_080DD26C: .4byte 0x02039BD4
thumb_func_end Task_ApplauseOverflowAnimation
thumb_func_start StartMoveApplauseMeterOnscreen
StartMoveApplauseMeterOnscreen: @ 0x080DD270
push {r4, lr}
ldr r0, _080DD2C0
movs r1, #0xa
bl CreateTask
ldr r3, _080DD2C4
ldr r4, _080DD2C8
ldr r2, [r4]
ldr r0, [r2]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldr r1, _080DD2CC
strh r1, [r0, #0x24]
ldr r0, [r2]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
ldr r0, [r4]
ldr r2, [r0]
ldrb r0, [r2, #6]
movs r1, #0x40
orrs r0, r1
strb r0, [r2, #6]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DD2C0: .4byte 0x080DD2D1
_080DD2C4: .4byte 0x020205AC
_080DD2C8: .4byte 0x02039BD4
_080DD2CC: .4byte 0x0000FFBA
thumb_func_end StartMoveApplauseMeterOnscreen
thumb_func_start Task_MoveApplauseMeterOnscreen
Task_MoveApplauseMeterOnscreen: @ 0x080DD2D0
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r3, r0, #0
ldr r4, _080DD340
ldr r0, [r4]
ldr r0, [r0]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080DD344
adds r2, r0, r1
ldr r0, _080DD348
lsls r1, r3, #2
adds r1, r1, r3
lsls r1, r1, #3
adds r1, r1, r0
movs r5, #0xd0
lsls r5, r5, #3
adds r0, r5, #0
ldrh r5, [r1, #0x1c]
adds r0, r0, r5
strh r0, [r1, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x18
ldrh r5, [r2, #0x24]
adds r0, 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 _080DD31C
movs r0, #0
strh r0, [r2, #0x24]
_080DD31C:
movs r5, #0x24
ldrsh r0, [r2, r5]
cmp r0, #0
bne _080DD338
ldr r0, [r4]
ldr r2, [r0]
ldrb r1, [r2, #6]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #6]
adds r0, r3, #0
bl DestroyTask
_080DD338:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DD340: .4byte 0x02039BD4
_080DD344: .4byte 0x020205AC
_080DD348: .4byte 0x03005B60
thumb_func_end Task_MoveApplauseMeterOnscreen
thumb_func_start TryMoveApplauseMeterOffscreen
TryMoveApplauseMeterOffscreen: @ 0x080DD34C
push {r4, r5, lr}
ldr r5, _080DD378
ldr r4, _080DD37C
ldr r0, [r4]
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
adds r0, #0x3e
ldrb r0, [r0]
lsls r0, r0, #0x1d
cmp r0, #0
bge _080DD380
ldrb r1, [r2, #6]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
b _080DD3A4
.align 2, 0
_080DD378: .4byte 0x020205AC
_080DD37C: .4byte 0x02039BD4
_080DD380:
ldr r0, _080DD3AC
movs r1, #0xa
bl CreateTask
ldr r2, [r4]
ldr r0, [r2]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #0
strh r1, [r0, #0x24]
ldr r2, [r2]
ldrb r0, [r2, #6]
movs r1, #0x40
orrs r0, r1
_080DD3A4:
strb r0, [r2, #6]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DD3AC: .4byte 0x080DD3B1
thumb_func_end TryMoveApplauseMeterOffscreen
thumb_func_start Task_MoveApplauseMeterOffscreen
Task_MoveApplauseMeterOffscreen: @ 0x080DD3B0
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r4, r0, #0
ldr r5, _080DD430
ldr r0, [r5]
ldr r0, [r0]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080DD434
adds r3, r0, r1
ldr r0, _080DD438
lsls r2, r4, #2
adds r2, r2, r4
lsls r2, r2, #3
adds r2, r2, r0
movs r1, #0xd0
lsls r1, r1, #3
adds r0, r1, #0
ldrh r1, [r2, #0x1c]
adds r0, r0, r1
strh r0, [r2, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x18
ldrh r1, [r3, #0x24]
subs r1, r1, r0
strh r1, [r3, #0x24]
ldrb r0, [r2, #0x1c]
strh r0, [r2, #0x1c]
movs r2, #0x24
ldrsh r0, [r3, r2]
movs r1, #0x46
rsbs r1, r1, #0
cmp r0, r1
bge _080DD400
ldr r0, _080DD43C
strh r0, [r3, #0x24]
_080DD400:
movs r2, #0x24
ldrsh r0, [r3, r2]
cmp r0, r1
bne _080DD428
adds r2, r3, #0
adds r2, #0x3e
ldrb r0, [r2]
movs r1, #4
orrs r0, r1
strb r0, [r2]
ldr r0, [r5]
ldr r2, [r0]
ldrb r1, [r2, #6]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #6]
adds r0, r4, #0
bl DestroyTask
_080DD428:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DD430: .4byte 0x02039BD4
_080DD434: .4byte 0x020205AC
_080DD438: .4byte 0x03005B60
_080DD43C: .4byte 0x0000FFBA
thumb_func_end Task_MoveApplauseMeterOffscreen
thumb_func_start ShowAndUpdateApplauseMeter
ShowAndUpdateApplauseMeter: @ 0x080DD440
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r0, _080DD478
movs r1, #5
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DD47C
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
lsls r4, r4, #0x18
asrs r4, r4, #0x18
strh r4, [r1, #8]
ldr r0, _080DD480
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, #6]
movs r1, #0x20
orrs r0, r1
strb r0, [r2, #6]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DD478: .4byte 0x080DD485
_080DD47C: .4byte 0x03005B60
_080DD480: .4byte 0x02039BD4
thumb_func_end ShowAndUpdateApplauseMeter
thumb_func_start Task_ShowAndUpdateApplauseMeter
Task_ShowAndUpdateApplauseMeter: @ 0x080DD484
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, _080DD4A8
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r4, r0, r1
movs r1, #0x1c
ldrsh r0, [r4, r1]
cmp r0, #1
beq _080DD4B8
cmp r0, #1
bgt _080DD4AC
cmp r0, #0
beq _080DD4B2
b _080DD500
.align 2, 0
_080DD4A8: .4byte 0x03005B60
_080DD4AC:
cmp r0, #2
beq _080DD4D4
b _080DD500
_080DD4B2:
bl StartMoveApplauseMeterOnscreen
b _080DD4C8
_080DD4B8:
ldr r0, _080DD4D0
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #6]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _080DD500
_080DD4C8:
ldrh r0, [r4, #0x1c]
adds r0, #1
strh r0, [r4, #0x1c]
b _080DD500
.align 2, 0
_080DD4D0: .4byte 0x02039BD4
_080DD4D4:
ldrh r0, [r4, #0x1e]
adds r1, r0, #1
strh r1, [r4, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
ble _080DD500
movs r0, #0
strh r0, [r4, #0x1e]
bl UpdateApplauseMeter
ldr r0, _080DD508
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, #6]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #6]
adds r0, r5, #0
bl DestroyTask
_080DD500:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DD508: .4byte 0x02039BD4
thumb_func_end Task_ShowAndUpdateApplauseMeter
thumb_func_start HideApplauseMeterNoAnim
HideApplauseMeterNoAnim: @ 0x080DD50C
ldr r3, _080DD540
ldr r0, _080DD544
ldr r2, [r0]
ldr r0, [r2]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
movs r1, #0
strh r1, [r0, #0x24]
ldr r0, [r2]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
bx lr
.align 2, 0
_080DD540: .4byte 0x020205AC
_080DD544: .4byte 0x02039BD4
thumb_func_end HideApplauseMeterNoAnim
thumb_func_start ShowApplauseMeterNoAnim
ShowApplauseMeterNoAnim: @ 0x080DD548
ldr r2, _080DD568
ldr r0, _080DD56C
ldr r0, [r0]
ldr r0, [r0]
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
_080DD568: .4byte 0x020205AC
_080DD56C: .4byte 0x02039BD4
thumb_func_end ShowApplauseMeterNoAnim
thumb_func_start sub_080DD570
sub_080DD570: @ 0x080DD570
push {lr}
ldr r0, _080DD58C
movs r1, #0xf
bl CreateTask
ldr r0, _080DD590
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, #6]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #6]
pop {r0}
bx r0
.align 2, 0
_080DD58C: .4byte 0x080DD595
_080DD590: .4byte 0x02039BD4
thumb_func_end sub_080DD570
thumb_func_start sub_080DD594
sub_080DD594: @ 0x080DD594
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, _080DD5D0
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r4, r0, r1
ldrh r0, [r4, #0x1c]
adds r1, r0, #1
strh r1, [r4, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #6
ble _080DD61E
movs r0, #0
strh r0, [r4, #0x1c]
movs r1, #0x1e
ldrsh r0, [r4, r1]
cmp r0, #0
bne _080DD5DC
ldr r0, _080DD5D4
ldr r1, _080DD5D8
movs r2, #0x80
lsls r2, r2, #5
movs r3, #1
bl RequestDma3Copy
b _080DD5F0
.align 2, 0
_080DD5D0: .4byte 0x03005B60
_080DD5D4: .4byte 0x02019000
_080DD5D8: .4byte 0x06002000
_080DD5DC:
ldr r0, _080DD624
ldr r1, _080DD628
movs r2, #0x80
lsls r2, r2, #5
movs r3, #1
bl RequestDma3Copy
ldrh r0, [r4, #0x20]
adds r0, #1
strh r0, [r4, #0x20]
_080DD5F0:
ldr r1, _080DD62C
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #0x1e]
movs r2, #1
eors r1, r2
strh r1, [r0, #0x1e]
movs r1, #0x20
ldrsh r0, [r0, r1]
cmp r0, #9
bne _080DD61E
ldr r0, _080DD630
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, #6]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #6]
adds r0, r5, #0
bl DestroyTask
_080DD61E:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DD624: .4byte 0x02018000
_080DD628: .4byte 0x06002000
_080DD62C: .4byte 0x03005B60
_080DD630: .4byte 0x02039BD4
thumb_func_end sub_080DD594
thumb_func_start sub_080DD634
sub_080DD634: @ 0x080DD634
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
ldr r0, _080DD674
movs r1, #0xa
bl CreateTask
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
lsls r4, r4, #0x18
cmp r4, #0
ble _080DD69C
ldr r7, _080DD678
lsls r0, r5, #0x18
adds r4, r0, #0
cmp r4, #0
ble _080DD680
movs r5, #0
ldr r2, _080DD67C
ldr r0, [r2]
ldr r0, [r0]
movs r1, #0x13
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
b _080DD6B2
.align 2, 0
_080DD674: .4byte 0x080DD6E5
_080DD678: .4byte 0x0000237E
_080DD67C: .4byte 0x02039BD4
_080DD680:
ldr r2, _080DD698
ldr r0, [r2]
ldr r0, [r0]
movs r1, #0x13
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r3, #0
b _080DD6B2
.align 2, 0
_080DD698: .4byte 0x02039BD4
_080DD69C:
movs r7, #0
lsls r0, r5, #0x18
adds r4, r0, #0
cmp r4, #0
ble _080DD6AC
movs r5, #0
movs r3, #0xc
b _080DD6B0
_080DD6AC:
movs r5, #0xc
movs r3, #0
_080DD6B0:
ldr r2, _080DD6DC
_080DD6B2:
ldr r1, _080DD6E0
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
adds r0, r0, r1
strh r7, [r0, #8]
strh r5, [r0, #0xa]
asrs r1, r4, #0x18
strh r1, [r0, #0xc]
strh r3, [r0, #0xe]
ldr r0, [r2]
ldr r2, [r0]
ldrb r1, [r2, #7]
movs r0, #2
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #7]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DD6DC: .4byte 0x02039BD4
_080DD6E0: .4byte 0x03005B60
thumb_func_end sub_080DD634
thumb_func_start sub_080DD6E4
sub_080DD6E4: @ 0x080DD6E4
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r2, _080DD714
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r3, r0, r2
ldrh r0, [r3, #0x1c]
adds r1, r0, #1
strh r1, [r3, #0x1c]
lsls r0, r0, #0x10
cmp r0, #0
blt _080DD760
movs r0, #0
strh r0, [r3, #0x1c]
movs r1, #0xc
ldrsh r0, [r3, r1]
cmp r0, #0
ble _080DD718
ldrh r0, [r3, #0xa]
adds r0, #1
b _080DD71C
.align 2, 0
_080DD714: .4byte 0x03005B60
_080DD718:
ldrh r0, [r3, #0xa]
subs r0, #1
_080DD71C:
strh r0, [r3, #0xa]
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
adds r4, r4, r2
ldrb r2, [r4, #0xa]
ldrh r3, [r4, #8]
movs r0, #0x11
movs r1, #1
bl BlendPalette
ldrb r2, [r4, #0xa]
ldrh r3, [r4, #8]
movs r0, #0x1a
movs r1, #1
bl BlendPalette
movs r2, #0xa
ldrsh r1, [r4, r2]
movs r2, #0xe
ldrsh r0, [r4, r2]
cmp r1, r0
bne _080DD760
adds r0, r5, #0
bl DestroyTask
ldr r0, _080DD768
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, #7]
movs r0, #2
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #7]
_080DD760:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080DD768: .4byte 0x02039BD4
thumb_func_end sub_080DD6E4
thumb_func_start sub_080DD76C
sub_080DD76C: @ 0x080DD76C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sl, r0
movs r5, #0
ldr r0, _080DD808
mov sb, r0
mov r8, sb
ldr r6, _080DD80C
movs r4, #0
movs r7, #0
_080DD78A:
mov r1, r8
ldr r0, [r1]
ldr r0, [r0, #4]
adds r0, r7, r0
ldrb r1, [r0, #0x10]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
beq _080DD820
mov r2, sl
cmp r2, #0
beq _080DD820
lsls r0, r5, #0x18
lsrs r0, r0, #0x18
bl GetTurnOrderNumberGfx
mov r3, r8
ldr r1, [r3]
ldr r1, [r1, #0x14]
adds r1, r4, r1
ldrb r2, [r1, #1]
lsls r1, r2, #4
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r6
ldrh r1, [r1, #4]
lsls r1, r1, #0x16
lsrs r1, r1, #0x11
ldr r2, _080DD810
adds r1, r1, r2
ldr r2, _080DD814
bl CpuSet
mov r0, r8
ldr r3, [r0]
ldr r0, [r3, #0x14]
adds r0, r4, r0
ldrb r0, [r0, #1]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r6
ldr r2, _080DD818
ldr r0, _080DD81C
adds r0, r5, r0
ldrb r0, [r0]
adds r0, r0, r2
ldrb r0, [r0]
strh r0, [r1, #0x22]
ldr r0, [r3, #0x14]
adds r0, r4, r0
ldrb r1, [r0, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
adds r0, #0x3e
ldrb r1, [r0]
movs r3, #5
rsbs r3, r3, #0
adds r2, r3, #0
ands r1, r2
b _080DD83A
.align 2, 0
_080DD808: .4byte 0x02039BD4
_080DD80C: .4byte 0x020205AC
_080DD810: .4byte 0x06010040
_080DD814: .4byte 0x04000008
_080DD818: .4byte 0x085609D4
_080DD81C: .4byte 0x02039BC6
_080DD820:
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #0x14]
adds r0, r4, r0
ldrb r1, [r0, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
_080DD83A:
strb r1, [r0]
adds r4, #4
adds r7, #0x1c
adds r5, #1
cmp r5, #3
ble _080DD78A
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_080DD76C
thumb_func_start GetTurnOrderNumberGfx
GetTurnOrderNumberGfx: @ 0x080DD854
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DD87C
ldr r1, [r1]
ldr r2, [r1, #4]
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r2, r1, r2
ldrb r1, [r2, #0x10]
movs r0, #0xc0
ands r0, r1
cmp r0, #0x40
bne _080DD884
ldrb r0, [r2, #0x19]
lsls r0, r0, #5
ldr r1, _080DD880
adds r0, r0, r1
b _080DD886
.align 2, 0
_080DD87C: .4byte 0x02039BD4
_080DD880: .4byte 0x08D8E97C
_080DD884:
ldr r0, _080DD88C
_080DD886:
pop {r1}
bx r1
.align 2, 0
_080DD88C: .4byte 0x08D8E9FC
thumb_func_end GetTurnOrderNumberGfx
thumb_func_start sub_080DD890
sub_080DD890: @ 0x080DD890
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
movs r7, #0
movs r0, #2
mov sl, r0
movs r0, #1
mov r8, r0
movs r0, #0x11
mov sb, r0
_080DD8AA:
ldr r0, _080DD944
ldr r0, [r0]
ldr r0, [r0, #8]
adds r0, #0xd
adds r0, r0, r7
ldrb r0, [r0]
cmp r0, #0
beq _080DD92E
lsls r0, r7, #0x18
lsrs r0, r0, #0x18
bl Contest_IsMonsTurnDisabled
lsls r0, r0, #0x18
cmp r0, #0
bne _080DD92E
ldr r0, _080DD948
adds r0, r7, r0
ldrb r0, [r0]
lsls r5, r0, #2
adds r5, r5, r0
adds r6, r5, #2
movs r0, #3
bl sub_080DAEAC
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
mov r0, sl
str r0, [sp]
mov r0, r8
str r0, [sp, #4]
mov r0, sb
str r0, [sp, #8]
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, r4, #0x10
lsrs r4, r4, #0x10
adds r5, #3
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
mov r0, sl
str r0, [sp]
mov r0, r8
str r0, [sp, #4]
mov r0, sb
str r0, [sp, #8]
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
_080DD92E:
adds r7, #1
cmp r7, #3
ble _080DD8AA
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DD944: .4byte 0x02039BD4
_080DD948: .4byte 0x02039BC6
thumb_func_end sub_080DD890
thumb_func_start sub_080DD94C
sub_080DD94C: @ 0x080DD94C
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _080DD97C
ldr r1, [r1]
ldr r2, [r1, #4]
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r2, r1, r2
ldrb r1, [r2, #0x15]
movs r3, #1
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _080DD976
ldrb r1, [r2, #0xc]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _080DD980
_080DD976:
movs r0, #0
b _080DD982
.align 2, 0
_080DD97C: .4byte 0x02039BD4
_080DD980:
movs r0, #1
_080DD982:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_080DD94C
thumb_func_start sub_080DD988
sub_080DD988: @ 0x080DD988
push {r4, r5, r6, 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, #4
rsbs r4, r4, #0
adds r0, r4, #0
ands r0, r1
strb r0, [r2]
ldrb r1, [r2, #1]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #1]
ldrb r1, [r2, #1]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #1]
ldrb r1, [r2]
movs r0, #0xd
rsbs r0, r0, #0
mov r8, r0
ands r0, r1
strb r0, [r2]
mov r0, sp
ldrh r1, [r0]
movs r0, #0xa
bl SetGpuReg
movs r0, #8
bl GetGpuReg
mov r6, sp
adds r6, #2
strh r0, [r6]
movs r0, #0xc
bl GetGpuReg
add r5, sp, #4
strh r0, [r5]
ldrb r1, [r6]
adds r0, r4, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r6]
ldrb r0, [r5]
ands r4, r0
orrs r4, r1
strb r4, [r5]
ldrh r1, [r6]
movs r0, #8
bl SetGpuReg
ldrh r1, [r5]
movs r0, #0xc
bl SetGpuReg
ldr r1, _080DDA9C
movs r0, #0xf0
strh r0, [r1]
ldr r4, _080DDAA0
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, #8]
add r0, sp, #8
ldr r4, _080DDAA4
ldr r1, [r4]
ldr r1, [r1, #0x28]
ldr r2, _080DDAA8
bl CpuSet
ldr r1, _080DDAAC
movs r0, #1
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
movs r0, #1
bl Contest_SetBgCopyFlags
movs r5, #0
ldr r7, _080DDAB0
movs r6, #4
_080DDA54:
ldr r0, [r4]
ldr r0, [r0, #0x14]
lsls r3, r5, #2
adds r0, r3, r0
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r7
ldrb r2, [r1, #5]
mov r0, r8
ands r0, r2
orrs r0, r6
strb r0, [r1, #5]
ldr r0, [r4]
ldr r0, [r0, #0x14]
adds r3, r3, r0
ldrb r0, [r3, #1]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r7
ldrb r2, [r1, #5]
mov r0, r8
ands r0, r2
orrs r0, r6
strb r0, [r1, #5]
adds r5, #1
cmp r5, #3
ble _080DDA54
add sp, #0xc
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DDA9C: .4byte 0x02022ACC
_080DDAA0: .4byte 0x02022ACE
_080DDAA4: .4byte 0x02039BD4
_080DDAA8: .4byte 0x05000400
_080DDAAC: .4byte 0x08C17988
_080DDAB0: .4byte 0x020205AC
thumb_func_end sub_080DD988
thumb_func_start sub_080DDAB4
sub_080DDAB4: @ 0x080DDAB4
push {r4, r5, r6, r7, lr}
sub sp, #8
ldr r1, _080DDB70
movs r2, #0x80
lsls r2, r2, #6
movs r0, #0
movs r3, #1
bl RequestDma3Fill
movs r5, #0
str r5, [sp]
ldr r6, _080DDB74
ldr r0, [r6]
ldr r1, [r0, #0x28]
ldr r2, _080DDB78
mov r0, sp
bl CpuSet
movs r0, #1
bl Contest_SetBgCopyFlags
movs r0, #0xa
bl GetGpuReg
add r3, sp, #4
strh r0, [r3]
ldrb r1, [r3]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r3]
mov r1, sp
adds r1, #5
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
ldrb r2, [r1]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldrb r1, [r3]
movs r4, #0xd
rsbs r4, r4, #0
adds r0, r4, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r3]
ldrh r1, [r3]
movs r0, #0xa
bl SetGpuReg
ldr r0, _080DDB7C
strh r5, [r0]
ldr r0, _080DDB80
strh r5, [r0]
ldr r7, _080DDB84
_080DDB2E:
ldr r0, [r6]
ldr r0, [r0, #0x14]
lsls r3, r5, #2
adds r0, r3, r0
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r7
ldrb r2, [r1, #5]
adds r0, r4, #0
ands r0, r2
strb r0, [r1, #5]
ldr r0, [r6]
ldr r0, [r0, #0x14]
adds r3, r3, r0
ldrb r0, [r3, #1]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r7
ldrb r2, [r1, #5]
adds r0, r4, #0
ands r0, r2
strb r0, [r1, #5]
adds r5, #1
cmp r5, #3
ble _080DDB2E
add sp, #8
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DDB70: .4byte 0x06008000
_080DDB74: .4byte 0x02039BD4
_080DDB78: .4byte 0x05000400
_080DDB7C: .4byte 0x02022ACC
_080DDB80: .4byte 0x02022ACE
_080DDB84: .4byte 0x020205AC
thumb_func_end sub_080DDAB4
thumb_func_start sub_080DDB88
sub_080DDB88: @ 0x080DDB88
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r1, _080DDBB8
movs r0, #0
strh r0, [r1]
ldr r1, _080DDBBC
movs r0, #0xa0
strh r0, [r1]
movs r0, #0x62
movs r1, #0
bl PlaySE12WithPanning
ldr r1, _080DDBC0
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _080DDBC4
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DDBB8: .4byte 0x02022ACC
_080DDBBC: .4byte 0x02022ACE
_080DDBC0: .4byte 0x03005B60
_080DDBC4: .4byte 0x080DDBC9
thumb_func_end sub_080DDB88
thumb_func_start sub_080DDBC8
sub_080DDBC8: @ 0x080DDBC8
push {lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldr r1, _080DDC00
ldrh r0, [r1]
subs r0, #7
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bge _080DDBE0
movs r0, #0
strh r0, [r1]
_080DDBE0:
ldrh r2, [r1]
cmp r2, #0
bne _080DDBFA
ldr r0, _080DDC04
lsls r1, r3, #2
adds r1, r1, r3
lsls r1, r1, #3
adds r1, r1, r0
strh r2, [r1, #8]
strh r2, [r1, #0xa]
strh r2, [r1, #0xc]
ldr r0, _080DDC08
str r0, [r1]
_080DDBFA:
pop {r0}
bx r0
.align 2, 0
_080DDC00: .4byte 0x02022ACE
_080DDC04: .4byte 0x03005B60
_080DDC08: .4byte 0x080DDC0D
thumb_func_end sub_080DDBC8
thumb_func_start sub_080DDC0C
sub_080DDC0C: @ 0x080DDC0C
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r1, _080DDC30
lsls r3, r4, #2
adds r0, r3, r4
lsls r0, r0, #3
adds r5, r0, r1
movs r0, #8
ldrsh r1, [r5, r0]
cmp r1, #1
beq _080DDC90
cmp r1, #1
bgt _080DDC34
cmp r1, #0
beq _080DDC3E
b _080DDD18
.align 2, 0
_080DDC30: .4byte 0x03005B60
_080DDC34:
cmp r1, #2
beq _080DDCEE
cmp r1, #3
beq _080DDD08
b _080DDD18
_080DDC3E:
movs r2, #0
adds r6, r3, #0
ldr r5, _080DDC84
ldr r3, _080DDC88
_080DDC46:
ldr r0, [r5]
ldr r1, [r0]
adds r1, #0x14
adds r1, r1, r2
adds r0, r2, r3
ldrb r0, [r0]
strb r0, [r1]
adds r2, #1
cmp r2, #3
ble _080DDC46
bl FillContestantWindowBgs
bl sub_080DBFC8
bl sub_080DAE00
bl DrawContestantWindows
movs r0, #1
bl sub_080DD76C
bl sub_080DBBB0
ldr r0, _080DDC8C
adds r1, r6, r4
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #1
strh r0, [r1, #8]
b _080DDD18
.align 2, 0
_080DDC84: .4byte 0x02039BD4
_080DDC88: .4byte 0x02039BC6
_080DDC8C: .4byte 0x03005B60
_080DDC90:
ldr r0, _080DDCD8
ldrb r0, [r0]
ands r1, r0
cmp r1, #0
beq _080DDCE8
ldr r0, _080DDCDC
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, #7]
movs r1, #4
orrs r0, r1
strb r0, [r2, #7]
bl sub_080DA094
lsls r0, r0, #0x18
cmp r0, #0
beq _080DDCB6
bl sub_080DB204
_080DDCB6:
ldr r4, _080DDCE0
adds r0, r4, #0
movs r1, #0
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DDCE4
adds r1, r4, #0
bl SetTaskFuncWithFollowupFunc
bl ContestPrintLinkStandby
movs r0, #2
strh r0, [r5, #8]
b _080DDD18
.align 2, 0
_080DDCD8: .4byte 0x02039BCA
_080DDCDC: .4byte 0x02039BD4
_080DDCE0: .4byte 0x080FD4DD
_080DDCE4: .4byte 0x080D9901
_080DDCE8:
bl sub_080DB204
b _080DDCFE
_080DDCEE:
ldr r0, _080DDD04
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, #7]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _080DDD18
_080DDCFE:
movs r0, #3
strh r0, [r5, #8]
b _080DDD18
.align 2, 0
_080DDD04: .4byte 0x02039BD4
_080DDD08:
bl sub_080DAFE8
bl SwapMoveDescAndContestTilemaps
movs r0, #0
strh r0, [r5, #8]
ldr r0, _080DDD20
str r0, [r5]
_080DDD18:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DDD20: .4byte 0x080DDD59
thumb_func_end sub_080DDC0C
thumb_func_start sub_080DDD24
sub_080DDD24: @ 0x080DDD24
push {lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r1, _080DDD4C
ldrh r0, [r1]
adds r0, #7
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xa0
ble _080DDD48
ldr r0, _080DDD50
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _080DDD54
str r0, [r1]
_080DDD48:
pop {r0}
bx r0
.align 2, 0
_080DDD4C: .4byte 0x02022ACE
_080DDD50: .4byte 0x03005B60
_080DDD54: .4byte 0x080D9CE5
thumb_func_end sub_080DDD24
thumb_func_start sub_080DDD58
sub_080DDD58: @ 0x080DDD58
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DDD78
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
ldrh r2, [r1, #0xc]
movs r3, #0xc
ldrsh r0, [r1, r3]
cmp r0, #9
bgt _080DDD7C
adds r0, r2, #1
strh r0, [r1, #0xc]
b _080DDDB8
.align 2, 0
_080DDD78: .4byte 0x03005B60
_080DDD7C:
ldrh r3, [r1, #0xa]
movs r4, #0xa
ldrsh r0, [r1, r4]
cmp r0, #0
bne _080DDD9A
ldrh r2, [r1, #8]
movs r4, #8
ldrsh r0, [r1, r4]
cmp r0, #0x10
bne _080DDD96
adds r0, r3, #1
strh r0, [r1, #0xa]
b _080DDDB8
_080DDD96:
adds r0, r2, #1
b _080DDDB6
_080DDD9A:
ldrh r0, [r1, #8]
movs r3, #8
ldrsh r2, [r1, r3]
cmp r2, #0
bne _080DDDB4
strh r2, [r1, #0xa]
strh r2, [r1, #0xc]
ldr r0, _080DDDB0
str r0, [r1]
b _080DDDB8
.align 2, 0
_080DDDB0: .4byte 0x080DDDC1
_080DDDB4:
subs r0, #1
_080DDDB6:
strh r0, [r1, #8]
_080DDDB8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080DDD58
thumb_func_start sub_080DDDC0
sub_080DDDC0: @ 0x080DDDC0
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DDDE0
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r4, r1, r2
ldrh r1, [r4, #0xc]
movs r2, #0xc
ldrsh r0, [r4, r2]
cmp r0, #9
bgt _080DDDE4
adds r0, r1, #1
strh r0, [r4, #0xc]
b _080DDDF4
.align 2, 0
_080DDDE0: .4byte 0x03005B60
_080DDDE4:
movs r0, #0
strh r0, [r4, #0xc]
movs r0, #0x61
movs r1, #0
bl PlaySE12WithPanning
ldr r0, _080DDDFC
str r0, [r4]
_080DDDF4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DDDFC: .4byte 0x080DDD25
thumb_func_end sub_080DDDC0
thumb_func_start sub_080DDE00
sub_080DDE00: @ 0x080DDE00
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
movs r7, #0
ldr r6, _080DDEE8
ldr r5, _080DDEEC
_080DDE12:
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, r3, r1
lsls r3, r3, #2
adds r3, r3, r6
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x1f
ands r0, r1
lsls r0, r0, #1
ldrb r1, [r3, #3]
movs r2, #0x3f
rsbs r2, r2, #0
mov ip, r2
mov r2, ip
ands r1, r2
orrs r1, r0
strb r1, [r3, #3]
ldr r0, [r5]
ldr r0, [r0, #0x14]
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
ldrb r2, [r0, #1]
movs r3, #4
rsbs r3, r3, #0
adds r1, r3, #0
ands r2, r1
movs r1, #1
orrs r2, r1
strb r2, [r0, #1]
ldr r0, [r5]
ldr r0, [r0, #0x14]
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
mov r1, r8
bl StartSpriteAffineAnim
mov r0, r8
cmp r0, #2
bne _080DDEB0
ldr r0, [r5]
ldr r0, [r0, #0x14]
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
bl AnimateSprite
ldr r0, [r5]
ldr r0, [r0, #0x14]
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
adds r0, #0x3e
ldrb r1, [r0]
movs r3, #5
rsbs r3, r3, #0
adds r2, r3, #0
ands r1, r2
strb r1, [r0]
_080DDEB0:
adds r7, #1
cmp r7, #3
ble _080DDE12
ldr r0, _080DDEF0
movs r1, #5
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _080DDEF4
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
mov r0, r8
strh r0, [r1, #8]
ldr r0, _080DDEEC
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, #7]
movs r1, #2
orrs r0, r1
strb r0, [r2, #7]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DDEE8: .4byte 0x020205AC
_080DDEEC: .4byte 0x02039BD4
_080DDEF0: .4byte 0x080DDEF9
_080DDEF4: .4byte 0x03005B60
thumb_func_end sub_080DDE00
thumb_func_start sub_080DDEF8
sub_080DDEF8: @ 0x080DDEF8
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
ldr r2, _080DDF8C
ldr r3, _080DDF90
ldr r0, [r3]
ldr r0, [r0, #0x14]
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
adds r0, #0x3f
ldrb r0, [r0]
lsls r0, r0, #0x1a
cmp r0, #0
bge _080DDF86
ldr r0, _080DDF94
lsls r1, r6, #2
adds r1, r1, r6
lsls r1, r1, #3
adds r1, r1, r0
ldrb r0, [r1, #8]
cmp r0, #1
bne _080DDF50
movs r4, #0
adds r5, r2, #0
movs r2, #4
_080DDF30:
ldr r0, [r3]
ldr r1, [r0, #0x14]
lsls r0, r4, #2
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
adds r0, #0x3e
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
adds r4, #1
cmp r4, #3
ble _080DDF30
_080DDF50:
movs r4, #0
_080DDF52:
ldr r5, _080DDF90
ldr r0, [r5]
ldr r1, [r0, #0x14]
lsls r0, r4, #2
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080DDF8C
adds r0, r0, r1
bl FreeSpriteOamMatrix
adds r4, #1
cmp r4, #3
ble _080DDF52
ldr r0, [r5]
ldr r2, [r0]
ldrb r1, [r2, #7]
movs r0, #3
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #7]
adds r0, r6, #0
bl DestroyTask
_080DDF86:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DDF8C: .4byte 0x020205AC
_080DDF90: .4byte 0x02039BD4
_080DDF94: .4byte 0x03005B60
thumb_func_end sub_080DDEF8
thumb_func_start SanitizeMove
SanitizeMove: @ 0x080DDF98
push {lr}
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
movs r0, #0xb1
lsls r0, r0, #1
cmp r1, r0
bls _080DDFA8
movs r1, #1
_080DDFA8:
adds r0, r1, #0
pop {r1}
bx r1
.align 2, 0
thumb_func_end SanitizeMove
thumb_func_start SanitizeSpecies
SanitizeSpecies: @ 0x080DDFB0
push {lr}
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
ldr r0, _080DDFC4
cmp r1, r0
bls _080DDFBE
movs r1, #0
_080DDFBE:
adds r0, r1, #0
pop {r1}
bx r1
.align 2, 0
_080DDFC4: .4byte 0x0000019B
thumb_func_end SanitizeSpecies
thumb_func_start sub_080DDFC8
sub_080DDFC8: @ 0x080DDFC8
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r4, _080DE02C
ldr r0, [r4]
ldr r1, [r0, #4]
lsls r0, r7, #3
subs r0, r0, r7
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0, #6]
bl SanitizeMove
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r1, _080DE030
lsls r0, r7, #6
adds r0, r0, r1
ldrh r0, [r0]
bl SanitizeSpecies
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldr r0, [r4]
ldr r0, [r0, #0x18]
movs r1, #0
movs r2, #0x14
bl memset
bl ClearBattleAnimationVars
ldr r1, _080DE034
movs r2, #0
adds r0, r1, #3
_080DE00C:
strb r2, [r0]
subs r0, #1
cmp r0, r1
bge _080DE00C
cmp r5, #0x90
beq _080DE084
cmp r5, #0x90
bgt _080DE042
cmp r5, #0x4c
beq _080DE0DC
cmp r5, #0x4c
bgt _080DE038
cmp r5, #0xd
beq _080DE0DC
b _080DE106
.align 2, 0
_080DE02C: .4byte 0x02039BD4
_080DE030: .4byte 0x02039AA0
_080DE034: .4byte 0x02024188
_080DE038:
cmp r5, #0x82
beq _080DE0DC
cmp r5, #0x8f
beq _080DE0DC
b _080DE106
_080DE042:
cmp r5, #0xd8
beq _080DE0C4
cmp r5, #0xd8
bgt _080DE050
cmp r5, #0xae
beq _080DE05E
b _080DE106
_080DE050:
cmp r5, #0xda
beq _080DE0D0
movs r0, #0x88
lsls r0, r0, #1
cmp r5, r0
beq _080DE084
b _080DE106
_080DE05E:
ldr r0, _080DE07C
lsls r1, r6, #3
subs r1, r1, r6
lsls r1, r1, #2
adds r1, r1, r0
ldrb r0, [r1, #6]
cmp r0, #7
beq _080DE074
ldrb r0, [r1, #7]
cmp r0, #7
bne _080DE100
_080DE074:
ldr r1, _080DE080
movs r0, #0
b _080DE104
.align 2, 0
_080DE07C: .4byte 0x082F0D54
_080DE080: .4byte 0x020380D2
_080DE084:
ldr r6, _080DE0BC
ldr r0, [r6]
ldr r1, [r0, #4]
lsls r0, r7, #3
subs r0, r0, r7
lsls r0, r0, #2
adds r0, r0, r1
ldrb r4, [r0, #0x1b]
ldr r5, _080DE0C0
lsls r4, r4, #6
adds r0, r4, r5
ldrh r0, [r0]
bl SanitizeSpecies
ldr r2, [r6]
ldr r1, [r2, #0x18]
strh r0, [r1, #2]
ldr r2, [r2, #0x18]
adds r5, #0x38
adds r4, r4, r5
ldr r0, [r4]
str r0, [r2, #0x10]
ldrb r0, [r2, #4]
movs r1, #1
orrs r0, r1
strb r0, [r2, #4]
b _080DE106
.align 2, 0
_080DE0BC: .4byte 0x02039BD4
_080DE0C0: .4byte 0x02039AA0
_080DE0C4:
ldr r1, _080DE0CC
movs r0, #0xff
b _080DE104
.align 2, 0
_080DE0CC: .4byte 0x020380BA
_080DE0D0:
ldr r1, _080DE0D8
movs r0, #0
b _080DE104
.align 2, 0
_080DE0D8: .4byte 0x020380BA
_080DE0DC:
ldr r0, _080DE0F8
ldr r0, [r0]
ldr r0, [r0]
adds r2, r0, #0
adds r2, #0x5a
ldrb r1, [r2]
cmp r1, #0
bne _080DE100
movs r0, #2
strb r0, [r2]
ldr r0, _080DE0FC
strb r1, [r0]
b _080DE106
.align 2, 0
_080DE0F8: .4byte 0x02039BD4
_080DE0FC: .4byte 0x020380D2
_080DE100:
ldr r1, _080DE110
movs r0, #1
_080DE104:
strb r0, [r1]
_080DE106:
bl sub_080DE1C0
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DE110: .4byte 0x020380D2
thumb_func_end sub_080DDFC8
thumb_func_start sub_080DE114
sub_080DE114: @ 0x080DE114
push {r4, lr}
ldr r4, _080DE13C
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 _080DE136
subs r0, #1
strb r0, [r1]
_080DE136:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DE13C: .4byte 0x02039BD4
thumb_func_end sub_080DE114
thumb_func_start sub_080DE140
sub_080DE140: @ 0x080DE140
push {r4, r5, r6, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r6, _080DE17C
ldr r0, [r6]
ldr r0, [r0, #0x18]
strb r4, [r0, #5]
ldr r5, _080DE180
lsls r4, r4, #6
adds r0, r4, r5
ldrh r0, [r0]
bl SanitizeSpecies
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, #8]
adds r5, #0x3c
adds r4, r4, r5
ldr r0, [r4]
str r0, [r1, #0xc]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DE17C: .4byte 0x02039BD4
_080DE180: .4byte 0x02039AA0
thumb_func_end sub_080DE140
thumb_func_start sub_080DE184
sub_080DE184: @ 0x080DE184
push {lr}
ldr r0, _080DE1B0
bl CreateInvisibleSpriteWithCallback
ldr r1, _080DE1B4
strb r0, [r1, #3]
ldr r0, _080DE1B8
ldrb r0, [r0]
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080DE1BC
adds r0, r0, r1
bl InitSpriteAffineAnim
bl sub_080DE1C0
pop {r0}
bx r0
.align 2, 0
_080DE1B0: .4byte 0x08007141
_080DE1B4: .4byte 0x02023E88
_080DE1B8: .4byte 0x02023EB0
_080DE1BC: .4byte 0x020205AC
thumb_func_end sub_080DE184
thumb_func_start sub_080DE1C0
sub_080DE1C0: @ 0x080DE1C0
push {r4, lr}
ldr r0, _080DE204
ldrb r0, [r0, #3]
lsls r4, r0, #4
adds r4, r4, r0
lsls r4, r4, #2
ldr r0, _080DE208
adds r4, r4, r0
movs r0, #0
strh r0, [r4, #0x24]
strh r0, [r4, #0x26]
movs r0, #3
movs r1, #0
bl GetBattlerSpriteCoord
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r4, #0x20]
movs r0, #3
movs r1, #1
bl GetBattlerSpriteCoord
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r4, #0x22]
adds r4, #0x3e
ldrb r0, [r4]
movs r1, #4
orrs r0, r1
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080DE204: .4byte 0x02023E88
_080DE208: .4byte 0x020205AC
thumb_func_end sub_080DE1C0
thumb_func_start SelectContestMoveBankTarget
SelectContestMoveBankTarget: @ 0x080DE20C
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r2, _080DE22C
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r2
ldrb r0, [r1, #6]
cmp r0, #0x20
bhi _080DE2C4
lsls r0, r0, #2
ldr r1, _080DE230
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DE22C: .4byte 0x082ED220
_080DE230: .4byte 0x080DE234
_080DE234: @ jump table
.4byte _080DE2C4 @ case 0
.4byte _080DE2C4 @ case 1
.4byte _080DE2B8 @ case 2
.4byte _080DE2C4 @ case 3
.4byte _080DE2C4 @ case 4
.4byte _080DE2C4 @ case 5
.4byte _080DE2C4 @ case 6
.4byte _080DE2C4 @ case 7
.4byte _080DE2C4 @ case 8
.4byte _080DE2C4 @ case 9
.4byte _080DE2C4 @ case 10
.4byte _080DE2C4 @ case 11
.4byte _080DE2C4 @ case 12
.4byte _080DE2C4 @ case 13
.4byte _080DE2C4 @ case 14
.4byte _080DE2C4 @ case 15
.4byte _080DE2B8 @ case 16
.4byte _080DE2C4 @ case 17
.4byte _080DE2C4 @ case 18
.4byte _080DE2C4 @ case 19
.4byte _080DE2C4 @ case 20
.4byte _080DE2C4 @ case 21
.4byte _080DE2C4 @ case 22
.4byte _080DE2C4 @ case 23
.4byte _080DE2C4 @ case 24
.4byte _080DE2C4 @ case 25
.4byte _080DE2C4 @ case 26
.4byte _080DE2C4 @ case 27
.4byte _080DE2C4 @ case 28
.4byte _080DE2C4 @ case 29
.4byte _080DE2C4 @ case 30
.4byte _080DE2C4 @ case 31
.4byte _080DE2C4 @ case 32
_080DE2B8:
ldr r1, _080DE2C0
movs r0, #2
b _080DE2C8
.align 2, 0
_080DE2C0: .4byte 0x02023EB0
_080DE2C4:
ldr r1, _080DE2D0
movs r0, #3
_080DE2C8:
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080DE2D0: .4byte 0x02023EB0
thumb_func_end SelectContestMoveBankTarget
thumb_func_start Contest_PrintTextToBg0WindowStd
Contest_PrintTextToBg0WindowStd: @ 0x080DE2D4
push {r4, lr}
sub sp, #0x10
adds r4, r0, #0
str r1, [sp]
mov r0, sp
movs r2, #0
strb r4, [r0, #4]
mov r1, sp
movs r0, #1
strb r0, [r1, #5]
mov r0, sp
strb r2, [r0, #6]
movs r1, #2
strb r1, [r0, #7]
strb r2, [r0, #8]
strb r1, [r0, #9]
strb r2, [r0, #0xa]
strb r2, [r0, #0xb]
mov r3, sp
ldrb r2, [r3, #0xc]
subs r1, #0x12
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, r4, #0x18
lsrs r4, r4, #0x18
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_StartTextPrinter
Contest_StartTextPrinter: @ 0x080DE338
push {r4, r5, lr}
sub sp, #0x10
str r0, [sp]
mov r2, sp
movs r3, #0
movs r0, #8
strb r0, [r2, #4]
mov r0, sp
movs r5, #1
strb r5, [r0, #5]
strb r3, [r0, #6]
movs r2, #2
strb r2, [r0, #7]
strb r3, [r0, #8]
strb r2, [r0, #9]
strb r3, [r0, #0xa]
strb r3, [r0, #0xb]
mov r4, sp
ldrb r3, [r4, #0xc]
subs r2, #0x12
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 _080DE388
mov r0, sp
movs r1, #0
movs r2, #0
bl AddTextPrinter
b _080DE3AC
_080DE388:
ldr r0, _080DE398
ldrb r1, [r0]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _080DE39C
movs r1, #4
b _080DE3A4
.align 2, 0
_080DE398: .4byte 0x02039BCA
_080DE39C:
bl GetPlayerTextSpeedDelay
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
_080DE3A4:
mov r0, sp
movs r2, #0
bl AddTextPrinter
_080DE3AC:
movs r0, #8
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: @ 0x080DE3C0
push {r4, r5, r6, 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, r7, #0x18
lsrs r7, r7, #0x18
mov r8, r7
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
str r0, [sp]
str r4, [sp, #4]
str r5, [sp, #8]
lsls r6, r6, #0x10
asrs r6, r6, #0x10
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, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end ContestBG_FillBoxWithIncrementingTile
thumb_func_start ContestBG_FillBoxWithTile
ContestBG_FillBoxWithTile: @ 0x080DE418
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r4, [sp, #0x20]
ldr r5, [sp, #0x24]
ldr r6, [sp, #0x28]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
str r4, [sp]
str r5, [sp, #4]
str r6, [sp, #8]
movs r4, #0
str r4, [sp, #0xc]
bl ContestBG_FillBoxWithIncrementingTile
add sp, #0x10
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_end ContestBG_FillBoxWithTile
thumb_func_start Contest_RunTextPrinters
Contest_RunTextPrinters: @ 0x080DE454
push {lr}
bl RunTextPrinters
movs r0, #8
bl IsTextPrinterActive
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r1}
bx r1
thumb_func_end Contest_RunTextPrinters
thumb_func_start Contest_SetBgCopyFlags
Contest_SetBgCopyFlags: @ 0x080DE468
ldr r2, _080DE478
movs r1, #1
lsls r1, r0
ldrb r0, [r2]
orrs r1, r0
strb r1, [r2]
bx lr
.align 2, 0
_080DE478: .4byte 0x02039BD8
thumb_func_end Contest_SetBgCopyFlags
thumb_func_start ResetContestLinkResults
ResetContestLinkResults: @ 0x080DE47C
push {r4, r5, r6, lr}
movs r0, #0
ldr r6, _080DE4A8
ldr r5, _080DE4AC
movs r4, #0
_080DE486:
adds r3, r0, #1
lsls r1, r0, #3
movs r2, #3
_080DE48C:
ldr r0, [r6]
adds r0, r0, r5
adds r0, r0, r1
strh r4, [r0]
adds r1, #2
subs r2, #1
cmp r2, #0
bge _080DE48C
adds r0, r3, #0
cmp r0, #4
ble _080DE486
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080DE4A8: .4byte 0x03005AF0
_080DE4AC: .4byte 0x00000624
thumb_func_end ResetContestLinkResults
thumb_func_start sub_080DE4B0
sub_080DE4B0: @ 0x080DE4B0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp]
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #3
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
movs r5, #0
ldr r1, _080DE500
ldrb r0, [r1]
cmp r0, #0
beq _080DE4EE
_080DE4E0:
adds r5, #1
cmp r5, #2
bgt _080DE4EE
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, #0
bne _080DE4E0
_080DE4EE:
ldr r0, [sp]
cmp r0, #0xff
bne _080DE508
ldr r0, _080DE504
ldrb r0, [r0]
cmp r5, r0
beq _080DE508
movs r0, #0
b _080DE698
.align 2, 0
_080DE500: .4byte 0x02039BC0
_080DE504: .4byte 0x02039BC5
_080DE508:
ldr r0, _080DE51C
ldrh r0, [r0]
cmp r0, #4
bhi _080DE554
lsls r0, r0, #2
ldr r1, _080DE520
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DE51C: .4byte 0x02039BCC
_080DE520: .4byte 0x080DE524
_080DE524: @ jump table
.4byte _080DE554 @ case 0
.4byte _080DE538 @ case 1
.4byte _080DE53E @ case 2
.4byte _080DE544 @ case 3
.4byte _080DE54A @ case 4
_080DE538:
mov r0, r8
adds r0, #3
b _080DE54E
_080DE53E:
mov r0, r8
adds r0, #6
b _080DE54E
_080DE544:
mov r0, r8
adds r0, #9
b _080DE54E
_080DE54A:
mov r0, r8
adds r0, #0xc
_080DE54E:
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
_080DE554:
ldr r1, [sp]
cmp r1, #0xfe
bne _080DE55C
b _080DE658
_080DE55C:
adds r0, r1, #0
movs r1, #1
bl sub_080DE6B0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
ldr r2, _080DE5E0
mov sl, r2
ldr r0, [r2]
mov r3, sb
lsls r7, r3, #5
ldr r6, _080DE5E4
adds r2, r0, r6
adds r2, r2, r7
ldr r4, _080DE5E8
lsls r5, 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, _080DE5EC
adds r1, r1, r3
strh r2, [r1]
ldr r1, _080DE5F0
adds r2, r0, r1
adds r2, 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, r0, r6
adds r0, #0xb
adds r1, r4, #2
adds r1, r5, r1
bl StringCopy
mov r2, sl
ldr r0, [r2]
adds r0, r0, r6
adds r0, #0x16
adds r4, #0xd
adds r5, r5, r4
adds r1, r5, #0
bl StringCopy
ldr r0, _080DE5F4
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080DE5FC
mov r3, sl
ldr r0, [r3]
adds r0, r0, r7
ldr r1, _080DE5F8
adds r0, r0, r1
movs r1, #4
b _080DE60A
.align 2, 0
_080DE5E0: .4byte 0x03005AEC
_080DE5E4: .4byte 0x00002E90
_080DE5E8: .4byte 0x02039AA0
_080DE5EC: .4byte 0x00002E98
_080DE5F0: .4byte 0x00002E94
_080DE5F4: .4byte 0x02039BCA
_080DE5F8: .4byte 0x00002EAE
_080DE5FC:
mov r2, sl
ldr r0, [r2]
adds r0, r0, r7
ldr r1, _080DE628
ldrh r1, [r1]
ldr r3, _080DE62C
adds r0, r0, r3
_080DE60A:
strb r1, [r0]
ldr r0, [sp]
cmp r0, #0xff
beq _080DE63C
ldr r0, _080DE630
ldr r0, [r0]
mov r2, sb
lsls r1, r2, #5
adds r0, r0, r1
ldr r1, _080DE634
ldrh r1, [r1]
ldr r3, _080DE638
adds r0, r0, r3
strb r1, [r0]
b _080DE696
.align 2, 0
_080DE628: .4byte 0x02039BCE
_080DE62C: .4byte 0x00002EAE
_080DE630: .4byte 0x03005AEC
_080DE634: .4byte 0x02039BCC
_080DE638: .4byte 0x00002E9A
_080DE63C:
ldr r0, _080DE650
ldr r0, [r0]
mov r2, sb
lsls r1, r2, #5
adds r0, r0, r1
ldr r3, _080DE654
adds r0, r0, r3
mov r1, r8
strb r1, [r0]
b _080DE696
.align 2, 0
_080DE650: .4byte 0x03005AEC
_080DE654: .4byte 0x00002E9A
_080DE658:
ldr r6, _080DE6A8
ldr r4, _080DE6AC
lsls r5, 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, #4]
adds r0, r5, r4
ldrh r0, [r0]
strh r0, [r6, #8]
adds r0, r6, #0
adds r0, #0xb
adds r1, r4, #2
adds r1, r5, r1
bl StringCopy
adds r0, r6, #0
adds r0, #0x16
adds r4, #0xd
adds r5, r5, r4
adds r1, r5, #0
bl StringCopy
mov r2, r8
strb r2, [r6, #0xa]
_080DE696:
movs r0, #1
_080DE698:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_080DE6A8: .4byte 0x02039BDC
_080DE6AC: .4byte 0x02039AA0
thumb_func_end sub_080DE4B0
thumb_func_start sub_080DE6B0
sub_080DE6B0: @ 0x080DE6B0
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r0, #3
bgt _080DE700
cmp r0, #0
blt _080DE700
cmp r1, #0
beq _080DE6EE
movs r2, #5
ldr r0, _080DE6F4
mov ip, r0
ldr r4, _080DE6F8
ldr r3, _080DE6FC
_080DE6D0:
mov r1, ip
ldr r0, [r1]
lsls r1, r2, #5
adds r1, r1, r0
adds r0, r1, r4
adds r1, r1, r3
ldm r1!, {r5, r6, r7}
stm r0!, {r5, r6, r7}
ldm r1!, {r5, r6, r7}
stm r0!, {r5, r6, r7}
ldm r1!, {r5, r6}
stm r0!, {r5, r6}
subs r2, #1
cmp r2, #0
bgt _080DE6D0
_080DE6EE:
movs r0, #0
b _080DE742
.align 2, 0
_080DE6F4: .4byte 0x03005AEC
_080DE6F8: .4byte 0x00002E90
_080DE6FC: .4byte 0x00002E70
_080DE700:
ldr r0, _080DE714
ldrh r0, [r0]
cmp r0, #4
bhi _080DE740
lsls r0, r0, #2
ldr r1, _080DE718
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080DE714: .4byte 0x02039BCC
_080DE718: .4byte 0x080DE71C
_080DE71C: @ jump table
.4byte _080DE730 @ case 0
.4byte _080DE734 @ case 1
.4byte _080DE738 @ case 2
.4byte _080DE73C @ case 3
.4byte _080DE740 @ case 4
_080DE730:
movs r0, #8
b _080DE742
_080DE734:
movs r0, #9
b _080DE742
_080DE738:
movs r0, #0xa
b _080DE742
_080DE73C:
movs r0, #0xb
b _080DE742
_080DE740:
movs r0, #0xc
_080DE742:
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_end sub_080DE6B0
thumb_func_start ClearContestWinnerPicsInContestHall
ClearContestWinnerPicsInContestHall: @ 0x080DE748
push {r4, r5, r6, r7, lr}
movs r2, #0
ldr r0, _080DE77C
mov ip, r0
ldr r4, _080DE780
ldr r3, _080DE784
_080DE754:
mov r1, ip
ldr r0, [r1]
lsls r1, r2, #5
adds r0, r0, r1
adds r0, r0, r4
adds r1, r3, #0
ldm r1!, {r5, r6, r7}
stm r0!, {r5, r6, r7}
ldm r1!, {r5, r6, r7}
stm r0!, {r5, r6, r7}
ldm r1!, {r5, r6}
stm r0!, {r5, r6}
adds r3, #0x20
adds r2, #1
cmp r2, #7
ble _080DE754
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DE77C: .4byte 0x03005AEC
_080DE780: .4byte 0x00002E90
_080DE784: .4byte 0x08560F28
thumb_func_end ClearContestWinnerPicsInContestHall
thumb_func_start sub_080DE788
sub_080DE788: @ 0x080DE788
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r2, _080DE8C0
ldr r3, [r2]
ldr r5, [r3, #0x10]
ldrb r1, [r5, #1]
movs r7, #1
adds r0, r7, #0
ands r0, r1
adds r6, r2, #0
cmp r0, #0
bne _080DE7DA
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
ble _080DE7DA
ldr r1, [r3, #4]
lsls r0, r4, #3
subs r0, r0, r4
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x15]
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne _080DE7DA
ldr r1, [r3, #0x1c]
lsls r2, r4, #4
adds r1, r2, r1
ldrb r3, [r1, #0xc]
movs r0, #1
orrs r0, r3
strb r0, [r1, #0xc]
ldr r0, [r6]
ldr r0, [r0, #0x1c]
adds r2, r2, r0
ldrb r0, [r2, #0xe]
movs r1, #2
orrs r0, r1
strb r0, [r2, #0xe]
_080DE7DA:
ldr r3, [r6]
ldr r1, [r3, #4]
lsls r2, r4, #3
subs r0, r2, r4
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0xc]
movs r5, #1
adds r0, r5, #0
ands r0, r1
adds r7, r2, #0
cmp r0, #0
beq _080DE802
ldr r0, [r3, #0x1c]
lsls r1, r4, #4
adds r1, r1, r0
ldrb r2, [r1, #0xc]
movs r0, #2
orrs r0, r2
strb r0, [r1, #0xc]
_080DE802:
ldr r3, [r6]
ldr r2, [r3, #0x10]
ldrb r1, [r2, #1]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
bne _080DE82E
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _080DE82E
movs r0, #2
ldrsb r0, [r2, r0]
cmp r0, #0x3c
bne _080DE82E
ldr r0, [r3, #0x1c]
lsls r1, r4, #4
adds r1, r1, r0
ldrb r2, [r1, #0xc]
movs r0, #4
orrs r0, r2
strb r0, [r1, #0xc]
_080DE82E:
ldr r3, [r6]
ldr r1, [r3, #4]
subs r0, r7, r4
lsls r0, r0, #2
adds r2, r0, r1
ldrb r1, [r2, #0x15]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080DE856
ldrb r0, [r2, #0x16]
cmp r0, #0
beq _080DE856
ldr r0, [r3, #0x1c]
lsls r1, r4, #4
adds r1, r1, r0
ldrb r2, [r1, #0xc]
movs r0, #8
orrs r0, r2
strb r0, [r1, #0xc]
_080DE856:
movs r3, #0
movs r5, #0
_080DE85A:
cmp r3, r4
beq _080DE888
ldr r1, [r6]
ldr r0, [r1, #4]
adds r0, r5, r0
ldrb r0, [r0, #0xe]
cmp r0, #0
beq _080DE888
ldr r0, [r1, #0x1c]
lsls r2, r4, #4
adds r2, 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, r2, r0
ldrb r0, [r2, #0xc]
movs r1, #0x40
orrs r0, r1
strb r0, [r2, #0xc]
_080DE888:
adds r5, #0x1c
adds r3, #1
cmp r3, #3
ble _080DE85A
ldr r2, [r6]
ldr r1, [r2, #4]
subs r0, r7, r4
lsls r5, r0, #2
adds r1, r5, r1
ldrb r3, [r1, #0xc]
movs r0, #6
ands r0, r3
cmp r0, #0
bne _080DE8AE
ldrb r1, [r1, #0xb]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080DE8C4
_080DE8AE:
ldr r0, [r2, #0x1c]
lsls r1, r4, #4
adds r1, r1, r0
ldrb r2, [r1, #0xc]
movs r0, #0x20
orrs r0, r2
strb r0, [r1, #0xc]
b _080DE8FE
.align 2, 0
_080DE8C0: .4byte 0x02039BD4
_080DE8C4:
movs r0, #1
ands r0, r3
cmp r0, #0
bne _080DE8FE
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, #1
orrs r0, r2
strb r0, [r1, #0xe]
ldr r1, [r6]
ldr r0, [r1, #0x1c]
adds r3, r3, r0
ldr r0, [r1]
ldrb r0, [r0, #1]
lsls r0, r0, #1
adds r3, r3, r0
ldr r0, [r1, #4]
adds r0, r5, r0
ldrh r0, [r0, #6]
strh r0, [r3]
_080DE8FE:
ldr r2, [r6]
ldr r1, [r2, #4]
subs r0, r7, r4
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #0x15]
movs r5, #1
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _080DE922
ldr r0, [r2, #0x1c]
lsls r1, r4, #4
adds r1, r1, r0
ldrb r2, [r1, #0xd]
movs r0, #2
orrs r0, r2
strb r0, [r1, #0xd]
_080DE922:
ldr r2, [r6]
ldr r0, [r2]
ldrb r0, [r0, #0x13]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
bne _080DE952
ldr r3, [r2, #0x10]
ldrb r1, [r3, #1]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
bne _080DE952
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _080DE952
ldr r0, [r2, #0x1c]
lsls r1, r4, #4
adds r1, r1, r0
ldrb r2, [r1, #0xd]
movs r0, #0x20
orrs r0, r2
strb r0, [r1, #0xd]
_080DE952:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_080DE788
thumb_func_start sub_080DE958
sub_080DE958: @ 0x080DE958
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x38
movs r1, #0
movs r0, #0
str r0, [sp, #0x20]
movs r4, #0
ldr r6, _080DE998
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, #2
str r7, [sp, #0x24]
ldr r5, _080DE99C
movs r2, #0
movs r3, #0x80
lsls r3, r3, #0x11
_080DE988:
adds r0, r4, r5
ldrb r0, [r0]
cmp r0, #0
bne _080DE9A0
lsrs r0, r2, #0x18
str r0, [sp, #0x20]
b _080DE9A6
.align 2, 0
_080DE998: .4byte 0x02039BD4
_080DE99C: .4byte 0x02039BC0
_080DE9A0:
cmp r0, #3
bne _080DE9A6
lsrs r1, r2, #0x18
_080DE9A6:
adds r2, r2, r3
adds r4, #1
cmp r4, #3
ble _080DE988
ldr r0, [r6]
ldr r0, [r0, #0x1c]
lsls r1, r1, #4
adds r1, r1, r0
ldrb r2, [r1, #0xd]
movs r0, #1
orrs r0, r2
strb r0, [r1, #0xd]
movs r4, #0
ldr r1, [sp, #0x20]
lsls r1, r1, #4
str r1, [sp, #0x30]
mov sb, r4
mov sl, r4
_080DE9CA:
ldr r2, [sp, #0x20]
cmp r4, r2
beq _080DE9F6
ldr r1, _080DEB94
lsls r0, r2, #1
adds r0, r0, r1
movs r3, #0
ldrsh r2, [r0, r3]
add r1, sl
movs r6, #0
ldrsh r0, [r1, r6]
subs r2, r2, r0
cmp r2, #0x32
bgt _080DE9F6
ldr r7, _080DEB98
ldr r0, [r7]
ldr r2, [r0, #0x1c]
add r2, sb
ldrb r0, [r2, #0xd]
movs r1, #4
orrs r0, r1
strb r0, [r2, #0xd]
_080DE9F6:
ldr r1, _080DEB98
ldr r0, [r1]
ldr r0, [r0, #0x1c]
mov r3, sb
adds r2, r3, r0
ldrb r1, [r2, #0xe]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _080DEA12
ldrb r0, [r2, #0xd]
movs r1, #8
orrs r0, r1
strb r0, [r2, #0xd]
_080DEA12:
movs r5, #0
ldr r2, _080DEB9C
add r2, sl
movs r6, #0
ldrsh r1, [r2, r6]
ldr r7, _080DEB9C
movs r3, #0
ldrsh r0, [r7, r3]
cmp r1, r0
blt _080DEA3E
adds r3, r2, #0
adds r2, r7, #0
_080DEA2A:
adds r2, #2
adds r5, #1
cmp r5, #3
bgt _080DEA3E
movs r6, #0
ldrsh r1, [r3, r6]
movs r7, #0
ldrsh r0, [r2, r7]
cmp r1, r0
bge _080DEA2A
_080DEA3E:
cmp r5, #4
bne _080DEA5C
ldr r1, _080DEBA0
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, #0
beq _080DEA5C
ldr r2, _080DEB98
ldr r0, [r2]
ldr r2, [r0, #0x1c]
add r2, sb
ldrb r0, [r2, #0xd]
movs r1, #0x10
orrs r0, r1
strb r0, [r2, #0xd]
_080DEA5C:
movs r3, #0
mov ip, r3
mov r8, r3
movs r5, #0
ldr r0, _080DEB9C
add r0, sl
movs r7, #0
ldrsh r6, [r0, r7]
str r6, [sp, #0x34]
ldr r2, _080DEB9C
ldr r0, _080DEBA4
mov r1, sl
adds r6, r1, r0
adds r3, r0, #0
_080DEA78:
movs r7, #0
ldrsh r0, [r2, r7]
ldr r1, [sp, #0x34]
cmp r1, r0
ble _080DEA86
movs r7, #1
mov ip, r7
_080DEA86:
movs r0, #0
ldrsh r1, [r6, r0]
movs r7, #0
ldrsh r0, [r3, r7]
cmp r1, r0
ble _080DEA96
movs r0, #1
mov r8, r0
_080DEA96:
adds r2, #2
adds r3, #2
adds r5, #1
cmp r5, #3
ble _080DEA78
mov r1, ip
cmp r1, #0
bne _080DEABC
mov r2, r8
cmp r2, #0
bne _080DEABC
ldr r3, _080DEB98
ldr r0, [r3]
ldr r2, [r0, #0x1c]
add r2, sb
ldrb r0, [r2, #0xd]
movs r1, #0x40
orrs r0, r1
strb r0, [r2, #0xd]
_080DEABC:
ldr r6, _080DEB98
ldr r0, [r6]
ldr r0, [r0, #0x1c]
mov r7, sb
adds r2, r7, r0
ldrb r1, [r2, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080DEAD8
ldrb r0, [r2, #0xd]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0xd]
_080DEAD8:
movs r0, #0x10
add sb, r0
movs r1, #2
add sl, r1
adds r4, #1
cmp r4, #3
bgt _080DEAE8
b _080DE9CA
_080DEAE8:
movs r4, #0
movs r5, #0
movs r3, #0
ldr r2, [sp, #0x28]
mov r1, sp
_080DEAF2:
strh r3, [r1]
adds r0, r2, r4
strb r5, [r0]
adds r1, #2
adds r4, #1
cmp r4, #4
ble _080DEAF2
mov r1, sp
ldr r0, _080DEBA8
strh r0, [r1, #0xa]
movs r0, #0
ldr r2, [sp, #0x28]
strb r0, [r2, #5]
movs r4, #0
ldr r0, _080DEB98
ldr r0, [r0]
mov r8, r0
ldr r7, [sp, #0x30]
_080DEB16:
mov r3, r8
ldr r0, [r3, #0x1c]
adds r0, r7, r0
lsls r1, r4, #1
adds r0, r0, r1
ldrh r0, [r0]
adds r4, #1
mov ip, r4
cmp r0, #0
beq _080DEB58
ldr r0, _080DEB98
ldr r6, [r0]
ldr r3, [sp, #0x28]
mov r4, sp
movs r5, #4
_080DEB34:
ldr r0, [r6, #0x1c]
adds r0, r7, r0
adds r0, r0, r1
ldrh r0, [r0]
ldrh r2, [r4]
cmp r0, r2
beq _080DEB48
cmp r2, #0
bne _080DEB4E
strh r0, [r4]
_080DEB48:
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
_080DEB4E:
adds r3, #1
adds r4, #2
subs r5, #1
cmp r5, #0
bge _080DEB34
_080DEB58:
mov r4, ip
cmp r4, #4
ble _080DEB16
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, #1
ldr r1, [sp, #0x24]
ldrh r0, [r1]
ldr r1, _080DEBA8
cmp r0, r1
beq _080DEBC8
ldr r5, [sp, #0x2c]
adds r7, r1, #0
mov r2, sp
adds r2, #2
_080DEB80:
ldr r0, [sp, #0x28]
adds r1, r0, r4
ldrb r0, [r1]
cmp r3, r0
bhs _080DEBAC
ldrh r0, [r2]
strh r0, [r5]
ldrb r3, [r1]
movs r6, #1
b _080DEBBE
.align 2, 0
_080DEB94: .4byte 0x02039BA8
_080DEB98: .4byte 0x02039BD4
_080DEB9C: .4byte 0x02039BA0
_080DEBA0: .4byte 0x02039BC0
_080DEBA4: .4byte 0x02039BB8
_080DEBA8: .4byte 0x0000FFFF
_080DEBAC:
cmp r3, r0
bne _080DEBBE
lsls r0, r6, #1
adds r0, r5, r0
ldrh r1, [r2]
strh r1, [r0]
adds r0, r6, #1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
_080DEBBE:
adds r2, #2
adds r4, #1
ldrh r0, [r2]
cmp r0, r7
bne _080DEB80
_080DEBC8:
bl Random
ldr r1, _080DEBFC
ldr r1, [r1]
ldr r4, [r1, #0x1c]
ldr r1, [sp, #0x30]
adds r4, r1, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r6, #0
bl __modsi3
lsls r0, r0, #1
ldr r2, [sp, #0x2c]
adds r0, r2, r0
ldrh r0, [r0]
strh r0, [r4, #0xa]
add sp, #0x38
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DEBFC: .4byte 0x02039BD4
thumb_func_end sub_080DE958
thumb_func_start sub_080DEC00
sub_080DEC00: @ 0x080DEC00
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r2, _080DED34
ldr r0, _080DED38
ldrb r0, [r0]
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #0
beq _080DEC1C
b _080DEDCC
_080DEC1C:
movs r1, #0
movs r3, #0
ldr r0, _080DED3C
mov sb, r0
_080DEC24:
adds r0, r3, r2
ldrb r0, [r0]
cmp r0, #0
bne _080DEC30
lsls r0, r3, #0x18
lsrs r1, r0, #0x18
_080DEC30:
adds r3, #1
cmp r3, #3
ble _080DEC24
movs r2, #0
mov sl, r2
movs r4, #0
str r4, [sp, #4]
movs r3, #0
lsls r2, r1, #1
lsls r1, r1, #4
mov r8, r1
ldr r1, _080DED40
adds r0, r2, r1
movs r7, #0
ldrsh r6, [r0, r7]
adds r5, r1, #0
ldr r0, _080DED44
adds r2, r2, r0
adds r4, r0, #0
_080DEC56:
movs r1, #0
ldrsh r0, [r5, r1]
cmp r6, r0
bge _080DEC68
mov r0, sl
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sl, r0
_080DEC68:
movs r7, #0
ldrsh r1, [r2, r7]
movs r7, #0
ldrsh r0, [r4, r7]
cmp r1, r0
bge _080DEC7E
ldr r0, [sp, #4]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #4]
_080DEC7E:
adds r5, #2
adds r4, #2
adds r3, #1
cmp r3, #3
ble _080DEC56
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #0x1c]
add r0, r8
ldrb r1, [r0, #0xc]
movs r4, #0
movs r2, #1
movs r3, #7
_080DEC98:
adds r0, r1, #0
ands r0, r2
cmp r0, #0
beq _080DECA6
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
_080DECA6:
lsrs r1, r1, #1
subs r3, #1
cmp r3, #0
bge _080DEC98
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r4, #0
bl __modsi3
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _080DED3C
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, #1
ands r0, r1
cmp r0, #0
beq _080DECE2
cmp r5, #0
beq _080DECFC
_080DECDC:
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
_080DECE2:
lsrs r1, r1, #1
adds r0, r2, #1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
adds r3, #1
cmp r3, #7
bgt _080DECFC
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080DECE2
cmp r5, r4
bne _080DECDC
_080DECFC:
movs r0, #0x80
lsls r0, r0, #9
lsls r0, r2
lsrs r0, r0, #0x10
mov sb, r0
mov r1, sp
movs r0, #0
strb r0, [r1]
ldr r0, _080DED3C
ldr r1, [r0]
ldr r0, [r1, #0x1c]
ldrb r4, [r0, #0xd]
movs r5, #1
movs r3, #1
mov r6, sp
_080DED1A:
ldr r0, [r1, #0x1c]
lsls r2, r3, #4
adds r0, r2, r0
ldrb r0, [r0, #0xd]
cmp r4, r0
bhs _080DED48
strb r3, [r6]
ldr r0, [r1, #0x1c]
adds r0, r2, r0
ldrb r4, [r0, #0xd]
movs r5, #1
b _080DED58
.align 2, 0
_080DED34: .4byte 0x02039BC0
_080DED38: .4byte 0x02039BC5
_080DED3C: .4byte 0x02039BD4
_080DED40: .4byte 0x02039BA0
_080DED44: .4byte 0x02039BB8
_080DED48:
cmp r4, r0
bne _080DED58
mov r2, sp
adds r0, r2, r5
strb r3, [r0]
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
_080DED58:
adds r3, #1
cmp r3, #3
ble _080DED1A
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r5, #0
bl __modsi3
add r0, sp
ldrb r7, [r0]
movs r2, #0x80
movs r3, #0
ldr r5, _080DEDDC
ldr r0, [r5]
ldr r0, [r0, #0x1c]
lsls r1, r7, #4
adds r0, r1, r0
ldrb r0, [r0, #0xd]
ands r0, r2
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
mov r0, sb
lsls r6, r0, #0x18
cmp r4, #0
bne _080DEDA4
_080DED8E:
lsrs r2, r2, #1
adds r3, #1
cmp r3, #7
bgt _080DEDA4
ldr r0, [r5]
ldr r0, [r0, #0x1c]
adds r0, r1, r0
ldrb r4, [r0, #0xd]
ands r4, r2
cmp r4, #0
beq _080DED8E
_080DEDA4:
mov r0, sl
bl ContestLiveUpdates_BeforeInterview_1
ldr r0, [sp, #4]
bl ContestLiveUpdates_BeforeInterview_2
lsrs r0, r6, #0x18
bl ContestLiveUpdates_BeforeInterview_3
ldr r0, _080DEDDC
ldr r0, [r0]
ldr r0, [r0, #0x1c]
add r0, r8
ldrh r0, [r0, #0xa]
bl ContestLiveUpdates_BeforeInterview_4
adds r0, r4, #0
adds r1, r7, #0
bl ContestLiveUpdates_BeforeInterview_5
_080DEDCC:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DEDDC: .4byte 0x02039BD4
thumb_func_end sub_080DEC00
thumb_func_start ContestDebugToggleBitfields
ContestDebugToggleBitfields: @ 0x080DEDE0
push {r4, lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldr r0, _080DEE00
movs r1, #0xd0
lsls r1, r1, #9
adds r2, r0, r1
ldrb r1, [r2]
adds r4, r0, #0
cmp r1, #0
bne _080DEE08
cmp r3, #0
bne _080DEE04
movs r0, #2
b _080DEE0A
.align 2, 0
_080DEE00: .4byte 0x02000000
_080DEE04:
movs r0, #3
b _080DEE0A
_080DEE08:
movs r0, #0
_080DEE0A:
strb r0, [r2]
movs r1, #0xd0
lsls r1, r1, #9
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, #0
bne _080DEE22
bl DrawContestantWindowText
bl SwapMoveDescAndContestTilemaps
b _080DEE26
_080DEE22:
bl ContestDebugPrintBitStrings
_080DEE26:
pop {r4}
pop {r0}
bx r0
thumb_func_end ContestDebugToggleBitfields
thumb_func_start ContestDebugPrintBitStrings
ContestDebugPrintBitStrings: @ 0x080DEE2C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x2c
ldr r0, _080DEF28
ldrb r0, [r0]
cmp r0, #0
bne _080DEE42
b _080DEFD4
_080DEE42:
ldr r0, _080DEF2C
movs r1, #0xd0
lsls r1, r1, #9
adds r0, r0, r1
ldrb r0, [r0]
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bls _080DEE58
b _080DEFD4
_080DEE58:
movs r7, #0
add r2, sp, #0x14
mov sl, r2
_080DEE5E:
adds r0, r7, #0
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r7, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r7, #1
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
cmp r7, #3
bls _080DEE5E
ldr r0, _080DEF2C
movs r4, #0xd0
lsls r4, r4, #9
adds r0, r0, r4
ldrb r0, [r0]
cmp r0, #2
bne _080DEF3C
movs r7, #0
mov sb, sl
_080DEE8E:
mov r0, sp
ldr r1, _080DEF30
bl StringCopy
adds r6, r0, #0
ldr r0, _080DEF34
adds r0, r7, r0
ldrb r0, [r0]
mov r1, sp
bl Contest_PrintTextToBg0WindowStd
ldr r0, _080DEF38
ldr r0, [r0]
ldr r1, [r0, #0x1c]
lsls r0, r7, #4
adds r0, r0, r1
ldrb r5, [r0, #0xc]
movs r4, #7
adds r0, r7, #1
mov r8, r0
_080DEEB6:
movs r1, #1
ands r1, r5
adds r0, r6, #0
movs r2, #0
movs r3, #1
bl ConvertIntToDecimalStringN
adds r6, r0, #0
lsrs r5, r5, #1
lsls r0, r4, #0x18
movs r1, #0xff
lsls r1, r1, #0x18
adds r0, r0, r1
lsrs r4, r0, #0x18
asrs r0, r0, #0x18
movs r2, #1
rsbs r2, r2, #0
cmp r0, r2
bgt _080DEEB6
movs r4, #0
ldr r6, _080DEF34
mov r3, sl
_080DEEE2:
lsls r0, r4, #0x18
asrs r0, r0, #0x18
adds r2, r3, r0
mov r4, sp
adds r1, r4, r0
ldrb r1, [r1]
strb r1, [r2]
adds r0, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
asrs r5, r0, #0x18
cmp r5, #4
ble _080DEEE2
mov r0, sb
adds r1, r0, r5
movs r0, #0xff
strb r0, [r1]
adds r4, r7, r6
ldrb r0, [r4]
mov r1, sb
bl Contest_PrintTextToBg0WindowStd
ldrb r0, [r4]
adds r0, #4
mov r2, sp
adds r1, r2, r5
bl Contest_PrintTextToBg0WindowStd
mov r4, r8
lsls r0, r4, #0x18
lsrs r7, r0, #0x18
cmp r7, #3
bls _080DEE8E
b _080DEFD0
.align 2, 0
_080DEF28: .4byte 0x02031F75
_080DEF2C: .4byte 0x02000000
_080DEF30: .4byte 0x085CC49D
_080DEF34: .4byte 0x02039BC6
_080DEF38: .4byte 0x02039BD4
_080DEF3C:
movs r7, #0
mov r0, sp
adds r0, #2
str r0, [sp, #0x28]
mov sb, sl
_080DEF46:
mov r0, sp
ldr r1, _080DEFE4
bl StringCopy
ldr r0, _080DEFE8
ldr r0, [r0]
ldr r1, [r0, #0x1c]
lsls r0, r7, #4
adds r0, r0, r1
ldrb r5, [r0, #0xd]
ldr r6, [sp, #0x28]
movs r4, #7
adds r1, r7, #1
mov r8, r1
_080DEF62:
movs r1, #1
ands r1, r5
adds r0, r6, #0
movs r2, #0
movs r3, #1
bl ConvertIntToDecimalStringN
adds r6, r0, #0
lsrs r5, r5, #1
lsls r0, r4, #0x18
movs r2, #0xff
lsls r2, r2, #0x18
adds r0, r0, r2
lsrs r4, r0, #0x18
asrs r0, r0, #0x18
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bgt _080DEF62
movs r4, #0
ldr r6, _080DEFEC
mov r3, sl
_080DEF8E:
lsls r0, r4, #0x18
asrs r0, r0, #0x18
adds r2, r3, r0
mov r4, sp
adds r1, r4, r0
ldrb r1, [r1]
strb r1, [r2]
adds r0, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
asrs r5, r0, #0x18
cmp r5, #4
ble _080DEF8E
mov r0, sb
adds r1, r0, r5
movs r0, #0xff
strb r0, [r1]
adds r4, r7, r6
ldrb r0, [r4]
mov r1, sb
bl Contest_PrintTextToBg0WindowStd
ldrb r0, [r4]
adds r0, #4
mov r2, sp
adds r1, r2, r5
bl Contest_PrintTextToBg0WindowStd
mov r4, r8
lsls r0, r4, #0x18
lsrs r7, r0, #0x18
cmp r7, #3
bls _080DEF46
_080DEFD0:
bl SwapMoveDescAndContestTilemaps
_080DEFD4:
add sp, #0x2c
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080DEFE4: .4byte 0x085CC4A0
_080DEFE8: .4byte 0x02039BD4
_080DEFEC: .4byte 0x02039BC6
thumb_func_end ContestDebugPrintBitStrings