pokeruby/asm/contest.s
2016-10-30 18:00:20 -07:00

15733 lines
266 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start nullsub_89
nullsub_89: @ 80AB1AC
bx lr
thumb_func_end nullsub_89
thumb_func_start sub_80AB1B0
sub_80AB1B0: @ 80AB1B0
ldr r1, _080AB1B8 @ =gUnknown_0203869A
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
_080AB1B8: .4byte gUnknown_0203869A
thumb_func_end sub_80AB1B0
thumb_func_start sub_80AB1BC
sub_80AB1BC: @ 80AB1BC
push {r4-r6,lr}
movs r6, 0x80
lsls r6, 19
movs r0, 0x40
strh r0, [r6]
ldr r4, _080AB260 @ =0x04000208
ldrh r3, [r4]
movs r2, 0
strh r2, [r4]
ldr r5, _080AB264 @ =0x04000200
ldrh r0, [r5]
movs r1, 0x1
orrs r0, r1
strh r0, [r5]
strh r3, [r4]
ldr r1, _080AB268 @ =REG_DISPSTAT
movs r0, 0x8
strh r0, [r1]
adds r1, 0x4
movs r3, 0x98
lsls r3, 8
adds r0, r3, 0
strh r0, [r1]
adds r1, 0x2
ldr r3, _080AB26C @ =0x00009e09
adds r0, r3, 0
strh r0, [r1]
adds r1, 0x2
movs r3, 0x9C
lsls r3, 8
adds r0, r3, 0
strh r0, [r1]
adds r1, 0x2
ldr r3, _080AB270 @ =0x00003a03
adds r0, r3, 0
strh r0, [r1]
ldr r0, _080AB274 @ =REG_BLDCNT
strh r2, [r0]
adds r0, 0x2
strh r2, [r0]
adds r0, 0x2
strh r2, [r0]
subs r0, 0xC
ldr r3, _080AB278 @ =0x00003f3f
adds r1, r3, 0
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
ldrh r0, [r6]
movs r3, 0xFE
lsls r3, 7
adds r1, r3, 0
orrs r0, r1
strh r0, [r6]
ldr r0, _080AB27C @ =gUnknown_030042A4
strh r2, [r0]
ldr r0, _080AB280 @ =gUnknown_030042A0
strh r2, [r0]
ldr r0, _080AB284 @ =gUnknown_030042C0
strh r2, [r0]
ldr r0, _080AB288 @ =gUnknown_030041B4
strh r2, [r0]
ldr r0, _080AB28C @ =gUnknown_03004288
strh r2, [r0]
ldr r0, _080AB290 @ =gUnknown_03004280
strh r2, [r0]
ldr r0, _080AB294 @ =gUnknown_030041B0
strh r2, [r0]
ldr r0, _080AB298 @ =gUnknown_030041B8
strh r2, [r0]
ldr r0, _080AB29C @ =gUnknown_030042C4
strh r2, [r0]
ldr r0, _080AB2A0 @ =gUnknown_03004240
strh r2, [r0]
ldr r0, _080AB2A4 @ =gUnknown_03004200
strh r2, [r0]
ldr r0, _080AB2A8 @ =gUnknown_03004244
strh r2, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080AB260: .4byte 0x04000208
_080AB264: .4byte 0x04000200
_080AB268: .4byte REG_DISPSTAT
_080AB26C: .4byte 0x00009e09
_080AB270: .4byte 0x00003a03
_080AB274: .4byte REG_BLDCNT
_080AB278: .4byte 0x00003f3f
_080AB27C: .4byte gUnknown_030042A4
_080AB280: .4byte gUnknown_030042A0
_080AB284: .4byte gUnknown_030042C0
_080AB288: .4byte gUnknown_030041B4
_080AB28C: .4byte gUnknown_03004288
_080AB290: .4byte gUnknown_03004280
_080AB294: .4byte gUnknown_030041B0
_080AB298: .4byte gUnknown_030041B8
_080AB29C: .4byte gUnknown_030042C4
_080AB2A0: .4byte gUnknown_03004240
_080AB2A4: .4byte gUnknown_03004200
_080AB2A8: .4byte gUnknown_03004244
thumb_func_end sub_80AB1BC
thumb_func_start sub_80AB2AC
sub_80AB2AC: @ 80AB2AC
push {r4,r5,lr}
ldr r0, _080AB300 @ =gContestMiscGfx
movs r1, 0xC0
lsls r1, 19
bl LZDecompressVram
ldr r0, _080AB304 @ =gContestAudienceGfx
ldr r1, _080AB308 @ =0x06002000
bl LZDecompressVram
ldr r0, _080AB30C @ =gUnknown_08D1725C
ldr r1, _080AB310 @ =0x0600d000
bl LZDecompressVram
ldr r0, _080AB314 @ =gUnknown_08D17144
movs r2, 0x80
lsls r2, 2
movs r1, 0
bl LoadCompressedPalette
bl sub_80AB350
movs r4, 0
movs r5, 0xA0
_080AB2DC:
ldr r0, _080AB318 @ =0x02018004
adds r0, r5, r0
ldr r1, _080AB31C @ =gUnknown_02038696
adds r1, r4, r1
ldrb r1, [r1]
adds r1, 0x5
lsls r1, 4
movs r2, 0x20
bl LoadPalette
adds r5, 0x20
adds r4, 0x1
cmp r4, 0x3
ble _080AB2DC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AB300: .4byte gContestMiscGfx
_080AB304: .4byte gContestAudienceGfx
_080AB308: .4byte 0x06002000
_080AB30C: .4byte gUnknown_08D1725C
_080AB310: .4byte 0x0600d000
_080AB314: .4byte gUnknown_08D17144
_080AB318: .4byte 0x02018004
_080AB31C: .4byte gUnknown_02038696
thumb_func_end sub_80AB2AC
thumb_func_start sub_80AB320
sub_80AB320: @ 80AB320
push {r4,lr}
ldr r4, _080AB340 @ =gWindowConfig_81E6FD8
adds r0, r4, 0
bl SetUpWindowConfig
ldr r0, _080AB344 @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
ldr r0, _080AB348 @ =gMenuWindow
ldr r1, _080AB34C @ =gWindowConfig_81E6FF4
bl InitWindowFromConfig
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AB340: .4byte gWindowConfig_81E6FD8
_080AB344: .4byte gUnknown_03004210
_080AB348: .4byte gMenuWindow
_080AB34C: .4byte gWindowConfig_81E6FF4
thumb_func_end sub_80AB320
thumb_func_start sub_80AB350
sub_80AB350: @ 80AB350
push {r4,lr}
ldr r0, _080AB38C @ =gWindowConfig_81E6FD8
bl LoadFontDefaultPalette
movs r0, 0
movs r1, 0
movs r2, 0x2
bl FillPalette
movs r4, 0xA
_080AB364:
adds r1, r4, 0
adds r1, 0xF0
ldr r0, _080AB390 @ =gPlttBufferUnfaded + 0x1E2
movs r2, 0x2
bl LoadPalette
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xD
bls _080AB364
ldr r0, _080AB394 @ =0x00007e3f
movs r1, 0xF3
movs r2, 0x2
bl FillPalette
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AB38C: .4byte gWindowConfig_81E6FD8
_080AB390: .4byte gPlttBufferUnfaded + 0x1E2
_080AB394: .4byte 0x00007e3f
thumb_func_end sub_80AB350
thumb_func_start sub_80AB398
sub_80AB398: @ 80AB398
push {r4-r6,lr}
ldr r4, _080AB468 @ =0x02019204
adds r0, r4, 0
movs r1, 0
movs r2, 0x5C
bl memset
movs r5, 0
adds r4, 0x2
movs r2, 0xFF
_080AB3AC:
adds r1, r5, r4
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
adds r5, 0x1
cmp r5, 0x3
ble _080AB3AC
ldr r4, _080AB46C @ =0x02019260
movs r5, 0x3
_080AB3BE:
adds r0, r4, 0
movs r1, 0
movs r2, 0x1C
bl memset
adds r4, 0x1C
subs r5, 0x1
cmp r5, 0
bge _080AB3BE
ldr r4, _080AB470 @ =0x020192d0
movs r6, 0x4
negs r6, r6
movs r3, 0xFF
adds r2, r4, 0
subs r2, 0x65
movs r5, 0x3
_080AB3DE:
ldrb r1, [r2]
adds r0, r6, 0
ands r0, r1
strb r0, [r2]
ldrb r0, [r2, 0x8]
orrs r0, r3
strb r0, [r2, 0x8]
ldrb r0, [r2, 0x9]
orrs r0, r3
strb r0, [r2, 0x9]
adds r2, 0x1C
subs r5, 0x1
cmp r5, 0
bge _080AB3DE
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
bl memset
adds r0, r4, 0
adds r0, 0x14
movs r1, 0
movs r2, 0x44
bl memset
adds r0, r4, 0
adds r0, 0x58
movs r1, 0
movs r2, 0x4
bl memset
adds r0, r4, 0
adds r0, 0x68
movs r1, 0
movs r2, 0x10
bl memset
ldr r0, _080AB474 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080AB43A
movs r0, 0
bl sub_80B0F28
_080AB43A:
movs r5, 0
movs r6, 0xFF
adds r3, r4, 0
subs r3, 0xB8
adds r2, r4, 0
subs r2, 0x57
ldr r4, _080AB478 @ =gUnknown_02038696
_080AB448:
ldrb r0, [r2]
orrs r0, r6
strb r0, [r2]
adds r1, r3, r5
adds r0, r5, r4
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1C
adds r5, 0x1
cmp r5, 0x3
ble _080AB448
bl sub_80B159C
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080AB468: .4byte 0x02019204
_080AB46C: .4byte 0x02019260
_080AB470: .4byte 0x020192d0
_080AB474: .4byte gUnknown_0203869A
_080AB478: .4byte gUnknown_02038696
thumb_func_end sub_80AB398
thumb_func_start sub_80AB47C
sub_80AB47C: @ 80AB47C
push {r4-r7,lr}
sub sp, 0x4
ldr r0, _080AB498 @ =gMain
ldr r1, _080AB49C @ =0x0000043c
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0x1
beq _080AB554
cmp r0, 0x1
bgt _080AB4A0
cmp r0, 0
beq _080AB4AA
b _080AB5AE
.align 2, 0
_080AB498: .4byte gMain
_080AB49C: .4byte 0x0000043c
_080AB4A0:
cmp r0, 0x2
beq _080AB55A
cmp r0, 0x3
beq _080AB578
b _080AB5AE
_080AB4AA:
movs r0, 0
bl SetVBlankCallback
bl sub_80AB320
bl sub_80AB1BC
bl dp12_8087EA4
bl ResetPaletteFade
ldr r0, _080AB538 @ =gPaletteFade
ldrb r1, [r0, 0x8]
movs r2, 0x80
orrs r1, r2
strb r1, [r0, 0x8]
movs r2, 0xC0
lsls r2, 19
movs r3, 0xC0
lsls r3, 9
movs r5, 0
ldr r1, _080AB53C @ =0x040000d4
movs r4, 0x80
lsls r4, 5
ldr r6, _080AB540 @ =0x85000400
movs r7, 0x85
lsls r7, 24
_080AB4E0:
str r5, [sp]
mov r0, sp
str r0, [r1]
str r2, [r1, 0x4]
str r6, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r2, r4
subs r3, r4
cmp r3, r4
bhi _080AB4E0
str r5, [sp]
mov r0, sp
str r0, [r1]
str r2, [r1, 0x4]
lsrs r0, r3, 2
orrs r0, r7
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
ldr r1, _080AB544 @ =gReservedSpritePaletteCount
movs r0, 0x4
strb r0, [r1]
ldr r0, _080AB548 @ =0x02000000
movs r1, 0xC0
lsls r1, 9
adds r0, r1
movs r1, 0
strb r1, [r0]
bl sub_8040710
bl sub_80AB398
ldr r1, _080AB54C @ =gMain
ldr r0, _080AB550 @ =0x0000043c
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080AB5AE
.align 2, 0
_080AB538: .4byte gPaletteFade
_080AB53C: .4byte 0x040000d4
_080AB540: .4byte 0x85000400
_080AB544: .4byte gReservedSpritePaletteCount
_080AB548: .4byte 0x02000000
_080AB54C: .4byte gMain
_080AB550: .4byte 0x0000043c
_080AB554:
bl sub_80AB350
b _080AB56C
_080AB55A:
ldr r5, _080AB574 @ =0x0201925d
adds r0, r5, 0
bl sub_80AB70C
lsls r0, 24
cmp r0, 0
beq _080AB5AE
movs r0, 0
strb r0, [r5]
_080AB56C:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _080AB5AE
.align 2, 0
_080AB574: .4byte 0x0201925d
_080AB578:
bl sub_80B2184
ldr r0, _080AB5B8 @ =gUnknown_030042C0
movs r1, 0
strh r1, [r0]
ldr r0, _080AB5BC @ =gUnknown_030041B4
strh r1, [r0]
movs r0, 0x2
bl BeginFastPaletteFade
ldr r2, _080AB5C0 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
ldr r0, _080AB5C4 @ =sub_80ABAC4
bl SetVBlankCallback
ldr r0, _080AB5C8 @ =sub_80AB5D4
movs r1, 0xA
bl CreateTask
ldr r1, _080AB5CC @ =0x02019204
strb r0, [r1, 0x8]
ldr r0, _080AB5D0 @ =sub_80ABAAC
bl SetMainCallback2
_080AB5AE:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AB5B8: .4byte gUnknown_030042C0
_080AB5BC: .4byte gUnknown_030041B4
_080AB5C0: .4byte gPaletteFade
_080AB5C4: .4byte sub_80ABAC4
_080AB5C8: .4byte sub_80AB5D4
_080AB5CC: .4byte 0x02019204
_080AB5D0: .4byte sub_80ABAAC
thumb_func_end sub_80AB47C
thumb_func_start sub_80AB5D4
sub_80AB5D4: @ 80AB5D4
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080AB5F8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080AB5F4
ldr r0, _080AB5FC @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, _080AB600 @ =sub_80AB604
str r0, [r1]
_080AB5F4:
pop {r0}
bx r0
.align 2, 0
_080AB5F8: .4byte gPaletteFade
_080AB5FC: .4byte gTasks
_080AB600: .4byte sub_80AB604
thumb_func_end sub_80AB5D4
thumb_func_start sub_80AB604
sub_80AB604: @ 80AB604
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080AB648 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AB65C
ldr r2, _080AB64C @ =gPaletteFade
ldrb r1, [r2, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080AB66A
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
bl sub_80AF860
ldr r0, _080AB650 @ =sub_80AB678
movs r1, 0
bl CreateTask
ldr r1, _080AB654 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080AB658 @ =nullsub_89
str r1, [r0]
b _080AB66A
.align 2, 0
_080AB648: .4byte gUnknown_0203869A
_080AB64C: .4byte gPaletteFade
_080AB650: .4byte sub_80AB678
_080AB654: .4byte gTasks
_080AB658: .4byte nullsub_89
_080AB65C:
ldr r0, _080AB670 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080AB674 @ =sub_80AB960
str r0, [r1]
_080AB66A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AB670: .4byte gTasks
_080AB674: .4byte sub_80AB960
thumb_func_end sub_80AB604
thumb_func_start sub_80AB678
sub_80AB678: @ 80AB678
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _080AB68C @ =sub_80C89DC
ldr r2, _080AB690 @ =sub_80AB694
bl SetTaskFuncWithFollowupFunc
pop {r0}
bx r0
.align 2, 0
_080AB68C: .4byte sub_80C89DC
_080AB690: .4byte sub_80AB694
thumb_func_end sub_80AB678
thumb_func_start sub_80AB694
sub_80AB694: @ 80AB694
lsls r0, 24
lsrs r0, 24
movs r3, 0x1
ldr r2, _080AB6AC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r3, [r1, 0x8]
ldr r0, _080AB6B0 @ =sub_80AB6B4
str r0, [r1]
bx lr
.align 2, 0
_080AB6AC: .4byte gTasks
_080AB6B0: .4byte sub_80AB6B4
thumb_func_end sub_80AB694
thumb_func_start sub_80AB6B4
sub_80AB6B4: @ 80AB6B4
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r5, _080AB6F8 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r5
ldrh r1, [r0, 0x8]
subs r1, 0x1
strh r1, [r0, 0x8]
lsls r1, 16
cmp r1, 0
bgt _080AB6F2
bl GetMultiplayerId
adds r0, r4, 0
bl DestroyTask
ldr r0, _080AB6FC @ =0x02019204
ldrb r1, [r0, 0x8]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r5
ldr r1, _080AB700 @ =sub_80AB960
str r1, [r0]
ldr r1, _080AB704 @ =gRngValue
ldr r0, _080AB708 @ =gUnknown_03005D28
ldr r0, [r0]
str r0, [r1]
_080AB6F2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AB6F8: .4byte gTasks
_080AB6FC: .4byte 0x02019204
_080AB700: .4byte sub_80AB960
_080AB704: .4byte gRngValue
_080AB708: .4byte gUnknown_03005D28
thumb_func_end sub_80AB6B4
thumb_func_start sub_80AB70C
sub_80AB70C: @ 80AB70C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
mov r10, r0
ldrb r0, [r0]
cmp r0, 0x6
bls _080AB722
b _080AB93C
_080AB722:
lsls r0, 2
ldr r1, _080AB72C @ =_080AB730
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AB72C: .4byte _080AB730
.align 2, 0
_080AB730:
.4byte _080AB74C
.4byte _080AB7A0
.4byte _080AB7B0
.4byte _080AB800
.4byte _080AB814
.4byte _080AB844
.4byte _080AB8CC
_080AB74C:
ldr r0, _080AB794 @ =gPaletteFade
ldrb r1, [r0, 0x8]
movs r2, 0x80
orrs r1, r2
strb r1, [r0, 0x8]
movs r2, 0xC0
lsls r2, 19
movs r3, 0xC0
lsls r3, 9
add r5, sp, 0x40
movs r6, 0
ldr r1, _080AB798 @ =0x040000d4
movs r4, 0x80
lsls r4, 5
mov r8, r5
ldr r7, _080AB79C @ =0x85000400
movs r0, 0x85
lsls r0, 24
mov r9, r0
_080AB772:
str r6, [sp, 0x40]
mov r0, r8
str r0, [r1]
str r2, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r2, r4
subs r3, r4
cmp r3, r4
bhi _080AB772
str r6, [sp, 0x40]
str r5, [r1]
str r2, [r1, 0x4]
lsrs r0, r3, 2
mov r2, r9
orrs r0, r2
b _080AB7E6
.align 2, 0
_080AB794: .4byte gPaletteFade
_080AB798: .4byte 0x040000d4
_080AB79C: .4byte 0x85000400
_080AB7A0:
ldr r0, _080AB7AC @ =gContestMiscGfx
movs r1, 0xC0
lsls r1, 19
bl LZDecompressVram
b _080AB946
.align 2, 0
_080AB7AC: .4byte gContestMiscGfx
_080AB7B0:
ldr r0, _080AB7EC @ =gContestAudienceGfx
ldr r4, _080AB7F0 @ =0x06002000
adds r1, r4, 0
bl LZDecompressVram
ldr r3, _080AB7F4 @ =0x02015800
movs r5, 0x80
lsls r5, 6
ldr r1, _080AB7F8 @ =0x040000d4
ldr r6, _080AB7FC @ =0x84000400
movs r2, 0x80
lsls r2, 5
movs r7, 0x84
lsls r7, 24
_080AB7CC:
str r4, [r1]
str r3, [r1, 0x4]
str r6, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r4, r2
adds r3, r2
subs r5, r2
cmp r5, r2
bhi _080AB7CC
str r4, [r1]
str r3, [r1, 0x4]
lsrs r0, r5, 2
orrs r0, r7
_080AB7E6:
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
b _080AB946
.align 2, 0
_080AB7EC: .4byte gContestAudienceGfx
_080AB7F0: .4byte 0x06002000
_080AB7F4: .4byte 0x02015800
_080AB7F8: .4byte 0x040000d4
_080AB7FC: .4byte 0x84000400
_080AB800:
ldr r0, _080AB80C @ =gUnknown_08D1725C
ldr r1, _080AB810 @ =0x0600d000
bl LZDecompressVram
b _080AB946
.align 2, 0
_080AB80C: .4byte gUnknown_08D1725C
_080AB810: .4byte 0x0600d000
_080AB814:
ldr r0, _080AB830 @ =gUnknown_08D17424
ldr r4, _080AB834 @ =0x0600e000
adds r1, r4, 0
bl LZDecompressVram
ldr r1, _080AB838 @ =0x02018a04
ldr r0, _080AB83C @ =0x040000d4
str r4, [r0]
str r1, [r0, 0x4]
ldr r1, _080AB840 @ =0x84000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
b _080AB946
.align 2, 0
_080AB830: .4byte gUnknown_08D17424
_080AB834: .4byte 0x0600e000
_080AB838: .4byte 0x02018a04
_080AB83C: .4byte 0x040000d4
_080AB840: .4byte 0x84000200
_080AB844:
ldr r0, _080AB8AC @ =gUnknown_08D17144
movs r2, 0x80
lsls r2, 2
movs r1, 0
bl LoadCompressedPalette
ldr r5, _080AB8B0 @ =gPlttBufferUnfaded + 0x100
ldr r6, _080AB8B4 @ =REG_BG0CNT
adds r0, r5, 0
mov r1, sp
adds r2, r6, 0
bl CpuSet
ldr r0, _080AB8B8 @ =gUnknown_02038695
mov r9, r0
ldrb r0, [r0]
adds r0, 0x5
lsls r0, 5
ldr r1, _080AB8BC @ =0xffffff00
adds r1, r5
mov r8, r1
add r0, r8
add r4, sp, 0x20
adds r1, r4, 0
adds r2, r6, 0
bl CpuSet
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl CpuSet
mov r2, r9
ldrb r1, [r2]
adds r1, 0x5
lsls r1, 5
add r1, r8
mov r0, sp
adds r2, r6, 0
bl CpuSet
ldr r1, _080AB8C0 @ =0x02018004
ldr r0, _080AB8C4 @ =0x040000d4
mov r2, r8
str r2, [r0]
str r1, [r0, 0x4]
ldr r1, _080AB8C8 @ =0x84000080
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
bl sub_80AB350
b _080AB946
.align 2, 0
_080AB8AC: .4byte gUnknown_08D17144
_080AB8B0: .4byte gPlttBufferUnfaded + 0x100
_080AB8B4: .4byte REG_BG0CNT
_080AB8B8: .4byte gUnknown_02038695
_080AB8BC: .4byte 0xffffff00
_080AB8C0: .4byte 0x02018004
_080AB8C4: .4byte 0x040000d4
_080AB8C8: .4byte 0x84000080
_080AB8CC:
bl sub_80B1118
bl sub_80AFA5C
bl sub_80AEB30
bl sub_80AE8B4
ldr r1, _080AB924 @ =0x02019204
movs r4, 0
strb r0, [r1, 0x12]
bl sub_80AFE30
bl sub_80B0034
bl sub_80B00C8
bl sub_80B0324
bl sub_80B0518
ldr r1, _080AB928 @ =gUnknown_02024A72
strb r4, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
movs r3, 0x3
strb r3, [r1, 0x2]
movs r2, 0x2
strb r2, [r1, 0x3]
ldr r0, _080AB92C @ =gUnknown_020239F8
strh r4, [r0]
ldr r4, _080AB930 @ =gUnknown_02024C07
strb r2, [r4]
ldr r0, _080AB934 @ =gUnknown_02024C08
strb r3, [r0]
bl sub_80AE858
ldr r2, _080AB938 @ =gUnknown_02024BE0
ldrb r1, [r4]
adds r1, r2
strb r0, [r1]
bl sub_80B292C
b _080AB946
.align 2, 0
_080AB924: .4byte 0x02019204
_080AB928: .4byte gUnknown_02024A72
_080AB92C: .4byte gUnknown_020239F8
_080AB930: .4byte gUnknown_02024C07
_080AB934: .4byte gUnknown_02024C08
_080AB938: .4byte gUnknown_02024BE0
_080AB93C:
movs r0, 0
mov r1, r10
strb r0, [r1]
movs r0, 0x1
b _080AB950
_080AB946:
mov r2, r10
ldrb r0, [r2]
adds r0, 0x1
strb r0, [r2]
movs r0, 0
_080AB950:
add sp, 0x44
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80AB70C
thumb_func_start sub_80AB960
sub_80AB960: @ 80AB960
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _080AB994 @ =gPaletteFade
ldrb r2, [r1, 0x8]
movs r0, 0x7F
ands r0, r2
strb r0, [r1, 0x8]
ldrb r1, [r1, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _080AB990
ldr r0, _080AB998 @ =gTasks
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
strh r2, [r1, 0x8]
strh r2, [r1, 0xA]
ldr r0, _080AB99C @ =sub_80AB9A0
str r0, [r1]
_080AB990:
pop {r0}
bx r0
.align 2, 0
_080AB994: .4byte gPaletteFade
_080AB998: .4byte gTasks
_080AB99C: .4byte sub_80AB9A0
thumb_func_end sub_80AB960
thumb_func_start sub_80AB9A0
sub_80AB9A0: @ 80AB9A0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080AB9C4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0x4
bhi _080ABA7C
lsls r0, 2
ldr r1, _080AB9C8 @ =_080AB9CC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AB9C4: .4byte gTasks
_080AB9C8: .4byte _080AB9CC
.align 2, 0
_080AB9CC:
.4byte _080AB9E0
.4byte _080ABA0A
.4byte _080ABA28
.4byte _080ABA44
.4byte _080ABA7C
_080AB9E0:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0xA]
adds r1, r0, 0x1
strh r1, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3C
ble _080ABA9C
movs r0, 0
strh r0, [r4, 0xA]
movs r0, 0x61
movs r1, 0
bl PlaySE12WithPanning
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080ABA9C
_080ABA0A:
ldr r1, _080ABA24 @ =gUnknown_030041B4
ldrh r0, [r1]
adds r0, 0x7
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA0
ble _080ABA9C
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r2
b _080ABA68
.align 2, 0
_080ABA24: .4byte gUnknown_030041B4
_080ABA28:
bl sub_80B2280
ldr r0, _080ABA40 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080ABA9C
.align 2, 0
_080ABA40: .4byte gTasks
_080ABA44:
ldr r3, _080ABA70 @ =REG_BG0CNT
ldrb r2, [r3]
movs r1, 0x4
negs r1, r1
adds r0, r1, 0
ands r0, r2
strb r0, [r3]
ldr r2, _080ABA74 @ =REG_BG2CNT
ldrb r0, [r2]
ands r1, r0
strb r1, [r2]
bl sub_80B1B14
ldr r1, _080ABA78 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
_080ABA68:
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
b _080ABA9C
.align 2, 0
_080ABA70: .4byte REG_BG0CNT
_080ABA74: .4byte REG_BG2CNT
_080ABA78: .4byte gTasks
_080ABA7C:
ldr r0, _080ABAA4 @ =0x02019204
ldrb r1, [r0, 0x6]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080ABA9C
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r2
strh r1, [r0, 0x8]
strh r1, [r0, 0xA]
ldr r1, _080ABAA8 @ =sub_80ABB70
str r1, [r0]
_080ABA9C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ABAA4: .4byte 0x02019204
_080ABAA8: .4byte sub_80ABB70
thumb_func_end sub_80AB9A0
thumb_func_start sub_80ABAAC
sub_80ABAAC: @ 80ABAAC
push {lr}
bl AnimateSprites
bl RunTasks
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80ABAAC
thumb_func_start sub_80ABAC4
sub_80ABAC4: @ 80ABAC4
push {lr}
ldr r1, _080ABB3C @ =REG_BG0HOFS
ldr r0, _080ABB40 @ =gUnknown_030042A4
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _080ABB44 @ =gUnknown_030042A0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _080ABB48 @ =gUnknown_030042C0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _080ABB4C @ =gUnknown_030041B4
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _080ABB50 @ =gUnknown_03004288
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _080ABB54 @ =gUnknown_03004280
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _080ABB58 @ =gUnknown_030041B0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _080ABB5C @ =gUnknown_030041B8
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x22
ldr r0, _080ABB60 @ =gUnknown_030042C4
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x4
ldr r0, _080ABB64 @ =gUnknown_03004240
ldrh r0, [r0]
strh r0, [r1]
subs r1, 0x2
ldr r0, _080ABB68 @ =gUnknown_03004200
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x4
ldr r0, _080ABB6C @ =gUnknown_03004244
ldrh r0, [r0]
strh r0, [r1]
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
bl sub_8089668
pop {r0}
bx r0
.align 2, 0
_080ABB3C: .4byte REG_BG0HOFS
_080ABB40: .4byte gUnknown_030042A4
_080ABB44: .4byte gUnknown_030042A0
_080ABB48: .4byte gUnknown_030042C0
_080ABB4C: .4byte gUnknown_030041B4
_080ABB50: .4byte gUnknown_03004288
_080ABB54: .4byte gUnknown_03004280
_080ABB58: .4byte gUnknown_030041B0
_080ABB5C: .4byte gUnknown_030041B8
_080ABB60: .4byte gUnknown_030042C4
_080ABB64: .4byte gUnknown_03004240
_080ABB68: .4byte gUnknown_03004200
_080ABB6C: .4byte gUnknown_03004244
thumb_func_end sub_80ABAC4
thumb_func_start sub_80ABB70
sub_80ABB70: @ 80ABB70
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080ABBB0 @ =gUnknown_030042A0
movs r1, 0
strh r1, [r0]
ldr r0, _080ABBB4 @ =gUnknown_03004280
strh r1, [r0]
bl sub_80B0D7C
ldr r1, _080ABBB8 @ =gPlttBufferUnfaded
ldr r2, _080ABBBC @ =0x02018204
ldr r0, _080ABBC0 @ =0x040000d4
str r1, [r0]
str r2, [r0, 0x4]
ldr r1, _080ABBC4 @ =0x84000100
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
ldr r0, _080ABBC8 @ =gUnknown_02038695
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
cmp r0, 0
bne _080ABBD4
ldr r0, _080ABBCC @ =gUnknown_020238CC
ldr r1, _080ABBD0 @ =gUnknown_083CAF84
bl StringCopy
b _080ABBDC
.align 2, 0
_080ABBB0: .4byte gUnknown_030042A0
_080ABBB4: .4byte gUnknown_03004280
_080ABBB8: .4byte gPlttBufferUnfaded
_080ABBBC: .4byte 0x02018204
_080ABBC0: .4byte 0x040000d4
_080ABBC4: .4byte 0x84000100
_080ABBC8: .4byte gUnknown_02038695
_080ABBCC: .4byte gUnknown_020238CC
_080ABBD0: .4byte gUnknown_083CAF84
_080ABBD4:
ldr r0, _080ABC20 @ =gUnknown_020238CC
ldr r1, _080ABC24 @ =gUnknown_083CAFAE
bl StringCopy
_080ABBDC:
ldr r5, _080ABC20 @ =gUnknown_020238CC
ldr r0, _080ABC28 @ =0x02019204
ldrb r1, [r0, 0x1]
adds r1, 0x1
adds r0, r5, 0
bl sub_80AE020
bl sub_80AF138
ldr r4, _080ABC2C @ =gStringVar4
adds r0, r4, 0
adds r1, r5, 0
bl StringExpandPlaceholders
ldr r0, _080ABC30 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080ABC34 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
ldr r1, _080ABC38 @ =sub_80ABC3C
str r1, [r0]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080ABC20: .4byte gUnknown_020238CC
_080ABC24: .4byte gUnknown_083CAFAE
_080ABC28: .4byte 0x02019204
_080ABC2C: .4byte gStringVar4
_080ABC30: .4byte gMenuWindow
_080ABC34: .4byte gTasks
_080ABC38: .4byte sub_80ABC3C
thumb_func_end sub_80ABB70
thumb_func_start sub_80ABC3C
sub_80ABC3C: @ 80ABC3C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080ABC64 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080ABC5E
ldr r0, _080ABC68 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080ABC6C @ =sub_80ABC70
str r0, [r1]
_080ABC5E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ABC64: .4byte gMenuWindow
_080ABC68: .4byte gTasks
_080ABC6C: .4byte sub_80ABC70
thumb_func_end sub_80ABC3C
thumb_func_start sub_80ABC70
sub_80ABC70: @ 80ABC70
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
ldr r0, _080ABCB0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080ABC88
cmp r1, 0x2
bne _080ABCCE
_080ABC88:
movs r0, 0x5
bl PlaySE
ldr r0, _080ABCB4 @ =gUnknown_02038695
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
cmp r0, 0
bne _080ABCC0
movs r0, 0x1
bl sub_80AFFE0
ldr r0, _080ABCB8 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080ABCBC @ =sub_80ABCDC
b _080ABCCC
.align 2, 0
_080ABCB0: .4byte gMain
_080ABCB4: .4byte gUnknown_02038695
_080ABCB8: .4byte gTasks
_080ABCBC: .4byte sub_80ABCDC
_080ABCC0:
ldr r0, _080ABCD4 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, _080ABCD8 @ =sub_80AC0C8
_080ABCCC:
str r0, [r1]
_080ABCCE:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080ABCD4: .4byte gTasks
_080ABCD8: .4byte sub_80AC0C8
thumb_func_end sub_80ABC70
thumb_func_start sub_80ABCDC
sub_80ABCDC: @ 80ABCDC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x2C
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x28]
ldr r0, _080ABD80 @ =gUnknown_030042A0
movs r1, 0xA0
strh r1, [r0]
ldr r0, _080ABD84 @ =gUnknown_03004280
strh r1, [r0]
ldr r5, _080ABD88 @ =gUnknown_03004210
ldr r4, _080ABD8C @ =gUnknown_083CA340
ldrb r2, [r4]
ldrb r3, [r4, 0x1]
ldrb r0, [r4, 0x2]
str r0, [sp]
ldrb r0, [r4, 0x3]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
bl FillWindowRect_DefaultPalette
movs r6, 0
ldr r0, _080ABD90 @ =gUnknown_02038695
mov r8, r0
ldr r7, _080ABD94 @ =0x02019260
mov r9, r5
mov r10, r4
_080ABD1C:
lsls r1, r6, 1
mov r3, r8
ldrb r2, [r3]
lsls r0, r2, 6
adds r1, r0
ldr r0, _080ABD98 @ =gUnknown_0203858E
adds r1, r0
ldrh r4, [r1]
add r5, sp, 0x8
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
adds r0, r7
ldrh r0, [r0, 0x8]
cmp r0, 0
beq _080ABDA0
adds r0, r2, 0
bl sub_80B214C
lsls r0, 24
cmp r0, 0
beq _080ABDA0
mov r2, r8
ldrb r1, [r2]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r7
ldrh r0, [r0, 0x8]
adds r1, r4, 0
bl AreMovesContestCombo
lsls r0, 24
cmp r0, 0
beq _080ABDA0
mov r3, r8
ldrb r1, [r3]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r7
ldrb r1, [r0, 0x15]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080ABDA0
add r0, sp, 0x8
ldr r1, _080ABD9C @ =gUnknownText_UnknownFormatting2
b _080ABDC6
.align 2, 0
_080ABD80: .4byte gUnknown_030042A0
_080ABD84: .4byte gUnknown_03004280
_080ABD88: .4byte gUnknown_03004210
_080ABD8C: .4byte gUnknown_083CA340
_080ABD90: .4byte gUnknown_02038695
_080ABD94: .4byte 0x02019260
_080ABD98: .4byte gUnknown_0203858E
_080ABD9C: .4byte gUnknownText_UnknownFormatting2
_080ABDA0:
cmp r4, 0
beq _080ABDCC
mov r1, r8
ldrb r0, [r1]
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r7
ldrh r0, [r1, 0x8]
cmp r0, r4
bne _080ABDCC
ldr r0, _080ABE74 @ =gContestMoves
lsls r1, r4, 3
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x3
beq _080ABDCC
add r0, sp, 0x8
ldr r1, _080ABE78 @ =gUnknownText_UnknownFormatting3
_080ABDC6:
bl StringCopy
adds r5, r0, 0
_080ABDCC:
movs r0, 0xD
adds r1, r4, 0
muls r1, r0
ldr r0, _080ABE7C @ =gMoveNames
adds r1, r0
adds r0, r5, 0
bl StringCopy
lsls r1, r6, 2
adds r2, r1, r6
lsls r2, 18
movs r3, 0xC2
lsls r3, 18
adds r2, r3
lsrs r2, 16
mov r3, r10
adds r0, r1, r3
ldrb r3, [r0]
lsls r3, 3
adds r3, 0x4
lsls r3, 24
lsrs r3, 24
ldr r0, _080ABE80 @ =gUnknown_083CA340 + 0x1
adds r1, r0
ldrb r0, [r1]
lsls r0, 3
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
mov r0, r9
add r1, sp, 0x8
bl sub_8002E4C
mov r0, r9
bl sub_8002F44
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x3
bhi _080ABE20
b _080ABD1C
_080ABE20:
ldr r1, _080ABE84 @ =0x0000ffff
ldr r3, _080ABE88 @ =0x00002d9f
movs r0, 0x48
str r0, [sp]
movs r0, 0
movs r2, 0xC
bl sub_814A5C0
ldr r4, _080ABE8C @ =0x02019204
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
ldr r2, _080ABE90 @ =gUnknown_02038570
ldrb r1, [r4]
lsls r1, 1
ldr r0, _080ABE94 @ =gUnknown_02038695
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
adds r2, 0x1E
adds r1, r2
ldrh r0, [r1]
bl sub_80AEBEC
ldr r1, _080ABE98 @ =gTasks
ldr r2, [sp, 0x28]
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
ldr r1, _080ABE9C @ =sub_80ABEA0
str r1, [r0]
add sp, 0x2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080ABE74: .4byte gContestMoves
_080ABE78: .4byte gUnknownText_UnknownFormatting3
_080ABE7C: .4byte gMoveNames
_080ABE80: .4byte gUnknown_083CA340 + 0x1
_080ABE84: .4byte 0x0000ffff
_080ABE88: .4byte 0x00002d9f
_080ABE8C: .4byte 0x02019204
_080ABE90: .4byte gUnknown_02038570
_080ABE94: .4byte gUnknown_02038695
_080ABE98: .4byte gTasks
_080ABE9C: .4byte sub_80ABEA0
thumb_func_end sub_80ABCDC
thumb_func_start sub_80ABEA0
sub_80ABEA0: @ 80ABEA0
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
ldr r3, _080ABEF4 @ =gMain
ldr r1, _080ABEF8 @ =gUnknown_02038570
ldr r0, _080ABEFC @ =gUnknown_02038695
ldrb r0, [r0]
lsls r0, 6
adds r1, 0x1E
adds r1, r0, r1
movs r2, 0x3
_080ABEBA:
ldrh r0, [r1]
cmp r0, 0
beq _080ABEC6
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_080ABEC6:
adds r1, 0x2
subs r2, 0x1
cmp r2, 0
bge _080ABEBA
ldrh r0, [r3, 0x2E]
movs r5, 0x1
ands r5, r0
cmp r5, 0
beq _080ABF08
bl sub_814A7FC
movs r0, 0x5
bl PlaySE
ldr r0, _080ABF00 @ =gTasks
lsls r1, r7, 2
adds r1, r7
lsls r1, 3
adds r1, r0
ldr r0, _080ABF04 @ =sub_80AC0C8
str r0, [r1]
b _080AC098
.align 2, 0
_080ABEF4: .4byte gMain
_080ABEF8: .4byte gUnknown_02038570
_080ABEFC: .4byte gUnknown_02038695
_080ABF00: .4byte gTasks
_080ABF04: .4byte sub_80AC0C8
_080ABF08:
ldrh r0, [r3, 0x30]
cmp r0, 0x20
bne _080ABF10
b _080AC098
_080ABF10:
cmp r0, 0x20
bgt _080ABF1A
cmp r0, 0x2
beq _080ABF26
b _080AC098
_080ABF1A:
cmp r0, 0x40
beq _080ABFEC
cmp r0, 0x80
bne _080ABF24
b _080AC048
_080ABF24:
b _080AC098
_080ABF26:
bl sub_814A904
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_80AFFE0
ldr r0, _080ABF64 @ =gUnknown_03004210
ldr r1, _080ABF68 @ =gUnknown_083CA340
ldrb r2, [r1]
ldrb r3, [r1, 0x1]
ldrb r4, [r1, 0x2]
str r4, [sp]
ldrb r1, [r1, 0x3]
str r1, [sp, 0x4]
movs r1, 0
bl FillWindowRect_DefaultPalette
ldr r0, _080ABF6C @ =gUnknown_02038695
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
cmp r0, 0
bne _080ABF78
ldr r0, _080ABF70 @ =gUnknown_020238CC
ldr r1, _080ABF74 @ =gUnknown_083CAF84
bl StringCopy
b _080ABF80
.align 2, 0
_080ABF64: .4byte gUnknown_03004210
_080ABF68: .4byte gUnknown_083CA340
_080ABF6C: .4byte gUnknown_02038695
_080ABF70: .4byte gUnknown_020238CC
_080ABF74: .4byte gUnknown_083CAF84
_080ABF78:
ldr r0, _080ABFC8 @ =gUnknown_020238CC
ldr r1, _080ABFCC @ =gUnknown_083CAFAE
bl StringCopy
_080ABF80:
ldr r5, _080ABFC8 @ =gUnknown_020238CC
ldr r0, _080ABFD0 @ =0x02019204
ldrb r1, [r0, 0x1]
adds r1, 0x1
adds r0, r5, 0
bl sub_80AE020
bl sub_80AF138
ldr r4, _080ABFD4 @ =gStringVar4
adds r0, r4, 0
adds r1, r5, 0
bl StringExpandPlaceholders
ldr r0, _080ABFD8 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8003460
ldr r0, _080ABFDC @ =gUnknown_030042A0
movs r1, 0
strh r1, [r0]
ldr r0, _080ABFE0 @ =gUnknown_03004280
strh r1, [r0]
ldr r1, _080ABFE4 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
ldr r1, _080ABFE8 @ =sub_80ABC70
str r1, [r0]
b _080AC098
.align 2, 0
_080ABFC8: .4byte gUnknown_020238CC
_080ABFCC: .4byte gUnknown_083CAFAE
_080ABFD0: .4byte 0x02019204
_080ABFD4: .4byte gStringVar4
_080ABFD8: .4byte gMenuWindow
_080ABFDC: .4byte gUnknown_030042A0
_080ABFE0: .4byte gUnknown_03004280
_080ABFE4: .4byte gTasks
_080ABFE8: .4byte sub_80ABC70
_080ABFEC:
ldr r4, _080AC000 @ =0x02019204
movs r0, 0
ldrsb r0, [r4, r0]
bl nullsub_17
ldrb r0, [r4]
cmp r0, 0
bne _080AC004
subs r0, r6, 0x1
b _080AC006
.align 2, 0
_080AC000: .4byte 0x02019204
_080AC004:
subs r0, 0x1
_080AC006:
strb r0, [r4]
ldr r4, _080AC03C @ =0x02019204
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
bl sub_80AED58
ldr r2, _080AC040 @ =gUnknown_02038570
ldrb r1, [r4]
lsls r1, 1
ldr r0, _080AC044 @ =gUnknown_02038695
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
adds r2, 0x1E
adds r1, r2
ldrh r0, [r1]
bl sub_80AEBEC
cmp r6, 0x1
bls _080AC098
movs r0, 0x5
bl PlaySE
b _080AC098
.align 2, 0
_080AC03C: .4byte 0x02019204
_080AC040: .4byte gUnknown_02038570
_080AC044: .4byte gUnknown_02038695
_080AC048:
ldr r4, _080AC060 @ =0x02019204
movs r0, 0
ldrsb r0, [r4, r0]
bl nullsub_17
ldrb r1, [r4]
subs r0, r6, 0x1
cmp r1, r0
bne _080AC064
strb r5, [r4]
b _080AC068
.align 2, 0
_080AC060: .4byte 0x02019204
_080AC064:
adds r0, r1, 0x1
strb r0, [r4]
_080AC068:
ldr r4, _080AC0A0 @ =0x02019204
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
bl sub_80AED58
ldr r2, _080AC0A4 @ =gUnknown_02038570
ldrb r1, [r4]
lsls r1, 1
ldr r0, _080AC0A8 @ =gUnknown_02038695
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
adds r2, 0x1E
adds r1, r2
ldrh r0, [r1]
bl sub_80AEBEC
cmp r6, 0x1
bls _080AC098
movs r0, 0x5
bl PlaySE
_080AC098:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AC0A0: .4byte 0x02019204
_080AC0A4: .4byte gUnknown_02038570
_080AC0A8: .4byte gUnknown_02038695
thumb_func_end sub_80ABEA0
thumb_func_start sub_80AC0AC
sub_80AC0AC: @ 80AC0AC
push {lr}
adds r1, r0, 0
lsls r1, 28
movs r0, 0xB0
lsls r0, 23
adds r1, r0
lsrs r1, 24
movs r0, 0x4
bl sub_814A880
pop {r0}
bx r0
thumb_func_end sub_80AC0AC
thumb_func_start nullsub_17
nullsub_17: @ 80AC0C4
bx lr
thumb_func_end nullsub_17
thumb_func_start sub_80AC0C8
sub_80AC0C8: @ 80AC0C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _080AC120 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AC13C
ldr r4, _080AC124 @ =gUnknown_02038695
ldrb r0, [r4]
bl sub_80AF15C
ldrb r2, [r4]
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
ldr r2, _080AC128 @ =0x02019260
adds r1, r2
strh r0, [r1, 0x6]
ldr r4, _080AC12C @ =sub_80C8A38
adds r0, r4, 0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080AC130 @ =sub_80AC15C
adds r1, r4, 0
bl SetTaskFuncWithFollowupFunc
ldr r1, _080AC134 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _080AC138 @ =nullsub_89
str r1, [r0]
bl sub_80AF860
movs r0, 0
bl sub_80AFFE0
b _080AC14E
.align 2, 0
_080AC120: .4byte gUnknown_0203869A
_080AC124: .4byte gUnknown_02038695
_080AC128: .4byte 0x02019260
_080AC12C: .4byte sub_80C8A38
_080AC130: .4byte sub_80AC15C
_080AC134: .4byte gTasks
_080AC138: .4byte nullsub_89
_080AC13C:
bl sub_80AF1B8
ldr r0, _080AC154 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, _080AC158 @ =sub_80AC188
str r0, [r1]
_080AC14E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AC154: .4byte gTasks
_080AC158: .4byte sub_80AC188
thumb_func_end sub_80AC0C8
thumb_func_start sub_80AC15C
sub_80AC15C: @ 80AC15C
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
ldr r2, _080AC17C @ =gTasks
ldr r0, _080AC180 @ =0x02019204
ldrb r1, [r0, 0x8]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, _080AC184 @ =sub_80AC188
str r1, [r0]
pop {r0}
bx r0
.align 2, 0
_080AC17C: .4byte gTasks
_080AC180: .4byte 0x02019204
_080AC184: .4byte sub_80AC188
thumb_func_end sub_80AC15C
thumb_func_start sub_80AC188
sub_80AC188: @ 80AC188
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
bl sub_80AF138
ldr r0, _080AC1E4 @ =gUnknown_030042A0
movs r1, 0
strh r1, [r0]
ldr r0, _080AC1E8 @ =gUnknown_03004280
strh r1, [r0]
movs r0, 0
bl sub_80AFFE0
ldr r1, _080AC1EC @ =gPlttBufferFaded
ldr r0, _080AC1F0 @ =0x02018604
movs r2, 0x80
lsls r2, 3
ldr r4, _080AC1F4 @ =0x040000d4
str r1, [r4]
str r0, [r4, 0x4]
lsrs r1, r2, 2
movs r3, 0x84
lsls r3, 24
orrs r1, r3
str r1, [r4, 0x8]
ldr r1, [r4, 0x8]
ldr r1, _080AC1F8 @ =0xfffffc00
adds r0, r1
movs r1, 0
bl LoadPalette
ldr r1, _080AC1FC @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x8]
strh r1, [r0, 0xA]
ldr r1, _080AC200 @ =sub_80AC204
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AC1E4: .4byte gUnknown_030042A0
_080AC1E8: .4byte gUnknown_03004280
_080AC1EC: .4byte gPlttBufferFaded
_080AC1F0: .4byte 0x02018604
_080AC1F4: .4byte 0x040000d4
_080AC1F8: .4byte 0xfffffc00
_080AC1FC: .4byte gTasks
_080AC200: .4byte sub_80AC204
thumb_func_end sub_80AC188
thumb_func_start sub_80AC204
sub_80AC204: @ 80AC204
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080AC248 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _080AC242
movs r0, 0
strh r0, [r4, 0x8]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _080AC242
bl sub_80B1BDC
movs r0, 0x1
bl sub_80B25E4
ldr r0, _080AC24C @ =sub_80AC250
str r0, [r4]
_080AC242:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AC248: .4byte gTasks
_080AC24C: .4byte sub_80AC250
thumb_func_end sub_80AC204
thumb_func_start sub_80AC250
sub_80AC250: @ 80AC250
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080AC278 @ =0x02019204
ldrh r1, [r0, 0x6]
movs r0, 0x90
lsls r0, 2
ands r0, r1
cmp r0, 0
bne _080AC272
ldr r0, _080AC27C @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, _080AC280 @ =sub_80AC284
str r0, [r1]
_080AC272:
pop {r0}
bx r0
.align 2, 0
_080AC278: .4byte 0x02019204
_080AC27C: .4byte gTasks
_080AC280: .4byte sub_80AC284
thumb_func_end sub_80AC250
thumb_func_start sub_80AC284
sub_80AC284: @ 80AC284
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080AC2BC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r2, r1, r2
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x13
ble _080AC2B6
ldr r1, _080AC2C0 @ =0x02019204
movs r0, 0
strb r0, [r1, 0x10]
ldr r0, _080AC2C4 @ =gRngValue
ldr r0, [r0]
str r0, [r1, 0x18]
movs r0, 0
strh r0, [r2, 0x8]
ldr r0, _080AC2C8 @ =sub_80AC2CC
str r0, [r2]
_080AC2B6:
pop {r0}
bx r0
.align 2, 0
_080AC2BC: .4byte gTasks
_080AC2C0: .4byte 0x02019204
_080AC2C4: .4byte gRngValue
_080AC2C8: .4byte sub_80AC2CC
thumb_func_end sub_80AC284
thumb_func_start sub_80AC2CC
sub_80AC2CC: @ 80AC2CC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r2, _080AC308 @ =0x02019204
ldrb r7, [r2, 0x11]
ldr r1, _080AC30C @ =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r3, 0x8
ldrsh r0, [r0, r3]
adds r6, r2, 0
mov r12, r1
cmp r0, 0x3B
bls _080AC2FC
bl _080AD8CA
_080AC2FC:
lsls r0, 2
ldr r1, _080AC310 @ =_080AC314
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AC308: .4byte 0x02019204
_080AC30C: .4byte gTasks
_080AC310: .4byte _080AC314
.align 2, 0
_080AC314:
.4byte _080AC404
.4byte _080AC4B4
.4byte _080AC4D4
.4byte _080AC534
.4byte _080AC5E8
.4byte _080AC638
.4byte _080AC6F8
.4byte _080AC730
.4byte _080AC77C
.4byte _080AC7F4
.4byte _080AD750
.4byte _080AD77C
.4byte _080AC98C
.4byte _080AC9C0
.4byte _080ACEC0
.4byte _080ACFD4
.4byte _080AD040
.4byte _080AD070
.4byte _080AD168
.4byte _080AD11A
.4byte _080AD7B8
.4byte _080AD868
.4byte _080AD88C
.4byte _080AC81E
.4byte _080AC8CC
.4byte _080ACAD8
.4byte _080ACAEE
.4byte _080ACBB0
.4byte _080ACBDC
.4byte _080ACC44
.4byte _080ACD2A
.4byte _080AD7E8
.4byte _080AD840
.4byte _080AD648
.4byte _080AD6D8
.4byte _080AC9EC
.4byte _080ACA24
.4byte _080ACA44
.4byte _080ACA84
.4byte _080ACC98
.4byte _080ACD00
.4byte _080AD1A4
.4byte _080AD8CA
.4byte _080AD514
.4byte _080AD8CA
.4byte _080ACFA8
.4byte _080AD0FA
.4byte _080AC96C
.4byte _080AC8F8
.4byte _080AC94C
.4byte _080ACAAE
.4byte _080ACDC8
.4byte _080ACE64
.4byte _080AD316
.4byte _080AD3D0
.4byte _080AD700
.4byte _080AD71C
.4byte _080AD53C
.4byte _080AD5D0
.4byte _080AD624
_080AC404:
bl sub_80B0D7C
movs r6, 0
ldr r0, _080AC484 @ =0x02019204
adds r1, r0, 0
adds r1, 0xCC
ldrb r0, [r0, 0x10]
mov r4, r8
lsls r4, 2
mov r9, r4
ldrb r5, [r1]
cmp r0, r5
beq _080AC42C
adds r2, r1, 0
adds r1, r0, 0
_080AC422:
adds r6, 0x1
adds r0, r6, r2
ldrb r0, [r0]
cmp r1, r0
bne _080AC422
_080AC42C:
ldr r4, _080AC484 @ =0x02019204
strb r6, [r4, 0x11]
ldrb r7, [r4, 0x11]
ldr r0, _080AC488 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080AC498
ldrb r0, [r4, 0x7]
movs r1, 0x4
orrs r0, r1
strb r0, [r4, 0x7]
bl sub_80AE074
lsls r0, 24
cmp r0, 0
beq _080AC458
ldrb r0, [r4, 0x11]
bl sub_80B114C
_080AC458:
ldr r4, _080AC48C @ =sub_80C8C80
adds r0, r4, 0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080AC490 @ =sub_80AD8DC
adds r1, r4, 0
bl SetTaskFuncWithFollowupFunc
bl sub_80AF860
ldr r1, _080AC494 @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC484: .4byte 0x02019204
_080AC488: .4byte gUnknown_0203869A
_080AC48C: .4byte sub_80C8C80
_080AC490: .4byte sub_80AD8DC
_080AC494: .4byte gTasks
_080AC498:
adds r0, r7, 0
bl sub_80B114C
ldr r0, _080AC4B0 @ =gTasks
mov r1, r9
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x2
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080AC4B0: .4byte gTasks
_080AC4B4:
ldrb r1, [r6, 0x7]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080AC4C2
bl _080AD8CA
_080AC4C2:
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x2
strh r1, [r0, 0x8]
bl _080AD8CA
_080AC4D4:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080AC508 @ =0x02019260
adds r2, r0, r1
ldrb r1, [r2, 0xC]
movs r0, 0x6
ands r0, r1
cmp r0, 0
bne _080AC4F6
ldrb r1, [r2, 0xB]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _080AC50C
_080AC4F6:
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x1F
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC508: .4byte 0x02019260
_080AC50C:
bl sub_80AF138
adds r0, r7, 0
movs r1, 0
bl sub_80B0CDC
ldr r0, _080AC530 @ =gTasks
mov r3, r8
lsls r1, r3, 2
add r1, r8
lsls r1, 3
adds r1, r0
strh r6, [r1, 0x1C]
movs r0, 0x3
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080AC530: .4byte gTasks
_080AC534:
mov r4, r8
lsls r4, 2
mov r9, r4
ldr r4, _080AC5C4 @ =0x02019348
ldr r1, _080AC5C8 @ =gUnknown_02024E84
movs r2, 0
adds r0, r1, 0x3
_080AC542:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _080AC542
movs r6, 0x4
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
bl memset
ldr r5, _080AC5CC @ =0xfffffebc
adds r7, r4, r5
ldrb r0, [r7, 0x11]
bl sub_80B28F0
ldr r3, _080AC5D0 @ =gUnknown_02038570
ldrb r2, [r7, 0x11]
lsls r2, 6
adds r0, r2, r3
ldrh r0, [r0]
adds r1, r3, 0
adds r1, 0x3C
adds r1, r2, r1
ldr r1, [r1]
adds r3, 0x38
adds r2, r3
ldr r2, [r2]
bl sub_80AE9FC
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _080AC5D4 @ =gSprites
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
adds r3, r0, r2
movs r1, 0x78
strh r1, [r3, 0x24]
adds r2, 0x1C
adds r0, r2
ldr r1, _080AC5D8 @ =sub_80AD8FC
str r1, [r0]
ldr r0, _080AC5DC @ =gTasks
mov r4, r9
add r4, r8
lsls r4, 3
adds r4, r0
strh r5, [r4, 0xC]
ldr r1, _080AC5E0 @ =gUnknown_02024BE0
ldr r0, _080AC5E4 @ =gUnknown_02024C07
ldrb r0, [r0]
adds r0, r1
strb r5, [r0]
ldrb r0, [r7, 0x11]
bl sub_80B09E4
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_80B0BC4
strh r6, [r4, 0x8]
bl _080AD8CA
.align 2, 0
_080AC5C4: .4byte 0x02019348
_080AC5C8: .4byte gUnknown_02024E84
_080AC5CC: .4byte 0xfffffebc
_080AC5D0: .4byte gUnknown_02038570
_080AC5D4: .4byte gSprites
_080AC5D8: .4byte sub_80AD8FC
_080AC5DC: .4byte gTasks
_080AC5E0: .4byte gUnknown_02024BE0
_080AC5E4: .4byte gUnknown_02024C07
_080AC5E8:
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r0, 3
mov r3, r12
adds r2, r0, r3
ldrb r5, [r2, 0xC]
ldr r1, _080AC62C @ =gSprites
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
ldr r0, _080AC630 @ =SpriteCallbackDummy
cmp r1, r0
beq _080AC60E
bl _080AD8CA
_080AC60E:
lsls r0, r7, 2
ldr r1, _080AC634 @ =0x02019338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080AC622
bl _080AD8CA
_080AC622:
movs r0, 0x5
strh r0, [r2, 0x8]
bl _080AD8CA
.align 2, 0
_080AC62C: .4byte gSprites
_080AC630: .4byte SpriteCallbackDummy
_080AC634: .4byte 0x02019338
_080AC638:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080AC660 @ =0x02019260
adds r5, r0, r1
ldrb r1, [r5, 0xC]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AC664
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x21
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC660: .4byte 0x02019260
_080AC664:
bl sub_80AF138
ldr r0, _080AC690 @ =gStringVar1
lsls r1, r7, 6
ldr r2, _080AC694 @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldrh r1, [r5, 0x6]
movs r0, 0xB1
lsls r0, 1
cmp r1, r0
bhi _080AC6A0
ldr r0, _080AC698 @ =gStringVar2
adds r2, r1, 0
movs r1, 0xD
muls r1, r2
ldr r2, _080AC69C @ =gMoveNames
adds r1, r2
bl StringCopy
b _080AC6B0
.align 2, 0
_080AC690: .4byte gStringVar1
_080AC694: .4byte gUnknown_02038572
_080AC698: .4byte gStringVar2
_080AC69C: .4byte gMoveNames
_080AC6A0:
ldr r0, _080AC6E0 @ =gStringVar2
ldr r2, _080AC6E4 @ =gUnknown_083CC330
ldrb r1, [r5, 0xA]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
bl StringCopy
_080AC6B0:
ldr r4, _080AC6E8 @ =gStringVar4
ldr r1, _080AC6EC @ =gUnknown_083CAFD7
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080AC6F0 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080AC6F4 @ =gTasks
mov r5, r8
lsls r0, r5, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x6
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC6E0: .4byte gStringVar2
_080AC6E4: .4byte gUnknown_083CC330
_080AC6E8: .4byte gStringVar4
_080AC6EC: .4byte gUnknown_083CAFD7
_080AC6F0: .4byte gMenuWindow
_080AC6F4: .4byte gTasks
_080AC6F8:
ldr r0, _080AC724 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AC708
bl _080AD8CA
_080AC708:
ldr r0, _080AC728 @ =0x02019204
adds r0, 0x5A
movs r1, 0
strb r1, [r0]
ldr r1, _080AC72C @ =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x7
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC724: .4byte gMenuWindow
_080AC728: .4byte 0x02019204
_080AC72C: .4byte gTasks
_080AC730:
ldrb r1, [r6, 0x11]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x5C
adds r0, r1
ldrh r0, [r0, 0x6]
bl sub_80B2760
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r6, 0x11]
bl sub_80B2790
ldrb r0, [r6, 0x11]
bl sub_80B28F0
adds r0, r4, 0
bl sub_80B29B4
adds r0, r4, 0
bl move_anim_start_t1
ldr r1, _080AC778 @ =gTasks
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x8
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC778: .4byte gTasks
_080AC77C:
ldr r0, _080AC7B8 @ =gUnknown_0202F7AC
ldr r0, [r0]
bl _call_via_r0
ldr r0, _080AC7BC @ =gUnknown_0202F7B1
ldrb r4, [r0]
cmp r4, 0
beq _080AC790
bl _080AD8CA
_080AC790:
adds r0, r7, 0
bl sub_80B28CC
ldr r1, _080AC7C0 @ =0x02019204
adds r0, r1, 0
adds r0, 0x5A
ldrb r0, [r0]
cmp r0, 0
beq _080AC7C8
ldr r0, _080AC7C4 @ =gTasks
mov r5, r8
lsls r1, r5, 2
add r1, r8
lsls r1, 3
adds r1, r0
strh r4, [r1, 0x1C]
movs r0, 0x9
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080AC7B8: .4byte gUnknown_0202F7AC
_080AC7BC: .4byte gUnknown_0202F7B1
_080AC7C0: .4byte 0x02019204
_080AC7C4: .4byte gTasks
_080AC7C8:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r1, 0x5C
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _080AC7E2
adds r0, r7, 0
bl sub_80B03A8
_080AC7E2:
bl sub_80B20C4
ldr r0, _080AC7F0 @ =gTasks
mov r2, r8
lsls r1, r2, 2
b _080AC8E2
.align 2, 0
_080AC7F0: .4byte gTasks
_080AC7F4:
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r0, 3
mov r4, r12
adds r2, r0, r4
ldrh r0, [r2, 0x1C]
adds r1, r0, 0x1
strh r1, [r2, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1E
bgt _080AC812
bl _080AD8CA
_080AC812:
movs r0, 0
strh r0, [r2, 0x1C]
movs r0, 0x7
strh r0, [r2, 0x8]
bl _080AD8CA
_080AC81E:
mov r5, r8
lsls r3, r5, 2
adds r0, r3, r5
lsls r0, 3
mov r1, r12
adds r4, r0, r1
movs r0, 0
strh r0, [r4, 0xA]
lsls r2, r7, 3
subs r0, r2, r7
lsls r0, 2
ldr r1, _080AC858 @ =0x02019260
adds r6, r0, r1
ldrb r0, [r6, 0x13]
mov r9, r3
mov r10, r2
adds r3, r1, 0
cmp r0, 0xFF
beq _080AC85C
adds r1, r0, 0
adds r0, r7, 0
bl sub_80B146C
movs r0, 0xFF
strb r0, [r6, 0x13]
movs r0, 0x18
strh r0, [r4, 0x8]
bl _080AD8CA
.align 2, 0
_080AC858: .4byte 0x02019260
_080AC85C:
ldrb r0, [r6, 0x14]
cmp r0, 0xFF
beq _080AC8C4
movs r6, 0
cmp r6, r7
beq _080AC86E
ldrb r0, [r3, 0x13]
cmp r0, 0xFF
bne _080AC886
_080AC86E:
adds r6, 0x1
cmp r6, 0x3
bgt _080AC886
cmp r6, r7
beq _080AC86E
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
adds r0, r3
ldrb r0, [r0, 0x13]
cmp r0, 0xFF
beq _080AC86E
_080AC886:
cmp r6, 0x4
bne _080AC8B4
mov r2, r10
subs r4, r2, r7
lsls r4, 2
adds r4, r3
ldrb r1, [r4, 0x14]
adds r0, r7, 0
bl sub_80B146C
movs r0, 0xFF
strb r0, [r4, 0x14]
ldr r1, _080AC8B0 @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x18
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC8B0: .4byte gTasks
_080AC8B4:
mov r0, r9
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x30
strh r1, [r0, 0x8]
bl _080AD8CA
_080AC8C4:
movs r0, 0x30
strh r0, [r4, 0x8]
bl _080AD8CA
_080AC8CC:
ldr r0, _080AC8F0 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AC8DC
bl _080AD8CA
_080AC8DC:
ldr r0, _080AC8F4 @ =gTasks
mov r3, r8
lsls r1, r3, 2
_080AC8E2:
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x17
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080AC8F0: .4byte gMenuWindow
_080AC8F4: .4byte gTasks
_080AC8F8:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080AC914 @ =0x02019260
adds r0, r1
ldrb r0, [r0, 0x11]
movs r3, 0x3
ands r3, r0
cmp r3, 0x1
bne _080AC918
movs r0, 0x5
bl sub_80B1710
b _080AC934
.align 2, 0
_080AC914: .4byte 0x02019260
_080AC918:
cmp r3, 0x2
bne _080AC924
movs r0, 0x6
bl sub_80B1710
b _080AC934
_080AC924:
cmp r3, 0x3
beq _080AC92E
mov r4, r8
lsls r0, r4, 2
b _080AC95E
_080AC92E:
movs r0, 0x7
bl sub_80B1710
_080AC934:
ldr r0, _080AC948 @ =gTasks
mov r5, r8
lsls r1, r5, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x31
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080AC948: .4byte gTasks
_080AC94C:
ldrb r1, [r6, 0x6]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080AC95A
bl _080AD8CA
_080AC95A:
mov r1, r8
lsls r0, r1, 2
_080AC95E:
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x2F
strh r1, [r0, 0x8]
bl _080AD8CA
_080AC96C:
movs r0, 0x1
bl sub_80B1FD0
ldr r0, _080AC988 @ =gTasks
mov r2, r8
lsls r1, r2, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0xC
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080AC988: .4byte gTasks
_080AC98C:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080AC9B8 @ =0x02019260
adds r0, r1
movs r3, 0x2
ldrsh r1, [r0, r3]
movs r0, 0
adds r2, r7, 0
bl sub_80AFBA0
ldr r1, _080AC9BC @ =gTasks
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0xD
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AC9B8: .4byte 0x02019260
_080AC9BC: .4byte gTasks
_080AC9C0:
ldrb r0, [r6, 0x11]
lsls r0, 2
movs r5, 0x9A
lsls r5, 1
adds r1, r6, r5
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080AC9DA
bl _080AD8CA
_080AC9DA:
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x23
strh r1, [r0, 0x8]
bl _080AD8CA
_080AC9EC:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080ACA1C @ =0x02019260
adds r0, r1
ldrb r1, [r0, 0x10]
movs r0, 0x30
ands r0, r1
cmp r0, 0x10
bne _080ACA06
movs r0, 0x8
bl sub_80B1710
_080ACA06:
ldr r0, _080ACA20 @ =gTasks
mov r2, r8
lsls r1, r2, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x24
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080ACA1C: .4byte 0x02019260
_080ACA20: .4byte gTasks
_080ACA24:
ldrb r1, [r6, 0x6]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080ACA32
bl _080AD8CA
_080ACA32:
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x25
strh r1, [r0, 0x8]
bl _080AD8CA
_080ACA44:
adds r0, r7, 0
movs r1, 0x1
bl sub_80AEE54
lsls r0, 24
cmp r0, 0
beq _080ACA70
ldr r1, _080ACA6C @ =gTasks
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x1C]
movs r1, 0x26
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080ACA6C: .4byte gTasks
_080ACA70:
ldr r0, _080ACA80 @ =gTasks
mov r5, r8
lsls r1, r5, 2
add r1, r8
lsls r1, 3
adds r1, r0
b _080ACAA6
.align 2, 0
_080ACA80: .4byte gTasks
_080ACA84:
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r0, 3
mov r2, r12
adds r1, r0, r2
ldrh r0, [r1, 0x1C]
adds r0, 0x1
strh r0, [r1, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
bgt _080ACAA2
bl _080AD8CA
_080ACAA2:
movs r0, 0
strh r0, [r1, 0x1C]
_080ACAA6:
movs r0, 0x32
strh r0, [r1, 0x8]
bl _080AD8CA
_080ACAAE:
adds r0, r7, 0
bl sub_80AF038
lsls r0, 24
cmp r0, 0
beq _080ACAC0
movs r0, 0x63
bl PlaySE
_080ACAC0:
ldr r0, _080ACAD4 @ =gTasks
mov r3, r8
lsls r1, r3, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x19
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080ACAD4: .4byte gTasks
_080ACAD8:
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0
strh r1, [r0, 0xA]
movs r1, 0x1A
strh r1, [r0, 0x8]
bl _080AD8CA
_080ACAEE:
movs r2, 0
movs r4, 0
mov r5, r8
lsls r1, r5, 2
adds r0, r1, r5
lsls r0, 3
add r0, r12
movs r3, 0xA
ldrsh r6, [r0, r3]
mov r9, r1
cmp r6, 0x3
bgt _080ACB58
ldr r3, _080ACB24 @ =gUnknown_02038696
ldr r1, _080ACB28 @ =0x02019260
_080ACB0A:
movs r4, 0
movs r2, 0
cmp r4, r7
beq _080ACB2C
ldrb r0, [r3]
cmp r0, r6
bne _080ACB2C
ldrb r0, [r1, 0x13]
cmp r0, 0xFF
beq _080ACB2C
movs r4, 0x1
b _080ACB60
.align 2, 0
_080ACB24: .4byte gUnknown_02038696
_080ACB28: .4byte 0x02019260
_080ACB2C:
adds r2, 0x1
cmp r2, 0x3
bgt _080ACB4E
cmp r2, r7
beq _080ACB2C
adds r0, r2, r3
ldrb r0, [r0]
cmp r0, r6
bne _080ACB2C
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x13]
cmp r0, 0xFF
beq _080ACB2C
movs r4, 0x1
_080ACB4E:
cmp r4, 0
bne _080ACB60
adds r6, 0x1
cmp r6, 0x3
ble _080ACB0A
_080ACB58:
lsls r0, r4, 24
asrs r1, r0, 24
cmp r1, 0
beq _080ACB98
_080ACB60:
mov r5, r9
add r5, r8
lsls r5, 3
add r5, r12
ldr r0, _080ACB90 @ =gUnknown_02038696
adds r0, r2, r0
ldrb r0, [r0]
strh r0, [r5, 0xA]
lsls r0, r2, 24
lsrs r0, 24
lsls r4, r2, 3
subs r4, r2
lsls r4, 2
ldr r1, _080ACB94 @ =0x02019260
adds r4, r1
ldrb r1, [r4, 0x13]
bl sub_80B146C
movs r0, 0xFF
strb r0, [r4, 0x13]
movs r0, 0x1B
strh r0, [r5, 0x8]
bl _080AD8CA
.align 2, 0
_080ACB90: .4byte gUnknown_02038696
_080ACB94: .4byte 0x02019260
_080ACB98:
mov r0, r9
add r0, r8
lsls r0, 3
add r0, r12
strh r1, [r0, 0xA]
strh r1, [r0, 0x1C]
movs r1, 0x33
strh r1, [r0, 0x8]
bl sub_80AF120
bl _080AD8CA
_080ACBB0:
ldr r0, _080ACBD4 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080ACBC0
bl _080AD8CA
_080ACBC0:
ldr r0, _080ACBD8 @ =gTasks
mov r4, r8
lsls r1, r4, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x1C
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080ACBD4: .4byte gMenuWindow
_080ACBD8: .4byte gTasks
_080ACBDC:
movs r6, 0
mov r5, r8
lsls r0, r5, 2
adds r1, r0, r5
lsls r1, 3
add r1, r12
movs r3, 0xA
ldrsh r2, [r1, r3]
ldr r1, _080ACC38 @ =gUnknown_02038696
mov r9, r0
ldr r3, _080ACC3C @ =0x02019260
adds r5, r1, 0
ldrb r4, [r5]
cmp r2, r4
beq _080ACC08
adds r1, r2, 0
adds r2, r5, 0
_080ACBFE:
adds r6, 0x1
adds r0, r6, r2
ldrb r0, [r0]
cmp r1, r0
bne _080ACBFE
_080ACC08:
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0xE]
ldrh r0, [r0, 0x2]
adds r0, r1
lsls r0, 16
asrs r0, 16
negs r1, r1
lsls r2, r6, 24
lsrs r2, 24
bl sub_80AFBA0
ldr r1, _080ACC40 @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x1D
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080ACC38: .4byte gUnknown_02038696
_080ACC3C: .4byte 0x02019260
_080ACC40: .4byte gTasks
_080ACC44:
movs r6, 0
mov r5, r8
lsls r0, r5, 2
adds r1, r0, r5
lsls r1, 3
add r1, r12
movs r2, 0xA
ldrsh r3, [r1, r2]
ldr r1, _080ACC90 @ =gUnknown_02038696
mov r9, r0
ldr r2, _080ACC94 @ =0x02019338
adds r5, r1, 0
ldrb r4, [r5]
cmp r3, r4
beq _080ACC6C
_080ACC62:
adds r6, 0x1
adds r0, r6, r1
ldrb r0, [r0]
cmp r3, r0
bne _080ACC62
_080ACC6C:
lsls r0, r6, 2
adds r0, r2
ldrb r1, [r0, 0x2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080ACC7E
bl _080AD8CA
_080ACC7E:
mov r0, r9
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x27
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080ACC90: .4byte gUnknown_02038696
_080ACC94: .4byte 0x02019338
_080ACC98:
movs r6, 0
mov r5, r8
lsls r0, r5, 2
adds r1, r0, r5
lsls r1, 3
add r1, r12
movs r3, 0xA
ldrsh r2, [r1, r3]
ldr r1, _080ACCE8 @ =gUnknown_02038696
mov r9, r0
adds r5, r1, 0
ldrb r4, [r5]
cmp r2, r4
beq _080ACCC2
adds r1, r2, 0
adds r2, r5, 0
_080ACCB8:
adds r6, 0x1
adds r0, r6, r2
ldrb r0, [r0]
cmp r1, r0
bne _080ACCB8
_080ACCC2:
lsls r0, r6, 24
lsrs r0, 24
movs r1, 0x1
bl sub_80AEE54
lsls r0, 24
cmp r0, 0
beq _080ACCF0
ldr r1, _080ACCEC @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x1C]
movs r1, 0x28
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080ACCE8: .4byte gUnknown_02038696
_080ACCEC: .4byte gTasks
_080ACCF0:
ldr r0, _080ACCFC @ =gTasks
mov r1, r9
add r1, r8
lsls r1, 3
adds r1, r0
b _080ACD22
.align 2, 0
_080ACCFC: .4byte gTasks
_080ACD00:
mov r5, r8
lsls r0, r5, 2
add r0, r8
lsls r0, 3
mov r2, r12
adds r1, r0, r2
ldrh r0, [r1, 0x1C]
adds r0, 0x1
strh r0, [r1, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
bgt _080ACD1E
bl _080AD8CA
_080ACD1E:
movs r0, 0
strh r0, [r1, 0x1C]
_080ACD22:
movs r0, 0x1E
strh r0, [r1, 0x8]
bl _080AD8CA
_080ACD2A:
movs r6, 0
ldr r2, _080ACD78 @ =gUnknown_02038696
ldrb r3, [r2]
mov r4, r8
lsls r1, r4, 2
adds r0, r1, r4
lsls r0, 3
mov r5, r12
adds r4, r0, r5
movs r5, 0xA
ldrsh r0, [r4, r5]
mov r9, r1
adds r5, r2, 0
cmp r3, r0
beq _080ACD5E
adds r3, r5, 0
adds r2, r4, 0
_080ACD4C:
adds r6, 0x1
cmp r6, 0x3
bgt _080ACD5E
adds r0, r6, r3
ldrb r1, [r0]
movs r4, 0xA
ldrsh r0, [r2, r4]
cmp r1, r0
bne _080ACD4C
_080ACD5E:
lsls r4, r6, 24
lsrs r0, r4, 24
bl sub_80AF038
lsls r0, 24
adds r5, r4, 0
cmp r0, 0
beq _080ACD7C
movs r0, 0x63
bl PlaySE
b _080ACD82
.align 2, 0
_080ACD78: .4byte gUnknown_02038696
_080ACD7C:
movs r0, 0x64
bl PlaySE
_080ACD82:
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
ldr r1, _080ACDC0 @ =0x02019260
adds r4, r0, r1
ldrb r1, [r4, 0x15]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080ACDA6
lsrs r0, r5, 24
bl sub_80B03A8
ldrb r1, [r4, 0x15]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r4, 0x15]
_080ACDA6:
ldr r0, _080ACDC4 @ =gTasks
mov r1, r9
add r1, r8
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0xA]
adds r0, 0x1
strh r0, [r1, 0xA]
movs r0, 0x1A
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080ACDC0: .4byte 0x02019260
_080ACDC4: .4byte gTasks
_080ACDC8:
mov r5, r8
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
mov r1, r12
adds r3, r0, r1
ldrh r0, [r3, 0x1C]
adds r1, r0, 0x1
strh r1, [r3, 0x1C]
lsls r0, 16
asrs r0, 16
mov r9, r2
cmp r0, 0x9
bgt _080ACDE8
bl _080AD8CA
_080ACDE8:
movs r0, 0
strh r0, [r3, 0x1C]
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080ACE48 @ =0x02019260
adds r2, r0, r1
ldrb r1, [r2, 0xC]
movs r0, 0x6
ands r0, r1
cmp r0, 0
bne _080ACE0A
ldrb r1, [r2, 0x11]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080ACE36
_080ACE0A:
bl sub_80AF138
ldr r0, _080ACE4C @ =gStringVar1
lsls r1, r7, 6
ldr r2, _080ACE50 @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r4, _080ACE54 @ =gStringVar4
ldr r1, _080ACE58 @ =gUnknown_083CC103
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080ACE5C @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
_080ACE36:
ldr r0, _080ACE60 @ =gTasks
mov r1, r9
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x34
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080ACE48: .4byte 0x02019260
_080ACE4C: .4byte gStringVar1
_080ACE50: .4byte gUnknown_02038572
_080ACE54: .4byte gStringVar4
_080ACE58: .4byte gUnknown_083CC103
_080ACE5C: .4byte gMenuWindow
_080ACE60: .4byte gTasks
_080ACE64:
ldr r0, _080ACE9C @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080ACE74
bl _080AD8CA
_080ACE74:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080ACEA0 @ =0x02019260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080ACEA8
ldr r0, _080ACEA4 @ =gTasks
mov r2, r8
lsls r1, r2, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x11
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080ACE9C: .4byte gMenuWindow
_080ACEA0: .4byte 0x02019260
_080ACEA4: .4byte gTasks
_080ACEA8:
ldr r0, _080ACEBC @ =gTasks
mov r3, r8
lsls r1, r3, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0xE
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
_080ACEBC: .4byte gTasks
_080ACEC0:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080ACEE4 @ =0x02019260
adds r0, r1
ldrb r4, [r0, 0x16]
lsls r4, 24
lsrs r5, r4, 24
cmp r5, 0
beq _080ACF48
bl sub_80AF138
asrs r0, r4, 24
cmp r0, 0x1
bne _080ACEF0
ldr r0, _080ACEE8 @ =gMenuWindow
ldr r1, _080ACEEC @ =gUnknown_083CBD79
b _080ACEF8
.align 2, 0
_080ACEE4: .4byte 0x02019260
_080ACEE8: .4byte gMenuWindow
_080ACEEC: .4byte gUnknown_083CBD79
_080ACEF0:
cmp r0, 0x2
bne _080ACF10
ldr r0, _080ACF08 @ =gMenuWindow
ldr r1, _080ACF0C @ =gUnknown_083CBD9D
_080ACEF8:
movs r2, 0xC2
lsls r2, 2
movs r3, 0xF
str r3, [sp]
movs r3, 0x1
bl sub_8002EB0
b _080ACF22
.align 2, 0
_080ACF08: .4byte gMenuWindow
_080ACF0C: .4byte gUnknown_083CBD9D
_080ACF10:
ldr r0, _080ACF3C @ =gMenuWindow
ldr r1, _080ACF40 @ =gUnknown_083CBDC6
movs r2, 0xC2
lsls r2, 2
movs r3, 0xF
str r3, [sp]
movs r3, 0x1
bl sub_8002EB0
_080ACF22:
movs r0, 0x3
bl sub_80B1710
ldr r1, _080ACF44 @ =gTasks
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x1C]
b _080ACF88
.align 2, 0
_080ACF3C: .4byte gMenuWindow
_080ACF40: .4byte gUnknown_083CBDC6
_080ACF44: .4byte gTasks
_080ACF48:
bl sub_80AF138
ldr r0, _080ACF90 @ =gStringVar1
lsls r1, r7, 6
ldr r2, _080ACF94 @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r4, _080ACF98 @ =gStringVar4
ldr r1, _080ACF9C @ =gUnknown_083CBD52
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080ACFA0 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
movs r0, 0x2
bl sub_80B1710
ldr r1, _080ACFA4 @ =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x1C]
_080ACF88:
movs r1, 0x2D
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080ACF90: .4byte gStringVar1
_080ACF94: .4byte gUnknown_02038572
_080ACF98: .4byte gStringVar4
_080ACF9C: .4byte gUnknown_083CBD52
_080ACFA0: .4byte gMenuWindow
_080ACFA4: .4byte gTasks
_080ACFA8:
ldrb r1, [r6, 0x6]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080ACFB6
bl _080AD8CA
_080ACFB6:
ldrb r0, [r6, 0x11]
bl sub_80B09B0
ldr r1, _080ACFD0 @ =gTasks
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0xF
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080ACFD0: .4byte gTasks
_080ACFD4:
ldr r0, _080AD034 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080ACFE4
bl _080AD8CA
_080ACFE4:
ldr r1, _080AD038 @ =gTasks
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x32
bgt _080AD002
bl _080AD8CA
_080AD002:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080AD03C @ =0x02019260
adds r6, r0, r1
ldrb r1, [r6, 0x15]
movs r5, 0x10
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _080AD02C
movs r1, 0x2
ldrsh r0, [r6, r1]
ldrb r1, [r6, 0x17]
adds r2, r7, 0
bl sub_80AFBA0
ldrh r0, [r6, 0x2]
ldrb r2, [r6, 0x17]
adds r0, r2
strh r0, [r6, 0x2]
_080AD02C:
strh r5, [r4, 0x8]
bl _080AD8CA
.align 2, 0
_080AD034: .4byte gMenuWindow
_080AD038: .4byte gTasks
_080AD03C: .4byte 0x02019260
_080AD040:
lsls r0, r7, 2
ldr r1, _080AD06C @ =0x02019338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x4
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _080AD058
bl _080AD8CA
_080AD058:
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r0, 3
add r0, r12
strh r1, [r0, 0x1C]
movs r1, 0x11
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
_080AD06C: .4byte 0x02019338
_080AD070:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080AD0CC @ =0x02019260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AD0E8
bl sub_80AF138
ldr r0, _080AD0D0 @ =gStringVar1
lsls r1, r7, 6
ldr r2, _080AD0D4 @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r4, _080AD0D8 @ =gStringVar4
ldr r1, _080AD0DC @ =gUnknown_083CC075
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080AD0E0 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r0, _080AD0E4 @ =gTasks
mov r5, r8
lsls r4, r5, 2
add r4, r8
lsls r4, 3
adds r4, r0
movs r0, 0
strh r0, [r4, 0x1C]
bl sub_80B1710
movs r0, 0x2E
strh r0, [r4, 0x8]
bl _080AD8CA
.align 2, 0
_080AD0CC: .4byte 0x02019260
_080AD0D0: .4byte gStringVar1
_080AD0D4: .4byte gUnknown_02038572
_080AD0D8: .4byte gStringVar4
_080AD0DC: .4byte gUnknown_083CC075
_080AD0E0: .4byte gMenuWindow
_080AD0E4: .4byte gTasks
_080AD0E8:
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x29
strh r1, [r0, 0x8]
bl _080AD8CA
_080AD0FA:
ldrb r1, [r6, 0x6]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080AD108
bl _080AD8CA
_080AD108:
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x13
strh r1, [r0, 0x8]
bl _080AD8CA
_080AD11A:
ldr r0, _080AD15C @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AD12A
bl _080AD8CA
_080AD12A:
lsls r4, r7, 3
subs r4, r7
lsls r4, 2
ldr r0, _080AD160 @ =0x02019260
adds r4, r0
movs r3, 0x2
ldrsh r0, [r4, r3]
ldrb r1, [r4, 0x18]
negs r1, r1
adds r2, r7, 0
bl sub_80AFBA0
ldrb r1, [r4, 0x18]
ldrh r0, [r4, 0x2]
subs r0, r1
strh r0, [r4, 0x2]
ldr r1, _080AD164 @ =gTasks
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x12
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD15C: .4byte gMenuWindow
_080AD160: .4byte 0x02019260
_080AD164: .4byte gTasks
_080AD168:
bl sub_80B0D7C
lsls r0, r7, 2
ldr r1, _080AD19C @ =0x02019338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x4
ands r0, r1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _080AD182
b _080AD8CA
_080AD182:
ldr r0, _080AD1A0 @ =gTasks
mov r5, r8
lsls r4, r5, 2
add r4, r8
lsls r4, 3
adds r4, r0
strh r6, [r4, 0x1C]
bl sub_80AF138
movs r0, 0x29
strh r0, [r4, 0x8]
b _080AD8CA
.align 2, 0
_080AD19C: .4byte 0x02019338
_080AD1A0: .4byte gTasks
_080AD1A4:
ldr r2, _080AD1CC @ =0x02019328
ldrb r1, [r2, 0x1]
movs r0, 0x1
ands r0, r1
adds r1, r2, 0
cmp r0, 0
beq _080AD1D0
ldr r0, [r1]
lsls r0, 20
lsrs r0, 29
cmp r7, r0
beq _080AD1D0
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r0, 3
add r0, r12
movs r1, 0x39
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD1CC: .4byte 0x02019328
_080AD1D0:
ldrb r4, [r1]
lsls r2, r7, 3
subs r0, r2, r7
lsls r0, 2
subs r1, 0xC8
adds r5, r0, r1
ldrb r1, [r5, 0x11]
movs r0, 0x10
ands r0, r1
mov r10, r2
cmp r0, 0
beq _080AD204
movs r4, 0x1
ldr r0, _080AD1FC @ =gStringVar3
ldrh r2, [r5, 0x6]
movs r1, 0xD
muls r1, r2
ldr r2, _080AD200 @ =gMoveNames
adds r1, r2
bl StringCopy
b _080AD21E
.align 2, 0
_080AD1FC: .4byte gStringVar3
_080AD200: .4byte gMoveNames
_080AD204:
ldr r0, _080AD270 @ =gStringVar3
ldr r3, _080AD274 @ =gUnknown_083CC2D8
ldr r2, _080AD278 @ =gContestMoves
ldrh r1, [r5, 0x6]
lsls r1, 3
adds r1, r2
ldrb r1, [r1, 0x1]
lsls r1, 29
lsrs r1, 27
adds r1, r3
ldr r1, [r1]
bl StringCopy
_080AD21E:
lsls r0, r4, 24
cmp r0, 0
ble _080AD23A
mov r2, r10
subs r0, r2, r7
lsls r0, 2
ldr r1, _080AD27C @ =0x02019260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AD23A
movs r4, 0
_080AD23A:
bl sub_80AF138
ldr r0, _080AD280 @ =gStringVar1
lsls r1, r7, 6
ldr r2, _080AD284 @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r3, _080AD288 @ =0x02019204
ldrb r0, [r3, 0x13]
lsls r1, r4, 24
asrs r2, r1, 24
adds r0, r2, r0
strb r0, [r3, 0x13]
lsls r0, 24
adds r4, r1, 0
cmp r0, 0
bge _080AD262
movs r0, 0
strb r0, [r3, 0x13]
_080AD262:
cmp r2, 0
bne _080AD290
ldr r0, _080AD28C @ =gTasks
mov r3, r8
lsls r1, r3, 2
b _080AD6EC
.align 2, 0
_080AD270: .4byte gStringVar3
_080AD274: .4byte gUnknown_083CC2D8
_080AD278: .4byte gContestMoves
_080AD27C: .4byte 0x02019260
_080AD280: .4byte gStringVar1
_080AD284: .4byte gUnknown_02038572
_080AD288: .4byte 0x02019204
_080AD28C: .4byte gTasks
_080AD290:
cmp r2, 0
bge _080AD2A8
ldr r0, _080AD2A0 @ =gStringVar4
ldr r1, _080AD2A4 @ =gUnknown_083CC0BC
bl StringExpandPlaceholders
b _080AD2D0
.align 2, 0
_080AD2A0: .4byte gStringVar4
_080AD2A4: .4byte gUnknown_083CC0BC
_080AD2A8:
cmp r2, 0
ble _080AD2C8
movs r0, 0x13
ldrsb r0, [r3, r0]
cmp r0, 0x4
bgt _080AD2C8
ldr r0, _080AD2C0 @ =gStringVar4
ldr r1, _080AD2C4 @ =gUnknown_083CC0A0
bl StringExpandPlaceholders
b _080AD2D0
.align 2, 0
_080AD2C0: .4byte gStringVar4
_080AD2C4: .4byte gUnknown_083CC0A0
_080AD2C8:
ldr r0, _080AD300 @ =gStringVar4
ldr r1, _080AD304 @ =gUnknown_083CC0E3
bl StringExpandPlaceholders
_080AD2D0:
ldr r0, _080AD308 @ =gMenuWindow
ldr r1, _080AD300 @ =gStringVar4
movs r2, 0xC2
lsls r2, 2
movs r3, 0xF
str r3, [sp]
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080AD30C @ =gTasks
mov r5, r8
lsls r0, r5, 2
add r0, r8
lsls r0, 3
adds r1, r0, r1
movs r0, 0
strh r0, [r1, 0x1C]
strh r0, [r1, 0x1E]
cmp r4, 0
bge _080AD310
movs r0, 0x35
strh r0, [r1, 0x8]
b _080AD8CA
.align 2, 0
_080AD300: .4byte gStringVar4
_080AD304: .4byte gUnknown_083CC0E3
_080AD308: .4byte gMenuWindow
_080AD30C: .4byte gTasks
_080AD310:
movs r0, 0x36
strh r0, [r1, 0x8]
b _080AD8CA
_080AD316:
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r0, 3
mov r2, r12
adds r4, r0, r2
movs r3, 0x1C
ldrsh r2, [r4, r3]
cmp r2, 0x1
beq _080AD354
cmp r2, 0x1
bgt _080AD334
cmp r2, 0
beq _080AD33E
b _080AD8CA
_080AD334:
cmp r2, 0x2
beq _080AD37C
cmp r2, 0x3
beq _080AD3B0
b _080AD8CA
_080AD33E:
movs r0, 0x1
negs r0, r0
movs r1, 0x1
bl sub_80B1EA8
ldr r0, _080AD350 @ =0x00000187
bl PlayFanfare
b _080AD3A8
.align 2, 0
_080AD350: .4byte 0x00000187
_080AD354:
ldrb r0, [r6, 0x7]
ands r2, r0
cmp r2, 0
beq _080AD35E
b _080AD8CA
_080AD35E:
ldr r0, _080AD378 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AD36C
b _080AD8CA
_080AD36C:
movs r0, 0x1
negs r0, r0
bl sub_80B1CBC
b _080AD3A8
.align 2, 0
_080AD378: .4byte gMenuWindow
_080AD37C:
ldrb r1, [r6, 0x6]
movs r0, 0x20
ands r0, r1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _080AD38C
b _080AD8CA
_080AD38C:
ldrh r0, [r4, 0x1E]
adds r1, r0, 0x1
strh r1, [r4, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1D
bgt _080AD39C
b _080AD8CA
_080AD39C:
strh r2, [r4, 0x1E]
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
bl sub_80B1EA8
_080AD3A8:
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
b _080AD8CA
_080AD3B0:
ldr r0, _080AD3CC @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080AD3C2
b _080AD8CA
_080AD3C2:
strh r0, [r4, 0x1C]
strh r0, [r4, 0x1E]
movs r0, 0x2B
strh r0, [r4, 0x8]
b _080AD8CA
.align 2, 0
_080AD3CC: .4byte gPaletteFade
_080AD3D0:
mov r4, r8
lsls r1, r4, 2
adds r0, r1, r4
lsls r0, 3
add r0, r12
movs r5, 0x1C
ldrsh r0, [r0, r5]
mov r9, r1
cmp r0, 0x4
bls _080AD3E6
b _080AD8CA
_080AD3E6:
lsls r0, 2
ldr r1, _080AD3F0 @ =_080AD3F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AD3F0: .4byte _080AD3F4
.align 2, 0
_080AD3F4:
.4byte _080AD408
.4byte _080AD420
.4byte _080AD43E
.4byte _080AD4A0
.4byte _080AD4EC
_080AD408:
ldr r0, _080AD41C @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AD416
b _080AD8CA
_080AD416:
movs r0, 0x1
movs r1, 0x1
b _080AD4C8
.align 2, 0
_080AD41C: .4byte gMenuWindow
_080AD420:
ldrb r1, [r6, 0x7]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AD42C
b _080AD8CA
_080AD42C:
bl sub_80B1DDC
movs r0, 0xDF
bl PlaySE
movs r0, 0x1
bl sub_80B1CBC
b _080AD4CC
_080AD43E:
ldrb r1, [r6, 0x6]
movs r0, 0x20
ands r0, r1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _080AD44E
b _080AD8CA
_080AD44E:
mov r0, r9
add r0, r8
lsls r0, 3
mov r1, r12
adds r3, r0, r1
ldrh r0, [r3, 0x1E]
adds r1, r0, 0x1
strh r1, [r3, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1D
bgt _080AD468
b _080AD8CA
_080AD468:
strh r2, [r3, 0x1E]
lsls r4, r7, 3
subs r4, r7
lsls r4, 2
adds r0, r6, 0
adds r0, 0x5C
adds r4, r0
movs r2, 0x2
ldrsh r0, [r4, r2]
movs r1, 0x92
lsls r1, 1
adds r5, r6, r1
movs r1, 0x2
ldrsb r1, [r5, r1]
adds r2, r7, 0
str r3, [sp, 0x4]
bl sub_80AFBA0
movs r0, 0x2
ldrsb r0, [r5, r0]
ldrh r2, [r4, 0x2]
adds r0, r2
strh r0, [r4, 0x2]
ldr r3, [sp, 0x4]
ldrh r0, [r3, 0x1C]
adds r0, 0x1
strh r0, [r3, 0x1C]
b _080AD8CA
_080AD4A0:
lsls r0, r7, 2
ldr r2, _080AD4E0 @ =0x02019338
adds r0, r2
ldrb r1, [r0, 0x2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080AD4B2
b _080AD8CA
_080AD4B2:
ldr r3, _080AD4E4 @ =0xfffffecc
adds r0, r2, r3
ldrb r1, [r0, 0x6]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080AD4C2
b _080AD8CA
_080AD4C2:
movs r1, 0x1
negs r1, r1
movs r0, 0x1
_080AD4C8:
bl sub_80B1EA8
_080AD4CC:
ldr r0, _080AD4E8 @ =gTasks
mov r1, r9
add r1, r8
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x1C]
adds r0, 0x1
strh r0, [r1, 0x1C]
b _080AD8CA
.align 2, 0
_080AD4E0: .4byte 0x02019338
_080AD4E4: .4byte 0xfffffecc
_080AD4E8: .4byte gTasks
_080AD4EC:
ldr r0, _080AD510 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _080AD4FE
b _080AD8CA
_080AD4FE:
mov r0, r9
add r0, r8
lsls r0, 3
add r0, r12
strh r1, [r0, 0x1C]
strh r1, [r0, 0x1E]
movs r1, 0x2B
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD510: .4byte gPaletteFade
_080AD514:
lsls r0, r7, 2
ldr r1, _080AD534 @ =0x02019338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080AD526
b _080AD8CA
_080AD526:
bl sub_80AF138
ldr r0, _080AD538 @ =gTasks
mov r4, r8
lsls r1, r4, 2
b _080AD6EC
.align 2, 0
_080AD534: .4byte 0x02019338
_080AD538: .4byte gTasks
_080AD53C:
bl sub_80AF138
ldr r0, _080AD5A8 @ =gStringVar3
ldr r4, _080AD5AC @ =0x02019328
ldr r1, [r4]
lsls r1, 20
lsrs r1, 29
lsls r1, 6
ldr r5, _080AD5B0 @ =gUnknown_02038572
adds r1, r5
bl StringCopy
ldr r0, _080AD5B4 @ =gStringVar1
lsls r1, r7, 6
adds r1, r5
bl StringCopy
ldr r0, _080AD5B8 @ =gStringVar2
lsls r1, r7, 3
subs r1, r7
lsls r1, 2
subs r4, 0xC8
adds r1, r4
ldrh r2, [r1, 0x6]
movs r1, 0xD
muls r1, r2
ldr r2, _080AD5BC @ =gMoveNames
adds r1, r2
bl StringCopy
ldr r4, _080AD5C0 @ =gStringVar4
ldr r1, _080AD5C4 @ =gUnknown_083CC14A
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080AD5C8 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080AD5CC @ =gTasks
mov r5, r8
lsls r0, r5, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x3A
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD5A8: .4byte gStringVar3
_080AD5AC: .4byte 0x02019328
_080AD5B0: .4byte gUnknown_02038572
_080AD5B4: .4byte gStringVar1
_080AD5B8: .4byte gStringVar2
_080AD5BC: .4byte gMoveNames
_080AD5C0: .4byte gStringVar4
_080AD5C4: .4byte gUnknown_083CC14A
_080AD5C8: .4byte gMenuWindow
_080AD5CC: .4byte gTasks
_080AD5D0:
ldr r5, _080AD614 @ =gMenuWindow
adds r0, r5, 0
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AD5E0
b _080AD8CA
_080AD5E0:
bl sub_80AF138
ldr r4, _080AD618 @ =gStringVar4
ldr r1, _080AD61C @ =gUnknown_083CC16E
adds r0, r4, 0
bl StringExpandPlaceholders
movs r2, 0xC2
lsls r2, 2
movs r0, 0xF
str r0, [sp]
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080AD620 @ =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x3B
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD614: .4byte gMenuWindow
_080AD618: .4byte gStringVar4
_080AD61C: .4byte gUnknown_083CC16E
_080AD620: .4byte gTasks
_080AD624:
ldr r0, _080AD640 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AD632
b _080AD8CA
_080AD632:
bl sub_80AF138
ldr r0, _080AD644 @ =gTasks
mov r3, r8
lsls r1, r3, 2
b _080AD6EC
.align 2, 0
_080AD640: .4byte gMenuWindow
_080AD644: .4byte gTasks
_080AD648:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _080AD6B4 @ =0x02019260
adds r4, r0, r1
ldrb r1, [r4, 0x15]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080AD664
movs r0, 0x11
negs r0, r0
ands r0, r1
strb r0, [r4, 0x15]
_080AD664:
adds r0, r7, 0
bl sub_80B09B0
ldr r0, _080AD6B8 @ =gStringVar1
lsls r1, r7, 6
ldr r2, _080AD6BC @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r0, _080AD6C0 @ =gStringVar2
ldrh r2, [r4, 0x6]
movs r1, 0xD
muls r1, r2
ldr r2, _080AD6C4 @ =gMoveNames
adds r1, r2
bl StringCopy
ldr r4, _080AD6C8 @ =gStringVar4
ldr r1, _080AD6CC @ =gUnknown_083CBF60
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080AD6D0 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080AD6D4 @ =gTasks
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x22
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD6B4: .4byte 0x02019260
_080AD6B8: .4byte gStringVar1
_080AD6BC: .4byte gUnknown_02038572
_080AD6C0: .4byte gStringVar2
_080AD6C4: .4byte gMoveNames
_080AD6C8: .4byte gStringVar4
_080AD6CC: .4byte gUnknown_083CBF60
_080AD6D0: .4byte gMenuWindow
_080AD6D4: .4byte gTasks
_080AD6D8:
ldr r0, _080AD6F8 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
bne _080AD6E6
b _080AD8CA
_080AD6E6:
ldr r0, _080AD6FC @ =gTasks
mov r5, r8
lsls r1, r5, 2
_080AD6EC:
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x37
strh r0, [r1, 0x8]
b _080AD8CA
.align 2, 0
_080AD6F8: .4byte gMenuWindow
_080AD6FC: .4byte gTasks
_080AD700:
bl sub_80B1BDC
ldr r0, _080AD718 @ =gTasks
mov r2, r8
lsls r1, r2, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x38
strh r0, [r1, 0x8]
b _080AD8CA
.align 2, 0
_080AD718: .4byte gTasks
_080AD71C:
ldrb r1, [r6, 0x6]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _080AD72C
b _080AD8CA
_080AD72C:
movs r0, 0x13
ldrsb r0, [r6, r0]
cmp r0, 0x4
ble _080AD73A
strb r1, [r6, 0x13]
bl sub_80B1928
_080AD73A:
ldr r0, _080AD74C @ =gTasks
mov r3, r8
lsls r1, r3, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0xA
strh r0, [r1, 0x8]
b _080AD8CA
.align 2, 0
_080AD74C: .4byte gTasks
_080AD750:
mov r4, r8
lsls r2, r4, 2
add r2, r8
lsls r2, 3
add r2, r12
ldrb r5, [r2, 0xC]
ldr r1, _080AD774 @ =gSprites
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
adds r1, 0x1C
adds r0, r1
ldr r1, _080AD778 @ =sub_80AD92C
str r1, [r0]
movs r0, 0xB
strh r0, [r2, 0x8]
b _080AD8CA
.align 2, 0
_080AD774: .4byte gSprites
_080AD778: .4byte sub_80AD92C
_080AD77C:
mov r5, r8
lsls r0, r5, 2
add r0, r8
lsls r0, 3
mov r1, r12
adds r4, r0, r1
ldrb r5, [r4, 0xC]
ldr r1, _080AD7B4 @ =gSprites
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
adds r6, r0, r1
adds r0, r6, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _080AD7A2
b _080AD8CA
_080AD7A2:
adds r0, r6, 0
bl FreeSpriteOamMatrix
adds r0, r6, 0
bl DestroySprite
movs r0, 0x14
strh r0, [r4, 0x8]
b _080AD8CA
.align 2, 0
_080AD7B4: .4byte gSprites
_080AD7B8:
movs r6, 0
mov r2, r8
lsls r2, 2
mov r9, r2
_080AD7C0:
lsls r0, r6, 24
lsrs r0, 24
movs r1, 0x1
bl sub_80B0CDC
adds r6, 0x1
cmp r6, 0x3
ble _080AD7C0
ldr r1, _080AD7E4 @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x1C]
movs r1, 0x15
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD7E4: .4byte gTasks
_080AD7E8:
bl sub_80AF138
ldr r0, _080AD828 @ =gStringVar1
lsls r1, r7, 6
ldr r2, _080AD82C @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r4, _080AD830 @ =gStringVar4
ldr r1, _080AD834 @ =gUnknown_083CB00D
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080AD838 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080AD83C @ =gTasks
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x20
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
_080AD828: .4byte gStringVar1
_080AD82C: .4byte gUnknown_02038572
_080AD830: .4byte gStringVar4
_080AD834: .4byte gUnknown_083CB00D
_080AD838: .4byte gMenuWindow
_080AD83C: .4byte gTasks
_080AD840:
ldr r0, _080AD860 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
cmp r0, 0
beq _080AD8CA
ldr r0, _080AD864 @ =gTasks
mov r4, r8
lsls r1, r4, 2
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0x15
strh r0, [r1, 0x8]
b _080AD8CA
.align 2, 0
_080AD860: .4byte gMenuWindow
_080AD864: .4byte gTasks
_080AD868:
mov r5, r8
lsls r0, r5, 2
add r0, r8
lsls r0, 3
mov r2, r12
adds r1, r0, r2
ldrh r0, [r1, 0x1C]
adds r0, 0x1
strh r0, [r1, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1D
ble _080AD8CA
movs r0, 0
strh r0, [r1, 0x1C]
movs r0, 0x16
strh r0, [r1, 0x8]
b _080AD8CA
_080AD88C:
ldrb r0, [r6, 0x10]
adds r0, 0x1
movs r1, 0
strb r0, [r6, 0x10]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _080AD8B8
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r0, 3
add r0, r12
strh r1, [r0, 0x8]
strh r1, [r0, 0xA]
strh r1, [r0, 0xC]
ldr r1, _080AD8B4 @ =sub_80AD960
str r1, [r0]
b _080AD8C4
.align 2, 0
_080AD8B4: .4byte sub_80AD960
_080AD8B8:
mov r4, r8
lsls r0, r4, 2
add r0, r8
lsls r0, 3
add r0, r12
strh r1, [r0, 0x8]
_080AD8C4:
movs r0, 0
bl nullsub_18
_080AD8CA:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80AC2CC
thumb_func_start sub_80AD8DC
sub_80AD8DC: @ 80AD8DC
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r3, _080AD8F8 @ =0x02019204
ldrb r2, [r3, 0x7]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r3, 0x7]
bl DestroyTask
pop {r0}
bx r0
.align 2, 0
_080AD8F8: .4byte 0x02019204
thumb_func_end sub_80AD8DC
thumb_func_start sub_80AD8FC
sub_80AD8FC: @ 80AD8FC
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x24]
movs r3, 0x24
ldrsh r2, [r1, r3]
cmp r2, 0
beq _080AD910
subs r0, 0x2
strh r0, [r1, 0x24]
b _080AD924
_080AD910:
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1F
bne _080AD924
strh r2, [r1, 0x2E]
ldr r0, _080AD928 @ =SpriteCallbackDummy
str r0, [r1, 0x1C]
_080AD924:
pop {r0}
bx r0
.align 2, 0
_080AD928: .4byte SpriteCallbackDummy
thumb_func_end sub_80AD8FC
thumb_func_start sub_80AD92C
sub_80AD92C: @ 80AD92C
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x24]
subs r0, 0x6
strh r0, [r2, 0x24]
movs r1, 0x20
ldrsh r0, [r2, r1]
movs r3, 0x24
ldrsh r1, [r2, r3]
adds r0, r1
movs r1, 0x20
negs r1, r1
cmp r0, r1
bge _080AD956
ldr r0, _080AD95C @ =SpriteCallbackDummy
str r0, [r2, 0x1C]
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
_080AD956:
pop {r0}
bx r0
.align 2, 0
_080AD95C: .4byte SpriteCallbackDummy
thumb_func_end sub_80AD92C
thumb_func_start sub_80AD960
sub_80AD960: @ 80AD960
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080AD984 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r5, r1, r2
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _080AD9F2
cmp r0, 0x1
bgt _080AD988
cmp r0, 0
beq _080AD98E
b _080ADA10
.align 2, 0
_080AD984: .4byte gTasks
_080AD988:
cmp r0, 0x2
beq _080ADA08
b _080ADA10
_080AD98E:
ldr r0, _080AD9D8 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r6, 0x1
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _080AD9E8
ldr r2, _080AD9DC @ =0x02019204
ldrb r0, [r2, 0x7]
movs r1, 0x4
orrs r0, r1
strb r0, [r2, 0x7]
bl sub_80AE074
lsls r0, 24
cmp r0, 0
beq _080AD9B8
bl sub_80AF2FC
bl sub_80AF3C0
_080AD9B8:
ldr r4, _080AD9E0 @ =sub_80C8C80
adds r0, r4, 0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080AD9E4 @ =sub_80AD8DC
adds r1, r4, 0
bl SetTaskFuncWithFollowupFunc
bl sub_80AF860
strh r6, [r5, 0x8]
b _080ADA10
.align 2, 0
_080AD9D8: .4byte gUnknown_0203869A
_080AD9DC: .4byte 0x02019204
_080AD9E0: .4byte sub_80C8C80
_080AD9E4: .4byte sub_80AD8DC
_080AD9E8:
bl sub_80AF2FC
bl sub_80AF3C0
b _080AD9FE
_080AD9F2:
ldr r0, _080ADA04 @ =0x02019204
ldrb r1, [r0, 0x7]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _080ADA10
_080AD9FE:
movs r0, 0x2
strh r0, [r5, 0x8]
b _080ADA10
.align 2, 0
_080ADA04: .4byte 0x02019204
_080ADA08:
movs r0, 0
strh r0, [r5, 0x8]
ldr r0, _080ADA18 @ =sub_80ADA1C
str r0, [r5]
_080ADA10:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080ADA18: .4byte sub_80ADA1C
thumb_func_end sub_80AD960
thumb_func_start sub_80ADA1C
sub_80ADA1C: @ 80ADA1C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0
bl sub_80B1FD0
ldr r1, _080ADA44 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x8]
strh r1, [r0, 0xA]
ldr r1, _080ADA48 @ =sub_80ADA4C
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADA44: .4byte gTasks
_080ADA48: .4byte sub_80ADA4C
thumb_func_end sub_80ADA1C
thumb_func_start sub_80ADA4C
sub_80ADA4C: @ 80ADA4C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080ADA70 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
movs r0, 0x8
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _080ADA92
cmp r5, 0x1
bgt _080ADA74
cmp r5, 0
beq _080ADA7A
b _080ADACE
.align 2, 0
_080ADA70: .4byte gTasks
_080ADA74:
cmp r5, 0x2
beq _080ADAC0
b _080ADACE
_080ADA7A:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _080ADACE
movs r0, 0x2
bl sub_80B25E4
strh r5, [r4, 0xA]
b _080ADAB2
_080ADA92:
ldr r0, _080ADABC @ =0x02019204
ldrb r1, [r0, 0x7]
movs r0, 0x2
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080ADACE
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _080ADACE
strh r1, [r4, 0xA]
_080ADAB2:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080ADACE
.align 2, 0
_080ADABC: .4byte 0x02019204
_080ADAC0:
bl sub_80AFF10
movs r0, 0
strh r0, [r4, 0x8]
strh r0, [r4, 0xA]
ldr r0, _080ADAD4 @ =sub_80ADAD8
str r0, [r4]
_080ADACE:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080ADAD4: .4byte sub_80ADAD8
thumb_func_end sub_80ADA4C
thumb_func_start sub_80ADAD8
sub_80ADAD8: @ 80ADAD8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_80AFF28
lsls r0, 24
cmp r0, 0
beq _080ADAF6
ldr r0, _080ADAFC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080ADB00 @ =sub_80ADB04
str r0, [r1]
_080ADAF6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADAFC: .4byte gTasks
_080ADB00: .4byte sub_80ADB04
thumb_func_end sub_80ADAD8
thumb_func_start sub_80ADB04
sub_80ADB04: @ 80ADB04
lsls r0, 24
lsrs r0, 24
ldr r2, _080ADB30 @ =0x02018204
ldr r3, _080ADB34 @ =gPlttBufferUnfaded
ldr r1, _080ADB38 @ =0x040000d4
str r2, [r1]
str r3, [r1, 0x4]
ldr r2, _080ADB3C @ =0x84000100
str r2, [r1, 0x8]
ldr r1, [r1, 0x8]
ldr r2, _080ADB40 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0
strh r0, [r1, 0x8]
movs r0, 0x2
strh r0, [r1, 0xA]
ldr r0, _080ADB44 @ =sub_80ADB48
str r0, [r1]
bx lr
.align 2, 0
_080ADB30: .4byte 0x02018204
_080ADB34: .4byte gPlttBufferUnfaded
_080ADB38: .4byte 0x040000d4
_080ADB3C: .4byte 0x84000100
_080ADB40: .4byte gTasks
_080ADB44: .4byte sub_80ADB48
thumb_func_end sub_80ADB04
thumb_func_start sub_80ADB48
sub_80ADB48: @ 80ADB48
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080ADB80 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _080ADB7A
movs r0, 0
strh r0, [r1, 0x8]
ldrh r0, [r1, 0xA]
subs r0, 0x1
strh r0, [r1, 0xA]
lsls r0, 16
cmp r0, 0
bne _080ADB7A
ldr r0, _080ADB84 @ =sub_80ADB88
str r0, [r1]
_080ADB7A:
pop {r0}
bx r0
.align 2, 0
_080ADB80: .4byte gTasks
_080ADB84: .4byte sub_80ADB88
thumb_func_end sub_80ADB48
thumb_func_start sub_80ADB88
sub_80ADB88: @ 80ADB88
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r6, _080ADBEC @ =gUnknown_02038695
ldrb r1, [r6]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
ldr r1, _080ADBF0 @ =0x02019260
adds r0, r1
ldrb r4, [r0, 0x1A]
bl sub_80AF138
ldr r0, _080ADBF4 @ =gStringVar1
ldrb r1, [r6]
lsls r1, 6
ldr r2, _080ADBF8 @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r6, _080ADBFC @ =gStringVar4
ldr r0, _080ADC00 @ =gUnknown_083CB2F0
lsls r4, 2
adds r4, r0
ldr r1, [r4]
adds r0, r6, 0
bl StringExpandPlaceholders
ldr r0, _080ADC04 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r6, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080ADC08 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _080ADC0C @ =sub_80ADC10
str r1, [r0]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080ADBEC: .4byte gUnknown_02038695
_080ADBF0: .4byte 0x02019260
_080ADBF4: .4byte gStringVar1
_080ADBF8: .4byte gUnknown_02038572
_080ADBFC: .4byte gStringVar4
_080ADC00: .4byte gUnknown_083CB2F0
_080ADC04: .4byte gMenuWindow
_080ADC08: .4byte gTasks
_080ADC0C: .4byte sub_80ADC10
thumb_func_end sub_80ADB88
thumb_func_start sub_80ADC10
sub_80ADC10: @ 80ADC10
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080ADC40 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080ADC3A
ldr r1, _080ADC44 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x8]
ldr r1, _080ADC48 @ =sub_80ADC4C
str r1, [r0]
bl sub_80B0D7C
_080ADC3A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADC40: .4byte gMenuWindow
_080ADC44: .4byte gTasks
_080ADC48: .4byte sub_80ADC4C
thumb_func_end sub_80ADC10
thumb_func_start sub_80ADC4C
sub_80ADC4C: @ 80ADC4C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080ADC7C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x8]
adds r1, r0, 0x1
strh r1, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1D
ble _080ADC76
movs r0, 0
strh r0, [r4, 0x8]
bl sub_80AFF10
ldr r0, _080ADC80 @ =sub_80ADC84
str r0, [r4]
_080ADC76:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADC7C: .4byte gTasks
_080ADC80: .4byte sub_80ADC84
thumb_func_end sub_80ADC4C
thumb_func_start sub_80ADC84
sub_80ADC84: @ 80ADC84
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_80AFF28
lsls r0, 24
cmp r0, 0
beq _080ADCA6
ldr r1, _080ADCAC @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x8]
ldr r1, _080ADCB0 @ =sub_80ADCB4
str r1, [r0]
_080ADCA6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADCAC: .4byte gTasks
_080ADCB0: .4byte sub_80ADCB4
thumb_func_end sub_80ADC84
thumb_func_start sub_80ADCB4
sub_80ADCB4: @ 80ADCB4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_80B2184
ldr r1, _080ADCD4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080ADCD8 @ =sub_80B237C
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADCD4: .4byte gTasks
_080ADCD8: .4byte sub_80B237C
thumb_func_end sub_80ADCB4
thumb_func_start sub_80ADCDC
sub_80ADCDC: @ 80ADCDC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_80B2280
ldr r1, _080ADCFC @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080ADD00 @ =sub_80ADD04
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADCFC: .4byte gTasks
_080ADD00: .4byte sub_80ADD04
thumb_func_end sub_80ADCDC
thumb_func_start sub_80ADD04
sub_80ADD04: @ 80ADD04
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r3, _080ADD40 @ =REG_BG0CNT
ldrb r2, [r3]
movs r1, 0x4
negs r1, r1
adds r0, r1, 0
ands r0, r2
strb r0, [r3]
ldr r2, _080ADD44 @ =REG_BG2CNT
ldrb r0, [r2]
ands r1, r0
strb r1, [r2]
ldr r1, _080ADD48 @ =0x02019204
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _080ADD54
ldr r0, _080ADD4C @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080ADD50 @ =sub_80ADDA4
b _080ADD64
.align 2, 0
_080ADD40: .4byte REG_BG0CNT
_080ADD44: .4byte REG_BG2CNT
_080ADD48: .4byte 0x02019204
_080ADD4C: .4byte gTasks
_080ADD50: .4byte sub_80ADDA4
_080ADD54:
bl sub_80B1B14
ldr r0, _080ADD6C @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080ADD70 @ =sub_80ADD74
_080ADD64:
str r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADD6C: .4byte gTasks
_080ADD70: .4byte sub_80ADD74
thumb_func_end sub_80ADD04
thumb_func_start sub_80ADD74
sub_80ADD74: @ 80ADD74
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080ADD98 @ =0x02019204
ldrb r1, [r0, 0x6]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080ADD94
ldr r0, _080ADD9C @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, _080ADDA0 @ =sub_80ABB70
str r0, [r1]
_080ADD94:
pop {r0}
bx r0
.align 2, 0
_080ADD98: .4byte 0x02019204
_080ADD9C: .4byte gTasks
_080ADDA0: .4byte sub_80ABB70
thumb_func_end sub_80ADD74
thumb_func_start sub_80ADDA4
sub_80ADDA4: @ 80ADDA4
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080ADE24 @ =gUnknown_030042A0
movs r1, 0
strh r1, [r0]
ldr r0, _080ADE28 @ =gUnknown_03004280
strh r1, [r0]
ldr r3, _080ADE2C @ =0x02019260
ldr r2, _080ADE30 @ =gUnknown_02038680
movs r1, 0x3
_080ADDBC:
ldrh r0, [r3, 0x4]
strh r0, [r2]
adds r3, 0x1C
adds r2, 0x2
subs r1, 0x1
cmp r1, 0
bge _080ADDBC
movs r5, 0
bl sub_80AF668
bl sub_80AF138
ldr r0, _080ADE34 @ =gUnknown_02038695
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
ldr r1, _080ADE2C @ =0x02019260
adds r0, r1
ldrh r0, [r0, 0x8]
bl sub_80BE23C
ldr r1, _080ADE38 @ =gUnknown_03005D28
ldr r0, _080ADE3C @ =gRngValue
ldr r0, [r0]
str r0, [r1]
ldr r4, _080ADE40 @ =gStringVar4
ldr r1, _080ADE44 @ =gUnknown_083CB02C
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _080ADE48 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
ldr r1, _080ADE4C @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
strh r5, [r0, 0xC]
ldr r1, _080ADE50 @ =sub_80ADE54
str r1, [r0]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080ADE24: .4byte gUnknown_030042A0
_080ADE28: .4byte gUnknown_03004280
_080ADE2C: .4byte 0x02019260
_080ADE30: .4byte gUnknown_02038680
_080ADE34: .4byte gUnknown_02038695
_080ADE38: .4byte gUnknown_03005D28
_080ADE3C: .4byte gRngValue
_080ADE40: .4byte gStringVar4
_080ADE44: .4byte gUnknown_083CB02C
_080ADE48: .4byte gMenuWindow
_080ADE4C: .4byte gTasks
_080ADE50: .4byte sub_80ADE54
thumb_func_end sub_80ADDA4
thumb_func_start sub_80ADE54
sub_80ADE54: @ 80ADE54
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080ADE98 @ =gMenuWindow
bl sub_80037A0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080ADE92
bl sub_80B2184
ldr r1, _080ADE9C @ =gUnknown_030042C0
movs r0, 0
strh r0, [r1]
ldr r1, _080ADEA0 @ =gUnknown_030041B4
movs r0, 0xA0
strh r0, [r1]
movs r0, 0x62
movs r1, 0
bl PlaySE12WithPanning
ldr r1, _080ADEA4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x8]
ldr r1, _080ADEA8 @ =sub_80ADEAC
str r1, [r0]
_080ADE92:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADE98: .4byte gMenuWindow
_080ADE9C: .4byte gUnknown_030042C0
_080ADEA0: .4byte gUnknown_030041B4
_080ADEA4: .4byte gTasks
_080ADEA8: .4byte sub_80ADEAC
thumb_func_end sub_80ADE54
thumb_func_start sub_80ADEAC
sub_80ADEAC: @ 80ADEAC
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _080ADEE0 @ =gUnknown_030041B4
ldrh r0, [r1]
subs r0, 0x7
strh r0, [r1]
lsls r0, 16
cmp r0, 0
bge _080ADEC4
movs r0, 0
strh r0, [r1]
_080ADEC4:
ldrh r2, [r1]
cmp r2, 0
bne _080ADEDA
ldr r0, _080ADEE4 @ =gTasks
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
ldr r0, _080ADEE8 @ =sub_80ADEEC
str r0, [r1]
strh r2, [r1, 0x8]
_080ADEDA:
pop {r0}
bx r0
.align 2, 0
_080ADEE0: .4byte gUnknown_030041B4
_080ADEE4: .4byte gTasks
_080ADEE8: .4byte sub_80ADEEC
thumb_func_end sub_80ADEAC
thumb_func_start sub_80ADEEC
sub_80ADEEC: @ 80ADEEC
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
ldr r2, _080ADF20 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x8]
adds r1, r0, 0x1
strh r1, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x31
ble _080ADF40
movs r0, 0
strh r0, [r4, 0x8]
ldr r0, _080ADF24 @ =gUnknown_0203869A
ldrb r0, [r0]
movs r1, 0x1
ands r1, r0
cmp r1, 0
beq _080ADF2C
ldr r0, _080ADF28 @ =sub_80ADF4C
b _080ADF3E
.align 2, 0
_080ADF20: .4byte gTasks
_080ADF24: .4byte gUnknown_0203869A
_080ADF28: .4byte sub_80ADF4C
_080ADF2C:
movs r0, 0x1
negs r0, r0
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _080ADF48 @ =sub_80ADFD8
_080ADF3E:
str r0, [r4]
_080ADF40:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080ADF48: .4byte sub_80ADFD8
thumb_func_end sub_80ADEEC
thumb_func_start sub_80ADF4C
sub_80ADF4C: @ 80ADF4C
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _080ADF88 @ =sub_80C8AD0
adds r0, r5, 0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080ADF8C @ =sub_80ADF98
adds r1, r5, 0
bl SetTaskFuncWithFollowupFunc
ldr r1, _080ADF90 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080ADF94 @ =nullsub_89
str r1, [r0]
bl sub_80AF860
movs r0, 0
bl sub_80AFFE0
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080ADF88: .4byte sub_80C8AD0
_080ADF8C: .4byte sub_80ADF98
_080ADF90: .4byte gTasks
_080ADF94: .4byte nullsub_89
thumb_func_end sub_80ADF4C
thumb_func_start sub_80ADF98
sub_80ADF98: @ 80ADF98
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
bl DestroyTask
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r2, _080ADFCC @ =gTasks
ldr r0, _080ADFD0 @ =0x02019204
ldrb r1, [r0, 0x8]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, _080ADFD4 @ =sub_80ADFD8
str r1, [r0]
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080ADFCC: .4byte gTasks
_080ADFD0: .4byte 0x02019204
_080ADFD4: .4byte sub_80ADFD8
thumb_func_end sub_80ADF98
thumb_func_start sub_80ADFD8
sub_80ADFD8: @ 80ADFD8
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080AE000 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080ADFFC
adds r0, r2, 0
bl DestroyTask
ldr r0, _080AE004 @ =gUnknown_0300485C
ldr r1, _080AE008 @ =sub_80AE010
str r1, [r0]
ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch
bl SetMainCallback2
_080ADFFC:
pop {r0}
bx r0
.align 2, 0
_080AE000: .4byte gPaletteFade
_080AE004: .4byte gUnknown_0300485C
_080AE008: .4byte sub_80AE010
_080AE00C: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80ADFD8
thumb_func_start sub_80AE010
sub_80AE010: @ 80AE010
push {lr}
bl ScriptContext2_Disable
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_80AE010
thumb_func_start sub_80AE020
sub_80AE020: @ 80AE020
push {r4,lr}
adds r4, r0, 0
b _080AE028
_080AE026:
adds r4, 0x1
_080AE028:
ldrb r0, [r4]
cmp r0, 0xFF
beq _080AE04C
cmp r0, 0xFC
bne _080AE026
ldrb r0, [r4, 0x1]
cmp r0, 0
bne _080AE026
adds r0, r4, 0
movs r2, 0
movs r3, 0x1
bl ConvertIntToDecimalStringN
movs r1, 0xFF
strb r1, [r0]
adds r1, r4, 0x2
bl StringAppend
_080AE04C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AE020
thumb_func_start sub_80AE054
sub_80AE054: @ 80AE054
push {lr}
ldr r0, _080AE06C @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080AE068
ldr r1, _080AE070 @ =gUnknown_02038695
movs r0, 0x3
strb r0, [r1]
_080AE068:
pop {r0}
bx r0
.align 2, 0
_080AE06C: .4byte gUnknown_0203869A
_080AE070: .4byte gUnknown_02038695
thumb_func_end sub_80AE054
thumb_func_start sub_80AE074
sub_80AE074: @ 80AE074
push {lr}
ldr r0, _080AE088 @ =gUnknown_02038695
ldr r1, _080AE08C @ =gUnknown_0203869B
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
beq _080AE090
movs r0, 0
b _080AE092
.align 2, 0
_080AE088: .4byte gUnknown_02038695
_080AE08C: .4byte gUnknown_0203869B
_080AE090:
movs r0, 0x1
_080AE092:
pop {r1}
bx r1
thumb_func_end sub_80AE074
thumb_func_start sub_80AE098
sub_80AE098: @ 80AE098
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
lsls r0, 24
lsrs r7, r0, 24
ldr r6, _080AE0F0 @ =gSaveBlock2
mov r0, sp
adds r1, r6, 0
bl StringCopy
mov r0, sp
bl StripExtCtrlCodes
ldr r0, _080AE0F4 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AE0CE
mov r0, sp
ldrb r2, [r0, 0x5]
mov r1, sp
movs r0, 0xFF
strb r0, [r1, 0x5]
mov r0, sp
strb r2, [r0, 0x7]
_080AE0CE:
ldr r5, _080AE0F8 @ =gUnknown_02038695
ldrb r0, [r5]
lsls r0, 6
ldr r4, _080AE0FC @ =gUnknown_0203857D
adds r0, r4
mov r1, sp
movs r2, 0x8
bl memcpy
ldrb r0, [r6, 0x8]
cmp r0, 0
bne _080AE100
ldrb r0, [r5]
lsls r0, 6
adds r0, r4, r0
movs r1, 0xD8
b _080AE108
.align 2, 0
_080AE0F0: .4byte gSaveBlock2
_080AE0F4: .4byte gUnknown_0203869A
_080AE0F8: .4byte gUnknown_02038695
_080AE0FC: .4byte gUnknown_0203857D
_080AE100:
ldrb r0, [r5]
lsls r0, 6
adds r0, r4, r0
movs r1, 0xD9
_080AE108:
strb r1, [r0, 0x8]
ldr r5, _080AE17C @ =gUnknown_02038570
ldr r4, _080AE180 @ =gUnknown_02038695
ldrb r0, [r4]
lsls r0, 6
adds r1, r5, 0
adds r1, 0x18
adds r0, r1
movs r1, 0
str r1, [r0]
ldrb r0, [r4]
lsls r0, 6
adds r0, r5
adds r0, 0x2C
strb r1, [r0]
movs r0, 0x64
adds r1, r7, 0
muls r1, r0
ldr r0, _080AE184 @ =gPlayerParty
adds r6, r1, r0
adds r0, r6, 0
movs r1, 0xB
bl GetMonData
ldrb r1, [r4]
lsls r1, 6
adds r1, r5
strh r0, [r1]
adds r0, r6, 0
movs r1, 0x2
mov r2, sp
bl GetMonData
mov r0, sp
bl StringGetEnd10
ldr r0, _080AE188 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AE19A
mov r0, sp
bl StripExtCtrlCodes
adds r0, r6, 0
movs r1, 0x3
bl GetMonData
cmp r0, 0x1
bne _080AE18C
mov r1, sp
movs r0, 0xFF
strb r0, [r1, 0x5]
movs r0, 0xFC
strb r0, [r1, 0xA]
b _080AE19A
.align 2, 0
_080AE17C: .4byte gUnknown_02038570
_080AE180: .4byte gUnknown_02038695
_080AE184: .4byte gPlayerParty
_080AE188: .4byte gUnknown_0203869A
_080AE18C:
mov r0, sp
ldrb r2, [r0, 0x5]
mov r1, sp
movs r0, 0xFF
strb r0, [r1, 0x5]
mov r0, sp
strb r2, [r0, 0xA]
_080AE19A:
ldr r5, _080AE2C4 @ =gUnknown_02038695
ldrb r0, [r5]
lsls r0, 6
ldr r1, _080AE2C8 @ =gUnknown_02038572
mov r8, r1
add r0, r8
mov r1, sp
movs r2, 0xB
bl memcpy
movs r0, 0x64
adds r4, r7, 0
muls r4, r0
ldr r0, _080AE2CC @ =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x16
bl GetMonData
mov r6, r8
subs r6, 0x2
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
adds r1, 0x26
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x17
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
adds r1, 0x27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x18
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
adds r1, 0x28
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x21
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
adds r1, 0x29
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2F
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
adds r1, 0x2A
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x30
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
adds r1, 0x2B
strb r0, [r1]
adds r0, r4, 0
movs r1, 0xD
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x1E]
adds r0, r4, 0
movs r1, 0xE
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x20]
adds r0, r4, 0
movs r1, 0xF
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x22]
adds r0, r4, 0
movs r1, 0x10
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x24]
adds r0, r4, 0
movs r1, 0
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
mov r2, r8
adds r2, 0x36
adds r1, r2
str r0, [r1]
adds r0, r4, 0
movs r1, 0x1
bl GetMonData
ldrb r1, [r5]
lsls r1, 6
movs r2, 0x3A
add r8, r2
add r1, r8
str r0, [r1]
adds r0, r4, 0
movs r1, 0xC
bl GetMonData
lsls r0, 16
lsrs r2, r0, 16
mov r8, r2
ldrb r0, [r5]
lsls r0, 6
adds r1, r0, r6
adds r0, r1, 0
adds r0, 0x26
ldrb r3, [r0]
adds r0, 0x1
ldrb r4, [r0]
adds r0, 0x1
ldrb r5, [r0]
adds r0, 0x1
ldrb r6, [r0]
adds r0, 0x1
ldrb r7, [r0]
cmp r2, 0xFE
bne _080AE2D0
adds r3, 0x14
b _080AE31E
.align 2, 0
_080AE2C4: .4byte gUnknown_02038695
_080AE2C8: .4byte gUnknown_02038572
_080AE2CC: .4byte gPlayerParty
_080AE2D0:
cmp r2, 0xFF
bne _080AE2E0
lsls r0, r4, 16
movs r1, 0xA0
lsls r1, 13
adds r0, r1
lsrs r4, r0, 16
b _080AE31E
_080AE2E0:
movs r0, 0x80
lsls r0, 1
cmp r2, r0
bne _080AE2F4
lsls r0, r5, 16
movs r2, 0xA0
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
b _080AE31E
_080AE2F4:
ldr r0, _080AE308 @ =0x00000101
cmp r2, r0
bne _080AE30C
lsls r0, r6, 16
movs r1, 0xA0
lsls r1, 13
adds r0, r1
lsrs r6, r0, 16
b _080AE31E
.align 2, 0
_080AE308: .4byte 0x00000101
_080AE30C:
movs r0, 0x81
lsls r0, 1
cmp r8, r0
bne _080AE31E
lsls r0, r7, 16
movs r2, 0xA0
lsls r2, 13
adds r0, r2
lsrs r7, r0, 16
_080AE31E:
cmp r3, 0xFF
ble _080AE324
movs r3, 0xFF
_080AE324:
lsls r0, r4, 16
asrs r0, 16
cmp r0, 0xFF
ble _080AE32E
movs r4, 0xFF
_080AE32E:
lsls r0, r5, 16
asrs r0, 16
cmp r0, 0xFF
ble _080AE338
movs r5, 0xFF
_080AE338:
lsls r0, r6, 16
asrs r0, 16
cmp r0, 0xFF
ble _080AE342
movs r6, 0xFF
_080AE342:
lsls r0, r7, 16
asrs r0, 16
cmp r0, 0xFF
ble _080AE34C
movs r7, 0xFF
_080AE34C:
ldr r2, _080AE390 @ =gUnknown_02038570
ldr r1, _080AE394 @ =gUnknown_02038695
ldrb r0, [r1]
lsls r0, 6
adds r0, r2
adds r0, 0x26
strb r3, [r0]
ldrb r0, [r1]
lsls r0, 6
adds r0, r2
adds r0, 0x27
strb r4, [r0]
ldrb r0, [r1]
lsls r0, 6
adds r0, r2
adds r0, 0x28
strb r5, [r0]
ldrb r0, [r1]
lsls r0, 6
adds r0, r2
adds r0, 0x29
strb r6, [r0]
ldrb r0, [r1]
lsls r0, 6
adds r0, r2
adds r0, 0x2A
strb r7, [r0]
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AE390: .4byte gUnknown_02038570
_080AE394: .4byte gUnknown_02038695
thumb_func_end sub_80AE098
thumb_func_start sub_80AE398
sub_80AE398: @ 80AE398
push {r4-r7,lr}
sub sp, 0x40
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r7, r1, 24
movs r6, 0
bl sub_80AE054
movs r5, 0
ldr r2, _080AE470 @ =gUnknown_083C9408
_080AE3AE:
ldrb r1, [r2, 0x1C]
lsls r0, r1, 30
lsrs r0, 30
cmp r7, r0
bne _080AE3FE
cmp r4, 0
bne _080AE3C2
lsls r0, r1, 29
cmp r0, 0
blt _080AE3F2
_080AE3C2:
cmp r4, 0x1
bne _080AE3CE
ldrb r0, [r2, 0x1C]
lsls r0, 28
cmp r0, 0
blt _080AE3F2
_080AE3CE:
cmp r4, 0x2
bne _080AE3DA
ldrb r0, [r2, 0x1C]
lsls r0, 27
cmp r0, 0
blt _080AE3F2
_080AE3DA:
cmp r4, 0x3
bne _080AE3E6
ldrb r0, [r2, 0x1C]
lsls r0, 26
cmp r0, 0
blt _080AE3F2
_080AE3E6:
cmp r4, 0x4
bne _080AE3FE
ldrb r0, [r2, 0x1C]
lsls r0, 25
cmp r0, 0
bge _080AE3FE
_080AE3F2:
adds r0, r6, 0
adds r1, r0, 0x1
lsls r1, 24
lsrs r6, r1, 24
add r0, sp
strb r5, [r0]
_080AE3FE:
adds r2, 0x40
adds r5, 0x1
cmp r5, 0x3B
ble _080AE3AE
mov r0, sp
adds r1, r0, r6
movs r0, 0xFF
strb r0, [r1]
movs r5, 0
ldr r7, _080AE470 @ =gUnknown_083C9408
_080AE412:
bl Random
lsls r0, 16
lsrs r0, 16
adds r1, r6, 0
bl __modsi3
lsls r0, 16
lsrs r0, 16
ldr r1, _080AE474 @ =gUnknown_02038570
lsls r2, r5, 6
adds r2, r1
mov r1, sp
adds r4, r1, r0
ldrb r1, [r4]
lsls r1, 6
adds r1, r7
adds r0, r2, 0
movs r2, 0x40
bl memcpy
ldrb r0, [r4]
adds r2, r5, 0x1
subs r1, r6, 0x1
cmp r0, 0xFF
beq _080AE454
adds r3, r4, 0
_080AE448:
ldrb r0, [r3, 0x1]
strb r0, [r3]
adds r3, 0x1
ldrb r0, [r3]
cmp r0, 0xFF
bne _080AE448
_080AE454:
lsls r0, r1, 24
lsrs r6, r0, 24
adds r5, r2, 0
cmp r5, 0x2
ble _080AE412
ldr r0, _080AE478 @ =gUnknown_02038694
ldrb r0, [r0]
bl sub_80AE098
add sp, 0x40
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AE470: .4byte gUnknown_083C9408
_080AE474: .4byte gUnknown_02038570
_080AE478: .4byte gUnknown_02038694
thumb_func_end sub_80AE398
thumb_func_start sub_80AE47C
sub_80AE47C: @ 80AE47C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2D
bl GetMonData
cmp r0, 0
beq _080AE48E
movs r0, 0x3
b _080AE50A
_080AE48E:
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
bne _080AE49E
movs r0, 0x4
b _080AE50A
_080AE49E:
ldr r0, _080AE4B0 @ =gUnknown_0203869C
ldrh r0, [r0]
cmp r0, 0x4
bhi _080AE4F2
lsls r0, 2
ldr r1, _080AE4B4 @ =_080AE4B8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AE4B0: .4byte gUnknown_0203869C
_080AE4B4: .4byte _080AE4B8
.align 2, 0
_080AE4B8:
.4byte _080AE4CC
.4byte _080AE4D2
.4byte _080AE4D8
.4byte _080AE4DE
.4byte _080AE4E4
_080AE4CC:
adds r0, r4, 0
movs r1, 0x32
b _080AE4E8
_080AE4D2:
adds r0, r4, 0
movs r1, 0x33
b _080AE4E8
_080AE4D8:
adds r0, r4, 0
movs r1, 0x34
b _080AE4E8
_080AE4DE:
adds r0, r4, 0
movs r1, 0x35
b _080AE4E8
_080AE4E4:
adds r0, r4, 0
movs r1, 0x36
_080AE4E8:
bl GetMonData
lsls r0, 24
lsrs r1, r0, 24
b _080AE4F6
_080AE4F2:
movs r0, 0
b _080AE50A
_080AE4F6:
ldr r0, _080AE510 @ =gUnknown_0203869E
adds r2, r1, 0
ldrh r1, [r0]
movs r0, 0x2
cmp r2, r1
bhi _080AE50A
movs r0, 0
cmp r2, r1
bcc _080AE50A
movs r0, 0x1
_080AE50A:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080AE510: .4byte gUnknown_0203869E
thumb_func_end sub_80AE47C
thumb_func_start sub_80AE514
sub_80AE514: @ 80AE514
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
movs r5, 0
ldr r7, _080AE588 @ =gUnknown_083CA308
adds r0, r7, 0x1
mov r9, r0
ldr r6, _080AE58C @ =gUnknown_083CA310
adds r3, r6, 0x1
mov r8, r3
_080AE52C:
ldr r4, _080AE590 @ =gUnknown_02038696
adds r4, r5, r4
ldrb r0, [r4]
lsls r0, 1
adds r1, r0, r7
ldrb r2, [r1]
mov r3, r9
adds r1, r0, r3
ldrb r3, [r1]
adds r0, r6
ldrb r0, [r0]
adds r0, 0x5
lsls r0, 24
lsrs r0, 24
str r0, [sp]
ldrb r0, [r4]
lsls r0, 1
add r0, r8
ldrb r0, [r0]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
ldr r0, _080AE594 @ =gUnknown_03004210
movs r1, 0
bl FillWindowRect_DefaultPalette
adds r0, r5, 0
bl sub_80AE5BC
adds r0, r5, 0
bl sub_80AE6CC
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _080AE52C
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AE588: .4byte gUnknown_083CA308
_080AE58C: .4byte gUnknown_083CA310
_080AE590: .4byte gUnknown_02038696
_080AE594: .4byte gUnknown_03004210
thumb_func_end sub_80AE514
thumb_func_start sub_80AE598
sub_80AE598: @ 80AE598
push {r4,r5,lr}
adds r5, r1, 0
lsls r4, r2, 24
lsrs r4, 24
ldr r1, _080AE5B8 @ =gUnknown_083CC59C
bl StringCopy
strb r4, [r0]
adds r0, 0x1
adds r1, r5, 0
bl StringCopy
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080AE5B8: .4byte gUnknown_083CC59C
thumb_func_end sub_80AE598
thumb_func_start sub_80AE5BC
sub_80AE5BC: @ 80AE5BC
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r0, r1, 24
movs r2, 0xA0
lsls r2, 20
adds r1, r2
lsrs r1, 24
bl sub_80AE5D4
pop {r0}
bx r0
thumb_func_end sub_80AE5BC
thumb_func_start sub_80AE5D4
sub_80AE5D4: @ 80AE5D4
push {r4-r7,lr}
sub sp, 0x8
adds r2, r1, 0
lsls r0, 24
lsrs r4, r0, 24
lsls r2, 24
lsrs r2, 24
ldr r3, _080AE660 @ =gUnknown_020238CC
ldr r1, _080AE664 @ =gEmptyString_81E72B0
adds r0, r3, 0
bl sub_80AE598
adds r3, r0, 0
movs r0, 0xFC
strb r0, [r3]
movs r0, 0x6
strb r0, [r3, 0x1]
movs r0, 0x4
strb r0, [r3, 0x2]
adds r3, 0x3
movs r0, 0xBA
strb r0, [r3]
adds r3, 0x1
ldr r0, _080AE668 @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AE67C
ldr r1, _080AE66C @ =gLinkPlayers
lsls r0, r4, 3
subs r0, r4
lsls r2, r0, 2
adds r0, r2, r1
ldrh r6, [r0, 0x1A]
cmp r6, 0x1
bne _080AE67C
adds r1, 0x8
adds r1, r2, r1
adds r0, r3, 0
bl StringCopy
ldr r0, _080AE670 @ =gUnknown_03004210
ldr r1, _080AE660 @ =gUnknown_020238CC
ldr r2, _080AE674 @ =gUnknown_02038696
adds r2, r4, r2
ldrb r4, [r2]
movs r2, 0x16
muls r2, r4
movs r3, 0x94
lsls r3, 2
adds r2, r3
ldr r5, _080AE678 @ =gUnknown_083CA310
lsls r4, 1
adds r3, r4, r5
ldrb r3, [r3]
lsls r3, 27
movs r7, 0xFB
lsls r7, 24
adds r3, r7
lsrs r3, 24
adds r5, 0x1
adds r4, r5
ldrb r4, [r4]
lsls r4, 3
str r4, [sp]
str r6, [sp, 0x4]
bl sub_8004D04
b _080AE6B0
.align 2, 0
_080AE660: .4byte gUnknown_020238CC
_080AE664: .4byte gEmptyString_81E72B0
_080AE668: .4byte gUnknown_0203869A
_080AE66C: .4byte gLinkPlayers
_080AE670: .4byte gUnknown_03004210
_080AE674: .4byte gUnknown_02038696
_080AE678: .4byte gUnknown_083CA310
_080AE67C:
lsls r1, r4, 6
ldr r0, _080AE6B8 @ =gUnknown_0203857D
adds r1, r0
adds r0, r3, 0
bl StringCopy
ldr r0, _080AE6BC @ =gUnknown_03004210
ldr r1, _080AE6C0 @ =gUnknown_020238CC
ldr r2, _080AE6C4 @ =gUnknown_02038696
adds r2, r4, r2
ldrb r4, [r2]
movs r2, 0x16
muls r2, r4
movs r3, 0x94
lsls r3, 2
adds r2, r3
ldr r5, _080AE6C8 @ =gUnknown_083CA310
lsls r4, 1
adds r3, r4, r5
ldrb r3, [r3]
adds r5, 0x1
adds r4, r5
ldrb r4, [r4]
str r4, [sp]
bl sub_8003460
_080AE6B0:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AE6B8: .4byte gUnknown_0203857D
_080AE6BC: .4byte gUnknown_03004210
_080AE6C0: .4byte gUnknown_020238CC
_080AE6C4: .4byte gUnknown_02038696
_080AE6C8: .4byte gUnknown_083CA310
thumb_func_end sub_80AE5D4
thumb_func_start sub_80AE6CC
sub_80AE6CC: @ 80AE6CC
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r0, r1, 24
movs r2, 0xA0
lsls r2, 20
adds r1, r2
lsrs r1, 24
bl sub_80AE6E4
pop {r0}
bx r0
thumb_func_end sub_80AE6CC
thumb_func_start sub_80AE6E4
sub_80AE6E4: @ 80AE6E4
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
adds r2, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r2, 24
lsrs r2, 24
ldr r3, _080AE75C @ =gUnknown_020238CC
movs r0, 0xFC
strb r0, [r3]
movs r0, 0x6
strb r0, [r3, 0x1]
movs r0, 0x4
strb r0, [r3, 0x2]
adds r3, 0x3
lsls r1, r4, 6
ldr r0, _080AE760 @ =gUnknown_02038572
adds r1, r0
adds r0, r3, 0
bl sub_80AE598
adds r3, r0, 0
movs r0, 0xFF
strb r0, [r3]
ldr r0, _080AE764 @ =gUnknown_03004210
ldr r1, _080AE75C @ =gUnknown_020238CC
ldr r2, _080AE768 @ =gUnknown_02038696
adds r4, r2
ldrb r4, [r4]
lsls r2, r4, 2
adds r2, r4
lsls r2, 18
movs r3, 0x80
lsls r3, 18
adds r2, r3
lsrs r2, 16
ldr r5, _080AE76C @ =gUnknown_083CA308
lsls r4, 1
adds r3, r4, r5
ldrb r3, [r3]
lsls r3, 27
movs r6, 0xFD
lsls r6, 24
adds r3, r6
lsrs r3, 24
adds r5, 0x1
adds r4, r5
ldrb r4, [r4]
lsls r4, 3
str r4, [sp]
movs r4, 0x1
str r4, [sp, 0x4]
bl sub_8004D04
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080AE75C: .4byte gUnknown_020238CC
_080AE760: .4byte gUnknown_02038572
_080AE764: .4byte gUnknown_03004210
_080AE768: .4byte gUnknown_02038696
_080AE76C: .4byte gUnknown_083CA308
thumb_func_end sub_80AE6E4
thumb_func_start sub_80AE770
sub_80AE770: @ 80AE770
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r0, r1, 24
cmp r0, 0x4
bhi _080AE7FC
lsls r0, 2
ldr r1, _080AE788 @ =_080AE78C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AE788: .4byte _080AE78C
.align 2, 0
_080AE78C:
.4byte _080AE7A0
.4byte _080AE7B8
.4byte _080AE7D0
.4byte _080AE7E0
.4byte _080AE7FC
_080AE7A0:
ldr r0, _080AE7B4 @ =gUnknown_02038570
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
adds r3, 0x26
ldrb r5, [r3]
adds r3, 0x4
ldrb r4, [r3]
adds r1, 0x27
b _080AE80E
.align 2, 0
_080AE7B4: .4byte gUnknown_02038570
_080AE7B8:
ldr r0, _080AE7CC @ =gUnknown_02038570
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
adds r3, 0x27
ldrb r5, [r3]
subs r3, 0x1
ldrb r4, [r3]
adds r1, 0x28
b _080AE80E
.align 2, 0
_080AE7CC: .4byte gUnknown_02038570
_080AE7D0:
ldr r1, _080AE7DC @ =gUnknown_02038570
lsls r2, 6
adds r3, r2, r1
adds r0, r3, 0
adds r0, 0x28
b _080AE7EA
.align 2, 0
_080AE7DC: .4byte gUnknown_02038570
_080AE7E0:
ldr r1, _080AE7F8 @ =gUnknown_02038570
lsls r2, 6
adds r3, r2, r1
adds r0, r3, 0
adds r0, 0x29
_080AE7EA:
ldrb r5, [r0]
subs r0, 0x1
ldrb r4, [r0]
adds r0, 0x2
ldrb r3, [r0]
adds r0, r1, 0
b _080AE810
.align 2, 0
_080AE7F8: .4byte gUnknown_02038570
_080AE7FC:
ldr r0, _080AE828 @ =gUnknown_02038570
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
adds r3, 0x2A
ldrb r5, [r3]
subs r3, 0x1
ldrb r4, [r3]
adds r1, 0x26
_080AE80E:
ldrb r3, [r1]
_080AE810:
adds r1, r2, r0
adds r1, 0x2B
adds r0, r4, r3
ldrb r1, [r1]
adds r0, r1
asrs r0, 1
adds r0, r5, r0
lsls r0, 16
lsrs r0, 16
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080AE828: .4byte gUnknown_02038570
thumb_func_end sub_80AE770
thumb_func_start sub_80AE82C
sub_80AE82C: @ 80AE82C
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r6, _080AE854 @ =gUnknown_02038670
_080AE836:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80AE770
lsls r1, r4, 1
adds r1, r6
strh r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AE836
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080AE854: .4byte gUnknown_02038670
thumb_func_end sub_80AE82C
thumb_func_start sub_80AE858
sub_80AE858: @ 80AE858
push {r4,r5,lr}
ldr r0, _080AE8A0 @ =gUnknown_083CA4BC
bl LoadCompressedObjectPic
ldr r0, _080AE8A4 @ =gContest2Pal
movs r1, 0x88
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
ldr r0, _080AE8A8 @ =gSpriteTemplate_83CA4A4
movs r1, 0x70
movs r2, 0x24
movs r3, 0x1E
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r4, _080AE8AC @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r5, r2, r4
ldrb r3, [r5, 0x5]
movs r1, 0xF
ands r1, r3
movs r3, 0x10
orrs r1, r3
strb r1, [r5, 0x5]
adds r4, 0x1C
adds r2, r4
ldr r1, _080AE8B0 @ =SpriteCallbackDummy
str r1, [r2]
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080AE8A0: .4byte gUnknown_083CA4BC
_080AE8A4: .4byte gContest2Pal
_080AE8A8: .4byte gSpriteTemplate_83CA4A4
_080AE8AC: .4byte gSprites
_080AE8B0: .4byte SpriteCallbackDummy
thumb_func_end sub_80AE858
thumb_func_start sub_80AE8B4
sub_80AE8B4: @ 80AE8B4
push {lr}
ldr r0, _080AE8F8 @ =gUnknown_083CA4C4
bl LoadCompressedObjectPic
ldr r0, _080AE8FC @ =gUnknown_083CA4CC
bl LoadCompressedObjectPalette
ldr r0, _080AE900 @ =gUnknown_083CA4D4
movs r1, 0x60
movs r2, 0xA
movs r3, 0x1D
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _080AE904 @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r1
movs r1, 0x3E
adds r1, r2
mov r12, r1
ldrb r1, [r1]
movs r3, 0x4
orrs r1, r3
mov r3, r12
strb r1, [r3]
ldrh r1, [r2, 0x4]
lsls r1, 22
lsrs r1, 22
strh r1, [r2, 0x2E]
pop {r1}
bx r1
.align 2, 0
_080AE8F8: .4byte gUnknown_083CA4C4
_080AE8FC: .4byte gUnknown_083CA4CC
_080AE900: .4byte gUnknown_083CA4D4
_080AE904: .4byte gSprites
thumb_func_end sub_80AE8B4
thumb_func_start unref_sub_80AE908
unref_sub_80AE908: @ 80AE908
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x8
ldr r0, _080AE9D4 @ =gUnknown_02038570
mov r9, r0
ldr r1, _080AE9D8 @ =gUnknown_02038695
mov r8, r1
ldrb r0, [r1]
lsls r0, 6
add r0, r9
ldrh r5, [r0]
lsls r6, r5, 3
ldr r0, _080AE9DC @ =gMonFrontPicTable
adds r0, r6, r0
ldr r2, _080AE9E0 @ =gMonFrontPicCoords
mov r10, r2
lsls r2, r5, 2
add r2, r10
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _080AE9E4 @ =gUnknown_081FAF4C
ldr r4, [r4, 0x4]
str r4, [sp]
str r5, [sp, 0x4]
bl DecompressPicFromTable_2
ldr r0, _080AE9E8 @ =gMonPaletteTable
adds r6, r0
ldr r0, [r6]
movs r1, 0x88
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
mov r1, r8
ldrb r0, [r1]
lsls r0, 6
add r0, r9
ldrh r0, [r0]
movs r1, 0x1
bl GetMonSpriteTemplate_803C56C
ldr r0, _080AE9EC @ =gUnknown_02024E8C
mov r2, r8
ldrb r1, [r2]
lsls r1, 6
add r1, r9
ldrh r1, [r1]
lsls r1, 2
add r1, r10
ldrb r1, [r1]
movs r2, 0x8
subs r2, r1
lsls r2, 18
movs r1, 0xA0
lsls r1, 15
adds r2, r1
asrs r2, 16
movs r1, 0x70
movs r3, 0x1E
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _080AE9F0 @ =gSprites
lsls r3, r4, 4
adds r3, r4
lsls r3, 2
adds r0, r3, r5
ldrb r2, [r0, 0x5]
movs r1, 0xF
ands r1, r2
movs r2, 0x10
orrs r1, r2
strb r1, [r0, 0x5]
adds r1, r5, 0
adds r1, 0x1C
adds r1, r3, r1
ldr r2, _080AE9F4 @ =SpriteCallbackDummy
str r2, [r1]
adds r5, 0x10
adds r3, r5
ldr r1, _080AE9F8 @ =gSpriteAffineAnimTable_81E7C18
str r1, [r3]
movs r1, 0
bl StartSpriteAffineAnim
adds r0, r4, 0
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080AE9D4: .4byte gUnknown_02038570
_080AE9D8: .4byte gUnknown_02038695
_080AE9DC: .4byte gMonFrontPicTable
_080AE9E0: .4byte gMonFrontPicCoords
_080AE9E4: .4byte gUnknown_081FAF4C
_080AE9E8: .4byte gMonPaletteTable
_080AE9EC: .4byte gUnknown_02024E8C
_080AE9F0: .4byte gSprites
_080AE9F4: .4byte SpriteCallbackDummy
_080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18
thumb_func_end unref_sub_80AE908
thumb_func_start sub_80AE9FC
sub_80AE9FC: @ 80AE9FC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xC
mov r8, r1
adds r6, r2, 0
lsls r0, 16
lsrs r0, 16
bl sub_80B2778
mov r9, r0
mov r5, r9
lsls r0, r5, 3
ldr r1, _080AEACC @ =gMonBackPicTable
adds r0, r1
ldr r1, _080AEAD0 @ =gMonBackPicCoords
lsls r2, r5, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _080AEAD4 @ =gUnknown_081FAF4C
ldr r4, [r4]
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
bl sub_800D334
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
bl species_and_otid_get_pal
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
adds r0, r5, 0
movs r1, 0
bl GetMonSpriteTemplate_803C56C
ldr r4, _080AEAD8 @ =gUnknown_02024E8C
movs r0, 0x2
adds r1, r5, 0
movs r2, 0
bl sub_8077E44
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
movs r1, 0x70
movs r3, 0x1E
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
ldr r0, _080AEADC @ =gSprites
mov r8, r0
lsls r0, r7, 4
adds r0, r7
lsls r6, r0, 2
mov r0, r8
adds r4, r6, r0
ldrb r1, [r4, 0x5]
movs r0, 0xF
ands r0, r1
movs r1, 0x20
orrs r0, r1
movs r1, 0xD
negs r1, r1
ands r0, r1
movs r1, 0x8
orrs r0, r1
strb r0, [r4, 0x5]
movs r0, 0x2
bl sub_8079E90
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
mov r0, r8
adds r0, 0x1C
adds r0, r6, r0
ldr r1, _080AEAE0 @ =SpriteCallbackDummy
str r1, [r0]
ldrb r0, [r4, 0x5]
lsrs r0, 4
strh r0, [r4, 0x2E]
strh r5, [r4, 0x32]
adds r0, r5, 0
bl sub_80AEB1C
lsls r0, 24
cmp r0, 0
beq _080AEAE8
mov r0, r8
adds r0, 0x10
adds r0, r6, r0
ldr r1, _080AEAE4 @ =gSpriteAffineAnimTable_81E7C18
b _080AEAF0
.align 2, 0
_080AEACC: .4byte gMonBackPicTable
_080AEAD0: .4byte gMonBackPicCoords
_080AEAD4: .4byte gUnknown_081FAF4C
_080AEAD8: .4byte gUnknown_02024E8C
_080AEADC: .4byte gSprites
_080AEAE0: .4byte SpriteCallbackDummy
_080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18
_080AEAE8:
mov r0, r8
adds r0, 0x10
adds r0, r6, r0
ldr r1, _080AEB14 @ =gSpriteAffineAnimTable_81E7BEC
_080AEAF0:
str r1, [r0]
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
ldr r1, _080AEB18 @ =gSprites
adds r0, r1
movs r1, 0
bl StartSpriteAffineAnim
adds r0, r7, 0
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC
_080AEB18: .4byte gSprites
thumb_func_end sub_80AE9FC
thumb_func_start sub_80AEB1C
sub_80AEB1C: @ 80AEB1C
push {lr}
lsls r0, 16
lsrs r0, 16
cmp r0, 0xC9
beq _080AEB2A
movs r0, 0x1
b _080AEB2C
_080AEB2A:
movs r0, 0
_080AEB2C:
pop {r1}
bx r1
thumb_func_end sub_80AEB1C
thumb_func_start sub_80AEB30
sub_80AEB30: @ 80AEB30
push {lr}
ldr r0, _080AEB44 @ =0x0600c000
bl sub_80AEB4C
ldr r0, _080AEB48 @ =0x0600e000
bl sub_80AEB4C
pop {r0}
bx r0
.align 2, 0
_080AEB44: .4byte 0x0600c000
_080AEB48: .4byte 0x0600e000
thumb_func_end sub_80AEB30
thumb_func_start sub_80AEB4C
sub_80AEB4C: @ 80AEB4C
movs r1, 0xA0
lsls r1, 3
adds r2, r0, r1
ldr r1, _080AEB60 @ =0x040000d4
str r0, [r1]
str r2, [r1, 0x4]
ldr r0, _080AEB64 @ =0x80000140
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
bx lr
.align 2, 0
_080AEB60: .4byte 0x040000d4
_080AEB64: .4byte 0x80000140
thumb_func_end sub_80AEB4C
thumb_func_start sub_80AEB68
sub_80AEB68: @ 80AEB68
push {lr}
lsls r0, 16
lsls r1, 24
lsrs r3, r1, 24
ldr r2, _080AEB90 @ =gContestEffects
ldr r1, _080AEB94 @ =gContestMoves
lsrs r0, 13
adds r0, r1
ldrb r0, [r0]
lsls r0, 2
adds r0, r2
ldrb r0, [r0]
cmp r0, 0x8
bhi _080AEBD0
lsls r0, 2
ldr r1, _080AEB98 @ =_080AEB9C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AEB90: .4byte gContestEffects
_080AEB94: .4byte gContestMoves
_080AEB98: .4byte _080AEB9C
.align 2, 0
_080AEB9C:
.4byte _080AEBC0
.4byte _080AEBC0
.4byte _080AEBC8
.4byte _080AEBC8
.4byte _080AEBD0
.4byte _080AEBD0
.4byte _080AEBD0
.4byte _080AEBD0
.4byte _080AEBC0
_080AEBC0:
ldr r0, _080AEBC4 @ =0x00009082
b _080AEBD2
.align 2, 0
_080AEBC4: .4byte 0x00009082
_080AEBC8:
ldr r0, _080AEBCC @ =0x00009088
b _080AEBD2
.align 2, 0
_080AEBCC: .4byte 0x00009088
_080AEBD0:
ldr r0, _080AEBE8 @ =0x00009086
_080AEBD2:
lsls r1, r3, 12
movs r2, 0x90
lsls r2, 8
adds r1, r2
lsls r0, 16
asrs r0, 16
adds r0, r1
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_080AEBE8: .4byte 0x00009086
thumb_func_end sub_80AEB68
thumb_func_start sub_80AEBEC
sub_80AEBEC: @ 80AEBEC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _080AEC74 @ =gUnknown_03004210
movs r1, 0x10
str r1, [sp]
movs r1, 0x22
str r1, [sp, 0x4]
movs r1, 0
movs r2, 0xB
movs r3, 0x1F
bl FillWindowRect_DefaultPalette
ldr r1, _080AEC78 @ =gContestMoves
lsls r0, r4, 3
adds r0, r1
ldrb r0, [r0, 0x1]
lsls r0, 29
lsrs r0, 29
ldr r1, _080AEC7C @ =0x00004040
cmp r0, 0
beq _080AEC34
adds r1, 0x5
cmp r0, 0x1
beq _080AEC34
adds r1, 0x5
cmp r0, 0x2
beq _080AEC34
adds r1, 0x40
cmp r0, 0x3
bne _080AEC34
subs r1, 0x20
_080AEC34:
ldr r0, _080AEC74 @ =gUnknown_03004210
mov r8, r0
ldr r6, _080AEC78 @ =gContestMoves
lsls r5, r4, 3
ldr r7, _080AEC80 @ =gContestEffects
ldr r0, _080AEC84 @ =gUnknown_083CADD4
mov r9, r0
ldr r4, _080AEC88 @ =0x0600c816
ldr r3, _080AEC8C @ =0x0600c7d6
movs r2, 0x4
_080AEC48:
strh r1, [r3]
adds r0, r1, 0
adds r0, 0x10
strh r0, [r4]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
adds r4, 0x2
adds r3, 0x2
subs r2, 0x1
cmp r2, 0
bge _080AEC48
adds r0, r5, r6
ldrb r0, [r0]
lsls r0, 2
adds r1, r0, r7
ldrb r0, [r1, 0x1]
cmp r0, 0xFF
bne _080AEC90
movs r0, 0
b _080AEC9C
.align 2, 0
_080AEC74: .4byte gUnknown_03004210
_080AEC78: .4byte gContestMoves
_080AEC7C: .4byte 0x00004040
_080AEC80: .4byte gContestEffects
_080AEC84: .4byte gUnknown_083CADD4
_080AEC88: .4byte 0x0600c816
_080AEC8C: .4byte 0x0600c7d6
_080AEC90:
ldrb r0, [r1, 0x1]
movs r1, 0xA
bl __udivsi3
lsls r0, 24
lsrs r0, 24
_080AEC9C:
cmp r0, 0x8
bls _080AECA2
movs r0, 0x8
_080AECA2:
movs r2, 0
ldr r1, _080AECB8 @ =0x00005012
adds r4, r1, 0
adds r1, 0x23
adds r3, r1, 0
ldr r1, _080AECBC @ =0x0600c7ea
_080AECAE:
cmp r2, r0
bge _080AECC0
strh r4, [r1]
b _080AECC2
.align 2, 0
_080AECB8: .4byte 0x00005012
_080AECBC: .4byte 0x0600c7ea
_080AECC0:
strh r3, [r1]
_080AECC2:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x7
ble _080AECAE
adds r0, r5, r6
ldrb r0, [r0]
lsls r0, 2
adds r1, r0, r7
ldrb r0, [r1, 0x2]
cmp r0, 0xFF
bne _080AECDC
movs r0, 0
b _080AECE8
_080AECDC:
ldrb r0, [r1, 0x2]
movs r1, 0xA
bl __udivsi3
lsls r0, 24
lsrs r0, 24
_080AECE8:
cmp r0, 0x8
bls _080AECEE
movs r0, 0x8
_080AECEE:
movs r2, 0
ldr r1, _080AED04 @ =0x00005014
adds r4, r1, 0
adds r1, 0x22
adds r3, r1, 0
ldr r1, _080AED08 @ =0x0600c82a
_080AECFA:
cmp r2, r0
bge _080AED0C
strh r4, [r1]
b _080AED0E
.align 2, 0
_080AED04: .4byte 0x00005014
_080AED08: .4byte 0x0600c82a
_080AED0C:
strh r3, [r1]
_080AED0E:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x7
ble _080AECFA
adds r0, r5, r6
ldrb r0, [r0]
lsls r0, 2
add r0, r9
ldr r1, [r0]
movs r2, 0xD9
lsls r2, 2
movs r0, 0x23
str r0, [sp]
mov r0, r8
movs r3, 0xB
bl sub_8003460
ldr r1, _080AED50 @ =gUnknown_083CC5A2
ldr r2, _080AED54 @ =0x00000362
movs r0, 0x1F
str r0, [sp]
mov r0, r8
movs r3, 0x10
bl sub_8003460
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AED50: .4byte gUnknown_083CC5A2
_080AED54: .4byte 0x00000362
thumb_func_end sub_80AEBEC
thumb_func_start sub_80AED58
sub_80AED58: @ 80AED58
push {lr}
sub sp, 0x8
ldr r0, _080AED78 @ =gUnknown_03004210
movs r1, 0x1C
str r1, [sp]
movs r1, 0x28
str r1, [sp, 0x4]
movs r1, 0
movs r2, 0xB
movs r3, 0x23
bl FillWindowRect_DefaultPalette
add sp, 0x8
pop {r0}
bx r0
.align 2, 0
_080AED78: .4byte gUnknown_03004210
thumb_func_end sub_80AED58
thumb_func_start sub_80AED7C
sub_80AED7C: @ 80AED7C
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r4, r1, 24
ldr r0, _080AEDD8 @ =gUnknown_02038696
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
adds r0, 0x2
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
bl sub_80AF59C
lsls r0, 24
cmp r0, 0
bne _080AEDEC
cmp r6, 0
beq _080AEDEC
adds r0, r6, 0
adds r1, r4, 0
bl sub_80AEB68
lsls r0, 16
lsrs r0, 16
lsls r3, r5, 6
ldr r1, _080AEDDC @ =0x0600c028
adds r1, r3, r1
strh r0, [r1]
ldr r1, _080AEDE0 @ =0x0600c02a
adds r1, r3, r1
adds r2, r0, 0x1
strh r2, [r1]
ldr r1, _080AEDE4 @ =0x0600c068
adds r2, r3, r1
adds r1, r0, 0
adds r1, 0x10
strh r1, [r2]
ldr r1, _080AEDE8 @ =0x0600c06a
adds r3, r1
adds r0, 0x11
strh r0, [r3]
b _080AEE08
.align 2, 0
_080AEDD8: .4byte gUnknown_02038696
_080AEDDC: .4byte 0x0600c028
_080AEDE0: .4byte 0x0600c02a
_080AEDE4: .4byte 0x0600c068
_080AEDE8: .4byte 0x0600c06a
_080AEDEC:
lsls r1, r5, 6
ldr r0, _080AEE10 @ =0x0600c028
adds r0, r1, r0
movs r2, 0
strh r2, [r0]
ldr r0, _080AEE14 @ =0x0600c02a
adds r0, r1, r0
strh r2, [r0]
ldr r3, _080AEE18 @ =0x0600c068
adds r0, r1, r3
strh r2, [r0]
ldr r0, _080AEE1C @ =0x0600c06a
adds r1, r0
strh r2, [r1]
_080AEE08:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080AEE10: .4byte 0x0600c028
_080AEE14: .4byte 0x0600c02a
_080AEE18: .4byte 0x0600c068
_080AEE1C: .4byte 0x0600c06a
thumb_func_end sub_80AED7C
thumb_func_start unref_sub_80AEE20
unref_sub_80AEE20: @ 80AEE20
push {r4,lr}
movs r4, 0
_080AEE24:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
ldr r1, _080AEE48 @ =0x02019260
adds r0, r1
ldrh r0, [r0, 0x6]
adds r1, r4, 0
bl sub_80AED7C
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AEE24
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AEE48: .4byte 0x02019260
thumb_func_end unref_sub_80AEE20
thumb_func_start sub_80AEE4C
sub_80AEE4C: @ 80AEE4C
ldr r0, _080AEE50 @ =0x00002034
bx lr
.align 2, 0
_080AEE50: .4byte 0x00002034
thumb_func_end sub_80AEE4C
thumb_func_start sub_80AEE54
sub_80AEE54: @ 80AEE54
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r1, 24
str r1, [sp]
lsls r5, r7, 3
subs r0, r5, r7
lsls r0, 2
ldr r1, _080AEE84 @ =0x02019260
adds r0, r1
ldrb r0, [r0, 0x10]
movs r2, 0x30
ands r2, r0
mov r10, r1
cmp r2, 0
bne _080AEE88
movs r0, 0
b _080AEF3C
.align 2, 0
_080AEE84: .4byte 0x02019260
_080AEE88:
ldr r0, _080AEEB0 @ =gUnknown_02038696
adds r0, r7, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
adds r0, 0x2
lsls r0, 24
lsrs r0, 24
mov r9, r0
cmp r2, 0x10
bne _080AEEF0
adds r0, r7, 0
bl sub_80AEE4C
lsls r0, 16
lsrs r0, 16
mov r8, r0
movs r4, 0
adds r6, r5, 0
b _080AEEC4
.align 2, 0
_080AEEB0: .4byte gUnknown_02038696
_080AEEB4:
mov r1, r9
adds r0, r1, r4
lsls r0, 6
ldr r1, _080AEEE8 @ =0x0600c026
adds r0, r1
mov r1, r8
strh r1, [r0]
adds r4, 0x1
_080AEEC4:
subs r0, r6, r7
lsls r0, 2
ldr r1, _080AEEEC @ =0x02019260
adds r5, r0, r1
movs r0, 0xD
ldrsb r0, [r5, r0]
movs r1, 0xA
bl __divsi3
lsls r0, 24
asrs r0, 24
cmp r0, r4
bgt _080AEEB4
ldr r0, [sp]
cmp r0, 0
beq _080AEF3A
movs r0, 0x5B
b _080AEF2C
.align 2, 0
_080AEEE8: .4byte 0x0600c026
_080AEEEC: .4byte 0x02019260
_080AEEF0:
movs r1, 0
mov r8, r1
movs r4, 0x3
adds r6, r5, 0
b _080AEF0A
_080AEEFA:
mov r1, r9
adds r0, r1, r4
lsls r0, 6
ldr r1, _080AEF4C @ =0x0600bfe6
adds r0, r1
mov r1, r8
strh r1, [r0]
subs r4, 0x1
_080AEF0A:
subs r0, r6, r7
lsls r0, 2
mov r1, r10
adds r5, r0, r1
movs r0, 0xD
ldrsb r0, [r5, r0]
movs r1, 0xA
bl __divsi3
lsls r0, 24
asrs r0, 24
cmp r0, r4
blt _080AEEFA
ldr r0, [sp]
cmp r0, 0
beq _080AEF3A
movs r0, 0x26
_080AEF2C:
bl PlaySE
ldrb r1, [r5, 0x10]
movs r0, 0x31
negs r0, r0
ands r0, r1
strb r0, [r5, 0x10]
_080AEF3A:
movs r0, 0x1
_080AEF3C:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080AEF4C: .4byte 0x0600bfe6
thumb_func_end sub_80AEE54
thumb_func_start sub_80AEF50
sub_80AEF50: @ 80AEF50
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r5, 0
_080AEF5A:
ldr r0, _080AEF80 @ =gUnknown_02038696
adds r0, r5, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
adds r0, 0x2
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r0, r5, 24
lsrs r0, 24
bl sub_80AEE4C
lsls r0, 16
lsrs r6, r0, 16
movs r4, 0
lsls r7, r5, 3
adds r2, r5, 0x1
b _080AEF92
.align 2, 0
_080AEF80: .4byte gUnknown_02038696
_080AEF84:
mov r1, r8
adds r0, r1, r4
lsls r0, 6
ldr r3, _080AEFE0 @ =0x0600c026
adds r0, r3
strh r6, [r0]
adds r4, 0x1
_080AEF92:
subs r0, r7, r5
lsls r0, 2
ldr r1, _080AEFE4 @ =0x02019260
adds r0, r1
ldrb r0, [r0, 0xD]
lsls r0, 24
asrs r0, 24
movs r1, 0xA
str r2, [sp]
bl __divsi3
lsls r0, 24
asrs r0, 24
ldr r2, [sp]
cmp r4, r0
blt _080AEF84
movs r6, 0
cmp r4, 0x2
bgt _080AEFCE
lsls r0, r4, 6
ldr r1, _080AEFE0 @ =0x0600c026
adds r0, r1
mov r3, r8
lsls r1, r3, 6
adds r0, r1
_080AEFC4:
strh r6, [r0]
adds r0, 0x40
adds r4, 0x1
cmp r4, 0x2
ble _080AEFC4
_080AEFCE:
adds r5, r2, 0
cmp r5, 0x3
ble _080AEF5A
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AEFE0: .4byte 0x0600c026
_080AEFE4: .4byte 0x02019260
thumb_func_end sub_80AEF50
thumb_func_start sub_80AEFE8
sub_80AEFE8: @ 80AEFE8
push {lr}
lsls r1, 24
lsrs r1, 24
movs r0, 0
cmp r1, 0x4
bhi _080AF02A
lsls r0, r1, 2
ldr r1, _080AF000 @ =_080AF004
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AF000: .4byte _080AF004
.align 2, 0
_080AF004:
.4byte _080AF018
.4byte _080AF01C
.4byte _080AF020
.4byte _080AF024
.4byte _080AF028
_080AF018:
movs r0, 0x80
b _080AF02A
_080AF01C:
movs r0, 0x84
b _080AF02A
_080AF020:
movs r0, 0x86
b _080AF02A
_080AF024:
movs r0, 0x88
b _080AF02A
_080AF028:
movs r0, 0x82
_080AF02A:
movs r1, 0x90
lsls r1, 8
adds r0, r1
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_80AEFE8
thumb_func_start sub_80AF038
sub_80AF038: @ 80AF038
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r5, 0x1
movs r4, 0
ldr r0, _080AF074 @ =gUnknown_02038696
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
adds r0, 0x2
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r3, 3
subs r0, r3
lsls r0, 2
ldr r1, _080AF078 @ =0x02019260
adds r2, r0, r1
ldr r0, [r2, 0x10]
ldr r1, _080AF07C @ =0x00ff0003
ands r0, r1
cmp r0, 0
bne _080AF06C
ldrb r0, [r2, 0xF]
cmp r0, 0
beq _080AF080
_080AF06C:
adds r0, r3, 0
movs r1, 0
b _080AF0A6
.align 2, 0
_080AF074: .4byte gUnknown_02038696
_080AF078: .4byte 0x02019260
_080AF07C: .4byte 0x00ff0003
_080AF080:
ldrb r1, [r2, 0xC]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080AF090
adds r0, r3, 0
movs r1, 0x1
b _080AF0A6
_080AF090:
movs r0, 0x6
ands r0, r1
cmp r0, 0
bne _080AF0A2
ldrb r1, [r2, 0xB]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080AF0B0
_080AF0A2:
adds r0, r3, 0
movs r1, 0x2
_080AF0A6:
bl sub_80AEFE8
lsls r0, 16
lsrs r4, r0, 16
b _080AF0B2
_080AF0B0:
movs r5, 0
_080AF0B2:
cmp r5, 0
beq _080AF0EC
lsls r2, r6, 6
ldr r0, _080AF0DC @ =0x0600c028
adds r0, r2, r0
strh r4, [r0]
ldr r0, _080AF0E0 @ =0x0600c02a
adds r0, r2, r0
adds r1, r4, 0x1
strh r1, [r0]
ldr r0, _080AF0E4 @ =0x0600c068
adds r1, r2, r0
adds r0, r4, 0
adds r0, 0x10
strh r0, [r1]
ldr r0, _080AF0E8 @ =0x0600c06a
adds r2, r0
adds r0, r4, 0
adds r0, 0x11
strh r0, [r2]
b _080AF106
.align 2, 0
_080AF0DC: .4byte 0x0600c028
_080AF0E0: .4byte 0x0600c02a
_080AF0E4: .4byte 0x0600c068
_080AF0E8: .4byte 0x0600c06a
_080AF0EC:
lsls r1, r6, 6
ldr r0, _080AF110 @ =0x0600c028
adds r0, r1, r0
strh r5, [r0]
ldr r0, _080AF114 @ =0x0600c02a
adds r0, r1, r0
strh r5, [r0]
ldr r2, _080AF118 @ =0x0600c068
adds r0, r1, r2
strh r5, [r0]
ldr r0, _080AF11C @ =0x0600c06a
adds r1, r0
strh r5, [r1]
_080AF106:
adds r0, r5, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080AF110: .4byte 0x0600c028
_080AF114: .4byte 0x0600c02a
_080AF118: .4byte 0x0600c068
_080AF11C: .4byte 0x0600c06a
thumb_func_end sub_80AF038
thumb_func_start sub_80AF120
sub_80AF120: @ 80AF120
push {r4,lr}
movs r4, 0
_080AF124:
lsls r0, r4, 24
lsrs r0, 24
bl sub_80AF038
adds r4, 0x1
cmp r4, 0x3
ble _080AF124
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AF120
thumb_func_start sub_80AF138
sub_80AF138: @ 80AF138
push {lr}
sub sp, 0x8
ldr r0, _080AF158 @ =gUnknown_03004210
movs r1, 0x11
str r1, [sp]
movs r1, 0x12
str r1, [sp, 0x4]
movs r1, 0
movs r2, 0x1
movs r3, 0xF
bl FillWindowRect_DefaultPalette
add sp, 0x8
pop {r0}
bx r0
.align 2, 0
_080AF158: .4byte gUnknown_03004210
thumb_func_end sub_80AF138
thumb_func_start sub_80AF15C
sub_80AF15C: @ 80AF15C
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
adds r0, r4, 0
bl sub_80AF59C
lsls r0, 24
cmp r0, 0
beq _080AF174
movs r0, 0
b _080AF1AA
_080AF174:
ldr r0, _080AF190 @ =gUnknown_02038695
ldrb r0, [r0]
cmp r4, r0
beq _080AF198
adds r0, r4, 0
bl sub_81288F4
bl sub_8128944
lsls r0, 24
ldr r2, _080AF194 @ =gUnknown_02038570
lsrs r0, 23
lsls r1, r4, 6
b _080AF1A2
.align 2, 0
_080AF190: .4byte gUnknown_02038695
_080AF194: .4byte gUnknown_02038570
_080AF198:
ldr r2, _080AF1B0 @ =gUnknown_02038570
ldr r0, _080AF1B4 @ =0x02019204
ldrb r0, [r0]
lsls r0, 1
lsls r1, r5, 6
_080AF1A2:
adds r0, r1
adds r2, 0x1E
adds r0, r2
ldrh r0, [r0]
_080AF1AA:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080AF1B0: .4byte gUnknown_02038570
_080AF1B4: .4byte 0x02019204
thumb_func_end sub_80AF15C
thumb_func_start sub_80AF1B8
sub_80AF1B8: @ 80AF1B8
push {r4,lr}
movs r4, 0
_080AF1BC:
adds r0, r4, 0
bl sub_80AF15C
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
ldr r2, _080AF1E0 @ =0x02019260
adds r1, r2
strh r0, [r1, 0x6]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AF1BC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AF1E0: .4byte 0x02019260
thumb_func_end sub_80AF1B8
thumb_func_start sub_80AF1E4
sub_80AF1E4: @ 80AF1E4
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
cmp r1, 0
bne _080AF1FC
adds r0, r5, 0
adds r0, 0xA
lsls r0, 24
lsrs r3, r0, 24
b _080AF1FE
_080AF1FC:
movs r3, 0xE
_080AF1FE:
lsls r0, r5, 3
subs r0, r5
lsls r0, 2
ldr r1, _080AF21C @ =0x02019260
adds r1, r0, r1
ldrh r0, [r1, 0x6]
cmp r0, 0
bne _080AF228
ldr r0, _080AF220 @ =gUnknown_020238CC
ldr r1, _080AF224 @ =gUnknownText_MissedTurn
adds r2, r3, 0
bl sub_80AE598
b _080AF23A
.align 2, 0
_080AF21C: .4byte 0x02019260
_080AF220: .4byte gUnknown_020238CC
_080AF224: .4byte gUnknownText_MissedTurn
_080AF228:
ldr r0, _080AF270 @ =gUnknown_020238CC
ldrh r2, [r1, 0x6]
movs r1, 0xD
muls r1, r2
ldr r2, _080AF274 @ =gMoveNames
adds r1, r2
adds r2, r3, 0
bl sub_80AE598
_080AF23A:
adds r0, r5, 0
bl sub_80AF2A0
ldr r0, _080AF278 @ =gUnknown_03004210
ldr r1, _080AF270 @ =gUnknown_020238CC
lsls r2, r5, 2
adds r2, r5
lsls r2, 18
movs r3, 0xAE
lsls r3, 18
adds r2, r3
lsrs r2, 16
ldr r4, _080AF27C @ =gUnknown_083CA318
lsls r5, 1
adds r3, r5, r4
ldrb r3, [r3]
adds r4, 0x1
adds r5, r4
ldrb r4, [r5]
str r4, [sp]
bl sub_8003460
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AF270: .4byte gUnknown_020238CC
_080AF274: .4byte gMoveNames
_080AF278: .4byte gUnknown_03004210
_080AF27C: .4byte gUnknown_083CA318
thumb_func_end sub_80AF1E4
thumb_func_start unref_sub_80AF280
unref_sub_80AF280: @ 80AF280
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
_080AF288:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80AF1E4
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AF288
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end unref_sub_80AF280
thumb_func_start sub_80AF2A0
sub_80AF2A0: @ 80AF2A0
push {r4,lr}
sub sp, 0x8
lsls r0, 24
ldr r4, _080AF2D8 @ =gUnknown_03004210
ldr r1, _080AF2DC @ =gUnknown_083CA318
lsrs r0, 23
adds r2, r0, r1
ldrb r2, [r2]
adds r1, 0x1
adds r0, r1
ldrb r3, [r0]
adds r0, r2, 0x7
lsls r0, 24
lsrs r0, 24
str r0, [sp]
adds r0, r3, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
bl FillWindowRect_DefaultPalette
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AF2D8: .4byte gUnknown_03004210
_080AF2DC: .4byte gUnknown_083CA318
thumb_func_end sub_80AF2A0
thumb_func_start unref_sub_80AF2E0
unref_sub_80AF2E0: @ 80AF2E0
push {r4,lr}
movs r4, 0
_080AF2E4:
adds r0, r4, 0
bl sub_80AF2A0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AF2E4
pop {r4}
pop {r0}
bx r0
thumb_func_end unref_sub_80AF2E0
thumb_func_start sub_80AF2FC
sub_80AF2FC: @ 80AF2FC
push {r4-r7,lr}
sub sp, 0x8
movs r4, 0
ldr r2, _080AF398 @ =0x02019260
_080AF304:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x2]
ldrh r3, [r0, 0x4]
adds r1, r3
strh r1, [r0, 0x4]
lsls r0, r4, 1
add r0, sp
strh r1, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AF304
movs r4, 0
_080AF326:
movs r2, 0x3
cmp r2, r4
bls _080AF354
_080AF32C:
subs r5, r2, 0x1
lsls r0, r5, 1
mov r7, sp
adds r3, r7, r0
lsls r0, r2, 1
adds r2, r7, r0
ldrh r6, [r3]
movs r0, 0
ldrsh r1, [r3, r0]
movs r7, 0
ldrsh r0, [r2, r7]
cmp r1, r0
bge _080AF34C
ldrh r0, [r2]
strh r6, [r2]
strh r0, [r3]
_080AF34C:
lsls r0, r5, 24
lsrs r2, r0, 24
cmp r2, r4
bhi _080AF32C
_080AF354:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _080AF326
movs r4, 0
ldr r0, _080AF398 @ =0x02019260
mov r12, r0
movs r7, 0x4
negs r7, r7
movs r6, 0x3
_080AF36A:
movs r2, 0
lsls r0, r4, 3
adds r5, r4, 0x1
subs r0, r4
lsls r0, 2
mov r1, r12
adds r3, r0, r1
movs r4, 0x4
ldrsh r1, [r3, r4]
_080AF37C:
lsls r0, r2, 1
add r0, sp
movs r4, 0
ldrsh r0, [r0, r4]
cmp r1, r0
bne _080AF39C
ands r2, r6
ldrb r1, [r3, 0xB]
adds r0, r7, 0
ands r0, r1
orrs r0, r2
strb r0, [r3, 0xB]
b _080AF3A6
.align 2, 0
_080AF398: .4byte 0x02019260
_080AF39C:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080AF37C
_080AF3A6:
lsls r0, r5, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AF36A
movs r0, 0x1
bl sub_80B0F28
bl sub_80B159C
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80AF2FC
thumb_func_start sub_80AF3C0
sub_80AF3C0: @ 80AF3C0
push {lr}
ldr r2, _080AF3D0 @ =0x02019260
adds r3, r2, 0
_080AF3C6:
ldrh r0, [r2, 0x6]
cmp r0, 0
bne _080AF3D4
movs r1, 0x5
b _080AF3F2
.align 2, 0
_080AF3D0: .4byte 0x02019260
_080AF3D4:
movs r1, 0x2
ldrsh r0, [r2, r1]
movs r1, 0
cmp r0, 0
ble _080AF3F2
movs r1, 0x1
cmp r0, 0x1D
ble _080AF3F2
movs r1, 0x2
cmp r0, 0x3B
ble _080AF3F2
movs r1, 0x4
cmp r0, 0x4F
bgt _080AF3F2
movs r1, 0x3
_080AF3F2:
strb r1, [r2, 0x1A]
adds r2, 0x1C
adds r0, r3, 0
adds r0, 0x54
cmp r2, r0
ble _080AF3C6
pop {r0}
bx r0
thumb_func_end sub_80AF3C0
thumb_func_start sub_80AF404
sub_80AF404: @ 80AF404
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
ldr r0, _080AF42C @ =0x02019260
adds r2, r1, r0
ldrb r1, [r2, 0xC]
movs r0, 0x6
ands r0, r1
cmp r0, 0
bne _080AF428
ldrb r1, [r2, 0xB]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080AF430
_080AF428:
movs r0, 0
b _080AF432
.align 2, 0
_080AF42C: .4byte 0x02019260
_080AF430:
movs r0, 0x1
_080AF432:
pop {r1}
bx r1
thumb_func_end sub_80AF404
thumb_func_start sub_80AF438
sub_80AF438: @ 80AF438
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r5, 0
ldr r0, _080AF594 @ =0x02019260
mov r10, r0
movs r1, 0
mov r12, r1
movs r0, 0x7
negs r0, r0
mov r9, r0
movs r1, 0x2
negs r1, r1
mov r8, r1
_080AF458:
lsls r0, r5, 3
subs r0, r5
lsls r0, 2
mov r1, r10
adds r3, r0, r1
movs r0, 0
strh r0, [r3, 0x2]
strh r0, [r3]
mov r0, r12
strb r0, [r3, 0x12]
ldrb r2, [r3, 0xC]
movs r0, 0x6
ands r0, r2
cmp r0, 0
beq _080AF48A
lsls r0, r2, 29
lsrs r0, 30
subs r0, 0x1
movs r1, 0x3
ands r0, r1
lsls r0, 1
mov r1, r9
ands r1, r2
orrs r1, r0
strb r1, [r3, 0xC]
_080AF48A:
mov r1, r12
strb r1, [r3, 0xE]
ldrb r0, [r3, 0x10]
mov r1, r8
ands r1, r0
mov r0, r12
strb r0, [r3, 0xF]
movs r0, 0x3
negs r0, r0
ands r1, r0
movs r6, 0x5
negs r6, r6
ands r1, r6
movs r7, 0x9
negs r7, r7
ands r1, r7
ldrb r0, [r3, 0xC]
mov r4, r8
ands r4, r0
strb r4, [r3, 0xC]
movs r0, 0xFF
strb r0, [r3, 0x13]
movs r0, 0x1
negs r0, r0
strb r0, [r3, 0x14]
subs r0, 0x30
ands r1, r0
strb r1, [r3, 0x10]
ldrb r2, [r3, 0x15]
lsls r1, r2, 31
lsrs r1, 31
lsls r1, 2
adds r0, r6, 0
ands r0, r2
orrs r0, r1
mov r1, r8
ands r0, r1
strb r0, [r3, 0x15]
ldrb r0, [r3, 0x11]
movs r2, 0x4
negs r2, r2
ands r2, r0
movs r0, 0x21
negs r0, r0
ands r2, r0
strb r2, [r3, 0x11]
movs r0, 0x4
ands r0, r2
cmp r0, 0
beq _080AF500
adds r0, r4, 0
mov r1, r9
ands r0, r1
movs r1, 0x2
orrs r0, r1
strb r0, [r3, 0xC]
adds r0, r2, 0
ands r0, r6
strb r0, [r3, 0x11]
_080AF500:
ldrb r2, [r3, 0x11]
movs r0, 0x8
ands r0, r2
cmp r0, 0
beq _080AF518
ldrb r0, [r3, 0xB]
movs r1, 0x80
orrs r0, r1
strb r0, [r3, 0xB]
adds r0, r7, 0
ands r0, r2
strb r0, [r3, 0x11]
_080AF518:
ldrb r0, [r3, 0x11]
movs r1, 0x11
negs r1, r1
ands r1, r0
strb r1, [r3, 0x11]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _080AF458
movs r5, 0
mov r6, r10
mov r9, r5
adds r7, r6, 0
subs r7, 0x5C
movs r0, 0x18
negs r0, r0
adds r0, r6
mov r8, r0
_080AF53E:
lsls r4, r5, 3
subs r4, r5
lsls r4, 2
adds r4, r6
ldrh r2, [r4, 0x6]
strh r2, [r4, 0x8]
lsls r1, r5, 1
ldrb r0, [r7, 0x1]
lsls r0, 3
adds r1, r0
adds r0, r6, 0
subs r0, 0x40
adds r0, r1
strh r2, [r0]
ldrh r0, [r4, 0x6]
bl contest_get_move_excitement
ldrb r1, [r7, 0x1]
lsls r1, 2
adds r1, r5, r1
add r1, r8
strb r0, [r1]
mov r1, r9
strh r1, [r4, 0x6]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _080AF53E
ldr r2, _080AF598 @ =0x02019328
ldrb r1, [r2, 0x1]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AF594: .4byte 0x02019260
_080AF598: .4byte 0x02019328
thumb_func_end sub_80AF438
thumb_func_start sub_80AF59C
sub_80AF59C: @ 80AF59C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
ldr r0, _080AF5C4 @ =0x02019260
adds r2, r1, r0
ldrb r1, [r2, 0xC]
movs r0, 0x6
ands r0, r1
cmp r0, 0
bne _080AF5C0
ldrb r1, [r2, 0xB]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080AF5C8
_080AF5C0:
movs r0, 0x1
b _080AF5CA
.align 2, 0
_080AF5C4: .4byte 0x02019260
_080AF5C8:
movs r0, 0
_080AF5CA:
pop {r1}
bx r1
thumb_func_end sub_80AF59C
thumb_func_start unref_sub_80AF5D0
unref_sub_80AF5D0: @ 80AF5D0
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r3, r1, 24
ldr r1, _080AF5E8 @ =gUnknown_02038695
ldrb r1, [r1]
cmp r0, r1
beq _080AF600
_080AF5E2:
movs r0, 0x1
b _080AF626
.align 2, 0
_080AF5E8: .4byte gUnknown_02038695
_080AF5EC:
ldrb r0, [r4, 0x6]
movs r1, 0x1
b _080AF5F6
_080AF5F2:
ldrb r0, [r4, 0x6]
movs r1, 0x2
_080AF5F6:
orrs r0, r1
strb r0, [r4, 0x6]
b _080AF5E2
_080AF5FC:
strb r3, [r2]
b _080AF5E2
_080AF600:
movs r0, 0
ldr r4, _080AF62C @ =0x02019204
adds r5, r4, 0x2
_080AF606:
cmp r3, 0x3
beq _080AF5EC
cmp r3, 0x4
beq _080AF5F2
adds r2, r0, r5
ldrb r1, [r2]
cmp r1, r3
beq _080AF5E2
cmp r1, 0xFF
beq _080AF5FC
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bls _080AF606
movs r0, 0
_080AF626:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080AF62C: .4byte 0x02019204
thumb_func_end unref_sub_80AF5D0
thumb_func_start sub_80AF630
sub_80AF630: @ 80AF630
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_80AF688
ldr r1, _080AF65C @ =gUnknown_02038688
lsls r4, 1
adds r1, r4, r1
strh r0, [r1]
ldr r2, _080AF660 @ =gUnknown_02038678
adds r2, r4, r2
ldr r1, _080AF664 @ =gUnknown_02038670
adds r4, r1
ldrh r4, [r4]
adds r0, r4
strh r0, [r2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080AF65C: .4byte gUnknown_02038688
_080AF660: .4byte gUnknown_02038678
_080AF664: .4byte gUnknown_02038670
thumb_func_end sub_80AF630
thumb_func_start sub_80AF668
sub_80AF668: @ 80AF668
push {r4,lr}
movs r4, 0
_080AF66C:
adds r0, r4, 0
bl sub_80AF630
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080AF66C
bl sub_80AF6A0
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AF668
thumb_func_start sub_80AF688
sub_80AF688: @ 80AF688
lsls r0, 24
ldr r1, _080AF69C @ =gUnknown_02038680
lsrs r0, 23
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
lsls r0, 17
asrs r0, 16
bx lr
.align 2, 0
_080AF69C: .4byte gUnknown_02038680
thumb_func_end sub_80AF688
thumb_func_start sub_80AF6A0
sub_80AF6A0: @ 80AF6A0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x70
mov r0, sp
movs r1, 0
movs r2, 0x8
bl memset
movs r0, 0
mov r9, r0
mov r1, sp
adds r1, 0x8
str r1, [sp, 0x64]
mov r3, sp
adds r3, 0xC
str r3, [sp, 0x68]
mov r6, sp
adds r6, 0x14
str r6, [sp, 0x6C]
mov r4, sp
_080AF6CE:
bl Random
strh r0, [r4]
movs r2, 0
cmp r2, r9
bge _080AF70C
mov r1, sp
lsls r0, 16
lsrs r0, 16
ldrh r1, [r1]
cmp r0, r1
bne _080AF6F0
subs r4, 0x2
movs r7, 0x1
negs r7, r7
add r9, r7
b _080AF70C
_080AF6F0:
adds r2, 0x1
cmp r2, r9
bge _080AF70C
lsls r0, r2, 1
mov r3, sp
adds r1, r3, r0
ldrh r0, [r4]
ldrh r1, [r1]
cmp r0, r1
bne _080AF6F0
subs r4, 0x2
movs r6, 0x1
negs r6, r6
add r9, r6
_080AF70C:
adds r4, 0x2
movs r7, 0x1
add r9, r7
mov r0, r9
cmp r0, 0x3
ble _080AF6CE
movs r1, 0
mov r9, r1
mov r4, sp
ldr r6, _080AF81C @ =gUnknown_02038678
ldr r2, [sp, 0x64]
ldr r5, _080AF820 @ =gUnknown_02038670
ldr r3, [sp, 0x68]
_080AF726:
mov r7, r9
lsls r1, r7, 4
movs r7, 0
ldrsh r0, [r6, r7]
str r0, [r2]
movs r7, 0
ldrsh r0, [r5, r7]
str r0, [r3]
ldrh r0, [r4]
str r0, [r2, 0x8]
ldr r0, [sp, 0x6C]
adds r1, r0, r1
mov r7, r9
str r7, [r1]
adds r4, 0x2
adds r6, 0x2
adds r2, 0x10
adds r5, 0x2
adds r3, 0x10
movs r0, 0x1
add r9, r0
mov r1, r9
cmp r1, 0x3
ble _080AF726
movs r3, 0
mov r9, r3
_080AF75A:
movs r4, 0x3
cmp r4, r9
ble _080AF7E4
add r7, sp, 0x48
ldr r6, [sp, 0x68]
str r6, [sp, 0x58]
ldr r0, [sp, 0x64]
adds r0, 0x8
str r0, [sp, 0x5C]
ldr r1, [sp, 0x6C]
str r1, [sp, 0x60]
_080AF770:
subs r3, r4, 0x1
mov r10, r3
mov r0, r10
adds r1, r4, 0
ldr r2, [sp, 0x64]
bl sub_80AF828
lsls r0, 24
cmp r0, 0
beq _080AF7DE
mov r6, r10
lsls r2, r6, 4
ldr r0, [sp, 0x64]
adds r3, r0, r2
ldr r0, [r3]
str r0, [sp, 0x48]
ldr r1, [sp, 0x58]
adds r6, r1, r2
ldr r0, [r6]
str r0, [r7, 0x4]
ldr r0, [sp, 0x5C]
adds r0, r2
mov r8, r0
ldr r0, [r0]
str r0, [r7, 0x8]
ldr r1, [sp, 0x60]
adds r2, r1, r2
ldr r0, [r2]
str r0, [r7, 0xC]
lsls r1, r4, 4
ldr r0, [sp, 0x64]
adds r5, r0, r1
ldr r0, [r5]
str r0, [r3]
ldr r3, [sp, 0x58]
adds r4, r3, r1
ldr r0, [r4]
str r0, [r6]
ldr r6, [sp, 0x5C]
adds r3, r6, r1
ldr r0, [r3]
mov r6, r8
str r0, [r6]
ldr r0, [sp, 0x60]
adds r1, r0, r1
ldr r0, [r1]
str r0, [r2]
ldr r0, [sp, 0x48]
str r0, [r5]
ldr r0, [r7, 0x4]
str r0, [r4]
ldr r0, [r7, 0x8]
str r0, [r3]
ldr r0, [r7, 0xC]
str r0, [r1]
_080AF7DE:
mov r4, r10
cmp r4, r9
bgt _080AF770
_080AF7E4:
movs r1, 0x1
add r9, r1
mov r3, r9
cmp r3, 0x2
ble _080AF75A
movs r6, 0
mov r9, r6
ldr r2, _080AF824 @ =gUnknown_02038690
ldr r1, [sp, 0x6C]
_080AF7F6:
ldr r0, [r1]
adds r0, r2
mov r7, r9
strb r7, [r0]
adds r1, 0x10
movs r0, 0x1
add r9, r0
mov r3, r9
cmp r3, 0x3
ble _080AF7F6
add sp, 0x70
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AF81C: .4byte gUnknown_02038678
_080AF820: .4byte gUnknown_02038670
_080AF824: .4byte gUnknown_02038690
thumb_func_end sub_80AF6A0
thumb_func_start sub_80AF828
sub_80AF828: @ 80AF828
push {lr}
lsls r0, 4
adds r0, r2
lsls r1, 4
adds r3, r1, r2
ldr r2, [r0]
ldr r1, [r3]
cmp r2, r1
blt _080AF858
cmp r2, r1
bgt _080AF84A
ldr r2, [r0, 0x4]
ldr r1, [r3, 0x4]
cmp r2, r1
blt _080AF858
cmp r2, r1
ble _080AF84E
_080AF84A:
movs r2, 0
b _080AF85A
_080AF84E:
ldr r1, [r0, 0x8]
ldr r0, [r3, 0x8]
movs r2, 0
cmp r1, r0
bge _080AF85A
_080AF858:
movs r2, 0x1
_080AF85A:
adds r0, r2, 0
pop {r1}
bx r1
thumb_func_end sub_80AF828
thumb_func_start sub_80AF860
sub_80AF860: @ 80AF860
push {lr}
sub sp, 0x4
ldr r0, _080AF88C @ =gUnknown_030042A0
movs r1, 0
strh r1, [r0]
ldr r0, _080AF890 @ =gUnknown_03004280
strh r1, [r0]
bl sub_80AF138
ldr r0, _080AF894 @ =gMenuWindow
ldr r1, _080AF898 @ =gUnknownText_LinkStandbyAndWinner
movs r2, 0xC2
lsls r2, 2
movs r3, 0xF
str r3, [sp]
movs r3, 0x1
bl sub_8003460
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080AF88C: .4byte gUnknown_030042A0
_080AF890: .4byte gUnknown_03004280
_080AF894: .4byte gMenuWindow
_080AF898: .4byte gUnknownText_LinkStandbyAndWinner
thumb_func_end sub_80AF860
thumb_func_start unref_sub_80AF89C
unref_sub_80AF89C: @ 80AF89C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r4, r0, 0
adds r6, r1, 0
mov r8, r2
lsls r4, 16
lsrs r4, 16
lsls r6, 16
lsrs r6, 16
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r3, 24
lsrs r3, 24
mov r9, r3
lsls r2, r3, 2
ldr r0, _080AF940 @ =0x02019338
adds r2, r0
ldrb r0, [r2, 0x2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2, 0x2]
ldr r0, _080AF944 @ =sub_80AF94C
movs r1, 0x14
bl CreateTask
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
bl sub_80AFB74
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r6, 16
asrs r6, 16
adds r4, r6
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
bl sub_80AFB74
adds r4, r0, 0
subs r4, r5
lsls r4, 24
lsrs r4, 24
mov r0, r9
bl sub_80AFB40
lsls r0, 16
lsrs r0, 16
ldr r2, _080AF948 @ =gTasks
lsls r1, r7, 2
adds r1, r7
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xA]
add r0, r8
strh r0, [r1, 0xC]
mov r0, r9
strh r0, [r1, 0xE]
cmp r6, 0
bge _080AF932
mov r0, r9
bl nullsub_19
_080AF932:
adds r0, r7, 0
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080AF940: .4byte 0x02019338
_080AF944: .4byte sub_80AF94C
_080AF948: .4byte gTasks
thumb_func_end unref_sub_80AF89C
thumb_func_start sub_80AF94C
sub_80AF94C: @ 80AF94C
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080AF988 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r1
ldrb r5, [r2, 0xE]
ldrh r3, [r2, 0xA]
movs r0, 0xA
ldrsh r1, [r2, r0]
cmp r1, 0
bne _080AF990
adds r0, r5, 0
bl nullsub_19
adds r0, r4, 0
bl DestroyTask
lsls r1, r5, 2
ldr r0, _080AF98C @ =0x02019338
adds r1, r0
ldrb r2, [r1, 0x2]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1, 0x2]
b _080AFA56
.align 2, 0
_080AF988: .4byte gTasks
_080AF98C: .4byte 0x02019338
_080AF990:
ldrh r0, [r2, 0x1C]
adds r0, 0x1
strh r0, [r2, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1D
ble _080AFA56
movs r0, 0
strh r0, [r2, 0x1C]
cmp r1, 0
bge _080AF9BC
ldrh r0, [r2, 0x8]
subs r1, r0, 0x1
strh r1, [r2, 0x8]
lsls r0, 24
lsrs r6, r0, 24
adds r0, r3, 0x1
strh r0, [r2, 0xA]
movs r0, 0x16
bl PlaySE
b _080AF9D0
_080AF9BC:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
lsls r0, 24
lsrs r6, r0, 24
subs r0, r3, 0x1
strh r0, [r2, 0xA]
movs r0, 0x15
bl PlaySE
_080AF9D0:
ldr r3, _080AFA00 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r2, r0, 3
adds r0, r2, r3
ldrh r1, [r0, 0xC]
ldr r0, _080AFA04 @ =0x0000ffff
cmp r1, r0
beq _080AFA38
adds r0, r3, r2
adds r0, 0xC
lsls r1, r5, 2
adds r1, r5
lsls r1, 5
adds r1, 0x93
adds r1, r6, r1
lsls r1, 1
ldr r2, _080AFA08 @ =0x0600c000
adds r1, r2
movs r2, 0x2
bl RequestSpriteCopy
b _080AFA56
.align 2, 0
_080AFA00: .4byte gTasks
_080AFA04: .4byte 0x0000ffff
_080AFA08: .4byte 0x0600c000
_080AFA0C:
adds r0, r2, r3
lsls r1, 1
adds r1, 0xE
adds r0, r1
lsls r1, r5, 2
adds r1, r5
lsls r1, 5
adds r1, 0x93
adds r1, r6, r1
lsls r1, 1
ldr r7, _080AFA34 @ =0x0600c000
adds r1, r7
movs r2, 0x2
bl RequestSpriteCopy
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _080AFA56
.align 2, 0
_080AFA34: .4byte 0x0600c000
_080AFA38:
movs r1, 0
adds r3, 0x8
_080AFA3C:
adds r0, r1, 0x4
lsls r0, 1
adds r0, r2
adds r4, r0, r3
movs r7, 0
ldrsh r0, [r4, r7]
cmp r0, 0
blt _080AFA0C
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x2
bls _080AFA3C
_080AFA56:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80AF94C
thumb_func_start sub_80AFA5C
sub_80AFA5C: @ 80AFA5C
push {r4-r7,lr}
sub sp, 0x4
movs r3, 0
ldr r0, _080AFAAC @ =0x0600c000
mov r12, r0
mov r4, sp
movs r6, 0
ldr r2, _080AFAB0 @ =0x040000d4
ldr r5, _080AFAB4 @ =0x81000008
_080AFA6E:
lsls r1, r3, 2
adds r1, r3
lsls r1, 5
adds r0, r1, 0
adds r0, 0x56
lsls r0, 1
add r0, r12
strh r6, [r4]
mov r7, sp
str r7, [r2]
str r0, [r2, 0x4]
str r5, [r2, 0x8]
ldr r0, [r2, 0x8]
adds r1, 0x76
lsls r1, 1
add r1, r12
strh r6, [r4]
str r7, [r2]
str r1, [r2, 0x4]
str r5, [r2, 0x8]
ldr r0, [r2, 0x8]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080AFA6E
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AFAAC: .4byte 0x0600c000
_080AFAB0: .4byte 0x040000d4
_080AFAB4: .4byte 0x81000008
thumb_func_end sub_80AFA5C
thumb_func_start unref_sub_80AFAB8
unref_sub_80AFAB8: @ 80AFAB8
push {r4-r6,lr}
sub sp, 0x14
lsls r1, 24
lsrs r4, r1, 24
lsls r0, 16
asrs r0, 16
bl sub_80AFB74
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _080AFAF4 @ =0x000050a2
cmp r4, 0
beq _080AFAE0
ldr r2, _080AFAF8 @ =0x000060a2
cmp r4, 0x1
beq _080AFAE0
ldr r2, _080AFAFC @ =0x000080a2
cmp r4, 0x2
bne _080AFAE0
ldr r2, _080AFB00 @ =0x000070a2
_080AFAE0:
movs r1, 0
lsls r3, r4, 2
movs r6, 0
_080AFAE6:
cmp r1, r5
bcs _080AFB04
lsls r0, r1, 1
add r0, sp
strh r2, [r0]
b _080AFB0A
.align 2, 0
_080AFAF4: .4byte 0x000050a2
_080AFAF8: .4byte 0x000060a2
_080AFAFC: .4byte 0x000080a2
_080AFB00: .4byte 0x000070a2
_080AFB04:
lsls r0, r1, 1
add r0, sp
strh r6, [r0]
_080AFB0A:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x8
bls _080AFAE6
adds r0, r3, r4
lsls r0, 6
ldr r1, _080AFB34 @ =0x0600c128
adds r0, r1
ldr r1, _080AFB38 @ =0x040000d4
mov r2, sp
str r2, [r1]
str r0, [r1, 0x4]
ldr r0, _080AFB3C @ =0x80000009
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080AFB34: .4byte 0x0600c128
_080AFB38: .4byte 0x040000d4
_080AFB3C: .4byte 0x80000009
thumb_func_end unref_sub_80AFAB8
thumb_func_start sub_80AFB40
sub_80AFB40: @ 80AFB40
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _080AFB64 @ =0x00005011
cmp r0, 0
beq _080AFB5A
ldr r1, _080AFB68 @ =0x00006011
cmp r0, 0x1
beq _080AFB5A
ldr r1, _080AFB6C @ =0x00008011
cmp r0, 0x2
bne _080AFB5A
ldr r1, _080AFB70 @ =0x00007011
_080AFB5A:
adds r0, r1, 0x1
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_080AFB64: .4byte 0x00005011
_080AFB68: .4byte 0x00006011
_080AFB6C: .4byte 0x00008011
_080AFB70: .4byte 0x00007011
thumb_func_end sub_80AFB40
thumb_func_start sub_80AFB74
sub_80AFB74: @ 80AFB74
push {lr}
lsls r0, 16
asrs r0, 16
movs r1, 0xA
bl __divsi3
lsls r0, 24
lsrs r1, r0, 24
asrs r2, r0, 24
cmp r2, 0x10
ble _080AFB8E
movs r1, 0x10
b _080AFB98
_080AFB8E:
movs r0, 0x10
negs r0, r0
cmp r2, r0
bge _080AFB98
movs r1, 0xF0
_080AFB98:
lsls r0, r1, 24
asrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_80AFB74
thumb_func_start sub_80AFBA0
sub_80AFBA0: @ 80AFBA0
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
lsls r1, 16
lsrs r1, 16
mov r8, r1
lsls r2, 24
lsrs r7, r2, 24
lsls r2, r7, 2
ldr r0, _080AFC30 @ =0x02019338
adds r2, r0
ldrb r0, [r2, 0x2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2, 0x2]
ldr r0, _080AFC34 @ =sub_80AFC74
movs r1, 0x14
bl CreateTask
lsls r0, 24
lsrs r6, r0, 24
lsls r5, 16
asrs r5, 16
adds r0, r5, 0
bl sub_80AFB74
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r1, r8
lsls r0, r1, 16
asrs r0, 16
adds r5, r0
lsls r5, 16
asrs r5, 16
adds r0, r5, 0
bl sub_80AFB74
lsls r4, 24
asrs r4, 24
subs r0, r4
lsls r0, 24
lsrs r5, r0, 24
adds r0, r7, 0
bl sub_80AFB40
ldr r2, _080AFC38 @ =gTasks
lsls r3, r6, 2
adds r0, r3, r6
lsls r0, 3
adds r1, r0, r2
adds r0, r4, 0
cmp r4, 0
bge _080AFC14
negs r0, r4
_080AFC14:
strh r0, [r1, 0x8]
lsls r0, r5, 24
asrs r0, 24
strh r0, [r1, 0xA]
cmp r4, 0
bgt _080AFC28
cmp r4, 0
bne _080AFC3C
cmp r0, 0
ble _080AFC3C
_080AFC28:
movs r0, 0x1
strh r0, [r1, 0xC]
b _080AFC4A
.align 2, 0
_080AFC30: .4byte 0x02019338
_080AFC34: .4byte sub_80AFC74
_080AFC38: .4byte gTasks
_080AFC3C:
ldr r2, _080AFC6C @ =gTasks
lsls r3, r6, 2
adds r0, r3, r6
lsls r0, 3
adds r0, r2
ldr r1, _080AFC70 @ =0x0000ffff
strh r1, [r0, 0xC]
_080AFC4A:
adds r0, r3, r6
lsls r0, 3
adds r0, r2
strh r7, [r0, 0xE]
mov r1, r8
lsls r0, r1, 16
cmp r0, 0
bge _080AFC60
adds r0, r7, 0
bl nullsub_19
_080AFC60:
adds r0, r6, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080AFC6C: .4byte gTasks
_080AFC70: .4byte 0x0000ffff
thumb_func_end sub_80AFBA0
thumb_func_start sub_80AFC74
sub_80AFC74: @ 80AFC74
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r1, _080AFCD4 @ =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r4, r0, r1
ldrb r7, [r4, 0xE]
ldrh r3, [r4, 0x8]
ldrh r1, [r4, 0xA]
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0xE
bgt _080AFCA6
b _080AFE1C
_080AFCA6:
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r2, [r4, 0xA]
movs r5, 0xA
ldrsh r0, [r4, r5]
cmp r0, 0
bne _080AFCDC
adds r0, r7, 0
bl nullsub_19
mov r0, r8
bl DestroyTask
lsls r1, r7, 2
ldr r0, _080AFCD8 @ =0x02019338
adds r1, r0
ldrb r2, [r1, 0x2]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1, 0x2]
b _080AFE1C
.align 2, 0
_080AFCD4: .4byte gTasks
_080AFCD8: .4byte 0x02019338
_080AFCDC:
cmp r3, 0
bne _080AFD28
lsls r0, r1, 16
mov r9, r0
cmp r0, 0
bge _080AFCFA
adds r0, r7, 0
bl sub_80AFB40
adds r0, 0x2
lsls r0, 16
lsrs r6, r0, 16
ldrh r0, [r4, 0xA]
adds r0, 0x1
b _080AFD08
_080AFCFA:
adds r0, r7, 0
bl sub_80AFB40
lsls r0, 16
lsrs r6, r0, 16
ldrh r0, [r4, 0xA]
subs r0, 0x1
_080AFD08:
strh r0, [r4, 0xA]
ldr r1, _080AFD24 @ =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x8]
adds r2, r1, 0x1
strh r2, [r0, 0x8]
lsls r1, 24
lsrs r5, r1, 24
b _080AFD94
.align 2, 0
_080AFD24: .4byte gTasks
_080AFD28:
movs r3, 0xC
ldrsh r0, [r4, r3]
cmp r0, 0
bge _080AFD62
lsls r0, r1, 16
mov r9, r0
cmp r0, 0
bge _080AFD50
ldrh r0, [r4, 0x8]
adds r1, r0, 0x1
strh r1, [r4, 0x8]
lsls r0, 24
lsrs r5, r0, 24
adds r0, r2, 0x1
strh r0, [r4, 0xA]
adds r0, r7, 0
bl sub_80AFB40
adds r0, 0x2
b _080AFD90
_080AFD50:
ldrh r0, [r4, 0x8]
subs r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
subs r0, r2, 0x1
strh r0, [r4, 0xA]
b _080AFD94
_080AFD62:
lsls r0, r1, 16
mov r9, r0
cmp r0, 0
bge _080AFD7C
ldrh r0, [r4, 0x8]
subs r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
adds r0, r2, 0x1
strh r0, [r4, 0xA]
b _080AFD94
_080AFD7C:
ldrh r0, [r4, 0x8]
adds r1, r0, 0x1
strh r1, [r4, 0x8]
lsls r0, 24
lsrs r5, r0, 24
subs r0, r2, 0x1
strh r0, [r4, 0xA]
adds r0, r7, 0
bl sub_80AFB40
_080AFD90:
lsls r0, 16
lsrs r6, r0, 16
_080AFD94:
mov r10, r5
cmp r5, 0x7
bls _080AFDA2
adds r0, r5, 0
adds r0, 0x18
lsls r0, 24
lsrs r5, r0, 24
_080AFDA2:
mov r0, sp
strh r6, [r0]
ldr r0, _080AFDE8 @ =gUnknown_02038696
adds r0, r7, r0
ldrb r0, [r0]
lsls r1, r0, 2
adds r1, r0
lsls r1, 5
adds r1, 0x56
adds r1, r5, r1
lsls r1, 1
ldr r0, _080AFDEC @ =0x0600c000
adds r1, r0
ldr r2, _080AFDF0 @ =0x01000001
mov r0, sp
bl CpuSet
mov r2, r9
cmp r2, 0
ble _080AFDFC
movs r0, 0x60
bl PlaySE
ldr r4, _080AFDF4 @ =gMPlay_SE1
adds r0, r4, 0
bl m4aMPlayImmInit
ldr r1, _080AFDF8 @ =0x0000ffff
mov r3, r10
lsls r2, r3, 24
asrs r2, 16
adds r0, r4, 0
bl m4aMPlayPitchControl
b _080AFE02
.align 2, 0
_080AFDE8: .4byte gUnknown_02038696
_080AFDEC: .4byte 0x0600c000
_080AFDF0: .4byte 0x01000001
_080AFDF4: .4byte gMPlay_SE1
_080AFDF8: .4byte 0x0000ffff
_080AFDFC:
movs r0, 0x16
bl PlaySE
_080AFE02:
cmp r5, 0
bne _080AFE1C
cmp r6, 0
bne _080AFE1C
ldr r0, _080AFE2C @ =gTasks
mov r5, r8
lsls r1, r5, 2
add r1, r8
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0xC]
negs r0, r0
strh r0, [r1, 0xC]
_080AFE1C:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AFE2C: .4byte gTasks
thumb_func_end sub_80AFC74
thumb_func_start sub_80AFE30
sub_80AFE30: @ 80AFE30
push {r4,r5,lr}
ldr r0, _080AFE64 @ =gUnknown_083CA350
bl LoadSpriteSheet
movs r4, 0
ldr r5, _080AFE68 @ =gUnknown_083CA338
_080AFE3C:
ldr r0, _080AFE6C @ =gUnknown_02038696
adds r0, r4, r0
ldrb r0, [r0]
adds r0, r5
ldrb r2, [r0]
ldr r0, _080AFE70 @ =gSpriteTemplate_83CA3AC
movs r1, 0xB4
movs r3, 0x1
bl CreateSprite
lsls r1, r4, 2
ldr r2, _080AFE74 @ =0x02019338
adds r1, r2
strb r0, [r1]
adds r4, 0x1
cmp r4, 0x3
ble _080AFE3C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AFE64: .4byte gUnknown_083CA350
_080AFE68: .4byte gUnknown_083CA338
_080AFE6C: .4byte gUnknown_02038696
_080AFE70: .4byte gSpriteTemplate_83CA3AC
_080AFE74: .4byte 0x02019338
thumb_func_end sub_80AFE30
thumb_func_start sub_80AFE78
sub_80AFE78: @ 80AFE78
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r2, r6, 2
ldr r3, _080AFEB0 @ =0x02019338
adds r2, r3
ldrb r0, [r2, 0x2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x2]
ldrb r7, [r2]
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
subs r3, 0xD8
adds r0, r3
movs r1, 0x4
ldrsh r0, [r0, r1]
movs r1, 0xA
bl __divsi3
lsls r0, 17
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x38
ble _080AFEB4
movs r5, 0x38
b _080AFEBA
.align 2, 0
_080AFEB0: .4byte 0x02019338
_080AFEB4:
cmp r0, 0
bge _080AFEBA
movs r5, 0
_080AFEBA:
ldr r2, _080AFEEC @ =gSprites
lsls r3, r7, 4
adds r0, r3, r7
lsls r0, 2
adds r4, r0, r2
movs r0, 0x3E
adds r0, r4
mov r12, r0
ldrb r1, [r0]
movs r0, 0x5
negs r0, r0
ands r0, r1
mov r1, r12
strb r0, [r1]
strh r6, [r4, 0x2E]
strh r5, [r4, 0x30]
lsls r0, r5, 16
asrs r0, 16
movs r5, 0x24
ldrsh r1, [r4, r5]
cmp r0, r1
ble _080AFEF0
movs r0, 0x1
b _080AFEF2
.align 2, 0
_080AFEEC: .4byte gSprites
_080AFEF0:
ldr r0, _080AFF08 @ =0x0000ffff
_080AFEF2:
strh r0, [r4, 0x32]
adds r0, r3, r7
lsls r0, 2
adds r1, r2, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _080AFF0C @ =sub_80AFF60
str r1, [r0]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AFF08: .4byte 0x0000ffff
_080AFF0C: .4byte sub_80AFF60
thumb_func_end sub_80AFE78
thumb_func_start sub_80AFF10
sub_80AFF10: @ 80AFF10
push {r4,lr}
movs r4, 0
_080AFF14:
lsls r0, r4, 24
lsrs r0, 24
bl sub_80AFE78
adds r4, 0x1
cmp r4, 0x3
ble _080AFF14
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AFF10
thumb_func_start sub_80AFF28
sub_80AFF28: @ 80AFF28
push {r4,lr}
movs r3, 0
ldr r2, _080AFF54 @ =0x02019338
ldrb r1, [r2, 0x2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080AFF4C
movs r4, 0x1
_080AFF3A:
adds r2, 0x4
adds r3, 0x1
cmp r3, 0x3
bgt _080AFF4C
ldrb r1, [r2, 0x2]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _080AFF3A
_080AFF4C:
cmp r3, 0x4
beq _080AFF58
movs r0, 0
b _080AFF5A
.align 2, 0
_080AFF54: .4byte 0x02019338
_080AFF58:
movs r0, 0x1
_080AFF5A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80AFF28
thumb_func_start sub_80AFF60
sub_80AFF60: @ 80AFF60
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 _080AFF94
movs r0, 0x2E
ldrsh r1, [r3, r0]
lsls r1, 2
ldr r0, _080AFF8C @ =0x02019338
adds r1, r0
ldrb r2, [r1, 0x2]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1, 0x2]
ldr r0, _080AFF90 @ =SpriteCallbackDummy
str r0, [r3, 0x1C]
b _080AFF9A
.align 2, 0
_080AFF8C: .4byte 0x02019338
_080AFF90: .4byte SpriteCallbackDummy
_080AFF94:
ldrh r0, [r3, 0x32]
adds r0, r2, r0
strh r0, [r3, 0x24]
_080AFF9A:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AFF60
thumb_func_start sub_80AFFA0
sub_80AFFA0: @ 80AFFA0
push {r4-r6,lr}
movs r2, 0
ldr r6, _080AFFD0 @ =gSprites
ldr r5, _080AFFD4 @ =gUnknown_083CA338
ldr r3, _080AFFD8 @ =0x02019338
ldr r4, _080AFFDC @ =gUnknown_02038696
_080AFFAC:
ldrb r0, [r3]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r0, r2, r4
ldrb r0, [r0]
adds r0, r5
ldrb r0, [r0]
strh r0, [r1, 0x22]
adds r3, 0x4
adds r2, 0x1
cmp r2, 0x3
ble _080AFFAC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080AFFD0: .4byte gSprites
_080AFFD4: .4byte gUnknown_083CA338
_080AFFD8: .4byte 0x02019338
_080AFFDC: .4byte gUnknown_02038696
thumb_func_end sub_80AFFA0
thumb_func_start sub_80AFFE0
sub_80AFFE0: @ 80AFFE0
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r3, 0
ldr r6, _080B0008 @ =gUnknown_02038696
ldr r4, _080B000C @ =gSprites
ldr r2, _080B0010 @ =0x02019338
_080AFFEE:
adds r0, r3, r6
ldrb r0, [r0]
cmp r0, 0x1
bls _080B0024
cmp r5, 0
bne _080B0014
ldrb r0, [r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
movs r0, 0xB4
b _080B0022
.align 2, 0
_080B0008: .4byte gUnknown_02038696
_080B000C: .4byte gSprites
_080B0010: .4byte 0x02019338
_080B0014:
ldrb r0, [r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
movs r0, 0x80
lsls r0, 1
_080B0022:
strh r0, [r1, 0x20]
_080B0024:
adds r2, 0x4
adds r3, 0x1
cmp r3, 0x3
ble _080AFFEE
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80AFFE0
thumb_func_start sub_80B0034
sub_80B0034: @ 80B0034
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, _080B00A8 @ =gUnknown_083CA3E4
bl LoadSpritePalette
movs r5, 0
ldr r0, _080B00AC @ =gUnknown_083CA33C
mov r8, r0
ldr r7, _080B00B0 @ =gSprites
movs r6, 0
_080B004A:
lsls r0, r5, 3
ldr r1, _080B00B4 @ =gUnknown_083CA3C4
adds r0, r1
bl LoadCompressedObjectPic
ldr r0, _080B00B8 @ =gSpriteTemplate_83CA3F4
adds r0, r6, r0
ldr r1, _080B00BC @ =gUnknown_02038696
adds r1, r5, r1
ldrb r1, [r1]
add r1, r8
ldrb r2, [r1]
movs r1, 0xCC
movs r3, 0
bl CreateSprite
lsls r4, r5, 2
ldr r1, _080B00C0 @ =0x02019338
adds r4, r1
strb r0, [r4, 0x1]
ldrb r1, [r4, 0x1]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldr r1, _080B00C4 @ =gUnknown_083CA464
bl SetSubspriteTables
ldrb r1, [r4, 0x1]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
adds r6, 0x18
adds r5, 0x1
cmp r5, 0x3
ble _080B004A
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B00A8: .4byte gUnknown_083CA3E4
_080B00AC: .4byte gUnknown_083CA33C
_080B00B0: .4byte gSprites
_080B00B4: .4byte gUnknown_083CA3C4
_080B00B8: .4byte gSpriteTemplate_83CA3F4
_080B00BC: .4byte gUnknown_02038696
_080B00C0: .4byte 0x02019338
_080B00C4: .4byte gUnknown_083CA464
thumb_func_end sub_80B0034
thumb_func_start sub_80B00C8
sub_80B00C8: @ 80B00C8
push {lr}
ldr r0, _080B0104 @ =gUnknown_083CA46C
bl LoadCompressedObjectPic
ldr r0, _080B0108 @ =gUnknown_083CA474
bl LoadSpritePalette
ldr r0, _080B010C @ =gSpriteTemplate_83CA484
movs r1, 0x1E
movs r2, 0x2C
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, _080B0110 @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r2, [r1]
movs r3, 0x4
orrs r2, r3
strb r2, [r1]
ldr r1, _080B0114 @ =0x02019204
adds r1, 0x58
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080B0104: .4byte gUnknown_083CA46C
_080B0108: .4byte gUnknown_083CA474
_080B010C: .4byte gSpriteTemplate_83CA484
_080B0110: .4byte gSprites
_080B0114: .4byte 0x02019204
thumb_func_end sub_80B00C8
thumb_func_start nullsub_18
nullsub_18: @ 80B0118
bx lr
thumb_func_end nullsub_18
thumb_func_start unref_sub_80B011C
unref_sub_80B011C: @ 80B011C
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, _080B0198 @ =gUnknown_083CC3AC
bl LoadCompressedObjectPic
movs r4, 0
ldr r5, _080B019C @ =gUnknown_083CC3B4
_080B012C:
lsls r0, r4, 3
adds r0, r5
bl LoadCompressedObjectPalette
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B012C
movs r4, 0
ldr r5, _080B01A0 @ =gUnknown_083CA330
adds r0, r5, 0x1
mov r8, r0
ldr r7, _080B01A4 @ =gSprites
ldr r6, _080B01A8 @ =0x0201920d
_080B014A:
lsls r2, r4, 1
adds r0, r2, r4
lsls r0, 3
ldr r1, _080B01AC @ =gSpriteTemplate_83CC454
adds r0, r1
adds r1, r2, r5
ldrb r1, [r1]
add r2, r8
ldrb r2, [r2]
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r7
movs r2, 0x3E
adds r2, r1
mov r12, r2
ldrb r2, [r2]
movs r3, 0x4
orrs r2, r3
mov r3, r12
strb r2, [r3]
strh r4, [r1, 0x2E]
adds r1, r4, r6
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B014A
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B0198: .4byte gUnknown_083CC3AC
_080B019C: .4byte gUnknown_083CC3B4
_080B01A0: .4byte gUnknown_083CA330
_080B01A4: .4byte gSprites
_080B01A8: .4byte 0x0201920d
_080B01AC: .4byte gSpriteTemplate_83CC454
thumb_func_end unref_sub_80B011C
thumb_func_start unref_sub_80B01B0
unref_sub_80B01B0: @ 80B01B0
push {r4,r5,lr}
movs r2, 0
ldr r5, _080B01D4 @ =0x0201920d
ldr r4, _080B01D8 @ =gSprites + 0x1C
ldr r3, _080B01DC @ =sub_80B0238
_080B01BA:
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
str r3, [r0]
adds r2, 0x1
cmp r2, 0x3
ble _080B01BA
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B01D4: .4byte 0x0201920d
_080B01D8: .4byte gSprites + 0x1C
_080B01DC: .4byte sub_80B0238
thumb_func_end unref_sub_80B01B0
thumb_func_start unref_sub_80B01E0
unref_sub_80B01E0: @ 80B01E0
push {r4,r5,lr}
movs r3, 0
ldr r2, _080B0224 @ =gSprites
ldr r4, _080B0228 @ =0x02019204
ldrb r1, [r4, 0x9]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _080B022C @ =SpriteCallbackDummy
cmp r1, r0
bne _080B021A
adds r5, r4, 0
adds r5, 0x9
adds r4, r1, 0
_080B0202:
adds r3, 0x1
cmp r3, 0x3
bgt _080B021A
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r0, [r0]
cmp r0, r4
beq _080B0202
_080B021A:
cmp r3, 0x4
beq _080B0230
movs r0, 0
b _080B0232
.align 2, 0
_080B0224: .4byte gSprites
_080B0228: .4byte 0x02019204
_080B022C: .4byte SpriteCallbackDummy
_080B0230:
movs r0, 0x1
_080B0232:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end unref_sub_80B01E0
thumb_func_start sub_80B0238
sub_80B0238: @ 80B0238
push {r4,lr}
adds r4, r0, 0
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r4, 0
bl InitSpriteAffineAnim
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080B0268
ldr r0, _080B0264 @ =sub_80B02A8
b _080B0272
.align 2, 0
_080B0264: .4byte sub_80B02A8
_080B0268:
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r0, _080B027C @ =sub_80B0280
_080B0272:
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B027C: .4byte sub_80B0280
thumb_func_end sub_80B0238
thumb_func_start sub_80B0280
sub_80B0280: @ 80B0280
push {lr}
adds r3, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080B02A0
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, _080B02A4 @ =sub_80B02A8
str r0, [r3, 0x1C]
_080B02A0:
pop {r0}
bx r0
.align 2, 0
_080B02A4: .4byte sub_80B02A8
thumb_func_end sub_80B0280
thumb_func_start sub_80B02A8
sub_80B02A8: @ 80B02A8
push {r4,lr}
adds r4, r0, 0
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
ldr r1, _080B02EC @ =0x02019260
adds r0, r1
ldrb r1, [r0, 0xB]
lsls r1, 30
lsrs r1, 30
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
movs r1, 0x2
bl StartSpriteAffineAnim
ldr r0, _080B02F0 @ =sub_80B02F4
str r0, [r4, 0x1C]
movs r0, 0x18
bl PlaySE
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B02EC: .4byte 0x02019260
_080B02F0: .4byte sub_80B02F4
thumb_func_end sub_80B02A8
thumb_func_start sub_80B02F4
sub_80B02F4: @ 80B02F4
push {r4,lr}
adds r4, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080B0318
adds r0, r4, 0
bl FreeSpriteOamMatrix
ldrb r0, [r4, 0x1]
movs r1, 0x4
negs r1, r1
ands r1, r0
strb r1, [r4, 0x1]
ldr r0, _080B0320 @ =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080B0318:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B0320: .4byte SpriteCallbackDummy
thumb_func_end sub_80B02F4
thumb_func_start sub_80B0324
sub_80B0324: @ 80B0324
push {r4,lr}
ldr r0, _080B035C @ =sub_80B0458
movs r1, 0x1E
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r1, _080B0360 @ =0x02019204
strb r0, [r1, 0xD]
movs r2, 0
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r4, _080B0364 @ =gTasks + 0x8
movs r3, 0xFF
_080B0342:
lsls r0, r2, 3
adds r0, r1
adds r0, r4
strh r3, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080B0342
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B035C: .4byte sub_80B0458
_080B0360: .4byte 0x02019204
_080B0364: .4byte gTasks + 0x8
thumb_func_end sub_80B0324
thumb_func_start sub_80B0368
sub_80B0368: @ 80B0368
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r3, _080B03A0 @ =gTasks
ldr r5, _080B03A4 @ =0x02019204
ldrb r2, [r5, 0xD]
lsls r1, r2, 2
adds r1, r2
adds r1, r0
lsls r1, 3
adds r3, 0x8
adds r1, r3
movs r4, 0
strh r4, [r1]
lsls r0, 2
adds r0, 0x1
lsls r0, 1
ldrb r2, [r5, 0xD]
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r0, r1
adds r0, r3
strh r4, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B03A0: .4byte gTasks
_080B03A4: .4byte 0x02019204
thumb_func_end sub_80B0368
thumb_func_start sub_80B03A8
sub_80B03A8: @ 80B03A8
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080B03D0 @ =sub_80B03D8
movs r1, 0x1F
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080B03D4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B03D0: .4byte sub_80B03D8
_080B03D4: .4byte gTasks
thumb_func_end sub_80B03A8
thumb_func_start sub_80B03D8
sub_80B03D8: @ 80B03D8
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r2, _080B044C @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x8]
adds r4, r0, 0
ldr r6, _080B0450 @ =0x02019204
ldrb r1, [r6, 0xD]
lsls r0, r1, 2
adds r0, r1
adds r0, r4
lsls r0, 3
adds r7, r2, 0
adds r7, 0x8
adds r1, r0, r7
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _080B040C
cmp r0, 0xFF
bne _080B0444
_080B040C:
movs r3, 0
movs r0, 0xFF
strh r0, [r1]
lsls r1, r4, 2
adds r1, 0x1
lsls r1, 1
ldrb r2, [r6, 0xD]
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, r7
strh r3, [r1]
adds r0, r6, 0
adds r0, 0x14
adds r0, r4, r0
ldrb r0, [r0]
adds r0, 0x5
lsls r0, 4
adds r0, 0x6
ldr r3, _080B0454 @ =0x00004bff
movs r1, 0x2
movs r2, 0
bl BlendPalette
adds r0, r5, 0
bl DestroyTask
_080B0444:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B044C: .4byte gTasks
_080B0450: .4byte 0x02019204
_080B0454: .4byte 0x00004bff
thumb_func_end sub_80B03D8
thumb_func_start sub_80B0458
sub_80B0458: @ 80B0458
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
movs r6, 0
lsls r1, r0, 2
adds r1, r0
mov r9, r1
lsls r7, r1, 3
ldr r0, _080B04A8 @ =gTasks + 0x8
mov r8, r0
movs r1, 0x8
negs r1, r1
add r1, r8
mov r10, r1
_080B047C:
lsls r0, r6, 26
lsrs r3, r0, 24
lsls r0, r3, 1
adds r0, r7
mov r4, r8
adds r2, r0, r4
ldrh r4, [r2]
movs r5, 0
ldrsh r0, [r2, r5]
cmp r0, 0xFF
beq _080B04F6
adds r0, r3, 0x1
lsls r1, r0, 1
adds r1, r7
add r1, r8
movs r5, 0
ldrsh r1, [r1, r5]
adds r5, r0, 0
cmp r1, 0
bne _080B04AC
adds r0, r4, 0x1
b _080B04AE
.align 2, 0
_080B04A8: .4byte gTasks + 0x8
_080B04AC:
subs r0, r4, 0x1
_080B04AE:
strh r0, [r2]
lsls r1, r3, 1
mov r0, r9
lsls r2, r0, 3
adds r0, r1, r2
mov r3, r10
adds r3, 0x8
adds r0, r3
movs r4, 0
ldrsh r0, [r0, r4]
adds r4, r1, 0
cmp r0, 0x10
beq _080B04CC
cmp r0, 0
bne _080B04DA
_080B04CC:
lsls r0, r5, 1
adds r0, r2
adds r0, r3
ldrh r1, [r0]
movs r2, 0x1
eors r1, r2
strh r1, [r0]
_080B04DA:
ldr r0, _080B0510 @ =0x02019204
adds r0, 0x14
adds r0, r6, r0
ldrb r0, [r0]
adds r0, 0x5
lsls r0, 4
adds r0, 0x6
adds r1, r4, r7
add r1, r8
ldrb r2, [r1]
movs r1, 0x2
ldr r3, _080B0514 @ =0x00004bff
bl BlendPalette
_080B04F6:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x3
bls _080B047C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B0510: .4byte 0x02019204
_080B0514: .4byte 0x00004bff
thumb_func_end sub_80B0458
thumb_func_start sub_80B0518
sub_80B0518: @ 80B0518
push {r4,lr}
ldr r0, _080B0540 @ =sub_80B05FC
movs r1, 0x1E
bl CreateTask
ldr r1, _080B0544 @ =0x02019204
strb r0, [r1, 0xE]
movs r4, 0
_080B0528:
adds r0, r4, 0
bl sub_80B0548
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B0528
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B0540: .4byte sub_80B05FC
_080B0544: .4byte 0x02019204
thumb_func_end sub_80B0518
thumb_func_start sub_80B0548
sub_80B0548: @ 80B0548
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r3, _080B0580 @ =gTasks
ldr r4, _080B0584 @ =0x02019204
ldrb r2, [r4, 0xE]
lsls r1, r2, 2
adds r1, r2
adds r1, r0
lsls r1, 3
adds r3, 0x8
adds r1, r3
movs r5, 0
movs r2, 0xFF
strh r2, [r1]
lsls r0, 2
adds r0, 0x1
lsls r0, 1
ldrb r2, [r4, 0xE]
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r0, r1
adds r0, r3
strh r5, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B0580: .4byte gTasks
_080B0584: .4byte 0x02019204
thumb_func_end sub_80B0548
thumb_func_start sub_80B0588
sub_80B0588: @ 80B0588
push {r4,lr}
movs r4, 0
_080B058C:
adds r0, r4, 0
bl sub_80B05A4
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B058C
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80B0588
thumb_func_start sub_80B05A4
sub_80B05A4: @ 80B05A4
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_80B0548
adds r0, r4, 0x5
lsls r2, r0, 5
ldr r3, _080B05E8 @ =gPlttBufferUnfaded + 0x14
adds r6, r2, r3
ldr r5, _080B05EC @ =gPlttBufferFaded + 0x14
adds r2, r5
ldr r1, _080B05F0 @ =0x040000d4
str r6, [r1]
str r2, [r1, 0x4]
ldr r2, _080B05F4 @ =0x80000001
str r2, [r1, 0x8]
ldr r6, [r1, 0x8]
lsls r0, 4
adds r4, 0xC
adds r0, r4
lsls r0, 1
subs r3, 0x14
adds r3, r0, r3
subs r5, 0x14
adds r0, r5
str r3, [r1]
str r0, [r1, 0x4]
str r2, [r1, 0x8]
ldr r0, [r1, 0x8]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B05E8: .4byte gPlttBufferUnfaded + 0x14
_080B05EC: .4byte gPlttBufferFaded + 0x14
_080B05F0: .4byte 0x040000d4
_080B05F4: .4byte 0x80000001
thumb_func_end sub_80B05A4
thumb_func_start nullsub_19
nullsub_19: @ 80B05F8
bx lr
thumb_func_end nullsub_19
thumb_func_start sub_80B05FC
sub_80B05FC: @ 80B05FC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
movs r7, 0
lsls r1, r0, 2
adds r1, r0
mov r9, r1
lsls r6, r1, 3
ldr r0, _080B0664 @ =gTasks + 0x8
mov r8, r0
ldr r1, _080B0668 @ =0x00004bff
mov r10, r1
_080B061C:
lsls r0, r7, 26
lsrs r3, r0, 24
lsls r0, r3, 1
adds r0, r6
mov r4, r8
adds r2, r0, r4
movs r5, 0
ldrsh r0, [r2, r5]
cmp r0, 0xFF
beq _080B06C2
adds r0, r3, 0x2
lsls r0, 1
adds r0, r6
adds r1, r0, r4
ldrh r0, [r1]
adds r0, 0x1
movs r4, 0
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _080B06C2
strh r4, [r1]
adds r0, r3, 0x1
lsls r1, r0, 1
adds r1, r6
add r1, r8
movs r4, 0
ldrsh r1, [r1, r4]
adds r4, r0, 0
cmp r1, 0
bne _080B066C
ldrh r0, [r2]
adds r0, 0x1
b _080B0670
.align 2, 0
_080B0664: .4byte gTasks + 0x8
_080B0668: .4byte 0x00004bff
_080B066C:
ldrh r0, [r2]
subs r0, 0x1
_080B0670:
strh r0, [r2]
lsls r1, r3, 1
mov r5, r9
lsls r2, r5, 3
adds r0, r1, r2
ldr r3, _080B06DC @ =gTasks
adds r3, 0x8
adds r0, r3
movs r5, 0
ldrsh r0, [r0, r5]
adds r5, r1, 0
cmp r0, 0x10
beq _080B068E
cmp r0, 0
bne _080B069C
_080B068E:
lsls r0, r4, 1
adds r0, r2
adds r0, r3
ldrh r1, [r0]
movs r2, 0x1
eors r1, r2
strh r1, [r0]
_080B069C:
adds r4, r7, 0x5
lsls r4, 4
adds r0, r4, 0
adds r0, 0xA
adds r5, r6
add r5, r8
ldrb r2, [r5]
movs r1, 0x1
mov r3, r10
bl BlendPalette
adds r4, 0xC
adds r4, r7
ldrb r2, [r5]
adds r0, r4, 0
movs r1, 0x1
mov r3, r10
bl BlendPalette
_080B06C2:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x3
bls _080B061C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B06DC: .4byte gTasks
thumb_func_end sub_80B05FC
thumb_func_start unref_sub_80B06E0
unref_sub_80B06E0: @ 80B06E0
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
ldr r0, _080B073C @ =sub_80B0748
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
movs r3, 0
lsls r0, r5, 2
adds r0, r5
lsls r6, r0, 3
ldr r0, _080B0740 @ =gTasks + 0x8
mov r8, r0
ldr r1, _080B0744 @ =0x02019338
mov r12, r1
_080B0704:
lsls r4, r3, 2
lsls r0, r3, 26
lsrs r0, 23
adds r0, r6
add r0, r8
adds r2, r7, r3
ldrb r1, [r2]
strh r1, [r0]
ldrb r0, [r2]
cmp r0, 0
beq _080B0726
mov r1, r12
adds r0, r4, r1
ldrb r1, [r0, 0x2]
movs r2, 0x2
orrs r1, r2
strb r1, [r0, 0x2]
_080B0726:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080B0704
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080B073C: .4byte sub_80B0748
_080B0740: .4byte gTasks + 0x8
_080B0744: .4byte 0x02019338
thumb_func_end unref_sub_80B06E0
thumb_func_start sub_80B0748
sub_80B0748: @ 80B0748
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
lsls r0, 24
lsrs r0, 24
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r2, _080B07F4 @ =gTasks
movs r1, 0x8
adds r1, r2
mov r10, r1
ldr r3, [sp]
lsls r3, 2
str r3, [sp, 0x1C]
ldr r1, [sp]
adds r0, r3, r1
lsls r0, 3
str r0, [sp, 0xC]
_080B0774:
ldr r0, _080B07F8 @ =gUnknown_02038696
ldr r3, [sp, 0x4]
adds r0, r3, r0
ldrb r4, [r0]
lsls r0, r4, 26
lsrs r1, r0, 24
lsls r0, r1, 1
str r0, [sp, 0x8]
ldr r3, [sp]
lsls r0, r3, 2
adds r0, r3
lsls r6, r0, 3
ldr r3, [sp, 0x8]
adds r0, r3, r6
add r0, r10
mov r9, r0
ldrb r7, [r0]
cmp r7, 0
bne _080B079C
b _080B0910
_080B079C:
adds r3, r1, 0x1
lsls r0, r3, 1
adds r0, r6
add r0, r10
ldrb r0, [r0]
mov r8, r0
adds r2, r1, 0x2
lsls r0, r2, 1
adds r0, r6
add r0, r10
ldrb r5, [r0]
adds r1, 0x3
lsls r0, r1, 1
adds r0, r6
add r0, r10
ldrb r6, [r0]
str r3, [sp, 0x10]
str r2, [sp, 0x14]
str r1, [sp, 0x18]
cmp r7, 0x1
bne _080B0818
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
beq _080B07D2
b _080B08EA
_080B07D2:
movs r6, 0
adds r0, r4, 0x5
lsls r0, 4
adds r0, 0x1
movs r1, 0x3
adds r2, r5, 0
ldr r3, _080B07FC @ =0x00007fff
bl BlendPalette
cmp r5, 0
bne _080B0800
mov r0, r8
cmp r0, 0x4
bne _080B0800
mov r1, r9
strh r6, [r1]
b _080B08EA
.align 2, 0
_080B07F4: .4byte gTasks
_080B07F8: .4byte gUnknown_02038696
_080B07FC: .4byte 0x00007fff
_080B0800:
adds r0, r5, 0x2
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xD
bls _080B08EA
movs r5, 0
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
b _080B08EA
_080B0818:
cmp r7, 0x2
beq _080B0820
cmp r7, 0x4
bne _080B0896
_080B0820:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x3
bne _080B08EA
movs r6, 0
adds r0, r4, 0x5
lsls r0, 4
adds r0, 0x1
ldr r2, _080B0854 @ =gUnknown_083CC5A4
lsls r1, r4, 1
adds r1, r2
ldrh r3, [r1]
movs r1, 0x3
adds r2, r5, 0
bl BlendPalette
cmp r5, 0
bne _080B0858
mov r2, r8
cmp r2, 0x2
bne _080B0858
mov r3, r9
strh r6, [r3]
b _080B08EA
.align 2, 0
_080B0854: .4byte gUnknown_083CC5A4
_080B0858:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xE
bne _080B08EA
movs r5, 0
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r7, 0x4
bne _080B08EA
cmp r0, 0x1
bne _080B08EA
adds r4, 0x9
lsls r4, 4
adds r0, r4, 0x2
movs r1, 0x1
movs r2, 0x4
movs r3, 0
bl BlendPalette
adds r4, 0x5
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x4
movs r3, 0
bl BlendPalette
b _080B08EA
_080B0896:
cmp r7, 0x3
bne _080B08EA
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0xC
bne _080B08EA
movs r6, 0
adds r0, r4, 0x5
lsls r0, 4
adds r4, r0, 0x1
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
movs r3, 0
bl BlendPalette
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bne _080B08EA
ldr r0, _080B0930 @ =gPlttBufferFaded
lsls r1, r4, 1
adds r0, r1, r0
ldrh r2, [r0]
ldr r0, _080B0934 @ =gPlttBufferUnfaded
adds r1, r0
ldrh r0, [r1]
ldr r1, _080B0938 @ =0x040000d4
str r2, [r1]
str r0, [r1, 0x4]
movs r0, 0x80
lsls r0, 24
orrs r7, r0
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
ldr r1, [sp, 0x8]
ldr r2, [sp, 0xC]
adds r0, r1, r2
add r0, r10
strh r6, [r0]
_080B08EA:
ldr r3, [sp, 0x10]
lsls r0, r3, 1
ldr r1, [sp, 0xC]
adds r0, r1
add r0, r10
mov r2, r8
strh r2, [r0]
ldr r3, [sp, 0x14]
lsls r0, r3, 1
adds r0, r1
add r0, r10
strh r5, [r0]
ldr r1, [sp, 0x18]
lsls r0, r1, 1
ldr r2, [sp, 0xC]
adds r0, r2
add r0, r10
strh r6, [r0]
ldr r2, _080B093C @ =gTasks
_080B0910:
ldr r0, [sp, 0x4]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
cmp r0, 0x3
bhi _080B0920
b _080B0774
_080B0920:
movs r4, 0
ldr r3, [sp, 0x1C]
ldr r1, [sp]
adds r0, r3, r1
lsls r1, r0, 3
adds r2, 0x8
adds r0, r1, r2
b _080B0950
.align 2, 0
_080B0930: .4byte gPlttBufferFaded
_080B0934: .4byte gPlttBufferUnfaded
_080B0938: .4byte 0x040000d4
_080B093C: .4byte gTasks
_080B0940:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bhi _080B0958
lsls r0, r4, 3
adds r0, r1
adds r0, r2
_080B0950:
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
beq _080B0940
_080B0958:
cmp r4, 0x4
bne _080B0980
movs r4, 0
ldr r3, _080B0990 @ =0x02019338
movs r5, 0x3
negs r5, r5
_080B0964:
lsls r1, r4, 2
adds r1, r3
ldrb r2, [r1, 0x2]
adds r0, r5, 0
ands r0, r2
strb r0, [r1, 0x2]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B0964
ldr r0, [sp]
bl DestroyTask
_080B0980:
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B0990: .4byte 0x02019338
thumb_func_end sub_80B0748
thumb_func_start unref_sub_80B0994
unref_sub_80B0994: @ 80B0994
push {lr}
lsls r0, 24
cmp r0, 0
beq _080B09A6
ldr r0, _080B09AC @ =0x02019204
ldrb r1, [r0, 0x6]
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x6]
_080B09A6:
pop {r0}
bx r0
.align 2, 0
_080B09AC: .4byte 0x02019204
thumb_func_end unref_sub_80B0994
thumb_func_start sub_80B09B0
sub_80B09B0: @ 80B09B0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
ldr r1, _080B09D4 @ =0x02019260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080B09D8
adds r0, r2, 0
bl sub_80B0368
b _080B09DE
.align 2, 0
_080B09D4: .4byte 0x02019260
_080B09D8:
adds r0, r2, 0
bl sub_80B03A8
_080B09DE:
pop {r0}
bx r0
thumb_func_end sub_80B09B0
thumb_func_start sub_80B09E4
sub_80B09E4: @ 80B09E4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
mov r9, r0
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r0, _080B0B2C @ =gUnknown_02038696
mov r1, r9
adds r7, r1, r0
ldrb r0, [r7]
lsls r5, r0, 2
adds r5, r0
lsls r5, 27
movs r2, 0x80
lsls r2, 22
adds r5, r2
lsrs r5, 24
lsls r4, r1, 3
ldr r0, _080B0B30 @ =gUnknown_083CC4B4
adds r0, r4, r0
bl LoadCompressedObjectPic
ldr r0, _080B0B34 @ =gUnknown_083CC4D4
adds r4, r0
adds r0, r4, 0
bl LoadSpritePalette
mov r3, r9
lsls r4, r3, 1
add r4, r9
lsls r4, 3
ldr r0, _080B0B38 @ =gSpriteTemplate_83CC53C
adds r4, r0
adds r0, r4, 0
movs r1, 0xB8
adds r2, r5, 0
movs r3, 0x1D
bl CreateSprite
mov r8, r0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
adds r0, r4, 0
movs r1, 0xF8
adds r2, r5, 0
movs r3, 0x1D
bl CreateSprite
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
ldr r1, _080B0B3C @ =gSprites
mov r10, r1
lsls r5, r6, 4
adds r5, r6
lsls r5, 2
add r5, r10
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x40
ldr r3, _080B0B40 @ =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, _080B0B44 @ =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
ldrb r0, [r7]
lsls r3, r0, 2
adds r3, r0
lsls r3, 6
ldr r0, _080B0B48 @ =0x0600e026
adds r3, r0
mov r1, r8
lsls r4, r1, 4
add r4, r8
lsls r4, 2
add r4, r10
ldrh r0, [r4, 0x4]
lsls r0, 22
lsrs r0, 17
ldr r2, _080B0B4C @ =0x06010000
mov r10, r2
add r0, r10
str r0, [sp]
movs r0, 0
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
bl sub_8040F80
ldrb r0, [r7]
lsls r3, r0, 2
adds r3, r0
lsls r3, 6
ldr r7, _080B0B50 @ =0x0600e036
adds r3, r7
ldrh r0, [r5, 0x4]
lsls r0, 22
lsrs r0, 17
add r0, r10
str r0, [sp]
movs r0, 0
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
bl sub_8040F80
ldrh r0, [r4, 0x4]
lsls r0, 22
lsrs r0, 17
movs r1, 0xA0
lsls r1, 3
adds r0, r1
add r0, r10
movs r2, 0
str r2, [sp, 0x8]
ldr r1, _080B0B54 @ =0x040000d4
add r3, sp, 0x8
mov r12, r3
str r3, [r1]
str r0, [r1, 0x4]
ldr r3, _080B0B58 @ =0x850000c0
str r3, [r1, 0x8]
ldr r0, [r1, 0x8]
add r0, sp, 0x4
strb r2, [r0]
strb r2, [r0]
ldrh r0, [r5, 0x4]
lsls r0, 22
lsrs r0, 17
movs r7, 0xA0
lsls r7, 3
adds r0, r7
add r0, r10
str r2, [sp, 0x8]
mov r2, r12
str r2, [r1]
str r0, [r1, 0x4]
str r3, [r1, 0x8]
ldr r0, [r1, 0x8]
strh r6, [r4, 0x2E]
mov r3, r8
strh r3, [r5, 0x2E]
mov r7, r9
strh r7, [r4, 0x30]
mov r0, r9
strh r0, [r5, 0x30]
mov r0, r8
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080B0B2C: .4byte gUnknown_02038696
_080B0B30: .4byte gUnknown_083CC4B4
_080B0B34: .4byte gUnknown_083CC4D4
_080B0B38: .4byte gSpriteTemplate_83CC53C
_080B0B3C: .4byte gSprites
_080B0B40: .4byte 0x000003ff
_080B0B44: .4byte 0xfffffc00
_080B0B48: .4byte 0x0600e026
_080B0B4C: .4byte 0x06010000
_080B0B50: .4byte 0x0600e036
_080B0B54: .4byte 0x040000d4
_080B0B58: .4byte 0x850000c0
thumb_func_end sub_80B09E4
thumb_func_start sub_80B0B5C
sub_80B0B5C: @ 80B0B5C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _080B0B94 @ =gSprites
lsls r5, r0, 4
adds r5, r0
lsls r5, 2
adds r5, r1
ldrh r0, [r5, 0x2E]
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r4, r1
adds r0, r4, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroySprite
adds r0, r5, 0
bl DestroySpriteAndFreeResources
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B0B94: .4byte gSprites
thumb_func_end sub_80B0B5C
thumb_func_start sub_80B0B98
sub_80B0B98: @ 80B0B98
ldr r1, _080B0BAC @ =REG_BLDCNT
movs r2, 0xFD
lsls r2, 6
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x2
ldr r2, _080B0BB0 @ =0x00000907
adds r0, r2, 0
strh r0, [r1]
bx lr
.align 2, 0
_080B0BAC: .4byte REG_BLDCNT
_080B0BB0: .4byte 0x00000907
thumb_func_end sub_80B0B98
thumb_func_start sub_80B0BB4
sub_80B0BB4: @ 80B0BB4
ldr r0, _080B0BC0 @ =REG_BLDCNT
movs r1, 0
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
bx lr
.align 2, 0
_080B0BC0: .4byte REG_BLDCNT
thumb_func_end sub_80B0BB4
thumb_func_start sub_80B0BC4
sub_80B0BC4: @ 80B0BC4
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
adds r4, r0, 0
mov r9, r1
lsls r4, 24
lsrs r4, 24
mov r0, r9
lsls r0, 24
lsrs r0, 24
mov r9, r0
bl sub_80B0B98
ldr r1, _080B0C38 @ =gSprites
mov r8, r1
lsls r6, r4, 4
adds r6, r4
lsls r6, 2
adds r0, r6, r1
movs r1, 0x30
ldrsh r2, [r0, r1]
lsls r2, 2
ldr r1, _080B0C3C @ =0x02019338
adds r2, r1
ldrb r1, [r2, 0x2]
movs r3, 0x2
orrs r1, r3
strb r1, [r2, 0x2]
ldrh r5, [r0, 0x2E]
lsls r5, 24
lsrs r5, 24
movs r1, 0x1
bl StartSpriteAffineAnim
lsls r4, r5, 4
adds r4, r5
lsls r4, 2
mov r1, r8
adds r0, r4, r1
movs r1, 0x1
bl StartSpriteAffineAnim
movs r0, 0x1C
add r8, r0
add r6, r8
ldr r0, _080B0C40 @ =sub_80B0C5C
str r0, [r6]
add r4, r8
ldr r0, _080B0C44 @ =SpriteCallbackDummy
str r0, [r4]
mov r1, r9
cmp r1, 0
bne _080B0C48
movs r0, 0x65
bl PlaySE
b _080B0C4E
.align 2, 0
_080B0C38: .4byte gSprites
_080B0C3C: .4byte 0x02019338
_080B0C40: .4byte sub_80B0C5C
_080B0C44: .4byte SpriteCallbackDummy
_080B0C48:
movs r0, 0x2
bl PlaySE
_080B0C4E:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80B0BC4
thumb_func_start sub_80B0C5C
sub_80B0C5C: @ 80B0C5C
push {lr}
mov r12, r0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080B0CA4
mov r0, r12
ldrh r1, [r0, 0x2E]
lsls r1, 24
lsrs r1, 24
ldr r2, _080B0CA8 @ =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r0, r2
adds r0, r1, 0
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 26
cmp r0, 0
bge _080B0CA4
mov r3, r12
adds r3, 0x3E
ldrb r0, [r3]
movs r2, 0x4
orrs r0, r2
strb r0, [r3]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r0, _080B0CAC @ =sub_80B0CB0
mov r1, r12
str r0, [r1, 0x1C]
_080B0CA4:
pop {r0}
bx r0
.align 2, 0
_080B0CA8: .4byte gSprites
_080B0CAC: .4byte sub_80B0CB0
thumb_func_end sub_80B0C5C
thumb_func_start sub_80B0CB0
sub_80B0CB0: @ 80B0CB0
push {lr}
movs r1, 0x30
ldrsh r2, [r0, r1]
lsls r2, 2
ldr r1, _080B0CD8 @ =0x02019338
adds r2, r1
ldrb r3, [r2, 0x2]
movs r1, 0x3
negs r1, r1
ands r1, r3
strb r1, [r2, 0x2]
ldrh r0, [r0, 0x2E]
lsls r0, 24
lsrs r0, 24
bl sub_80B0B5C
bl sub_80B0BB4
pop {r0}
bx r0
.align 2, 0
_080B0CD8: .4byte 0x02019338
thumb_func_end sub_80B0CB0
thumb_func_start sub_80B0CDC
sub_80B0CDC: @ 80B0CDC
lsls r0, 24
lsrs r0, 22
ldr r1, _080B0CF0 @ =0x02019338
adds r0, r1
ldrb r2, [r0, 0x2]
movs r1, 0x3
negs r1, r1
ands r1, r2
strb r1, [r0, 0x2]
bx lr
.align 2, 0
_080B0CF0: .4byte 0x02019338
thumb_func_end sub_80B0CDC
thumb_func_start unref_sub_80B0CF4
unref_sub_80B0CF4: @ 80B0CF4
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r0, _080B0D5C @ =0x02000000
movs r1, 0xC0
lsls r1, 9
adds r0, r1
ldrb r1, [r0]
movs r2, 0x1
eors r1, r2
strb r1, [r0]
cmp r1, 0
bne _080B0D6C
movs r4, 0
ldr r6, _080B0D60 @ =gUnknown_083CA308
adds r3, r6, 0x1
mov r8, r3
ldr r5, _080B0D64 @ =gUnknown_083CA310
adds r7, r5, 0x1
_080B0D1C:
lsls r1, r4, 1
adds r0, r1, r6
ldrb r2, [r0]
mov r3, r8
adds r0, r1, r3
ldrb r3, [r0]
adds r0, r1, r5
ldrb r0, [r0]
adds r0, 0x5
lsls r0, 24
lsrs r0, 24
str r0, [sp]
adds r1, r7
ldrb r0, [r1]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
ldr r0, _080B0D68 @ =gUnknown_03004210
movs r1, 0
bl FillWindowRect_DefaultPalette
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B0D1C
bl sub_80AE514
bl sub_80AEB30
b _080B0D70
.align 2, 0
_080B0D5C: .4byte 0x02000000
_080B0D60: .4byte gUnknown_083CA308
_080B0D64: .4byte gUnknown_083CA310
_080B0D68: .4byte gUnknown_03004210
_080B0D6C:
bl sub_80B0D7C
_080B0D70:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end unref_sub_80B0CF4
thumb_func_start sub_80B0D7C
sub_80B0D7C: @ 80B0D7C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
movs r5, 0
ldr r0, _080B0ED0 @ =0x02000000
movs r1, 0xC0
lsls r1, 9
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080B0D98
b _080B0EC2
_080B0D98:
movs r4, 0
ldr r7, _080B0ED4 @ =gUnknown_083CA308
adds r3, r7, 0x1
mov r9, r3
ldr r6, _080B0ED8 @ =gUnknown_083CA310
adds r0, r6, 0x1
mov r8, r0
_080B0DA6:
lsls r1, r4, 1
adds r0, r1, r7
ldrb r2, [r0]
mov r3, r9
adds r0, r1, r3
ldrb r3, [r0]
adds r0, r1, r6
ldrb r0, [r0]
adds r0, 0x5
lsls r0, 24
lsrs r0, 24
str r0, [sp]
add r1, r8
ldrb r0, [r1]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
ldr r0, _080B0EDC @ =gUnknown_03004210
movs r1, 0
bl FillWindowRect_DefaultPalette
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B0DA6
movs r4, 0
ldr r6, _080B0ED8 @ =gUnknown_083CA310
adds r7, r6, 0x1
_080B0DE2:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
ldr r1, _080B0EE0 @ =0x02019260
adds r0, r1
ldrh r2, [r0, 0x4]
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bge _080B0E08
negs r0, r0
lsls r0, 16
lsrs r2, r0, 16
add r1, sp, 0x8
movs r0, 0xAE
strb r0, [r1]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_080B0E08:
mov r0, sp
adds r0, r5
adds r0, 0x8
lsls r1, r2, 16
asrs r1, 16
movs r2, 0
movs r3, 0x4
bl ConvertIntToDecimalStringN
ldr r0, _080B0EE4 @ =gUnknown_02038696
adds r0, r4, r0
ldrb r0, [r0]
movs r1, 0x16
adds r2, r0, 0
muls r2, r1
movs r3, 0x94
lsls r3, 2
adds r2, r3
lsls r0, 1
adds r1, r0, r6
ldrb r3, [r1]
adds r0, r7
ldrb r0, [r0]
str r0, [sp]
ldr r0, _080B0EDC @ =gUnknown_03004210
add r1, sp, 0x8
bl sub_8003460
movs r5, 0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B0DE2
movs r4, 0
ldr r6, _080B0ED4 @ =gUnknown_083CA308
adds r7, r6, 0x1
_080B0E52:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
ldr r1, _080B0EE0 @ =0x02019260
adds r0, r1
ldrh r2, [r0, 0x2]
movs r1, 0x2
ldrsh r0, [r0, r1]
cmp r0, 0
bge _080B0E78
negs r0, r0
lsls r0, 16
lsrs r2, r0, 16
add r1, sp, 0x8
movs r0, 0xAE
strb r0, [r1]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_080B0E78:
mov r0, sp
adds r0, r5
adds r0, 0x8
lsls r1, r2, 16
asrs r1, 16
movs r2, 0
movs r3, 0x4
bl ConvertIntToDecimalStringN
ldr r0, _080B0EE4 @ =gUnknown_02038696
adds r0, r4, r0
ldrb r1, [r0]
lsls r2, r1, 2
adds r2, r1
lsls r2, 18
movs r3, 0x80
lsls r3, 18
adds r2, r3
lsrs r2, 16
lsls r1, 1
adds r0, r1, r6
ldrb r3, [r0]
adds r1, r7
ldrb r0, [r1]
str r0, [sp]
ldr r0, _080B0EDC @ =gUnknown_03004210
add r1, sp, 0x8
bl sub_8003460
movs r5, 0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080B0E52
bl sub_80AEB30
_080B0EC2:
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B0ED0: .4byte 0x02000000
_080B0ED4: .4byte gUnknown_083CA308
_080B0ED8: .4byte gUnknown_083CA310
_080B0EDC: .4byte gUnknown_03004210
_080B0EE0: .4byte 0x02019260
_080B0EE4: .4byte gUnknown_02038696
thumb_func_end sub_80B0D7C
thumb_func_start unref_sub_80B0EE8
unref_sub_80B0EE8: @ 80B0EE8
push {r4-r7,lr}
adds r7, r0, 0
movs r4, 0
subs r0, r1, 0x1
cmp r4, r0
bge _080B0F20
adds r6, r0, 0
_080B0EF6:
adds r3, r0, 0
adds r5, r4, 0x1
cmp r0, r4
ble _080B0F18
lsls r0, 2
subs r0, 0x4
adds r0, r7
_080B0F04:
ldr r1, [r0]
ldr r2, [r0, 0x4]
cmp r1, r2
ble _080B0F10
str r1, [r0, 0x4]
str r2, [r0]
_080B0F10:
subs r0, 0x4
subs r3, 0x1
cmp r3, r4
bgt _080B0F04
_080B0F18:
adds r4, r5, 0
adds r0, r6, 0
cmp r4, r0
blt _080B0EF6
_080B0F20:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end unref_sub_80B0EE8
thumb_func_start sub_80B0F28
sub_80B0F28: @ 80B0F28
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
mov r8, r0
add r4, sp, 0x4
adds r0, r4, 0
movs r1, 0
movs r2, 0x8
bl memset
movs r5, 0
add r4, sp, 0x4
adds r6, r4, 0
movs r7, 0
_080B0F4E:
bl Random
adds r1, r0, 0
mov r0, sp
adds r0, r7
adds r0, 0x4
strh r1, [r0]
movs r2, 0
cmp r2, r5
bge _080B0F86
lsls r0, r1, 16
lsrs r0, 16
mov r1, sp
ldrh r1, [r1, 0x4]
cmp r0, r1
beq _080B0F80
_080B0F6E:
adds r2, 0x1
cmp r2, r5
bge _080B0F86
lsls r0, r2, 1
adds r0, r4, r0
ldrh r1, [r6]
ldrh r0, [r0]
cmp r1, r0
bne _080B0F6E
_080B0F80:
subs r6, 0x2
subs r7, 0x2
subs r5, 0x1
_080B0F86:
adds r6, 0x2
adds r7, 0x2
adds r5, 0x1
cmp r5, 0x3
ble _080B0F4E
mov r2, r8
cmp r2, 0
bne _080B1050
movs r5, 0
ldr r3, _080B1008 @ =gUnknown_02038696
mov r8, r3
_080B0F9C:
mov r6, r8
strb r5, [r6]
movs r4, 0
cmp r4, r5
bge _080B1018
ldr r7, _080B100C @ =gUnknown_02038670
mov r9, r7
lsls r0, r5, 1
adds r1, r0, 0
add r1, r9
mov r12, r1
mov r2, sp
adds r2, 0x4
str r2, [sp, 0xC]
add r0, sp
adds r0, 0x4
str r0, [sp, 0x10]
ldr r3, _080B1008 @ =gUnknown_02038696
adds r6, r3, 0
mov r10, r6
_080B0FC4:
ldrb r0, [r3]
lsls r2, r0, 1
mov r7, r9
adds r0, r2, r7
movs r6, 0
ldrsh r1, [r0, r6]
mov r7, r12
movs r6, 0
ldrsh r0, [r7, r6]
cmp r1, r0
blt _080B0FEC
cmp r1, r0
bne _080B1010
ldr r7, [sp, 0xC]
adds r0, r7, r2
ldrh r0, [r0]
ldr r1, [sp, 0x10]
ldrh r1, [r1]
cmp r0, r1
bcs _080B1010
_080B0FEC:
adds r2, r5, 0
cmp r5, r4
ble _080B1004
subs r0, r5, 0x1
mov r6, r10
adds r1, r0, r6
_080B0FF8:
ldrb r0, [r1]
strb r0, [r1, 0x1]
subs r1, 0x1
subs r2, 0x1
cmp r2, r4
bgt _080B0FF8
_080B1004:
strb r5, [r3]
b _080B1018
.align 2, 0
_080B1008: .4byte gUnknown_02038696
_080B100C: .4byte gUnknown_02038670
_080B1010:
adds r3, 0x1
adds r4, 0x1
cmp r4, r5
blt _080B0FC4
_080B1018:
cmp r4, r5
bne _080B1020
mov r7, r8
strb r5, [r7]
_080B1020:
movs r0, 0x1
add r8, r0
adds r5, 0x1
cmp r5, 0x3
ble _080B0F9C
ldr r4, _080B104C @ =gUnknown_02038696
mov r0, sp
adds r1, r4, 0
movs r2, 0x4
bl memcpy
movs r5, 0
_080B1038:
mov r1, sp
adds r0, r1, r5
ldrb r0, [r0]
adds r0, r4
strb r5, [r0]
adds r5, 0x1
cmp r5, 0x3
ble _080B1038
b _080B10FC
.align 2, 0
_080B104C: .4byte gUnknown_02038696
_080B1050:
mov r0, sp
movs r1, 0xFF
movs r2, 0x4
bl memset
movs r5, 0
ldr r3, _080B1070 @ =gUnknown_02038696
movs r6, 0
_080B1060:
ldr r0, _080B1074 @ =0x02019260
adds r0, r6, r0
ldrb r0, [r0, 0xB]
lsls r0, 30
lsrs r2, r0, 30
mov r7, sp
adds r1, r7, r2
b _080B1082
.align 2, 0
_080B1070: .4byte gUnknown_02038696
_080B1074: .4byte 0x02019260
_080B1078:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
mov r0, sp
adds r1, r0, r2
_080B1082:
ldrb r0, [r1]
cmp r0, 0xFF
bne _080B1078
strb r5, [r1]
strb r2, [r3]
adds r3, 0x1
adds r6, 0x1C
adds r5, 0x1
cmp r5, 0x3
ble _080B1060
movs r5, 0
_080B1098:
movs r4, 0x3
adds r1, r5, 0x1
mov r10, r1
cmp r4, r5
ble _080B10F6
mov r9, r4
ldr r2, _080B110C @ =gUnknown_02038696
mov r8, r2
add r3, sp, 0x4
mov r12, r3
_080B10AC:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
ldr r6, _080B1110 @ =0x02019244
adds r1, r0, r6
ldrb r2, [r1, 0xB]
ldr r7, _080B1114 @ =0x02019260
adds r0, r7
ldrb r3, [r0, 0xB]
mov r1, r9
ands r1, r2
mov r0, r9
ands r0, r3
subs r3, r4, 0x1
cmp r1, r0
bne _080B10F0
mov r0, r8
adds r7, r3, r0
adds r2, r4, r0
ldrb r6, [r7]
ldrb r1, [r2]
cmp r6, r1
bcs _080B10F0
lsls r0, r3, 1
add r0, r12
lsls r1, r4, 1
add r1, r12
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
bcs _080B10F0
ldrb r0, [r2]
strb r6, [r2]
strb r0, [r7]
_080B10F0:
adds r4, r3, 0
cmp r4, r5
bgt _080B10AC
_080B10F6:
mov r5, r10
cmp r5, 0x2
ble _080B1098
_080B10FC:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B110C: .4byte gUnknown_02038696
_080B1110: .4byte 0x02019244
_080B1114: .4byte 0x02019260
thumb_func_end sub_80B0F28
thumb_func_start sub_80B1118
sub_80B1118: @ 80B1118
push {r4,r5,lr}
movs r4, 0
movs r5, 0xA0
_080B111E:
ldr r0, _080B1144 @ =0x02018004
adds r0, r5, r0
ldr r1, _080B1148 @ =gUnknown_02038696
adds r1, r4, r1
ldrb r1, [r1]
adds r1, 0x5
lsls r1, 4
movs r2, 0x20
bl LoadPalette
adds r5, 0x20
adds r4, 0x1
cmp r4, 0x3
ble _080B111E
bl sub_80AE514
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B1144: .4byte 0x02018004
_080B1148: .4byte gUnknown_02038696
thumb_func_end sub_80B1118
thumb_func_start sub_80B114C
sub_80B114C: @ 80B114C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r7, r6, 3
subs r0, r7, r6
lsls r0, 2
ldr r4, _080B11B8 @ =0x02019260
adds r5, r0, r4
movs r0, 0
strh r0, [r5, 0x2]
strh r0, [r5]
adds r0, r6, 0
bl sub_80AF404
lsls r0, 24
mov r8, r4
cmp r0, 0
bne _080B1176
b _080B13DC
_080B1176:
ldrh r0, [r5, 0x6]
ldr r1, _080B11BC @ =gContestMoves
lsls r0, 3
adds r0, r1
ldrb r1, [r0]
mov r12, r1
ldrb r0, [r0, 0x1]
lsls r0, 29
lsrs r0, 29
strb r0, [r5, 0xA]
ldrh r0, [r5, 0x6]
ldrh r1, [r5, 0x8]
cmp r0, r1
bne _080B11C0
cmp r0, 0
beq _080B11C0
ldrb r0, [r5, 0x15]
movs r1, 0x1
orrs r0, r1
strb r0, [r5, 0x15]
ldrb r2, [r5, 0xB]
lsls r1, r2, 25
lsrs r1, 29
adds r1, 0x1
movs r0, 0x7
ands r1, r0
lsls r1, 4
movs r0, 0x71
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0xB]
b _080B11D8
.align 2, 0
_080B11B8: .4byte 0x02019260
_080B11BC: .4byte gContestMoves
_080B11C0:
lsls r4, r6, 3
subs r1, r4, r6
lsls r1, 2
ldr r3, _080B1264 @ =0x02019260
adds r1, r3
ldrb r2, [r1, 0xB]
movs r0, 0x71
negs r0, r0
ands r0, r2
strb r0, [r1, 0xB]
adds r7, r4, 0
mov r8, r3
_080B11D8:
subs r0, r7, r6
lsls r0, 2
add r0, r8
ldr r2, _080B1268 @ =gContestEffects
mov r1, r12
lsls r3, r1, 2
adds r2, r3, r2
ldrb r1, [r2, 0x1]
strh r1, [r0]
strh r1, [r0, 0x2]
mov r0, r8
adds r0, 0x70
ldrb r1, [r2, 0x2]
strh r1, [r0, 0x4]
strh r1, [r0, 0x6]
strb r6, [r0, 0x11]
movs r2, 0
adds r4, r3, 0
movs r1, 0
mov r5, r8
adds r5, 0x7D
mov r3, r8
_080B1204:
strb r1, [r3, 0xE]
adds r0, r5, r2
strb r1, [r0]
adds r3, 0x1C
adds r2, 0x1
cmp r2, 0x3
ble _080B1204
subs r0, r7, r6
lsls r0, 2
ldr r1, _080B1264 @ =0x02019260
adds r5, r0, r1
ldrb r1, [r5, 0x15]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080B123C
ldrh r0, [r5, 0x8]
ldrh r1, [r5, 0x6]
bl AreMovesContestCombo
lsls r0, 24
cmp r0, 0
bne _080B123C
ldrb r1, [r5, 0x15]
movs r0, 0x11
negs r0, r0
ands r0, r1
strb r0, [r5, 0x15]
_080B123C:
ldr r0, _080B126C @ =gContestEffectFuncs
adds r0, r4, r0
ldr r0, [r0]
bl _call_via_r0
subs r0, r7, r6
lsls r0, 2
ldr r1, _080B1264 @ =0x02019260
adds r2, r0, r1
ldrb r1, [r2, 0x10]
movs r0, 0x30
ands r0, r1
cmp r0, 0x10
bne _080B1270
ldrh r1, [r2, 0x2]
subs r1, 0xA
movs r0, 0xD
ldrsb r0, [r2, r0]
b _080B128A
.align 2, 0
_080B1264: .4byte 0x02019260
_080B1268: .4byte gContestEffects
_080B126C: .4byte gContestEffectFuncs
_080B1270:
ldrb r1, [r2, 0x11]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080B1284
movs r1, 0xD
ldrsb r1, [r2, r1]
lsls r0, r1, 1
adds r0, r1
b _080B1288
_080B1284:
movs r0, 0xD
ldrsb r0, [r2, r0]
_080B1288:
ldrh r1, [r2, 0x2]
_080B128A:
adds r0, r1
strh r0, [r2, 0x2]
subs r0, r7, r6
lsls r0, 2
ldr r1, _080B12E8 @ =0x02019260
adds r4, r0, r1
movs r0, 0
strb r0, [r4, 0x16]
ldrb r1, [r4, 0x15]
subs r0, 0x41
ands r0, r1
strb r0, [r4, 0x15]
adds r0, r6, 0
bl sub_80B214C
lsls r0, 24
cmp r0, 0
beq _080B1322
ldrh r0, [r4, 0x8]
ldrh r1, [r4, 0x6]
bl AreMovesContestCombo
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _080B12EC
ldrb r1, [r4, 0x15]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080B12EC
strb r2, [r4, 0x16]
movs r0, 0x40
orrs r1, r0
movs r0, 0x11
negs r0, r0
ands r1, r0
movs r0, 0
ldrsh r2, [r4, r0]
ldrb r0, [r4, 0x16]
muls r0, r2
strb r0, [r4, 0x17]
movs r0, 0x8
orrs r1, r0
strb r1, [r4, 0x15]
b _080B1322
.align 2, 0
_080B12E8: .4byte 0x02019260
_080B12EC:
ldr r2, _080B1310 @ =gContestMoves
subs r0, r7, r6
lsls r0, 2
ldr r1, _080B1314 @ =0x02019260
adds r3, r0, r1
ldrh r0, [r3, 0x6]
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x2]
cmp r0, 0
beq _080B1318
ldrb r0, [r3, 0x15]
movs r1, 0x10
orrs r0, r1
movs r1, 0x40
orrs r0, r1
b _080B1320
.align 2, 0
_080B1310: .4byte gContestMoves
_080B1314: .4byte 0x02019260
_080B1318:
ldrb r1, [r3, 0x15]
movs r0, 0x11
negs r0, r0
ands r0, r1
_080B1320:
strb r0, [r3, 0x15]
_080B1322:
subs r0, r7, r6
lsls r0, 2
ldr r1, _080B139C @ =0x02019260
mov r8, r1
adds r4, r0, r1
ldrb r1, [r4, 0x15]
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080B1348
ldrb r0, [r4, 0xB]
lsls r0, 25
lsrs r0, 29
adds r0, 0x1
lsls r1, r0, 2
adds r1, r0
lsls r1, 1
strb r1, [r4, 0x18]
_080B1348:
ldrb r1, [r4, 0xC]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080B1362
ldrb r0, [r4, 0x15]
movs r1, 0x11
negs r1, r1
ands r1, r0
strb r1, [r4, 0x15]
movs r0, 0
strh r0, [r4, 0x2]
strh r0, [r4]
_080B1362:
ldrh r0, [r4, 0x6]
bl contest_get_move_excitement
mov r2, r8
adds r2, 0xC8
strb r0, [r2]
ldrb r1, [r4, 0x11]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080B137A
strb r5, [r2]
_080B137A:
movs r0, 0
ldrsb r0, [r2, r0]
cmp r0, 0
ble _080B13A4
mov r0, r8
subs r0, 0x5C
ldrb r0, [r0, 0x13]
lsls r0, 24
asrs r0, 24
movs r1, 0
ldrsb r1, [r2, r1]
adds r0, r1
cmp r0, 0x4
ble _080B13A0
movs r0, 0x3C
b _080B13A6
.align 2, 0
_080B139C: .4byte 0x02019260
_080B13A0:
movs r0, 0xA
b _080B13A6
_080B13A4:
movs r0, 0
_080B13A6:
strb r0, [r2, 0x2]
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
bl __umodsi3
lsls r0, 24
lsrs r0, 24
movs r2, 0
b _080B13CA
_080B13BE:
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
_080B13C4:
adds r2, 0x1
cmp r2, 0x3
bgt _080B13D2
_080B13CA:
cmp r2, r6
beq _080B13C4
cmp r0, 0
bne _080B13BE
_080B13D2:
subs r0, r7, r6
lsls r0, 2
ldr r1, _080B13E8 @ =0x02019260
adds r0, r1
strb r2, [r0, 0x1B]
_080B13DC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B13E8: .4byte 0x02019260
thumb_func_end sub_80B114C
thumb_func_start sub_80B13EC
sub_80B13EC: @ 80B13EC
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
ldr r0, _080B1400 @ =0x02019260
adds r2, r0
strb r1, [r2, 0x13]
bx lr
.align 2, 0
_080B1400: .4byte 0x02019260
thumb_func_end sub_80B13EC
thumb_func_start sub_80B1404
sub_80B1404: @ 80B1404
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
ldr r0, _080B1418 @ =0x02019260
adds r2, r0
strb r1, [r2, 0x14]
bx lr
.align 2, 0
_080B1418: .4byte 0x02019260
thumb_func_end sub_80B1404
thumb_func_start sub_80B141C
sub_80B141C: @ 80B141C
push {lr}
lsls r0, 24
lsrs r0, 24
adds r3, r0, 0
lsls r1, 24
lsrs r1, 24
adds r2, r1, 0
cmp r1, 0x3B
bls _080B1436
movs r1, 0x35
bl sub_80B13EC
b _080B1466
_080B1436:
cmp r1, 0x27
bls _080B1442
movs r1, 0x34
bl sub_80B13EC
b _080B1466
_080B1442:
cmp r1, 0x1D
bls _080B144E
movs r1, 0x33
bl sub_80B13EC
b _080B1466
_080B144E:
cmp r1, 0x13
bls _080B145A
movs r1, 0x32
bl sub_80B13EC
b _080B1466
_080B145A:
cmp r2, 0x9
bls _080B1466
adds r0, r3, 0
movs r1, 0x31
bl sub_80B13EC
_080B1466:
pop {r0}
bx r0
thumb_func_end sub_80B141C
thumb_func_start sub_80B146C
sub_80B146C: @ 80B146C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r1, 24
lsrs r5, r1, 24
ldr r0, _080B14C8 @ =gStringVar1
lsls r1, r4, 6
ldr r2, _080B14CC @ =gUnknown_02038572
adds r1, r2
bl StringCopy
ldr r0, _080B14D0 @ =gStringVar2
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
ldr r4, _080B14D4 @ =0x02019260
adds r1, r4
ldrh r2, [r1, 0x6]
movs r1, 0xD
muls r1, r2
ldr r2, _080B14D8 @ =gMoveNames
adds r1, r2
bl StringCopy
ldr r2, _080B14DC @ =gContestMoves
adds r0, r4, 0
adds r0, 0x70
ldrb r1, [r0, 0x11]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r4
ldrh r0, [r0, 0x6]
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x1]
lsls r1, r0, 29
cmp r1, 0
bne _080B14E8
ldr r0, _080B14E0 @ =gStringVar3
ldr r1, _080B14E4 @ =gUnknown_083CC280
bl StringCopy
b _080B1538
.align 2, 0
_080B14C8: .4byte gStringVar1
_080B14CC: .4byte gUnknown_02038572
_080B14D0: .4byte gStringVar2
_080B14D4: .4byte 0x02019260
_080B14D8: .4byte gMoveNames
_080B14DC: .4byte gContestMoves
_080B14E0: .4byte gStringVar3
_080B14E4: .4byte gUnknown_083CC280
_080B14E8:
lsrs r0, r1, 29
cmp r0, 0x1
bne _080B1500
ldr r0, _080B14F8 @ =gStringVar3
ldr r1, _080B14FC @ =gUnknown_083CC288
bl StringCopy
b _080B1538
.align 2, 0
_080B14F8: .4byte gStringVar3
_080B14FC: .4byte gUnknown_083CC288
_080B1500:
lsrs r0, r1, 29
cmp r0, 0x2
bne _080B1518
ldr r0, _080B1510 @ =gStringVar3
ldr r1, _080B1514 @ =gUnknown_083CC290
bl StringCopy
b _080B1538
.align 2, 0
_080B1510: .4byte gStringVar3
_080B1514: .4byte gUnknown_083CC290
_080B1518:
lsrs r0, r1, 29
cmp r0, 0x3
bne _080B1530
ldr r0, _080B1528 @ =gStringVar3
ldr r1, _080B152C @ =gUnknown_083CC299
bl StringCopy
b _080B1538
.align 2, 0
_080B1528: .4byte gStringVar3
_080B152C: .4byte gUnknown_083CC299
_080B1530:
ldr r0, _080B1568 @ =gStringVar3
ldr r1, _080B156C @ =gUnknown_083CC2A3
bl StringCopy
_080B1538:
ldr r4, _080B1570 @ =gStringVar4
ldr r1, _080B1574 @ =gUnknown_083CC188
lsls r0, r5, 2
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80AF138
ldr r0, _080B1578 @ =gMenuWindow
movs r2, 0xC2
lsls r2, 2
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x1
bl sub_8002EB0
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B1568: .4byte gStringVar3
_080B156C: .4byte gUnknown_083CC2A3
_080B1570: .4byte gStringVar4
_080B1574: .4byte gUnknown_083CC188
_080B1578: .4byte gMenuWindow
thumb_func_end sub_80B146C
thumb_func_start sub_80B157C
sub_80B157C: @ 80B157C
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
ldr r0, _080B1598 @ =0x02019260
adds r1, r0
ldrb r0, [r1, 0xC]
movs r2, 0x1
orrs r0, r2
strb r0, [r1, 0xC]
movs r0, 0
strh r0, [r1, 0x6]
bx lr
.align 2, 0
_080B1598: .4byte 0x02019260
thumb_func_end sub_80B157C
thumb_func_start sub_80B159C
sub_80B159C: @ 80B159C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
movs r0, 0
mov r12, r0
movs r4, 0
ldr r1, _080B1600 @ =gUnknown_02038696
mov r9, r1
add r2, sp, 0x4
mov r6, r9
movs r5, 0
adds r3, r2, 0
_080B15B8:
mov r0, sp
adds r1, r0, r4
adds r0, r4, r6
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, r4
strb r5, [r0]
adds r4, 0x1
cmp r4, 0x3
ble _080B15B8
movs r4, 0
ldr r7, _080B1604 @ =0x02019260
adds r5, r2, 0
movs r1, 0x1
mov r8, r1
_080B15D6:
movs r2, 0
adds r1, r7, 0
_080B15DA:
ldrb r0, [r1, 0x19]
cmp r0, r4
beq _080B1608
adds r1, 0x1C
adds r2, 0x1
cmp r2, 0x3
ble _080B15DA
_080B15E8:
cmp r2, 0x4
bne _080B1680
movs r2, 0
ldrb r0, [r5]
cmp r0, 0
bne _080B1616
ldrb r0, [r7, 0x19]
cmp r0, 0xFF
bne _080B1616
mov r12, r2
movs r2, 0x1
b _080B163A
.align 2, 0
_080B1600: .4byte gUnknown_02038696
_080B1604: .4byte 0x02019260
_080B1608:
mov r1, sp
adds r0, r1, r2
strb r4, [r0]
adds r0, r5, r2
mov r1, r8
strb r1, [r0]
b _080B15E8
_080B1616:
adds r2, 0x1
cmp r2, 0x3
bgt _080B1672
adds r0, r5, r2
ldrb r0, [r0]
cmp r0, 0
bne _080B1616
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
adds r0, r7
ldrb r0, [r0, 0x19]
cmp r0, 0xFF
bne _080B1616
lsls r0, r2, 24
lsrs r0, 24
mov r12, r0
adds r2, 0x1
_080B163A:
cmp r2, 0x3
bgt _080B1672
ldr r6, _080B16C8 @ =gUnknown_02038696
lsls r0, r2, 3
subs r0, r2
lsls r3, r0, 2
_080B1646:
adds r0, r5, r2
ldrb r0, [r0]
cmp r0, 0
bne _080B166A
adds r0, r3, r7
ldrb r0, [r0, 0x19]
cmp r0, 0xFF
bne _080B166A
mov r1, r12
adds r0, r1, r6
adds r1, r2, r6
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bls _080B166A
lsls r0, r2, 24
lsrs r0, 24
mov r12, r0
_080B166A:
adds r3, 0x1C
adds r2, 0x1
cmp r2, 0x3
ble _080B1646
_080B1672:
mov r0, sp
add r0, r12
strb r4, [r0]
mov r1, r12
adds r0, r5, r1
mov r1, r8
strb r1, [r0]
_080B1680:
adds r4, 0x1
cmp r4, 0x3
ble _080B15D6
movs r4, 0
ldr r5, _080B16CC @ =0x020192d0
adds r3, r5, 0
subs r3, 0x60
movs r6, 0xFF
movs r7, 0x3F
_080B1692:
adds r1, r4, r5
mov r0, sp
adds r2, r0, r4
ldrb r0, [r2]
strb r0, [r1]
ldrb r0, [r3, 0x9]
orrs r0, r6
strb r0, [r3, 0x9]
ldrb r1, [r3]
adds r0, r7, 0
ands r0, r1
strb r0, [r3]
mov r0, r9
adds r1, r4, r0
ldrb r0, [r2]
strb r0, [r1]
adds r3, 0x1C
adds r4, 0x1
cmp r4, 0x3
ble _080B1692
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B16C8: .4byte gUnknown_02038696
_080B16CC: .4byte 0x020192d0
thumb_func_end sub_80B159C
thumb_func_start sub_80B16D0
sub_80B16D0: @ 80B16D0
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x30]
adds r1, r0, 0x1
strh r1, [r2, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x54
ble _080B1702
movs r0, 0
strh r0, [r2, 0x30]
adds r3, r2, 0
adds r3, 0x3E
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
strb r0, [r3]
ldr r0, _080B1708 @ =SpriteCallbackDummy
str r0, [r2, 0x1C]
ldr r2, _080B170C @ =0x02019204
ldrb r1, [r2, 0x6]
movs r0, 0x11
negs r0, r0
ands r0, r1
strb r0, [r2, 0x6]
_080B1702:
pop {r0}
bx r0
.align 2, 0
_080B1708: .4byte SpriteCallbackDummy
_080B170C: .4byte 0x02019204
thumb_func_end sub_80B16D0
thumb_func_start sub_80B1710
sub_80B1710: @ 80B1710
push {r4,r5,lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r0, _080B172C @ =0x02019204
ldrb r5, [r0, 0x12]
cmp r1, 0x8
bls _080B1720
b _080B18C0
_080B1720:
lsls r0, r1, 2
ldr r1, _080B1730 @ =_080B1734
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080B172C: .4byte 0x02019204
_080B1730: .4byte _080B1734
.align 2, 0
_080B1734:
.4byte _080B1758
.4byte _080B1758
.4byte _080B1788
.4byte _080B17BC
.4byte _080B17F0
.4byte _080B1824
.4byte _080B1858
.4byte _080B18C0
.4byte _080B188C
_080B1758:
ldr r0, _080B177C @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x2E]
ldr r2, _080B1780 @ =0x000003ff
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B1784 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0x20
bl PlaySE
b _080B18E4
.align 2, 0
_080B177C: .4byte gSprites
_080B1780: .4byte 0x000003ff
_080B1784: .4byte 0xfffffc00
_080B1788:
ldr r0, _080B17B0 @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x2E]
adds r2, 0x4
ldr r3, _080B17B4 @ =0x000003ff
adds r0, r3, 0
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B17B8 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0x1F
bl PlaySE
b _080B18E4
.align 2, 0
_080B17B0: .4byte gSprites
_080B17B4: .4byte 0x000003ff
_080B17B8: .4byte 0xfffffc00
_080B17BC:
ldr r0, _080B17E4 @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x2E]
adds r2, 0x8
ldr r3, _080B17E8 @ =0x000003ff
adds r0, r3, 0
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B17EC @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0x1F
bl PlaySE
b _080B18E4
.align 2, 0
_080B17E4: .4byte gSprites
_080B17E8: .4byte 0x000003ff
_080B17EC: .4byte 0xfffffc00
_080B17F0:
ldr r0, _080B1818 @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x2E]
adds r2, 0xC
ldr r3, _080B181C @ =0x000003ff
adds r0, r3, 0
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B1820 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0x2D
bl PlaySE
b _080B18E4
.align 2, 0
_080B1818: .4byte gSprites
_080B181C: .4byte 0x000003ff
_080B1820: .4byte 0xfffffc00
_080B1824:
ldr r0, _080B184C @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x2E]
adds r2, 0xC
ldr r3, _080B1850 @ =0x000003ff
adds r0, r3, 0
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B1854 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0x2D
bl PlaySE
b _080B18E4
.align 2, 0
_080B184C: .4byte gSprites
_080B1850: .4byte 0x000003ff
_080B1854: .4byte 0xfffffc00
_080B1858:
ldr r0, _080B1880 @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x2E]
adds r2, 0x10
ldr r3, _080B1884 @ =0x000003ff
adds r0, r3, 0
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B1888 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0x2D
bl PlaySE
b _080B18E4
.align 2, 0
_080B1880: .4byte gSprites
_080B1884: .4byte 0x000003ff
_080B1888: .4byte 0xfffffc00
_080B188C:
ldr r0, _080B18B4 @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x2E]
adds r2, 0x18
ldr r3, _080B18B8 @ =0x000003ff
adds r0, r3, 0
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B18BC @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0xC3
bl PlaySE
b _080B18E4
.align 2, 0
_080B18B4: .4byte gSprites
_080B18B8: .4byte 0x000003ff
_080B18BC: .4byte 0xfffffc00
_080B18C0:
ldr r0, _080B1914 @ =gSprites
lsls r4, r5, 4
adds r1, r4, r5
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x2E]
adds r2, 0x14
ldr r3, _080B1918 @ =0x000003ff
adds r0, r3, 0
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _080B191C @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
movs r0, 0x2D
bl PlaySE
_080B18E4:
adds r2, r4, 0
ldr r4, _080B1914 @ =gSprites
adds r2, r5
lsls r2, 2
adds r1, r2, r4
movs r0, 0
strh r0, [r1, 0x30]
adds r1, 0x3E
ldrb r3, [r1]
subs r0, 0x5
ands r0, r3
strb r0, [r1]
adds r4, 0x1C
adds r2, r4
ldr r0, _080B1920 @ =sub_80B16D0
str r0, [r2]
ldr r2, _080B1924 @ =0x02019204
ldrb r0, [r2, 0x6]
movs r1, 0x10
orrs r0, r1
strb r0, [r2, 0x6]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B1914: .4byte gSprites
_080B1918: .4byte 0x000003ff
_080B191C: .4byte 0xfffffc00
_080B1920: .4byte sub_80B16D0
_080B1924: .4byte 0x02019204
thumb_func_end sub_80B1710
thumb_func_start sub_80B1928
sub_80B1928: @ 80B1928
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r5, 0
ldr r6, _080B19BC @ =0x02019204
ldr r0, _080B19C0 @ =gSprites
mov r10, r0
movs r1, 0x58
adds r1, r6
mov r9, r1
ldr r0, _080B19C4 @ =0x06010000
mov r8, r0
ldr r7, _080B19C8 @ =REG_BG0CNT
_080B1946:
movs r0, 0x13
ldrsb r0, [r6, r0]
ldr r4, _080B19CC @ =gContestApplauseMeterGfx
cmp r5, r0
bge _080B1952
adds r4, 0x40
_080B1952:
mov r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldrh r1, [r0, 0x4]
lsls r1, 22
lsrs r1, 22
adds r0, r5, 0
adds r0, 0x11
adds r1, r0
lsls r1, 5
add r1, r8
adds r0, r4, 0
adds r2, r7, 0
bl CpuSet
adds r0, r4, 0
adds r0, 0x20
mov r1, r9
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r10
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 22
adds r2, r5, 0
adds r2, 0x19
adds r1, r2
lsls r1, 5
add r1, r8
adds r2, r7, 0
bl CpuSet
movs r0, 0x13
ldrsb r0, [r6, r0]
cmp r0, 0x4
ble _080B19A8
bl sub_80B1A2C
_080B19A8:
adds r5, 0x1
cmp r5, 0x4
ble _080B1946
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B19BC: .4byte 0x02019204
_080B19C0: .4byte gSprites
_080B19C4: .4byte 0x06010000
_080B19C8: .4byte REG_BG0CNT
_080B19CC: .4byte gContestApplauseMeterGfx
thumb_func_end sub_80B1928
thumb_func_start unref_sub_80B19D0
unref_sub_80B19D0: @ 80B19D0
push {lr}
sub sp, 0x18
ldr r1, _080B19F4 @ =gUnknown_083CC2EC
add r0, sp, 0x4
bl StringCopy
ldr r0, _080B19F8 @ =gUnknown_03004210
movs r2, 0xAA
lsls r2, 2
movs r1, 0
str r1, [sp]
add r1, sp, 0x4
movs r3, 0
bl sub_8003460
add sp, 0x18
pop {r0}
bx r0
.align 2, 0
_080B19F4: .4byte gUnknown_083CC2EC
_080B19F8: .4byte gUnknown_03004210
thumb_func_end unref_sub_80B19D0
thumb_func_start contest_get_move_excitement
contest_get_move_excitement: @ 80B19FC
lsls r0, 16
ldr r3, _080B1A20 @ =gContestExcitementTable
ldr r1, _080B1A24 @ =gContestMoves
lsrs r0, 13
adds r0, r1
ldrb r1, [r0, 0x1]
lsls r1, 29
lsrs r1, 29
ldr r0, _080B1A28 @ =gUnknown_0203869C
ldrh r2, [r0]
lsls r0, r2, 2
adds r0, r2
adds r1, r0
adds r1, r3
movs r0, 0
ldrsb r0, [r1, r0]
bx lr
.align 2, 0
_080B1A20: .4byte gContestExcitementTable
_080B1A24: .4byte gContestMoves
_080B1A28: .4byte gUnknown_0203869C
thumb_func_end contest_get_move_excitement
thumb_func_start sub_80B1A2C
sub_80B1A2C: @ 80B1A2C
push {r4,r5,lr}
ldr r0, _080B1A60 @ =c3_08130B10
movs r1, 0xA
bl CreateTask
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, _080B1A64 @ =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
movs r0, 0x1
strh r0, [r4, 0xA]
ldr r0, _080B1A68 @ =0x0000abe2
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xC]
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080B1A60: .4byte c3_08130B10
_080B1A64: .4byte gTasks
_080B1A68: .4byte 0x0000abe2
thumb_func_end sub_80B1A2C
thumb_func_start c3_08130B10
c3_08130B10: @ 80B1A6C
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080B1A9C @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _080B1B06
movs r0, 0
strh r0, [r2, 0x8]
movs r3, 0xE
ldrsh r0, [r2, r3]
cmp r0, 0
bne _080B1AA0
ldrh r0, [r2, 0x10]
adds r0, 0x1
b _080B1AA4
.align 2, 0
_080B1A9C: .4byte gTasks
_080B1AA0:
ldrh r0, [r2, 0x10]
subs r0, 0x1
_080B1AA4:
strh r0, [r2, 0x10]
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
movs r1, 0xC
ldrsh r0, [r4, r1]
lsls r0, 4
movs r3, 0x84
lsls r3, 1
adds r6, r3, 0
adds r0, r6
lsls r0, 16
lsrs r0, 16
ldrb r2, [r4, 0x10]
ldr r3, _080B1B0C @ =0x00007fff
movs r1, 0x1
bl BlendPalette
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080B1AD6
cmp r0, 0x10
bne _080B1B06
_080B1AD6:
ldrh r0, [r4, 0xE]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0xE]
ldr r0, _080B1B10 @ =0x02019204
ldrb r0, [r0, 0x13]
lsls r0, 24
asrs r0, 24
cmp r0, 0x4
bgt _080B1B06
movs r3, 0xC
ldrsh r0, [r4, r3]
lsls r0, 4
adds r0, r6
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
movs r2, 0
movs r3, 0x1F
bl BlendPalette
adds r0, r5, 0
bl DestroyTask
_080B1B06:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B1B0C: .4byte 0x00007fff
_080B1B10: .4byte 0x02019204
thumb_func_end c3_08130B10
thumb_func_start sub_80B1B14
sub_80B1B14: @ 80B1B14
push {r4,lr}
ldr r0, _080B1B58 @ =sub_80B1B68
movs r1, 0xA
bl CreateTask
ldr r4, _080B1B5C @ =gSprites
ldr r3, _080B1B60 @ =0x02019204
adds r2, r3, 0
adds r2, 0x58
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _080B1B64 @ =0x0000ffba
strh r1, [r0, 0x24]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
ldrb r0, [r3, 0x6]
movs r1, 0x40
orrs r0, r1
strb r0, [r3, 0x6]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B1B58: .4byte sub_80B1B68
_080B1B5C: .4byte gSprites
_080B1B60: .4byte 0x02019204
_080B1B64: .4byte 0x0000ffba
thumb_func_end sub_80B1B14
thumb_func_start sub_80B1B68
sub_80B1B68: @ 80B1B68
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r3, r0, 0
ldr r4, _080B1BD0 @ =0x02019204
adds r0, r4, 0
adds r0, 0x58
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080B1BD4 @ =gSprites
adds r2, r0, r1
ldr r0, _080B1BD8 @ =gTasks
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
movs r5, 0xD0
lsls r5, 3
adds r0, r5, 0
ldrh r5, [r1, 0x1C]
adds r0, r5
strh r0, [r1, 0x1C]
lsls r0, 16
asrs r0, 24
ldrh r5, [r2, 0x24]
adds r0, r5
strh r0, [r2, 0x24]
ldrb r0, [r1, 0x1C]
strh r0, [r1, 0x1C]
movs r1, 0x24
ldrsh r0, [r2, r1]
cmp r0, 0
ble _080B1BB2
movs r0, 0
strh r0, [r2, 0x24]
_080B1BB2:
movs r5, 0x24
ldrsh r0, [r2, r5]
cmp r0, 0
bne _080B1BCA
ldrb r1, [r4, 0x6]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r4, 0x6]
adds r0, r3, 0
bl DestroyTask
_080B1BCA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B1BD0: .4byte 0x02019204
_080B1BD4: .4byte gSprites
_080B1BD8: .4byte gTasks
thumb_func_end sub_80B1B68
thumb_func_start sub_80B1BDC
sub_80B1BDC: @ 80B1BDC
push {r4-r6,lr}
ldr r6, _080B1C04 @ =gSprites
ldr r4, _080B1C08 @ =0x02019204
adds r5, r4, 0
adds r5, 0x58
ldrb r0, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r1, 0x3E
ldrb r0, [r1]
lsls r0, 29
cmp r0, 0
bge _080B1C0C
ldrb r1, [r4, 0x6]
movs r0, 0x41
negs r0, r0
ands r0, r1
b _080B1C28
.align 2, 0
_080B1C04: .4byte gSprites
_080B1C08: .4byte 0x02019204
_080B1C0C:
ldr r0, _080B1C30 @ =sub_80B1C34
movs r1, 0xA
bl CreateTask
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0
strh r1, [r0, 0x24]
ldrb r0, [r4, 0x6]
movs r1, 0x40
orrs r0, r1
_080B1C28:
strb r0, [r4, 0x6]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B1C30: .4byte sub_80B1C34
thumb_func_end sub_80B1BDC
thumb_func_start sub_80B1C34
sub_80B1C34: @ 80B1C34
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
ldr r5, _080B1CAC @ =0x02019204
adds r0, r5, 0
adds r0, 0x58
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080B1CB0 @ =gSprites
adds r3, r0, r1
ldr r0, _080B1CB4 @ =gTasks
lsls r2, r4, 2
adds r2, r4
lsls r2, 3
adds r2, r0
movs r1, 0xD0
lsls r1, 3
adds r0, r1, 0
ldrh r1, [r2, 0x1C]
adds r0, r1
strh r0, [r2, 0x1C]
lsls r0, 16
asrs r0, 24
ldrh r1, [r3, 0x24]
subs r1, r0
strh r1, [r3, 0x24]
ldrb r0, [r2, 0x1C]
strh r0, [r2, 0x1C]
movs r2, 0x24
ldrsh r0, [r3, r2]
movs r1, 0x46
negs r1, r1
cmp r0, r1
bge _080B1C82
ldr r0, _080B1CB8 @ =0x0000ffba
strh r0, [r3, 0x24]
_080B1C82:
movs r2, 0x24
ldrsh r0, [r3, r2]
cmp r0, r1
bne _080B1CA6
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrb r1, [r5, 0x6]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r5, 0x6]
adds r0, r4, 0
bl DestroyTask
_080B1CA6:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B1CAC: .4byte 0x02019204
_080B1CB0: .4byte gSprites
_080B1CB4: .4byte gTasks
_080B1CB8: .4byte 0x0000ffba
thumb_func_end sub_80B1C34
thumb_func_start sub_80B1CBC
sub_80B1CBC: @ 80B1CBC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080B1CF0 @ =sub_80B1CFC
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080B1CF4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0x8]
ldr r2, _080B1CF8 @ =0x02019204
ldrb r0, [r2, 0x6]
movs r1, 0x20
orrs r0, r1
strb r0, [r2, 0x6]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B1CF0: .4byte sub_80B1CFC
_080B1CF4: .4byte gTasks
_080B1CF8: .4byte 0x02019204
thumb_func_end sub_80B1CBC
thumb_func_start sub_80B1CFC
sub_80B1CFC: @ 80B1CFC
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080B1D20 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
movs r1, 0x1C
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _080B1D30
cmp r0, 0x1
bgt _080B1D24
cmp r0, 0
beq _080B1D2A
b _080B1D78
.align 2, 0
_080B1D20: .4byte gTasks
_080B1D24:
cmp r0, 0x2
beq _080B1D50
b _080B1D78
_080B1D2A:
bl sub_80B1B14
b _080B1D44
_080B1D30:
ldr r0, _080B1D4C @ =0x02019204
ldrb r1, [r0, 0x6]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080B1D78
movs r0, 0x8
ldrsb r0, [r4, r0]
bl nullsub_18
_080B1D44:
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
b _080B1D78
.align 2, 0
_080B1D4C: .4byte 0x02019204
_080B1D50:
ldrh r0, [r4, 0x1E]
adds r1, r0, 0x1
strh r1, [r4, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _080B1D78
movs r0, 0
strh r0, [r4, 0x1E]
bl sub_80B1928
ldr r2, _080B1D80 @ =0x02019204
ldrb r1, [r2, 0x6]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r2, 0x6]
adds r0, r5, 0
bl DestroyTask
_080B1D78:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B1D80: .4byte 0x02019204
thumb_func_end sub_80B1CFC
thumb_func_start unref_sub_80B1D84
unref_sub_80B1D84: @ 80B1D84
ldr r3, _080B1DB0 @ =gSprites
ldr r2, _080B1DB4 @ =0x02019204
adds r2, 0x58
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0
strh r1, [r0, 0x24]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
bx lr
.align 2, 0
_080B1DB0: .4byte gSprites
_080B1DB4: .4byte 0x02019204
thumb_func_end unref_sub_80B1D84
thumb_func_start unref_sub_80B1DB8
unref_sub_80B1DB8: @ 80B1DB8
ldr r2, _080B1DD4 @ =gSprites
ldr r0, _080B1DD8 @ =0x02019204
adds r0, 0x58
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
_080B1DD4: .4byte gSprites
_080B1DD8: .4byte 0x02019204
thumb_func_end unref_sub_80B1DB8
thumb_func_start sub_80B1DDC
sub_80B1DDC: @ 80B1DDC
push {lr}
ldr r0, _080B1DF4 @ =sub_80B1DFC
movs r1, 0xF
bl CreateTask
ldr r2, _080B1DF8 @ =0x02019204
ldrb r0, [r2, 0x6]
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x6]
pop {r0}
bx r0
.align 2, 0
_080B1DF4: .4byte sub_80B1DFC
_080B1DF8: .4byte 0x02019204
thumb_func_end sub_80B1DDC
thumb_func_start sub_80B1DFC
sub_80B1DFC: @ 80B1DFC
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _080B1E3C @ =gTasks
lsls r4, r5, 2
adds r0, r4, r5
lsls r0, 3
adds r3, r0, r2
ldrh r0, [r3, 0x1C]
adds r1, r0, 0x1
strh r1, [r3, 0x1C]
lsls r0, 16
asrs r0, 16
adds r6, r2, 0
cmp r0, 0x6
ble _080B1E8E
movs r0, 0
strh r0, [r3, 0x1C]
movs r1, 0x1E
ldrsh r0, [r3, r1]
cmp r0, 0
bne _080B1E50
ldr r1, _080B1E40 @ =0x02016800
ldr r2, _080B1E44 @ =0x06002000
ldr r0, _080B1E48 @ =0x040000d4
str r1, [r0]
str r2, [r0, 0x4]
ldr r1, _080B1E4C @ =0x84000400
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
b _080B1E66
.align 2, 0
_080B1E3C: .4byte gTasks
_080B1E40: .4byte 0x02016800
_080B1E44: .4byte 0x06002000
_080B1E48: .4byte 0x040000d4
_080B1E4C: .4byte 0x84000400
_080B1E50:
ldr r1, _080B1E94 @ =0x02015800
ldr r2, _080B1E98 @ =0x06002000
ldr r0, _080B1E9C @ =0x040000d4
str r1, [r0]
str r2, [r0, 0x4]
ldr r1, _080B1EA0 @ =0x84000400
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
ldrh r0, [r3, 0x20]
adds r0, 0x1
strh r0, [r3, 0x20]
_080B1E66:
adds r0, r4, 0
adds r0, r5
lsls r0, 3
adds r0, r6
ldrh r1, [r0, 0x1E]
movs r2, 0x1
eors r1, r2
strh r1, [r0, 0x1E]
movs r1, 0x20
ldrsh r0, [r0, r1]
cmp r0, 0x9
bne _080B1E8E
ldr r2, _080B1EA4 @ =0x02019204
ldrb r1, [r2, 0x6]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x6]
adds r0, r5, 0
bl DestroyTask
_080B1E8E:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B1E94: .4byte 0x02015800
_080B1E98: .4byte 0x06002000
_080B1E9C: .4byte 0x040000d4
_080B1EA0: .4byte 0x84000400
_080B1EA4: .4byte 0x02019204
thumb_func_end sub_80B1DFC
thumb_func_start sub_80B1EA8
sub_80B1EA8: @ 80B1EA8
push {r4-r7,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r1, 24
lsrs r5, r1, 24
ldr r0, _080B1EE4 @ =sub_80B1F4C
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r6, r0, 24
lsls r4, 24
cmp r4, 0
ble _080B1F08
ldr r7, _080B1EE8 @ =0x0000237e
lsls r0, r5, 24
adds r4, r0, 0
cmp r4, 0
ble _080B1EF0
movs r5, 0
ldr r2, _080B1EEC @ =0x02019204
movs r1, 0x13
ldrsb r1, [r2, r1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 24
lsrs r3, r0, 24
b _080B1F1E
.align 2, 0
_080B1EE4: .4byte sub_80B1F4C
_080B1EE8: .4byte 0x0000237e
_080B1EEC: .4byte 0x02019204
_080B1EF0:
ldr r2, _080B1F04 @ =0x02019204
movs r1, 0x13
ldrsb r1, [r2, r1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 24
lsrs r5, r0, 24
movs r3, 0
b _080B1F1E
.align 2, 0
_080B1F04: .4byte 0x02019204
_080B1F08:
movs r7, 0
lsls r0, r5, 24
adds r4, r0, 0
cmp r4, 0
ble _080B1F18
movs r5, 0
movs r3, 0xC
b _080B1F1C
_080B1F18:
movs r5, 0xC
movs r3, 0
_080B1F1C:
ldr r2, _080B1F44 @ =0x02019204
_080B1F1E:
ldr r1, _080B1F48 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
strh r7, [r0, 0x8]
strh r5, [r0, 0xA]
asrs r1, r4, 24
strh r1, [r0, 0xC]
strh r3, [r0, 0xE]
ldrb r1, [r2, 0x7]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x7]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B1F44: .4byte 0x02019204
_080B1F48: .4byte gTasks
thumb_func_end sub_80B1EA8
thumb_func_start sub_80B1F4C
sub_80B1F4C: @ 80B1F4C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _080B1F7C @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r3, r0, r2
ldrh r0, [r3, 0x1C]
adds r1, r0, 0x1
strh r1, [r3, 0x1C]
lsls r0, 16
cmp r0, 0
blt _080B1FC4
movs r0, 0
strh r0, [r3, 0x1C]
movs r1, 0xC
ldrsh r0, [r3, r1]
cmp r0, 0
ble _080B1F80
ldrh r0, [r3, 0xA]
adds r0, 0x1
b _080B1F84
.align 2, 0
_080B1F7C: .4byte gTasks
_080B1F80:
ldrh r0, [r3, 0xA]
subs r0, 0x1
_080B1F84:
strh r0, [r3, 0xA]
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r2
ldrb r2, [r4, 0xA]
ldrh r3, [r4, 0x8]
movs r0, 0x11
movs r1, 0x1
bl BlendPalette
ldrb r2, [r4, 0xA]
ldrh r3, [r4, 0x8]
movs r0, 0x1A
movs r1, 0x1
bl BlendPalette
movs r2, 0xA
ldrsh r1, [r4, r2]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r1, r0
bne _080B1FC4
adds r0, r5, 0
bl DestroyTask
ldr r2, _080B1FCC @ =0x02019204
ldrb r1, [r2, 0x7]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x7]
_080B1FC4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B1FCC: .4byte 0x02019204
thumb_func_end sub_80B1F4C
thumb_func_start sub_80B1FD0
sub_80B1FD0: @ 80B1FD0
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r5, 0
ldr r0, _080B204C @ =0x02019260
ldr r6, _080B2050 @ =gSprites
adds r4, r0, 0
adds r4, 0xD8
adds r7, r0, 0
_080B1FE8:
ldrb r1, [r7, 0x10]
movs r0, 0xC0
ands r0, r1
cmp r0, 0
beq _080B2064
mov r0, r8
cmp r0, 0
beq _080B2064
lsls r0, r5, 24
lsrs r0, 24
bl sub_80B208C
ldrb r2, [r4, 0x1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r6
ldrh r1, [r1, 0x4]
lsls r1, 22
lsrs r1, 17
ldr r2, _080B2054 @ =0x060100a0
adds r1, r2
ldr r2, _080B2058 @ =REG_BG0HOFS
bl CpuSet
ldrb r0, [r4, 0x1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
ldr r2, _080B205C @ =gUnknown_083CA33C
ldr r0, _080B2060 @ =gUnknown_02038696
adds r0, r5, r0
ldrb r0, [r0]
adds r0, r2
ldrb r0, [r0]
strh r0, [r1, 0x22]
ldrb r1, [r4, 0x1]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
movs r3, 0x5
negs r3, r3
adds r2, r3, 0
ands r1, r2
b _080B2076
.align 2, 0
_080B204C: .4byte 0x02019260
_080B2050: .4byte gSprites
_080B2054: .4byte 0x060100a0
_080B2058: .4byte REG_BG0HOFS
_080B205C: .4byte gUnknown_083CA33C
_080B2060: .4byte gUnknown_02038696
_080B2064:
ldrb r1, [r4, 0x1]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
_080B2076:
strb r1, [r0]
adds r4, 0x4
adds r7, 0x1C
adds r5, 0x1
cmp r5, 0x3
ble _080B1FE8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80B1FD0
thumb_func_start sub_80B208C
sub_80B208C: @ 80B208C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
ldr r0, _080B20B0 @ =0x02019260
adds r2, r1, r0
ldrb r1, [r2, 0x10]
movs r0, 0xC0
ands r0, r1
cmp r0, 0x40
bne _080B20B8
ldrb r0, [r2, 0x19]
lsls r0, 6
ldr r1, _080B20B4 @ =gContestNextTurnNumbersGfx
adds r0, r1
b _080B20BA
.align 2, 0
_080B20B0: .4byte 0x02019260
_080B20B4: .4byte gContestNextTurnNumbersGfx
_080B20B8:
ldr r0, _080B20C0 @ =gContestNextTurnRandomGfx
_080B20BA:
pop {r1}
bx r1
.align 2, 0
_080B20C0: .4byte gContestNextTurnRandomGfx
thumb_func_end sub_80B208C
thumb_func_start sub_80B20C4
sub_80B20C4: @ 80B20C4
push {r4-r7,lr}
movs r6, 0
ldr r7, _080B2134 @ =0x020192dd
_080B20CA:
adds r0, r6, r7
ldrb r0, [r0]
cmp r0, 0
beq _080B2126
lsls r0, r6, 24
lsrs r5, r0, 24
adds r0, r5, 0
bl sub_80AF59C
lsls r0, 24
cmp r0, 0
bne _080B2126
ldr r0, _080B2138 @ =gUnknown_02038696
adds r0, r6, r0
ldrb r0, [r0]
lsls r4, r0, 2
adds r4, r0
adds r4, 0x2
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x3
bl sub_80AEFE8
lsls r0, 16
lsrs r0, 16
lsls r4, 6
ldr r2, _080B213C @ =0x0600c028
adds r1, r4, r2
strh r0, [r1]
ldr r1, _080B2140 @ =0x0600c02a
adds r2, r4, r1
adds r1, r0, 0x1
strh r1, [r2]
ldr r1, _080B2144 @ =0x0600c068
adds r2, r4, r1
adds r1, r0, 0
adds r1, 0x10
strh r1, [r2]
ldr r2, _080B2148 @ =0x0600c06a
adds r4, r2
adds r0, 0x11
strh r0, [r4]
movs r0, 0x63
bl PlaySE
_080B2126:
adds r6, 0x1
cmp r6, 0x3
ble _080B20CA
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B2134: .4byte 0x020192dd
_080B2138: .4byte gUnknown_02038696
_080B213C: .4byte 0x0600c028
_080B2140: .4byte 0x0600c02a
_080B2144: .4byte 0x0600c068
_080B2148: .4byte 0x0600c06a
thumb_func_end sub_80B20C4
thumb_func_start sub_80B214C
sub_80B214C: @ 80B214C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
ldr r0, _080B2178 @ =0x02019260
adds r2, r1, r0
ldrb r1, [r2, 0x15]
movs r3, 0x1
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _080B2172
ldrb r1, [r2, 0xC]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _080B217C
_080B2172:
movs r0, 0
b _080B217E
.align 2, 0
_080B2178: .4byte 0x02019260
_080B217C:
movs r0, 0x1
_080B217E:
pop {r1}
bx r1
thumb_func_end sub_80B214C
thumb_func_start sub_80B2184
sub_80B2184: @ 80B2184
push {r4-r7,lr}
sub sp, 0x4
ldr r4, _080B2250 @ =REG_BG1CNT
ldrb r1, [r4]
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r4]
ldrb r1, [r4, 0x1]
movs r0, 0x3F
ands r0, r1
movs r1, 0x40
orrs r0, r1
strb r0, [r4, 0x1]
ldrb r1, [r4, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r4, 0x1]
ldr r0, _080B2254 @ =gUnknown_030042C0
movs r2, 0xF0
strh r2, [r0]
ldr r0, _080B2258 @ =gUnknown_030041B4
movs r1, 0xA0
strh r1, [r0]
ldr r0, _080B225C @ =REG_BG1HOFS
strh r2, [r0]
adds r0, 0x2
strh r1, [r0]
ldr r1, _080B2260 @ =0x0600f000
movs r0, 0
str r0, [sp]
ldr r0, _080B2264 @ =0x040000d4
mov r2, sp
str r2, [r0]
str r1, [r0, 0x4]
ldr r2, _080B2268 @ =0x85000400
str r2, [r0, 0x8]
ldr r0, [r0, 0x8]
ldr r0, _080B226C @ =gUnknown_08D17C3C
bl LZDecompressVram
ldrb r1, [r4]
movs r2, 0xD
negs r2, r2
adds r0, r2, 0
ands r0, r1
strb r0, [r4]
movs r4, 0
ldr r6, _080B2270 @ =gSprites
adds r7, r2, 0
movs r5, 0x4
ldr r3, _080B2274 @ =0x02019338
_080B21EE:
ldrb r0, [r3]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
ldrb r2, [r1, 0x5]
adds r0, r7, 0
ands r0, r2
orrs r0, r5
strb r0, [r1, 0x5]
ldrb r0, [r3, 0x1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
ldrb r2, [r1, 0x5]
adds r0, r7, 0
ands r0, r2
orrs r0, r5
strb r0, [r1, 0x5]
adds r3, 0x4
adds r4, 0x1
cmp r4, 0x3
ble _080B21EE
ldr r3, _080B2278 @ =REG_BG2CNT
ldrb r2, [r3]
movs r1, 0x4
negs r1, r1
adds r0, r1, 0
ands r0, r2
movs r4, 0x1
orrs r0, r4
strb r0, [r3]
ldr r2, _080B227C @ =REG_BG0CNT
ldrb r0, [r2]
ands r1, r0
orrs r1, r4
strb r1, [r2]
adds r2, 0x2
ldrb r1, [r2, 0x1]
movs r0, 0x3F
ands r0, r1
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x1]
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B2250: .4byte REG_BG1CNT
_080B2254: .4byte gUnknown_030042C0
_080B2258: .4byte gUnknown_030041B4
_080B225C: .4byte REG_BG1HOFS
_080B2260: .4byte 0x0600f000
_080B2264: .4byte 0x040000d4
_080B2268: .4byte 0x85000400
_080B226C: .4byte gUnknown_08D17C3C
_080B2270: .4byte gSprites
_080B2274: .4byte 0x02019338
_080B2278: .4byte REG_BG2CNT
_080B227C: .4byte REG_BG0CNT
thumb_func_end sub_80B2184
thumb_func_start sub_80B2280
sub_80B2280: @ 80B2280
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
ldr r2, _080B2358 @ =0x06008000
movs r3, 0x80
lsls r3, 6
ldr r0, _080B235C @ =gUnknown_030042C0
mov r12, r0
ldr r0, _080B2360 @ =gUnknown_030041B4
mov r8, r0
movs r5, 0
ldr r1, _080B2364 @ =0x040000d4
movs r4, 0x80
lsls r4, 5
ldr r6, _080B2368 @ =0x85000400
movs r7, 0x85
lsls r7, 24
_080B22A4:
str r5, [sp]
mov r0, sp
str r0, [r1]
str r2, [r1, 0x4]
str r6, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r2, r4
subs r3, r4
cmp r3, r4
bhi _080B22A4
str r5, [sp]
mov r0, sp
str r0, [r1]
str r2, [r1, 0x4]
lsrs r0, r3, 2
orrs r0, r7
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
ldr r1, _080B236C @ =0x0600f000
movs r2, 0
str r2, [sp]
ldr r0, _080B2364 @ =0x040000d4
mov r3, sp
str r3, [r0]
str r1, [r0, 0x4]
ldr r1, _080B2368 @ =0x85000400
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
mov r0, r12
strh r2, [r0]
mov r3, r8
strh r2, [r3]
ldr r2, _080B2370 @ =REG_BG1CNT
ldrb r1, [r2]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
ldrb r1, [r2, 0x1]
movs r0, 0x3F
ands r0, r1
strb r0, [r2, 0x1]
ldrb r1, [r2, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r2, 0x1]
ldrb r1, [r2]
movs r3, 0xD
negs r3, r3
adds r0, r3, 0
ands r0, r1
movs r1, 0x8
orrs r0, r1
strb r0, [r2]
movs r4, 0
ldr r5, _080B2374 @ =gSprites
adds r6, r3, 0
ldr r3, _080B2378 @ =0x02019338
_080B231E:
ldrb r0, [r3]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x5]
adds r0, r6, 0
ands r0, r2
strb r0, [r1, 0x5]
ldrb r0, [r3, 0x1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x5]
adds r0, r6, 0
ands r0, r2
strb r0, [r1, 0x5]
adds r3, 0x4
adds r4, 0x1
cmp r4, 0x3
ble _080B231E
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B2358: .4byte 0x06008000
_080B235C: .4byte gUnknown_030042C0
_080B2360: .4byte gUnknown_030041B4
_080B2364: .4byte 0x040000d4
_080B2368: .4byte 0x85000400
_080B236C: .4byte 0x0600f000
_080B2370: .4byte REG_BG1CNT
_080B2374: .4byte gSprites
_080B2378: .4byte 0x02019338
thumb_func_end sub_80B2280
thumb_func_start sub_80B237C
sub_80B237C: @ 80B237C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _080B23AC @ =gUnknown_030042C0
movs r0, 0
strh r0, [r1]
ldr r1, _080B23B0 @ =gUnknown_030041B4
movs r0, 0xA0
strh r0, [r1]
movs r0, 0x62
movs r1, 0
bl PlaySE12WithPanning
ldr r1, _080B23B4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080B23B8 @ =sub_80B23BC
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B23AC: .4byte gUnknown_030042C0
_080B23B0: .4byte gUnknown_030041B4
_080B23B4: .4byte gTasks
_080B23B8: .4byte sub_80B23BC
thumb_func_end sub_80B237C
thumb_func_start sub_80B23BC
sub_80B23BC: @ 80B23BC
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _080B23F4 @ =gUnknown_030041B4
ldrh r0, [r1]
subs r0, 0x7
strh r0, [r1]
lsls r0, 16
cmp r0, 0
bge _080B23D4
movs r0, 0
strh r0, [r1]
_080B23D4:
ldrh r2, [r1]
cmp r2, 0
bne _080B23EE
ldr r0, _080B23F8 @ =gTasks
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
strh r2, [r1, 0x8]
strh r2, [r1, 0xA]
strh r2, [r1, 0xC]
ldr r0, _080B23FC @ =sub_80B2400
str r0, [r1]
_080B23EE:
pop {r0}
bx r0
.align 2, 0
_080B23F4: .4byte gUnknown_030041B4
_080B23F8: .4byte gTasks
_080B23FC: .4byte sub_80B2400
thumb_func_end sub_80B23BC
thumb_func_start sub_80B2400
sub_80B2400: @ 80B2400
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080B2424 @ =gTasks
lsls r3, r4, 2
adds r0, r3, r4
lsls r0, 3
adds r5, r0, r1
movs r0, 0x8
ldrsh r1, [r5, r0]
cmp r1, 0x1
beq _080B247C
cmp r1, 0x1
bgt _080B2428
cmp r1, 0
beq _080B2432
b _080B24FC
.align 2, 0
_080B2424: .4byte gTasks
_080B2428:
cmp r1, 0x2
beq _080B24D6
cmp r1, 0x3
beq _080B24EC
b _080B24FC
_080B2432:
movs r2, 0
adds r6, r3, 0
ldr r5, _080B2470 @ =0x02019218
ldr r3, _080B2474 @ =gUnknown_02038696
_080B243A:
adds r0, r2, r5
adds r1, r2, r3
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x3
ble _080B243A
bl sub_80AFA5C
bl sub_80B0588
bl sub_80AEF50
bl sub_80B1118
movs r0, 0x1
bl sub_80B1FD0
bl sub_80AFFA0
ldr r0, _080B2478 @ =gTasks
adds r1, r6, r4
lsls r1, 3
adds r1, r0
movs r0, 0x1
strh r0, [r1, 0x8]
b _080B24FC
.align 2, 0
_080B2470: .4byte 0x02019218
_080B2474: .4byte gUnknown_02038696
_080B2478: .4byte gTasks
_080B247C:
ldr r0, _080B24C0 @ =gUnknown_0203869A
ldrb r0, [r0]
ands r1, r0
cmp r1, 0
beq _080B24D0
ldr r2, _080B24C4 @ =0x02019204
ldrb r0, [r2, 0x7]
movs r1, 0x4
orrs r0, r1
strb r0, [r2, 0x7]
bl sub_80AE074
lsls r0, 24
cmp r0, 0
beq _080B249E
bl sub_80AF438
_080B249E:
ldr r4, _080B24C8 @ =sub_80C8C80
adds r0, r4, 0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080B24CC @ =sub_80AD8DC
adds r1, r4, 0
bl SetTaskFuncWithFollowupFunc
bl sub_80AF860
movs r0, 0x2
strh r0, [r5, 0x8]
b _080B24FC
.align 2, 0
_080B24C0: .4byte gUnknown_0203869A
_080B24C4: .4byte 0x02019204
_080B24C8: .4byte sub_80C8C80
_080B24CC: .4byte sub_80AD8DC
_080B24D0:
bl sub_80AF438
b _080B24E2
_080B24D6:
ldr r0, _080B24E8 @ =0x02019204
ldrb r1, [r0, 0x7]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _080B24FC
_080B24E2:
movs r0, 0x3
strh r0, [r5, 0x8]
b _080B24FC
.align 2, 0
_080B24E8: .4byte 0x02019204
_080B24EC:
bl sub_80AF120
bl sub_80AEB30
movs r0, 0
strh r0, [r5, 0x8]
ldr r0, _080B2504 @ =sub_80B253C
str r0, [r5]
_080B24FC:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B2504: .4byte sub_80B253C
thumb_func_end sub_80B2400
thumb_func_start sub_80B2508
sub_80B2508: @ 80B2508
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _080B2530 @ =gUnknown_030041B4
ldrh r0, [r1]
adds r0, 0x7
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA0
ble _080B252C
ldr r0, _080B2534 @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, _080B2538 @ =sub_80ADCDC
str r0, [r1]
_080B252C:
pop {r0}
bx r0
.align 2, 0
_080B2530: .4byte gUnknown_030041B4
_080B2534: .4byte gTasks
_080B2538: .4byte sub_80ADCDC
thumb_func_end sub_80B2508
thumb_func_start sub_80B253C
sub_80B253C: @ 80B253C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080B255C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldrh r2, [r1, 0xC]
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0x9
bgt _080B2560
adds r0, r2, 0x1
strh r0, [r1, 0xC]
b _080B259C
.align 2, 0
_080B255C: .4byte gTasks
_080B2560:
ldrh r3, [r1, 0xA]
movs r4, 0xA
ldrsh r0, [r1, r4]
cmp r0, 0
bne _080B257E
ldrh r2, [r1, 0x8]
movs r4, 0x8
ldrsh r0, [r1, r4]
cmp r0, 0x10
bne _080B257A
adds r0, r3, 0x1
strh r0, [r1, 0xA]
b _080B259C
_080B257A:
adds r0, r2, 0x1
b _080B259A
_080B257E:
ldrh r0, [r1, 0x8]
movs r3, 0x8
ldrsh r2, [r1, r3]
cmp r2, 0
bne _080B2598
strh r2, [r1, 0xA]
strh r2, [r1, 0xC]
ldr r0, _080B2594 @ =sub_80B25A4
str r0, [r1]
b _080B259C
.align 2, 0
_080B2594: .4byte sub_80B25A4
_080B2598:
subs r0, 0x1
_080B259A:
strh r0, [r1, 0x8]
_080B259C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80B253C
thumb_func_start sub_80B25A4
sub_80B25A4: @ 80B25A4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080B25C4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r1, [r4, 0xC]
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0x9
bgt _080B25C8
adds r0, r1, 0x1
strh r0, [r4, 0xC]
b _080B25D8
.align 2, 0
_080B25C4: .4byte gTasks
_080B25C8:
movs r0, 0
strh r0, [r4, 0xC]
movs r0, 0x61
movs r1, 0
bl PlaySE12WithPanning
ldr r0, _080B25E0 @ =sub_80B2508
str r0, [r4]
_080B25D8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B25E0: .4byte sub_80B2508
thumb_func_end sub_80B25A4
thumb_func_start sub_80B25E4
sub_80B25E4: @ 80B25E4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r6, 0
ldr r5, _080B26B4 @ =gSprites
_080B25F6:
bl AllocOamMatrix
lsls r1, r6, 2
ldr r2, _080B26B8 @ =0x02019338
mov r8, r2
adds r4, r1, r2
ldrb r1, [r4]
lsls r3, r1, 4
adds r3, r1
lsls r3, 2
adds r3, r5
lsls r0, 24
lsrs r0, 24
movs r1, 0x1F
ands r0, r1
lsls r0, 1
ldrb r1, [r3, 0x3]
movs r7, 0x3F
negs r7, r7
adds r2, r7, 0
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x3]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r2, [r0, 0x1]
movs r3, 0x4
negs r3, r3
adds r1, r3, 0
ands r2, r1
movs r1, 0x1
orrs r2, r1
strb r2, [r0, 0x1]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
mov r1, r9
bl StartSpriteAffineAnim
mov r7, r9
cmp r7, 0x2
bne _080B267A
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
bl AnimateSprite
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r3, 0x5
negs r3, r3
adds r2, r3, 0
ands r1, r2
strb r1, [r0]
_080B267A:
adds r6, 0x1
cmp r6, 0x3
ble _080B25F6
ldr r0, _080B26BC @ =sub_80B26C8
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080B26C0 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
mov r7, r9
strh r7, [r1, 0x8]
ldr r2, _080B26C4 @ =0xfffffecc
add r2, r8
ldrb r0, [r2, 0x7]
movs r1, 0x2
orrs r0, r1
strb r0, [r2, 0x7]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B26B4: .4byte gSprites
_080B26B8: .4byte 0x02019338
_080B26BC: .4byte sub_80B26C8
_080B26C0: .4byte gTasks
_080B26C4: .4byte 0xfffffecc
thumb_func_end sub_80B25E4
thumb_func_start sub_80B26C8
sub_80B26C8: @ 80B26C8
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r2, _080B2750 @ =gSprites
ldr r4, _080B2754 @ =0x02019338
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 26
cmp r0, 0
bge _080B274A
ldr r0, _080B2758 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldrb r0, [r1, 0x8]
cmp r0, 0x1
bne _080B2718
adds r5, r2, 0
movs r3, 0x4
adds r2, r4, 0
movs r4, 0x3
_080B26FE:
ldrb r0, [r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r3
strb r0, [r1]
adds r2, 0x4
subs r4, 0x1
cmp r4, 0
bge _080B26FE
_080B2718:
movs r4, 0
_080B271A:
lsls r0, r4, 2
ldr r5, _080B2754 @ =0x02019338
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080B2750 @ =gSprites
adds r0, r1
bl FreeSpriteOamMatrix
adds r4, 0x1
cmp r4, 0x3
ble _080B271A
ldr r0, _080B275C @ =0xfffffecc
adds r2, r5, r0
ldrb r1, [r2, 0x7]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r2, 0x7]
adds r0, r6, 0
bl DestroyTask
_080B274A:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B2750: .4byte gSprites
_080B2754: .4byte 0x02019338
_080B2758: .4byte gTasks
_080B275C: .4byte 0xfffffecc
thumb_func_end sub_80B26C8
thumb_func_start sub_80B2760
sub_80B2760: @ 80B2760
push {lr}
lsls r0, 16
lsrs r1, r0, 16
movs r0, 0xB1
lsls r0, 1
cmp r1, r0
bls _080B2770
movs r1, 0x1
_080B2770:
adds r0, r1, 0
pop {r1}
bx r1
thumb_func_end sub_80B2760
thumb_func_start sub_80B2778
sub_80B2778: @ 80B2778
push {lr}
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _080B278C @ =0x0000019b
cmp r1, r0
bls _080B2786
movs r1, 0
_080B2786:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_080B278C: .4byte 0x0000019b
thumb_func_end sub_80B2778
thumb_func_start sub_80B2790
sub_80B2790: @ 80B2790
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
ldr r4, _080B27F0 @ =0x02019260
adds r0, r4
ldrh r0, [r0, 0x6]
bl sub_80B2760
lsls r0, 16
lsrs r5, r0, 16
ldr r1, _080B27F4 @ =gUnknown_02038570
lsls r0, r6, 6
adds r0, r1
ldrh r0, [r0]
bl sub_80B2778
lsls r0, 16
lsrs r7, r0, 16
adds r4, 0xE8
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
bl memset
bl sub_8075624
ldr r1, _080B27F8 @ =gUnknown_02024E84
movs r2, 0
adds r0, r1, 0x3
_080B27D0:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _080B27D0
cmp r5, 0x90
beq _080B2848
cmp r5, 0x90
bgt _080B2806
cmp r5, 0x4C
beq _080B2898
cmp r5, 0x4C
bgt _080B27FC
cmp r5, 0xD
beq _080B2898
b _080B28BE
.align 2, 0
_080B27F0: .4byte 0x02019260
_080B27F4: .4byte gUnknown_02038570
_080B27F8: .4byte gUnknown_02024E84
_080B27FC:
cmp r5, 0x82
beq _080B2898
cmp r5, 0x8F
beq _080B2898
b _080B28BE
_080B2806:
cmp r5, 0xD8
beq _080B2880
cmp r5, 0xD8
bgt _080B2814
cmp r5, 0xAE
beq _080B2822
b _080B28BE
_080B2814:
cmp r5, 0xDA
beq _080B288C
movs r0, 0x88
lsls r0, 1
cmp r5, r0
beq _080B2848
b _080B28BE
_080B2822:
ldr r0, _080B2840 @ =gBaseStats
lsls r1, r7, 3
subs r1, r7
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x6]
cmp r0, 0x7
beq _080B2838
ldrb r0, [r1, 0x7]
cmp r0, 0x7
bne _080B28B8
_080B2838:
ldr r1, _080B2844 @ =gUnknown_0202F7C4
movs r0, 0
b _080B28BC
.align 2, 0
_080B2840: .4byte gBaseStats
_080B2844: .4byte gUnknown_0202F7C4
_080B2848:
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
ldr r4, _080B2878 @ =0x02019260
adds r0, r4
ldrb r5, [r0, 0x1B]
ldr r6, _080B287C @ =gUnknown_02038570
lsls r5, 6
adds r0, r5, r6
ldrh r0, [r0]
bl sub_80B2778
adds r4, 0xE8
strh r0, [r4, 0x2]
adds r6, 0x38
adds r5, r6
ldr r0, [r5]
str r0, [r4, 0x10]
ldrb r0, [r4, 0x4]
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x4]
b _080B28BE
.align 2, 0
_080B2878: .4byte 0x02019260
_080B287C: .4byte gUnknown_02038570
_080B2880:
ldr r1, _080B2888 @ =gUnknown_0202F7BE
movs r0, 0xFF
b _080B28BC
.align 2, 0
_080B2888: .4byte gUnknown_0202F7BE
_080B288C:
ldr r1, _080B2894 @ =gUnknown_0202F7BE
movs r0, 0
b _080B28BC
.align 2, 0
_080B2894: .4byte gUnknown_0202F7BE
_080B2898:
ldr r0, _080B28B0 @ =0x02019204
adds r2, r0, 0
adds r2, 0x5A
ldrb r1, [r2]
cmp r1, 0
bne _080B28B8
movs r0, 0x2
strb r0, [r2]
ldr r0, _080B28B4 @ =gUnknown_0202F7C4
strb r1, [r0]
b _080B28BE
.align 2, 0
_080B28B0: .4byte 0x02019204
_080B28B4: .4byte gUnknown_0202F7C4
_080B28B8:
ldr r1, _080B28C8 @ =gUnknown_0202F7C4
movs r0, 0x1
_080B28BC:
strb r0, [r1]
_080B28BE:
bl sub_80B2968
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B28C8: .4byte gUnknown_0202F7C4
thumb_func_end sub_80B2790
thumb_func_start sub_80B28CC
sub_80B28CC: @ 80B28CC
push {r4,lr}
ldr r4, _080B28EC @ =0x02019348
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
bl memset
subs r4, 0xEA
ldrb r0, [r4]
cmp r0, 0
beq _080B28E6
subs r0, 0x1
strb r0, [r4]
_080B28E6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B28EC: .4byte 0x02019348
thumb_func_end sub_80B28CC
thumb_func_start sub_80B28F0
sub_80B28F0: @ 80B28F0
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r6, _080B2924 @ =0x02019348
strb r4, [r6, 0x5]
ldr r5, _080B2928 @ =gUnknown_02038570
lsls r4, 6
adds r0, r4, r5
ldrh r0, [r0]
bl sub_80B2778
strh r0, [r6]
adds r0, r5, 0
adds r0, 0x38
adds r0, r4, r0
ldr r0, [r0]
str r0, [r6, 0x8]
adds r5, 0x3C
adds r4, r5
ldr r0, [r4]
str r0, [r6, 0xC]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B2924: .4byte 0x02019348
_080B2928: .4byte gUnknown_02038570
thumb_func_end sub_80B28F0
thumb_func_start sub_80B292C
sub_80B292C: @ 80B292C
push {lr}
ldr r0, _080B2958 @ =SpriteCallbackDummy
bl object_new_hidden_with_callback
ldr r1, _080B295C @ =gUnknown_02024BE0
strb r0, [r1, 0x3]
ldr r0, _080B2960 @ =gUnknown_02024C08
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080B2964 @ =gSprites
adds r0, r1
bl InitSpriteAffineAnim
bl sub_80B2968
pop {r0}
bx r0
.align 2, 0
_080B2958: .4byte SpriteCallbackDummy
_080B295C: .4byte gUnknown_02024BE0
_080B2960: .4byte gUnknown_02024C08
_080B2964: .4byte gSprites
thumb_func_end sub_80B292C
thumb_func_start sub_80B2968
sub_80B2968: @ 80B2968
push {r4,lr}
ldr r0, _080B29AC @ =gUnknown_02024BE0
ldrb r0, [r0, 0x3]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _080B29B0 @ =gSprites
adds r4, r0
movs r0, 0
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
movs r0, 0x3
movs r1, 0
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
movs r0, 0x3
movs r1, 0x1
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
adds r4, 0x3E
ldrb r0, [r4]
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B29AC: .4byte gUnknown_02024BE0
_080B29B0: .4byte gSprites
thumb_func_end sub_80B2968
thumb_func_start sub_80B29B4
sub_80B29B4: @ 80B29B4
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r2, _080B29D4 @ =gBattleMoves
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x6]
cmp r0, 0x20
bhi _080B2A6C
lsls r0, 2
ldr r1, _080B29D8 @ =_080B29DC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080B29D4: .4byte gBattleMoves
_080B29D8: .4byte _080B29DC
.align 2, 0
_080B29DC:
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A60
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A60
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
.4byte _080B2A6C
_080B2A60:
ldr r1, _080B2A68 @ =gUnknown_02024C08
movs r0, 0x2
b _080B2A70
.align 2, 0
_080B2A68: .4byte gUnknown_02024C08
_080B2A6C:
ldr r1, _080B2A78 @ =gUnknown_02024C08
movs r0, 0x3
_080B2A70:
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080B2A78: .4byte gUnknown_02024C08
thumb_func_end sub_80B29B4
thumb_func_start sub_80B2A7C
sub_80B2A7C: @ 80B2A7C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
mov r9, r0
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
bl __umodsi3
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
ldr r1, _080B2AC8 @ =gUnknown_02038690
ldrb r0, [r1]
cmp r0, 0
beq _080B2AB6
_080B2AA8:
adds r6, 0x1
cmp r6, 0x2
bgt _080B2AB6
adds r0, r6, r1
ldrb r0, [r0]
cmp r0, 0
bne _080B2AA8
_080B2AB6:
mov r0, r9
cmp r0, 0xFF
bne _080B2AD0
ldr r0, _080B2ACC @ =gUnknown_02038695
ldrb r0, [r0]
cmp r6, r0
beq _080B2AD0
movs r0, 0
b _080B2C38
.align 2, 0
_080B2AC8: .4byte gUnknown_02038690
_080B2ACC: .4byte gUnknown_02038695
_080B2AD0:
ldr r0, _080B2AE4 @ =gUnknown_0203869C
ldrh r0, [r0]
cmp r0, 0x4
bhi _080B2B16
lsls r0, 2
ldr r1, _080B2AE8 @ =_080B2AEC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080B2AE4: .4byte gUnknown_0203869C
_080B2AE8: .4byte _080B2AEC
.align 2, 0
_080B2AEC:
.4byte _080B2B16
.4byte _080B2B00
.4byte _080B2B04
.4byte _080B2B08
.4byte _080B2B0E
_080B2B00:
adds r0, r7, 0x3
b _080B2B12
_080B2B04:
adds r0, r7, 0x6
b _080B2B12
_080B2B08:
adds r0, r7, 0
adds r0, 0x9
b _080B2B12
_080B2B0E:
adds r0, r7, 0
adds r0, 0xC
_080B2B12:
lsls r0, 24
lsrs r7, r0, 24
_080B2B16:
mov r1, r9
cmp r1, 0xFE
beq _080B2BC4
mov r0, r9
movs r1, 0x1
bl sub_80B2C4C
adds r4, r0, 0
lsls r4, 24
ldr r2, _080B2B98 @ =gSaveBlock1
lsrs r4, 19
ldr r0, _080B2B9C @ =0x00002dfc
adds r1, r2, r0
adds r1, r4, r1
ldr r5, _080B2BA0 @ =gUnknown_02038570
lsls r6, 6
adds r0, r5, 0
adds r0, 0x38
adds r0, r6, r0
ldr r0, [r0]
str r0, [r1]
adds r1, r4, r2
mov r8, r1
adds r0, r6, r5
ldrh r1, [r0]
ldr r0, _080B2BA4 @ =0x00002e04
add r0, r8
strh r1, [r0]
movs r0, 0xB8
lsls r0, 6
adds r1, r2, r0
adds r1, r4, r1
adds r0, r5, 0
adds r0, 0x3C
adds r0, r6, r0
ldr r0, [r0]
str r0, [r1]
ldr r1, _080B2BA8 @ =0x00002e07
adds r0, r2, r1
adds r0, r4, r0
adds r1, r5, 0x2
adds r1, r6, r1
str r2, [sp]
bl StringCopy
ldr r2, [sp]
ldr r0, _080B2BAC @ =0x00002e12
adds r2, r0
adds r4, r2
adds r5, 0xD
adds r6, r5
adds r0, r4, 0
adds r1, r6, 0
bl StringCopy
mov r1, r9
cmp r1, 0xFF
beq _080B2BB8
ldr r0, _080B2BB0 @ =gUnknown_0203869C
ldrh r1, [r0]
ldr r0, _080B2BB4 @ =0x00002e06
add r0, r8
strb r1, [r0]
b _080B2C36
.align 2, 0
_080B2B98: .4byte gSaveBlock1
_080B2B9C: .4byte 0x00002dfc
_080B2BA0: .4byte gUnknown_02038570
_080B2BA4: .4byte 0x00002e04
_080B2BA8: .4byte 0x00002e07
_080B2BAC: .4byte 0x00002e12
_080B2BB0: .4byte gUnknown_0203869C
_080B2BB4: .4byte 0x00002e06
_080B2BB8:
ldr r0, _080B2BC0 @ =0x00002e06
add r0, r8
strb r7, [r0]
b _080B2C36
.align 2, 0
_080B2BC0: .4byte 0x00002e06
_080B2BC4:
ldr r5, _080B2C14 @ =0x02015de0
ldr r2, _080B2C18 @ =gUnknown_02038570
lsls r4, r6, 6
adds r0, r2, 0
adds r0, 0x38
adds r0, r4, r0
ldr r0, [r0]
str r0, [r5]
adds r0, r2, 0
adds r0, 0x3C
adds r0, r4, r0
ldr r0, [r0]
str r0, [r5, 0x4]
adds r0, r4, r2
ldrh r0, [r0]
strh r0, [r5, 0x8]
adds r0, r5, 0
adds r0, 0xB
adds r1, r2, 0x2
adds r1, r4, r1
str r2, [sp]
bl StringCopy
ldr r0, _080B2C1C @ =gUnknown_0203869A
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
ldr r2, [sp]
cmp r0, 0
beq _080B2C24
adds r0, r5, 0
adds r0, 0x16
lsls r1, r6, 3
subs r1, r6
lsls r1, 2
ldr r2, _080B2C20 @ =gLinkPlayers + 0x8
adds r1, r2
bl StringCopy
b _080B2C32
.align 2, 0
_080B2C14: .4byte 0x02015de0
_080B2C18: .4byte gUnknown_02038570
_080B2C1C: .4byte gUnknown_0203869A
_080B2C20: .4byte gLinkPlayers + 0x8
_080B2C24:
adds r0, r5, 0
adds r0, 0x16
adds r1, r2, 0
adds r1, 0xD
adds r1, r4, r1
bl StringCopy
_080B2C32:
ldr r0, _080B2C48 @ =0x02015de0
strb r7, [r0, 0xA]
_080B2C36:
movs r0, 0x1
_080B2C38:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080B2C48: .4byte 0x02015de0
thumb_func_end sub_80B2A7C
thumb_func_start sub_80B2C4C
sub_80B2C4C: @ 80B2C4C
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
lsls r1, 24
lsrs r1, 24
cmp r0, 0x2
beq _080B2C6E
cmp r0, 0x2
ble _080B2C66
cmp r0, 0x3
beq _080B2CA0
b _080B2CD4
_080B2C66:
cmp r2, 0
blt _080B2CD4
adds r0, r2, 0
b _080B2D16
_080B2C6E:
cmp r1, 0
beq _080B2C98
movs r2, 0x4
ldr r0, _080B2C9C @ =gSaveBlock1 + 0x2DFC
adds r4, r0, 0
adds r4, 0x60
adds r3, r0, 0
adds r3, 0x80
_080B2C7E:
adds r1, r3, 0
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5,r6}
stm r1!, {r5,r6}
subs r4, 0x20
subs r3, 0x20
subs r2, 0x1
cmp r2, 0x2
bgt _080B2C7E
_080B2C98:
movs r0, 0x2
b _080B2D16
.align 2, 0
_080B2C9C: .4byte gSaveBlock1 + 0x2DFC
_080B2CA0:
cmp r1, 0
beq _080B2CCA
movs r2, 0x7
ldr r0, _080B2CD0 @ =gSaveBlock1 + 0x2DFC
adds r4, r0, 0
adds r4, 0xC0
adds r3, r0, 0
adds r3, 0xE0
_080B2CB0:
adds r1, r3, 0
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5,r7}
stm r1!, {r5,r7}
subs r4, 0x20
subs r3, 0x20
subs r2, 0x1
cmp r2, 0x5
bgt _080B2CB0
_080B2CCA:
movs r0, 0x5
b _080B2D16
.align 2, 0
_080B2CD0: .4byte gSaveBlock1 + 0x2DFC
_080B2CD4:
ldr r0, _080B2CE8 @ =gUnknown_0203869C
ldrh r0, [r0]
cmp r0, 0x4
bhi _080B2D14
lsls r0, 2
ldr r1, _080B2CEC @ =_080B2CF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080B2CE8: .4byte gUnknown_0203869C
_080B2CEC: .4byte _080B2CF0
.align 2, 0
_080B2CF0:
.4byte _080B2D04
.4byte _080B2D08
.4byte _080B2D0C
.4byte _080B2D10
.4byte _080B2D14
_080B2D04:
movs r0, 0x8
b _080B2D16
_080B2D08:
movs r0, 0x9
b _080B2D16
_080B2D0C:
movs r0, 0xA
b _080B2D16
_080B2D10:
movs r0, 0xB
b _080B2D16
_080B2D14:
movs r0, 0xC
_080B2D16:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80B2C4C
thumb_func_start sub_80B2D1C
sub_80B2D1C: @ 80B2D1C
push {r4-r7,lr}
ldr r0, _080B2D48 @ =gSaveBlock1
ldr r4, _080B2D4C @ =gUnknown_083CC5D0
ldr r1, _080B2D50 @ =0x00002dfc
adds r3, r0, r1
movs r2, 0x7
_080B2D28:
adds r1, r3, 0
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5,r6}
stm r1!, {r5,r6}
adds r4, 0x20
adds r3, 0x20
subs r2, 0x1
cmp r2, 0
bge _080B2D28
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B2D48: .4byte gSaveBlock1
_080B2D4C: .4byte gUnknown_083CC5D0
_080B2D50: .4byte 0x00002dfc
thumb_func_end sub_80B2D1C
.align 2, 0 @ Don't pad with nop.