.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, =gUnknown_085EA3CF 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, =gUnknown_085EA3DC str r5, [sp] str r6, [sp, 0x4] movs r0, 0x1 movs r2, 0x2 movs r3, 0x1 bl sub_81C25A4 ldr r1, =gUnknown_085EA3EB str r5, [sp] str r6, [sp, 0x4] movs r0, 0x2 movs r2, 0x2 movs r3, 0x1 bl sub_81C25A4 ldr r1, =gUnknown_085EA3F8 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, =gUnknown_085EA406 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, =gUnknown_085EA3C8 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, =gUnknown_085EA369 str r5, [sp] str r6, [sp, 0x4] movs r0, 0x8 movs r2, 0 movs r3, 0x1 bl sub_81C25A4 ldr r1, =gUnknown_085EA378 str r5, [sp] str r5, [sp, 0x4] movs r0, 0x9 movs r2, 0 movs r3, 0x1 bl sub_81C25A4 ldr r4, =gUnknown_085EA361 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, =gUnknown_085EA33C 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, =gUnknown_085EA343 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, =gUnknown_085EA34B 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, =gUnknown_085EA353 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, =gUnknown_085EA35B 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, =gUnknown_085EA39F str r5, [sp] str r6, [sp, 0x4] movs r0, 0xC movs r2, 0x6 movs r3, 0x1 bl sub_81C25A4 ldr r1, =gUnknown_085EA3AB str r5, [sp] str r6, [sp, 0x4] movs r0, 0xC movs r2, 0x6 movs r3, 0x11 bl sub_81C25A4 ldr r1, =gUnknown_085EA398 str r5, [sp] str r6, [sp, 0x4] movs r0, 0xD movs r2, 0x2 movs r3, 0x1 bl sub_81C25A4 ldr r1, =gUnknown_085EA37E str r5, [sp] str r6, [sp, 0x4] movs r0, 0xE movs r2, 0 movs r3, 0x1 bl sub_81C25A4 ldr r1, =gUnknown_085EA384 str r5, [sp] str r6, [sp, 0x4] movs r0, 0xE movs r2, 0 movs r3, 0x11 bl sub_81C25A4 ldr r1, =gUnknown_085EA38D str r5, [sp] str r6, [sp, 0x4] movs r0, 0xF movs r2, 0 movs r3, 0x1 bl sub_81C25A4 ldr r1, =gUnknown_085EA394 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, =gUnknown_085EA365 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, =gUnknown_085EA5DB 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, =gUnknown_085EA516 cmp r0, 0xD4 bls _081C3170 ldr r1, =gUnknown_085EA617 b _081C3170 .pool _081C3134: ldrb r0, [r4, 0x9] ldr r1, =gUnknown_085EA4EC cmp r0, 0xD4 bls _081C3170 ldr r1, =gUnknown_085EA5EB b _081C3170 .pool _081C3148: ldrb r0, [r4, 0x9] cmp r0, 0xFF bne _081C3158 ldr r1, =gUnknown_085EA56A 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, =gUnknown_085EA5A8 cmp r0, 0xD4 bls _081C3170 _081C316E: ldr r1, =gUnknown_085EA544 _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, =gUnknown_085EA3C0 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, =gUnknown_085EA365 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, =gUnknown_085EA40B b _081C346C .pool _081C3448: ldrh r0, [r1, 0x30] cmp r0, 0x5 bhi _081C3458 ldr r4, =gUnknown_085EA4A2 b _081C346C .pool _081C3458: cmp r0, 0xA bhi _081C3464 ldr r4, =gUnknown_085EA475 b _081C346C .pool _081C3464: ldr r4, =gUnknown_085EA40B cmp r0, 0x28 bhi _081C346C ldr r4, =gUnknown_085EA442 _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, =gUnknown_085EA678 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, =gUnknown_085EA6AB b _081C3502 .pool _081C34E0: ldrb r0, [r4, 0x9] cmp r0, 0xFD bne _081C3500 bl sub_81C32E0 lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_085EA702 cmp r0, 0x1 bne _081C3502 ldr r4, =gUnknown_085EA6D7 b _081C3502 .pool _081C3500: ldr r4, =gUnknown_085EA647 _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, =gUnknown_085EA3B4 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, =gUnknown_085EA4CB 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, =gUnknown_085E9210 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, =gUnknown_085E91B0 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.