pokeemerald/asm/pokemon_summary_screen.s
2017-09-20 16:46:59 -05:00

13905 lines
210 KiB
ArmAsm
Executable File

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81BF8EC
sub_81BF8EC: @ 81BF8EC
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r8, r1
adds r5, r2, 0
adds r6, r3, 0
lsls r0, 24
lsrs r7, r0, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
ldr r4, =gUnknown_0203CF1C
ldr r0, =0x000040f8
bl AllocZeroed
str r0, [r4]
ldr r1, =0x000040bc
adds r0, r1
strb r7, [r0]
ldr r0, [r4]
mov r2, r8
str r2, [r0]
adds r1, 0x2
adds r0, r1
strb r5, [r0]
ldr r0, [r4]
ldr r2, =0x000040bf
adds r0, r2
strb r6, [r0]
ldr r1, [r4]
ldr r0, [sp, 0x18]
str r0, [r1, 0x4]
cmp r7, 0x2
bne _081BF94C
subs r2, 0x2
adds r1, r2
movs r0, 0x1
b _081BF952
.pool
_081BF94C:
ldr r0, =0x000040bd
adds r1, r0
movs r0, 0
_081BF952:
strb r0, [r1]
cmp r7, 0x1
beq _081BF9A0
cmp r7, 0x1
bgt _081BF96C
cmp r7, 0
beq _081BF97C
ldr r2, =gUnknown_0203CF1C
b _081BF9EE
.pool
_081BF96C:
cmp r7, 0x2
beq _081BF97C
cmp r7, 0x3
beq _081BF9D0
ldr r2, =gUnknown_0203CF1C
b _081BF9EE
.pool
_081BF97C:
ldr r2, =gUnknown_0203CF1C
ldr r0, [r2]
ldr r1, =0x000040c1
adds r0, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
ldr r1, =0x000040c2
adds r0, r1
movs r1, 0x3
b _081BF9EC
.pool
_081BF9A0:
ldr r2, =gUnknown_0203CF1C
ldr r0, [r2]
ldr r1, =0x000040c1
adds r0, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
ldr r1, =0x000040c2
adds r0, r1
movs r1, 0x3
strb r1, [r0]
ldr r0, [r2]
ldr r1, =0x000040c8
adds r0, r1
strb r7, [r0]
b _081BF9EE
.pool
_081BF9D0:
ldr r2, =gUnknown_0203CF1C
ldr r0, [r2]
ldr r1, =0x000040c1
adds r0, r1
movs r1, 0x2
strb r1, [r0]
ldr r0, [r2]
ldr r1, =0x000040c2
adds r0, r1
strb r7, [r0]
ldr r0, [r2]
adds r1, 0x1
adds r0, r1
movs r1, 0x1
_081BF9EC:
strb r1, [r0]
_081BF9EE:
ldr r0, [r2]
ldr r2, =0x000040c1
adds r1, r0, r2
ldrb r1, [r1]
subs r2, 0x1
adds r0, r2
strb r1, [r0]
movs r0, 0xFF
bl sub_81C488C
ldr r0, =gBattleSpritesGfx
ldr r0, [r0]
cmp r0, 0
bne _081BFA12
movs r0, 0
movs r1, 0
bl sub_806F2AC
_081BFA12:
ldr r0, =sub_81BFAE4
bl SetMainCallback2
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81BF8EC
thumb_func_start sub_81BFA38
sub_81BFA38: @ 81BFA38
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
mov r8, r0
adds r4, r1, 0
adds r5, r2, 0
ldr r6, [sp, 0x18]
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 16
lsrs r6, 16
str r3, [sp]
movs r0, 0x3
mov r1, r8
adds r2, r4, 0
adds r3, r5, 0
bl sub_81BF8EC
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c4
adds r0, r1
strh r6, [r0]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81BFA38
thumb_func_start sub_81BFA80
sub_81BFA80: @ 81BFA80
push {r4,lr}
sub sp, 0x4
ldr r4, [sp, 0xC]
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
str r4, [sp]
bl sub_81BF8EC
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040ef
adds r0, r1
movs r1, 0x1
strb r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81BFA80
thumb_func_start sub_81BFAB4
sub_81BFAB4: @ 81BFAB4
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl do_scheduled_bg_tilemap_copies_to_vram
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_81BFAB4
thumb_func_start sub_81BFAD0
sub_81BFAD0: @ 81BFAD0
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_81BFAD0
thumb_func_start sub_81BFAE4
sub_81BFAE4: @ 81BFAE4
push {lr}
_081BFAE6:
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081BFB0A
bl sub_81BFB10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081BFB0A
bl sub_81221AC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081BFAE6
_081BFB0A:
pop {r0}
bx r0
thumb_func_end sub_81BFAE4
thumb_func_start sub_81BFB10
sub_81BFB10: @ 81BFB10
push {r4,lr}
sub sp, 0x4
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x18
bls _081BFB24
b _081BFE00
_081BFB24:
lsls r0, 2
ldr r1, =_081BFB38
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081BFB38:
.4byte _081BFB9C
.4byte _081BFBAA
.4byte _081BFBBC
.4byte _081BFBD0
.4byte _081BFBE4
.4byte _081BFBEA
.4byte _081BFC04
.4byte _081BFC20
.4byte _081BFC26
.4byte _081BFC38
.4byte _081BFC58
.4byte _081BFC7C
.4byte _081BFC82
.4byte _081BFC94
.4byte _081BFCAC
.4byte _081BFCC0
.4byte _081BFCD8
.4byte _081BFCF8
.4byte _081BFD34
.4byte _081BFD50
.4byte _081BFD60
.4byte _081BFD74
.4byte _081BFD7A
.4byte _081BFDB0
.4byte _081BFDCC
_081BFB9C:
bl SetVBlankHBlankCallbacksToNull
bl sub_8121DA0
bl clear_scheduled_bg_copies_to_vram
b _081BFDE6
_081BFBAA:
bl remove_some_task
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFBBC:
bl ResetPaletteFade
ldr r2, =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
b _081BFDE4
.pool
_081BFBD0:
bl ResetSpriteData
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFBE4:
bl FreeAllSpritePalettes
b _081BFDE6
_081BFBEA:
bl sub_81BFE24
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040f0
adds r0, r1
movs r1, 0
strh r1, [r0]
b _081BFDE6
.pool
_081BFC04:
bl sub_81BFEB0
lsls r0, 24
cmp r0, 0
bne _081BFC10
b _081BFE18
_081BFC10:
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFC20:
bl sub_81C2554
b _081BFDE6
_081BFC26:
bl sub_81C1BA0
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFC38:
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
adds r0, 0xC
bl sub_81C0098
ldr r0, [r4]
ldr r1, =0x000040f0
adds r0, r1
movs r1, 0
strh r1, [r0]
b _081BFDE6
.pool
_081BFC58:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
bl sub_81C00F0
lsls r0, 24
cmp r0, 0
bne _081BFC6A
b _081BFE18
_081BFC6A:
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFC7C:
bl sub_81C25E8
b _081BFDE6
_081BFC82:
bl sub_81C286C
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFC94:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
bl sub_81C2D9C
b _081BFDE6
.pool
_081BFCAC:
bl sub_81C0348
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFCC0:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
bl sub_81C2AFC
b _081BFDE6
.pool
_081BFCD8:
bl sub_81C4190
bl sub_81C42C8
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040f0
adds r0, r1
movs r1, 0
strh r1, [r0]
b _081BFDE6
.pool
_081BFCF8:
ldr r4, =gUnknown_0203CF1C
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC
ldr r2, =0x000040f0
adds r1, r2
bl sub_81C45F4
ldr r1, [r4]
ldr r2, =0x000040d3
adds r1, r2
strb r0, [r1]
ldr r1, [r4]
adds r2, r1, r2
ldrb r0, [r2]
cmp r0, 0xFF
bne _081BFD1C
b _081BFE18
_081BFD1C:
ldr r0, =0x000040f0
adds r1, r0
movs r0, 0
strh r0, [r1]
b _081BFDE6
.pool
_081BFD34:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
bl sub_81C4984
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFD50:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
bl sub_81C4A08
b _081BFDE6
.pool
_081BFD60:
bl sub_81C4A88
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFD74:
bl sub_81C4280
b _081BFDE6
_081BFD7A:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040bc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3
beq _081BFDA0
ldr r0, =sub_81C0510
movs r1, 0
bl CreateTask
b _081BFDE6
.pool
_081BFDA0:
ldr r0, =sub_81C171C
movs r1, 0
bl CreateTask
b _081BFDE6
.pool
_081BFDB0:
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _081BFDEE
.pool
_081BFDCC:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r2, =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
_081BFDE4:
strb r0, [r2, 0x8]
_081BFDE6:
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
_081BFDEE:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _081BFE18
.pool
_081BFE00:
ldr r0, =sub_81BFAD0
bl SetVBlankCallback
ldr r0, =sub_81BFAB4
bl SetMainCallback2
movs r0, 0x1
b _081BFE1A
.pool
_081BFE18:
movs r0, 0
_081BFE1A:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81BFB10
thumb_func_start sub_81BFE24
sub_81BFE24: @ 81BFE24
push {r4,lr}
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0861CBB4
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r4, =gUnknown_0203CF1C
ldr r1, [r4]
ldr r0, =0x000020bc
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x000010bc
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r4]
adds r1, 0xBC
movs r0, 0x3
bl SetBgTilemapBuffer
bl sub_8121E10
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x3
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81BFE24
thumb_func_start sub_81BFEB0
sub_81BFEB0: @ 81BFEB0
push {r4,lr}
sub sp, 0x4
ldr r1, =gUnknown_0203CF1C
ldr r0, [r1]
ldr r2, =0x000040f0
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
adds r4, r1, 0
cmp r0, 0xC
bls _081BFEC8
b _081C008C
_081BFEC8:
lsls r0, 2
ldr r1, =_081BFEE0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081BFEE0:
.4byte _081BFF14
.4byte _081BFF30
.4byte _081BFF60
.4byte _081BFF78
.4byte _081BFF90
.4byte _081BFFA8
.4byte _081BFFC0
.4byte _081BFFF0
.4byte _081BFFFC
.4byte _081C0018
.4byte _081C0024
.4byte _081C0040
.4byte _081C0064
_081BFF14:
bl reset_temp_tile_data_buffers
ldr r1, =gUnknown_08D97D0C
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
b _081C0046
.pool
_081BFF30:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081BFF3E
b _081C008C
_081BFF3E:
ldr r0, =gUnknown_08D9862C
ldr r4, =gUnknown_0203CF1C
ldr r1, [r4]
adds r1, 0xBC
bl LZDecompressWram
ldr r1, [r4]
ldr r2, =0x000040f0
adds r1, r2
b _081C004E
.pool
_081BFF60:
ldr r0, =gUnknown_08D98CC8
ldr r1, [r4]
ldr r2, =0x000008bc
adds r1, r2
bl LZDecompressWram
ldr r1, [r4]
b _081C004A
.pool
_081BFF78:
ldr r0, =gUnknown_08D987FC
ldr r1, [r4]
ldr r2, =0x000018bc
adds r1, r2
bl LZDecompressWram
ldr r1, [r4]
b _081C004A
.pool
_081BFF90:
ldr r0, =gUnknown_08D9898C
ldr r1, [r4]
ldr r2, =0x000028bc
adds r1, r2
bl LZDecompressWram
ldr r1, [r4]
b _081C004A
.pool
_081BFFA8:
ldr r0, =gUnknown_08D98B28
ldr r1, [r4]
ldr r2, =0x000038bc
adds r1, r2
bl LZDecompressWram
ldr r1, [r4]
b _081C004A
.pool
_081BFFC0:
ldr r0, =gUnknown_08D9853C
movs r2, 0x80
lsls r2, 1
movs r1, 0
bl LoadCompressedPalette
ldr r0, =gUnknown_08D85620
movs r1, 0x81
movs r2, 0x1E
bl LoadPalette
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040f0
adds r1, r2
b _081C004E
.pool
_081BFFF0:
ldr r0, =gUnknown_0861CFBC
bl LoadCompressedObjectPic
b _081C0046
.pool
_081BFFFC:
ldr r0, =gUnknown_0861D074
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040f0
adds r1, r2
b _081C004E
.pool
_081C0018:
ldr r0, =gUnknown_0861D0F8
bl LoadCompressedObjectPic
b _081C0046
.pool
_081C0024:
ldr r0, =gUnknown_0861D100
bl LoadCompressedObjectPalette
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040f0
adds r1, r2
b _081C004E
.pool
_081C0040:
ldr r0, =gUnknown_0861D07C
bl LoadCompressedObjectPalette
_081C0046:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
_081C004A:
ldr r0, =0x000040f0
adds r1, r0
_081C004E:
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _081C008C
.pool
_081C0064:
ldr r0, =gUnknown_08D97B84
movs r1, 0xE8
lsls r1, 1
movs r2, 0x60
bl LoadCompressedPalette
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040f0
adds r0, r1
movs r1, 0
strh r1, [r0]
movs r0, 0x1
b _081C008E
.pool
_081C008C:
movs r0, 0
_081C008E:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81BFEB0
thumb_func_start sub_81C0098
sub_81C0098: @ 81C0098
push {r4,lr}
adds r3, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040bd
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _081C00D0
ldr r2, [r1]
ldr r4, =0x000040be
adds r0, r1, r4
ldrb r1, [r0]
movs r0, 0x64
muls r1, r0
adds r1, r2
adds r0, r3, 0
movs r2, 0x64
bl memcpy
b _081C00E6
.pool
_081C00D0:
ldr r0, [r1]
ldr r2, =0x000040be
adds r1, r2
ldrb r2, [r1]
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
adds r0, r1
adds r1, r3, 0
bl sub_8069004
_081C00E6:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0098
thumb_func_start sub_81C00F0
sub_81C00F0: @ 81C00F0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r5, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r7, [r0]
adds r6, r7, 0
adds r6, 0x70
ldr r1, =0x000040f0
adds r0, r7, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
beq _081C0198
cmp r0, 0x1
bgt _081C0120
cmp r0, 0
beq _081C012C
b _081C0314
.pool
_081C0120:
cmp r0, 0x2
beq _081C01DC
cmp r0, 0x3
bne _081C012A
b _081C02A8
_081C012A:
b _081C0314
_081C012C:
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
strh r0, [r6]
adds r0, r5, 0
movs r1, 0x41
bl GetMonData
strh r0, [r6, 0x2]
adds r0, r5, 0
movs r1, 0x19
bl GetMonData
str r0, [r6, 0x10]
adds r0, r5, 0
movs r1, 0x38
bl GetMonData
strb r0, [r6, 0x5]
adds r0, r5, 0
movs r1, 0x2E
bl GetMonData
strb r0, [r6, 0x8]
adds r0, r5, 0
movs r1, 0xC
bl GetMonData
strh r0, [r6, 0x2E]
adds r0, r5, 0
movs r1, 0
bl GetMonData
str r0, [r6, 0xC]
adds r0, r5, 0
movs r1, 0x4
bl GetMonData
adds r1, r7, 0
adds r1, 0xA5
strb r0, [r1]
lsls r0, 24
cmp r0, 0
beq _081C018C
movs r0, 0x1
strb r0, [r6, 0x4]
b _081C0322
_081C018C:
adds r0, r5, 0
movs r1, 0x2D
bl GetMonData
strb r0, [r6, 0x4]
b _081C0322
_081C0198:
movs r4, 0
movs r0, 0x8C
adds r0, r7
mov r8, r0
movs r1, 0xA4
adds r1, r7
mov r9, r1
adds r6, r7, 0
adds r6, 0x84
_081C01AA:
adds r1, r4, 0
adds r1, 0xD
adds r0, r5, 0
bl GetMonData
strh r0, [r6]
adds r1, r4, 0
adds r1, 0x11
adds r0, r5, 0
bl GetMonData
mov r2, r8
adds r1, r2, r4
strb r0, [r1]
adds r6, 0x2
adds r4, 0x1
cmp r4, 0x3
bls _081C01AA
adds r0, r5, 0
movs r1, 0x15
bl GetMonData
mov r1, r9
strb r0, [r1]
b _081C0322
_081C01DC:
ldr r1, [r7]
ldr r0, =gPlayerParty
cmp r1, r0
beq _081C01F8
ldr r2, =0x000040bc
adds r0, r7, r2
ldrb r0, [r0]
cmp r0, 0x2
beq _081C01F8
ldr r1, =0x000040ef
adds r0, r7, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C0254
_081C01F8:
adds r0, r5, 0
bl GetNature
adds r1, r6, 0
adds r1, 0x33
strb r0, [r1]
adds r0, r5, 0
movs r1, 0x39
bl GetMonData
strh r0, [r6, 0x20]
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
strh r0, [r6, 0x22]
adds r0, r5, 0
movs r1, 0x3B
bl GetMonData
strh r0, [r6, 0x24]
adds r0, r5, 0
movs r1, 0x3C
bl GetMonData
strh r0, [r6, 0x26]
adds r0, r5, 0
movs r1, 0x3E
bl GetMonData
strh r0, [r6, 0x28]
adds r0, r5, 0
movs r1, 0x3F
bl GetMonData
strh r0, [r6, 0x2A]
adds r0, r5, 0
movs r1, 0x3D
b _081C02A0
.pool
_081C0254:
adds r0, r5, 0
bl GetNature
adds r1, r7, 0
adds r1, 0xA3
strb r0, [r1]
adds r0, r5, 0
movs r1, 0x39
bl GetMonData
strh r0, [r6, 0x20]
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
strh r0, [r6, 0x22]
adds r0, r5, 0
movs r1, 0x54
bl GetMonData
strh r0, [r6, 0x24]
adds r0, r5, 0
movs r1, 0x55
bl GetMonData
strh r0, [r6, 0x26]
adds r0, r5, 0
movs r1, 0x57
bl GetMonData
strh r0, [r6, 0x28]
adds r0, r5, 0
movs r1, 0x58
bl GetMonData
strh r0, [r6, 0x2A]
adds r0, r5, 0
movs r1, 0x56
_081C02A0:
bl GetMonData
strh r0, [r6, 0x2C]
b _081C0322
_081C02A8:
adds r4, r7, 0
adds r4, 0xA6
adds r0, r5, 0
movs r1, 0x7
adds r2, r4, 0
bl GetMonData
adds r0, r5, 0
movs r1, 0x3
bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ConvertInternationalString
adds r0, r5, 0
bl sub_81B205C
strb r0, [r6, 0x7]
adds r0, r5, 0
movs r1, 0x31
bl GetMonData
adds r1, r7, 0
adds r1, 0xA2
strb r0, [r1]
adds r0, r5, 0
movs r1, 0x1
bl GetMonData
str r0, [r6, 0x48]
adds r0, r5, 0
movs r1, 0x23
bl GetMonData
strb r0, [r6, 0x9]
adds r0, r5, 0
movs r1, 0x24
bl GetMonData
strb r0, [r6, 0xA]
adds r0, r5, 0
movs r1, 0x25
bl GetMonData
strb r0, [r6, 0xB]
adds r0, r5, 0
movs r1, 0x20
bl GetMonData
strh r0, [r6, 0x30]
b _081C0322
_081C0314:
adds r0, r5, 0
movs r1, 0x52
bl GetMonData
strb r0, [r6, 0x6]
movs r0, 0x1
b _081C0332
_081C0322:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040f0
adds r1, r2
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
movs r0, 0
_081C0332:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C00F0
thumb_func_start sub_81C0348
sub_81C0348: @ 81C0348
push {r4-r6,lr}
ldr r6, =gUnknown_0203CF1C
ldr r2, [r6]
ldr r1, =0x000040c0
adds r0, r2, r1
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _081C037C
movs r0, 0
movs r1, 0xFF
bl sub_81C1DA4
movs r0, 0
movs r1, 0xFF
movs r2, 0
bl sub_81C1EFC
b _081C03D8
.pool
_081C037C:
ldr r1, =0x000040c6
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 1
adds r0, r2, 0
adds r0, 0x84
adds r0, r1
ldrh r0, [r0]
bl sub_81C240C
ldr r0, [r6]
ldr r5, =0x000020bc
adds r0, r5
movs r1, 0x3
movs r2, 0
bl sub_81C2194
ldr r0, [r6]
ldr r4, =0x000030bc
adds r0, r4
movs r1, 0x1
movs r2, 0
bl sub_81C2194
ldr r1, [r6]
adds r1, r4
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r6]
adds r1, r5
movs r0, 0x2
bl SetBgTilemapBuffer
movs r1, 0x80
lsls r1, 9
movs r0, 0x2
movs r2, 0x1
bl ChangeBgX
movs r0, 0x13
bl ClearWindowTilemap
movs r0, 0xD
bl ClearWindowTilemap
_081C03D8:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x77
ldrb r0, [r0]
cmp r0, 0
bne _081C0400
movs r0, 0
movs r1, 0xFF
bl sub_81C2074
b _081C0416
.pool
_081C0400:
ldr r2, =0x000040c0
adds r0, r1, r2
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _081C0416
movs r0, 0xD
bl PutWindowTilemap
_081C0416:
bl sub_81C2524
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
bl sub_81C2228
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0348
thumb_func_start sub_81C0434
sub_81C0434: @ 81C0434
push {lr}
bl FreeAllWindowBuffers
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
bl Free
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0434
thumb_func_start sub_81C044C
sub_81C044C: @ 81C044C
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C0484
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C044C
thumb_func_start sub_81C0484
sub_81C0484: @ 81C0484
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C04EC
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C04EC
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
ldr r0, [r0, 0x4]
bl SetMainCallback2
ldr r1, =gUnknown_0203CF20
ldr r0, [r4]
ldr r2, =0x000040be
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
bl sub_81C4898
bl ResetSpriteData
bl FreeAllSpritePalettes
bl StopCryAndClearCrySongs
ldr r0, =gMPlay_BGM
ldr r1, =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
ldr r0, =gBattleSpritesGfx
ldr r0, [r0]
cmp r0, 0
bne _081C04E2
movs r0, 0
bl sub_806F47C
_081C04E2:
bl sub_81C0434
adds r0, r5, 0
bl DestroyTask
_081C04EC:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0484
thumb_func_start sub_81C0510
sub_81C0510: @ 81C0510
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C05FE
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r2, 0x80
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _081C05FE
ldr r5, =gMain
ldrh r1, [r5, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081C0550
movs r1, 0x1
negs r1, r1
adds r0, r4, 0
bl sub_81C0604
b _081C05FE
.pool
_081C0550:
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _081C0562
adds r0, r4, 0
movs r1, 0x1
bl sub_81C0604
b _081C05FE
_081C0562:
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _081C0576
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C0582
_081C0576:
movs r1, 0x1
negs r1, r1
adds r0, r4, 0
bl sub_81C0A8C
b _081C05FE
_081C0582:
ldrh r1, [r5, 0x2E]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _081C0598
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _081C05A2
_081C0598:
adds r0, r4, 0
movs r1, 0x1
bl sub_81C0A8C
b _081C05FE
_081C05A2:
ldrh r1, [r5, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C05E6
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _081C05FE
cmp r0, 0
bne _081C05D8
bl sub_81C48F0
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81C044C
b _081C05FE
.pool
_081C05D8:
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81C0E48
b _081C05FE
_081C05E6:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C05FE
bl sub_81C48F0
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81C044C
_081C05FE:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C0510
thumb_func_start sub_81C0604
sub_81C0604: @ 81C0604
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r5, r1, 24
adds r4, r5, 0
ldr r1, =gUnknown_0203CF1C
ldr r3, [r1]
ldr r2, =0x000040c3
adds r0, r3, r2
ldrb r0, [r0]
adds r6, r1, 0
cmp r0, 0
bne _081C06EE
ldr r1, =0x000040bd
adds r0, r3, r1
ldrb r2, [r0]
cmp r2, 0x1
bne _081C0678
adds r1, 0x3
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
beq _081C0654
lsls r1, r5, 24
asrs r1, 24
movs r4, 0x2
eors r1, r2
negs r0, r1
orrs r0, r1
asrs r0, 31
ands r4, r0
b _081C065C
.pool
_081C0654:
movs r4, 0x3
cmp r5, 0x1
bne _081C065C
movs r4, 0x1
_081C065C:
ldr r2, [r6]
ldr r0, [r2]
ldr r3, =0x000040be
adds r1, r2, r3
ldrb r1, [r1]
adds r3, 0x1
adds r2, r3
ldrb r2, [r2]
adds r3, r4, 0
bl sub_80D214C
b _081C0696
.pool
_081C0678:
bl sub_81B1250
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C068E
lsls r0, r5, 24
asrs r0, 24
bl sub_81C09B4
b _081C0696
_081C068E:
lsls r0, r4, 24
asrs r0, 24
bl sub_81C08F8
_081C0696:
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 24
asrs r0, 24
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _081C06EE
movs r0, 0x5
bl PlaySE
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
adds r0, 0x77
ldrb r0, [r0]
cmp r0, 0
beq _081C06D4
movs r0, 0x2
movs r1, 0x1
bl sub_81C4204
movs r0, 0xD
bl ClearWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0
movs r1, 0x2
bl sub_81C2074
_081C06D4:
ldr r0, [r5]
ldr r1, =0x000040be
adds r0, r1
movs r2, 0
strb r4, [r0]
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
strh r2, [r0, 0x8]
ldr r1, =sub_81C0704
str r1, [r0]
_081C06EE:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0604
thumb_func_start sub_81C0704
sub_81C0704: @ 81C0704
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r4, r1, 3
ldr r6, =gTasks + 0x8
adds r5, r4, r6
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0xC
bls _081C071E
b _081C08BC
_081C071E:
lsls r0, 2
ldr r1, =_081C0730
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C0730:
.4byte _081C0764
.4byte _081C076A
.4byte _081C0780
.4byte _081C07A8
.4byte _081C07C8
.4byte _081C07E0
.4byte _081C07F0
.4byte _081C0800
.4byte _081C0828
.4byte _081C086C
.4byte _081C0872
.4byte _081C0878
.4byte _081C0894
_081C0764:
bl StopCryAndClearCrySongs
b _081C08EC
_081C076A:
bl sub_81C4898
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
b _081C0786
.pool
_081C0780:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d4
_081C0786:
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySpriteAndFreeResources
b _081C08EC
.pool
_081C07A8:
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
adds r0, 0xC
bl sub_81C0098
ldr r0, [r4]
ldr r1, =0x000040f0
adds r0, r1
movs r1, 0
strh r1, [r0]
b _081C08EC
.pool
_081C07C8:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
bl sub_81C00F0
lsls r0, 24
cmp r0, 0
bne _081C07DA
b _081C08F2
_081C07DA:
b _081C08EC
.pool
_081C07E0:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
bl sub_81C49E0
b _081C08EC
.pool
_081C07F0:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
bl sub_81C4A08
b _081C08EC
.pool
_081C0800:
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
adds r0, 0x77
ldrb r0, [r0]
cmp r0, 0
beq _081C0816
movs r1, 0x2
negs r1, r1
movs r0, 0xA
bl sub_81C2074
_081C0816:
ldr r0, [r4]
adds r0, 0xC
bl sub_81C2228
movs r0, 0
strh r0, [r5, 0x2]
b _081C08EC
.pool
_081C0828:
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
adds r0, 0xC
adds r1, r5, 0x2
bl sub_81C45F4
ldr r1, [r4]
ldr r2, =0x000040d3
adds r1, r2
strb r0, [r1]
ldr r0, [r4]
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0xFF
beq _081C08F2
ldr r2, =gSprites
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
strh r1, [r0, 0x32]
bl sub_81C0E24
movs r0, 0
strh r0, [r5, 0x2]
b _081C08EC
.pool
_081C086C:
bl sub_81C4280
b _081C08EC
_081C0872:
bl sub_81C25E8
b _081C08EC
_081C0878:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
bl sub_81C2D9C
bl sub_81C2524
b _081C08EC
.pool
_081C0894:
ldr r2, =gSprites
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strh r1, [r0, 0x32]
b _081C08EC
.pool
_081C08BC:
bl sub_81221EC
lsls r0, 24
cmp r0, 0
bne _081C08F2
ldr r0, =sub_81C20F0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _081C08F2
strh r0, [r5]
adds r0, r6, 0
subs r0, 0x8
adds r0, r4, r0
ldr r1, =sub_81C0510
str r1, [r0]
b _081C08F2
.pool
_081C08EC:
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
_081C08F2:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C0704
thumb_func_start sub_81C08F8
sub_81C08F8: @ 81C08F8
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0203CF1C
ldr r2, [r1]
ldr r7, [r2]
ldr r3, =0x000040c0
adds r0, r2, r3
ldrb r0, [r0]
adds r5, r1, 0
cmp r0, 0
bne _081C0960
lsls r0, r4, 24
asrs r3, r0, 24
movs r1, 0x1
negs r1, r1
adds r6, r0, 0
cmp r3, r1
bne _081C0928
ldr r1, =0x000040be
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
beq _081C0988
_081C0928:
asrs r0, r6, 24
cmp r0, 0x1
bne _081C0940
ldr r0, [r5]
ldr r2, =0x000040be
adds r1, r0, r2
ldr r3, =0x000040bf
adds r0, r3
ldrb r1, [r1]
ldrb r0, [r0]
cmp r1, r0
bcs _081C0988
_081C0940:
ldr r0, [r5]
ldr r1, =0x000040be
adds r0, r1
ldrb r0, [r0]
adds r0, r4
lsls r0, 24
asrs r0, 24
b _081C09AE
.pool
_081C0960:
ldr r3, =0x000040be
adds r0, r2, r3
ldrb r5, [r0]
lsls r6, r4, 24
_081C0968:
lsls r0, r5, 24
asrs r0, 24
asrs r1, r6, 24
adds r0, r1
lsls r0, 24
lsrs r5, r0, 24
asrs r4, r0, 24
cmp r4, 0
blt _081C0988
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040bf
adds r0, r1
ldrb r0, [r0]
cmp r4, r0
ble _081C099C
_081C0988:
movs r0, 0x1
negs r0, r0
b _081C09AE
.pool
_081C099C:
movs r0, 0x64
muls r0, r4
adds r0, r7, r0
movs r1, 0x2D
bl GetMonData
cmp r0, 0
bne _081C0968
adds r0, r4, 0
_081C09AE:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C08F8
thumb_func_start sub_81C09B4
sub_81C09B4: @ 81C09B4
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
mov r12, r0
ldr r6, =gUnknown_0203CF1C
ldr r0, [r6]
ldr r1, [r0]
mov r8, r1
movs r5, 0
movs r2, 0
ldr r3, =gUnknown_0861CC1C
movs r1, 0
ldrsb r1, [r3, r1]
ldr r4, =0x000040be
adds r0, r4
ldrb r0, [r0]
cmp r1, r0
beq _081C09FC
adds r7, r3, 0
adds r3, r4, 0
_081C09E0:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x5
bhi _081C09FC
adds r0, r2, r7
movs r1, 0
ldrsb r1, [r0, r1]
ldr r0, [r6]
adds r0, r3
ldrb r0, [r0]
cmp r1, r0
bne _081C09E0
adds r5, r2, 0
_081C09FC:
mov r0, r12
lsls r6, r0, 24
ldr r7, =gUnknown_0861CC1C
_081C0A02:
lsls r0, r5, 24
asrs r0, 24
asrs r1, r6, 24
adds r0, r1
lsls r0, 24
lsrs r5, r0, 24
lsls r1, r5, 24
lsrs r0, r1, 24
cmp r0, 0x5
bhi _081C0A40
asrs r0, r1, 24
adds r0, r7
movs r4, 0
ldrsb r4, [r0, r4]
movs r0, 0x64
muls r0, r4
add r0, r8
bl sub_81C0A50
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C0A02
adds r0, r4, 0
b _081C0A44
.pool
_081C0A40:
movs r0, 0x1
negs r0, r0
_081C0A44:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C09B4
thumb_func_start sub_81C0A50
sub_81C0A50: @ 81C0A50
push {r4,lr}
adds r4, r0, 0
movs r1, 0xB
bl GetMonData
cmp r0, 0
beq _081C0A84
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040be
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _081C0A78
adds r0, r4, 0
movs r1, 0x2D
bl GetMonData
cmp r0, 0
bne _081C0A84
_081C0A78:
movs r0, 0x1
b _081C0A86
.pool
_081C0A84:
movs r0, 0
_081C0A86:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C0A50
thumb_func_start sub_81C0A8C
sub_81C0A8C: @ 81C0A8C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
str r6, [sp]
lsls r1, 24
lsrs r3, r1, 24
str r3, [sp, 0x4]
ldr r0, =gUnknown_0203CF1C
mov r8, r0
ldr r2, [r0]
adds r1, r2, 0
adds r1, 0x70
lsls r0, r6, 2
adds r0, r6
lsls r7, r0, 3
ldr r0, =gTasks + 0x8
mov r9, r0
adds r0, r7, r0
str r0, [sp, 0x8]
ldrb r1, [r1, 0x4]
mov r10, r1
cmp r1, 0
bne _081C0B6E
lsls r0, r3, 24
asrs r5, r0, 24
movs r0, 0x1
negs r0, r0
cmp r5, r0
bne _081C0AE0
ldr r1, =0x000040c0
adds r0, r2, r1
ldr r3, =0x000040c1
adds r1, r2, r3
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
beq _081C0B6E
_081C0AE0:
cmp r5, 0x1
bne _081C0AF4
ldr r1, =0x000040c0
adds r0, r2, r1
ldr r3, =0x000040c2
adds r1, r2, r3
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
beq _081C0B6E
_081C0AF4:
movs r0, 0x5
bl PlaySE
mov r1, r8
ldr r0, [r1]
ldr r4, =0x000040c0
adds r0, r4
ldrb r0, [r0]
bl sub_81C2C38
mov r2, r8
ldr r1, [r2]
adds r1, r4
ldrb r0, [r1]
ldr r3, [sp, 0x4]
adds r0, r3
strb r0, [r1]
mov r1, r10
ldr r0, [sp, 0x8]
strh r1, [r0]
cmp r5, 0x1
bne _081C0B4C
ldr r1, =sub_81C0B8C
mov r0, r9
subs r0, 0x8
adds r0, r7, r0
ldr r2, [r0]
adds r0, r6, 0
bl SetTaskFuncWithFollowupFunc
b _081C0B5C
.pool
_081C0B4C:
ldr r1, =sub_81C0CC4
mov r0, r9
subs r0, 0x8
adds r0, r7, r0
ldr r2, [r0]
ldr r0, [sp]
bl SetTaskFuncWithFollowupFunc
_081C0B5C:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r2, =0x000040c0
adds r0, r2
ldrb r0, [r0]
bl sub_81C2DE4
bl sub_81C424C
_081C0B6E:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0A8C
thumb_func_start sub_81C0B8C
sub_81C0B8C: @ 81C0B8C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081C0C2A
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r3, =0x000040c9
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
bne _081C0BE0
movs r0, 0x1
strh r0, [r4, 0x2]
movs r0, 0x1
movs r1, 0x7
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x7
movs r2, 0x2
bl SetBgAttribute
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
b _081C0BFE
.pool
_081C0BE0:
movs r0, 0x2
strh r0, [r4, 0x2]
movs r0, 0x2
movs r1, 0x7
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x1
movs r1, 0x7
movs r2, 0x2
bl SetBgAttribute
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
_081C0BFE:
ldrb r0, [r4, 0x2]
movs r1, 0
movs r2, 0
bl ChangeBgX
ldrb r0, [r4, 0x2]
ldr r1, =gUnknown_0203CF1C
ldr r1, [r1]
ldr r3, =0x000040c0
adds r2, r1, r3
ldrb r2, [r2]
lsls r2, 12
adds r2, 0xBC
adds r1, r2
bl SetBgTilemapBuffer
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
_081C0C2A:
ldrb r0, [r4, 0x2]
movs r1, 0x80
lsls r1, 6
movs r2, 0x1
bl ChangeBgX
ldrh r0, [r4]
adds r0, 0x20
strh r0, [r4]
lsls r0, 16
asrs r0, 16
cmp r0, 0xFF
ble _081C0C52
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_81C0C68
str r0, [r1]
_081C0C52:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0B8C
thumb_func_start sub_81C0C68
sub_81C0C68: @ 81C0C68
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r2, r4, 2
adds r2, r4
lsls r2, 3
ldr r0, =gTasks + 0x8
adds r2, r0
ldr r5, =gUnknown_0203CF1C
ldr r3, [r5]
ldr r0, =0x000040c9
adds r3, r0
ldrb r0, [r3]
movs r1, 0x1
eors r0, r1
movs r1, 0
strb r0, [r3]
strh r1, [r2, 0x2]
strh r1, [r2]
bl sub_81C1BA0
ldr r0, [r5]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
bl sub_81C2AFC
bl sub_81C4280
bl sub_81C0E24
adds r0, r4, 0
bl SwitchTaskToFollowupFunc
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0C68
thumb_func_start sub_81C0CC4
sub_81C0CC4: @ 81C0CC4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081C0D0C
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c9
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _081C0CFC
movs r0, 0x2
b _081C0CFE
.pool
_081C0CFC:
movs r0, 0x1
_081C0CFE:
strh r0, [r4, 0x2]
ldrb r0, [r4, 0x2]
movs r1, 0x80
lsls r1, 9
movs r2, 0
bl ChangeBgX
_081C0D0C:
ldrb r0, [r4, 0x2]
movs r1, 0x80
lsls r1, 6
movs r2, 0x2
bl ChangeBgX
ldrh r0, [r4]
adds r0, 0x20
strh r0, [r4]
lsls r0, 16
asrs r0, 16
cmp r0, 0xFF
ble _081C0D34
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_81C0D44
str r0, [r1]
_081C0D34:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0CC4
thumb_func_start sub_81C0D44
sub_81C0D44: @ 81C0D44
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c9
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _081C0D8C
movs r0, 0x1
movs r1, 0x7
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x7
movs r2, 0x2
bl SetBgAttribute
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
b _081C0DA6
.pool
_081C0D8C:
movs r0, 0x2
movs r1, 0x7
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x1
movs r1, 0x7
movs r2, 0x2
bl SetBgAttribute
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
_081C0DA6:
ldr r6, =gUnknown_0203CF1C
ldr r2, [r6]
ldr r7, =0x000040c0
adds r1, r2, r7
ldrb r0, [r1]
cmp r0, 0x1
bls _081C0DD0
ldrb r0, [r4, 0x2]
ldrb r1, [r1]
lsls r1, 12
ldr r3, =0xfffff0bc
adds r1, r3
adds r1, r2, r1
bl SetBgTilemapBuffer
ldrb r0, [r4, 0x2]
movs r1, 0x80
lsls r1, 9
movs r2, 0
bl ChangeBgX
_081C0DD0:
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
ldr r2, [r6]
ldr r0, =0x000040c9
adds r2, r0
ldrb r0, [r2]
movs r1, 0x1
eors r0, r1
movs r1, 0
strb r0, [r2]
strh r1, [r4, 0x2]
strh r1, [r4]
bl sub_81C1BA0
ldr r0, [r6]
adds r0, r7
ldrb r0, [r0]
bl sub_81C2AFC
bl sub_81C4280
bl sub_81C0E24
adds r0, r5, 0
bl SwitchTaskToFollowupFunc
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0D44
thumb_func_start sub_81C0E24
sub_81C0E24: @ 81C0E24
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040c0
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
bne _081C0E3C
adds r0, r1, 0
adds r0, 0xC
bl sub_81C22CC
_081C0E3C:
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0E24
thumb_func_start sub_81C0E48
sub_81C0E48: @ 81C0E48
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r7, r0, 24
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
ldr r2, =0x000040c6
adds r0, r2
movs r1, 0
strb r1, [r0]
ldr r1, [r5]
adds r2, r1, r2
ldrb r0, [r2]
lsls r0, 1
adds r1, 0x84
adds r1, r0
ldrh r6, [r1]
mov r8, r6
movs r0, 0x13
bl ClearWindowTilemap
ldr r2, =gSprites
ldr r0, [r5]
ldr r1, =0x000040d5
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _081C0E96
movs r0, 0xD
bl ClearWindowTilemap
_081C0E96:
movs r4, 0x3
negs r4, r4
movs r0, 0x9
adds r1, r4, 0
bl sub_81C1DA4
movs r0, 0x9
adds r1, r4, 0
adds r2, r6, 0
bl sub_81C1EFC
ldr r0, [r5]
ldr r1, =0x000040c8
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _081C0EC4
movs r0, 0x5
bl ClearWindowTilemap
movs r0, 0x6
bl PutWindowTilemap
_081C0EC4:
ldr r0, [r5]
ldr r1, =0x000020bc
adds r0, r1
movs r1, 0x3
movs r2, 0
bl sub_81C2194
ldr r0, [r5]
ldr r1, =0x000030bc
adds r0, r1
movs r1, 0x1
movs r2, 0
bl sub_81C2194
mov r0, r8
bl sub_81C3E9C
bl sub_81C3F44
bl sub_81C44F0
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x8
bl sub_81C4AF8
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C0F44
str r1, [r0]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C0E48
thumb_func_start sub_81C0F44
sub_81C0F44: @ 81C0F44
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C103A
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081C0F98
movs r0, 0x4
strh r0, [r4]
movs r1, 0x1
negs r1, r1
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r0, =0x000040c6
adds r2, r0
adds r0, r4, 0
bl sub_81C1070
b _081C103A
.pool
_081C0F98:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C0FC0
movs r0, 0x4
strh r0, [r4]
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r0, =0x000040c6
adds r2, r0
adds r0, r4, 0
movs r1, 0x1
bl sub_81C1070
b _081C103A
.pool
_081C0FC0:
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C1026
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040c8
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
beq _081C0FE8
subs r2, 0x4
adds r0, r1, r2
ldr r0, [r0]
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0x80
lsls r1, 11
cmp r0, r1
bne _081C1004
_081C0FE8:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81C11F4
b _081C103A
.pool
_081C1004:
bl sub_81C1040
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C101E
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81C129C
b _081C103A
_081C101E:
movs r0, 0x20
bl PlaySE
b _081C103A
_081C1026:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C103A
movs r0, 0x5
bl PlaySE
adds r0, r6, 0
bl sub_81C11F4
_081C103A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C0F44
thumb_func_start sub_81C1040
sub_81C1040: @ 81C1040
push {lr}
movs r1, 0x1
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0x84
_081C104C:
lsls r0, r1, 1
adds r0, r2, r0
ldrh r0, [r0]
cmp r0, 0
beq _081C1060
movs r0, 0x1
b _081C106C
.pool
_081C1060:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bls _081C104C
movs r0, 0
_081C106C:
pop {r1}
bx r1
thumb_func_end sub_81C1040
thumb_func_start sub_81C1070
sub_81C1070: @ 81C1070
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
adds r4, r1, 0
mov r8, r2
lsls r4, 24
lsrs r4, 24
movs r0, 0x5
bl PlaySE
mov r0, r8
ldrb r6, [r0]
movs r2, 0
lsls r4, 24
asrs r4, 24
mov r12, r4
movs r1, 0
ldrsh r4, [r7, r1]
ldrb r0, [r7]
lsls r3, r0, 24
_081C109C:
lsls r0, r6, 24
asrs r0, 24
add r0, r12
lsls r0, 24
lsrs r6, r0, 24
asrs r0, 24
cmp r0, r4
ble _081C10B0
movs r6, 0
b _081C10B6
_081C10B0:
cmp r0, 0
bge _081C10B6
lsrs r6, r3, 24
_081C10B6:
lsls r0, r6, 24
asrs r1, r0, 24
mov r9, r0
cmp r1, 0x4
bne _081C10C2
b _081C11CC
_081C10C2:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
lsls r1, 1
adds r0, 0x84
adds r0, r1
ldrh r5, [r0]
cmp r5, 0
bne _081C10E2
lsls r0, r2, 24
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r2, r0, 24
asrs r0, 24
cmp r0, 0x3
ble _081C109C
_081C10E2:
adds r0, r5, 0
bl sub_81C240C
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
adds r0, r5, 0
bl sub_81C3E9C
mov r1, r8
ldrb r0, [r1]
cmp r0, 0x4
bne _081C1110
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c4
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
beq _081C1118
_081C1110:
movs r1, 0x2
ldrsh r0, [r7, r1]
cmp r0, 0x1
bne _081C115E
_081C1118:
movs r0, 0x13
bl ClearWindowTilemap
ldr r2, =gSprites
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d5
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _081C1142
movs r0, 0xD
bl ClearWindowTilemap
_081C1142:
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r4, 0x3
negs r4, r4
movs r0, 0x9
adds r1, r4, 0
bl sub_81C1DA4
movs r0, 0x9
adds r1, r4, 0
adds r2, r5, 0
bl sub_81C1EFC
_081C115E:
mov r1, r8
ldrb r0, [r1]
cmp r0, 0x4
beq _081C11A0
mov r1, r9
asrs r0, r1, 24
cmp r0, 0x4
bne _081C11A0
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c4
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
bne _081C11A0
movs r0, 0xE
bl ClearWindowTilemap
movs r0, 0xF
bl ClearWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0
movs r1, 0x3
bl sub_81C1DA4
movs r0, 0
movs r1, 0x3
movs r2, 0
bl sub_81C1EFC
_081C11A0:
mov r0, r8
strb r6, [r0]
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c6
adds r0, r1
cmp r8, r0
bne _081C11E0
movs r0, 0x8
bl sub_81C4D18
b _081C11E6
.pool
_081C11CC:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c4
adds r0, r1
ldrh r5, [r0]
b _081C10E2
.pool
_081C11E0:
movs r0, 0x12
bl sub_81C4D18
_081C11E6:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C1070
thumb_func_start sub_81C11F4
sub_81C11F4: @ 81C11F4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x8
bl sub_81C4C60
movs r0, 0x6
bl ClearWindowTilemap
movs r0, 0x5
bl PutWindowTilemap
movs r0, 0
bl sub_81C3E9C
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
ldr r1, =0x000020bc
adds r0, r1
movs r1, 0x3
movs r2, 0x1
bl sub_81C2194
ldr r0, [r4]
ldr r1, =0x000030bc
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_81C2194
bl sub_81C4064
ldr r0, [r4]
ldr r1, =0x000040c6
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x4
beq _081C125E
movs r0, 0xE
bl ClearWindowTilemap
movs r0, 0xF
bl ClearWindowTilemap
movs r0, 0
movs r1, 0x3
bl sub_81C1DA4
movs r0, 0
movs r1, 0x3
movs r2, 0
bl sub_81C1EFC
_081C125E:
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_81C0510
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C11F4
thumb_func_start sub_81C129C
sub_81C129C: @ 81C129C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r2, =0x000040c6
adds r1, r0, r2
ldrb r1, [r1]
adds r2, 0x1
adds r0, r2
strb r1, [r0]
movs r0, 0x1
bl sub_81C4C84
movs r0, 0x12
bl sub_81C4AF8
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C12E4
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C129C
thumb_func_start sub_81C12E4
sub_81C12E4: @ 81C12E4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C13AA
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081C1338
movs r0, 0x3
strh r0, [r4]
movs r1, 0x1
negs r1, r1
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r0, =0x000040c7
adds r2, r0
adds r0, r4, 0
bl sub_81C1070
b _081C13AA
.pool
_081C1338:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C1360
movs r0, 0x3
strh r0, [r4]
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r0, =0x000040c7
adds r2, r0
adds r0, r4, 0
movs r1, 0x1
bl sub_81C1070
b _081C13AA
.pool
_081C1360:
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C139A
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r2, =0x000040c6
adds r1, r0, r2
adds r2, 0x1
adds r0, r2
ldrb r1, [r1]
ldrb r0, [r0]
cmp r1, r0
bne _081C1390
adds r0, r5, 0
movs r1, 0
bl sub_81C13B0
b _081C13AA
.pool
_081C1390:
adds r0, r5, 0
movs r1, 0x1
bl sub_81C13B0
b _081C13AA
_081C139A:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C13AA
adds r0, r6, 0
movs r1, 0
bl sub_81C13B0
_081C13AA:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C12E4
thumb_func_start sub_81C13B0
sub_81C13B0: @ 81C13B0
push {r4-r7,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r7, r0, 24
lsls r4, 24
lsrs r4, 24
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81C4C84
movs r0, 0x12
bl sub_81C4C60
cmp r4, 0x1
bne _081C1464
ldr r0, =gUnknown_0203CF1C
ldr r3, [r0]
ldr r1, =0x000040bd
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
bne _081C1410
ldr r0, [r3]
ldr r2, =0x000040be
adds r1, r3, r2
ldrb r2, [r1]
movs r1, 0x64
muls r1, r2
adds r0, r1
ldr r4, =0x000040c6
adds r1, r3, r4
ldrb r1, [r1]
adds r4, 0x1
adds r2, r3, r4
ldrb r2, [r2]
bl sub_81C14BC
b _081C1430
.pool
_081C1410:
ldr r0, [r3]
ldr r2, =0x000040be
adds r1, r3, r2
ldrb r2, [r1]
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
adds r0, r1
ldr r4, =0x000040c6
adds r1, r3, r4
ldrb r1, [r1]
adds r4, 0x1
adds r2, r3, r4
ldrb r2, [r2]
bl sub_81C15EC
_081C1430:
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
adds r0, 0xC
bl sub_81C0098
ldr r1, [r5]
ldr r6, =0x000040c6
adds r0, r1, r6
ldrb r0, [r0]
ldr r4, =0x000040c7
adds r1, r4
ldrb r1, [r1]
bl sub_81C40A0
ldr r1, [r5]
adds r0, r1, r6
ldrb r0, [r0]
adds r1, r4
ldrb r1, [r1]
bl sub_81C4568
ldr r0, [r5]
adds r4, r0, r4
ldrb r1, [r4]
adds r0, r6
strb r1, [r0]
_081C1464:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040c6
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, 1
adds r1, 0x84
adds r1, r0
ldrh r4, [r1]
adds r0, r4, 0
bl sub_81C3E9C
adds r0, r4, 0
bl sub_81C240C
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C0F44
str r1, [r0]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C13B0
thumb_func_start sub_81C14BC
sub_81C14BC: @ 81C14BC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
adds r7, r0, 0
adds r4, r1, 0
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
lsls r0, r4, 1
mov r10, r0
adds r1, r2, 0
adds r1, 0x84
adds r0, r1, r0
str r0, [sp, 0x8]
ldrh r0, [r0]
mov r3, sp
adds r3, 0x2
str r3, [sp, 0x1C]
strh r0, [r3]
lsls r0, r6, 1
mov r9, r0
add r1, r9
str r1, [sp, 0xC]
ldrh r1, [r1]
mov r0, sp
strh r1, [r0]
adds r1, r2, 0
adds r1, 0x8C
adds r3, r1, r4
str r3, [sp, 0x10]
ldrb r0, [r3]
mov r3, sp
adds r3, 0x5
str r3, [sp, 0x24]
strb r0, [r3]
adds r1, r6
str r1, [sp, 0x14]
ldrb r0, [r1]
mov r1, sp
adds r1, 0x4
str r1, [sp, 0x20]
strb r0, [r1]
adds r2, 0xA4
str r2, [sp, 0x18]
ldrb r0, [r2]
mov r5, sp
adds r5, 0x6
strb r0, [r5]
ldr r1, =gUnknown_08329D22
adds r0, r4, r1
ldrb r0, [r0]
mov r8, r0
ldrb r0, [r5]
adds r2, r0, 0
mov r3, r8
ands r2, r3
mov r3, r10
asrs r2, r3
lsls r2, 24
lsrs r2, 24
adds r1, r6, r1
ldrb r1, [r1]
mov r12, r1
adds r1, r0, 0
mov r3, r12
ands r1, r3
mov r3, r9
asrs r1, r3
lsls r1, 24
lsrs r1, 24
mov r3, r8
bics r0, r3
strb r0, [r5]
ldrb r0, [r5]
mov r3, r12
bics r0, r3
strb r0, [r5]
mov r0, r9
lsls r2, r0
mov r3, r10
lsls r1, r3
adds r2, r1
ldrb r0, [r5]
orrs r0, r2
strb r0, [r5]
adds r1, r4, 0
adds r1, 0xD
adds r0, r7, 0
mov r2, sp
bl SetMonData
adds r1, r6, 0
adds r1, 0xD
adds r0, r7, 0
ldr r2, [sp, 0x1C]
bl SetMonData
adds r4, 0x11
adds r0, r7, 0
adds r1, r4, 0
ldr r2, [sp, 0x20]
bl SetMonData
adds r6, 0x11
adds r0, r7, 0
adds r1, r6, 0
ldr r2, [sp, 0x24]
bl SetMonData
adds r0, r7, 0
movs r1, 0x15
adds r2, r5, 0
bl SetMonData
mov r0, sp
ldrh r0, [r0]
ldr r1, [sp, 0x8]
strh r0, [r1]
ldr r3, [sp, 0x1C]
ldrh r0, [r3]
ldr r1, [sp, 0xC]
strh r0, [r1]
ldr r3, [sp, 0x20]
ldrb r0, [r3]
ldr r1, [sp, 0x10]
strb r0, [r1]
ldr r3, [sp, 0x24]
ldrb r0, [r3]
ldr r1, [sp, 0x14]
strb r0, [r1]
ldrb r0, [r5]
ldr r3, [sp, 0x18]
strb r0, [r3]
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C14BC
thumb_func_start sub_81C15EC
sub_81C15EC: @ 81C15EC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
adds r7, r0, 0
adds r4, r1, 0
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
lsls r0, r4, 1
mov r10, r0
adds r1, r2, 0
adds r1, 0x84
adds r0, r1, r0
str r0, [sp, 0x8]
ldrh r0, [r0]
mov r3, sp
adds r3, 0x2
str r3, [sp, 0x1C]
strh r0, [r3]
lsls r0, r6, 1
mov r9, r0
add r1, r9
str r1, [sp, 0xC]
ldrh r1, [r1]
mov r0, sp
strh r1, [r0]
adds r1, r2, 0
adds r1, 0x8C
adds r3, r1, r4
str r3, [sp, 0x10]
ldrb r0, [r3]
mov r3, sp
adds r3, 0x5
str r3, [sp, 0x24]
strb r0, [r3]
adds r1, r6
str r1, [sp, 0x14]
ldrb r0, [r1]
mov r1, sp
adds r1, 0x4
str r1, [sp, 0x20]
strb r0, [r1]
adds r2, 0xA4
str r2, [sp, 0x18]
ldrb r0, [r2]
mov r5, sp
adds r5, 0x6
strb r0, [r5]
ldr r1, =gUnknown_08329D22
adds r0, r4, r1
ldrb r0, [r0]
mov r8, r0
ldrb r0, [r5]
adds r2, r0, 0
mov r3, r8
ands r2, r3
mov r3, r10
asrs r2, r3
lsls r2, 24
lsrs r2, 24
adds r1, r6, r1
ldrb r1, [r1]
mov r12, r1
adds r1, r0, 0
mov r3, r12
ands r1, r3
mov r3, r9
asrs r1, r3
lsls r1, 24
lsrs r1, 24
mov r3, r8
bics r0, r3
strb r0, [r5]
ldrb r0, [r5]
mov r3, r12
bics r0, r3
strb r0, [r5]
mov r0, r9
lsls r2, r0
mov r3, r10
lsls r1, r3
adds r2, r1
ldrb r0, [r5]
orrs r0, r2
strb r0, [r5]
adds r1, r4, 0
adds r1, 0xD
adds r0, r7, 0
mov r2, sp
bl SetBoxMonData
adds r1, r6, 0
adds r1, 0xD
adds r0, r7, 0
ldr r2, [sp, 0x1C]
bl SetBoxMonData
adds r4, 0x11
adds r0, r7, 0
adds r1, r4, 0
ldr r2, [sp, 0x20]
bl SetBoxMonData
adds r6, 0x11
adds r0, r7, 0
adds r1, r6, 0
ldr r2, [sp, 0x24]
bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x15
adds r2, r5, 0
bl SetBoxMonData
mov r0, sp
ldrh r0, [r0]
ldr r1, [sp, 0x8]
strh r0, [r1]
ldr r3, [sp, 0x1C]
ldrh r0, [r3]
ldr r1, [sp, 0xC]
strh r0, [r1]
ldr r3, [sp, 0x20]
ldrb r0, [r3]
ldr r1, [sp, 0x10]
strb r0, [r1]
ldr r3, [sp, 0x24]
ldrb r0, [r3]
ldr r1, [sp, 0x14]
strb r0, [r1]
ldrb r0, [r5]
ldr r3, [sp, 0x18]
strb r0, [r3]
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C15EC
thumb_func_start sub_81C171C
sub_81C171C: @ 81C171C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_81C44F0
movs r0, 0x8
bl sub_81C4AF8
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C174C
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C171C
thumb_func_start sub_81C174C
sub_81C174C: @ 81C174C
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C176A
b _081C189A
_081C176A:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r2, 0x80
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _081C177A
b _081C189A
_081C177A:
ldr r6, =gMain
ldrh r1, [r6, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081C17B4
movs r0, 0x4
strh r0, [r4]
movs r1, 0x1
negs r1, r1
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r0, =0x000040c6
adds r2, r0
adds r0, r4, 0
bl sub_81C1070
b _081C189A
.pool
_081C17B4:
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _081C17DC
movs r0, 0x4
strh r0, [r4]
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r1, =0x000040c6
adds r2, r1
adds r0, r4, 0
movs r1, 0x1
bl sub_81C1070
b _081C189A
.pool
_081C17DC:
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _081C17F0
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C17FC
_081C17F0:
movs r1, 0x1
negs r1, r1
adds r0, r5, 0
bl sub_81C0A8C
b _081C189A
_081C17FC:
ldrh r1, [r6, 0x2E]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _081C1812
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _081C181C
_081C1812:
adds r0, r5, 0
movs r1, 0x1
bl sub_81C0A8C
b _081C189A
_081C181C:
ldrh r1, [r6, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C1876
bl sub_81C18A8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C1868
bl sub_81C48F0
movs r0, 0x5
bl PlaySE
ldr r2, =gUnknown_0203CF21
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c6
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r1, =gSpecialVar_0x8005
ldrb r0, [r2]
strh r0, [r1]
adds r0, r5, 0
bl sub_81C044C
b _081C189A
.pool
_081C1868:
movs r0, 0x20
bl PlaySE
adds r0, r5, 0
bl sub_81C18F4
b _081C189A
_081C1876:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C189A
bl sub_81C48F0
movs r0, 0x5
bl PlaySE
ldr r1, =gUnknown_0203CF21
movs r0, 0x4
strb r0, [r1]
ldr r1, =gSpecialVar_0x8005
movs r0, 0x4
strh r0, [r1]
adds r0, r5, 0
bl sub_81C044C
_081C189A:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C174C
thumb_func_start sub_81C18A8
sub_81C18A8: @ 81C18A8
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r0, =0x000040c6
adds r1, r2, r0
ldrb r0, [r1]
cmp r0, 0x4
beq _081C18DA
ldr r3, =0x000040c4
adds r0, r2, r3
ldrh r0, [r0]
cmp r0, 0
beq _081C18DA
ldrb r1, [r1]
lsls r1, 1
adds r0, r2, 0
adds r0, 0x84
adds r0, r1
ldrh r0, [r0]
bl sub_81B6D14
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C18EC
_081C18DA:
movs r0, 0x1
b _081C18EE
.pool
_081C18EC:
movs r0, 0
_081C18EE:
pop {r1}
bx r1
thumb_func_end sub_81C18A8
thumb_func_start sub_81C18F4
sub_81C18F4: @ 81C18F4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xE
bl ClearWindowTilemap
movs r0, 0xF
bl ClearWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0
movs r1, 0x3
bl sub_81C1DA4
movs r0, 0
movs r1, 0x3
movs r2, 0
bl sub_81C1EFC
bl sub_81C4154
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C1940
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C18F4
thumb_func_start sub_81C1940
sub_81C1940: @ 81C1940
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r7, r0, 24
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
mov r8, r0
ldr r0, =gTasks + 0x8
mov r9, r0
mov r4, r8
add r4, r9
ldr r0, =sub_81C1E20
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C196C
b _081C1B74
_081C196C:
ldr r6, =gMain
ldrh r1, [r6, 0x2E]
movs r0, 0x40
ands r0, r1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
beq _081C19B0
movs r0, 0x1
strh r0, [r4, 0x2]
movs r0, 0x4
strh r0, [r4]
movs r1, 0x1
negs r1, r1
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r0, =0x000040c6
adds r2, r0
adds r0, r4, 0
bl sub_81C1070
movs r0, 0
strh r0, [r4, 0x2]
b _081C1B6A
.pool
_081C19B0:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C19DC
movs r0, 0x1
strh r0, [r4, 0x2]
movs r0, 0x4
strh r0, [r4]
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r1, =0x000040c6
adds r2, r1
adds r0, r4, 0
movs r1, 0x1
bl sub_81C1070
strh r5, [r4, 0x2]
b _081C1B6A
.pool
_081C19DC:
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _081C19F0
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C1A64
_081C19F0:
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
ldr r2, =0x000040c0
adds r0, r2
ldrb r0, [r0]
cmp r0, 0x2
bne _081C1A00
b _081C1B74
_081C1A00:
movs r0, 0x13
bl ClearWindowTilemap
ldr r2, =gSprites
ldr r0, [r4]
ldr r1, =0x000040d5
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _081C1A28
movs r0, 0xD
bl ClearWindowTilemap
_081C1A28:
ldr r1, [r4]
ldr r2, =0x000040c6
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, 1
adds r1, 0x84
adds r1, r0
ldrh r5, [r1]
mov r0, r9
subs r0, 0x8
add r0, r8
ldr r1, =sub_81C174C
str r1, [r0]
movs r1, 0x1
negs r1, r1
adds r0, r7, 0
b _081C1ACE
.pool
_081C1A64:
ldrh r1, [r6, 0x2E]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _081C1A7A
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _081C1B04
_081C1A7A:
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3
beq _081C1B74
movs r0, 0x13
bl ClearWindowTilemap
ldr r2, =gSprites
ldr r0, [r4]
ldr r1, =0x000040d5
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _081C1AB0
movs r0, 0xD
bl ClearWindowTilemap
_081C1AB0:
ldr r1, [r4]
ldr r2, =0x000040c6
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, 1
adds r1, 0x84
adds r1, r0
ldrh r5, [r1]
mov r0, r9
subs r0, 0x8
add r0, r8
ldr r1, =sub_81C174C
str r1, [r0]
adds r0, r7, 0
movs r1, 0x1
_081C1ACE:
bl sub_81C0A8C
movs r4, 0x2
negs r4, r4
movs r0, 0x9
adds r1, r4, 0
bl sub_81C1DA4
movs r0, 0x9
adds r1, r4, 0
adds r2, r5, 0
bl sub_81C1EFC
b _081C1B74
.pool
_081C1B04:
ldrh r1, [r6, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _081C1B74
movs r0, 0x13
bl ClearWindowTilemap
ldr r2, =gSprites
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
ldr r1, =0x000040d5
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _081C1B38
movs r0, 0xD
bl ClearWindowTilemap
_081C1B38:
ldr r1, [r4]
ldr r2, =0x000040c6
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, 1
adds r1, 0x84
adds r1, r0
ldrh r5, [r1]
adds r0, r5, 0
bl sub_81C3E9C
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r4, 0x3
negs r4, r4
movs r0, 0x9
adds r1, r4, 0
bl sub_81C1DA4
movs r0, 0x9
adds r1, r4, 0
adds r2, r5, 0
bl sub_81C1EFC
_081C1B6A:
mov r0, r9
subs r0, 0x8
add r0, r8
ldr r1, =sub_81C174C
str r1, [r0]
_081C1B74:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C1940
thumb_func_start sub_81C1B94
sub_81C1B94: @ 81C1B94
ldr r0, =gUnknown_0203CF21
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_81C1B94
thumb_func_start sub_81C1BA0
sub_81C1BA0: @ 81C1BA0
push {r4-r7,lr}
sub sp, 0xC
movs r0, 0x20
bl Alloc
adds r4, r0, 0
movs r5, 0
_081C1BAE:
lsls r0, r5, 25
lsrs r1, r0, 24
adds r6, r1, 0
ldr r0, =gUnknown_0203CF1C
ldr r3, [r0]
ldr r2, =0x000040c1
adds r0, r3, r2
ldrb r0, [r0]
cmp r5, r0
bcs _081C1BD8
lsls r0, r1, 1
adds r0, r4
movs r1, 0x40
strh r1, [r0]
strh r1, [r0, 0x2]
movs r1, 0x50
b _081C1BEE
.pool
_081C1BD8:
ldr r7, =0x000040c2
adds r0, r3, r7
ldrb r2, [r0]
cmp r5, r2
bls _081C1BF8
lsls r0, r1, 1
adds r0, r4
movs r1, 0x4A
strh r1, [r0]
strh r1, [r0, 0x2]
movs r1, 0x5A
_081C1BEE:
strh r1, [r0, 0x10]
strh r1, [r0, 0x12]
b _081C1C78
.pool
_081C1BF8:
ldr r7, =0x000040c0
adds r0, r3, r7
ldrb r0, [r0]
cmp r5, r0
bcs _081C1C1C
lsls r1, 1
adds r1, r4
movs r0, 0x46
strh r0, [r1]
movs r0, 0x47
strh r0, [r1, 0x2]
movs r0, 0x56
strh r0, [r1, 0x10]
movs r0, 0x57
b _081C1C76
.pool
_081C1C1C:
cmp r5, r0
bne _081C1C4C
cmp r5, r2
beq _081C1C38
lsls r1, 1
adds r1, r4
movs r0, 0x41
strh r0, [r1]
movs r0, 0x42
strh r0, [r1, 0x2]
movs r0, 0x51
strh r0, [r1, 0x10]
movs r0, 0x52
b _081C1C76
_081C1C38:
lsls r1, 1
adds r1, r4
movs r0, 0x4B
strh r0, [r1]
movs r0, 0x4C
strh r0, [r1, 0x2]
movs r0, 0x5B
strh r0, [r1, 0x10]
movs r0, 0x5C
b _081C1C76
_081C1C4C:
cmp r5, r2
beq _081C1C64
lsls r1, 1
adds r1, r4
movs r0, 0x43
strh r0, [r1]
movs r0, 0x44
strh r0, [r1, 0x2]
movs r0, 0x53
strh r0, [r1, 0x10]
movs r0, 0x54
b _081C1C76
_081C1C64:
lsls r1, r6, 1
adds r1, r4
movs r0, 0x48
strh r0, [r1]
movs r0, 0x49
strh r0, [r1, 0x2]
movs r0, 0x58
strh r0, [r1, 0x10]
movs r0, 0x59
_081C1C76:
strh r0, [r1, 0x12]
_081C1C78:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _081C1BAE
movs r0, 0x8
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x10
str r0, [sp, 0x8]
movs r0, 0x3
adds r1, r4, 0
movs r2, 0xB
movs r3, 0
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, 0x3
bl schedule_bg_copy_tilemap_to_vram
adds r0, r4, 0
bl Free
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C1BA0
thumb_func_start sub_81C1CB0
sub_81C1CB0: @ 81C1CB0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r4, r0, 0
mov r8, r1
lsls r2, 24
lsrs r6, r2, 24
lsls r3, 24
lsrs r5, r3, 24
ldrb r1, [r4, 0x6]
ldrb r0, [r4, 0x7]
lsls r0, 1
muls r0, r1
bl Alloc
adds r7, r0, 0
mov r1, sp
ldrh r0, [r4, 0x4]
strh r0, [r1]
ldrb r1, [r4, 0x7]
ldrb r0, [r4, 0x6]
adds r2, r1, 0
muls r2, r0
movs r0, 0x80
lsls r0, 17
orrs r2, r0
mov r0, sp
adds r1, r7, 0
bl CpuSet
ldrb r0, [r4, 0x6]
cmp r0, r6
beq _081C1D60
cmp r5, 0
bne _081C1D30
movs r5, 0
ldrb r0, [r4, 0x7]
cmp r5, r0
bcs _081C1D60
_081C1D00:
ldrb r2, [r4, 0x6]
adds r1, r2, 0
muls r1, r5
adds r3, r6, r1
lsls r3, 1
ldr r0, [r4]
adds r0, r3
lsls r1, 1
adds r1, r7, r1
subs r2, r6
ldr r3, =0x001fffff
ands r2, r3
bl CpuSet
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
ldrb r3, [r4, 0x7]
cmp r5, r3
bcc _081C1D00
b _081C1D60
.pool
_081C1D30:
movs r5, 0
ldrb r0, [r4, 0x7]
cmp r5, r0
bcs _081C1D60
_081C1D38:
ldrb r2, [r4, 0x6]
adds r1, r2, 0
muls r1, r5
lsls r3, r1, 1
ldr r0, [r4]
adds r0, r3
adds r1, r6, r1
lsls r1, 1
adds r1, r7, r1
subs r2, r6
ldr r3, =0x001fffff
ands r2, r3
bl CpuSet
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
ldrb r3, [r4, 0x7]
cmp r5, r3
bcc _081C1D38
_081C1D60:
movs r5, 0
b _081C1D8A
.pool
_081C1D68:
ldrb r2, [r4, 0x6]
adds r0, r2, 0
muls r0, r5
lsls r0, 1
adds r0, r7, r0
ldrb r1, [r4, 0x9]
adds r1, r5
lsls r1, 5
ldrb r3, [r4, 0x8]
adds r1, r3
lsls r1, 1
add r1, r8
bl CpuSet
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_081C1D8A:
ldrb r0, [r4, 0x7]
cmp r5, r0
bcc _081C1D68
adds r0, r7, 0
bl Free
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C1CB0
thumb_func_start sub_81C1DA4
sub_81C1DA4: @ 81C1DA4
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r4, r1, 16
asrs r1, 16
ldr r3, =gUnknown_0861CC04
ldrb r2, [r3, 0x6]
cmp r1, r2
ble _081C1DBA
adds r4, r2, 0
_081C1DBA:
lsls r0, r4, 16
asrs r0, 16
cmp r0, 0
beq _081C1DC6
cmp r0, r2
bne _081C1DE8
_081C1DC6:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r0, =0x000020bc
adds r1, r0
lsls r2, r4, 24
lsrs r2, 24
adds r0, r3, 0
movs r3, 0x1
bl sub_81C1CB0
b _081C1E12
.pool
_081C1DE8:
ldr r5, =sub_81C1E20
adds r0, r5, 0
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
bne _081C1E04
adds r0, r5, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r2, r0, 24
_081C1E04:
ldr r1, =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
strh r4, [r0, 0x8]
strh r6, [r0, 0xA]
_081C1E12:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C1DA4
thumb_func_start sub_81C1E20
sub_81C1E20: @ 81C1E20
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r0, [r4]
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
lsls r0, 16
cmp r0, 0
bge _081C1E50
movs r0, 0
strh r0, [r4, 0x2]
ldr r7, =gUnknown_0861CC04
b _081C1E60
.pool
_081C1E50:
movs r0, 0x2
ldrsh r1, [r4, r0]
ldr r0, =gUnknown_0861CC04
ldrb r2, [r0, 0x6]
adds r7, r0, 0
cmp r1, r2
ble _081C1E60
strh r2, [r4, 0x2]
_081C1E60:
ldr r5, =gUnknown_0203CF1C
ldr r1, [r5]
ldr r0, =0x000020bc
adds r1, r0
ldrb r2, [r4, 0x2]
adds r0, r7, 0
movs r3, 0x1
bl sub_81C1CB0
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
ble _081C1E80
ldrb r7, [r7, 0x6]
cmp r0, r7
blt _081C1EE0
_081C1E80:
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
bge _081C1EAC
ldr r0, [r5]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x2
bne _081C1ED4
movs r0, 0xE
bl PutWindowTilemap
b _081C1ED4
.pool
_081C1EAC:
ldr r2, =gSprites
ldr r0, [r5]
ldr r1, =0x000040d5
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _081C1ECE
movs r0, 0xD
bl PutWindowTilemap
_081C1ECE:
movs r0, 0x13
bl PutWindowTilemap
_081C1ED4:
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r6, 0
bl DestroyTask
_081C1EE0:
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C1E20
thumb_func_start sub_81C1EFC
sub_81C1EFC: @ 81C1EFC
push {r4-r7,lr}
lsls r0, 16
lsrs r7, r0, 16
lsls r1, 16
lsls r2, 16
lsrs r6, r2, 16
lsrs r4, r1, 16
asrs r1, 16
ldr r3, =gUnknown_0861CC10
ldrb r2, [r3, 0x6]
cmp r1, r2
ble _081C1F16
adds r4, r2, 0
_081C1F16:
lsls r0, r4, 16
asrs r0, 16
cmp r0, 0
beq _081C1F22
cmp r0, r2
bne _081C1F44
_081C1F22:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r0, =0x000030bc
adds r1, r0
lsls r2, r4, 24
lsrs r2, 24
adds r0, r3, 0
movs r3, 0x1
bl sub_81C1CB0
b _081C1F70
.pool
_081C1F44:
ldr r5, =sub_81C1F80
adds r0, r5, 0
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
bne _081C1F60
adds r0, r5, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r2, r0, 24
_081C1F60:
ldr r1, =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
strh r4, [r0, 0x8]
strh r7, [r0, 0xA]
strh r6, [r0, 0xC]
_081C1F70:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C1EFC
thumb_func_start sub_81C1F80
sub_81C1F80: @ 81C1F80
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r0, [r4]
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
lsls r0, 16
cmp r0, 0
bge _081C1FB0
movs r0, 0
strh r0, [r4, 0x2]
ldr r7, =gUnknown_0861CC10
b _081C1FC0
.pool
_081C1FB0:
movs r0, 0x2
ldrsh r1, [r4, r0]
ldr r0, =gUnknown_0861CC10
ldrb r2, [r0, 0x6]
adds r7, r0, 0
cmp r1, r2
ble _081C1FC0
strh r2, [r4, 0x2]
_081C1FC0:
ldr r5, =gUnknown_0203CF1C
ldr r1, [r5]
ldr r0, =0x000030bc
adds r1, r0
ldrb r2, [r4, 0x2]
adds r0, r7, 0
movs r3, 0x1
bl sub_81C1CB0
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
ble _081C1FE0
ldrb r7, [r7, 0x6]
cmp r0, r7
blt _081C2058
_081C1FE0:
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
bge _081C2024
ldr r0, [r5]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3
bne _081C2006
ldr r0, =sub_81C0B8C
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
bne _081C2006
movs r0, 0xF
bl PutWindowTilemap
_081C2006:
ldrh r0, [r4, 0x4]
bl sub_81C240C
b _081C204C
.pool
_081C2024:
ldr r2, =gSprites
ldr r0, [r5]
ldr r1, =0x000040d5
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _081C2046
movs r0, 0xD
bl PutWindowTilemap
_081C2046:
movs r0, 0x13
bl PutWindowTilemap
_081C204C:
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r6, 0
bl DestroyTask
_081C2058:
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C1F80
thumb_func_start sub_81C2074
sub_81C2074: @ 81C2074
push {r4,r5,lr}
lsls r0, 16
lsrs r5, r0, 16
lsls r1, 16
lsrs r4, r1, 16
asrs r1, 16
ldr r3, =gUnknown_0861CBEC
ldrb r2, [r3, 0x6]
cmp r1, r2
ble _081C208A
adds r4, r2, 0
_081C208A:
lsls r0, r4, 16
asrs r0, 16
cmp r0, 0
beq _081C2096
cmp r0, r2
bne _081C20C8
_081C2096:
ldr r5, =gUnknown_0203CF1C
ldr r1, [r5]
adds r1, 0xBC
lsls r4, 24
lsrs r4, 24
adds r0, r3, 0
adds r2, r4, 0
movs r3, 0
bl sub_81C1CB0
ldr r0, =gUnknown_0861CBF8
ldr r1, [r5]
adds r1, 0xBC
adds r2, r4, 0
movs r3, 0
bl sub_81C1CB0
b _081C20E2
.pool
_081C20C8:
ldr r0, =sub_81C20F0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
strh r5, [r1, 0xA]
_081C20E2:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2074
thumb_func_start sub_81C20F0
sub_81C20F0: @ 81C20F0
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
ldrh r0, [r5]
ldrh r1, [r5, 0x2]
adds r0, r1
strh r0, [r5, 0x2]
lsls r0, 16
cmp r0, 0
bge _081C2120
movs r0, 0
strh r0, [r5, 0x2]
ldr r7, =gUnknown_0861CBEC
b _081C2130
.pool
_081C2120:
movs r0, 0x2
ldrsh r1, [r5, r0]
ldr r0, =gUnknown_0861CBEC
ldrb r2, [r0, 0x6]
adds r7, r0, 0
cmp r1, r2
ble _081C2130
strh r2, [r5, 0x2]
_081C2130:
ldr r4, =gUnknown_0203CF1C
ldr r1, [r4]
adds r1, 0xBC
ldrb r2, [r5, 0x2]
adds r0, r7, 0
movs r3, 0
bl sub_81C1CB0
ldr r0, =gUnknown_0861CBF8
ldr r1, [r4]
adds r1, 0xBC
ldrb r2, [r5, 0x2]
movs r3, 0
bl sub_81C1CB0
movs r0, 0x3
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
ble _081C2162
ldrb r7, [r7, 0x6]
cmp r0, r7
blt _081C2180
_081C2162:
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0
bge _081C217A
bl sub_81C4A88
movs r0, 0xD
bl PutWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
_081C217A:
adds r0, r6, 0
bl DestroyTask
_081C2180:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C20F0
thumb_func_start sub_81C2194
sub_81C2194: @ 81C2194
push {r4-r7,lr}
adds r6, r0, 0
lsls r2, 24
lsls r1, 28
lsrs r4, r1, 16
ldr r7, =0x0000056a
cmp r2, 0
bne _081C21E4
movs r3, 0
ldr r5, =gUnknown_08DC3CD4
_081C21A8:
adds r2, r7, r3
lsls r2, 1
adds r2, r6
lsls r0, r3, 1
adds r0, r5
ldrh r1, [r0]
adds r1, r4, r1
strh r1, [r2]
adds r0, r2, 0
adds r0, 0x40
strh r1, [r0]
adds r2, 0x80
adds r0, r3, 0
adds r0, 0x14
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
adds r0, r4, r0
strh r0, [r2]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x13
bls _081C21A8
b _081C221C
.pool
_081C21E4:
movs r3, 0
ldr r5, =gUnknown_08DC3CD4
_081C21E8:
adds r1, r7, r3
lsls r1, 1
adds r1, r6
adds r0, r3, 0
adds r0, 0x14
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
adds r0, r4, r0
strh r0, [r1]
adds r2, r1, 0
adds r2, 0x40
adds r0, r3, 0
adds r0, 0x28
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
adds r0, r4, r0
strh r0, [r2]
adds r1, 0x80
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x13
bls _081C21E8
_081C221C:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2194
thumb_func_start sub_81C2228
sub_81C2228: @ 81C2228
push {r4,lr}
adds r4, r0, 0
movs r1, 0
bl CheckPartyPokerus
lsls r0, 24
cmp r0, 0
bne _081C225C
adds r0, r4, 0
movs r1, 0
bl CheckPartyHasHadPokerus
lsls r0, 24
cmp r0, 0
beq _081C225C
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r2, =0x00000502
adds r1, r0, r2
movs r2, 0x2C
b _081C2266
.pool
_081C225C:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r2, =0x00000502
adds r1, r0, r2
ldr r2, =0x0000081a
_081C2266:
strh r2, [r1]
ldr r1, =0x00000d02
adds r0, r1
strh r2, [r0]
movs r0, 0x3
bl schedule_bg_copy_tilemap_to_vram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2228
thumb_func_start sub_81C228C
sub_81C228C: @ 81C228C
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _081C22AC
movs r0, 0x8
str r0, [sp]
str r1, [sp, 0x4]
movs r0, 0x3
movs r1, 0x1
movs r2, 0x4
movs r3, 0x8
bl sub_8199C30
b _081C22C0
_081C22AC:
movs r0, 0x8
str r0, [sp]
movs r0, 0x5
str r0, [sp, 0x4]
movs r0, 0x3
movs r1, 0x1
movs r2, 0x4
movs r3, 0x8
bl sub_8199C30
_081C22C0:
movs r0, 0x3
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_81C228C
thumb_func_start sub_81C22CC
sub_81C22CC: @ 81C22CC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
adds r6, r1, 0
adds r6, 0x70
ldrb r1, [r6, 0x5]
mov r8, r0
cmp r1, 0x63
bhi _081C2340
ldr r5, =gExperienceTables
adds r2, r1, 0
adds r1, r2, 0x1
lsls r1, 2
ldr r4, =gBaseStats
ldrh r3, [r6]
lsls r0, r3, 3
subs r0, r3
lsls r0, 2
adds r0, r4
ldrb r3, [r0, 0x13]
movs r0, 0xCA
lsls r0, 1
muls r0, r3
adds r1, r0
adds r1, r5
lsls r2, 2
adds r2, r0
adds r2, r5
ldr r1, [r1]
ldr r2, [r2]
subs r1, r2
ldr r0, [r6, 0x10]
subs r4, r0, r2
lsls r0, r4, 6
bl __udivsi3
adds r6, r0, 0
movs r7, 0
adds r0, r7, 0
orrs r0, r6
cmp r0, 0
bne _081C2344
cmp r4, 0
beq _081C2344
movs r6, 0x1
movs r7, 0
b _081C2344
.pool
_081C2340:
movs r6, 0
movs r7, 0
_081C2344:
mov r1, r8
ldr r0, [r1]
ldr r2, =0x00001d66
adds r2, r0
mov r9, r2
movs r0, 0
mov r12, r0
ldr r1, =0x00002062
mov r10, r1
_081C2356:
cmp r7, 0
bgt _081C2362
cmp r7, 0
bne _081C237C
cmp r6, 0x7
bls _081C237C
_081C2362:
mov r2, r12
lsls r0, r2, 1
add r0, r9
ldr r2, =0x0000206a
adds r1, r2, 0
strh r1, [r0]
b _081C23B6
.pool
_081C237C:
mov r1, r12
lsls r0, r1, 1
add r0, r9
mov r8, r0
adds r5, r7, 0
adds r4, r6, 0
cmp r7, 0
bge _081C2394
movs r4, 0x7
movs r5, 0
adds r4, r6
adcs r5, r7
_081C2394:
lsls r3, r5, 29
lsrs r2, r4, 3
adds r0, r3, 0
orrs r0, r2
asrs r1, r5, 3
lsrs r5, r0, 29
lsls r4, r1, 3
adds r3, r5, 0
orrs r3, r4
lsls r2, r0, 3
adds r1, r7, 0
adds r0, r6, 0
subs r0, r2
sbcs r1, r3
add r0, r10
mov r2, r8
strh r0, [r2]
_081C23B6:
movs r0, 0x8
negs r0, r0
asrs r1, r0, 31
adds r6, r0
adcs r7, r1
cmp r7, 0
bge _081C23C8
movs r6, 0
movs r7, 0
_081C23C8:
mov r0, r12
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r12, r0
cmp r0, 0x7
bls _081C2356
movs r0, 0x1
bl GetBgTilemapBuffer
ldr r1, =gUnknown_0203CF1C
ldr r1, [r1]
ldr r2, =0x000010bc
adds r1, r2
cmp r0, r1
bne _081C23F8
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
b _081C23FE
.pool
_081C23F8:
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
_081C23FE:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C22CC
thumb_func_start sub_81C240C
sub_81C240C: @ 81C240C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 16
lsrs r3, r0, 16
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000038bc
adds r5, r0, r1
cmp r3, 0
beq _081C2510
ldr r1, =gContestEffects
ldr r2, =gContestMoves
lsls r3, 3
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldrb r4, [r0, 0x1]
mov r9, r1
mov r8, r2
mov r10, r3
cmp r4, 0xFF
beq _081C244C
adds r0, r4, 0
movs r1, 0xA
bl __udivsi3
lsls r0, 24
lsrs r4, r0, 24
_081C244C:
movs r2, 0
movs r6, 0x3
movs r3, 0xF3
lsls r3, 2
_081C2454:
cmp r4, 0xFF
beq _081C2484
cmp r2, r4
bcs _081C2484
lsrs r0, r2, 2
adds r1, r2, 0
ands r1, r6
lsls r0, 5
adds r0, r1
lsls r0, 1
adds r0, r5
adds r0, r3
ldr r7, =0x0000103a
b _081C2496
.pool
_081C2484:
lsrs r0, r2, 2
adds r1, r2, 0
ands r1, r6
lsls r0, 5
adds r0, r1
lsls r0, 1
adds r0, r5
adds r0, r3
ldr r7, =0x00001039
_081C2496:
adds r1, r7, 0
strh r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _081C2454
mov r0, r10
add r0, r8
ldrb r0, [r0]
lsls r0, 2
add r0, r9
ldrb r4, [r0, 0x2]
cmp r4, 0xFF
beq _081C24C0
adds r0, r4, 0
movs r1, 0xA
bl __udivsi3
lsls r0, 24
lsrs r4, r0, 24
_081C24C0:
movs r2, 0
movs r6, 0x3
ldr r3, =0x0000044c
_081C24C6:
cmp r4, 0xFF
beq _081C24F0
cmp r2, r4
bcs _081C24F0
lsrs r0, r2, 2
adds r1, r2, 0
ands r1, r6
lsls r0, 5
adds r0, r1
lsls r0, 1
adds r0, r5
adds r0, r3
ldr r7, =0x0000103c
b _081C2502
.pool
_081C24F0:
lsrs r0, r2, 2
adds r1, r2, 0
ands r1, r6
lsls r0, 5
adds r0, r1
lsls r0, 1
adds r0, r5
adds r0, r3
ldr r7, =0x0000103d
_081C2502:
adds r1, r7, 0
strh r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _081C24C6
_081C2510:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C240C
thumb_func_start sub_81C2524
sub_81C2524: @ 81C2524
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0x74
ldrb r0, [r0]
cmp r0, 0
beq _081C2544
movs r1, 0x80
lsls r1, 9
movs r0, 0x3
movs r2, 0
bl ChangeBgX
b _081C254E
.pool
_081C2544:
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
_081C254E:
pop {r0}
bx r0
thumb_func_end sub_81C2524
thumb_func_start sub_81C2554
sub_81C2554: @ 81C2554
push {r4,r5,lr}
ldr r0, =gUnknown_0861CC24
bl InitWindows
bl DeactivateAllTextPrinters
movs r4, 0
_081C2562:
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x13
bls _081C2562
movs r4, 0
ldr r5, =gUnknown_0203CF1C
ldr r3, =0x000040cb
movs r2, 0xFF
_081C257C:
ldr r0, [r5]
adds r0, r3
adds r0, r4
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _081C257C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2554
thumb_func_start sub_81C25A4
sub_81C25A4: @ 81C25A4
push {r4-r6,lr}
sub sp, 0x14
ldr r4, [sp, 0x24]
ldr r5, [sp, 0x28]
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
movs r6, 0
str r6, [sp]
str r4, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, =gUnknown_0861CD2C
adds r4, r5
str r4, [sp, 0x8]
str r6, [sp, 0xC]
str r1, [sp, 0x10]
movs r1, 0x1
bl AddTextPrinterParametrized2
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C25A4
thumb_func_start sub_81C25E8
sub_81C25E8: @ 81C25E8
push {lr}
movs r0, 0x11
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x12
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x13
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0x74
ldrb r0, [r0]
cmp r0, 0
bne _081C2618
bl sub_81C2628
b _081C261C
.pool
_081C2618:
bl sub_81C2794
_081C261C:
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
pop {r0}
bx r0
thumb_func_end sub_81C25E8
thumb_func_start sub_81C2628
sub_81C2628: @ 81C2628
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x18
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
movs r1, 0xC
adds r1, r0
mov r8, r1
adds r7, r0, 0
adds r7, 0x70
ldrh r0, [r7]
bl SpeciesToPokedexNum
lsls r0, 16
lsrs r5, r0, 16
ldr r0, =0x0000ffff
cmp r5, r0
beq _081C26CE
ldr r6, =gStringVar1
ldr r1, =gText_UnkCtrlF908Clear01
adds r0, r6, 0
bl StringCopy
ldr r4, =gStringVar2
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r0, r6, 0
adds r1, r4, 0
bl StringAppend
mov r0, r8
bl IsMonShiny
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _081C26AC
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0x11
adds r1, r6, 0
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
movs r0, 0
bl sub_81C228C
b _081C26C6
.pool
_081C26AC:
movs r0, 0
str r0, [sp]
movs r0, 0x7
str r0, [sp, 0x4]
movs r0, 0x11
adds r1, r6, 0
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
movs r0, 0x1
bl sub_81C228C
_081C26C6:
movs r0, 0x11
bl PutWindowTilemap
b _081C26EE
_081C26CE:
movs r0, 0x11
bl ClearWindowTilemap
mov r0, r8
bl IsMonShiny
lsls r0, 24
cmp r0, 0
bne _081C26E8
movs r0, 0
bl sub_81C228C
b _081C26EE
_081C26E8:
movs r0, 0x1
bl sub_81C228C
_081C26EE:
ldr r4, =gStringVar1
ldr r1, =gText_LevelSymbol
adds r0, r4, 0
bl StringCopy
ldr r5, =gStringVar2
ldrb r1, [r7, 0x5]
adds r0, r5, 0
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r0, r4, 0
adds r1, r5, 0
bl StringAppend
movs r6, 0
str r6, [sp]
movs r5, 0x1
str r5, [sp, 0x4]
movs r0, 0x13
adds r1, r4, 0
movs r2, 0x18
movs r3, 0x11
bl sub_81C25A4
mov r0, r8
adds r1, r4, 0
bl GetMonNickname
str r6, [sp]
str r5, [sp, 0x4]
movs r0, 0x12
adds r1, r4, 0
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
add r1, sp, 0x8
movs r0, 0xBA
strb r0, [r1]
mov r0, sp
adds r0, 0x9
ldrh r2, [r7, 0x2]
movs r1, 0xB
muls r1, r2
ldr r2, =gSpeciesNames
adds r1, r2
bl StringCopy
str r6, [sp]
str r5, [sp, 0x4]
movs r0, 0x13
add r1, sp, 0x8
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
ldrh r1, [r7, 0x2]
mov r0, r8
bl sub_81C27DC
movs r0, 0x12
bl PutWindowTilemap
movs r0, 0x13
bl PutWindowTilemap
add sp, 0x18
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2628
thumb_func_start sub_81C2794
sub_81C2794: @ 81C2794
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0xC
ldr r4, =gStringVar1
adds r1, r4, 0
bl GetMonNickname
movs r0, 0
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0x12
adds r1, r4, 0
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
movs r0, 0x12
bl PutWindowTilemap
movs r0, 0x11
bl ClearWindowTilemap
movs r0, 0x13
bl ClearWindowTilemap
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2794
thumb_func_start sub_81C27DC
sub_81C27DC: @ 81C27DC
push {lr}
sub sp, 0x8
lsls r1, 16
lsrs r1, 16
cmp r1, 0x20
beq _081C282C
cmp r1, 0x1D
beq _081C282C
bl GetMonGender
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _081C27FE
cmp r0, 0xFE
beq _081C2818
b _081C282C
_081C27FE:
ldr r1, =gText_MaleSymbol
str r0, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
movs r0, 0x13
movs r2, 0x39
movs r3, 0x11
bl sub_81C25A4
b _081C282C
.pool
_081C2818:
ldr r1, =gText_FemaleSymbol
movs r0, 0
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
movs r0, 0x13
movs r2, 0x39
movs r3, 0x11
bl sub_81C25A4
_081C282C:
add sp, 0x8
pop {r0}
bx r0
.pool
thumb_func_end sub_81C27DC
thumb_func_start sub_81C2838
sub_81C2838: @ 81C2838
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
ldr r3, =gUnknown_0861CDD3
cmp r1, 0
bne _081C284A
subs r3, 0x80
_081C284A:
lsls r2, 16
lsrs r2, 16
movs r0, 0x10
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
adds r1, r3, 0
movs r3, 0
bl BlitBitmapToWindow
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2838
thumb_func_start sub_81C286C
sub_81C286C: @ 81C286C
push {r4-r7,lr}
sub sp, 0x8
ldr r1, =gText_PkmnInfo
movs r5, 0
str r5, [sp]
movs r6, 0x1
str r6, [sp, 0x4]
movs r0, 0
movs r2, 0x2
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_PkmnSkills
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0x1
movs r2, 0x2
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_BattleMoves
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0x2
movs r2, 0x2
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_ContestMoves
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0x3
movs r2, 0x2
movs r3, 0x1
bl sub_81C25A4
ldr r7, =gText_Cancel2
movs r0, 0x1
adds r1, r7, 0
movs r2, 0x3E
bl GetStringRightAlignXOffset
adds r4, r0, 0
adds r2, r4, 0
subs r2, 0x10
cmp r2, 0
bge _081C28CC
movs r2, 0
_081C28CC:
movs r0, 0x4
movs r1, 0
bl sub_81C2838
lsls r2, r4, 24
lsrs r2, 24
str r5, [sp]
str r5, [sp, 0x4]
movs r0, 0x4
adds r1, r7, 0
movs r3, 0x1
bl sub_81C25A4
ldr r7, =gText_Info
movs r0, 0x1
adds r1, r7, 0
movs r2, 0x3E
bl GetStringRightAlignXOffset
adds r4, r0, 0
adds r2, r4, 0
subs r2, 0x10
cmp r2, 0
bge _081C28FE
movs r2, 0
_081C28FE:
movs r0, 0x5
movs r1, 0
bl sub_81C2838
lsls r2, r4, 24
lsrs r2, 24
str r5, [sp]
str r5, [sp, 0x4]
movs r0, 0x5
adds r1, r7, 0
movs r3, 0x1
bl sub_81C25A4
ldr r7, =gText_Switch
movs r0, 0x1
adds r1, r7, 0
movs r2, 0x3E
bl GetStringRightAlignXOffset
adds r4, r0, 0
adds r2, r4, 0
subs r2, 0x10
cmp r2, 0
bge _081C2930
movs r2, 0
_081C2930:
movs r0, 0x6
movs r1, 0
bl sub_81C2838
lsls r2, r4, 24
lsrs r2, 24
str r5, [sp]
str r5, [sp, 0x4]
movs r0, 0x6
adds r1, r7, 0
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_RentalPkmn
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0x8
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_TypeSlash
str r5, [sp]
str r5, [sp, 0x4]
movs r0, 0x9
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
ldr r4, =gText_HP4
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2A
bl GetStringCenterAlignXOffset
adds r0, 0x6
lsls r2, r0, 24
lsrs r2, 24
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xA
adds r1, r4, 0
movs r3, 0x1
bl sub_81C25A4
ldr r4, =gText_Attack3
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2A
bl GetStringCenterAlignXOffset
adds r0, 0x6
lsls r2, r0, 24
lsrs r2, 24
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xA
adds r1, r4, 0
movs r3, 0x11
bl sub_81C25A4
ldr r4, =gText_Defense3
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2A
bl GetStringCenterAlignXOffset
adds r0, 0x6
lsls r2, r0, 24
lsrs r2, 24
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xA
adds r1, r4, 0
movs r3, 0x21
bl sub_81C25A4
ldr r4, =gText_SpAtk4
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x24
bl GetStringCenterAlignXOffset
adds r0, 0x2
lsls r2, r0, 24
lsrs r2, 24
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xB
adds r1, r4, 0
movs r3, 0x1
bl sub_81C25A4
ldr r4, =gText_SpDef4
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x24
bl GetStringCenterAlignXOffset
adds r0, 0x2
lsls r2, r0, 24
lsrs r2, 24
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xB
adds r1, r4, 0
movs r3, 0x11
bl sub_81C25A4
ldr r4, =gText_Speed2
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x24
bl GetStringCenterAlignXOffset
adds r0, 0x2
lsls r2, r0, 24
lsrs r2, 24
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xB
adds r1, r4, 0
movs r3, 0x21
bl sub_81C25A4
ldr r1, =gText_ExpPoints
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xC
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_NextLv
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xC
movs r2, 0x6
movs r3, 0x11
bl sub_81C25A4
ldr r1, =gText_Status
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xD
movs r2, 0x2
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_Power
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xE
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_Accuracy2
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xE
movs r2, 0
movs r3, 0x11
bl sub_81C25A4
ldr r1, =gText_Appeal
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xF
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_Jam
str r5, [sp]
str r6, [sp, 0x4]
movs r0, 0xF
movs r2, 0
movs r3, 0x11
bl sub_81C25A4
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C286C
thumb_func_start sub_81C2AFC
sub_81C2AFC: @ 81C2AFC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
movs r0, 0
bl ClearWindowTilemap
movs r0, 0x1
bl ClearWindowTilemap
movs r0, 0x2
bl ClearWindowTilemap
movs r0, 0x3
bl ClearWindowTilemap
cmp r4, 0x1
beq _081C2B66
cmp r4, 0x1
bgt _081C2B2A
cmp r4, 0
beq _081C2B34
b _081C2C06
_081C2B2A:
cmp r5, 0x2
beq _081C2B80
cmp r5, 0x3
beq _081C2BC4
b _081C2C06
_081C2B34:
movs r0, 0
bl PutWindowTilemap
movs r0, 0x4
bl PutWindowTilemap
bl sub_81A6BF4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C2B58
bl sub_81B9E94
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C2B5E
_081C2B58:
movs r0, 0x8
bl PutWindowTilemap
_081C2B5E:
movs r0, 0x9
bl PutWindowTilemap
b _081C2C06
_081C2B66:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0xA
bl PutWindowTilemap
movs r0, 0xB
bl PutWindowTilemap
movs r0, 0xC
bl PutWindowTilemap
b _081C2C06
_081C2B80:
movs r0, 0x2
bl PutWindowTilemap
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040bc
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x3
bne _081C2BBC
adds r2, 0x8
adds r0, r1, r2
ldr r0, [r0]
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0x80
lsls r1, 11
cmp r0, r1
beq _081C2C06
movs r0, 0xE
bl PutWindowTilemap
b _081C2C06
.pool
_081C2BBC:
movs r0, 0x5
bl PutWindowTilemap
b _081C2C06
_081C2BC4:
movs r0, 0x3
bl PutWindowTilemap
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040bc
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x3
bne _081C2C00
adds r2, 0x8
adds r0, r1, r2
ldr r0, [r0]
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0x80
lsls r1, 11
cmp r0, r1
beq _081C2C06
movs r0, 0xF
bl PutWindowTilemap
b _081C2C06
.pool
_081C2C00:
movs r0, 0x5
bl PutWindowTilemap
_081C2C06:
movs r4, 0
ldr r5, =gUnknown_0203CF1C
_081C2C0A:
ldr r0, [r5]
ldr r1, =0x000040cb
adds r0, r1
adds r0, r4
ldrb r0, [r0]
bl PutWindowTilemap
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _081C2C0A
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2AFC
thumb_func_start sub_81C2C38
sub_81C2C38: @ 81C2C38
push {r4,lr}
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0x1
beq _081C2C84
cmp r0, 0x1
bgt _081C2C4E
cmp r0, 0
beq _081C2C58
b _081C2D0E
_081C2C4E:
cmp r1, 0x2
beq _081C2C98
cmp r1, 0x3
beq _081C2CD4
b _081C2D0E
_081C2C58:
movs r0, 0x4
bl ClearWindowTilemap
bl sub_81A6BF4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C2C76
bl sub_81B9E94
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C2C7C
_081C2C76:
movs r0, 0x8
bl ClearWindowTilemap
_081C2C7C:
movs r0, 0x9
bl ClearWindowTilemap
b _081C2D0E
_081C2C84:
movs r0, 0xA
bl ClearWindowTilemap
movs r0, 0xB
bl ClearWindowTilemap
movs r0, 0xC
bl ClearWindowTilemap
b _081C2D0E
_081C2C98:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040bc
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x3
bne _081C2CCC
adds r2, 0x8
adds r0, r1, r2
ldr r0, [r0]
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0x80
lsls r1, 11
cmp r0, r1
beq _081C2D0E
movs r0, 0xE
bl ClearWindowTilemap
b _081C2D0E
.pool
_081C2CCC:
movs r0, 0x5
bl ClearWindowTilemap
b _081C2D0E
_081C2CD4:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040bc
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x3
bne _081C2D08
adds r2, 0x8
adds r0, r1, r2
ldr r0, [r0]
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0x80
lsls r1, 11
cmp r0, r1
beq _081C2D0E
movs r0, 0xF
bl ClearWindowTilemap
b _081C2D0E
.pool
_081C2D08:
movs r0, 0x5
bl ClearWindowTilemap
_081C2D0E:
movs r4, 0
_081C2D10:
adds r0, r4, 0
bl sub_81C2D68
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _081C2D10
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C2C38
thumb_func_start sub_81C2D2C
sub_81C2D2C: @ 81C2D2C
push {r4,lr}
adds r3, r0, 0
lsls r1, 24
lsrs r2, r1, 24
ldr r0, =gUnknown_0203CF1C
ldr r4, =0x000040cb
adds r1, r2, r4
ldr r0, [r0]
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0xFF
bne _081C2D56
lsls r0, r2, 3
adds r0, r3, r0
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
bl FillWindowPixelBuffer
_081C2D56:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C2D2C
thumb_func_start sub_81C2D68
sub_81C2D68: @ 81C2D68
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF1C
ldr r2, =0x000040cb
adds r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, 0xFF
beq _081C2D8C
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0xFF
strb r0, [r4]
_081C2D8C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2D68
thumb_func_start sub_81C2D9C
sub_81C2D9C: @ 81C2D9C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
_081C2DA4:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040cb
adds r0, r1
adds r1, r0, r4
ldrb r0, [r1]
cmp r0, 0xFF
beq _081C2DBA
movs r1, 0
bl FillWindowPixelBuffer
_081C2DBA:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x7
bls _081C2DA4
ldr r0, =gUnknown_0861CE54
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2D9C
thumb_func_start sub_81C2DE4
sub_81C2DE4: @ 81C2DE4
push {lr}
lsls r0, 24
ldr r1, =gUnknown_0861CE64
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
movs r1, 0x10
bl CreateTask
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2DE4
thumb_func_start sub_81C2E00
sub_81C2E00: @ 81C2E00
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0x74
ldrb r0, [r0]
cmp r0, 0
beq _081C2E24
bl sub_81C335C
bl sub_81C33CC
bl sub_81C3428
bl sub_81C349C
b _081C2E3C
.pool
_081C2E24:
bl sub_81C2EC4
bl sub_81C2F5C
bl sub_81C2FD8
bl sub_81C302C
bl sub_81C307C
bl sub_81C3194
_081C2E3C:
pop {r0}
bx r0
thumb_func_end sub_81C2E00
thumb_func_start sub_81C2E40
sub_81C2E40: @ 81C2E40
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r0, [r4]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
bhi _081C2EB8
lsls r0, 2
ldr r1, =_081C2E70
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C2E70:
.4byte _081C2E8C
.4byte _081C2E92
.4byte _081C2E98
.4byte _081C2E9E
.4byte _081C2EA4
.4byte _081C2EAA
.4byte _081C2EB0
_081C2E8C:
bl sub_81C2EC4
b _081C2EB8
_081C2E92:
bl sub_81C2F5C
b _081C2EB8
_081C2E98:
bl sub_81C2FD8
b _081C2EB8
_081C2E9E:
bl sub_81C302C
b _081C2EB8
_081C2EA4:
bl sub_81C307C
b _081C2EB8
_081C2EAA:
bl sub_81C3194
b _081C2EB8
_081C2EB0:
adds r0, r2, 0
bl DestroyTask
b _081C2EBE
_081C2EB8:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_081C2EBE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C2E40
thumb_func_start sub_81C2EC4
sub_81C2EC4: @ 81C2EC4
push {r4-r6,lr}
sub sp, 0x8
bl sub_81A6BF4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C2F54
bl sub_81B9E94
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C2F54
ldr r0, =gUnknown_0861CCCC
movs r1, 0
bl sub_81C2D2C
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gText_OTSlash
movs r6, 0
str r6, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
movs r0, 0x1
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
adds r2, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0xA2
ldrb r0, [r0]
cmp r0, 0
bne _081C2F40
adds r1, 0xA6
lsls r2, 24
lsrs r2, 24
str r6, [sp]
movs r0, 0x5
str r0, [sp, 0x4]
adds r0, r5, 0
movs r3, 0x1
bl sub_81C25A4
b _081C2F54
.pool
_081C2F40:
adds r1, 0xA6
lsls r2, 24
lsrs r2, 24
str r6, [sp]
movs r0, 0x6
str r0, [sp, 0x4]
adds r0, r5, 0
movs r3, 0x1
bl sub_81C25A4
_081C2F54:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C2EC4
thumb_func_start sub_81C2F5C
sub_81C2F5C: @ 81C2F5C
push {r4,r5,lr}
sub sp, 0x8
bl sub_81A6BF4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C2FC0
bl sub_81B9E94
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C2FC0
ldr r5, =gStringVar1
ldr r1, =gText_UnkCtrlF907F908
adds r0, r5, 0
bl StringCopy
ldr r1, =gUnknown_0203CF1C
ldr r1, [r1]
adds r1, 0xB8
ldrh r1, [r1]
movs r2, 0x2
movs r3, 0x5
bl ConvertIntToDecimalStringN
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x38
bl GetStringRightAlignXOffset
adds r4, r0, 0
ldr r0, =gUnknown_0861CCCC
movs r1, 0x1
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
movs r1, 0
str r1, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_81C25A4
_081C2FC0:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2F5C
thumb_func_start sub_81C2FD8
sub_81C2FD8: @ 81C2FD8
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x70
ldrh r0, [r0]
adds r1, 0x78
ldrb r1, [r1]
bl GetAbilityBySpecies
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gUnknown_0861CCCC
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
movs r1, 0xD
muls r1, r4
ldr r2, =gAbilityNames
adds r1, r2
movs r2, 0
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C2FD8
thumb_func_start sub_81C302C
sub_81C302C: @ 81C302C
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x70
ldrh r0, [r0]
adds r1, 0x78
ldrb r1, [r1]
bl GetAbilityBySpecies
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gUnknown_0861CCCC
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
ldr r1, =gAbilityDescriptionPointers
lsls r4, 2
adds r4, r1
ldr r1, [r4]
movs r2, 0
str r2, [sp]
str r2, [sp, 0x4]
movs r3, 0x11
bl sub_81C25A4
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C302C
thumb_func_start sub_81C307C
sub_81C307C: @ 81C307C
push {r4-r6,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r4, r0, 0
adds r4, 0x70
bl sub_81AFBF0
ldr r1, =gUnknown_0861CE74
movs r0, 0
bl sub_81AFC0C
ldr r1, =gUnknown_0861CE7B
movs r0, 0x1
bl sub_81AFC0C
bl sub_81C31C0
bl sub_81A6BF4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C30C2
bl sub_81B9E94
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C30C2
bl sub_81C3304
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C30E0
_081C30C2:
ldr r0, =gStringVar4
ldr r1, =gText_XNature
bl sub_81AFC28
b _081C3182
.pool
_081C30E0:
movs r0, 0x20
bl Alloc
adds r6, r0, 0
movs r0, 0x20
bl Alloc
adds r5, r0, 0
adds r0, r6, 0
bl sub_81C31F0
ldrb r0, [r4, 0x9]
cmp r0, 0xD4
bhi _081C310C
adds r1, r0, 0
adds r0, r5, 0
bl sub_8124610
movs r0, 0x4
adds r1, r5, 0
bl sub_81AFC0C
_081C310C:
bl sub_81C3220
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C3148
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _081C3134
ldrb r0, [r4, 0x9]
ldr r1, =gText_XNatureHatchedAtYZ
cmp r0, 0xD4
bls _081C3170
ldr r1, =gText_XNatureHatchedSomewhereAt
b _081C3170
.pool
_081C3134:
ldrb r0, [r4, 0x9]
ldr r1, =gText_XNatureMetAtYZ
cmp r0, 0xD4
bls _081C3170
ldr r1, =gText_XNatureMetSomewhereAt
b _081C3170
.pool
_081C3148:
ldrb r0, [r4, 0x9]
cmp r0, 0xFF
bne _081C3158
ldr r1, =gText_XNatureFatefulEncounter
b _081C3170
.pool
_081C3158:
cmp r0, 0xFE
beq _081C316E
bl sub_81C32BC
lsls r0, 24
cmp r0, 0
beq _081C316E
ldrb r0, [r4, 0x9]
ldr r1, =gText_XNatureProbablyMetAt
cmp r0, 0xD4
bls _081C3170
_081C316E:
ldr r1, =gText_XNatureObtainedInTrade
_081C3170:
ldr r0, =gStringVar4
bl sub_81AFC28
adds r0, r6, 0
bl Free
adds r0, r5, 0
bl Free
_081C3182:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C307C
thumb_func_start sub_81C3194
sub_81C3194: @ 81C3194
push {lr}
sub sp, 0x8
ldr r0, =gUnknown_0861CCCC
movs r1, 0x3
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
ldr r1, =gStringVar4
movs r2, 0
str r2, [sp]
str r2, [sp, 0x4]
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3194
thumb_func_start sub_81C31C0
sub_81C31C0: @ 81C31C0
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =gNatureNamePointers
adds r0, 0xA3
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
movs r0, 0x2
bl sub_81AFC0C
ldr r1, =gText_EmptyString5
movs r0, 0x5
bl sub_81AFC0C
pop {r0}
bx r0
.pool
thumb_func_end sub_81C31C0
thumb_func_start sub_81C31F0
sub_81C31F0: @ 81C31F0
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0x7A
ldrb r1, [r0]
cmp r1, 0
bne _081C3202
movs r1, 0x5
_081C3202:
adds r0, r4, 0
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r0, 0x3
adds r1, r4, 0
bl sub_81AFC0C
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C31F0
thumb_func_start sub_81C3220
sub_81C3220: @ 81C3220
push {r4-r6,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r6, r0, 0
adds r6, 0x70
ldr r1, [r0]
ldr r0, =gEnemyParty
cmp r1, r0
bne _081C326C
bl GetMultiplayerId
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
ldr r2, =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r0, r2, 0x4
adds r0, r1, r0
ldrh r4, [r0]
adds r0, r1, r2
ldrb r5, [r0, 0x13]
ldr r0, =gStringVar1
adds r2, 0x8
adds r1, r2
bl StringCopy
b _081C3282
.pool
_081C326C:
bl sub_80F0020
adds r4, r0, 0
ldr r0, =0x0000ffff
ands r4, r0
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r5, [r1, 0x8]
ldr r0, =gStringVar1
bl StringCopy
_081C3282:
adds r0, r6, 0
adds r0, 0x32
ldrb r0, [r0]
cmp r5, r0
bne _081C32A4
ldr r0, [r6, 0x48]
ldr r1, =0x0000ffff
ands r0, r1
cmp r4, r0
bne _081C32A4
ldr r0, =gStringVar1
adds r1, r6, 0
adds r1, 0x36
bl StringCompareWithoutExtCtrlCodes
cmp r0, 0
beq _081C32B4
_081C32A4:
movs r0, 0
b _081C32B6
.pool
_081C32B4:
movs r0, 0x1
_081C32B6:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C3220
thumb_func_start sub_81C32BC
sub_81C32BC: @ 81C32BC
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0x70
ldrb r0, [r0, 0xB]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bls _081C32D8
movs r0, 0
b _081C32DA
.pool
_081C32D8:
movs r0, 0x1
_081C32DA:
pop {r1}
bx r1
thumb_func_end sub_81C32BC
thumb_func_start sub_81C32E0
sub_81C32E0: @ 81C32E0
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r0, 0x70
ldrb r0, [r0, 0xB]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bls _081C32FC
movs r0, 0
b _081C32FE
.pool
_081C32FC:
movs r0, 0x1
_081C32FE:
pop {r1}
bx r1
thumb_func_end sub_81C32E0
thumb_func_start sub_81C3304
sub_81C3304: @ 81C3304
push {lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
lsls r1, 15
ands r0, r1
cmp r0, 0
beq _081C3354
ldr r0, =gMain
ldr r1, =0x00000439
adds r0, r1
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C3354
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040be
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _081C333A
cmp r0, 0x4
beq _081C333A
cmp r0, 0x5
bne _081C3354
_081C333A:
movs r0, 0x1
b _081C3356
.pool
_081C3354:
movs r0, 0
_081C3356:
pop {r1}
bx r1
thumb_func_end sub_81C3304
thumb_func_start sub_81C335C
sub_81C335C: @ 81C335C
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x8
ldr r0, =gUnknown_0861CCCC
movs r1, 0
bl sub_81C2D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gText_OTSlash
mov r8, r0
movs r0, 0x1
mov r1, r8
movs r2, 0
bl GetStringWidth
adds r5, r0, 0
movs r0, 0
mov r9, r0
str r0, [sp]
movs r6, 0x1
str r6, [sp, 0x4]
adds r0, r4, 0
mov r1, r8
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gText_FiveMarks
lsls r5, 24
lsrs r5, 24
mov r0, r9
str r0, [sp]
str r6, [sp, 0x4]
adds r0, r4, 0
adds r2, r5, 0
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C335C
thumb_func_start sub_81C33CC
sub_81C33CC: @ 81C33CC
push {r4,r5,lr}
sub sp, 0x8
ldr r5, =gStringVar1
ldr r1, =gText_UnkCtrlF907F908
adds r0, r5, 0
bl StringCopy
ldr r1, =gText_FiveMarks
adds r0, r5, 0
bl StringAppend
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x38
bl GetStringRightAlignXOffset
adds r4, r0, 0
ldr r0, =gUnknown_0861CCCC
movs r1, 0x1
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
movs r1, 0
str r1, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C33CC
thumb_func_start sub_81C3428
sub_81C3428: @ 81C3428
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x70
adds r0, 0xA5
ldrb r0, [r0]
cmp r0, 0x1
bne _081C3448
ldr r4, =gText_EggWillTakeALongTime
b _081C346C
.pool
_081C3448:
ldrh r0, [r1, 0x30]
cmp r0, 0x5
bhi _081C3458
ldr r4, =gText_EggAboutToHatch
b _081C346C
.pool
_081C3458:
cmp r0, 0xA
bhi _081C3464
ldr r4, =gText_EggWillHatchSoon
b _081C346C
.pool
_081C3464:
ldr r4, =gText_EggWillTakeALongTime
cmp r0, 0x28
bhi _081C346C
ldr r4, =gText_EggWillTakeSomeTime
_081C346C:
ldr r0, =gUnknown_0861CCCC
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
adds r1, r4, 0
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3428
thumb_func_start sub_81C349C
sub_81C349C: @ 81C349C
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r4, r0, 0
adds r4, 0x70
adds r0, 0xA5
ldrb r0, [r0]
cmp r0, 0x1
beq _081C3500
ldrb r0, [r4, 0x9]
cmp r0, 0xFF
bne _081C34C4
ldr r4, =gText_PeculiarEggNicePlace
b _081C3502
.pool
_081C34C4:
bl sub_81C32BC
lsls r0, 24
cmp r0, 0
beq _081C34D8
bl sub_81C3220
lsls r0, 24
cmp r0, 0
bne _081C34E0
_081C34D8:
ldr r4, =gText_PeculiarEggTrade
b _081C3502
.pool
_081C34E0:
ldrb r0, [r4, 0x9]
cmp r0, 0xFD
bne _081C3500
bl sub_81C32E0
lsls r0, 24
lsrs r0, 24
ldr r4, =gText_EggFromTraveler
cmp r0, 0x1
bne _081C3502
ldr r4, =gText_EggFromHotSprings
b _081C3502
.pool
_081C3500:
ldr r4, =gText_OddEggFoundByCouple
_081C3502:
ldr r0, =gUnknown_0861CCCC
movs r1, 0x3
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
adds r1, r4, 0
movs r2, 0
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C349C
thumb_func_start sub_81C3530
sub_81C3530: @ 81C3530
push {lr}
bl sub_81C35E4
bl sub_81C3690
bl sub_81C3710
bl sub_81C37D8
bl sub_81C3808
bl sub_81C3890
bl sub_81C38C0
pop {r0}
bx r0
thumb_func_end sub_81C3530
thumb_func_start sub_81C3554
sub_81C3554: @ 81C3554
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r0, [r4]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
bhi _081C35D6
lsls r0, 2
ldr r1, =_081C3584
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C3584:
.4byte _081C35A4
.4byte _081C35AA
.4byte _081C35B0
.4byte _081C35B6
.4byte _081C35BC
.4byte _081C35C2
.4byte _081C35C8
.4byte _081C35CE
_081C35A4:
bl sub_81C35E4
b _081C35D6
_081C35AA:
bl sub_81C3690
b _081C35D6
_081C35B0:
bl sub_81C3710
b _081C35D6
_081C35B6:
bl sub_81C37D8
b _081C35D6
_081C35BC:
bl sub_81C3808
b _081C35D6
_081C35C2:
bl sub_81C3890
b _081C35D6
_081C35C8:
bl sub_81C38C0
b _081C35D6
_081C35CE:
adds r0, r2, 0
bl DestroyTask
b _081C35DC
_081C35D6:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_081C35DC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C3554
thumb_func_start sub_81C35E4
sub_81C35E4: @ 81C35E4
push {r4,r5,lr}
sub sp, 0x8
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
adds r0, 0x9E
ldrh r0, [r0]
cmp r0, 0xAF
bne _081C3628
bl sub_81B1250
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C3628
ldr r0, [r4]
ldr r1, =0x000040be
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _081C3614
cmp r0, 0x4
beq _081C3614
cmp r0, 0x5
bne _081C3628
_081C3614:
movs r0, 0xAF
bl ItemId_GetItem
adds r5, r0, 0
b _081C3650
.pool
_081C3628:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x9E
ldrh r0, [r1]
cmp r0, 0
bne _081C3644
ldr r5, =gText_None
b _081C3650
.pool
_081C3644:
ldrh r0, [r1]
ldr r4, =gStringVar1
adds r1, r4, 0
bl CopyItemName
adds r5, r4, 0
_081C3650:
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x48
bl GetStringCenterAlignXOffset
adds r4, r0, 0
adds r4, 0x6
ldr r0, =gUnknown_0861CCEC
movs r1, 0
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C35E4
thumb_func_start sub_81C3690
sub_81C3690: @ 81C3690
push {r4,r5,lr}
sub sp, 0x8
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x76
ldrb r0, [r1]
cmp r0, 0
bne _081C36B0
ldr r5, =gText_None
b _081C36C8
.pool
_081C36B0:
ldr r0, =gStringVar1
ldrb r1, [r1]
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_RibbonsVar1
adds r0, r4, 0
bl StringExpandPlaceholders
adds r5, r4, 0
_081C36C8:
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x46
bl GetStringCenterAlignXOffset
adds r4, r0, 0
adds r4, 0x6
ldr r0, =gUnknown_0861CCEC
movs r1, 0x1
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3690
thumb_func_start sub_81C3710
sub_81C3710: @ 81C3710
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
movs r0, 0x8
bl Alloc
mov r9, r0
movs r0, 0x8
bl Alloc
mov r8, r0
movs r0, 0x8
bl Alloc
adds r6, r0, 0
movs r0, 0x8
bl Alloc
adds r5, r0, 0
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
adds r0, 0x90
ldrh r1, [r0]
mov r0, r9
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r0, [r4]
adds r0, 0x92
ldrh r1, [r0]
mov r0, r8
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r0, [r4]
adds r0, 0x94
ldrh r1, [r0]
adds r0, r6, 0
movs r2, 0x1
movs r3, 0x7
bl ConvertIntToDecimalStringN
ldr r0, [r4]
adds r0, 0x96
ldrh r1, [r0]
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x7
bl ConvertIntToDecimalStringN
bl sub_81AFBF0
movs r0, 0
mov r1, r9
bl sub_81AFC0C
movs r0, 0x1
mov r1, r8
bl sub_81AFC0C
movs r0, 0x2
adds r1, r6, 0
bl sub_81AFC0C
movs r0, 0x3
adds r1, r5, 0
bl sub_81AFC0C
ldr r0, =gStringVar4
ldr r1, =gUnknown_0861CE82
bl sub_81AFC28
mov r0, r9
bl Free
mov r0, r8
bl Free
adds r0, r6, 0
bl Free
adds r0, r5, 0
bl Free
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3710
thumb_func_start sub_81C37D8
sub_81C37D8: @ 81C37D8
push {lr}
sub sp, 0x8
ldr r0, =gUnknown_0861CCEC
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
ldr r1, =gStringVar4
movs r2, 0
str r2, [sp]
str r2, [sp, 0x4]
movs r2, 0x4
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r0}
bx r0
.pool
thumb_func_end sub_81C37D8
thumb_func_start sub_81C3808
sub_81C3808: @ 81C3808
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, =gStringVar1
mov r8, r0
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
adds r0, 0x98
ldrh r1, [r0]
mov r0, r8
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r6, =gStringVar2
ldr r0, [r4]
adds r0, 0x9A
ldrh r1, [r0]
adds r0, r6, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r5, =gStringVar3
ldr r0, [r4]
adds r0, 0x9C
ldrh r1, [r0]
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
bl sub_81AFBF0
movs r0, 0
mov r1, r8
bl sub_81AFC0C
movs r0, 0x1
adds r1, r6, 0
bl sub_81AFC0C
movs r0, 0x2
adds r1, r5, 0
bl sub_81AFC0C
ldr r0, =gStringVar4
ldr r1, =gUnknown_0861CE8E
bl sub_81AFC28
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3808
thumb_func_start sub_81C3890
sub_81C3890: @ 81C3890
push {lr}
sub sp, 0x8
ldr r0, =gUnknown_0861CCEC
movs r1, 0x3
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
ldr r1, =gStringVar4
movs r2, 0
str r2, [sp]
str r2, [sp, 0x4]
movs r2, 0x2
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3890
thumb_func_start sub_81C38C0
sub_81C38C0: @ 81C38C0
push {r4-r6,lr}
sub sp, 0x8
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
ldr r0, =gUnknown_0861CCEC
movs r1, 0x4
bl sub_81C2D2C
lsls r0, 24
lsrs r6, r0, 24
ldr r4, =gStringVar1
ldr r1, [r5, 0x10]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x7
bl ConvertIntToDecimalStringN
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2A
bl GetStringRightAlignXOffset
adds r0, 0x2
lsls r2, r0, 24
lsrs r2, 24
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r6, 0
adds r1, r4, 0
movs r3, 0x1
bl sub_81C25A4
ldrb r0, [r5, 0x5]
cmp r0, 0x63
bhi _081C3948
ldr r4, =gExperienceTables
adds r1, r0, 0
adds r1, 0x1
lsls r1, 2
ldr r3, =gBaseStats
ldrh r2, [r5]
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
adds r0, r3
ldrb r2, [r0, 0x13]
movs r0, 0xCA
lsls r0, 1
muls r0, r2
adds r1, r0
adds r1, r4
ldr r1, [r1]
ldr r0, [r5, 0x10]
subs r1, r0
b _081C394A
.pool
_081C3948:
movs r1, 0
_081C394A:
ldr r4, =gStringVar1
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x6
bl ConvertIntToDecimalStringN
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2A
bl GetStringRightAlignXOffset
adds r0, 0x2
lsls r2, r0, 24
lsrs r2, 24
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r6, 0
adds r1, r4, 0
movs r3, 0x11
bl sub_81C25A4
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C38C0
thumb_func_start sub_81C3984
sub_81C3984: @ 81C3984
push {r4,lr}
movs r0, 0
bl sub_81C3B08
movs r0, 0x1
bl sub_81C3B08
movs r0, 0x2
bl sub_81C3B08
movs r0, 0x3
bl sub_81C3B08
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
ldr r1, =0x000040bc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3
bne _081C39EA
bl sub_81C3F44
ldr r1, [r4]
ldr r0, =0x000040c6
adds r2, r1, r0
ldrb r0, [r2]
cmp r0, 0x4
bne _081C39DC
ldr r0, =0x000040c4
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
beq _081C39EA
bl sub_81C3E9C
b _081C39EA
.pool
_081C39DC:
ldrb r0, [r2]
lsls r0, 1
adds r1, 0x84
adds r1, r0
ldrh r0, [r1]
bl sub_81C3E9C
_081C39EA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C3984
thumb_func_start sub_81C39F0
sub_81C39F0: @ 81C39F0
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r0, [r4]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
bhi _081C3AFC
lsls r0, 2
ldr r1, =_081C3A20
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C3A20:
.4byte _081C3A40
.4byte _081C3A48
.4byte _081C3A50
.4byte _081C3A58
.4byte _081C3A60
.4byte _081C3A7C
.4byte _081C3ABE
.4byte _081C3AF4
_081C3A40:
movs r0, 0
bl sub_81C3B08
b _081C3AFC
_081C3A48:
movs r0, 0x1
bl sub_81C3B08
b _081C3AFC
_081C3A50:
movs r0, 0x2
bl sub_81C3B08
b _081C3AFC
_081C3A58:
movs r0, 0x3
bl sub_81C3B08
b _081C3AFC
_081C3A60:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040bc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3
bne _081C3AFC
bl sub_81C3F44
b _081C3AFC
.pool
_081C3A7C:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040bc
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x3
bne _081C3AFC
ldr r0, =0x000040c6
adds r2, r1, r0
ldrb r0, [r2]
cmp r0, 0x4
bne _081C3AB0
ldr r2, =0x000040c4
adds r0, r1, r2
ldrh r0, [r0]
strh r0, [r4, 0x2]
b _081C3AFC
.pool
_081C3AB0:
ldrb r0, [r2]
lsls r0, 1
adds r1, 0x84
adds r1, r0
ldrh r0, [r1]
strh r0, [r4, 0x2]
b _081C3AFC
_081C3ABE:
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040bc
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x3
bne _081C3AFC
adds r2, 0x8
adds r0, r1, r2
ldr r0, [r0]
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0x80
lsls r1, 11
cmp r0, r1
beq _081C3AFC
ldrh r0, [r4, 0x2]
bl sub_81C3E9C
b _081C3AFC
.pool
_081C3AF4:
adds r0, r2, 0
bl DestroyTask
b _081C3B02
_081C3AFC:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_081C3B02:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C39F0
thumb_func_start sub_81C3B08
sub_81C3B08: @ 81C3B08
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
lsls r0, 24
lsrs r7, r0, 24
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
mov r10, r0
ldr r4, =gUnknown_0861CD14
adds r0, r4, 0
movs r1, 0
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
mov r8, r0
adds r0, r4, 0
movs r1, 0x1
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x8]
lsls r1, r7, 1
mov r0, r10
adds r0, 0x84
adds r0, r1
ldrh r5, [r0]
cmp r5, 0
beq _081C3C00
mov r0, r10
adds r0, 0xA4
ldrb r1, [r0]
adds r0, r5, 0
adds r2, r7, 0
bl CalculatePPWithBonus
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
movs r0, 0xD
adds r1, r5, 0
muls r1, r0
ldr r0, =gMoveNames
adds r1, r0
lsls r0, r7, 4
mov r9, r0
mov r3, r9
adds r3, 0x1
lsls r3, 24
lsrs r3, 24
movs r0, 0
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
mov r0, r8
movs r2, 0
bl sub_81C25A4
ldr r0, =gStringVar1
mov r8, r0
mov r5, r10
adds r5, 0x8C
adds r5, r7
ldrb r1, [r5]
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar2
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
bl sub_81AFBF0
movs r0, 0
mov r1, r8
bl sub_81AFC0C
movs r0, 0x1
adds r1, r4, 0
bl sub_81AFC0C
ldr r4, =gStringVar4
ldr r1, =gUnknown_0861CE97
adds r0, r4, 0
bl sub_81AFC28
adds r7, r4, 0
ldrb r0, [r5]
adds r1, r6, 0
bl sub_814FC20
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
adds r5, 0x9
movs r0, 0x1
adds r1, r7, 0
movs r2, 0x2C
bl GetStringRightAlignXOffset
mov r4, r9
b _081C3C26
.pool
_081C3C00:
ldr r1, =gText_OneDash
lsls r4, r7, 4
adds r3, r4, 0x1
lsls r3, 24
lsrs r3, 24
str r5, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
mov r0, r8
movs r2, 0
bl sub_81C25A4
ldr r7, =gText_TwoDashes
movs r5, 0xC
movs r0, 0x1
adds r1, r7, 0
movs r2, 0x2C
bl GetStringCenterAlignXOffset
_081C3C26:
lsls r2, r0, 24
lsrs r2, 24
adds r3, r4, 0x1
lsls r3, 24
lsrs r3, 24
movs r0, 0
str r0, [sp]
lsls r0, r5, 24
lsrs r0, 24
str r0, [sp, 0x4]
ldr r0, [sp, 0x8]
adds r1, r7, 0
bl sub_81C25A4
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3B08
thumb_func_start sub_81C3C5C
sub_81C3C5C: @ 81C3C5C
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
beq _081C3CFC
movs r0, 0x13
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0xE
movs r1, 0
movs r2, 0x35
movs r3, 0
bl FillWindowPixelRect
ldr r2, =gBattleMoves
lsls r1, r5, 1
adds r0, r1, r5
lsls r0, 2
adds r2, r0, r2
ldrb r0, [r2, 0x1]
adds r6, r1, 0
cmp r0, 0x1
bhi _081C3C9C
ldr r1, =gText_ThreeDashes
b _081C3CAC
.pool
_081C3C9C:
ldr r4, =gStringVar1
ldrb r1, [r2, 0x1]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r1, r4, 0
_081C3CAC:
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0xE
movs r2, 0x35
movs r3, 0x1
bl sub_81C25A4
ldr r1, =gBattleMoves
adds r0, r6, r5
lsls r0, 2
adds r1, r0, r1
ldrb r0, [r1, 0x3]
cmp r0, 0
bne _081C3CDC
ldr r1, =gText_ThreeDashes
b _081C3CEC
.pool
_081C3CDC:
ldr r4, =gStringVar1
ldrb r1, [r1, 0x3]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r1, r4, 0
_081C3CEC:
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0xE
movs r2, 0x35
movs r3, 0x11
bl sub_81C25A4
_081C3CFC:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3C5C
thumb_func_start sub_81C3D08
sub_81C3D08: @ 81C3D08
push {r4,lr}
movs r0, 0
bl sub_81C3B08
movs r0, 0x1
bl sub_81C3B08
movs r0, 0x2
bl sub_81C3B08
movs r0, 0x3
bl sub_81C3B08
ldr r4, =gUnknown_0203CF1C
ldr r0, [r4]
ldr r1, =0x000040bc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3
bne _081C3D40
bl sub_81C3F44
ldr r0, [r4]
ldr r1, =0x000040c6
adds r0, r1
ldrb r0, [r0]
bl sub_81C3E2C
_081C3D40:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3D08
thumb_func_start sub_81C3D54
sub_81C3D54: @ 81C3D54
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r0, [r4]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
bhi _081C3E20
lsls r0, 2
ldr r1, =_081C3D84
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C3D84:
.4byte _081C3DA0
.4byte _081C3DA8
.4byte _081C3DB0
.4byte _081C3DB8
.4byte _081C3DC0
.4byte _081C3DDC
.4byte _081C3E18
_081C3DA0:
movs r0, 0
bl sub_81C3B08
b _081C3E20
_081C3DA8:
movs r0, 0x1
bl sub_81C3B08
b _081C3E20
_081C3DB0:
movs r0, 0x2
bl sub_81C3B08
b _081C3E20
_081C3DB8:
movs r0, 0x3
bl sub_81C3B08
b _081C3E20
_081C3DC0:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040bc
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3
bne _081C3E20
bl sub_81C3F44
b _081C3E20
.pool
_081C3DDC:
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
ldr r1, =0x000040bc
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x3
bne _081C3E20
adds r1, 0x8
adds r0, r2, r1
ldr r0, [r0]
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0x80
lsls r1, 11
cmp r0, r1
beq _081C3E20
ldr r1, =0x000040c6
adds r0, r2, r1
ldrb r0, [r0]
bl sub_81C3E2C
b _081C3E20
.pool
_081C3E18:
adds r0, r2, 0
bl DestroyTask
b _081C3E26
_081C3E20:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_081C3E26:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C3D54
thumb_func_start sub_81C3E2C
sub_81C3E2C: @ 81C3E2C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x4
bne _081C3E48
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c4
b _081C3E50
.pool
_081C3E48:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
lsls r1, 1
adds r0, 0x84
_081C3E50:
adds r0, r1
ldrh r4, [r0]
cmp r4, 0
beq _081C3E82
ldr r0, =gUnknown_0861CD14
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
ldr r3, =gContestEffectDescriptionPointers
ldr r2, =gContestMoves
lsls r1, r4, 3
adds r1, r2
ldrb r1, [r1]
lsls r1, 2
adds r1, r3
ldr r1, [r1]
movs r2, 0
str r2, [sp]
str r2, [sp, 0x4]
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
_081C3E82:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3E2C
thumb_func_start sub_81C3E9C
sub_81C3E9C: @ 81C3E9C
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
ldr r0, =gUnknown_0861CD14
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0
bl FillWindowPixelBuffer
cmp r4, 0
beq _081C3F30
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x2
bne _081C3F00
adds r0, r4, 0
bl sub_81C3C5C
ldr r1, =gMoveDescriptionPointers
subs r0, r4, 0x1
lsls r0, 2
adds r0, r1
ldr r1, [r0]
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
b _081C3F20
.pool
_081C3F00:
ldr r2, =gContestEffectDescriptionPointers
ldr r1, =gContestMoves
lsls r0, r6, 3
adds r0, r1
ldrb r0, [r0]
lsls r0, 2
adds r0, r2
ldr r1, [r0]
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
_081C3F20:
adds r0, r5, 0
bl PutWindowTilemap
b _081C3F36
.pool
_081C3F30:
adds r0, r5, 0
bl ClearWindowTilemap
_081C3F36:
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C3E9C
thumb_func_start sub_81C3F44
sub_81C3F44: @ 81C3F44
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r4, =gUnknown_0861CD14
adds r0, r4, 0
movs r1, 0
bl sub_81C2D2C
lsls r0, 24
lsrs r6, r0, 24
adds r7, r6, 0
adds r0, r4, 0
movs r1, 0x1
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040c4
adds r0, r1, r2
ldrh r2, [r0]
cmp r2, 0
bne _081C3F9C
ldr r1, =gText_Cancel
str r2, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
adds r0, r6, 0
movs r2, 0
movs r3, 0x41
bl sub_81C25A4
b _081C4044
.pool
_081C3F9C:
ldrh r5, [r0]
ldr r2, =0x000040c0
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x2
bne _081C3FD0
movs r0, 0xD
adds r1, r5, 0
muls r1, r0
ldr r0, =gMoveNames
adds r1, r0
movs r0, 0
str r0, [sp]
movs r0, 0x6
str r0, [sp, 0x4]
adds r0, r6, 0
movs r2, 0
movs r3, 0x41
bl sub_81C25A4
b _081C3FEC
.pool
_081C3FD0:
movs r0, 0xD
adds r1, r5, 0
muls r1, r0
ldr r0, =gMoveNames
adds r1, r0
movs r0, 0
str r0, [sp]
movs r0, 0x5
str r0, [sp, 0x4]
adds r0, r7, 0
movs r2, 0
movs r3, 0x41
bl sub_81C25A4
_081C3FEC:
ldr r4, =gStringVar1
ldr r1, =gBattleMoves
lsls r0, r5, 1
adds r0, r5
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x4]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
bl sub_81AFBF0
movs r0, 0
adds r1, r4, 0
bl sub_81AFC0C
movs r0, 0x1
adds r1, r4, 0
bl sub_81AFC0C
ldr r4, =gStringVar4
ldr r1, =gUnknown_0861CE97
adds r0, r4, 0
bl sub_81AFC28
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2C
bl GetStringRightAlignXOffset
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
movs r0, 0
str r0, [sp]
movs r0, 0xC
str r0, [sp, 0x4]
mov r0, r8
adds r1, r4, 0
movs r3, 0x41
bl sub_81C25A4
_081C4044:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3F44
thumb_func_start sub_81C4064
sub_81C4064: @ 81C4064
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0861CD14
movs r1, 0
bl sub_81C2D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x48
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r2, 0
movs r3, 0x42
bl FillWindowPixelRect
adds r0, r4, 0
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4064
thumb_func_start sub_81C40A0
sub_81C40A0: @ 81C40A0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r9, r0
mov r10, r1
lsls r0, 24
lsrs r0, 24
mov r9, r0
mov r0, r10
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r5, =gUnknown_0861CD14
adds r0, r5, 0
movs r1, 0
bl sub_81C2D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_81C2D2C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
mov r0, r9
lsls r6, r0, 4
movs r0, 0x48
mov r8, r0
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r2, 0
adds r3, r6, 0
bl FillWindowPixelRect
mov r0, r10
lsls r7, r0, 4
mov r0, r8
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r2, 0
adds r3, r7, 0
bl FillWindowPixelRect
movs r4, 0x30
str r4, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r2, 0
adds r3, r6, 0
bl FillWindowPixelRect
str r4, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r2, 0
adds r3, r7, 0
bl FillWindowPixelRect
mov r0, r9
bl sub_81C3B08
mov r0, r10
bl sub_81C3B08
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C40A0
thumb_func_start sub_81C4154
sub_81C4154: @ 81C4154
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0861CD14
movs r1, 0x2
bl sub_81C2D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
ldr r1, =gText_HMMovesCantBeForgotten2
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4154
thumb_func_start sub_81C4190
sub_81C4190: @ 81C4190
push {r4,r5,lr}
movs r2, 0
ldr r5, =gUnknown_0203CF1C
ldr r4, =0x000040d3
movs r3, 0xFF
_081C419A:
ldr r0, [r5]
adds r0, r4
adds r0, r2
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1B
bls _081C419A
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4190
thumb_func_start sub_81C41C0
sub_81C41C0: @ 81C41C0
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
ldr r1, =0x000040d3
adds r0, r1
adds r1, r0, r4
ldrb r0, [r1]
cmp r0, 0xFF
beq _081C41F2
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
ldr r0, [r5]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r4
movs r1, 0xFF
strb r1, [r0]
_081C41F2:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C41C0
thumb_func_start sub_81C4204
sub_81C4204: @ 81C4204
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r3, =gSprites
ldr r2, =gUnknown_0203CF1C
ldr r2, [r2]
ldr r4, =0x000040d3
adds r2, r4
adds r2, r0
ldrb r0, [r2]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
adds r2, 0x3E
movs r0, 0x1
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4204
thumb_func_start sub_81C424C
sub_81C424C: @ 81C424C
push {r4,lr}
movs r4, 0x3
_081C4250:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0xFF
beq _081C4268
adds r0, r4, 0
movs r1, 0x1
bl sub_81C4204
_081C4268:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1B
bls _081C4250
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C424C
thumb_func_start sub_81C4280
sub_81C4280: @ 81C4280
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x2
beq _081C42B0
cmp r0, 0x2
bgt _081C42A4
cmp r0, 0
beq _081C42AA
b _081C42C2
.pool
_081C42A4:
cmp r0, 0x3
beq _081C42BA
b _081C42C2
_081C42AA:
bl sub_81C43A0
b _081C42C2
_081C42B0:
bl sub_81C4420
bl sub_81C44F0
b _081C42C2
_081C42BA:
bl sub_81C4484
bl sub_81C44F0
_081C42C2:
pop {r0}
bx r0
thumb_func_end sub_81C4280
thumb_func_start sub_81C42C8
sub_81C42C8: @ 81C42C8
push {r4,r5,lr}
movs r4, 0x3
ldr r5, =gUnknown_0203CF1C
_081C42CE:
ldr r0, [r5]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0xFF
bne _081C42F2
ldr r0, =gUnknown_0861CFC4
movs r1, 0
movs r2, 0
movs r3, 0x2
bl CreateSprite
ldr r1, [r5]
ldr r2, =0x000040d3
adds r1, r2
adds r1, r4
strb r0, [r1]
_081C42F2:
adds r0, r4, 0
movs r1, 0x1
bl sub_81C4204
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _081C42CE
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C42C8
thumb_func_start sub_81C4318
sub_81C4318: @ 81C4318
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r3, 24
lsrs r3, 24
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r3
ldrb r0, [r0]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, =gSprites
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
str r3, [sp]
bl StartSpriteAnim
ldr r0, =gUnknown_0861CFDC
adds r5, r0
ldrb r1, [r5]
lsls r1, 4
ldrb r2, [r4, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
adds r6, 0x10
strh r6, [r4, 0x20]
movs r0, 0x8
add r8, r0
mov r1, r8
strh r1, [r4, 0x22]
ldr r3, [sp]
adds r0, r3, 0
movs r1, 0
bl sub_81C4204
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4318
thumb_func_start sub_81C43A0
sub_81C43A0: @ 81C43A0
push {r4,r5,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
ldrb r0, [r5, 0x4]
cmp r0, 0
beq _081C43CC
movs r0, 0x9
movs r1, 0x78
movs r2, 0x30
movs r3, 0x3
bl sub_81C4318
movs r0, 0x4
movs r1, 0x1
bl sub_81C4204
b _081C4418
.pool
_081C43CC:
ldr r4, =gBaseStats
ldrh r1, [r5]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x6]
movs r1, 0x78
movs r2, 0x30
movs r3, 0x3
bl sub_81C4318
ldrh r1, [r5]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r1, r0, r4
ldrb r0, [r1, 0x6]
ldrb r2, [r1, 0x7]
cmp r0, r2
beq _081C4410
ldrb r0, [r1, 0x7]
movs r1, 0xA0
movs r2, 0x30
movs r3, 0x4
bl sub_81C4318
movs r0, 0x4
movs r1, 0
bl sub_81C4204
b _081C4418
.pool
_081C4410:
movs r0, 0x4
movs r1, 0x1
bl sub_81C4204
_081C4418:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C43A0
thumb_func_start sub_81C4420
sub_81C4420: @ 81C4420
push {r4-r6,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
movs r4, 0
ldr r6, =gBattleMoves
_081C442E:
lsls r0, r4, 1
adds r1, r5, 0
adds r1, 0x14
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
beq _081C4468
adds r1, r0, 0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r0, [r0, 0x2]
lsls r2, r4, 28
movs r1, 0x80
lsls r1, 22
adds r2, r1
lsrs r2, 24
adds r3, r4, 0x3
lsls r3, 24
lsrs r3, 24
movs r1, 0x55
bl sub_81C4318
b _081C4474
.pool
_081C4468:
adds r0, r4, 0x3
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
bl sub_81C4204
_081C4474:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081C442E
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C4420
thumb_func_start sub_81C4484
sub_81C4484: @ 81C4484
push {r4,r5,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
movs r4, 0
_081C4490:
lsls r0, r4, 1
adds r1, r5, 0
adds r1, 0x14
adds r2, r1, r0
ldrh r0, [r2]
cmp r0, 0
beq _081C44D4
ldr r1, =gContestMoves
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x1]
lsls r0, 29
lsrs r0, 5
movs r1, 0x90
lsls r1, 21
adds r0, r1
lsrs r0, 24
lsls r2, r4, 28
movs r1, 0x80
lsls r1, 22
adds r2, r1
lsrs r2, 24
adds r3, r4, 0x3
lsls r3, 24
lsrs r3, 24
movs r1, 0x55
bl sub_81C4318
b _081C44E0
.pool
_081C44D4:
adds r0, r4, 0x3
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
bl sub_81C4204
_081C44E0:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081C4490
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C4484
thumb_func_start sub_81C44F0
sub_81C44F0: @ 81C44F0
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r0, =0x000040c4
adds r3, r1, r0
ldrh r0, [r3]
cmp r0, 0
bne _081C4514
movs r0, 0x7
movs r1, 0x1
bl sub_81C4204
b _081C4560
.pool
_081C4514:
ldr r2, =0x000040c0
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x2
bne _081C4540
ldr r2, =gBattleMoves
ldrh r1, [r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x2]
movs r1, 0x55
movs r2, 0x60
movs r3, 0x7
bl sub_81C4318
b _081C4560
.pool
_081C4540:
ldr r1, =gContestMoves
ldrh r0, [r3]
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x1]
lsls r0, 29
lsrs r0, 5
movs r1, 0x90
lsls r1, 21
adds r0, r1
lsrs r0, 24
movs r1, 0x55
movs r2, 0x60
movs r3, 0x7
bl sub_81C4318
_081C4560:
pop {r0}
bx r0
.pool
thumb_func_end sub_81C44F0
thumb_func_start sub_81C4568
sub_81C4568: @ 81C4568
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_0203CF1C
ldr r2, [r2]
adds r0, 0x3
ldr r3, =0x000040d3
adds r2, r3
adds r0, r2, r0
ldrb r0, [r0]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r5, =gSprites
adds r4, r5
adds r1, 0x3
adds r2, r1
ldrb r0, [r2]
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
adds r3, r5
adds r5, r4, 0
adds r5, 0x2A
ldrb r1, [r5]
adds r2, r3, 0
adds r2, 0x2A
ldrb r0, [r2]
strb r0, [r5]
strb r1, [r2]
ldrb r6, [r4, 0x5]
lsrs r5, r6, 4
ldrb r2, [r3, 0x5]
lsrs r2, 4
lsls r2, 4
movs r1, 0xF
adds r0, r1, 0
ands r0, r6
orrs r0, r2
strb r0, [r4, 0x5]
lsls r5, 4
ldrb r0, [r3, 0x5]
ands r1, r0
orrs r1, r5
strb r1, [r3, 0x5]
adds r4, 0x3F
ldrb r0, [r4]
movs r2, 0x4
orrs r0, r2
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r4]
adds r3, 0x3F
ldrb r0, [r3]
orrs r0, r2
ands r0, r1
strb r0, [r3]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4568
thumb_func_start sub_81C45F4
sub_81C45F4: @ 81C45F4
push {r4-r6,lr}
adds r3, r0, 0
adds r6, r1, 0
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
adds r5, r2, 0
adds r5, 0x70
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
beq _081C4620
cmp r0, 0x1
bne _081C4610
b _081C4750
_081C4610:
adds r0, r3, 0
bl sub_81C47B4
lsls r0, 24
lsrs r0, 24
b _081C4770
.pool
_081C4620:
ldr r0, =gMain
ldr r1, =0x00000439
adds r0, r1
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C4680
ldr r1, =0x000040be
adds r0, r2, r1
ldrb r1, [r0]
movs r0, 0x3
bl sub_80688F8
lsls r0, 24
cmp r0, 0
beq _081C4668
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, =gBattleSpritesGfx
ldr r1, [r1]
ldr r1, [r1, 0x8]
b _081C46D6
.pool
_081C4668:
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, =gBattleSpritesGfx
ldr r1, [r1]
b _081C46B0
.pool
_081C4680:
ldr r0, =gBattleSpritesGfx
ldr r3, [r0]
adds r4, r0, 0
cmp r3, 0
beq _081C46E4
ldr r1, [r2]
ldr r0, =gPlayerParty
cmp r1, r0
beq _081C46A6
ldr r1, =0x000040bc
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x2
beq _081C46A6
adds r1, 0x33
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C46CC
_081C46A6:
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, [r4]
_081C46B0:
ldr r1, [r1, 0x8]
ldr r3, [r5, 0xC]
bl HandleLoadSpecialPokePic_2
b _081C4768
.pool
_081C46CC:
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, [r3, 0x8]
_081C46D6:
ldr r3, [r5, 0xC]
bl HandleLoadSpecialPokePic_DontHandleDeoxys
b _081C4768
.pool
_081C46E4:
ldr r1, [r2]
ldr r0, =gPlayerParty
cmp r1, r0
beq _081C4700
ldr r1, =0x000040bc
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x2
beq _081C4700
adds r1, 0x33
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C472C
_081C4700:
ldrh r4, [r5, 0x2]
lsls r4, 3
ldr r0, =gMonFrontPicTable
adds r4, r0
movs r0, 0
movs r1, 0x1
bl sub_806F4F8
adds r1, r0, 0
ldrh r2, [r5, 0x2]
ldr r3, [r5, 0xC]
adds r0, r4, 0
bl HandleLoadSpecialPokePic_2
b _081C4768
.pool
_081C472C:
ldrh r4, [r5, 0x2]
lsls r4, 3
ldr r0, =gMonFrontPicTable
adds r4, r0
movs r0, 0
movs r1, 0x1
bl sub_806F4F8
adds r1, r0, 0
ldrh r2, [r5, 0x2]
ldr r3, [r5, 0xC]
adds r0, r4, 0
bl HandleLoadSpecialPokePic_DontHandleDeoxys
b _081C4768
.pool
_081C4750:
ldrh r0, [r5, 0x2]
ldr r1, [r5, 0x48]
ldr r2, [r5, 0xC]
bl sub_806E7CC
adds r4, r0, 0
bl LoadCompressedObjectPalette
ldrh r0, [r4, 0x4]
movs r1, 0x1
bl sub_806A068
_081C4768:
ldrh r0, [r6]
adds r0, 0x1
strh r0, [r6]
movs r0, 0xFF
_081C4770:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C45F4
thumb_func_start sub_81C4778
sub_81C4778: @ 81C4778
push {r4,lr}
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
adds r4, r1, 0
adds r4, 0x70
ldrb r0, [r4, 0x4]
cmp r0, 0
bne _081C47AE
adds r0, r1, 0
adds r0, 0xC
bl sub_805F110
cmp r0, 0x1
bne _081C47A4
ldrh r0, [r4, 0x2]
movs r1, 0
movs r2, 0
bl PlayCry3
b _081C47AE
.pool
_081C47A4:
ldrh r0, [r4, 0x2]
movs r1, 0
movs r2, 0xB
bl PlayCry3
_081C47AE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C4778
thumb_func_start sub_81C47B4
sub_81C47B4: @ 81C47B4
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, =gUnknown_0203CF1C
ldr r6, [r0]
adds r6, 0x70
ldr r0, =gUnknown_0202499C
movs r1, 0x28
movs r2, 0x40
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r4, r0, 4
add r4, r8
lsls r4, 2
ldr r5, =gSprites
adds r7, r4, r5
adds r0, r7, 0
bl FreeSpriteOamMatrix
ldrh r0, [r6, 0x2]
movs r1, 0
strh r0, [r7, 0x2E]
strh r1, [r7, 0x32]
adds r5, 0x1C
adds r4, r5
ldr r0, =sub_81C4844
str r0, [r4]
ldrb r1, [r7, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
strb r0, [r7, 0x5]
ldrh r0, [r6, 0x2]
bl IsPokeSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _081C4828
adds r0, r7, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
b _081C4836
.pool
_081C4828:
adds r2, r7, 0
adds r2, 0x3F
ldrb r1, [r2]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2]
_081C4836:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C47B4
thumb_func_start sub_81C4844
sub_81C4844: @ 81C4844
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C487E
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _081C487E
ldrh r0, [r4, 0x2E]
bl IsPokeSpriteNotFlipped
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
bl sub_81C4778
ldrh r1, [r4, 0x2E]
ldrb r2, [r5, 0x4]
adds r0, r4, 0
bl PokemonSummaryDoMonAnimation
_081C487E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4844
thumb_func_start sub_81C488C
sub_81C488C: @ 81C488C
ldr r1, =gUnknown_0203CF24
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_81C488C
thumb_func_start sub_81C4898
sub_81C4898: @ 81C4898
push {r4,lr}
ldr r4, =gUnknown_0203CF24
ldrb r0, [r4]
cmp r0, 0xFF
beq _081C48AA
bl DestroyTask
movs r0, 0xFF
strb r0, [r4]
_081C48AA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4898
thumb_func_start sub_81C48B4
sub_81C48B4: @ 81C48B4
push {lr}
ldr r2, =gSprites
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _081C48E8
movs r0, 0x1
b _081C48EA
.pool
_081C48E8:
movs r0, 0
_081C48EA:
pop {r1}
bx r1
thumb_func_end sub_81C48B4
thumb_func_start sub_81C48F0
sub_81C48F0: @ 81C48F0
push {r4-r6,lr}
ldr r6, =gSprites
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
ldr r4, =0x000040d3
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x2C
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
strb r1, [r0]
ldr r0, [r5]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =SpriteCallbackDummy
str r1, [r0]
bl sub_806EE98
ldr r0, [r5]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r0, [r0, 0x5]
lsrs r0, 4
lsls r3, r0, 4
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
orrs r3, r0
movs r2, 0
ldr r5, =gPlttBufferUnfaded
ldr r4, =gPlttBufferFaded
_081C494C:
adds r0, r2, r3
lsls r0, 16
lsrs r0, 15
adds r1, r0, r5
adds r0, r4
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0xF
bls _081C494C
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C48F0
thumb_func_start sub_81C4984
sub_81C4984: @ 81C4984
push {r4-r6,lr}
adds r5, r0, 0
ldr r1, =0x00007533
ldr r2, =gUnknown_0861D120
adds r0, r1, 0
bl sub_811FF94
adds r4, r0, 0
ldr r6, =gUnknown_0203CF1C
ldr r0, [r6]
str r4, [r0, 0x8]
cmp r4, 0
beq _081C49CE
adds r0, r5, 0
movs r1, 0x8
bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
ldr r1, [r6]
ldr r2, [r1, 0x8]
movs r0, 0x3C
strh r0, [r2, 0x20]
ldr r2, [r1, 0x8]
movs r0, 0x1A
strh r0, [r2, 0x22]
ldr r2, [r1, 0x8]
ldrb r1, [r2, 0x5]
subs r0, 0x27
ands r0, r1
movs r1, 0x4
orrs r0, r1
strb r0, [r2, 0x5]
_081C49CE:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4984
thumb_func_start sub_81C49E0
sub_81C49E0: @ 81C49E0
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl DestroySprite
ldr r0, =0x00007533
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl sub_81C4984
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C49E0
thumb_func_start sub_81C4A08
sub_81C4A08: @ 81C4A08
push {r4,lr}
movs r1, 0x26
bl GetMonData
lsls r0, 16
lsrs r0, 16
bl ball_number_to_ball_processing_index
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_8076A78
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
ldr r1, =gUnknown_0832C588
adds r0, r1
movs r1, 0x10
movs r2, 0x88
movs r3, 0
bl CreateSprite
ldr r2, =gUnknown_0203CF1C
ldr r1, [r2]
ldr r3, =0x000040d4
adds r1, r3
strb r0, [r1]
ldr r4, =gSprites
ldr r2, [r2]
adds r2, r3
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4A08
thumb_func_start sub_81C4A88
sub_81C4A88: @ 81C4A88
push {r4,r5,lr}
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
ldr r1, =0x000040d5
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0xFF
bne _081C4AA6
ldr r0, =gUnknown_0861D108
movs r1, 0x40
movs r2, 0x98
movs r3, 0
bl CreateSprite
strb r0, [r4]
_081C4AA6:
ldr r0, [r5]
adds r0, 0xC
bl sub_81B205C
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _081C4AE8
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
subs r1, r2, 0x1
lsls r1, 24
lsrs r1, 24
bl StartSpriteAnim
movs r0, 0x2
movs r1, 0
bl sub_81C4204
b _081C4AF0
.pool
_081C4AE8:
movs r0, 0x2
movs r1, 0x1
bl sub_81C4204
_081C4AF0:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C4A88
thumb_func_start sub_81C4AF8
sub_81C4AF8: @ 81C4AF8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, =gUnknown_0203CF1C
ldr r1, =0x000040d3
add r1, r8
ldr r0, [r0]
adds r7, r0, r1
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bls _081C4BD2
movs r0, 0
mov r9, r0
mov r1, r8
cmp r1, 0x8
bne _081C4B2A
movs r0, 0x1
mov r9, r0
_081C4B2A:
movs r5, 0
ldr r6, =gSprites
mov r10, r5
_081C4B30:
lsls r1, r5, 20
movs r0, 0xB2
lsls r0, 15
adds r1, r0
asrs r1, 16
ldr r0, =gUnknown_0861D084
movs r2, 0x28
mov r3, r9
bl CreateSprite
adds r1, r7, r5
strb r0, [r1]
adds r4, r1, 0
cmp r5, 0
bne _081C4B74
ldrb r1, [r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x4
bl StartSpriteAnim
b _081C4B9A
.pool
_081C4B74:
cmp r5, 0x9
bne _081C4B8A
ldrb r1, [r7, 0x9]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x5
bl StartSpriteAnim
b _081C4B9A
_081C4B8A:
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x6
bl StartSpriteAnim
_081C4B9A:
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_81C4BE4
str r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
mov r1, r8
strh r1, [r0, 0x2E]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
mov r1, r10
strh r1, [r0, 0x30]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x9
bls _081C4B30
_081C4BD2:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4AF8
thumb_func_start sub_81C4BE4
sub_81C4BE4: @ 81C4BE4
push {lr}
adds r3, r0, 0
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bhi _081C4C1C
ldrh r0, [r3, 0x30]
adds r0, 0x1
movs r1, 0x1F
ands r0, r1
strh r0, [r3, 0x30]
cmp r0, 0x18
ble _081C4C10
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
b _081C4C2A
_081C4C10:
adds r2, r3, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
b _081C4C28
_081C4C1C:
movs r0, 0
strh r0, [r3, 0x30]
adds r2, r3, 0
adds r2, 0x3E
ldrb r1, [r2]
subs r0, 0x5
_081C4C28:
ands r0, r1
_081C4C2A:
strb r0, [r2]
movs r1, 0x2E
ldrsh r0, [r3, r1]
cmp r0, 0x8
bne _081C4C44
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c6
b _081C4C4A
.pool
_081C4C44:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c7
_081C4C4A:
adds r0, r1
ldrb r0, [r0]
lsls r0, 4
strh r0, [r3, 0x26]
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4BE4
thumb_func_start sub_81C4C60
sub_81C4C60: @ 81C4C60
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
_081C4C68:
adds r0, r5, r4
lsls r0, 24
lsrs r0, 24
bl sub_81C41C0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _081C4C68
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C4C60
thumb_func_start sub_81C4C84
sub_81C4C84: @ 81C4C84
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040db
adds r5, r0, r1
lsls r0, r6, 1
adds r0, r6
lsls r0, 24
movs r4, 0
ldr r7, =gSprites
movs r2, 0x80
lsls r2, 19
adds r2, r0
mov r9, r2
lsrs r6, r0, 24
movs r1, 0xA0
lsls r1, 19
adds r1, r0
mov r8, r1
_081C4CB4:
cmp r4, 0
bne _081C4CD4
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
mov r2, r9
b _081C4CE4
.pool
_081C4CD4:
cmp r4, 0x9
bne _081C4CEC
ldrb r1, [r5, 0x9]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
mov r2, r8
_081C4CE4:
lsrs r1, r2, 24
bl StartSpriteAnim
b _081C4D02
_081C4CEC:
adds r0, r5, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
adds r1, r6, 0x6
lsls r1, 24
lsrs r1, 24
bl StartSpriteAnim
_081C4D02:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _081C4CB4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C4C84
thumb_func_start sub_81C4D18
sub_81C4D18: @ 81C4D18
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF1C
ldr r2, =0x000040d3
adds r0, r2
ldr r1, [r1]
adds r5, r1, r0
movs r3, 0
ldr r4, =gSprites
movs r7, 0x5
negs r7, r7
movs r6, 0
_081C4D32:
adds r2, r5, r3
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r6, [r0, 0x30]
ldrb r0, [r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
adds r1, 0x3E
ldrb r2, [r1]
adds r0, r7, 0
ands r0, r2
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x9
bls _081C4D32
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4D18
thumb_func_start sub_81C4D70
sub_81C4D70: @ 81C4D70
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
ldr r4, =gUnknown_0203CF28
movs r0, 0x4
bl Alloc
str r0, [r4]
ldr r1, [r5]
lsls r0, r1, 20
lsrs r4, r0, 30
cmp r4, 0
bne _081C4DDC
lsls r0, r1, 30
lsrs r0, 30
movs r1, 0x8
movs r2, 0
bl SetBgAttribute
ldr r3, [r5]
lsls r0, r3, 30
lsrs r0, 30
ldr r1, =gUnknown_0861D1A0
lsls r3, 22
lsrs r3, 24
str r4, [sp]
movs r2, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
ldr r1, =gUnknown_0861DEF4
movs r2, 0x1
str r2, [sp]
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, [r5]
lsls r1, 22
lsrs r1, 24
str r4, [sp]
movs r2, 0x20
movs r3, 0x20
bl sub_8199D3C
b _081C4E2E
.pool
_081C4DDC:
lsls r0, r1, 30
lsrs r0, 30
movs r1, 0x8
movs r2, 0x2
bl SetBgAttribute
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0x9
movs r2, 0x1
bl SetBgAttribute
ldr r3, [r5]
lsls r0, r3, 30
lsrs r0, 30
ldr r1, =gUnknown_0861E208
lsls r3, 22
lsrs r3, 24
movs r2, 0
str r2, [sp]
bl decompress_and_copy_tile_data_to_vram
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
ldr r1, =gUnknown_0861EF64
movs r4, 0x1
str r4, [sp]
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, [r5]
lsls r1, 22
lsrs r1, 24
str r4, [sp]
movs r2, 0x40
movs r3, 0x40
bl sub_8199D3C
_081C4E2E:
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0
movs r2, 0
bl ChangeBgX
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0
movs r2, 0
bl ChangeBgY
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0x4
movs r2, 0x1
bl SetBgAttribute
ldr r0, =gUnknown_0861D140
ldr r1, =gPlttBufferUnfaded + 0xE0
ldr r2, =0x04000018
bl CpuSet
ldr r0, =gUnknown_0203CF28
ldr r1, [r0]
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
strb r0, [r1]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4D70
thumb_func_start sub_81C4E90
sub_81C4E90: @ 81C4E90
push {lr}
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _081C4EA0
movs r0, 0x1
b _081C4EAC
_081C4EA0:
ldr r0, =gUnknown_0203CF28
ldr r0, [r0]
ldrb r0, [r0]
bl ShowBg
movs r0, 0
_081C4EAC:
pop {r1}
bx r1
.pool
thumb_func_end sub_81C4E90
thumb_func_start sub_81C4EB4
sub_81C4EB4: @ 81C4EB4
push {r4,lr}
ldr r4, =gUnknown_0203CF28
ldr r0, [r4]
cmp r0, 0
beq _081C4EC6
bl Free
movs r0, 0
str r0, [r4]
_081C4EC6:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4EB4
thumb_func_start sub_81C4ED0
sub_81C4ED0: @ 81C4ED0
push {lr}
adds r1, r0, 0
ldr r0, =gUnknown_0203CF28
ldr r0, [r0]
ldrb r0, [r0]
lsls r1, 8
movs r2, 0
bl ChangeBgY
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4ED0
thumb_func_start sub_81C4EEC
sub_81C4EEC: @ 81C4EEC
ldr r1, =gUnknown_0203CF30
movs r0, 0
strh r0, [r1, 0x6]
strh r0, [r1, 0x8]
bx lr
.pool
thumb_func_end sub_81C4EEC
thumb_func_start sub_81C4EFC
sub_81C4EFC: @ 81C4EFC
push {lr}
ldr r1, =sub_8086194
movs r0, 0
bl sub_81C4F98
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4EFC
thumb_func_start sub_81C4F10
sub_81C4F10: @ 81C4F10
push {lr}
ldr r1, =sub_8059D50
movs r0, 0x1
bl sub_81C4F98
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F10
thumb_func_start sub_81C4F24
sub_81C4F24: @ 81C4F24
push {lr}
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
bl fade_screen
ldr r0, =sub_81C4F44
movs r1, 0xA
bl CreateTask
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F24
thumb_func_start sub_81C4F44
sub_81C4F44: @ 81C4F44
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C4F6E
bl overworld_free_bg_tilemaps
ldr r0, =gUnknown_03005DB0
ldr r1, =hm_add_c3_without_phase_2
str r1, [r0]
ldr r1, =c2_exit_to_overworld_2_switch
movs r0, 0x3
bl sub_81C4F98
adds r0, r4, 0
bl DestroyTask
_081C4F6E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F44
thumb_func_start sub_81C4F84
sub_81C4F84: @ 81C4F84
push {lr}
ldr r0, =gUnknown_0203CF30
ldr r1, [r0]
movs r0, 0x4
bl sub_81C4F98
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F84
thumb_func_start sub_81C4F98
sub_81C4F98: @ 81C4F98
push {r4-r6,lr}
adds r5, r1, 0
lsls r0, 24
lsrs r4, r0, 24
ldr r6, =gUnknown_0203CF2C
ldr r0, =0x0000098c
bl AllocZeroed
str r0, [r6]
cmp r4, 0x4
beq _081C4FB2
ldr r0, =gUnknown_0203CF30
strb r4, [r0, 0x4]
_081C4FB2:
cmp r5, 0
beq _081C4FBA
ldr r0, =gUnknown_0203CF30
str r5, [r0]
_081C4FBA:
ldr r0, [r6]
movs r1, 0
str r1, [r0]
ldr r1, =0x00000814
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
ldr r0, [r6]
ldr r1, =0x00000816
adds r0, r1
movs r1, 0x1
negs r1, r1
strb r1, [r0]
ldr r0, [r6]
ldr r1, =0x00000804
adds r0, r1
movs r1, 0xFF
movs r2, 0xB
bl memset
ldr r0, [r6]
ldr r1, =0x0000080f
adds r0, r1
movs r1, 0xFF
movs r2, 0x5
bl memset
ldr r0, =sub_81C504C
bl SetMainCallback2
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F98
thumb_func_start sub_81C501C
sub_81C501C: @ 81C501C
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl do_scheduled_bg_tilemap_copies_to_vram
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_81C501C
thumb_func_start sub_81C5038
sub_81C5038: @ 81C5038
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_81C5038
thumb_func_start sub_81C504C
sub_81C504C: @ 81C504C
push {lr}
_081C504E:
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5072
bl sub_81C5078
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5072
bl sub_81221AC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C504E
_081C5072:
pop {r0}
bx r0
thumb_func_end sub_81C504C
thumb_func_start sub_81C5078
sub_81C5078: @ 81C5078
push {lr}
sub sp, 0x4
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x10
bls _081C508C
b _081C51BC
_081C508C:
lsls r0, 2
ldr r1, =_081C50A0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C50A0:
.4byte _081C50E4
.4byte _081C50EE
.4byte _081C50F4
.4byte _081C50FA
.4byte _081C510C
.4byte _081C5112
.4byte _081C5122
.4byte _081C513C
.4byte _081C5148
.4byte _081C514E
.4byte _081C515C
.4byte _081C5162
.4byte _081C5168
.4byte _081C516E
.4byte _081C5174
.4byte _081C517A
.4byte _081C5188
_081C50E4:
bl SetVBlankHBlankCallbacksToNull
bl clear_scheduled_bg_copies_to_vram
b _081C51A2
_081C50EE:
bl remove_some_task
b _081C51A2
_081C50F4:
bl FreeAllSpritePalettes
b _081C51A2
_081C50FA:
bl ResetPaletteFade
ldr r2, =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
b _081C51A0
.pool
_081C510C:
bl ResetSpriteData
b _081C51A2
_081C5112:
bl sub_81221AC
lsls r0, 24
cmp r0, 0
bne _081C51A2
bl ResetTasks
b _081C51A2
_081C5122:
bl sub_81C51DC
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000984
adds r0, r1
movs r1, 0
strh r1, [r0]
b _081C51A2
.pool
_081C513C:
bl sub_81C5238
lsls r0, 24
cmp r0, 0
beq _081C51D4
b _081C51A2
_081C5148:
bl sub_81C6BD8
b _081C51A2
_081C514E:
bl sub_81C5924
bl sub_81C59BC
bl sub_81C5A20
b _081C51A2
_081C515C:
bl sub_81C5314
b _081C51A2
_081C5162:
bl sub_81C56F8
b _081C51A2
_081C5168:
bl sub_81C6EF4
b _081C51A2
_081C516E:
bl sub_81C5674
b _081C51A2
_081C5174:
bl sub_81C700C
b _081C51A2
_081C517A:
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
b _081C51A2
_081C5188:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r2, =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
_081C51A0:
strb r0, [r2, 0x8]
_081C51A2:
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _081C51D4
.pool
_081C51BC:
ldr r0, =sub_81C5038
bl SetVBlankCallback
ldr r0, =sub_81C501C
bl SetMainCallback2
movs r0, 0x1
b _081C51D6
.pool
_081C51D4:
movs r0, 0
_081C51D6:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end sub_81C5078
thumb_func_start sub_81C51DC
sub_81C51DC: @ 81C51DC
push {lr}
bl sub_8121DA0
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0861F2B4
movs r0, 0
movs r2, 0x3
bl InitBgsFromTemplates
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
adds r1, 0x4
movs r0, 0x2
bl SetBgTilemapBuffer
bl sub_8121E10
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r0}
bx r0
.pool
thumb_func_end sub_81C51DC
thumb_func_start sub_81C5238
sub_81C5238: @ 81C5238
push {r4,lr}
sub sp, 0x4
ldr r4, =gUnknown_0203CF2C
ldr r0, [r4]
ldr r1, =0x00000984
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x4
bhi _081C52F0
lsls r0, 2
ldr r1, =_081C5264
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C5264:
.4byte _081C5278
.4byte _081C5294
.4byte _081C52B8
.4byte _081C52C8
.4byte _081C52D4
_081C5278:
bl reset_temp_tile_data_buffers
ldr r1, =gUnknown_08D9A620
movs r0, 0
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
b _081C52D8
.pool
_081C5294:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5308
ldr r0, =gUnknown_08D9AE04
ldr r4, =gUnknown_0203CF2C
ldr r1, [r4]
adds r1, 0x4
bl LZDecompressWram
ldr r1, [r4]
b _081C52DC
.pool
_081C52B8:
ldr r0, =gUnknown_08D9AF44
movs r1, 0
movs r2, 0x20
bl LoadCompressedPalette
b _081C52D8
.pool
_081C52C8:
ldr r0, =gUnknown_0861F3CC
bl LoadCompressedObjectPic
b _081C52D8
.pool
_081C52D4:
bl sub_81C6E98
_081C52D8:
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
_081C52DC:
ldr r0, =0x00000984
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _081C5308
.pool
_081C52F0:
bl sub_8122328
ldr r0, [r4]
ldr r1, =0x00000984
adds r0, r1
movs r1, 0
strh r1, [r0]
movs r0, 0x1
b _081C530A
.pool
_081C5308:
movs r0, 0
_081C530A:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C5238
thumb_func_start sub_81C5314
sub_81C5314: @ 81C5314
push {r4-r7,lr}
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
ldr r3, =0x00000e2c
adds r0, r3
adds r7, r2, r0
movs r6, 0
ldr r1, =gUnknown_0203CF2C
ldr r0, [r1]
ldr r4, =0x00000821
adds r0, r4
ldrb r0, [r0]
subs r0, 0x1
cmp r6, r0
bge _081C5382
adds r5, r1, 0
_081C5344:
lsls r1, r6, 1
adds r4, r1, r6
lsls r4, 3
ldr r0, =0x0000087c
adds r4, r0
ldr r0, [r5]
adds r0, r4
adds r1, r7
ldrh r1, [r1]
bl sub_81C540C
ldr r1, [r5]
lsls r2, r6, 3
ldr r3, =0x00000824
adds r0, r1, r3
adds r0, r2
adds r4, r1, r4
str r4, [r0]
ldr r4, =0x00000828
adds r0, r1, r4
adds r0, r2
str r6, [r0]
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
ldr r0, =0x00000821
adds r1, r0
ldrb r0, [r1]
subs r0, 0x1
cmp r6, r0
blt _081C5344
_081C5382:
ldr r5, =gUnknown_0203CF2C
lsls r4, r6, 1
adds r4, r6
lsls r4, 3
ldr r1, =0x0000087c
adds r4, r1
ldr r0, [r5]
adds r0, r4
ldr r1, =gText_CloseBag
bl StringCopy
ldr r1, [r5]
lsls r2, r6, 3
ldr r3, =0x00000824
adds r0, r1, r3
adds r0, r2
adds r4, r1, r4
str r4, [r0]
ldr r4, =0x00000828
adds r1, r4
adds r1, r2
movs r0, 0x2
negs r0, r0
str r0, [r1]
ldr r2, =gUnknown_03006310
adds r1, r2, 0
ldr r0, =gUnknown_0861F2C0
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r1, [r5]
ldr r6, =0x00000821
adds r0, r1, r6
ldrb r0, [r0]
strh r0, [r2, 0xC]
adds r3, r1, r3
str r3, [r2]
ldr r7, =0x00000822
adds r1, r7
ldrb r0, [r1]
strh r0, [r2, 0xE]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5314
thumb_func_start sub_81C540C
sub_81C540C: @ 81C540C
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 16
lsrs r4, r1, 16
adds r0, r4, 0
bl ItemId_GetPocket
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _081C5450
ldr r0, =gStringVar1
adds r1, r4, 0
subs r1, 0x84
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r1, =gStringVar2
adds r0, r4, 0
bl CopyItemName
ldr r1, =gText_UnkF908Var1Clear7Var2
adds r0, r5, 0
bl StringExpandPlaceholders
b _081C5458
.pool
_081C5450:
adds r0, r4, 0
adds r1, r5, 0
bl CopyItemName
_081C5458:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C540C
thumb_func_start sub_81C5460
sub_81C5460: @ 81C5460
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
cmp r1, 0x1
beq _081C5476
movs r0, 0x5
bl PlaySE
bl sub_81C6F20
_081C5476:
ldr r5, =gUnknown_0203CF2C
ldr r1, [r5]
ldr r2, =0x00000814
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0xFF
bne _081C5504
adds r2, 0x1
adds r0, r1, r2
ldrb r1, [r0]
movs r0, 0x1
eors r0, r1
bl sub_81C6FF8
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _081C54E0
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
lsls r3, r4, 1
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r3, r0
ldr r0, =0x00000e2c
adds r2, r0
adds r2, r3
ldrh r0, [r2]
ldr r1, [r5]
ldr r2, =0x00000815
adds r1, r2
ldrb r1, [r1]
bl sub_81C6F90
b _081C54EE
.pool
_081C54E0:
ldr r0, =0x0000ffff
ldr r1, [r5]
ldr r2, =0x00000815
adds r1, r2
ldrb r1, [r1]
bl sub_81C6F90
_081C54EE:
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000815
adds r1, r0
ldrb r0, [r1]
movs r2, 0x1
eors r0, r2
strb r0, [r1]
adds r0, r4, 0
bl sub_81C55D8
_081C5504:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5460
thumb_func_start sub_81C5518
sub_81C5518: @ 81C5518
push {r4-r6,lr}
sub sp, 0x10
adds r4, r1, 0
lsls r0, 24
lsrs r6, r0, 24
lsls r2, 24
lsrs r5, r2, 24
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _081C55B8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000814
adds r0, r1
ldrb r1, [r0]
cmp r1, 0xFF
beq _081C5560
lsls r0, r4, 24
lsrs r0, 24
cmp r1, r0
bne _081C5558
adds r0, r5, 0
movs r1, 0x1
bl sub_81C5AB8
b _081C5560
.pool
_081C5558:
adds r0, r5, 0
movs r1, 0xFF
bl sub_81C5AB8
_081C5560:
ldr r0, =gStringVar1
ldr r1, =gSaveBlock2Ptr
ldr r3, [r1]
ldr r2, =0x00000ca9
adds r1, r3, r2
ldrb r2, [r1]
lsls r2, 30
lsrs r2, 30
lsls r1, r2, 2
adds r1, r2
lsls r1, 1
adds r1, r4, r1
ldr r2, =0x00000e54
adds r3, r2
adds r3, r1
ldrb r1, [r3]
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_xVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x7
adds r1, r4, 0
movs r2, 0x77
bl GetStringRightAlignXOffset
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
movs r0, 0xFF
str r0, [sp, 0x8]
str r1, [sp, 0xC]
adds r0, r6, 0
adds r1, r4, 0
adds r3, r5, 0
bl sub_81C6C94
_081C55B8:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5518
thumb_func_start sub_81C55D8
sub_81C55D8: @ 81C55D8
push {r4,lr}
sub sp, 0x10
adds r3, r0, 0
movs r0, 0x2
negs r0, r0
cmp r3, r0
beq _081C561C
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
lsls r3, 1
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r3, r0
ldr r0, =0x00000e2c
adds r2, r0
adds r2, r3
ldrh r0, [r2]
bl ItemId_GetDescription
adds r4, r0, 0
b _081C5638
.pool
_081C561C:
ldr r0, =gStringVar1
ldr r2, =gReturnToXStringsTable2
ldr r1, =gUnknown_0203CF30
ldrb r1, [r1, 0x4]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
bl StringCopy
ldr r4, =gStringVar4
ldr r1, =gText_ReturnToVar1
adds r0, r4, 0
bl StringExpandPlaceholders
_081C5638:
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C55D8
thumb_func_start sub_81C5674
sub_81C5674: @ 81C5674
push {r4,lr}
sub sp, 0x10
ldr r4, =gUnknown_0203CF2C
ldr r1, [r4]
ldr r2, =0x00000816
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0xFF
bne _081C56B4
adds r2, 0xB
adds r0, r1, r2
ldrb r0, [r0]
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
subs r0, r1
str r0, [sp]
ldr r0, =0x00000b5e
str r0, [sp, 0x4]
str r0, [sp, 0x8]
ldr r0, =gUnknown_0203CF38
str r0, [sp, 0xC]
movs r0, 0x2
movs r1, 0xAC
movs r2, 0xC
movs r3, 0x94
bl AddScrollIndicatorArrowPairParametrized
ldr r1, [r4]
ldr r2, =0x00000816
adds r1, r2
strb r0, [r1]
_081C56B4:
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5674
thumb_func_start sub_81C56CC
sub_81C56CC: @ 81C56CC
push {r4,lr}
ldr r4, =gUnknown_0203CF2C
ldr r0, [r4]
ldr r2, =0x00000816
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0xFF
beq _081C56EA
bl RemoveScrollIndicatorArrowPair
ldr r0, [r4]
ldr r1, =0x00000816
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
_081C56EA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C56CC
thumb_func_start sub_81C56F8
sub_81C56F8: @ 81C56F8
push {r4,lr}
ldr r0, =sub_81C5BC8
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
ldr r0, =gUnknown_03006310
ldr r2, =gUnknown_0203CF30
ldrh r1, [r2, 0x8]
ldrh r2, [r2, 0x6]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C56F8
thumb_func_start sub_81C5738
sub_81C5738: @ 81C5738
push {r4-r6,lr}
mov r6, r8
push {r6}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gSaveBlock2Ptr
ldr r6, [r2]
ldr r3, =0x00000ca9
adds r2, r6, r3
ldrb r3, [r2]
lsls r3, 30
lsrs r2, r3, 30
lsls r4, r2, 2
adds r4, r2
lsls r4, 2
ldr r2, =0x00000e2c
adds r4, r2
adds r4, r6, r4
lsrs r3, 30
lsls r2, r3, 2
adds r2, r3
lsls r2, 1
ldr r3, =0x00000e54
adds r2, r3
adds r6, r2
lsls r5, r0, 1
adds r5, r4
ldrh r2, [r5]
mov r8, r2
lsls r2, r1, 1
adds r2, r4
ldrh r3, [r2]
strh r3, [r5]
mov r3, r8
strh r3, [r2]
adds r0, r6, r0
ldrb r2, [r0]
adds r6, r1
ldrb r1, [r6]
strb r1, [r0]
strb r2, [r6]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5738
thumb_func_start sub_81C57A8
sub_81C57A8: @ 81C57A8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
lsls r1, 24
lsrs r5, r1, 24
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
ldr r1, =0x00000ca9
adds r0, r3, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r2, r1, 30
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
ldr r2, =0x00000e2c
adds r0, r2
adds r6, r3, r0
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
ldr r1, =0x00000e54
adds r0, r1
adds r3, r0
cmp r4, r5
beq _081C5862
lsls r0, r4, 1
adds r0, r6
ldrh r0, [r0]
mov r12, r0
adds r0, r3, r4
ldrb r0, [r0]
mov r8, r0
cmp r5, r4
bls _081C5830
subs r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
lsls r2, r4, 16
cmp r4, r5
bge _081C5854
_081C5802:
asrs r2, 16
lsls r0, r2, 1
adds r0, r6
ldrh r1, [r0, 0x2]
strh r1, [r0]
adds r1, r3, r2
ldrb r0, [r1, 0x1]
strb r0, [r1]
adds r2, 0x1
lsls r2, 16
asrs r0, r2, 16
cmp r0, r5
blt _081C5802
b _081C5854
.pool
_081C5830:
lsls r2, r7, 16
cmp r7, r5
ble _081C5854
_081C5836:
asrs r2, 16
lsls r1, r2, 1
adds r1, r6
subs r0, r1, 0x2
ldrh r0, [r0]
strh r0, [r1]
adds r1, r3, r2
subs r0, r1, 0x1
ldrb r0, [r0]
strb r0, [r1]
subs r2, 0x1
lsls r2, 16
asrs r0, r2, 16
cmp r0, r5
bgt _081C5836
_081C5854:
lsls r0, r5, 1
adds r0, r6
mov r2, r12
strh r2, [r0]
adds r0, r3, r5
mov r1, r8
strb r1, [r0]
_081C5862:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C57A8
thumb_func_start sub_81C586C
sub_81C586C: @ 81C586C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
ldr r1, =0x00000ca9
adds r0, r3, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r2, r1, 30
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
ldr r2, =0x00000e2c
adds r0, r2
adds r0, r3
mov r9, r0
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
ldr r4, =0x00000e54
adds r0, r4
adds r3, r0
mov r8, r3
movs r5, 0
movs r3, 0
_081C58A4:
lsls r0, r5, 1
mov r1, r9
adds r2, r0, r1
ldrh r0, [r2]
mov r4, r8
adds r1, r4, r5
cmp r0, 0
beq _081C58BA
ldrb r0, [r1]
cmp r0, 0
bne _081C58BE
_081C58BA:
strh r3, [r2]
strb r3, [r1]
_081C58BE:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x9
bls _081C58A4
movs r5, 0
_081C58CA:
adds r1, r5, 0x1
lsls r0, r1, 24
lsrs r4, r0, 24
adds r7, r1, 0
cmp r4, 0x9
bhi _081C58FE
lsls r0, r5, 1
mov r1, r9
adds r6, r0, r1
_081C58DC:
ldrh r0, [r6]
cmp r0, 0
beq _081C58EC
mov r2, r8
adds r0, r2, r5
ldrb r0, [r0]
cmp r0, 0
bne _081C58F4
_081C58EC:
adds r0, r5, 0
adds r1, r4, 0
bl sub_81C5738
_081C58F4:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _081C58DC
_081C58FE:
lsls r0, r7, 24
lsrs r5, r0, 24
cmp r5, 0x8
bls _081C58CA
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C586C
thumb_func_start sub_81C5924
sub_81C5924: @ 81C5924
push {r4-r6,lr}
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
ldr r1, =0x00000e2c
adds r0, r1
adds r5, r2, r0
bl sub_81C586C
ldr r3, =gUnknown_0203CF2C
ldr r0, [r3]
ldr r2, =0x00000821
adds r0, r2
movs r1, 0
strb r1, [r0]
movs r4, 0
adds r6, r3, 0
_081C5954:
lsls r0, r4, 1
adds r0, r5
ldrh r0, [r0]
ldr r3, =gUnknown_0203CF2C
cmp r0, 0
beq _081C596A
ldr r1, [r6]
adds r1, r2
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_081C596A:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x9
bls _081C5954
ldr r0, [r3]
ldr r2, =0x00000821
adds r0, r2
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
ldr r0, [r3]
adds r2, r0, r2
ldrb r2, [r2]
cmp r2, 0x8
bls _081C59AC
ldr r2, =0x00000822
adds r1, r0, r2
movs r0, 0x8
strb r0, [r1]
b _081C59B2
.pool
_081C59AC:
ldr r1, =0x00000822
adds r0, r1
strb r2, [r0]
_081C59B2:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5924
thumb_func_start sub_81C59BC
sub_81C59BC: @ 81C59BC
push {r4,r5,lr}
ldr r0, =gUnknown_0203CF30
ldrh r1, [r0, 0x8]
adds r3, r0, 0
ldr r4, =gUnknown_0203CF2C
cmp r1, 0
beq _081C59E4
ldrh r0, [r3, 0x8]
ldr r1, [r4]
ldr r5, =0x00000822
adds r2, r1, r5
ldrb r2, [r2]
adds r0, r2
subs r5, 0x1
adds r1, r5
ldrb r1, [r1]
cmp r0, r1
ble _081C59E4
subs r0, r1, r2
strh r0, [r3, 0x8]
_081C59E4:
adds r2, r3, 0
ldrh r1, [r2, 0x8]
ldrh r0, [r2, 0x6]
adds r1, r0
ldr r0, [r4]
ldr r4, =0x00000821
adds r0, r4
ldrb r0, [r0]
cmp r1, r0
blt _081C5A18
adds r1, r0, 0
cmp r1, 0
bne _081C5A14
strh r1, [r2, 0x6]
b _081C5A18
.pool
_081C5A14:
subs r0, 0x1
strh r0, [r3, 0x6]
_081C5A18:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C59BC
thumb_func_start sub_81C5A20
sub_81C5A20: @ 81C5A20
push {r4-r7,lr}
ldr r0, =gUnknown_0203CF30
ldrh r1, [r0, 0x6]
adds r5, r0, 0
cmp r1, 0x4
bls _081C5A80
movs r4, 0
ldrh r0, [r5, 0x6]
subs r0, 0x4
cmp r4, r0
bgt _081C5A80
ldrh r2, [r5, 0x8]
ldr r6, =gUnknown_0203CF2C
ldr r0, [r6]
ldr r3, =0x00000822
adds r1, r0, r3
ldrb r1, [r1]
adds r2, r1
ldr r7, =0x00000821
adds r0, r7
ldrb r0, [r0]
cmp r2, r0
beq _081C5A80
adds r3, r5, 0
_081C5A50:
ldrh r0, [r3, 0x6]
subs r0, 0x1
strh r0, [r3, 0x6]
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldrh r0, [r3, 0x6]
subs r0, 0x4
cmp r4, r0
bgt _081C5A80
ldrh r2, [r5, 0x8]
ldr r1, [r6]
ldr r7, =0x00000822
adds r0, r1, r7
ldrb r0, [r0]
adds r2, r0
ldr r0, =0x00000821
adds r1, r0
ldrb r1, [r1]
cmp r2, r1
bne _081C5A50
_081C5A80:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5A20
thumb_func_start sub_81C5A98
sub_81C5A98: @ 81C5A98
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
bl ListMenuGetYCoordForPrintingArrowCursor
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
bl sub_81C5AB8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C5A98
thumb_func_start sub_81C5AB8
sub_81C5AB8: @ 81C5AB8
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r2, r1, 24
cmp r2, 0xFF
bne _081C5AF4
movs r0, 0x1
movs r1, 0
bl GetMenuCursorDimensionByFont
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
movs r1, 0x1
bl GetMenuCursorDimensionByFont
lsls r0, 24
lsrs r0, 24
str r4, [sp]
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
adds r3, r5, 0
bl FillWindowPixelRect
b _081C5B08
_081C5AF4:
ldr r1, =gText_SelectorArrow2
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
str r0, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0
adds r3, r5, 0
bl sub_81C6C3C
_081C5B08:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5AB8
thumb_func_start sub_81C5B14
sub_81C5B14: @ 81C5B14
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C5B4C
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5B14
thumb_func_start sub_81C5B4C
sub_81C5B4C: @ 81C5B4C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r2, r0, r1
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C5BBC
ldrb r0, [r2]
ldr r4, =gUnknown_0203CF38
subs r2, r4, 0x2
adds r1, r4, 0
bl sub_81AE6C8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0
beq _081C5B94
bl SetMainCallback2
b _081C5B9E
.pool
_081C5B94:
adds r0, r4, 0
subs r0, 0x8
ldr r0, [r0]
bl SetMainCallback2
_081C5B9E:
bl sub_81C56CC
bl ResetSpriteData
bl FreeAllSpritePalettes
bl FreeAllWindowBuffers
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
bl Free
adds r0, r5, 0
bl DestroyTask
_081C5BBC:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5B4C
thumb_func_start sub_81C5BC8
sub_81C5BC8: @ 81C5BC8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r7, r0, r1
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C5BEA
b _081C5D16
_081C5BEA:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C5BF8
b _081C5D16
_081C5BF8:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
beq _081C5C5C
ldr r4, =gUnknown_0203CF30
ldrb r0, [r4, 0x4]
cmp r0, 0x2
bne _081C5C12
b _081C5D16
_081C5C12:
ldrb r0, [r7]
adds r1, r4, 0
adds r1, 0x8
adds r2, r4, 0x6
bl get_coro_args_x18_x1A
ldrh r1, [r4, 0x8]
ldrh r0, [r4, 0x6]
adds r1, r0
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r2, =0x00000821
adds r0, r2
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
beq _081C5D16
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81C67CC
b _081C5D16
.pool
_081C5C5C:
ldrb r0, [r7]
bl ListMenuHandleInput
adds r6, r0, 0
ldrb r0, [r7]
ldr r1, =gUnknown_0203CF38
mov r8, r1
mov r2, r8
subs r2, 0x2
bl get_coro_args_x18_x1A
movs r0, 0x2
negs r0, r0
cmp r6, r0
beq _081C5C88
adds r0, 0x1
cmp r6, r0
bne _081C5CA0
b _081C5D16
.pool
_081C5C88:
movs r0, 0x5
bl PlaySE
ldr r0, =gScriptItemId
strh r4, [r0]
adds r0, r5, 0
bl sub_81C5B14
b _081C5D16
.pool
_081C5CA0:
movs r0, 0x5
bl PlaySE
ldr r2, =gScriptItemId
mov r12, r2
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
lsls r3, r6, 1
ldr r0, =0x00000ca9
adds r4, r2, r0
ldrb r1, [r4]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r3, r0
ldr r1, =0x00000e2c
adds r0, r2, r1
adds r0, r3
ldrh r0, [r0]
mov r1, r12
strh r0, [r1]
strh r6, [r7, 0x2]
ldrb r1, [r4]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r0, r6, r0
ldr r1, =0x00000e54
adds r2, r1
adds r2, r0
ldrb r0, [r2]
strh r0, [r7, 0x4]
mov r0, r8
subs r0, 0x8
ldrb r0, [r0, 0x4]
cmp r0, 0x2
bne _081C5D10
adds r0, r5, 0
bl sub_81C674C
b _081C5D16
.pool
_081C5D10:
adds r0, r5, 0
bl sub_81C5D20
_081C5D16:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C5BC8
thumb_func_start sub_81C5D20
sub_81C5D20: @ 81C5D20
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
bl sub_81C56CC
ldrb r0, [r4]
movs r1, 0x1
bl sub_81C5A98
ldr r0, =gUnknown_0203CF30
ldrb r4, [r0, 0x4]
cmp r4, 0x1
beq _081C5D74
cmp r4, 0x3
beq _081C5DC4
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000818
adds r2, r1, r0
ldr r0, =gUnknown_0861F308
str r0, [r2]
movs r0, 0x82
lsls r0, 4
adds r1, r0
movs r0, 0x4
b _081C5DD8
.pool
_081C5D74:
ldr r0, =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetBattleUsage
lsls r0, 24
cmp r0, 0
beq _081C5DA0
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000818
adds r2, r1, r0
ldr r0, =gUnknown_0861F30E
b _081C5DCE
.pool
_081C5DA0:
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000818
adds r2, r0, r1
ldr r1, =gUnknown_0861F310
str r1, [r2]
movs r1, 0x82
lsls r1, 4
adds r0, r1
strb r4, [r0]
b _081C5DDA
.pool
_081C5DC4:
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000818
adds r2, r1, r0
ldr r0, =gUnknown_0861F30C
_081C5DCE:
str r0, [r2]
movs r0, 0x82
lsls r0, 4
adds r1, r0
movs r0, 0x2
_081C5DD8:
strb r0, [r1]
_081C5DDA:
ldr r0, =gScriptItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r4, =gStringVar4
ldr r1, =gText_Var1IsSelected
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r1, 0x82
lsls r1, 4
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C5E3C
movs r0, 0
b _081C5E42
.pool
_081C5E3C:
cmp r0, 0x2
bne _081C5E50
movs r0, 0x1
_081C5E42:
bl sub_81C6D24
lsls r0, 24
lsrs r0, 24
bl sub_81C5EAC
b _081C5E62
_081C5E50:
movs r0, 0x2
bl sub_81C6D24
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
movs r2, 0x2
bl sub_81C5F08
_081C5E62:
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r1, 0x82
lsls r1, 4
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x4
bne _081C5E8C
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_81C5FE4
b _081C5E98
.pool
_081C5E8C:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_81C5F68
_081C5E98:
str r0, [r1]
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5D20
thumb_func_start sub_81C5EAC
sub_81C5EAC: @ 81C5EAC
push {r4-r6,lr}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
ldr r6, =gUnknown_0203CF2C
ldr r1, [r6]
movs r5, 0x82
lsls r5, 4
adds r0, r1, r5
ldrb r0, [r0]
str r0, [sp, 0x8]
ldr r0, =gUnknown_0861F2D8
str r0, [sp, 0xC]
ldr r0, =0x00000818
adds r1, r0
ldr r0, [r1]
str r0, [sp, 0x10]
adds r0, r4, 0
movs r1, 0x7
movs r2, 0x8
movs r3, 0x1
bl AddItemMenuActionTextPrinters
ldr r0, [r6]
adds r0, r5
ldrb r1, [r0]
adds r0, r4, 0
movs r2, 0
bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5EAC
thumb_func_start sub_81C5F08
sub_81C5F08: @ 81C5F08
push {r4-r6,lr}
sub sp, 0x14
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
movs r0, 0x38
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
ldr r0, =gUnknown_0861F2D8
str r0, [sp, 0xC]
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000818
adds r0, r1
ldr r0, [r0]
str r0, [sp, 0x10]
adds r0, r4, 0
movs r1, 0x7
movs r2, 0x8
movs r3, 0x1
bl sub_8198DBC
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0x38
adds r2, r5, 0
adds r3, r6, 0
bl sub_8199944
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5F08
thumb_func_start sub_81C5F68
sub_81C5F68: @ 81C5F68
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5FD0
bl ProcessMenuInputNoWrapAround
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _081C5FD0
adds r0, 0x1
cmp r4, r0
bne _081C5FA8
movs r0, 0x5
bl PlaySE
ldr r0, =gUnknown_0861F2D8
ldr r1, [r0, 0x1C]
adds r0, r5, 0
bl _call_via_r1
b _081C5FD0
.pool
_081C5FA8:
movs r0, 0x5
bl PlaySE
ldr r1, =gUnknown_0861F2D8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r2, =0x00000818
adds r0, r2
ldr r0, [r0]
adds r0, r4
ldrb r0, [r0]
lsls r0, 3
adds r1, 0x4
adds r0, r1
ldr r1, [r0]
cmp r1, 0
beq _081C5FD0
adds r0, r6, 0
bl _call_via_r1
_081C5FD0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5F68
thumb_func_start sub_81C5FE4
sub_81C5FE4: @ 81C5FE4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C5FF8
b _081C6160
_081C5FF8:
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
ldr r5, =gMain
ldrh r1, [r5, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081C6040
lsls r0, r4, 24
asrs r0, 24
cmp r0, 0
bgt _081C6016
b _081C6160
_081C6016:
subs r0, 0x2
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
bne _081C6028
b _081C6160
_081C6028:
movs r0, 0x5
bl PlaySE
movs r1, 0x1
negs r1, r1
movs r0, 0
bl sub_8199134
b _081C6160
.pool
_081C6040:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C6084
lsls r0, r4, 24
asrs r1, r0, 24
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r2, 0x82
lsls r2, 4
adds r0, r2
ldrb r0, [r0]
subs r0, 0x2
cmp r1, r0
blt _081C6060
b _081C6160
_081C6060:
adds r0, r1, 0x2
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
movs r0, 0
movs r1, 0x1
bl sub_8199134
b _081C6160
.pool
_081C6084:
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _081C6098
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C60C0
_081C6098:
lsls r0, r4, 24
asrs r1, r0, 24
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C6160
subs r0, r1, 0x1
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
movs r0, 0x1
negs r0, r0
b _081C60FA
_081C60C0:
ldrh r1, [r5, 0x2E]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _081C60D6
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _081C6102
_081C60D6:
lsls r0, r4, 24
asrs r1, r0, 24
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _081C6160
adds r0, r1, 0x1
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
movs r0, 0x1
_081C60FA:
movs r1, 0
bl sub_8199134
b _081C6160
_081C6102:
ldrh r1, [r5, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C6148
movs r0, 0x5
bl PlaySE
ldr r2, =gUnknown_0861F2D8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
lsls r1, r4, 24
asrs r1, 24
ldr r3, =0x00000818
adds r0, r3
ldr r0, [r0]
adds r0, r1
ldrb r0, [r0]
lsls r0, 3
adds r2, 0x4
adds r0, r2
ldr r1, [r0]
cmp r1, 0
beq _081C6160
adds r0, r6, 0
bl _call_via_r1
b _081C6160
.pool
_081C6148:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
ldr r0, =gUnknown_0861F2D8
ldr r1, [r0, 0x1C]
adds r0, r6, 0
bl _call_via_r1
_081C6160:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5FE4
thumb_func_start sub_81C616C
sub_81C616C: @ 81C616C
push {lr}
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
blt _081C61A0
ldr r0, =gUnknown_0203CF2C
ldr r2, [r0]
movs r3, 0x82
lsls r3, 4
adds r0, r2, r3
ldrb r0, [r0]
cmp r1, r0
bgt _081C61A0
ldr r3, =0x00000818
adds r0, r2, r3
ldr r0, [r0]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x5
beq _081C61A0
movs r0, 0x1
b _081C61A2
.pool
_081C61A0:
movs r0, 0
_081C61A2:
pop {r1}
bx r1
thumb_func_end sub_81C616C
thumb_func_start sub_81C61A8
sub_81C61A8: @ 81C61A8
push {lr}
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r1, 0x82
lsls r1, 4
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C61C8
movs r0, 0
bl sub_81C6D6C
b _081C61DA
.pool
_081C61C8:
cmp r0, 0x2
bne _081C61D4
movs r0, 0x1
bl sub_81C6D6C
b _081C61DA
_081C61D4:
movs r0, 0x2
bl sub_81C6D6C
_081C61DA:
pop {r0}
bx r0
thumb_func_end sub_81C61A8
thumb_func_start sub_81C61E0
sub_81C61E0: @ 81C61E0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gScriptItemId
ldrh r0, [r4]
bl ItemId_GetPocket
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
beq _081C620C
cmp r0, 0x2
beq _081C620C
cmp r0, 0x3
beq _081C620C
ldrh r0, [r4]
bl itemid_is_mail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C6228
_081C620C:
bl sub_81C61A8
ldr r1, =gText_DadsAdvice
ldr r2, =sub_81C6714
adds r0, r5, 0
bl DisplayItemMessageInBattlePyramid
b _081C6252
.pool
_081C6228:
ldrh r0, [r4]
bl ItemId_GetFieldFunc
cmp r0, 0
beq _081C6252
bl sub_81C61A8
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldrh r0, [r4]
bl ItemId_GetFieldFunc
adds r1, r0, 0
adds r0, r5, 0
bl _call_via_r1
_081C6252:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C61E0
thumb_func_start sub_81C6258
sub_81C6258: @ 81C6258
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
bl sub_81C61A8
movs r1, 0x2
ldrsh r0, [r4, r1]
bl sub_81C55D8
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
ldrb r0, [r4]
movs r1, 0
bl sub_81C5A98
adds r0, r5, 0
bl sub_81C629C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6258
thumb_func_start sub_81C629C
sub_81C629C: @ 81C629C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_81C5674
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C5BC8
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C629C
thumb_func_start sub_81C62C4
sub_81C62C4: @ 81C62C4
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r6, r0, 3
ldr r7, =gTasks + 0x8
adds r4, r6, r7
bl sub_81C61A8
movs r0, 0x1
strh r0, [r4, 0x10]
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _081C62F4
adds r0, r5, 0
bl sub_81C6350
b _081C6334
.pool
_081C62F4:
ldr r0, =gScriptItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r4, =gStringVar4
ldr r1, =gText_TossHowManyVar1s
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
bl sub_81C6404
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, =sub_81C64B4
str r1, [r0]
_081C6334:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C62C4
thumb_func_start sub_81C6350
sub_81C6350: @ 81C6350
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
ldr r0, =gScriptItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r0, =gStringVar2
movs r2, 0x10
ldrsh r1, [r4, r2]
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_ConfirmTossItems
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
ldr r1, =gUnknown_0861F314
adds r0, r5, 0
bl sub_81C6DAC
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6350
thumb_func_start sub_81C63D0
sub_81C63D0: @ 81C63D0
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
movs r1, 0x2
ldrsh r0, [r4, r1]
bl sub_81C55D8
ldrb r0, [r4]
movs r1, 0
bl sub_81C5A98
adds r0, r5, 0
bl sub_81C629C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C63D0
thumb_func_start sub_81C6404
sub_81C6404: @ 81C6404
push {r4,lr}
sub sp, 0xC
ldr r0, =gStringVar1
movs r1, 0x1
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_xVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x3
bl sub_81C6CEC
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x28
bl GetStringCenterAlignXOffset
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x1
adds r2, r4, 0
bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6404
thumb_func_start sub_81C645C
sub_81C645C: @ 81C645C
push {r4,lr}
sub sp, 0xC
adds r1, r0, 0
ldr r0, =gStringVar1
lsls r1, 16
asrs r1, 16
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_xVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x28
bl GetStringCenterAlignXOffset
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x1
adds r2, r4, 0
bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C645C
thumb_func_start sub_81C64B4
sub_81C64B4: @ 81C64B4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C64E8
movs r1, 0x10
ldrsh r0, [r4, r1]
bl sub_81C645C
b _081C6544
.pool
_081C64E8:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C651C
movs r0, 0x5
bl PlaySE
movs r0, 0x3
movs r1, 0
bl sub_8198070
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
adds r0, r5, 0
bl sub_81C6350
b _081C6544
.pool
_081C651C:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C6544
movs r0, 0x5
bl PlaySE
movs r0, 0x3
movs r1, 0
bl sub_8198070
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
adds r0, r6, 0
bl sub_81C63D0
_081C6544:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C64B4
thumb_func_start sub_81C654C
sub_81C654C: @ 81C654C
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r5, =gTasks + 0x8
adds r6, r4, r5
ldr r0, =gScriptItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r0, =gStringVar2
movs r2, 0x10
ldrsh r1, [r6, r2]
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r6, =gStringVar4
ldr r1, =gText_ThrewAwayVar2Var1s
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r6, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
subs r5, 0x8
adds r4, r5
ldr r0, =sub_81C65CC
str r0, [r4]
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C654C
thumb_func_start sub_81C65CC
sub_81C65CC: @ 81C65CC
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldr r6, =gUnknown_0203CF38
subs r7, r6, 0x2
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _081C662E
movs r0, 0x5
bl PlaySE
ldr r0, =gScriptItemId
ldrh r0, [r0]
ldrh r1, [r4, 0x10]
bl RemovePyramidBagItem
ldrb r0, [r4]
adds r1, r6, 0
adds r2, r7, 0
bl sub_81AE6C8
bl sub_81C5924
bl sub_81C59BC
bl sub_81C5314
ldr r0, =gUnknown_03006310
ldrh r1, [r6]
ldrh r2, [r7]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r5, 0
bl sub_81C629C
_081C662E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C65CC
thumb_func_start sub_81C6648
sub_81C6648: @ 81C6648
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
bl sub_81C61A8
ldr r5, =gScriptItemId
ldrh r0, [r5]
bl itemid_is_mail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C667C
ldr r1, =gText_CantWriteMail
ldr r2, =sub_81C66EC
adds r0, r4, 0
bl DisplayItemMessageInBattlePyramid
b _081C66A6
.pool
_081C667C:
ldrh r0, [r5]
bl itemid_is_unique
lsls r0, 24
cmp r0, 0
bne _081C66A0
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =sub_81B7F60
str r0, [r1]
adds r0, r4, 0
bl sub_81C5B14
b _081C66A6
.pool
_081C66A0:
adds r0, r6, 0
bl sub_81C66AC
_081C66A6:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C6648
thumb_func_start sub_81C66AC
sub_81C66AC: @ 81C66AC
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gScriptItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r5, =gStringVar4
ldr r1, =gText_Var1CantBeHeld
adds r0, r5, 0
bl StringExpandPlaceholders
ldr r2, =sub_81C66EC
adds r0, r4, 0
adds r1, r5, 0
bl DisplayItemMessageInBattlePyramid
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C66AC
thumb_func_start sub_81C66EC
sub_81C66EC: @ 81C66EC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C670A
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81C6714
_081C670A:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C66EC
thumb_func_start sub_81C6714
sub_81C6714: @ 81C6714
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
bl sub_81C6E1C
movs r1, 0x2
ldrsh r0, [r4, r1]
bl sub_81C55D8
ldrb r0, [r4]
movs r1, 0
bl sub_81C5A98
adds r0, r5, 0
bl sub_81C629C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6714
thumb_func_start sub_81C674C
sub_81C674C: @ 81C674C
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
ldr r5, =gScriptItemId
ldrh r0, [r5]
bl itemid_80BF6D8_mail_related
lsls r0, 24
cmp r0, 0
bne _081C677C
ldr r1, =gText_CantWriteMail
ldr r2, =sub_81C66EC
adds r0, r4, 0
bl DisplayItemMessageInBattlePyramid
b _081C6796
.pool
_081C677C:
ldrh r0, [r5]
bl itemid_is_unique
lsls r0, 24
cmp r0, 0
bne _081C6790
adds r0, r4, 0
bl sub_81C5B14
b _081C6796
_081C6790:
adds r0, r6, 0
bl sub_81C66AC
_081C6796:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C674C
thumb_func_start sub_81C679C
sub_81C679C: @ 81C679C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gScriptItemId
ldrh r0, [r4]
bl ItemId_GetBattleFunc
cmp r0, 0
beq _081C67C0
bl sub_81C61A8
ldrh r0, [r4]
bl ItemId_GetBattleFunc
adds r1, r0, 0
adds r0, r5, 0
bl _call_via_r1
_081C67C0:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C679C
thumb_func_start sub_81C67CC
sub_81C67CC: @ 81C67CC
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks + 0x8
mov r9, r0
adds r5, r4, r0
ldr r0, =gUnknown_0203CF30
ldrh r1, [r0, 0x6]
ldrh r0, [r0, 0x8]
adds r1, r0
strh r1, [r5, 0x2]
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r2, =0x00000814
adds r0, r2
movs r2, 0
mov r8, r2
strb r1, [r0]
ldrb r0, [r5]
movs r1, 0x10
movs r2, 0x1
bl sub_81AF15C
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
movs r0, 0x2
ldrsh r2, [r5, r0]
lsls r2, 1
ldr r1, =0x00000ca9
adds r0, r3, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r0, =0x00000e2c
adds r3, r0
adds r3, r2
ldrh r0, [r3]
ldr r1, =gStringVar1
bl CopyItemName
ldr r6, =gStringVar4
ldr r1, =gText_MoveVar1Where
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
mov r1, r8
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r6, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
ldrb r0, [r5]
movs r1, 0x1
bl sub_81C5A98
ldrb r0, [r5, 0x2]
bl sub_81C704C
movs r2, 0x8
negs r2, r2
add r9, r2
add r4, r9
ldr r0, =sub_81C68B0
str r0, [r4]
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C67CC
thumb_func_start sub_81C68B0
sub_81C68B0: @ 81C68B0
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C695C
ldr r7, =gMain
ldrh r1, [r7, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _081C68F8
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
ldr r1, =gUnknown_0203CF38
subs r2, r1, 0x2
bl get_coro_args_x18_x1A
b _081C6940
.pool
_081C68F8:
ldrb r0, [r4]
bl ListMenuHandleInput
adds r6, r0, 0
ldrb r0, [r4]
ldr r4, =gUnknown_0203CF38
subs r2, r4, 0x2
adds r1, r4, 0
bl get_coro_args_x18_x1A
movs r0, 0
bl sub_81C7028
subs r4, 0x8
ldrb r0, [r4, 0x6]
bl sub_81C704C
movs r0, 0x2
negs r0, r0
cmp r6, r0
beq _081C6930
adds r0, 0x1
cmp r6, r0
bne _081C6950
b _081C695C
.pool
_081C6930:
movs r0, 0x5
bl PlaySE
ldrh r1, [r7, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C6948
_081C6940:
adds r0, r5, 0
bl sub_81C6964
b _081C695C
_081C6948:
adds r0, r5, 0
bl sub_81C6A14
b _081C695C
_081C6950:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81C6964
_081C695C:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C68B0
thumb_func_start sub_81C6964
sub_81C6964: @ 81C6964
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
ldr r7, =gUnknown_0203CF38
subs r0, r7, 0x2
mov r8, r0
ldrh r0, [r0]
ldrh r1, [r7]
adds r0, r1
lsls r0, 16
lsrs r4, r0, 16
movs r3, 0x2
ldrsh r1, [r5, r3]
cmp r1, r4
beq _081C6996
subs r0, r4, 0x1
cmp r1, r0
bne _081C69A8
_081C6996:
adds r0, r6, 0
bl sub_81C6A14
b _081C69FC
.pool
_081C69A8:
ldrb r0, [r5, 0x2]
lsls r1, r4, 24
lsrs r1, 24
bl sub_81C57A8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000814
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
movs r0, 0x1
bl sub_81C7028
ldrb r0, [r5]
adds r1, r7, 0
mov r2, r8
bl sub_81AE6C8
movs r3, 0x2
ldrsh r0, [r5, r3]
cmp r0, r4
bge _081C69E0
adds r1, r7, 0
subs r1, 0x8
ldrh r0, [r1, 0x6]
subs r0, 0x1
strh r0, [r1, 0x6]
_081C69E0:
bl sub_81C5314
ldr r0, =gUnknown_03006310
ldrh r1, [r7]
mov r3, r8
ldrh r2, [r3]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r5]
adds r0, r6, 0
bl sub_81C629C
_081C69FC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6964
thumb_func_start sub_81C6A14
sub_81C6A14: @ 81C6A14
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldr r5, =gUnknown_0203CF38
subs r7, r5, 0x2
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000814
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
movs r0, 0x1
bl sub_81C7028
ldrb r0, [r4]
adds r1, r5, 0
adds r2, r7, 0
bl sub_81AE6C8
movs r0, 0x2
ldrsh r2, [r4, r0]
ldrh r0, [r5]
ldrh r1, [r7]
adds r0, r1
cmp r2, r0
bge _081C6A5E
adds r1, r5, 0
subs r1, 0x8
ldrh r0, [r1, 0x6]
subs r0, 0x1
strh r0, [r1, 0x6]
_081C6A5E:
bl sub_81C5314
ldr r0, =gUnknown_03006310
ldrh r1, [r5]
ldrh r2, [r7]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
adds r0, r6, 0
bl sub_81C629C
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6A14
thumb_func_start sub_81C6A94
sub_81C6A94: @ 81C6A94
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
ldr r0, =gPlayerParty
mov r9, r0
movs r0, 0x14
bl Alloc
adds r7, r0, 0
movs r0, 0xA
bl Alloc
adds r5, r0, 0
ldr r1, =gSaveBlock2Ptr
mov r8, r1
ldr r2, [r1]
ldr r4, =0x00000ca9
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, r2
ldr r0, =0x00000e2c
adds r1, r0
adds r0, r7, 0
movs r2, 0x14
bl memcpy
mov r1, r8
ldr r2, [r1]
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
lsls r1, r0, 2
adds r1, r0
lsls r1, 1
adds r1, r2
ldr r0, =0x00000e54
adds r1, r0
adds r0, r5, 0
movs r2, 0xA
bl memcpy
movs r6, 0
_081C6AF8:
movs r0, 0x64
muls r0, r6
add r0, r9
movs r1, 0xC
bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r1, sp
strh r0, [r1]
cmp r0, 0
beq _081C6B88
movs r1, 0x1
bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081C6B88
mov r1, r8
ldr r2, [r1]
adds r0, r2, r4
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x00000e2c
adds r0, r1
adds r1, r7, 0
movs r2, 0x14
bl memcpy
mov r0, r8
ldr r2, [r0]
adds r0, r2, r4
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r0, r2
ldr r1, =0x00000e54
adds r0, r1
adds r1, r5, 0
movs r2, 0xA
bl memcpy
adds r0, r7, 0
bl Free
adds r0, r5, 0
bl Free
ldr r1, =gScriptResult
movs r0, 0x1
strh r0, [r1]
b _081C6BC6
.pool
_081C6B88:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x2
bls _081C6AF8
movs r1, 0
mov r0, sp
strh r1, [r0]
movs r6, 0
movs r4, 0x64
_081C6B9C:
adds r0, r6, 0
muls r0, r4
add r0, r9
movs r1, 0xC
mov r2, sp
bl SetMonData
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x2
bls _081C6B9C
ldr r1, =gScriptResult
movs r0, 0
strh r0, [r1]
adds r0, r7, 0
bl Free
adds r0, r5, 0
bl Free
_081C6BC6:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6A94
thumb_func_start sub_81C6BD8
sub_81C6BD8: @ 81C6BD8
push {r4,lr}
ldr r0, =gUnknown_0861F328
bl InitWindows
bl DeactivateAllTextPrinters
movs r0, 0
movs r1, 0x1
movs r2, 0xE0
bl sub_809882C
movs r0, 0
movs r1, 0xA
movs r2, 0xD0
bl copy_textbox_border_tile_patterns_to_vram
ldr r0, =gUnknown_0860F074
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
movs r4, 0
_081C6C04:
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _081C6C04
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6BD8
thumb_func_start sub_81C6C3C
sub_81C6C3C: @ 81C6C3C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x14
ldr r4, [sp, 0x28]
ldr r6, [sp, 0x2C]
ldr r5, [sp, 0x30]
mov r8, r5
ldr r5, [sp, 0x34]
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, =gUnknown_0861F31C
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r1, [sp, 0x10]
movs r1, 0x1
bl AddTextPrinterParametrized2
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6C3C
thumb_func_start sub_81C6C94
sub_81C6C94: @ 81C6C94
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x14
ldr r4, [sp, 0x28]
ldr r6, [sp, 0x2C]
ldr r5, [sp, 0x30]
mov r8, r5
ldr r5, [sp, 0x34]
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, =gUnknown_0861F31C
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r1, [sp, 0x10]
movs r1, 0x7
bl AddTextPrinterParametrized2
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6C94
thumb_func_start sub_81C6CEC
sub_81C6CEC: @ 81C6CEC
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
pop {r0}
bx r0
thumb_func_end sub_81C6CEC
thumb_func_start sub_81C6D08
sub_81C6D08: @ 81C6D08
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF2C
ldr r1, [r1]
ldr r2, =0x0000080f
adds r1, r2
adds r1, r0
ldrb r0, [r1]
bx lr
.pool
thumb_func_end sub_81C6D08
thumb_func_start sub_81C6D24
sub_81C6D24: @ 81C6D24
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gUnknown_0203CF2C
ldr r3, =0x0000080f
adds r1, r2, r3
ldr r0, [r0]
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0xFF
bne _081C6D58
lsls r0, r2, 3
ldr r1, =gUnknown_0861F350
adds r0, r1
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
_081C6D58:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C6D24
thumb_func_start sub_81C6D6C
sub_81C6D6C: @ 81C6D6C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF2C
ldr r2, =0x0000080f
adds r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, 0xFF
beq _081C6D9E
movs r1, 0
bl sub_8198070
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0xFF
strb r0, [r4]
_081C6D9E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6D6C
thumb_func_start sub_81C6DAC
sub_81C6DAC: @ 81C6DAC
push {lr}
sub sp, 0x10
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0861F370
movs r2, 0x2
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0xE
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r2, 0x1
movs r3, 0
bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6DAC
thumb_func_start DisplayItemMessageInBattlePyramid
@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
DisplayItemMessageInBattlePyramid: @ 81C6DD8
push {r4-r6,lr}
sub sp, 0x10
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
bl sav2_get_text_speed
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
str r1, [sp]
str r0, [sp, 0x4]
str r5, [sp, 0x8]
str r6, [sp, 0xC]
adds r0, r4, 0
movs r1, 0x2
movs r2, 0xA
movs r3, 0xD
bl DisplayMessageAndContinueTask
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end DisplayItemMessageInBattlePyramid
thumb_func_start sub_81C6E1C
sub_81C6E1C: @ 81C6E1C
push {lr}
movs r0, 0x2
movs r1, 0
bl sub_8197DF8
movs r0, 0x2
bl ClearWindowTilemap
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
pop {r0}
bx r0
thumb_func_end sub_81C6E1C
thumb_func_start sub_81C6E38
sub_81C6E38: @ 81C6E38
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_0203CF2C
ldr r2, =0x00000804
adds r1, r4, r2
ldr r0, [r0]
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0xFF
beq _081C6E80
ldr r0, =0x00001024
adds r4, r0
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
movs r0, 0xFF
strb r0, [r5]
_081C6E80:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6E38
thumb_func_start sub_81C6E98
sub_81C6E98: @ 81C6E98
push {r4,lr}
sub sp, 0x8
movs r0, 0x40
bl Alloc
adds r4, r0, 0
ldr r0, =gUnknown_08D9ADD0
adds r1, r4, 0
bl LZDecompressWram
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, =0x00000ca9
adds r0, r1
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 25
adds r0, r4, r0
str r0, [sp]
ldr r1, =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r1
ldr r1, =0x00001024
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl LoadSpritePalette
adds r0, r4, 0
bl Free
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6E98
thumb_func_start sub_81C6EF4
sub_81C6EF4: @ 81C6EF4
push {r4,lr}
ldr r0, =gUnknown_0203CF2C
ldr r4, [r0]
ldr r0, =0x00000804
adds r4, r0
ldr r0, =gUnknown_0861F3D4
movs r1, 0x44
movs r2, 0x38
movs r3, 0
bl CreateSprite
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6EF4
thumb_func_start sub_81C6F20
sub_81C6F20: @ 81C6F20
push {r4,lr}
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000804
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r4, r0, r1
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081C6F50
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r0, =sub_81C6F68
str r0, [r4, 0x1C]
_081C6F50:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6F20
thumb_func_start sub_81C6F68
sub_81C6F68: @ 81C6F68
push {r4,lr}
adds r4, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081C6F84
adds r0, r4, 0
movs r1, 0
bl StartSpriteAffineAnim
ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_081C6F84:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6F68
thumb_func_start sub_81C6F90
sub_81C6F90: @ 81C6F90
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_0203CF2C
ldr r2, =0x00000805
adds r1, r4, r2
ldr r0, [r0]
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0xFF
bne _081C6FE0
ldr r0, =0x00001025
adds r4, r0
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
adds r0, r4, 0
adds r1, r4, 0
adds r2, r6, 0
bl AddItemIconObject
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _081C6FE0
strb r2, [r5]
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x18
strh r1, [r0, 0x24]
movs r1, 0x58
strh r1, [r0, 0x26]
_081C6FE0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6F90
thumb_func_start sub_81C6FF8
sub_81C6FF8: @ 81C6FF8
push {lr}
lsls r0, 24
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r0, 24
bl sub_81C6E38
pop {r0}
bx r0
thumb_func_end sub_81C6FF8
thumb_func_start sub_81C700C
sub_81C700C: @ 81C700C
push {lr}
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000807
adds r0, r1
movs r1, 0x8
bl sub_8122344
pop {r0}
bx r0
.pool
thumb_func_end sub_81C700C
thumb_func_start sub_81C7028
sub_81C7028: @ 81C7028
push {lr}
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000807
adds r0, r1
movs r1, 0x8
bl sub_81223FC
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7028
thumb_func_start sub_81C704C
sub_81C704C: @ 81C704C
push {lr}
adds r3, r0, 0
lsls r3, 24
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000807
adds r0, r1
lsrs r3, 4
movs r1, 0x80
lsls r1, 13
adds r3, r1
lsrs r3, 16
movs r1, 0x88
movs r2, 0x78
bl sub_8122448
pop {r0}
bx r0
.pool
thumb_func_end sub_81C704C
thumb_func_start sub_81C7078
sub_81C7078: @ 81C7078
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl is_c1_link_related_active
cmp r0, 0
bne _081C7090
ldr r0, =sub_81C7170
b _081C7092
.pool
_081C7090:
ldr r0, =sub_81C71E4
_081C7092:
lsls r1, r4, 24
lsrs r1, 24
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r2, =gUnknown_0203CF3C
ldrb r1, [r2]
strh r1, [r0, 0xE]
ldrb r0, [r2]
adds r1, r0, 0x1
strb r1, [r2]
lsls r0, 24
lsrs r0, 8
orrs r0, r4
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C7078
thumb_func_start sub_81C70D8
sub_81C70D8: @ 81C70D8
push {lr}
ldr r1, =0x0000ffff
ands r1, r0
lsrs r3, r0, 16
ldr r2, =gTasks
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r1, r0, r2
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _081C711C
ldr r2, [r1]
ldr r0, =sub_81C7170
cmp r2, r0
beq _081C70FE
ldr r0, =sub_81C71E4
cmp r2, r0
bne _081C711C
_081C70FE:
movs r2, 0xE
ldrsh r0, [r1, r2]
cmp r0, r3
bne _081C711C
movs r0, 0x1
b _081C711E
.pool
_081C711C:
movs r0, 0
_081C711E:
pop {r1}
bx r1
thumb_func_end sub_81C70D8
thumb_func_start sub_81C7124
sub_81C7124: @ 81C7124
push {r4-r6,lr}
adds r6, r0, 0
movs r5, 0
ldr r4, =gTasks
_081C712C:
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _081C7160
ldr r1, [r4]
ldr r0, =sub_81C7170
cmp r1, r0
beq _081C7140
ldr r0, =sub_81C71E4
cmp r1, r0
bne _081C7160
_081C7140:
lsls r0, r5, 24
lsrs r0, 24
movs r1, 0x1
bl GetWordTaskArg
cmp r0, r6
bne _081C7160
movs r0, 0x1
b _081C716A
.pool
_081C7160:
adds r4, 0x28
adds r5, 0x1
cmp r5, 0xF
ble _081C712C
movs r0, 0
_081C716A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C7124
thumb_func_start sub_81C7170
sub_81C7170: @ 81C7170
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0x1
bl GetWordTaskArg
adds r6, r0, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r7, 0
_081C718C:
movs r1, 0
ldrsh r0, [r4, r1]
bl _call_via_r6
cmp r0, 0x4
bhi _081C71D6
lsls r0, 2
ldr r1, =_081C71AC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C71AC:
.4byte _081C71C6
.4byte _081C71C0
.4byte _081C71DE
.4byte _081C71DA
.4byte _081C71CE
_081C71C0:
ldrh r0, [r4]
adds r0, 0x1
b _081C71D8
_081C71C6:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _081C71DE
_081C71CE:
adds r0, r5, 0
bl DestroyTask
b _081C71DE
_081C71D6:
subs r0, 0x5
_081C71D8:
strh r0, [r4]
_081C71DA:
cmp r7, 0
beq _081C718C
_081C71DE:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C7170
thumb_func_start sub_81C71E4
sub_81C71E4: @ 81C71E4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
bl sub_8087598
cmp r0, 0
bne _081C724A
adds r0, r5, 0
movs r1, 0x1
bl GetWordTaskArg
adds r2, r0, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
bl _call_via_r2
cmp r0, 0x4
bhi _081C7246
lsls r0, 2
ldr r1, =_081C7224
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C7224:
.4byte _081C7238
.4byte _081C7238
.4byte _081C724A
.4byte _081C724A
.4byte _081C723E
_081C7238:
ldrh r0, [r4]
adds r0, 0x1
b _081C7248
_081C723E:
adds r0, r5, 0
bl DestroyTask
b _081C724A
_081C7246:
subs r0, 0x5
_081C7248:
strh r0, [r4]
_081C724A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C71E4
.align 2, 0 @ Don't pad with nop.