.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_81B0038 sub_81B0038: @ 81B0038 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp] lsls r4, 24 lsrs r6, r4, 24 bl reset_brm ldr r0, =gUnknown_0203CEC4 mov r10, r0 movs r0, 0x8E lsls r0, 2 bl Alloc adds r5, r0, 0 mov r1, r10 str r5, [r1] cmp r5, 0 bne _081B0088 ldr r0, [sp, 0x2C] bl SetMainCallback2 b _081B0194 .pool _081B0088: ldr r3, =gUnknown_0203CEC8 movs r1, 0xF mov r4, r8 ands r1, r4 ldrb r2, [r3, 0x8] movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] ldr r0, [sp, 0x2C] str r0, [r3] movs r4, 0 strb r7, [r3, 0xB] lsls r2, r6, 2 ldrh r1, [r5, 0xA] movs r0, 0x3 ands r0, r1 orrs r0, r2 strh r0, [r5, 0xA] ldr r0, [sp, 0x28] str r0, [r5] str r4, [r5, 0x4] ldrb r1, [r5, 0x8] movs r0, 0xF negs r0, r0 ands r0, r1 strb r0, [r5, 0x8] mov r1, r10 ldr r2, [r1] ldrh r0, [r2, 0x8] movs r4, 0xFE lsls r4, 3 adds r1, r4, 0 orrs r0, r1 strh r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xFE lsls r1, 10 orrs r0, r1 str r0, [r2, 0x8] adds r6, r3, 0 mov r5, r8 cmp r5, 0x4 bne _081B00F0 ldrb r0, [r2, 0x8] movs r1, 0x1 orrs r0, r1 b _081B00F8 .pool _081B00F0: ldrb r1, [r2, 0x8] movs r0, 0x2 negs r0, r0 ands r0, r1 _081B00F8: strb r0, [r2, 0x8] mov r0, r9 cmp r0, 0xFF beq _081B0114 movs r0, 0x3 mov r1, r9 ands r0, r1 lsls r0, 4 ldrb r2, [r6, 0x8] movs r1, 0x31 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r6, 0x8] _081B0114: movs r2, 0 ldr r5, =gUnknown_0203CEC4 movs r4, 0x86 lsls r4, 2 movs r3, 0 _081B011E: ldr r0, [r5] lsls r1, r2, 1 adds r0, r4 adds r0, r1 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _081B011E movs r2, 0 ldr r4, =gUnknown_0203CEC4 movs r3, 0xFF _081B0138: ldr r0, [r4] adds r0, 0xC adds r0, r2 ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x2 bls _081B0138 ldr r4, [sp] cmp r4, 0 bne _081B015C strb r4, [r6, 0x9] b _081B017E .pool _081B015C: adds r1, r6, 0 movs r0, 0x9 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _081B017A adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 bne _081B017E _081B017A: movs r0, 0 strb r0, [r6, 0x9] _081B017E: ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] bl CalculatePlayerPartyCount ldr r0, =c2_811EBD0 bl SetMainCallback2 _081B0194: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0038 thumb_func_start sub_81B01B0 sub_81B01B0: @ 81B01B0 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_81B01B0 thumb_func_start sub_81B01CC sub_81B01CC: @ 81B01CC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81B01CC thumb_func_start c2_811EBD0 c2_811EBD0: @ 81B01E0 push {lr} _081B01E2: bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B0206 bl sub_81B020C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B0206 bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B01E2 _081B0206: pop {r0} bx r0 thumb_func_end c2_811EBD0 thumb_func_start sub_81B020C sub_81B020C: @ 81B020C push {r4,lr} sub sp, 0x4 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x16 bls _081B0222 b _081B0498 _081B0222: lsls r0, 2 ldr r1, =_081B0234 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B0234: .4byte _081B0290 .4byte _081B02AC .4byte _081B02B2 .4byte _081B02D4 .4byte _081B02DA .4byte _081B02EC .4byte _081B02FE .4byte _081B0310 .4byte _081B0338 .4byte _081B0354 .4byte _081B0368 .4byte _081B038C .4byte _081B03A0 .4byte _081B03A6 .4byte _081B03B8 .4byte _081B03BE .4byte _081B03E0 .4byte _081B0400 .4byte _081B0414 .4byte _081B0428 .4byte _081B0430 .4byte _081B044C .4byte _081B0474 _081B0290: bl SetVBlankHBlankCallbacksToNull bl ResetVramOamAndBgCntRegs bl clear_scheduled_bg_copies_to_vram ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B02AC: bl ScanlineEffect_Stop b _081B0484 _081B02B2: bl ResetPaletteFade ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B02D4: bl ResetSpriteData b _081B0484 _081B02DA: bl FreeAllSpritePalettes ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B02EC: bl sub_81221AC lsls r0, 24 cmp r0, 0 beq _081B02F8 b _081B0484 _081B02F8: bl ResetTasks b _081B0484 _081B02FE: bl sub_81B209C ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0310: bl sub_81B0550 lsls r0, 24 cmp r0, 0 bne _081B0322 bl sub_81B04BC movs r0, 0x1 b _081B04B2 _081B0322: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B0338: bl sub_81B05C8 lsls r0, 24 cmp r0, 0 bne _081B0344 b _081B04B0 _081B0344: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0354: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 26 lsrs r0, 30 bl sub_81B239C b _081B0484 .pool _081B0368: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 26 lsrs r0, 30 bl sub_81B0740 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B038C: bl sub_81B5D30 ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B03A0: bl sub_81B6040 b _081B0484 _081B03A6: bl sub_81B6160 ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B03B8: bl sub_80D2F04 b _081B0484 _081B03BE: bl party_menu_add_per_mon_objects lsls r0, 24 cmp r0, 0 bne _081B03CA b _081B04B0 _081B03CA: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B03E0: bl sub_81B0DA0 lsls r0, 24 cmp r0, 0 beq _081B04B0 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B0400: bl sub_81B0F28 ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0414: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 lsrs r0, 31 bl sub_81B2428 b _081B0484 .pool _081B0428: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _081B048C _081B0430: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] ldr r0, [r0] movs r1, 0 bl CreateTask ldr r0, [r4] ldrh r0, [r0, 0xA] lsrs r0, 2 bl display_pokemon_menu_message b _081B0484 .pool _081B044C: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0474: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _081B0484: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _081B048C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081B04B0 .pool _081B0498: ldr r0, =sub_81B01CC bl SetVBlankCallback ldr r0, =sub_81B01B0 bl SetMainCallback2 movs r0, 0x1 b _081B04B2 .pool _081B04B0: movs r0, 0 _081B04B2: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B020C thumb_func_start sub_81B04BC sub_81B04BC: @ 81B04BC push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_81B04F8 movs r1, 0 bl CreateTask ldr r0, =sub_81B01CC bl SetVBlankCallback ldr r0, =sub_81B01B0 bl SetMainCallback2 add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_81B04BC thumb_func_start sub_81B04F8 sub_81B04F8: @ 81B04F8 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 _081B051C ldr r0, =gUnknown_0203CEC8 ldr r0, [r0] bl SetMainCallback2 bl sub_81B06F4 adds r0, r4, 0 bl DestroyTask _081B051C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B04F8 thumb_func_start reset_brm reset_brm: @ 81B052C ldr r0, =gUnknown_0203CEC4 movs r1, 0 str r1, [r0] ldr r0, =gUnknown_0203CEE4 str r1, [r0] ldr r0, =gUnknown_0203CEDC str r1, [r0] ldr r0, =gUnknown_0203CEE0 str r1, [r0] bx lr .pool thumb_func_end reset_brm thumb_func_start sub_81B0550 sub_81B0550: @ 81B0550 push {r4,r5,lr} ldr r5, =gUnknown_0203CEE4 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc str r0, [r5] cmp r0, 0 beq _081B05C0 movs r1, 0 adds r2, r4, 0 bl memset movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_086156B8 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates ldr r1, [r5] movs r0, 0x1 bl SetBgTilemapBuffer bl ResetAllBgsCoordinates movs r0, 0x1 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, 0x1 b _081B05C2 .pool _081B05C0: movs r0, 0 _081B05C2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81B0550 thumb_func_start sub_81B05C8 sub_81B05C8: @ 81B05C8 push {r4,lr} sub sp, 0x4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x7 bhi _081B06B0 lsls r0, 2 ldr r1, =_081B05F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B05F0: .4byte _081B0610 .4byte _081B0638 .4byte _081B0658 .4byte _081B0684 .4byte _081B0688 .4byte _081B068C .4byte _081B0690 .4byte _081B0694 _081B0610: ldr r4, =gUnknown_0203CEE0 ldr r0, =gPartyMenuMisc_Gfx mov r1, sp bl malloc_and_decompress adds r1, r0, 0 str r1, [r4] ldr r2, [sp] lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r3, 0 bl LoadBgTiles b _081B069A .pool _081B0638: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _081B06B4 ldr r0, =gPartyMenuMisc_Tilemap ldr r1, =gUnknown_0203CEE4 ldr r1, [r1] bl LZDecompressWram b _081B069A .pool _081B0658: ldr r0, =gPartyMenuMisc_Pal movs r2, 0xB0 lsls r2, 1 movs r1, 0 bl LoadCompressedPalette ldr r0, =gPlttBufferUnfaded ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] adds r1, 0x18 movs r2, 0xB0 bl CpuSet ldr r1, [r4] b _081B069E .pool _081B0684: movs r0, 0x4 b _081B0696 _081B0688: movs r0, 0x5 b _081B0696 _081B068C: movs r0, 0x6 b _081B0696 _081B0690: movs r0, 0x7 b _081B0696 _081B0694: movs r0, 0x8 _081B0696: bl sub_81B06C0 _081B069A: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] _081B069E: movs r0, 0x86 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _081B06B4 .pool _081B06B0: movs r0, 0x1 b _081B06B6 _081B06B4: movs r0, 0 _081B06B6: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B05C8 thumb_func_start sub_81B06C0 sub_81B06C0: @ 81B06C0 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 28 ldr r5, =gPlttBufferUnfaded + 0x60 lsrs r4, 23 adds r1, r5, 0 subs r1, 0x60 adds r1, r4, r1 adds r0, r5, 0 movs r2, 0x10 bl CpuSet ldr r0, =gPlttBufferFaded adds r4, r0 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x10 bl CpuSet pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B06C0 thumb_func_start sub_81B06F4 sub_81B06F4: @ 81B06F4 push {lr} ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] cmp r0, 0 beq _081B0702 bl Free _081B0702: ldr r0, =gUnknown_0203CEE4 ldr r0, [r0] cmp r0, 0 beq _081B070E bl Free _081B070E: ldr r0, =gUnknown_0203CEE0 ldr r0, [r0] cmp r0, 0 beq _081B071A bl Free _081B071A: ldr r0, =gUnknown_0203CEDC ldr r0, [r0] cmp r0, 0 beq _081B0726 bl Free _081B0726: bl FreeAllWindowBuffers pop {r0} bx r0 .pool thumb_func_end sub_81B06F4 thumb_func_start sub_81B0740 sub_81B0740: @ 81B0740 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203CEDC movs r0, 0x60 bl Alloc str r0, [r4] movs r5, 0 lsls r0, r7, 1 adds r0, r7 lsls r0, 4 mov r8, r0 movs r6, 0xFF mov r9, r4 _081B0764: ldr r2, [r4] lsls r3, r5, 4 adds r2, r3, r2 ldr r0, =gUnknown_086156E4 mov r12, r0 str r0, [r2] lsls r0, r5, 3 ldr r1, =gUnknown_08615704 adds r0, r1 add r0, r8 str r0, [r2, 0x4] strb r5, [r2, 0x8] ldr r1, [r4] adds r1, r3, r1 ldrb r0, [r1, 0x9] orrs r0, r6 strb r0, [r1, 0x9] ldr r1, [r4] adds r1, r3, r1 ldrb r0, [r1, 0xA] orrs r0, r6 strb r0, [r1, 0xA] ldr r1, [r4] adds r1, r3, r1 ldrb r0, [r1, 0xB] orrs r0, r6 strb r0, [r1, 0xB] ldr r0, [r4] adds r3, r0 ldrb r0, [r3, 0xC] orrs r0, r6 strb r0, [r3, 0xC] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _081B0764 mov r1, r9 ldr r0, [r1] mov r1, r12 subs r1, 0x20 str r1, [r0] cmp r7, 0x3 bne _081B07CC str r1, [r0, 0x30] b _081B07D2 .pool _081B07CC: cmp r7, 0 beq _081B07D2 str r1, [r0, 0x10] _081B07D2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B0740 thumb_func_start sub_81B07E0 sub_81B07E0: @ 81B07E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B085C cmp r5, 0x2 bls _081B085C adds r0, r5, 0 bl sub_81B0CEC ldr r0, =gUnknown_02022FF8 subs r1, r5, 0x3 lsls r1, 5 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _081B0828 ldr r0, =gUnknown_0203CEDC lsls r4, r5, 4 ldr r0, [r0] adds r0, r4 movs r1, 0x40 bl sub_81B2748 b _081B0836 .pool _081B0828: ldr r0, =gUnknown_0203CEDC lsls r4, r5, 4 ldr r0, [r0] adds r0, r4 movs r1, 0x8 bl sub_81B2748 _081B0836: adds r5, r4, 0 ldr r4, =gUnknown_0203CEDC ldr r0, [r4] adds r0, r5, r0 ldrb r0, [r0, 0x8] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] adds r0, r5, r0 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram b _081B093E .pool _081B085C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 bne _081B089C ldr r4, =gUnknown_0203CEDC ldr r0, [r4] lsls r5, 4 adds r0, r5, r0 ldrb r0, [r0, 0x8] bl sub_81B2720 ldr r0, [r4] adds r0, r5 movs r1, 0x40 bl sub_81B2748 ldr r0, [r4] adds r0, r5, r0 ldrb r0, [r0, 0x8] movs r1, 0x2 bl CopyWindowToVram b _081B092C .pool _081B089C: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] movs r1, 0xF ands r1, r0 cmp r1, 0x7 bne _081B08B4 adds r0, r5, 0 bl sub_81B0B60 b _081B08F6 .pool _081B08B4: cmp r1, 0x2 bne _081B08C0 adds r0, r5, 0 bl sub_81B0B08 b _081B08F6 _081B08C0: cmp r1, 0x4 bne _081B08CC adds r0, r5, 0 bl sub_81B0A9C b _081B08F6 _081B08CC: cmp r1, 0xB bne _081B08D8 adds r0, r5, 0 bl sub_81B0B98 b _081B08F6 _081B08D8: cmp r1, 0xC bne _081B08E4 adds r0, r5, 0 bl sub_81B0BC4 b _081B08F6 _081B08E4: adds r0, r5, 0 bl sub_81B0BFC lsls r0, 24 cmp r0, 0 bne _081B08F6 adds r0, r5, 0 bl sub_81B0948 _081B08F6: ldr r2, =gUnknown_0203CEC8 ldrb r1, [r2, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B0910 adds r0, r5, 0 movs r1, 0 bl sub_81B0FCC b _081B092A .pool _081B0910: movs r0, 0x9 ldrsb r0, [r2, r0] cmp r0, r5 bne _081B0922 adds r0, r5, 0 movs r1, 0x1 bl sub_81B0FCC b _081B092A _081B0922: adds r0, r5, 0 movs r1, 0 bl sub_81B0FCC _081B092A: lsls r5, 4 _081B092C: ldr r0, =gUnknown_0203CEDC ldr r0, [r0] adds r0, r5, r0 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram _081B093E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B07E0 thumb_func_start sub_81B0948 sub_81B0948: @ 81B0948 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 adds r1, r4, 0 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x2D bl GetMonData adds r2, r0, 0 cmp r2, 0 beq _081B09A0 ldr r6, =gUnknown_0203CEDC ldr r0, [r6] lsls r5, r4, 4 adds r0, r5, r0 ldr r2, [r0] ldrb r0, [r0, 0x8] movs r1, 0 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] ldr r4, [r2] movs r1, 0 movs r2, 0 movs r3, 0 bl _call_via_r4 ldr r1, [r6] adds r1, r5 adds r0, r7, 0 movs r2, 0 bl sub_81B2A70 b _081B0A02 .pool _081B09A0: ldr r5, =gUnknown_0203CEDC ldr r0, [r5] lsls r4, 4 adds r0, r4, r0 ldr r1, [r0] ldrb r0, [r0, 0x8] str r2, [sp] str r2, [sp, 0x4] ldr r6, [r1] movs r1, 0 movs r2, 0 movs r3, 0 bl _call_via_r6 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2A70 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2AC8 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2B8C ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2CD4 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2D74 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 bl sub_81B2E28 _081B0A02: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0948 thumb_func_start sub_81B0A10 sub_81B0A10: @ 81B0A10 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r1, 0x64 adds r2, r0, 0 muls r2, r1 ldr r1, =gPlayerParty adds r6, r2, r1 ldr r7, =gUnknown_0203CEDC ldr r1, [r7] lsls r5, r0, 4 adds r1, r5, r1 ldr r2, [r1] ldrb r0, [r1, 0x8] movs r1, 0 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] ldr r4, [r2] movs r1, 0 movs r2, 0 movs r3, 0 bl _call_via_r4 ldr r1, [r7] adds r1, r5 adds r0, r6, 0 movs r2, 0 bl sub_81B2A70 adds r0, r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B0A7C ldr r1, [r7] adds r1, r5 adds r0, r6, 0 movs r2, 0 bl sub_81B2AC8 ldr r1, [r7] adds r1, r5 adds r0, r6, 0 movs r2, 0 bl sub_81B2B8C _081B0A7C: ldr r1, [r7] adds r1, r5 mov r0, r8 movs r2, 0 bl sub_81B2FA8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0A10 thumb_func_start sub_81B0A9C sub_81B0A9C: @ 81B0A9C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r6, =gUnknown_0203CEF8 bl sub_81B85AC lsls r0, 24 cmp r0, 0 bne _081B0AD6 adds r0, r5, 0 movs r1, 0x7 bl sub_81B0A10 b _081B0B02 .pool _081B0AC8: adds r1, r4, 0x2 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_81B0A10 b _081B0B02 _081B0AD6: movs r4, 0 b _081B0AEE _081B0ADA: adds r1, r6, r4 ldrb r0, [r1] cmp r0, 0 beq _081B0AE8 subs r0, 0x1 cmp r0, r5 beq _081B0AC8 _081B0AE8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B0AEE: bl sub_81B8830 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _081B0ADA adds r0, r5, 0 movs r1, 0x1 bl sub_81B0A10 _081B0B02: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B0A9C thumb_func_start sub_81B0B08 sub_81B0B08: @ 81B0B08 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_80DAE0C lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _081B0B5A lsls r0, 2 ldr r1, =_081B0B34 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B0B34: .4byte _081B0B48 .4byte _081B0B52 .4byte _081B0B52 .4byte _081B0B48 .4byte _081B0B48 _081B0B48: adds r0, r4, 0 movs r1, 0x7 bl sub_81B0A10 b _081B0B5A _081B0B52: adds r0, r4, 0 movs r1, 0x6 bl sub_81B0A10 _081B0B5A: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0B08 thumb_func_start sub_81B0B60 sub_81B0B60: @ 81B0B60 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl GetNumberOfRelearnableMoves lsls r0, 24 cmp r0, 0 bne _081B0B88 adds r0, r4, 0 movs r1, 0x9 bl sub_81B0A10 b _081B0B90 .pool _081B0B88: adds r0, r4, 0 movs r1, 0x8 bl sub_81B0A10 _081B0B90: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0B60 thumb_func_start sub_81B0B98 sub_81B0B98: @ 81B0B98 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_81B218C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B0BB6 adds r0, r4, 0 movs r1, 0x6 bl sub_81B0A10 b _081B0BBE _081B0BB6: adds r0, r4, 0 movs r1, 0x7 bl sub_81B0A10 _081B0BBE: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0B98 thumb_func_start sub_81B0BC4 sub_81B0BC4: @ 81B0BC4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B0BEC adds r0, r4, 0 movs r1, 0xB bl sub_81B0A10 b _081B0BF4 .pool _081B0BEC: adds r0, r4, 0 movs r1, 0xC bl sub_81B0A10 _081B0BF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0BC4 thumb_func_start sub_81B0BFC sub_81B0BFC: @ 81B0BFC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 ldr r0, =gSpecialVar_ItemId ldrh r4, [r0] ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0xC bne _081B0C40 ldr r1, =gSpecialVar_Result movs r0, 0 strh r0, [r1] ldr r0, =gSpecialVar_0x8005 ldrb r2, [r0] adds r0, r5, 0 movs r1, 0 bl sub_81B0C94 b _081B0C8A .pool _081B0C40: cmp r0, 0x3 bne _081B0C56 adds r0, r4, 0 bl CheckIfItemIsTMHMOrEvolutionStone lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B0C5A cmp r0, 0x2 beq _081B0C66 _081B0C56: movs r0, 0 b _081B0C8C _081B0C5A: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_81B0C94 b _081B0C8A _081B0C66: adds r0, r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B0C82 adds r0, r6, 0 movs r1, 0x3 adds r2, r4, 0 bl GetEvolutionTargetSpecies lsls r0, 16 cmp r0, 0 bne _081B0C56 _081B0C82: adds r0, r5, 0 movs r1, 0 bl sub_81B0A10 _081B0C8A: movs r0, 0x1 _081B0C8C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81B0BFC thumb_func_start sub_81B0C94 sub_81B0C94: @ 81B0C94 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 movs r0, 0x64 muls r0, r4 ldr r3, =gPlayerParty adds r0, r3 bl sub_81B22D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _081B0CD2 cmp r0, 0x2 bgt _081B0CC4 cmp r0, 0x1 beq _081B0CC8 b _081B0CDC .pool _081B0CC4: cmp r0, 0x3 bne _081B0CDC _081B0CC8: adds r0, r4, 0 movs r1, 0x9 bl sub_81B0A10 b _081B0CE4 _081B0CD2: adds r0, r4, 0 movs r1, 0xA bl sub_81B0A10 b _081B0CE4 _081B0CDC: adds r0, r4, 0 movs r1, 0x8 bl sub_81B0A10 _081B0CE4: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0C94 thumb_func_start sub_81B0CEC sub_81B0CEC: @ 81B0CEC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEDC lsls r2, r0, 4 ldr r1, [r1] adds r6, r1, r2 subs r0, 0x3 lsls r0, 24 ldr r5, =gUnknown_02022FF8 lsrs r0, 19 mov r8, r0 adds r7, r0, r5 ldrh r0, [r7] cmp r0, 0 bne _081B0D24 ldrb r0, [r6, 0x8] bl sub_81B2720 b _081B0D8E .pool _081B0D24: ldr r2, [r6] ldrb r0, [r6, 0x8] movs r1, 0 str r1, [sp] str r1, [sp, 0x4] ldr r4, [r2] movs r2, 0 movs r3, 0 bl _call_via_r4 ldr r4, =gStringVar1 adds r5, 0x4 add r5, r8 adds r0, r4, 0 adds r1, r5, 0 bl StringCopy adds r0, r4, 0 bl StringGetEnd10 adds r0, r4, 0 bl sub_81DB52C ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x4 adds r1, r4, 0 movs r2, 0 bl sub_81B2A3C ldrb r0, [r7, 0xF] adds r1, r6, 0 bl sub_81B2B40 ldrb r0, [r7, 0x1C] ldrh r1, [r7] adds r2, r5, 0 adds r3, r6, 0 bl sub_81B2BF4 ldrh r0, [r7, 0x10] adds r1, r6, 0 bl sub_81B2D3C ldrh r0, [r7, 0x12] adds r1, r6, 0 bl sub_81B2DDC ldrh r0, [r7, 0x10] ldrh r1, [r7, 0x12] adds r2, r6, 0 bl sub_81B2E64 _081B0D8E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0CEC thumb_func_start sub_81B0DA0 sub_81B0DA0: @ 81B0DA0 push {r4,r5,lr} ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] movs r4, 0x86 lsls r4, 2 adds r0, r4 ldrb r0, [r0] bl sub_81B07E0 ldr r1, [r5] adds r1, r4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 beq _081B0DCC movs r0, 0 b _081B0DCE .pool _081B0DCC: movs r0, 0x1 _081B0DCE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81B0DA0 thumb_func_start sub_81B0DD4 sub_81B0DD4: @ 81B0DD4 lsls r0, 16 ldr r1, =gUnknown_0203CEE0 lsrs r0, 11 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .pool thumb_func_end sub_81B0DD4 thumb_func_start party_menu_add_per_mon_objects_internal party_menu_add_per_mon_objects_internal: @ 81B0DE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B0E98 cmp r7, 0x2 bls _081B0E98 subs r0, r7, 0x3 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, =gUnknown_02022FF8 mov r9, r0 mov r2, r10 lsls r2, 5 mov r8, r2 mov r6, r8 add r6, r9 ldrh r0, [r6] cmp r0, 0 beq _081B0EDC mov r1, r9 adds r1, 0x18 add r1, r8 ldr r1, [r1] ldr r4, =gUnknown_0203CEDC lsls r5, r7, 4 ldr r2, [r4] adds r2, r5 movs r3, 0 str r3, [sp] bl party_menu_link_mon_icon_anim ldrh r0, [r6] ldrh r1, [r6, 0x2] ldr r2, [r4] adds r2, r5 bl party_menu_link_mon_held_item_object ldrh r0, [r6] ldr r1, [r4] adds r1, r5 bl party_menu_link_mon_pokeball_object ldrh r0, [r6, 0x10] cmp r0, 0 bne _081B0E68 movs r3, 0x7 b _081B0E78 .pool _081B0E68: mov r0, r9 adds r0, 0x14 add r0, r8 ldr r0, [r0] bl pokemon_ailments_get_primary lsls r0, 24 lsrs r3, r0, 24 _081B0E78: ldr r1, =gUnknown_02022FF8 mov r2, r10 lsls r0, r2, 5 adds r0, r1 ldrh r0, [r0] ldr r1, =gUnknown_0203CEDC ldr r2, [r1] adds r2, r5 adds r1, r3, 0 bl party_menu_link_mon_status_condition_object b _081B0EDC .pool _081B0E98: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B0EDC ldr r4, =gUnknown_0203CEDC lsls r5, r7, 4 ldr r1, [r4] adds r1, r5 adds r0, r6, 0 adds r2, r7, 0 bl party_menu_icon_anim ldr r1, [r4] adds r1, r5 adds r0, r6, 0 bl party_menu_held_item_object ldr r1, [r4] adds r1, r5 adds r0, r6, 0 bl party_menu_pokeball_object ldr r1, [r4] adds r1, r5 adds r0, r6, 0 bl party_menu_status_condition_object _081B0EDC: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end party_menu_add_per_mon_objects_internal thumb_func_start party_menu_add_per_mon_objects party_menu_add_per_mon_objects: @ 81B0EF4 push {r4,r5,lr} ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] movs r4, 0x86 lsls r4, 2 adds r0, r4 ldrb r0, [r0] bl party_menu_add_per_mon_objects_internal ldr r1, [r5] adds r1, r4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 beq _081B0F20 movs r0, 0 b _081B0F22 .pool _081B0F20: movs r0, 0x1 _081B0F22: pop {r4,r5} pop {r1} bx r1 thumb_func_end party_menu_add_per_mon_objects thumb_func_start sub_81B0F28 sub_81B0F28: @ 81B0F28 push {r4,lr} sub sp, 0xC ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B0F54 movs r0, 0x7 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r1, 0xE movs r2, 0x17 movs r3, 0x11 bl FillBgTilemapBufferRect b _081B0FBC .pool _081B0F54: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B0F94 movs r0, 0xBF movs r1, 0x88 bl sub_81B5F74 ldr r3, [r4] lsls r0, 24 lsrs r0, 24 movs r1, 0x7F ands r0, r1 lsls r0, 4 ldrh r2, [r3, 0x8] ldr r1, =0xfffff80f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x8] bl sub_81B120C movs r0, 0xBF movs r1, 0x98 bl sub_81B5F74 b _081B0F9C .pool _081B0F94: movs r0, 0xC6 movs r1, 0x94 bl sub_81B5F34 _081B0F9C: ldr r3, [r4] lsls r0, 24 lsrs r0, 24 movs r1, 0x7F ands r0, r1 lsls r0, 11 ldr r1, [r3, 0x8] ldr r2, =0xfffc07ff ands r1, r2 orrs r1, r0 str r1, [r3, 0x8] ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] movs r1, 0x1 bl sub_81B0FCC _081B0FBC: add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B0F28 thumb_func_start sub_81B0FCC sub_81B0FCC: @ 81B0FCC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 cmp r7, 0x6 beq _081B1038 cmp r7, 0x7 beq _081B1074 movs r0, 0x64 muls r0, r7 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B10E8 ldr r6, =gUnknown_0203CEDC lsls r5, r7, 4 ldr r4, [r6] adds r4, r5 adds r0, r7, 0 mov r1, r8 bl sub_81B10F8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B2748 ldr r0, [r6] adds r0, r5, r0 ldrb r0, [r0, 0x9] mov r1, r8 bl sub_81B5B6C ldr r0, [r6] adds r5, r0 ldrb r0, [r5, 0xB] mov r1, r8 bl sub_81B5F98 b _081B10E8 .pool _081B1038: mov r0, r8 cmp r0, 0 bne _081B1052 movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 bl sub_8199C30 b _081B1064 _081B1052: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 bl sub_8199C30 _081B1064: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrh r0, [r0, 0x8] lsls r0, 21 b _081B10DA .pool _081B1074: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 bne _081B10A6 mov r0, r8 cmp r0, 0 bne _081B1098 movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r1, 0x17 movs r2, 0x11 b _081B10B8 .pool _081B1098: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x17 movs r2, 0x11 b _081B10B8 _081B10A6: mov r0, r8 cmp r0, 0 bne _081B10C0 movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r1, 0x17 movs r2, 0x12 _081B10B8: movs r3, 0x7 bl sub_8199C30 b _081B10D2 _081B10C0: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x17 movs r2, 0x12 movs r3, 0x7 bl sub_8199C30 _081B10D2: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldr r0, [r0, 0x8] lsls r0, 14 _081B10DA: lsrs r0, 25 mov r1, r8 bl sub_81B5F98 movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram _081B10E8: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0FCC thumb_func_start sub_81B10F8 sub_81B10F8: @ 81B10F8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 movs r4, 0 cmp r1, 0x1 bne _081B110A movs r4, 0x1 _081B110A: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B1120 movs r0, 0x2 orrs r4, r0 _081B1120: adds r0, r5, 0 bl sub_81B118C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B1136 movs r0, 0x8 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B1136: ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0xB] adds r2, r0, 0 cmp r1, 0x9 bne _081B1148 movs r0, 0x10 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B1148: cmp r1, 0x8 bne _081B1164 movs r0, 0x9 ldrsb r0, [r2, r0] cmp r5, r0 beq _081B115C movs r0, 0xA ldrsb r0, [r2, r0] cmp r5, r0 bne _081B1164 _081B115C: movs r0, 0x4 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B1164: ldrb r0, [r2, 0xB] cmp r0, 0xA bne _081B117A movs r0, 0x9 ldrsb r0, [r2, r0] cmp r5, r0 bne _081B117A movs r0, 0x20 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B117A: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81B10F8 thumb_func_start sub_81B118C sub_81B118C: @ 81B118C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0x30 ands r0, r1 cmp r0, 0x20 bne _081B11B4 cmp r2, 0x1 beq _081B11AA cmp r2, 0x4 beq _081B11AA cmp r2, 0x5 bne _081B11B4 _081B11AA: movs r0, 0x1 b _081B11F8 .pool _081B11B4: cmp r2, 0x2 bhi _081B11F6 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _081B11F6 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B11F6 adds r0, r2, 0 bl sub_81B8F38 ldr r1, =gBattleStruct ldr r1, [r1] movs r2, 0xA8 lsls r2, 2 adds r1, r2 ldrb r1, [r1] lsls r0, 24 lsrs r0, 24 asrs r1, r0 movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _081B11F8 _081B11F6: movs r0, 0 _081B11F8: pop {r1} bx r1 .pool thumb_func_end sub_81B118C thumb_func_start sub_81B120C sub_81B120C: @ 81B120C push {r4-r6,lr} sub sp, 0xC ldr r1, =gUnknown_086157C4 movs r6, 0x7 str r6, [sp] movs r5, 0x2 str r5, [sp, 0x4] movs r4, 0x11 str r4, [sp, 0x8] movs r0, 0x1 movs r2, 0x17 movs r3, 0x10 bl CopyToBgTilemapBufferRect_ChangePalette ldr r1, =gUnknown_086157E0 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r2, 0x17 movs r3, 0x12 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B120C thumb_func_start sub_81B1250 sub_81B1250: @ 81B1250 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x49 ands r0, r1 cmp r0, 0x49 bne _081B1280 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B1280 movs r0, 0x1 b _081B1282 .pool _081B1280: movs r0, 0 _081B1282: pop {r1} bx r1 thumb_func_end sub_81B1250 thumb_func_start sub_81B1288 sub_81B1288: @ 81B1288 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 movs r0, 0x64 bl Alloc adds r5, r0, 0 adds r1, r4, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x64 bl memcpy adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r0, r5, 0 bl Free pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B1288 thumb_func_start sub_81B12C0 sub_81B12C0: @ 81B12C0 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, =c3_0811FAB4 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B12C0 thumb_func_start c3_0811FAB4 c3_0811FAB4: @ 81B12F8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B134C ldr r4, =gUnknown_0203CEC8 ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _081B131A bl sub_81B9080 _081B131A: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0 beq _081B1338 bl SetMainCallback2 b _081B133E .pool _081B1338: ldr r0, [r4] bl SetMainCallback2 _081B133E: bl ResetSpriteData bl sub_81B06F4 adds r0, r5, 0 bl DestroyTask _081B134C: pop {r4,r5} pop {r0} bx r0 thumb_func_end c3_0811FAB4 thumb_func_start GetCursorSelectionMonId GetCursorSelectionMonId: @ 81B1354 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] bx lr .pool thumb_func_end GetCursorSelectionMonId thumb_func_start sub_81B1360 sub_81B1360: @ 81B1360 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r0, 28 bx lr .pool thumb_func_end sub_81B1360 thumb_func_start sub_81B1370 sub_81B1370: @ 81B1370 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B13E0 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B13E0 bl sub_81B13EC adds r4, r0, 0 bl sub_81B1760 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 beq _081B13C0 cmp r0, 0x2 bgt _081B13B0 cmp r0, 0x1 beq _081B13B6 b _081B13E0 .pool _081B13B0: cmp r0, 0x8 beq _081B13CA b _081B13E0 _081B13B6: adds r0, r5, 0 adds r1, r4, 0 bl sub_81B140C b _081B13E0 _081B13C0: adds r0, r6, 0 adds r1, r4, 0 bl sub_81B15D0 b _081B13E0 _081B13CA: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B13E0 movs r0, 0x5 bl PlaySE bl sub_81B4F88 _081B13E0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B1370 thumb_func_start sub_81B13EC sub_81B13EC: @ 81B13EC push {lr} ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0xB] cmp r1, 0x8 beq _081B13FA cmp r1, 0xA bne _081B1404 _081B13FA: adds r0, 0xA b _081B1406 .pool _081B1404: adds r0, 0x9 _081B1406: pop {r1} bx r1 thumb_func_end sub_81B13EC thumb_func_start sub_81B140C sub_81B140C: @ 81B140C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x6 bne _081B142C ldr r0, =gUnknown_0203CEC8 ldr r1, [r0, 0x4] adds r0, r5, 0 bl _call_via_r1 b _081B159E .pool _081B142C: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] subs r0, 0x3 cmp r0, 0xA bls _081B1438 b _081B1592 _081B1438: lsls r0, 2 ldr r1, =_081B144C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B144C: .4byte _081B149C .4byte _081B1592 .4byte _081B1538 .4byte _081B1538 .4byte _081B1510 .4byte _081B1560 .4byte _081B1592 .4byte _081B1478 .4byte _081B156E .4byte _081B14E8 .4byte _081B157C _081B1478: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 bne _081B1486 b _081B159E _081B1486: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81615A8 b _081B159E .pool _081B149C: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 bne _081B14AA b _081B159E _081B14AA: ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 ldr r2, =gUnknown_0203CEC4 cmp r0, 0x1 bne _081B14BE ldr r1, [r2] ldr r0, =sub_81B9140 str r0, [r1, 0x4] _081B14BE: ldr r0, [r2] adds r0, 0xD bl sub_81B302C ldr r0, =gUnknown_03006328 ldr r1, =sub_81B6794 ldr r2, [r0] adds r0, r5, 0 bl _call_via_r2 b _081B159E .pool _081B14E8: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B7E4C b _081B159E .pool _081B1510: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B8474 b _081B159E .pool _081B1538: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B7FAC b _081B159E .pool _081B1560: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B3938 b _081B159E _081B156E: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B12C0 b _081B159E _081B157C: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E ldrb r1, [r4] adds r0, r5, 0 bl sub_81B21AC b _081B159E _081B1592: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B36FC _081B159E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B140C thumb_func_start sub_81B15A4 sub_81B15A4: @ 81B15A4 push {lr} ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _081B15C4 movs r0, 0x1 b _081B15CC .pool _081B15C4: movs r0, 0x20 bl PlaySE movs r0, 0 _081B15CC: pop {r1} bx r1 thumb_func_end sub_81B15A4 thumb_func_start sub_81B15D0 sub_81B15D0: @ 81B15D0 push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x8 beq _081B1602 cmp r0, 0x8 bgt _081B15F0 cmp r0, 0x1 beq _081B15FA b _081B161E .pool _081B15F0: cmp r0, 0xA beq _081B1602 cmp r0, 0xD beq _081B1610 b _081B161E _081B15FA: movs r0, 0x20 bl PlaySE b _081B1652 _081B1602: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B407C b _081B1652 _081B1610: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B2210 b _081B1652 _081B161E: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B1660 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B1652 bl sub_81221AC lsls r0, 24 cmp r0, 0 bne _081B1642 ldr r1, =gSpecialVar_0x8004 movs r0, 0x7 strh r0, [r1] _081B1642: ldr r0, =gUnknown_0203CEE8 movs r1, 0 strb r1, [r0] movs r0, 0x7 strb r0, [r5] adds r0, r4, 0 bl sub_81B12C0 _081B1652: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B15D0 thumb_func_start sub_81B1660 sub_81B1660: @ 81B1660 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] movs r1, 0xF ands r1, r0 cmp r1, 0x2 bne _081B1680 ldr r5, =gText_CancelParticipation b _081B168A .pool _081B1680: cmp r1, 0x4 bne _081B168A bl sub_81B88BC adds r5, r0, 0 _081B168A: cmp r5, 0 beq _081B16CC ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C ldr r4, =gStringVar4 adds r0, r4, 0 adds r1, r5, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B16D4 str r1, [r0] movs r0, 0x1 b _081B16CE .pool _081B16CC: movs r0, 0 _081B16CE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81B1660 thumb_func_start sub_81B16D4 sub_81B16D4: @ 81B16D4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B16F8 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1708 str r0, [r1] _081B16F8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B16D4 thumb_func_start sub_81B1708 sub_81B1708: @ 81B1708 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B172E cmp r1, 0 bgt _081B1728 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B174C b _081B1758 _081B1728: cmp r1, 0x1 beq _081B1752 b _081B1758 _081B172E: ldr r0, =gUnknown_0203CEE8 strb r1, [r0] ldr r1, =gUnknown_0203CEC8 movs r0, 0x7 strb r0, [r1, 0x9] bl sub_81B8558 adds r0, r4, 0 bl sub_81B12C0 b _081B1758 .pool _081B174C: movs r0, 0x5 bl PlaySE _081B1752: adds r0, r4, 0 bl sub_81B1C1C _081B1758: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B1708 thumb_func_start sub_81B1760 sub_81B1760: @ 81B1760 push {r4,lr} adds r4, r0, 0 ldr r0, =gMain ldrh r1, [r0, 0x30] adds r3, r0, 0 cmp r1, 0x20 beq _081B178E cmp r1, 0x20 bgt _081B177C cmp r1, 0x10 beq _081B1792 b _081B1796 .pool _081B177C: cmp r1, 0x40 beq _081B1786 cmp r1, 0x80 beq _081B178A b _081B1796 _081B1786: movs r1, 0xFF b _081B17B2 _081B178A: movs r1, 0x1 b _081B17B2 _081B178E: movs r1, 0xFE b _081B17B2 _081B1792: movs r1, 0x2 b _081B17B2 _081B1796: bl sub_812210C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B17AA cmp r0, 0x2 beq _081B17AE movs r1, 0 b _081B17B0 _081B17AA: movs r1, 0xFF b _081B17B0 _081B17AE: movs r1, 0x1 _081B17B0: ldr r3, =gMain _081B17B2: ldrh r2, [r3, 0x2E] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _081B17C4 movs r0, 0x8 b _081B17F0 .pool _081B17C4: lsls r0, r1, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B17D6 adds r0, r4, 0 bl sub_81B17F8 movs r0, 0 b _081B17F0 _081B17D6: movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _081B17EA movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x7 bne _081B17EA movs r0, 0x2 b _081B17F0 _081B17EA: ldrh r1, [r3, 0x2E] movs r0, 0x3 ands r0, r1 _081B17F0: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B1760 thumb_func_start sub_81B17F8 sub_81B17F8: @ 81B17F8 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 ldrb r4, [r5] ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 26 lsrs r0, 30 cmp r0, 0 bne _081B1820 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl sub_81B1854 b _081B182A .pool _081B1820: lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl sub_81B195C _081B182A: movs r1, 0 ldrsb r1, [r5, r1] lsls r4, 24 asrs r0, r4, 24 cmp r1, r0 beq _081B184C movs r0, 0x5 bl PlaySE lsrs r0, r4, 24 movs r1, 0 bl sub_81B0FCC ldrb r0, [r5] movs r1, 0x1 bl sub_81B0FCC _081B184C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B17F8 thumb_func_start sub_81B1854 sub_81B1854: @ 81B1854 push {r4,lr} adds r4, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B187A cmp r1, r0 bgt _081B1870 subs r0, 0x1 cmp r1, r0 beq _081B1924 b _081B1952 _081B1870: cmp r1, 0x1 beq _081B18C0 cmp r1, 0x2 beq _081B18F8 b _081B1952 _081B187A: ldrb r0, [r4] movs r1, 0 ldrsb r1, [r4, r1] cmp r1, 0 bne _081B1888 movs r0, 0x7 b _081B1950 _081B1888: cmp r1, 0x6 bne _081B1898 ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 b _081B1950 .pool _081B1898: cmp r1, 0x7 bne _081B18BC ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B18B0 movs r0, 0x6 b _081B1950 .pool _081B18B0: ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 b _081B1950 .pool _081B18BC: subs r0, 0x1 b _081B1950 _081B18C0: ldrb r2, [r4] movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x7 beq _081B194E movs r1, 0 ldrsb r1, [r4, r1] ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _081B18F4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B18F0 movs r0, 0x6 b _081B1950 .pool _081B18F0: movs r0, 0x7 b _081B1950 _081B18F4: adds r0, r2, 0x1 b _081B1950 _081B18F8: ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r0, 0x1 beq _081B1952 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _081B1952 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r0, 29 cmp r0, 0 bne _081B1950 movs r0, 0x1 b _081B1950 .pool _081B1924: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 beq _081B1952 cmp r0, 0x6 beq _081B1952 cmp r0, 0x7 beq _081B1952 ldr r0, =gUnknown_0203CEC4 ldr r3, [r0] movs r1, 0 ldrsb r1, [r4, r1] movs r0, 0x7 ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x8] movs r0, 0xF negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] _081B194E: movs r0, 0 _081B1950: strb r0, [r4] _081B1952: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B1854 thumb_func_start sub_81B195C sub_81B195C: @ 81B195C push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r2, r1, 24 asrs r5, r1, 24 movs r6, 0x1 negs r6, r6 cmp r5, r6 beq _081B1988 cmp r5, r6 bgt _081B197E movs r0, 0x2 negs r0, r0 cmp r5, r0 bne _081B197C b _081B1A9C _081B197C: b _081B1AF4 _081B197E: cmp r5, 0x1 beq _081B19E4 cmp r5, 0x2 beq _081B1A24 b _081B1AF4 _081B1988: ldrb r1, [r4] movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _081B1996 movs r0, 0x7 b _081B1AF2 _081B1996: cmp r0, 0x6 bne _081B19A8 ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 b _081B1AF2 .pool _081B19A8: cmp r0, 0x7 bne _081B19C4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B19C0 movs r0, 0x6 b _081B1AF2 .pool _081B19C0: subs r0, r1, 0x1 strb r0, [r4] _081B19C4: movs r0, 0 ldrsb r0, [r4, r0] lsls r1, r2, 24 asrs r1, 24 bl sub_81B1B00 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _081B19E0 b _081B1AF4 _081B19E0: strb r2, [r4] b _081B1AF4 _081B19E4: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x6 bne _081B19F0 movs r0, 0x7 b _081B1AF2 _081B19F0: cmp r0, 0x7 bne _081B19F8 movs r0, 0 b _081B1AF2 _081B19F8: movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x1 bl sub_81B1B00 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, r6 bne _081B19E0 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B1A20 movs r0, 0x6 b _081B1AF2 .pool _081B1A20: movs r0, 0x7 b _081B1AF2 _081B1A24: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _081B1A5C ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r6, r0, 29 cmp r6, 0x3 bne _081B1A54 ldr r0, =gPlayerParty + 300 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1AF4 strb r6, [r4] b _081B1AF4 .pool _081B1A54: ldr r0, =gPlayerParty + 200 b _081B1A70 .pool _081B1A5C: cmp r0, 0x1 bne _081B1AF4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r5, r0, 29 cmp r5, 0x5 bne _081B1A88 ldr r0, =gPlayerParty + 500 _081B1A70: movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1AF4 strb r5, [r4] b _081B1AF4 .pool _081B1A88: ldr r0, =gPlayerParty + 400 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1AF4 movs r0, 0x4 b _081B1AF2 .pool _081B1A9C: ldrb r1, [r4] subs r0, r1, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _081B1ACC ldr r0, =gUnknown_0203CEC4 ldr r3, [r0] movs r1, 0 ldrsb r1, [r4, r1] movs r0, 0x7 ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x8] movs r0, 0xF negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] movs r0, 0 b _081B1AF2 .pool _081B1ACC: subs r0, r1, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _081B1AF4 ldr r0, =gUnknown_0203CEC4 ldr r3, [r0] movs r1, 0 ldrsb r1, [r4, r1] movs r0, 0x7 ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x8] movs r0, 0xF negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] movs r0, 0x1 _081B1AF2: strb r0, [r4] _081B1AF4: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B195C thumb_func_start sub_81B1B00 sub_81B1B00: @ 81B1B00 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 asrs r6, r1, 24 _081B1B0A: lsls r0, r5, 24 asrs r0, 24 adds r0, r6 lsls r0, 24 lsrs r5, r0, 24 lsls r1, r5, 24 lsrs r0, r1, 24 cmp r0, 0x5 bhi _081B1B38 asrs r4, r1, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1B0A adds r0, r4, 0 b _081B1B3C .pool _081B1B38: movs r0, 0x1 negs r0, r0 _081B1B3C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81B1B00 thumb_func_start GetMonNickname @ u8 *GetMonNickname(struct pokemon *mon, u8 *dest) GetMonNickname: @ 81B1B44 push {r4,lr} adds r4, r1, 0 movs r1, 0x2 adds r2, r4, 0 bl GetMonData adds r0, r4, 0 bl StringGetEnd10 pop {r4} pop {r1} bx r1 thumb_func_end GetMonNickname thumb_func_start sub_81B1B5C sub_81B1B5C: @ 81B1B5C push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl sub_81B3300 ldr r0, =sub_81B1B8C movs r1, 0x1 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] pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81B1B5C thumb_func_start sub_81B1B8C sub_81B1B8C: @ 81B1B8C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 movs r0, 0x6 bl RunTextPrintersRetIsActive lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _081B1BC8 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _081B1BC2 movs r0, 0x6 movs r1, 0 bl sub_8198070 movs r0, 0x6 bl ClearWindowTilemap _081B1BC2: adds r0, r5, 0 bl DestroyTask _081B1BC8: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1B8C thumb_func_start sub_81B1BD4 sub_81B1BD4: @ 81B1BD4 push {lr} ldr r0, =sub_81B1B8C bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_81B1BD4 thumb_func_start sub_81B1BE8 sub_81B1BE8: @ 81B1BE8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B1C0E movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] _081B1C0E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B1BE8 thumb_func_start sub_81B1C1C sub_81B1C1C: @ 81B1C1C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B1C74 movs r0, 0x6 movs r1, 0 bl sub_8198070 movs r0, 0x6 bl ClearWindowTilemap bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B1C60 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1BE8 b _081B1C72 .pool _081B1C60: movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 _081B1C72: str r0, [r1] _081B1C74: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1C1C thumb_func_start sub_81B1C84 sub_81B1C84: @ 81B1C84 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gText_PkmnWasGivenItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1C84 thumb_func_start sub_81B1CD0 sub_81B1CD0: @ 81B1CD0 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gText_RecievedItemFromPkmn adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1CD0 thumb_func_start sub_81B1D1C sub_81B1D1C: @ 81B1D1C push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gText_SwitchPkmnItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1D1C thumb_func_start sub_81B1D68 sub_81B1D68: @ 81B1D68 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl CopyItemName ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gText_SwitchedPkmnItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1D68 thumb_func_start sub_81B1DB8 sub_81B1DB8: @ 81B1DB8 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 lsls r5, r1, 16 lsrs r4, r5, 16 adds r7, r4, 0 adds r0, r4, 0 bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B1DE2 adds r0, r6, 0 adds r1, r4, 0 bl GiveMailToMon lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081B1DF6 _081B1DE2: mov r0, sp strb r7, [r0] mov r1, sp lsrs r0, r5, 24 strb r0, [r1, 0x1] adds r0, r6, 0 movs r1, 0xC mov r2, sp bl SetMonData _081B1DF6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B1DB8 thumb_func_start sub_81B1E00 sub_81B1E00: @ 81B1E00 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 mov r1, sp strh r0, [r1] cmp r0, 0 bne _081B1E1C movs r0, 0 b _081B1E3E _081B1E1C: movs r1, 0x1 bl AddBagItem lsls r0, 24 cmp r0, 0 beq _081B1E3C movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r4, 0 movs r1, 0xC mov r2, sp bl SetMonData movs r0, 0x2 b _081B1E3E _081B1E3C: movs r0, 0x1 _081B1E3E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B1E00 thumb_func_start pokemon_item_not_removed pokemon_item_not_removed: @ 81B1E48 push {lr} ldr r0, =gStringVar4 ldr r1, =gText_BagFullCouldNotRemoveItem bl StringExpandPlaceholders pop {r0} bx r0 .pool thumb_func_end pokemon_item_not_removed thumb_func_start sub_81B1E60 sub_81B1E60: @ 81B1E60 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, 2 add r0, r8 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 ldrh r0, [r7, 0x4] ldrh r1, [r7] adds r0, r1 strh r0, [r7] ldrh r0, [r7, 0x6] subs r0, 0x1 strh r0, [r7, 0x6] movs r2, 0x8 ldrsh r0, [r7, r2] movs r5, 0x64 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x39 adds r2, r7, 0 bl SetMonData movs r3, 0x8 ldrsh r2, [r7, r3] adds r0, r2, 0 muls r0, r5 adds r0, r4 ldr r6, =gUnknown_0203CEDC lsls r2, 4 ldr r1, [r6] adds r1, r2 movs r2, 0x1 bl sub_81B2CD4 movs r0, 0x8 ldrsh r2, [r7, r0] adds r0, r2, 0 muls r0, r5 adds r0, r4 lsls r2, 4 ldr r1, [r6] adds r1, r2 bl sub_81B2E28 movs r1, 0x6 ldrsh r0, [r7, r1] cmp r0, 0 beq _081B1EDC movs r2, 0 ldrsh r1, [r7, r2] cmp r1, 0 beq _081B1EDC movs r3, 0x2 ldrsh r0, [r7, r3] cmp r1, r0 bne _081B1EFE _081B1EDC: movs r0, 0 ldrsh r1, [r7, r0] movs r2, 0xA ldrsh r0, [r7, r2] cmp r1, r0 ble _081B1EF8 ldr r0, =gStringVar2 movs r3, 0xA ldrsh r2, [r7, r3] subs r1, r2 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN _081B1EF8: mov r0, r8 bl SwitchTaskToFollowupFunc _081B1EFE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B1E60 thumb_func_start sub_81B1F18 sub_81B1F18: @ 81B1F18 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 mov r9, r1 adds r5, r2, 0 mov r10, r3 ldr r7, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r5, 24 lsrs r5, 24 mov r0, r10 lsls r0, 16 lsrs r0, 16 mov r10, r0 movs r0, 0x64 mov r6, r9 muls r6, r0 ldr r0, =gPlayerParty adds r6, r0 mov r0, r8 lsls r4, r0, 2 add r4, r8 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 adds r0, r6, 0 movs r1, 0x39 bl GetMonData strh r0, [r4] adds r0, r6, 0 movs r1, 0x3A bl GetMonData strh r0, [r4, 0x2] lsls r5, 24 asrs r5, 24 strh r5, [r4, 0x4] mov r0, r10 strh r0, [r4, 0x6] mov r0, r9 strh r0, [r4, 0x8] ldrh r0, [r4] strh r0, [r4, 0xA] ldr r1, =sub_81B1E60 mov r0, r8 adds r2, r7, 0 bl SetTaskFuncWithFollowupFunc pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B1F18 thumb_func_start sub_81B1FA8 sub_81B1FA8: @ 81B1FA8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r3, r0, r1 cmp r5, 0x5 bhi _081B200A lsls r0, r5, 2 ldr r1, =_081B1FD4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B1FD4: .4byte _081B1FEC .4byte _081B1FF2 .4byte _081B1FF6 .4byte _081B1FFA .4byte _081B1FFE .4byte _081B2002 _081B1FEC: strh r2, [r3] strh r2, [r3, 0xA] b _081B200A _081B1FF2: strh r2, [r3, 0x2] b _081B200A _081B1FF6: strh r2, [r3, 0x4] b _081B200A _081B1FFA: strh r2, [r3, 0x6] b _081B200A _081B1FFE: strh r2, [r3, 0x8] b _081B200A _081B2002: ldr r1, =sub_81B1E60 adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc _081B200A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1FA8 thumb_func_start pokemon_ailments_get_primary pokemon_ailments_get_primary: @ 81B2014 push {lr} adds r1, r0, 0 movs r0, 0x88 ands r0, r1 cmp r0, 0 beq _081B2024 movs r0, 0x1 b _081B2056 _081B2024: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081B2030 movs r0, 0x2 b _081B2056 _081B2030: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _081B203C movs r0, 0x3 b _081B2056 _081B203C: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _081B2048 movs r0, 0x4 b _081B2056 _081B2048: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081B2054 movs r0, 0 b _081B2056 _081B2054: movs r0, 0x5 _081B2056: pop {r1} bx r1 thumb_func_end pokemon_ailments_get_primary thumb_func_start sub_81B205C @ u8 sub_81B205C(struct pokemon *mon, int a2, void *a3) sub_81B205C: @ 81B205C push {r4,lr} adds r4, r0, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B206E movs r0, 0x7 b _081B2096 _081B206E: adds r0, r4, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _081B2096 adds r0, r4, 0 movs r1, 0 bl CheckPartyPokerus lsls r0, 24 cmp r0, 0 bne _081B2094 movs r0, 0 b _081B2096 _081B2094: movs r0, 0x6 _081B2096: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B205C thumb_func_start sub_81B209C sub_81B209C: @ 81B209C push {r4,r5,lr} ldr r2, =gUnknown_0203CEC8 ldrb r1, [r2, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xB bne _081B2126 adds r5, r2, 0 adds r5, 0xE movs r0, 0 strh r0, [r2, 0xE] ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 bne _081B20FC movs r4, 0 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcs _081B2126 _081B20C4: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_81B2134 lsls r0, 16 lsrs r0, 16 lsls r0, r4 ldrh r1, [r5] adds r0, r1 strh r0, [r5] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcc _081B20C4 b _081B2126 .pool _081B20FC: movs r4, 0 b _081B211E _081B2100: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_81B2164 lsls r0, 16 lsrs r0, 16 lsls r0, r4 ldrh r1, [r5] adds r0, r1 strh r0, [r5] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B211E: ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcc _081B2100 _081B2126: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B209C thumb_func_start sub_81B2134 sub_81B2134: @ 81B2134 push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _081B215A adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 bl sub_802C908 cmp r0, 0 beq _081B215A movs r0, 0x1 b _081B215C _081B215A: movs r0, 0 _081B215C: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B2134 thumb_func_start sub_81B2164 sub_81B2164: @ 81B2164 push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _081B2182 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0x55 bne _081B2182 movs r0, 0x1 b _081B2184 _081B2182: movs r0, 0 _081B2184: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B2164 thumb_func_start sub_81B218C sub_81B218C: @ 81B218C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEC8 movs r2, 0xE ldrsh r1, [r1, r2] asrs r1, r0 movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _081B21A4 movs r0, 0 _081B21A4: pop {r1} bx r1 .pool thumb_func_end sub_81B218C thumb_func_start sub_81B21AC sub_81B21AC: @ 81B21AC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r5, 0 bl sub_81B218C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B21DC movs r0, 0x5 bl PlaySE ldr r0, =gSpecialVar_0x8004 strh r5, [r0] adds r0, r4, 0 bl sub_81B12C0 b _081B21FE .pool _081B21DC: movs r0, 0x20 bl PlaySE ldr r0, =gText_PkmnCantParticipate movs r1, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B21FE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B21AC thumb_func_start sub_81B2210 sub_81B2210: @ 81B2210 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gText_CancelParticipation movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B2248 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B2210 thumb_func_start sub_81B2248 sub_81B2248: @ 81B2248 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B226C bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B227C str r0, [r1] _081B226C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B2248 thumb_func_start sub_81B227C sub_81B227C: @ 81B227C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B22A2 cmp r1, 0 bgt _081B229C movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B22B4 b _081B22C8 _081B229C: cmp r1, 0x1 beq _081B22BA b _081B22C8 _081B22A2: ldr r1, =gSpecialVar_0x8004 movs r0, 0x7 strh r0, [r1] adds r0, r4, 0 bl sub_81B12C0 b _081B22C8 .pool _081B22B4: movs r0, 0x5 bl PlaySE _081B22BA: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B22C8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B227C thumb_func_start sub_81B22D8 sub_81B22D8: @ 81B22D8 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r7, r4, 0 lsls r2, 24 lsrs r6, r2, 24 mov r8, r6 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B22FA movs r0, 0x3 b _081B2356 _081B22FA: movs r0, 0x90 lsls r0, 1 cmp r4, r0 bls _081B231C adds r1, r4, 0 subs r1, 0x21 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl CanMonLearnTMHM cmp r0, 0 beq _081B2334 adds r0, r7, 0 bl ItemIdToBattleMoveId b _081B233E _081B231C: adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl sub_81B2370 lsls r0, 24 cmp r0, 0 bne _081B2338 _081B2334: movs r0, 0x1 b _081B2356 _081B2338: mov r0, r8 bl sub_81B2360 _081B233E: lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0 bl pokemon_has_move lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B2354 movs r0, 0 b _081B2356 _081B2354: movs r0, 0x2 _081B2356: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81B22D8 thumb_func_start sub_81B2360 sub_81B2360: @ 81B2360 lsls r0, 24 ldr r1, =gUnknown_0861500C lsrs r0, 23 adds r0, r1 ldrh r0, [r0] bx lr .pool thumb_func_end sub_81B2360 thumb_func_start sub_81B2370 sub_81B2370: @ 81B2370 push {lr} lsls r0, 16 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_08615048 lsrs r0, 14 adds r0, r2 movs r2, 0x1 lsls r2, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _081B2394 movs r0, 0 b _081B2396 .pool _081B2394: movs r0, 0x1 _081B2396: pop {r1} bx r1 thumb_func_end sub_81B2370 thumb_func_start sub_81B239C sub_81B239C: @ 81B239C push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _081B23C4 cmp r0, 0x1 bgt _081B23B2 cmp r0, 0 beq _081B23B8 b _081B23DC _081B23B2: cmp r1, 0x2 beq _081B23D0 b _081B23DC _081B23B8: ldr r0, =gUnknown_08615810 bl InitWindows b _081B23E2 .pool _081B23C4: ldr r0, =gUnknown_08615850 bl InitWindows b _081B23E2 .pool _081B23D0: ldr r0, =gUnknown_08615890 bl InitWindows b _081B23E2 .pool _081B23DC: ldr r0, =gUnknown_086158D0 bl InitWindows _081B23E2: bl DeactivateAllTextPrinters movs r4, 0 _081B23E8: adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B23E8 movs r0, 0 movs r1, 0x4F movs r2, 0xD0 bl sub_809882C bl GetOverworldTextboxPalettePtr movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_0860F074 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B239C thumb_func_start sub_81B2428 sub_81B2428: @ 81B2428 push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B243E b _081B2554 _081B243E: cmp r2, 0x1 bne _081B24B4 ldr r0, =gUnknown_08615918 bl AddWindow adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer ldr r5, =gMenuText_Confirm movs r0, 0 adds r1, r5, 0 movs r2, 0x30 bl GetStringCenterAlignXOffset lsls r0, 24 lsrs r2, r0, 24 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] ldr r0, =gUnknown_086157FC str r0, [sp, 0x8] movs r0, 0x1 negs r0, r0 str r0, [sp, 0xC] str r5, [sp, 0x10] adds r0, r4, 0 movs r1, 0 movs r3, 0x1 bl AddTextPrinterParameterized2 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram ldr r0, =gUnknown_08615910 bl AddWindow lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 b _081B24C0 .pool _081B24B4: ldr r0, =gUnknown_08615908 bl AddWindow lsls r0, 24 lsrs r5, r0, 24 movs r6, 0x3 _081B24C0: adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xA beq _081B2514 ldr r4, =gText_Cancel movs r0, 0 adds r1, r4, 0 movs r2, 0x30 bl GetStringCenterAlignXOffset lsls r0, 24 lsrs r2, r0, 24 adds r2, r6 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_086157FC str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r4, [sp, 0x8] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl box_print b _081B2540 .pool _081B2514: ldr r4, =gText_Cancel2 movs r0, 0 adds r1, r4, 0 movs r2, 0x30 bl GetStringCenterAlignXOffset lsls r0, 24 lsrs r2, r0, 24 adds r2, r6 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_086157FC str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r4, [sp, 0x8] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl box_print _081B2540: adds r0, r5, 0 bl PutWindowTilemap adds r0, r5, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl schedule_bg_copy_tilemap_to_vram _081B2554: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2428 thumb_func_start sub_81B2564 sub_81B2564: @ 81B2564 lsls r0, 24 ldr r1, =gUnknown_0203CEC4 lsrs r0, 23 adds r0, 0x18 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .pool thumb_func_end sub_81B2564 thumb_func_start sub_81B2578 sub_81B2578: @ 81B2578 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C str r1, [sp, 0xC] ldr r1, [sp, 0x4C] ldr r4, [sp, 0x50] ldr r5, [sp, 0x54] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x14] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x18] lsls r4, 24 lsrs r6, r4, 24 lsls r5, 24 lsrs r5, 24 mov r10, r5 mov r0, r10 muls r0, r6 lsls r0, 5 bl AllocZeroed mov r9, r0 cmp r0, 0 beq _081B2646 movs r5, 0 ldr r0, [sp, 0x14] lsls r0, 19 str r0, [sp, 0x1C] ldr r1, [sp, 0x18] lsls r1, 19 str r1, [sp, 0x20] lsls r2, r6, 19 str r2, [sp, 0x24] mov r0, r10 lsls r0, 19 str r0, [sp, 0x28] cmp r5, r10 bcs _081B2624 _081B25DA: movs r4, 0 adds r1, r5, 0x1 mov r8, r1 cmp r4, r6 bcs _081B261A ldr r2, [sp, 0x18] adds r0, r2, r5 ldr r2, [sp, 0x10] adds r1, r0, 0 muls r1, r2 adds r7, r1, 0 _081B25F0: ldr r1, [sp, 0x14] adds r0, r1, r4 adds r0, r7 ldr r2, [sp, 0xC] adds r0, r2, r0 ldrb r0, [r0] bl sub_81B0DD4 adds r1, r5, 0 muls r1, r6 adds r1, r4 lsls r1, 5 add r1, r9 movs r2, 0x10 bl CpuSet adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _081B25F0 _081B261A: mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, r10 bcc _081B25DA _081B2624: ldr r0, [sp, 0x1C] lsrs r2, r0, 16 ldr r1, [sp, 0x20] lsrs r3, r1, 16 ldr r1, [sp, 0x24] lsrs r0, r1, 16 str r0, [sp] ldr r1, [sp, 0x28] lsrs r0, r1, 16 str r0, [sp, 0x4] ldr r0, [sp, 0x8] mov r1, r9 bl BlitBitmapToWindow mov r0, r9 bl Free _081B2646: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2578 thumb_func_start sub_81B2658 sub_81B2658: @ 81B2658 push {r4-r6,lr} sub sp, 0xC ldr r4, [sp, 0x1C] ldr r5, [sp, 0x20] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r6, r1, 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 cmp r3, 0 bne _081B2684 cmp r4, 0 bne _081B2684 movs r3, 0xA movs r4, 0x7 _081B2684: cmp r5, 0 bne _081B26A0 ldr r1, =gUnknown_08615988 str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0xA adds r3, r6, 0 bl sub_81B2578 b _081B26B0 .pool _081B26A0: ldr r1, =gUnknown_086159CE str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0xA adds r3, r6, 0 bl sub_81B2578 _081B26B0: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2658 thumb_func_start sub_81B26BC sub_81B26BC: @ 81B26BC push {r4-r6,lr} sub sp, 0xC ldr r4, [sp, 0x1C] ldr r5, [sp, 0x20] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r6, r1, 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 cmp r3, 0 bne _081B26E8 cmp r4, 0 bne _081B26E8 movs r3, 0x12 movs r4, 0x3 _081B26E8: cmp r5, 0 bne _081B2704 ldr r1, =gUnknown_08615A14 str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x12 adds r3, r6, 0 bl sub_81B2578 b _081B2714 .pool _081B2704: ldr r1, =gUnknown_08615A4A str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x12 adds r3, r6, 0 bl sub_81B2578 _081B2714: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B26BC thumb_func_start sub_81B2720 sub_81B2720: @ 81B2720 push {lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_08615A80 movs r2, 0 str r2, [sp] movs r2, 0x12 str r2, [sp, 0x4] movs r2, 0x3 str r2, [sp, 0x8] movs r2, 0x12 movs r3, 0 bl sub_81B2578 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B2720 thumb_func_start sub_81B2748 sub_81B2748: @ 81B2748 push {r4-r7,lr} lsls r1, 24 lsrs r4, r1, 24 adds r5, r4, 0 ldrb r0, [r0, 0x8] movs r1, 0x5 bl GetWindowAttribute lsls r0, 28 lsrs r6, r0, 24 adds r7, r6, 0 movs r0, 0x40 ands r0, r4 cmp r0, 0 beq _081B277C ldr r5, =gUnknown_08615AF1 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AC0 b _081B297E .pool _081B277C: movs r0, 0x20 ands r0, r4 cmp r0, 0 beq _081B27D8 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B2794 ldr r5, =gUnknown_08615ADF b _081B2942 .pool _081B2794: ldr r5, =gUnknown_08615ADF ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEE b _081B2976 .pool _081B27D8: movs r0, 0x10 ands r0, r4 cmp r0, 0 beq _081B2824 ldr r5, =gUnknown_08615ADF ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEE b _081B2976 .pool _081B2824: movs r0, 0x4 ands r0, r4 cmp r0, 0 beq _081B2880 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B283C ldr r5, =gUnknown_08615ADF b _081B2942 .pool _081B283C: ldr r5, =gUnknown_08615ADF ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEE b _081B2976 .pool _081B2880: movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _081B28DC movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B2898 ldr r5, =gUnknown_08615ADC b _081B2942 .pool _081B2898: ldr r5, =gUnknown_08615AD3 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AE8 b _081B2976 .pool _081B28DC: movs r0, 0x8 ands r0, r4 cmp r0, 0 beq _081B2938 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B28F4 ldr r5, =gUnknown_08615AD9 b _081B2942 .pool _081B28F4: ldr r5, =gUnknown_08615AD0 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AE5 b _081B2976 .pool _081B2938: movs r0, 0x1 ands r5, r0 cmp r5, 0 beq _081B29BC ldr r5, =gUnknown_08615AD6 _081B2942: ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEB _081B2976: ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABD _081B297E: ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette b _081B2A24 .pool _081B29BC: ldr r5, =gUnknown_08615ACD ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r7 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AE2 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABD ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r7 movs r2, 0x2 bl LoadPalette _081B2A24: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2748 thumb_func_start sub_81B2A3C sub_81B2A3C: @ 81B2A3C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 ldrb r5, [r3] ldrb r3, [r3, 0x1] lsls r4, r2, 1 adds r4, r2 ldr r2, =gUnknown_086157FC adds r4, r2 str r4, [sp] movs r2, 0 str r2, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0 adds r2, r5, 0 bl box_print add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B2A3C thumb_func_start sub_81B2A70 sub_81B2A70: @ 81B2A70 push {r4-r7,lr} sub sp, 0x14 adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2AC0 cmp r4, 0x1 bne _081B2AAA ldr r5, [r6] ldrb r0, [r6, 0x8] ldrb r1, [r5, 0x4] lsrs r1, 3 ldrb r2, [r5, 0x5] lsrs r2, 3 ldrb r3, [r5, 0x6] lsrs r3, 3 ldrb r4, [r5, 0x7] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2AAA: adds r0, r7, 0 add r1, sp, 0x8 bl GetMonNickname ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x4 add r1, sp, 0x8 movs r2, 0 bl sub_81B2A3C _081B2AC0: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2A70 thumb_func_start sub_81B2AC8 sub_81B2AC8: @ 81B2AC8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2B34 adds r0, r6, 0 bl sub_81B205C lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B2AF6 cmp r0, 0x6 bne _081B2B34 _081B2AF6: cmp r4, 0 beq _081B2B1C ldr r5, [r7] ldrb r0, [r7, 0x8] ldrb r1, [r5, 0x8] lsrs r1, 3 ldrb r2, [r5, 0x9] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0xA] lsrs r3, 3 ldrb r4, [r5, 0xB] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2B1C: mov r0, r8 cmp r0, 0x2 beq _081B2B34 adds r0, r6, 0 movs r1, 0x38 bl GetMonData lsls r0, 24 lsrs r0, 24 adds r1, r7, 0 bl sub_81B2B40 _081B2B34: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2AC8 thumb_func_start sub_81B2B40 sub_81B2B40: @ 81B2B40 push {r4-r6,lr} adds r2, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r5, =gStringVar2 adds r0, r5, 0 adds r1, r2, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar1 ldr r1, =gText_LevelSymbol adds r0, r4, 0 bl StringCopy adds r0, r4, 0 adds r1, r5, 0 bl StringAppend ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x8 adds r1, r4, 0 movs r2, 0 bl sub_81B2A3C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2B40 thumb_func_start sub_81B2B8C sub_81B2B8C: @ 81B2B8C push {r4-r7,lr} sub sp, 0x14 adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 cmp r2, 0x1 bne _081B2BBE ldr r5, [r7] ldrb r0, [r7, 0x8] ldrb r1, [r5, 0xC] lsrs r1, 3 ldrb r2, [r5, 0xD] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0xE] lsrs r3, 3 ldrb r4, [r5, 0xF] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2BBE: adds r0, r6, 0 add r1, sp, 0x8 bl GetMonNickname adds r0, r6, 0 bl GetMonGender adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 add r2, sp, 0x8 adds r3, r7, 0 bl sub_81B2BF4 add sp, 0x14 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2B8C thumb_func_start sub_81B2BF4 sub_81B2BF4: @ 81B2BF4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r2 adds r7, r3, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r4, r1, 16 adds r5, r4, 0 ldrb r0, [r7, 0x8] movs r1, 0x5 bl GetWindowAttribute lsls r0, 28 lsrs r6, r0, 24 cmp r4, 0 beq _081B2CBA cmp r4, 0x20 beq _081B2C24 cmp r4, 0x1D bne _081B2C38 _081B2C24: movs r0, 0xB adds r1, r5, 0 muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 mov r0, r9 bl StringCompare cmp r0, 0 beq _081B2CBA _081B2C38: mov r0, r8 cmp r0, 0 beq _081B2C48 cmp r0, 0xFE beq _081B2C88 b _081B2CBA .pool _081B2C48: ldr r5, =gUnknown_08615AC3 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB6 ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r7, 0x8] ldr r1, =gText_MaleSymbol ldr r3, [r7] adds r3, 0xC movs r2, 0x2 bl sub_81B2A3C b _081B2CBA .pool _081B2C88: ldr r5, =gUnknown_08615AC5 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB6 ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r7, 0x8] ldr r1, =gText_FemaleSymbol ldr r3, [r7] adds r3, 0xC movs r2, 0x2 bl sub_81B2A3C _081B2CBA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2BF4 thumb_func_start sub_81B2CD4 sub_81B2CD4: @ 81B2CD4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2D2E cmp r4, 0 beq _081B2D16 ldr r5, [r6] ldrb r0, [r6, 0x8] ldrb r1, [r5, 0x10] lsrs r1, 3 ldrb r2, [r5, 0x11] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0x12] lsrs r3, 3 ldrb r4, [r5, 0x13] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2D16: mov r0, r8 cmp r0, 0x2 beq _081B2D2E adds r0, r7, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl sub_81B2D3C _081B2D2E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2CD4 thumb_func_start sub_81B2D3C sub_81B2D3C: @ 81B2D3C push {r4,r5,lr} adds r2, r0, 0 adds r4, r1, 0 lsls r2, 16 lsrs r2, 16 ldr r5, =gStringVar1 adds r0, r5, 0 adds r1, r2, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r1, 0xBA strb r1, [r0] movs r1, 0xFF strb r1, [r0, 0x1] ldrb r0, [r4, 0x8] ldr r3, [r4] adds r3, 0x10 adds r1, r5, 0 movs r2, 0 bl sub_81B2A3C pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B2D3C thumb_func_start sub_81B2D74 sub_81B2D74: @ 81B2D74 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2DD0 cmp r4, 0 beq _081B2DB8 ldr r5, [r6] ldrb r0, [r6, 0x8] ldrb r1, [r5, 0x14] lsrs r1, 3 adds r1, 0x1 ldrb r2, [r5, 0x15] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0x16] lsrs r3, 3 ldrb r4, [r5, 0x17] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2DB8: mov r0, r8 cmp r0, 0x2 beq _081B2DD0 adds r0, r7, 0 movs r1, 0x3A bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl sub_81B2DDC _081B2DD0: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2D74 thumb_func_start sub_81B2DDC sub_81B2DDC: @ 81B2DDC push {r4-r6,lr} adds r2, r0, 0 adds r6, r1, 0 lsls r2, 16 lsrs r2, 16 ldr r5, =gStringVar2 adds r0, r5, 0 adds r1, r2, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar1 ldr r1, =gText_Slash adds r0, r4, 0 bl StringCopy adds r0, r4, 0 adds r1, r5, 0 bl StringAppend ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x14 adds r1, r4, 0 movs r2, 0 bl sub_81B2A3C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2DDC thumb_func_start sub_81B2E28 sub_81B2E28: @ 81B2E28 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2E5C adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 adds r2, r6, 0 bl sub_81B2E64 _081B2E5C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B2E28 thumb_func_start sub_81B2E64 sub_81B2E64: @ 81B2E64 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r2, 0 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldrb r0, [r6, 0x8] movs r1, 0x5 bl GetWindowAttribute lsls r0, 28 lsrs r7, r0, 24 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 mov r2, r9 lsls r1, r2, 16 asrs r1, 16 bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _081B2EB0 cmp r0, 0x2 blt _081B2EE0 cmp r0, 0x4 bgt _081B2EE0 ldr r5, =gUnknown_08615AC7 b _081B2EB2 .pool _081B2EB0: ldr r5, =gUnknown_08615AC9 _081B2EB2: ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB8 ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette b _081B2F04 .pool _081B2EE0: ldr r5, =gUnknown_08615ACB ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB8 ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette _081B2F04: mov r1, r8 lsls r0, r1, 16 asrs r0, 16 mov r2, r9 lsls r1, r2, 16 asrs r1, 16 ldr r2, [r6] ldrb r2, [r2, 0x1A] bl GetScaledHPFraction lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6, 0x8] ldr r4, =gUnknown_08615AB8 ldrb r1, [r4, 0x1] ldr r3, [r6] ldrb r2, [r3, 0x18] ldrb r3, [r3, 0x19] str r5, [sp] movs r7, 0x1 str r7, [sp, 0x4] bl FillWindowPixelRect ldrb r0, [r6, 0x8] ldrb r1, [r4] ldr r3, [r6] ldrb r2, [r3, 0x18] ldrb r3, [r3, 0x19] adds r3, 0x1 str r5, [sp] movs r4, 0x2 str r4, [sp, 0x4] bl FillWindowPixelRect ldr r1, [r6] ldrb r0, [r1, 0x1A] cmp r5, r0 beq _081B2F88 ldrb r0, [r6, 0x8] ldrb r2, [r1, 0x18] adds r2, r5 ldrb r3, [r1, 0x19] ldrb r1, [r1, 0x1A] subs r1, r5 lsls r1, 16 lsrs r1, 16 str r1, [sp] str r7, [sp, 0x4] movs r1, 0xD bl FillWindowPixelRect ldrb r0, [r6, 0x8] ldr r1, [r6] ldrb r2, [r1, 0x18] adds r2, r5 ldrb r3, [r1, 0x19] adds r3, 0x1 ldrb r1, [r1, 0x1A] subs r1, r5 lsls r1, 16 lsrs r1, 16 str r1, [sp] str r4, [sp, 0x4] movs r1, 0x2 bl FillWindowPixelRect _081B2F88: ldrb r0, [r6, 0x8] movs r1, 0x2 bl CopyWindowToVram add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2E64 thumb_func_start sub_81B2FA8 sub_81B2FA8: @ 81B2FA8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r6, r1, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r2, 24 lsrs r7, r2, 24 cmp r7, 0 beq _081B2FF2 ldr r5, [r6] ldrb r1, [r5, 0x1C] movs r4, 0x7 adds r0, r1, 0 ands r0, r4 ldrb r2, [r5, 0x1E] adds r0, r2 adds r3, r0, 0x7 asrs r3, 3 ldrb r2, [r5, 0x1D] adds r0, r2, 0 ands r0, r4 ldrb r4, [r5, 0x1F] adds r0, r4 adds r4, r0, 0x7 ldrb r0, [r6, 0x8] lsrs r1, 3 lsrs r2, 3 lsrs r4, 3 str r4, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2FF2: cmp r7, 0x2 beq _081B3018 ldrb r0, [r6, 0x8] ldr r1, [r6] ldrb r2, [r1, 0x1C] ldrb r3, [r1, 0x1D] ldr r1, =gUnknown_086157FC str r1, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r4, =gUnknown_08615B60 mov r5, r8 lsls r1, r5, 2 adds r1, r4 ldr r1, [r1] str r1, [sp, 0x8] movs r1, 0x1 bl box_print _081B3018: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2FA8 thumb_func_start sub_81B302C sub_81B302C: @ 81B302C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xFF beq _081B304C movs r1, 0 bl sub_8198070 ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF strb r0, [r4] movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram _081B304C: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B302C thumb_func_start display_pokemon_menu_message display_pokemon_menu_message: @ 81B3054 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r0, =gUnknown_0203CEC4 ldr r4, [r0] adds r5, r4, 0 adds r5, 0xD ldrb r0, [r4, 0xD] cmp r0, 0xFF beq _081B306E adds r0, r5, 0 bl sub_81B302C _081B306E: cmp r6, 0x7F beq _081B313C adds r0, r6, 0 subs r0, 0x15 cmp r0, 0x5 bhi _081B30D4 lsls r0, 2 ldr r1, =_081B308C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B308C: .4byte _081B30A4 .4byte _081B30BC .4byte _081B30BC .4byte _081B30AC .4byte _081B30B4 .4byte _081B30C4 _081B30A4: ldr r0, =gUnknown_08615928 b _081B30C6 .pool _081B30AC: ldr r0, =gUnknown_08615930 b _081B30C6 .pool _081B30B4: ldr r0, =gUnknown_08615938 b _081B30C6 .pool _081B30BC: ldr r0, =gUnknown_08615940 b _081B30C6 .pool _081B30C4: ldr r0, =gUnknown_08615948 _081B30C6: bl AddWindow strb r0, [r5] b _081B30DC .pool _081B30D4: ldr r0, =gUnknown_08615920 bl AddWindow strb r0, [r4, 0xD] _081B30DC: cmp r6, 0 bne _081B3104 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B30F8 movs r6, 0x2 b _081B3104 .pool _081B30F8: bl sub_81B314C lsls r0, 24 cmp r0, 0 bne _081B3104 movs r6, 0x1 _081B3104: ldrb r0, [r5] movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle ldr r4, =gStringVar4 ldr r1, =gUnknown_08615AF4 lsls r0, r6, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringExpandPlaceholders ldrb r0, [r5] movs r1, 0x1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 movs r3, 0 bl PrintTextOnWindow movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram _081B313C: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end display_pokemon_menu_message thumb_func_start sub_81B314C sub_81B314C: @ 81B314C push {r4-r7,lr} ldr r7, =gPlayerParty movs r6, 0 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x1 bne _081B3168 _081B315A: movs r0, 0x1 b _081B31AA .pool _081B3168: movs r5, 0 _081B316A: movs r0, 0x64 muls r0, r5 adds r4, r7, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B319A adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B3194 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B319A _081B3194: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _081B319A: cmp r6, 0x1 bhi _081B315A adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _081B316A movs r0, 0 _081B31AA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81B314C thumb_func_start sub_81B31B0 sub_81B31B0: @ 81B31B0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _081B320C cmp r4, 0x1 bgt _081B31CC cmp r4, 0 beq _081B31D2 b _081B321C _081B31CC: cmp r4, 0x2 beq _081B3214 b _081B321C _081B31D2: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldrb r0, [r1, 0x17] lsls r0, 1 movs r3, 0x13 subs r3, r0 lsls r3, 24 lsrs r3, 24 movs r0, 0xA str r0, [sp] ldrb r0, [r1, 0x17] lsls r0, 25 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0xE str r0, [sp, 0x8] ldr r0, =0x000002e9 str r0, [sp, 0xC] add r0, sp, 0x14 movs r1, 0x2 movs r2, 0x13 bl SetWindowTemplateFields b _081B3226 .pool _081B320C: ldr r0, =gUnknown_08615950 b _081B321E .pool _081B3214: ldr r0, =gUnknown_08615958 b _081B321E .pool _081B321C: ldr r0, =gUnknown_08615960 _081B321E: ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x14] str r1, [sp, 0x18] _081B3226: add r0, sp, 0x14 bl AddWindow ldr r6, =gUnknown_0203CEC4 ldr r1, [r6] strb r0, [r1, 0xC] ldr r0, [r6] ldrb r0, [r0, 0xC] movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle cmp r4, 0x3 bne _081B3250 ldr r0, [r6] b _081B32E2 .pool _081B3250: movs r0, 0x1 movs r1, 0 bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0x1 movs r1, 0x2 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r0, [r6] ldrb r0, [r0, 0x17] cmp r5, r0 bcs _081B32CA adds r7, r6, 0 movs r6, 0 _081B327A: ldr r1, [r7] adds r0, r1, 0 adds r0, 0xF adds r4, r0, r5 ldrb r0, [r4] movs r2, 0x3 cmp r0, 0x12 bls _081B328C movs r2, 0x4 _081B328C: ldrb r0, [r1, 0xC] lsls r3, r5, 4 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 mov r1, r8 str r1, [sp] str r6, [sp, 0x4] lsls r1, r2, 1 adds r1, r2 ldr r2, =gUnknown_086157FC adds r1, r2 str r1, [sp, 0x8] str r6, [sp, 0xC] ldr r2, =gUnknown_08615C08 ldrb r1, [r4] lsls r1, 3 adds r1, r2 ldr r1, [r1] str r1, [sp, 0x10] movs r1, 0x1 mov r2, r9 bl AddTextPrinterParameterized2 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r7] ldrb r0, [r0, 0x17] cmp r5, r0 bcc _081B327A _081B32CA: ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] ldrb r0, [r1, 0xC] ldrb r1, [r1, 0x17] movs r2, 0 movs r3, 0x1 bl InitMenuInUpperLeftCorner movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r0, [r4] _081B32E2: ldrb r0, [r0, 0xC] add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B31B0 thumb_func_start sub_81B3300 sub_81B3300: @ 81B3300 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 movs r0, 0x6 movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle ldr r2, =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0x6 movs r1, 0x1 adds r2, r4, 0 bl AddTextPrinterParameterized add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3300 thumb_func_start sub_81B334C sub_81B334C: @ 81B334C push {lr} ldr r0, =gUnknown_08615968 movs r1, 0x4F movs r2, 0xD movs r3, 0 bl CreateYesNoMenu pop {r0} bx r0 .pool thumb_func_end sub_81B334C thumb_func_start sub_81B3364 sub_81B3364: @ 81B3364 push {r4,lr} ldr r0, =gUnknown_08615970 bl AddWindow ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] strb r0, [r1, 0xC] ldr r0, [r4] ldrb r0, [r0, 0xC] movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle ldr r0, [r4] ldrb r0, [r0, 0xC] pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81B3364 thumb_func_start sub_81B3394 sub_81B3394: @ 81B3394 push {r4,lr} ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] ldrb r0, [r0, 0xC] bl ClearWindowTilemap ldr r0, [r4] adds r0, 0xC bl sub_81B302C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3394 thumb_func_start sub_81B33B4 sub_81B33B4: @ 81B33B4 push {r4,lr} lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r2, 0 bne _081B33C8 bl sub_81B3414 b _081B3400 _081B33C8: ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] ldr r0, =gUnknown_08615D70 adds r0, r2, r0 ldrb r0, [r0] strb r0, [r1, 0x17] movs r3, 0 ldr r0, [r4] ldrb r0, [r0, 0x17] cmp r3, r0 bcs _081B3400 ldr r1, =gUnknown_08615D38 lsls r0, r2, 2 adds r2, r0, r1 _081B33E4: ldr r1, [r4] adds r1, 0xF adds r1, r3 ldr r0, [r2] adds r0, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldr r0, [r4] ldrb r0, [r0, 0x17] cmp r3, r0 bcc _081B33E4 _081B3400: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B33B4 thumb_func_start sub_81B3414 sub_81B3414: @ 81B3414 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r2, =gUnknown_0203CEC4 ldr r1, [r2] movs r0, 0 strb r0, [r1, 0x17] ldr r1, [r2] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0 bl AppendToList movs r7, 0 ldr r0, =gUnknown_08615D7E ldrh r0, [r0] str r0, [sp] _081B3446: movs r4, 0 adds r0, r7, 0x1 mov r8, r0 ldr r1, [sp] cmp r1, 0xE beq _081B34A0 movs r0, 0x64 mov r6, r10 muls r6, r0 ldr r5, =gUnknown_08615D7E _081B345A: mov r1, r9 adds r0, r1, r6 adds r1, r7, 0 adds r1, 0xD bl GetMonData lsls r1, r4, 1 adds r1, r5 ldrh r1, [r1] cmp r0, r1 bne _081B3490 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 adds r2, r4, 0 adds r2, 0x13 lsls r2, 24 lsrs r2, 24 bl AppendToList b _081B34A0 .pool _081B3490: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] cmp r0, 0xE bne _081B345A _081B34A0: mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _081B3446 bl InBattlePike lsls r0, 24 cmp r0, 0 bne _081B3518 mov r0, r9 adds r0, 0x64 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B34D2 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x1 bl AppendToList _081B34D2: movs r0, 0x64 mov r1, r10 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B3508 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x6 bl AppendToList b _081B3518 .pool _081B3508: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x3 bl AppendToList _081B3518: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x2 bl AppendToList add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B3414 thumb_func_start sub_81B353C sub_81B353C: @ 81B353C push {r4,lr} adds r4, r0, 0 ldr r1, =gUnknown_0203CEC8 ldrb r0, [r1, 0x8] lsls r0, 28 lsrs r0, 28 adds r2, r1, 0 cmp r0, 0xC bhi _081B35FE lsls r0, 2 ldr r1, =_081B3560 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B3560: .4byte _081B3594 .4byte _081B35B0 .4byte _081B35FE .4byte _081B35FE .4byte _081B35BC .4byte _081B35FE .4byte _081B35DC .4byte _081B35FE .4byte _081B35EE .4byte _081B35F2 .4byte _081B35F6 .4byte _081B35FE .4byte _081B35FA _081B3594: bl InMultiBattleRoom lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B35AC adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B35FE _081B35AC: movs r1, 0x1 b _081B3600 _081B35B0: adds r0, r4, 0 bl sub_81B8A2C lsls r0, 24 lsrs r1, r0, 24 b _081B3600 _081B35BC: movs r0, 0x9 ldrsb r0, [r2, r0] bl sub_81B856C lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B35D4 cmp r0, 0x1 beq _081B35D8 movs r1, 0x7 b _081B3600 _081B35D4: movs r1, 0x4 b _081B3600 _081B35D8: movs r1, 0x5 b _081B3600 _081B35DC: adds r0, r4, 0 movs r1, 0x2D bl GetMonData movs r1, 0x6 cmp r0, 0 beq _081B3600 movs r1, 0x7 b _081B3600 _081B35EE: movs r1, 0xA b _081B3600 _081B35F2: movs r1, 0xB b _081B3600 _081B35F6: movs r1, 0xC b _081B3600 _081B35FA: movs r1, 0xD b _081B3600 _081B35FE: movs r1, 0 _081B3600: adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B353C thumb_func_start sub_81B3608 sub_81B3608: @ 81B3608 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r0, r1 ldr r7, =gPlayerParty adds r5, r0, r7 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xC beq _081B3674 ldrb r4, [r4, 0x9] adds r0, r5, 0 bl sub_81B353C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 adds r1, r4, 0 bl sub_81B33B4 movs r0, 0 bl sub_81B31B0 movs r0, 0x15 bl display_pokemon_menu_message b _081B36EA .pool _081B3674: adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 bne _081B36C0 ldr r4, =gStringVar4 ldr r1, =gText_PkmnNotHolding adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] movs r0, 0 b _081B36EC .pool _081B36C0: ldrb r4, [r4, 0x9] adds r0, r5, 0 bl sub_81B353C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 adds r1, r4, 0 bl sub_81B33B4 movs r0, 0x1 bl sub_81B31B0 ldr r1, =gStringVar2 adds r0, r6, 0 bl CopyItemName movs r0, 0x1A bl display_pokemon_menu_message _081B36EA: movs r0, 0x1 _081B36EC: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B3608 thumb_func_start sub_81B36FC sub_81B36FC: @ 81B36FC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_81B3608 lsls r0, 24 cmp r0, 0 beq _081B3720 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] _081B3720: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B36FC thumb_func_start sub_81B3730 sub_81B3730: @ 81B3730 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B37EE bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B37EE lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x17] cmp r0, 0x3 bhi _081B3774 bl ProcessMenuInputNoWrapAround_other b _081B3778 .pool _081B3774: bl ProcessMenuInput_other _081B3778: lsls r0, 24 lsrs r4, r0, 24 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 strh r0, [r5] lsls r0, r4, 24 asrs r5, r0, 24 movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _081B37EE adds r0, 0x1 cmp r5, r0 bne _081B37CC movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xE bl sub_81B302C ldr r2, =gUnknown_08615C08 ldr r0, [r4] ldrb r1, [r0, 0x17] adds r0, r1 ldrb r0, [r0, 0xE] lsls r0, 3 adds r2, 0x4 adds r0, r2 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 b _081B37EE .pool _081B37CC: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xE bl sub_81B302C ldr r1, =gUnknown_08615C08 ldr r0, [r4] adds r0, 0xF adds r0, r5 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 _081B37EE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B3730 thumb_func_start sub_81B37FC sub_81B37FC: @ 81B37FC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B3828 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B37FC thumb_func_start sub_81B3828 sub_81B3828: @ 81B3828 push {r4,lr} sub sp, 0x4 ldr r4, =gUnknown_0203CEC8 ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _081B3868 bl pokemon_change_order ldr r1, =gPlayerParty ldrb r2, [r4, 0x9] ldr r0, =gPlayerPartyCount ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, =sub_81B3894 str r0, [sp] movs r0, 0x1 bl sub_81BF8EC b _081B3880 .pool _081B3868: ldr r1, =gPlayerParty ldrb r2, [r4, 0x9] ldr r0, =gPlayerPartyCount ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, =sub_81B3894 str r0, [sp] movs r0, 0 bl sub_81BF8EC _081B3880: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3828 thumb_func_start sub_81B3894 sub_81B3894: @ 81B3894 push {lr} sub sp, 0xC ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r3, =gUnknown_0203CEC8 ldr r0, =gUnknown_0203CF20 ldrb r0, [r0] strb r0, [r3, 0x9] ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r3, 0xB] movs r1, 0x15 str r1, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r3] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B3894 thumb_func_start brm_switch brm_switch: @ 81B38DC push {r4-r6,lr} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 movs r0, 0x5 bl PlaySE ldr r5, =gUnknown_0203CEC8 movs r0, 0x8 strb r0, [r5, 0xB] ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, [r4] adds r0, 0xC bl sub_81B302C movs r0, 0x3 bl display_pokemon_menu_message ldrb r0, [r5, 0x9] movs r1, 0x1 bl sub_81B0FCC ldrb r0, [r5, 0x9] strb r0, [r5, 0xA] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1370 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end brm_switch thumb_func_start sub_81B3938 sub_81B3938: @ 81B3938 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 ldr r3, =gUnknown_0203CEC8 movs r1, 0xA ldrsb r1, [r3, r1] movs r0, 0x9 ldrsb r0, [r3, r0] cmp r1, r0 bne _081B3968 adds r0, r7, 0 bl sub_81B407C b _081B3ABA .pool _081B3968: add r2, sp, 0x8 movs r0, 0x9 ldrsb r0, [r3, r0] ldr r1, =gUnknown_0203CEDC ldr r1, [r1] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] movs r4, 0 strb r0, [r2] adds r0, r2, 0 ldrb r0, [r0] movs r1, 0x1 bl GetWindowAttribute strh r0, [r6] add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x2 bl GetWindowAttribute strh r0, [r6, 0x2] add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x3 bl GetWindowAttribute strh r0, [r6, 0x4] add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x4 bl GetWindowAttribute strh r0, [r6, 0x6] strh r4, [r6, 0x10] movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0xA bne _081B39C4 movs r2, 0x1 negs r2, r2 adds r0, r2, 0 b _081B39C6 .pool _081B39C4: movs r0, 0x1 _081B39C6: strh r0, [r6, 0x14] add r2, sp, 0x8 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xA] lsls r0, 24 asrs r0, 24 ldr r1, =gUnknown_0203CEDC ldr r1, [r1] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] movs r4, 0 strb r0, [r2, 0x1] adds r0, r2, 0 ldrb r0, [r0, 0x1] movs r1, 0x1 bl GetWindowAttribute strh r0, [r6, 0x8] add r0, sp, 0x8 ldrb r0, [r0, 0x1] movs r1, 0x2 bl GetWindowAttribute strh r0, [r6, 0xA] add r0, sp, 0x8 ldrb r0, [r0, 0x1] movs r1, 0x3 bl GetWindowAttribute strh r0, [r6, 0xC] add r0, sp, 0x8 ldrb r0, [r0, 0x1] movs r1, 0x4 bl GetWindowAttribute strh r0, [r6, 0xE] strh r4, [r6, 0x12] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0xA bne _081B3A2C movs r2, 0x1 negs r2, r2 adds r0, r2, 0 b _081B3A2E .pool _081B3A2C: movs r0, 0x1 _081B3A2E: strh r0, [r6, 0x16] ldr r4, =gUnknown_0203CEF0 movs r0, 0x4 ldrsh r1, [r6, r0] movs r2, 0x6 ldrsh r0, [r6, r2] lsls r0, 1 muls r0, r1 bl Alloc str r0, [r4] ldr r5, =gUnknown_0203CEF4 movs r0, 0xC ldrsh r1, [r6, r0] movs r2, 0xE ldrsh r0, [r6, r2] lsls r0, 1 muls r0, r1 bl Alloc str r0, [r5] ldr r1, [r4] ldrb r2, [r6] ldrb r3, [r6, 0x2] ldrb r0, [r6, 0x4] str r0, [sp] ldrb r0, [r6, 0x6] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC ldr r1, [r5] ldrb r2, [r6, 0x8] ldrb r3, [r6, 0xA] ldrb r0, [r6, 0xC] str r0, [sp] ldrb r0, [r6, 0xE] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC add r0, sp, 0x8 ldrb r0, [r0] bl ClearWindowTilemap add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl ClearWindowTilemap ldr r4, =gUnknown_0203CEC8 movs r0, 0x9 strb r0, [r4, 0xB] ldrb r0, [r4, 0x9] movs r1, 0x1 bl sub_81B0FCC ldrb r0, [r4, 0xA] movs r1, 0x1 bl sub_81B0FCC adds r0, r7, 0 bl sub_81B3CC0 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B3D48 str r1, [r0] _081B3ABA: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B3938 thumb_func_start sub_81B3AD8 sub_81B3AD8: @ 81B3AD8 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r2, 0 mov r12, r3 ldr r7, [sp, 0x18] lsls r0, 16 lsrs r3, r0, 16 adds r5, r3, 0 lsls r1, 16 lsrs r2, r1, 16 mov r8, r2 lsls r0, r3, 16 asrs r1, r0, 16 lsls r0, r2, 16 asrs r0, 16 adds r4, r1, r0 cmp r4, 0 blt _081B3B02 cmp r1, 0x1F ble _081B3B06 _081B3B02: movs r0, 0 b _081B3B34 _081B3B06: cmp r1, 0 bge _081B3B1A negs r0, r1 strb r0, [r6] movs r0, 0 mov r1, r12 strb r0, [r1] adds r0, r2, r3 strb r0, [r7] b _081B3B32 _081B3B1A: movs r0, 0 strb r0, [r6] mov r0, r12 strb r5, [r0] cmp r4, 0x1F ble _081B3B2E movs r0, 0x20 subs r0, r5 strb r0, [r7] b _081B3B32 _081B3B2E: mov r1, r8 strb r1, [r7] _081B3B32: movs r0, 0x1 _081B3B34: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81B3AD8 thumb_func_start sub_81B3B40 sub_81B3B40: @ 81B3B40 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 str r0, [sp, 0x28] ldr r0, [sp, 0x54] ldr r4, [sp, 0x58] lsls r2, 16 lsrs r2, 16 mov r9, r2 lsls r3, 16 lsls r0, 16 lsrs r0, 16 mov r10, r0 lsls r4, 16 lsrs r4, 16 str r4, [sp, 0x30] lsls r1, 16 asrs r7, r1, 16 lsrs r0, r3, 16 str r0, [sp, 0x2C] asrs r3, 16 mov r8, r3 mov r5, sp adds r5, 0x25 mov r6, sp adds r6, 0x26 str r6, [sp] adds r0, r7, 0 mov r1, r8 add r2, sp, 0x24 adds r3, r5, 0 bl sub_81B3AD8 lsls r0, 24 cmp r0, 0 beq _081B3BFA ldrb r2, [r5] mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r6] str r0, [sp] mov r1, r10 lsls r0, r1, 24 lsrs r4, r0, 24 str r4, [sp, 0x4] movs r0, 0 movs r1, 0 mov r3, r9 bl FillBgTilemapBufferRect_Palette0 ldr r1, [sp, 0x30] lsls r0, r1, 16 asrs r0, 16 adds r0, r7, r0 lsls r0, 16 asrs r0, 16 str r6, [sp] mov r1, r8 add r2, sp, 0x24 adds r3, r5, 0 bl sub_81B3AD8 lsls r0, 24 cmp r0, 0 beq _081B3BFA add r0, sp, 0x24 ldrb r2, [r0] ldr r1, [sp, 0x2C] lsls r0, r1, 24 lsrs r0, 24 str r0, [sp] str r4, [sp, 0x4] ldrb r0, [r5] str r0, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] ldrb r0, [r6] str r0, [sp, 0x10] str r4, [sp, 0x14] movs r0, 0x11 str r0, [sp, 0x18] movs r0, 0 str r0, [sp, 0x1C] str r0, [sp, 0x20] ldr r1, [sp, 0x28] movs r3, 0 bl CopyRectToBgTilemapBufferRect _081B3BFA: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B3B40 thumb_func_start sub_81B3C0C sub_81B3C0C: @ 81B3C0C push {r4,lr} ldr r4, =gSprites ldrb r2, [r0, 0xB] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r4 lsls r1, 16 asrs r1, 13 ldrh r2, [r3, 0x24] adds r2, r1 strh r2, [r3, 0x24] ldrb r3, [r0, 0xA] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r4 ldrh r3, [r2, 0x24] adds r3, r1 strh r3, [r2, 0x24] ldrb r3, [r0, 0x9] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r4 ldrh r3, [r2, 0x24] adds r3, r1 strh r3, [r2, 0x24] ldrb r2, [r0, 0xC] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 ldrh r2, [r0, 0x24] adds r2, r1 strh r2, [r0, 0x24] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3C0C thumb_func_start sub_81B3C60 sub_81B3C60: @ 81B3C60 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 beq _081B3C8E ldr r2, =gUnknown_0203CEDC ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r2, 0x14 ldrsh r1, [r4, r2] bl sub_81B3C0C _081B3C8E: movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0 beq _081B3CAC ldr r2, =gUnknown_0203CEDC ldr r0, =gUnknown_0203CEC8 movs r1, 0xA ldrsb r1, [r0, r1] lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r2, 0x16 ldrsh r1, [r4, r2] bl sub_81B3C0C _081B3CAC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3C60 thumb_func_start sub_81B3CC0 sub_81B3CC0: @ 81B3CC0 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r5, r1, r0 movs r1, 0x14 ldrsh r0, [r5, r1] cmp r0, 0 beq _081B3D00 ldr r0, =gUnknown_0203CEF0 ldr r0, [r0] ldrh r1, [r5, 0x10] ldrh r2, [r5] adds r1, r2 lsls r1, 16 asrs r1, 16 movs r3, 0x2 ldrsh r2, [r5, r3] movs r4, 0x4 ldrsh r3, [r5, r4] movs r6, 0x6 ldrsh r4, [r5, r6] str r4, [sp] movs r6, 0x14 ldrsh r4, [r5, r6] str r4, [sp, 0x4] bl sub_81B3B40 _081B3D00: movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 beq _081B3D2E ldr r0, =gUnknown_0203CEF4 ldr r0, [r0] ldrh r1, [r5, 0x12] ldrh r2, [r5, 0x8] adds r1, r2 lsls r1, 16 asrs r1, 16 movs r3, 0xA ldrsh r2, [r5, r3] movs r4, 0xC ldrsh r3, [r5, r4] movs r6, 0xE ldrsh r4, [r5, r6] str r4, [sp] movs r6, 0x16 ldrsh r4, [r5, r6] str r4, [sp, 0x4] bl sub_81B3B40 _081B3D2E: movs r0, 0 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B3CC0 thumb_func_start sub_81B3D48 sub_81B3D48: @ 81B3D48 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 2 adds r0, r4 lsls r7, r0, 3 ldr r0, =gTasks + 0x8 mov r8, r0 adds r6, r7, r0 adds r0, r4, 0 bl sub_81B3CC0 adds r0, r4, 0 bl sub_81B3C60 ldrh r1, [r6, 0x14] ldrh r2, [r6, 0x10] adds r1, r2 strh r1, [r6, 0x10] ldrh r0, [r6, 0x16] ldrh r3, [r6, 0x12] adds r0, r3 strh r0, [r6, 0x12] add r2, sp, 0x8 ldrh r0, [r6] adds r0, r1 strh r0, [r2] adds r1, r2, 0 ldrh r0, [r6, 0x12] ldrh r3, [r6, 0x8] adds r2, r0, r3 strh r2, [r1, 0x2] adds r0, r1, 0 ldrh r0, [r0] cmp r0, 0x21 bls _081B3E3A lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0x21 bls _081B3E3A movs r1, 0x14 ldrsh r0, [r6, r1] negs r0, r0 strh r0, [r6, 0x14] movs r2, 0x16 ldrsh r0, [r6, r2] negs r0, r0 strh r0, [r6, 0x16] bl swap_pokemon_and_oams ldr r4, =gUnknown_0203CEC8 ldrb r0, [r4, 0x9] bl sub_81B0948 ldrb r0, [r4, 0xA] bl sub_81B0948 movs r0, 0x9 ldrsb r0, [r4, r0] ldr r5, =gUnknown_0203CEDC ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0xA ldrsb r0, [r4, r0] ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap ldr r0, =gUnknown_0203CEF0 ldr r1, [r0] ldrb r2, [r6] ldrb r3, [r6, 0x2] ldrb r0, [r6, 0x4] str r0, [sp] ldrb r0, [r6, 0x6] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC ldr r0, =gUnknown_0203CEF4 ldr r1, [r0] ldrb r2, [r6, 0x8] ldrb r3, [r6, 0xA] ldrb r0, [r6, 0xC] str r0, [sp] ldrb r0, [r6, 0xE] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC movs r0, 0x9 ldrsb r0, [r4, r0] ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl ClearWindowTilemap movs r0, 0xA ldrsb r0, [r4, r0] ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl ClearWindowTilemap mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, =sub_81B3E60 str r1, [r0] _081B3E3A: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B3D48 thumb_func_start sub_81B3E60 sub_81B3E60: @ 81B3E60 push {r4-r6,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 adds r0, r6, 0 bl sub_81B3CC0 adds r0, r6, 0 bl sub_81B3C60 movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 bne _081B3EE4 movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 bne _081B3EE4 ldr r5, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r5, r0] ldr r4, =gUnknown_0203CEDC ldr r1, [r4] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0xA ldrsb r0, [r5, r0] ldr r1, [r4] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, =gUnknown_0203CEF0 ldr r0, [r0] bl Free ldr r0, =gUnknown_0203CEF4 ldr r0, [r0] bl Free adds r0, r6, 0 bl sub_81B407C b _081B3F08 .pool _081B3EE4: ldrh r1, [r4, 0x14] ldrh r0, [r4, 0x10] adds r1, r0 strh r1, [r4, 0x10] ldrh r0, [r4, 0x16] ldrh r2, [r4, 0x12] adds r0, r2 strh r0, [r4, 0x12] lsls r1, 16 asrs r1, 16 cmp r1, 0 bne _081B3EFE strh r1, [r4, 0x14] _081B3EFE: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _081B3F08 strh r0, [r4, 0x16] _081B3F08: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B3E60 thumb_func_start oamt_swap_pos oamt_swap_pos: @ 81B3F10 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} ldrb r3, [r0] ldrb r2, [r1] strb r2, [r0] strb r3, [r1] ldr r5, =gSprites ldrb r2, [r0] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r5 ldrh r6, [r3, 0x20] ldrh r2, [r3, 0x22] mov r8, r2 ldrh r2, [r3, 0x24] mov r9, r2 ldrh r2, [r3, 0x26] mov r10, r2 ldrb r4, [r1] lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x20] strh r2, [r3, 0x20] ldrb r2, [r0] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r5 ldrb r4, [r1] lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x22] strh r2, [r3, 0x22] ldrb r2, [r0] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r5 ldrb r4, [r1] lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x24] strh r2, [r3, 0x24] ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 ldrb r3, [r1] lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x26] strh r0, [r2, 0x26] ldrb r2, [r1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x20] ldrb r2, [r1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 mov r2, r8 strh r2, [r0, 0x22] ldrb r2, [r1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 mov r2, r9 strh r2, [r0, 0x24] ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r10 strh r1, [r0, 0x26] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end oamt_swap_pos thumb_func_start swap_pokemon_and_oams swap_pokemon_and_oams: @ 81B3FDC push {r4-r6,lr} sub sp, 0x8 ldr r1, =gUnknown_0203CEDC ldr r2, =gUnknown_0203CEC8 movs r3, 0x9 ldrsb r3, [r2, r3] lsls r0, r3, 4 ldr r1, [r1] adds r0, r1, r0 str r0, [sp] ldrb r2, [r2, 0xA] lsls r2, 24 asrs r2, 24 lsls r0, r2, 4 adds r0, r1, r0 str r0, [sp, 0x4] movs r1, 0x64 adds r4, r3, 0 muls r4, r1 ldr r0, =gPlayerParty adds r4, r0 adds r5, r2, 0 muls r5, r1 adds r5, r0 movs r0, 0x64 bl Alloc adds r6, r0, 0 adds r1, r4, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x64 bl memcpy adds r0, r6, 0 bl Free ldr r0, [sp] adds r0, 0xB ldr r1, [sp, 0x4] adds r1, 0xB bl oamt_swap_pos ldr r0, [sp] adds r0, 0xA ldr r1, [sp, 0x4] adds r1, 0xA bl oamt_swap_pos ldr r0, [sp] adds r0, 0x9 ldr r1, [sp, 0x4] adds r1, 0x9 bl oamt_swap_pos ldr r0, [sp] adds r0, 0xC ldr r1, [sp, 0x4] adds r1, 0xC bl oamt_swap_pos add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end swap_pokemon_and_oams thumb_func_start sub_81B407C sub_81B407C: @ 81B407C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C ldr r4, =gUnknown_0203CEC8 movs r0, 0 strb r0, [r4, 0xB] ldrb r0, [r4, 0x9] movs r1, 0 bl sub_81B0FCC ldrb r0, [r4, 0xA] strb r0, [r4, 0x9] ldrb r0, [r4, 0xA] movs r1, 0x1 bl sub_81B0FCC movs r0, 0 bl display_pokemon_menu_message ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1370 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B407C thumb_func_start brm_cancel_1 brm_cancel_1: @ 81B40D4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x6 bne _081B4110 movs r0, 0xF bl display_pokemon_menu_message b _081B4116 .pool _081B4110: movs r0, 0 bl display_pokemon_menu_message _081B4116: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end brm_cancel_1 thumb_func_start sub_81B4134 sub_81B4134: @ 81B4134 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gPlayerParty ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] movs r2, 0x8 bl sub_81B33B4 movs r0, 0x1 bl sub_81B31B0 movs r0, 0x18 bl display_pokemon_menu_message ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B4134 thumb_func_start sub_81B4198 sub_81B4198: @ 81B4198 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B41C4 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4198 thumb_func_start sub_81B41C4 sub_81B41C4: @ 81B41C4 push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _081B41E0 ldr r2, =c2_8123744 movs r0, 0x2 movs r1, 0x5 bl GoToBagMenu b _081B41E8 .pool _081B41E0: ldr r1, =c2_8123744 movs r0, 0x2 bl sub_81C4F98 _081B41E8: pop {r0} bx r0 .pool thumb_func_end sub_81B41C4 thumb_func_start c2_8123744 c2_8123744: @ 81B41F0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r6, =gSpecialVar_ItemId ldrh r0, [r6] cmp r0, 0 bne _081B4224 ldr r3, =gUnknown_0203CEC8 ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r3, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r3] b _081B425A .pool _081B4224: ldr r4, =gUnknown_0203CEFC ldr r5, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r5, r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r7, =gPlayerParty adds r0, r7 movs r1, 0xC bl GetMonData strh r0, [r4] lsls r0, 16 cmp r0, 0 beq _081B4278 ldrb r0, [r5, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r5, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B4350 str r1, [sp, 0x4] ldr r1, [r5] _081B425A: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 b _081B42C0 .pool _081B4278: ldrh r0, [r6] bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B42A4 ldrh r0, [r6] movs r1, 0x1 bl RemoveBagItem movs r0, 0x9 ldrsb r0, [r5, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 ldrh r1, [r6] bl sub_81B1DB8 bl sub_81B452C b _081B42C0 _081B42A4: ldrb r0, [r5, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r5, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B42D0 str r1, [sp, 0x4] ldr r1, [r5] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 _081B42C0: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end c2_8123744 thumb_func_start sub_81B42D0 sub_81B42D0: @ 81B42D0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B432C ldr r0, =gSpecialVar_ItemId ldrh r4, [r0] ldr r0, =gUnknown_0203CEC8 mov r8, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_81B1C84 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r6 adds r0, r5 adds r1, r4, 0 bl sub_81B1DB8 adds r0, r4, 0 movs r1, 0x1 bl RemoveBagItem ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] _081B432C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B42D0 thumb_func_start sub_81B4350 sub_81B4350: @ 81B4350 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 _081B4388 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_0203CEFC ldrh r1, [r1] movs r2, 0x1 bl sub_81B1D1C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B43A8 str r1, [r0] _081B4388: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4350 thumb_func_start sub_81B43A8 sub_81B43A8: @ 81B43A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B43CC bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B43DC str r0, [r1] _081B43CC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B43A8 thumb_func_start sub_81B43DC sub_81B43DC: @ 81B43DC push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B4402 cmp r1, 0 bgt _081B43FC movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B44D8 b _081B44EC _081B43FC: cmp r1, 0x1 beq _081B44DE b _081B44EC _081B4402: ldr r5, =gSpecialVar_ItemId ldrh r0, [r5] movs r1, 0x1 bl RemoveBagItem ldr r6, =gUnknown_0203CEFC ldrh r0, [r6] movs r1, 0x1 bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081B4458 ldrh r0, [r5] movs r1, 0x1 bl AddBagItem ldrh r0, [r6] bl pokemon_item_not_removed ldr r0, =gStringVar4 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B44EC .pool _081B4458: ldrh r0, [r5] bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B4498 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldrh r1, [r5] bl sub_81B1DB8 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B44FC str r1, [r0] b _081B44EC .pool _081B4498: ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldrh r1, [r5] bl sub_81B1DB8 ldrh r0, [r5] ldrh r1, [r6] movs r2, 0x1 bl sub_81B1D68 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] b _081B44EC .pool _081B44D8: movs r0, 0x5 bl PlaySE _081B44DE: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B44EC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B43DC thumb_func_start sub_81B44FC sub_81B44FC: @ 81B44FC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B451C ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B452C str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 _081B451C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B44FC thumb_func_start sub_81B452C sub_81B452C: @ 81B452C push {lr} ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x40 bl GetMonData lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr lsls r2, r0, 3 adds r2, r0 lsls r2, 2 ldr r0, =0x00002be0 adds r2, r0 ldr r1, [r1] adds r1, r2 ldr r2, =sub_81B4578 movs r0, 0x4 movs r3, 0x3 bl sub_811A20C pop {r0} bx r0 .pool thumb_func_end sub_81B452C thumb_func_start sub_81B4578 sub_81B4578: @ 81B4578 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, =gSpecialVar_Result ldrh r7, [r0] cmp r7, 0 bne _081B45F8 adds r0, r5, 0 bl TakeMailFromMon ldr r4, =gUnknown_0203CEFC adds r0, r5, 0 movs r1, 0xC adds r2, r4, 0 bl SetMonData ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem mov r0, r8 movs r1, 0x1 bl AddBagItem ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r6, 0xB] str r7, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r6] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 b _081B4614 .pool _081B45F8: ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r6, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B4624 str r1, [sp, 0x4] ldr r1, [r6] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 _081B4614: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4578 thumb_func_start sub_81B4624 sub_81B4624: @ 81B4624 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 _081B468A ldr r1, =gUnknown_0203CEFC ldrh r0, [r1] cmp r0, 0 bne _081B4670 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gSpecialVar_ItemId ldrh r1, [r1] movs r2, 0 movs r3, 0 bl sub_81B1C84 b _081B467C .pool _081B4670: ldr r0, =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r1] movs r2, 0 bl sub_81B1D68 _081B467C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B469C str r0, [r1] _081B468A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4624 thumb_func_start sub_81B469C sub_81B469C: @ 81B469C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B471C ldr r5, =gUnknown_0203CEDC movs r0, 0x9 ldrsb r0, [r4, r0] lsls r0, 4 ldr r1, [r5] adds r1, r0 adds r0, r6, 0 bl sub_81B5C94 ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xC bne _081B4716 adds r0, r6, 0 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B4704 movs r0, 0x9 ldrsb r0, [r4, r0] lsls r0, 4 ldr r1, [r5] adds r1, r0 movs r0, 0xB movs r2, 0x1 bl sub_81B2FA8 b _081B4716 .pool _081B4704: movs r0, 0x9 ldrsb r0, [r4, r0] lsls r0, 4 ldr r1, [r5] adds r1, r0 movs r0, 0xC movs r2, 0x1 bl sub_81B2FA8 _081B4716: adds r0, r7, 0 bl sub_81B1C1C _081B471C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B469C thumb_func_start sub_81B4724 sub_81B4724: @ 81B4724 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B1E00 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B4788 cmp r0, 0x1 beq _081B47AC adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_81B1CD0 b _081B47BA .pool _081B4788: ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gText_PkmnNotHolding adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 b _081B47B4 .pool _081B47AC: adds r0, r6, 0 bl pokemon_item_not_removed ldr r0, =gStringVar4 _081B47B4: movs r1, 0x1 bl sub_81B1B5C _081B47BA: movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r0, =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B469C str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4724 thumb_func_start sub_81B47E0 sub_81B47E0: @ 81B47E0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r5, r0, 16 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C cmp r5, 0 bne _081B4864 ldr r1, =gStringVar1 adds r0, r7, 0 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gText_PkmnNotHolding adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C b _081B488A .pool _081B4864: ldr r1, =gStringVar1 adds r0, r5, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gText_ThrowAwayItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B48A8 _081B488A: str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B47E0 thumb_func_start sub_81B48A8 sub_81B48A8: @ 81B48A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B48CC bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B48DC str r0, [r1] _081B48CC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B48A8 thumb_func_start sub_81B48DC sub_81B48DC: @ 81B48DC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B491A cmp r1, 0 bgt _081B4914 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B4964 b _081B4978 .pool _081B4914: cmp r1, 0x1 beq _081B496A b _081B4978 _081B491A: adds r0, r4, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r1, =gStringVar1 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gText_ItemThrownAway adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B4988 str r1, [r0] b _081B4978 .pool _081B4964: movs r0, 0x5 bl PlaySE _081B496A: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B4978: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B48DC thumb_func_start sub_81B4988 sub_81B4988: @ 81B4988 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B49EC movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r5, 0 movs r1, 0xC mov r2, sp bl SetMonData ldr r4, =gUnknown_0203CEDC movs r0, 0x9 ldrsb r0, [r6, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 adds r0, r5, 0 bl sub_81B5C94 movs r0, 0x9 ldrsb r0, [r6, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 movs r0, 0xC movs r2, 0x1 bl sub_81B2FA8 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B49EC: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4988 thumb_func_start sub_81B4A08 sub_81B4A08: @ 81B4A08 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gPlayerParty ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] movs r2, 0x9 bl sub_81B33B4 movs r0, 0x2 bl sub_81B31B0 movs r0, 0x19 bl display_pokemon_menu_message ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B4A08 thumb_func_start sub_81B4A6C sub_81B4A6C: @ 81B4A6C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B4A98 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4A6C thumb_func_start sub_81B4A98 sub_81B4A98: @ 81B4A98 push {lr} ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x40 bl GetMonData ldr r2, =gSaveBlock1Ptr lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, =0x00002be0 adds r1, r0 ldr r0, [r2] adds r0, r1 ldr r1, =sub_81B4AE0 movs r2, 0x1 bl ReadMail pop {r0} bx r0 .pool thumb_func_end sub_81B4A98 thumb_func_start sub_81B4AE0 sub_81B4AE0: @ 81B4AE0 push {lr} sub sp, 0xC ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r3, =gUnknown_0203CEC8 ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r3, 0xB] movs r1, 0x15 str r1, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r3] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B4AE0 thumb_func_start brm_take_2 brm_take_2: @ 81B4B20 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] adds r0, 0xD bl sub_81B302C ldr r0, [r5] adds r0, 0xC bl sub_81B302C ldr r0, =gText_SendMailToPC movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B4B6C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end brm_take_2 thumb_func_start sub_81B4B6C sub_81B4B6C: @ 81B4B6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B4B90 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B4BA0 str r0, [r1] _081B4B90: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4B6C thumb_func_start sub_81B4BA0 sub_81B4BA0: @ 81B4BA0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B4BC6 cmp r1, 0 bgt _081B4BC0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B4C30 b _081B4C4C _081B4BC0: cmp r1, 0x1 beq _081B4C36 b _081B4C4C _081B4BC6: ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 bl TakeMailFromMon2 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081B4C0C ldr r0, =gText_MailSentToPC movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C b _081B4C4A .pool _081B4C0C: ldr r0, =gText_PCMailboxFull movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C b _081B4C4A .pool _081B4C30: movs r0, 0x5 bl PlaySE _081B4C36: ldr r0, =gText_MailMessageWillBeLost movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B4C60 _081B4C4A: str r1, [r0] _081B4C4C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4BA0 thumb_func_start sub_81B4C60 sub_81B4C60: @ 81B4C60 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B4C84 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B4C94 str r0, [r1] _081B4C84: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4C60 thumb_func_start sub_81B4C94 sub_81B4C94: @ 81B4C94 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B4CBE cmp r1, 0 bgt _081B4CB8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B4D50 b _081B4D64 _081B4CB8: cmp r1, 0x1 beq _081B4D56 b _081B4D64 _081B4CBE: ldr r0, =gUnknown_0203CEC8 mov r8, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r7, 0x64 muls r0, r7 ldr r6, =gPlayerParty adds r0, r6 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B4D24 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r7 adds r0, r6 bl TakeMailFromMon ldr r0, =gText_MailTakenFromPkmn movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] b _081B4D64 .pool _081B4D24: adds r0, r4, 0 bl pokemon_item_not_removed ldr r0, =gStringVar4 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B4D64 .pool _081B4D50: movs r0, 0x5 bl PlaySE _081B4D56: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B4D64: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4C94 thumb_func_start sub_81B4D78 sub_81B4D78: @ 81B4D78 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r5, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r5, r1] movs r0, 0x64 muls r0, r1 ldr r6, =gPlayerParty adds r7, r0, r6 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldrb r4, [r5, 0x9] adds r0, r7, 0 bl sub_81B353C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r6, 0 adds r1, r4, 0 bl sub_81B33B4 ldrb r1, [r5, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xC beq _081B4DE4 movs r0, 0 bl sub_81B31B0 movs r0, 0x15 bl display_pokemon_menu_message b _081B4E02 .pool _081B4DE4: movs r0, 0x1 bl sub_81B31B0 adds r0, r7, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r1, =gStringVar2 bl CopyItemName movs r0, 0x1A bl display_pokemon_menu_message _081B4E02: ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4D78 thumb_func_start brm_shift_sendout brm_shift_sendout: @ 81B4E2C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 bl PlaySE ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] adds r0, 0xC bl sub_81B302C bl sub_81B8A7C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B4E5C adds r0, r4, 0 bl sub_81B12C0 b _081B4E7A .pool _081B4E5C: ldr r0, [r5] adds r0, 0xD bl sub_81B302C ldr r0, =gStringVar4 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B4E7A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end brm_shift_sendout thumb_func_start sub_81B4E8C sub_81B4E8C: @ 81B4E8C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C bl sub_81B8830 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 cmp r5, r6 bcs _081B4F36 ldr r2, =gUnknown_0203CEC8 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 mov r8, r0 _081B4EC6: ldr r0, =gUnknown_0203CEF8 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0 bne _081B4F2C movs r0, 0x5 str r2, [sp] bl PlaySE ldr r2, [sp] ldrb r0, [r2, 0x9] adds r0, 0x1 strb r0, [r4] adds r0, r5, 0x2 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEDC ldrb r2, [r2, 0x9] lsls r2, 24 asrs r2, 24 lsls r2, 4 ldr r1, [r1] adds r1, r2 movs r2, 0x1 bl sub_81B2FA8 subs r0, r6, 0x1 cmp r5, r0 bne _081B4F04 bl sub_81B4F88 _081B4F04: movs r0, 0 bl display_pokemon_menu_message ldr r0, =sub_81B1370 mov r1, r8 str r0, [r1] b _081B4F68 .pool _081B4F2C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _081B4EC6 _081B4F36: ldr r0, =gStringVar1 adds r1, r6, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_NoMoreThanVar1Pkmn adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x20 bl PlaySE adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B4F68: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4E8C thumb_func_start sub_81B4F88 sub_81B4F88: @ 81B4F88 push {r4,lr} ldr r4, =gUnknown_0203CEC8 ldrb r0, [r4, 0x9] movs r1, 0 bl sub_81B0FCC movs r0, 0x6 strb r0, [r4, 0x9] movs r1, 0x1 bl sub_81B0FCC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4F88 thumb_func_start sub_81B4FA8 sub_81B4FA8: @ 81B4FA8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C bl sub_81B8830 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _081B502A ldr r6, =gUnknown_0203CEF8 subs r2, r5, 0x1 adds r7, r6, 0 ldr r3, =gUnknown_0203CEC8 _081B4FE2: adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x9 ldrsb r0, [r3, r0] adds r0, 0x1 cmp r1, r0 bne _081B5020 adds r0, r4, 0 adds r4, r2, 0 cmp r0, r4 bge _081B500C adds r3, r7, 0 _081B4FFA: adds r2, r0, r3 adds r1, r0, 0x1 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r0, r1, 24 cmp r0, r4 blt _081B4FFA _081B500C: adds r1, r0, r6 movs r0, 0 strb r0, [r1] b _081B502A .pool _081B5020: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _081B4FE2 _081B502A: ldr r6, =gUnknown_0203CEDC ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 lsls r0, 4 ldr r1, [r6] adds r1, r0 movs r0, 0x1 movs r2, 0x1 bl sub_81B2FA8 movs r4, 0 subs r5, 0x1 mov r0, r8 lsls r7, r0, 2 cmp r4, r5 bge _081B5078 _081B504E: ldr r0, =gUnknown_0203CEF8 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0 beq _081B506E adds r0, r4, 0x2 lsls r0, 24 lsrs r0, 24 ldrb r2, [r1] lsls r2, 4 subs r2, 0x10 ldr r1, [r6] adds r1, r2 movs r2, 0x1 bl sub_81B2FA8 _081B506E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 blt _081B504E _081B5078: movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks mov r2, r8 adds r1, r7, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4FA8 thumb_func_start sub_81B50AC sub_81B50AC: @ 81B50AC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_81B50AC thumb_func_start sub_81B50C8 sub_81B50C8: @ 81B50C8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 mov r9, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x41 bl GetMonData adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 mov r1, r9 movs r0, 0x9 ldrsb r0, [r1, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r4 movs r1, 0xB bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r9 movs r0, 0x9 ldrsb r0, [r1, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r4 movs r1, 0x50 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800F7DC ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_807A8D0 cmp r0, 0x1 beq _081B515C cmp r0, 0x2 beq _081B5170 movs r0, 0x5 bl PlaySE adds r0, r7, 0 bl sub_81B12C0 b _081B51B0 .pool _081B515C: ldr r0, =gStringVar4 ldr r1, =gText_PkmnCantBeTradedNow bl StringExpandPlaceholders b _081B5178 .pool _081B5170: ldr r0, =gStringVar4 ldr r1, =gText_EggCantBeTradedNow bl StringExpandPlaceholders _081B5178: movs r0, 0x20 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r4, =gStringVar4 ldr r1, =gText_PauseUntilPress adds r0, r4, 0 bl StringAppend adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B51B0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B50C8 thumb_func_start brm_trade_1 brm_trade_1: @ 81B51D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 mov r8, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r6, 0x64 muls r0, r6 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x41 bl GetMonData mov r9, r0 mov r1, r9 lsls r1, 16 lsrs r1, 16 mov r9, r1 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r6 adds r0, r4 movs r1, 0xB bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r6 adds r0, r4 movs r1, 0x50 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800F7DC ldr r0, [r0] ldr r1, =gUnknown_02022C38 ldr r1, [r1] ldr r2, =gUnknown_02022C3C ldrh r3, [r2] ldr r2, =gUnknown_02022C3E ldrb r2, [r2] str r2, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] mov r2, r9 bl sub_807A7E0 cmp r0, 0 beq _081B52C8 ldr r5, =gStringVar4 ldr r1, =gUnknown_08615E0C subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x20 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r1, =gText_PauseUntilPress adds r0, r5, 0 bl StringAppend adds r0, r5, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B52D4 .pool _081B52C8: movs r0, 0x5 bl PlaySE adds r0, r7, 0 bl sub_81B12C0 _081B52D4: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end brm_trade_1 thumb_func_start sub_81B52E4 sub_81B52E4: @ 81B52E4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gPlayerParty ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl sub_807A918 cmp r0, 0x2 beq _081B5340 cmp r0, 0x2 bgt _081B5328 cmp r0, 0x1 beq _081B532E b _081B5368 .pool _081B5328: cmp r0, 0x3 beq _081B5354 b _081B5368 _081B532E: ldr r0, =gStringVar4 ldr r1, =gText_OnlyPkmnForBattle bl StringExpandPlaceholders b _081B53C0 .pool _081B5340: ldr r0, =gStringVar4 ldr r1, =gText_PkmnCantBeTradedNow bl StringExpandPlaceholders b _081B53C0 .pool _081B5354: ldr r0, =gStringVar4 ldr r1, =gText_EggCantBeTradedNow bl StringExpandPlaceholders b _081B53C0 .pool _081B5368: movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gJPText_PutVar1IntoSpinner adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B53FC b _081B53E4 .pool _081B53C0: movs r0, 0x20 bl PlaySE ldr r4, =gStringVar4 ldr r1, =gText_PauseUntilPress adds r0, r4, 0 bl StringAppend adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C _081B53E4: str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B52E4 thumb_func_start sub_81B53FC sub_81B53FC: @ 81B53FC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B5420 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B5430 str r0, [r1] _081B5420: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B53FC thumb_func_start sub_81B5430 sub_81B5430: @ 81B5430 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B5456 cmp r1, 0 bgt _081B5450 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B545E b _081B546A _081B5450: cmp r1, 0x1 beq _081B5464 b _081B546A _081B5456: adds r0, r4, 0 bl sub_81B12C0 b _081B546A _081B545E: movs r0, 0x5 bl PlaySE _081B5464: adds r0, r4, 0 bl sub_81B1C1C _081B546A: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5430 thumb_func_start sub_81B5470 sub_81B5470: @ 81B5470 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 bl GetMenuCursorPos ldr r5, =gUnknown_0203CEC4 ldr r1, [r5] lsls r0, 24 lsrs r0, 24 adds r1, 0xF adds r1, r0 ldrb r0, [r1] subs r0, 0x13 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 bl PlaySE ldr r1, =gUnknown_08615D9C lsls r0, r4, 3 adds r7, r0, r1 ldr r0, [r7] cmp r0, 0 bne _081B54A2 b _081B5664 _081B54A2: ldr r0, [r5] adds r0, 0xC bl sub_81B302C ldr r0, [r5] adds r0, 0xD bl sub_81B302C bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B54C6 bl InUnionRoom cmp r0, 0x1 bne _081B54E8 _081B54C6: adds r0, r4, 0 subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _081B54E4 movs r0, 0xD bl display_pokemon_menu_message b _081B5656 .pool _081B54E4: ldrb r0, [r7, 0x4] b _081B5652 _081B54E8: cmp r4, 0x7 bhi _081B5524 ldr r1, =0x00000867 adds r0, r4, r1 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B5524 ldr r0, =gText_CantUseUntilNewBadge movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B5664 .pool _081B5524: ldr r1, =gUnknown_08615D9C lsls r0, r4, 3 adds r5, r0, r1 ldr r0, [r5] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B553A b _081B563C _081B553A: subs r0, r4, 0x5 cmp r0, 0x7 bhi _081B5624 lsls r0, 2 ldr r1, =_081B5554 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B5554: .4byte _081B5614 .4byte _081B5624 .4byte _081B5624 .4byte _081B557C .4byte _081B55B8 .4byte _081B5624 .4byte _081B5574 .4byte _081B5574 _081B5574: adds r0, r6, 0 bl sub_8161560 b _081B5664 _081B557C: ldr r0, =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0x1C ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x1D] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r1, r0, 0 ldr r0, =gStringVar1 ldrb r1, [r1, 0x14] bl sub_81245DC ldr r0, =gStringVar4 ldr r1, =gText_ReturnToHealingSpot b _081B55E8 .pool _081B55B8: ldr r0, =gSaveBlock1Ptr ldr r1, [r0] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 adds r1, 0x25 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r1, r0, 0 ldr r0, =gStringVar1 ldrb r1, [r1, 0x14] bl sub_81245DC ldr r0, =gStringVar4 ldr r1, =gText_EscapeFromHere _081B55E8: bl StringExpandPlaceholders adds r0, r6, 0 bl sub_81B5674 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 strh r4, [r0] b _081B5664 .pool _081B5614: ldr r1, =gUnknown_0203CEC8 ldr r0, =MCB2_FlyMap b _081B5628 .pool _081B5624: ldr r1, =gUnknown_0203CEC8 ldr r0, =c2_exit_to_overworld_2_switch _081B5628: str r0, [r1] adds r0, r6, 0 bl sub_81B12C0 b _081B5664 .pool _081B563C: cmp r4, 0x1 beq _081B564A cmp r4, 0x4 bne _081B5650 bl sub_81B5864 b _081B5656 _081B564A: bl sub_81B57DC b _081B5656 _081B5650: ldrb r0, [r5, 0x4] _081B5652: bl display_pokemon_menu_message _081B5656: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =task_brm_cancel_1_on_keypad_a_or_b str r0, [r1] _081B5664: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5470 thumb_func_start sub_81B5674 sub_81B5674: @ 81B5674 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gStringVar4 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B56A4 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B5674 thumb_func_start sub_81B56A4 sub_81B56A4: @ 81B56A4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B56C8 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B56D8 str r0, [r1] _081B56C8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B56A4 thumb_func_start sub_81B56D8 sub_81B56D8: @ 81B56D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B56FE cmp r1, 0 bgt _081B56F8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B5714 b _081B572A _081B56F8: cmp r1, 0x1 beq _081B571A b _081B572A _081B56FE: ldr r1, =gUnknown_0203CEC8 ldr r0, =c2_exit_to_overworld_2_switch str r0, [r1] adds r0, r4, 0 bl sub_81B12C0 b _081B572A .pool _081B5714: movs r0, 0x5 bl PlaySE _081B571A: ldr r0, =gUnknown_03005DB0 movs r1, 0 str r1, [r0] ldr r0, =gUnknown_0203CEEC str r1, [r0] adds r0, r4, 0 bl sub_81B1C1C _081B572A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B56D8 thumb_func_start FieldCallback_Teleport FieldCallback_Teleport: @ 81B5738 push {lr} bl pal_fill_black ldr r0, =task_launch_hm_phase_2 movs r1, 0x8 bl CreateTask movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end FieldCallback_Teleport thumb_func_start task_launch_hm_phase_2 task_launch_hm_phase_2: @ 81B5750 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80ABDFC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B577C bl brm_get_selected_species ldr r1, =gFieldEffectArguments lsls r0, 16 lsrs r0, 16 str r0, [r1] ldr r0, =gUnknown_0203CEEC ldr r0, [r0] bl _call_via_r0 adds r0, r4, 0 bl DestroyTask _081B577C: pop {r4} pop {r0} bx r0 .pool thumb_func_end task_launch_hm_phase_2 thumb_func_start brm_get_selected_species brm_get_selected_species: @ 81B578C push {lr} ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .pool thumb_func_end brm_get_selected_species thumb_func_start task_brm_cancel_1_on_keypad_a_or_b task_brm_cancel_1_on_keypad_a_or_b: @ 81B57B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081B57CE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B57D4 _081B57CE: adds r0, r2, 0 bl brm_cancel_1 _081B57D4: pop {r0} bx r0 .pool thumb_func_end task_brm_cancel_1_on_keypad_a_or_b thumb_func_start sub_81B57DC sub_81B57DC: @ 81B57DC push {lr} ldr r0, =0x00000888 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B57F8 movs r0, 0xC bl display_pokemon_menu_message b _081B57FE .pool _081B57F8: movs r0, 0xD bl display_pokemon_menu_message _081B57FE: pop {r0} bx r0 thumb_func_end sub_81B57DC thumb_func_start hm_surf_run_dp02scr hm_surf_run_dp02scr: @ 81B5804 push {lr} bl GetCursorSelectionMonId ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] movs r0, 0x9 bl FieldEffectStart pop {r0} bx r0 .pool thumb_func_end hm_surf_run_dp02scr thumb_func_start sub_81B5820 sub_81B5820: @ 81B5820 push {lr} bl PartyHasMonWithSurf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B585C bl IsPlayerFacingSurfableFishableWater lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B585C ldr r1, =gUnknown_03005DB0 ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm_surf_run_dp02scr str r0, [r1] movs r0, 0x1 b _081B585E .pool _081B585C: movs r0, 0 _081B585E: pop {r1} bx r1 thumb_func_end sub_81B5820 thumb_func_start sub_81B5864 sub_81B5864: @ 81B5864 push {lr} movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _081B587A movs r0, 0x9 bl display_pokemon_menu_message b _081B5880 _081B587A: movs r0, 0x8 bl display_pokemon_menu_message _081B5880: pop {r0} bx r0 thumb_func_end sub_81B5864 thumb_func_start sub_81B5884 sub_81B5884: @ 81B5884 push {lr} ldr r0, =gMapHeader ldrb r0, [r0, 0x17] bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B58A0 movs r0, 0 b _081B58A2 .pool _081B58A0: movs r0, 0x1 _081B58A2: pop {r1} bx r1 thumb_func_end sub_81B5884 thumb_func_start sub_81B58A8 sub_81B58A8: @ 81B58A8 push {lr} sub sp, 0xC movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_8086194 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B58A8 thumb_func_start hm2_waterfall hm2_waterfall: @ 81B58D4 push {lr} bl GetCursorSelectionMonId ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] movs r0, 0x2B bl FieldEffectStart pop {r0} bx r0 .pool thumb_func_end hm2_waterfall thumb_func_start hm_prepare_waterfall hm_prepare_waterfall: @ 81B58F0 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsWaterfall lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B594C bl IsPlayerSurfingNorth lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B594C ldr r1, =gUnknown_03005DB0 ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_waterfall str r0, [r1] movs r0, 0x1 b _081B594E .pool _081B594C: movs r0, 0 _081B594E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end hm_prepare_waterfall thumb_func_start sub_81B5958 sub_81B5958: @ 81B5958 push {lr} bl GetCursorSelectionMonId ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] movs r0, 0x2C bl FieldEffectStart pop {r0} bx r0 .pool thumb_func_end sub_81B5958 thumb_func_start sub_81B5974 sub_81B5974: @ 81B5974 push {lr} bl sub_809D1E8 ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x4] cmp r0, 0 bne _081B5990 movs r0, 0 b _081B599E .pool _081B5990: ldr r1, =gUnknown_03005DB0 ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_81B5958 str r0, [r1] movs r0, 0x1 _081B599E: pop {r1} bx r1 .pool thumb_func_end sub_81B5974 thumb_func_start party_menu_icon_anim @ void party_menu_icon_anim(struct pokemon *mon, int a2, int a3) party_menu_icon_anim: @ 81B59B4 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 movs r6, 0x1 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B59EA ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B59EA ldr r0, =gUnknown_08616020 adds r0, r4, r0 ldrb r1, [r0] eors r1, r6 negs r0, r1 orrs r0, r1 lsrs r6, r0, 31 _081B59EA: adds r0, r5, 0 movs r1, 0x41 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0 bl GetMonData adds r1, r0, 0 str r6, [sp] adds r0, r4, 0 adds r2, r7, 0 movs r3, 0x1 bl party_menu_link_mon_icon_anim ldrb r0, [r7, 0x9] adds r1, r5, 0 bl sub_81B5B38 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end party_menu_icon_anim thumb_func_start party_menu_link_mon_icon_anim @ void party_menu_link_mon_icon_anim(u16 speciesId, u32 personality, int a3, char a4, int a5) party_menu_link_mon_icon_anim: @ 81B5A2C push {r4-r7,lr} sub sp, 0xC adds r6, r1, 0 adds r4, r2, 0 lsls r0, 16 lsrs r5, r0, 16 lsls r3, 24 lsrs r7, r3, 24 cmp r5, 0 beq _081B5A7A ldr r1, =sub_80D3014 ldr r0, [r4, 0x4] ldrb r2, [r0] ldrb r3, [r0, 0x1] movs r0, 0x4 str r0, [sp] str r6, [sp, 0x4] ldr r0, [sp, 0x20] str r0, [sp, 0x8] adds r0, r5, 0 bl CreateMonIcon strb r0, [r4, 0x9] ldr r2, =gSprites ldrb r0, [r4, 0x9] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x3 adds r2, r7, 0 ands r2, r0 lsls r2, 2 ldrb r3, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] _081B5A7A: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_icon_anim thumb_func_start sub_81B5A8C sub_81B5A8C: @ 81B5A8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 adds r0, r1, 0 adds r1, r2, 0 bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _081B5AEC cmp r0, 0x2 bgt _081B5AB4 cmp r0, 0x1 beq _081B5B04 b _081B5B1C _081B5AB4: cmp r0, 0x3 beq _081B5AD4 cmp r0, 0x4 bne _081B5B1C lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0 bl sub_80D32C8 b _081B5B2C .pool _081B5AD4: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl sub_80D32C8 b _081B5B2C .pool _081B5AEC: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x2 bl sub_80D32C8 b _081B5B2C .pool _081B5B04: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x3 bl sub_80D32C8 b _081B5B2C .pool _081B5B1C: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x4 bl sub_80D32C8 _081B5B2C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B5A8C thumb_func_start sub_81B5B38 sub_81B5B38: @ 81B5B38 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0x3A bl GetMonData adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_81B5A8C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B5B38 thumb_func_start sub_81B5B6C sub_81B5B6C: @ 81B5B6C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 ldr r5, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r6, r0, 2 adds r2, r6, r5 movs r7, 0 movs r3, 0 strh r3, [r2, 0x2E] mov r12, r5 cmp r1, 0 bne _081B5BC4 movs r1, 0x20 ldrsh r0, [r2, r1] cmp r0, 0x10 bne _081B5BA4 strh r3, [r2, 0x24] ldr r0, =0x0000fffc strh r0, [r2, 0x26] b _081B5BAA .pool _081B5BA4: ldr r0, =0x0000fffc strh r0, [r2, 0x24] strh r3, [r2, 0x26] _081B5BAA: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 mov r1, r12 adds r1, 0x1C adds r0, r1 ldr r1, =sub_81B5C08 b _081B5BD0 .pool _081B5BC4: strh r3, [r2, 0x24] strh r3, [r2, 0x26] adds r0, r5, 0 adds r0, 0x1C adds r0, r6, r0 ldr r1, =sub_81B5BDC _081B5BD0: str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5B6C thumb_func_start sub_81B5BDC sub_81B5BDC: @ 81B5BDC push {r4,lr} adds r4, r0, 0 bl sub_80D30DC lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B5C02 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081B5C00 ldr r0, =0x0000fffd strh r0, [r4, 0x26] b _081B5C02 .pool _081B5C00: strh r1, [r4, 0x26] _081B5C02: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5BDC thumb_func_start sub_81B5C08 sub_81B5C08: @ 81B5C08 push {lr} bl sub_80D30DC pop {r0} bx r0 thumb_func_end sub_81B5C08 thumb_func_start party_menu_held_item_object party_menu_held_item_object: @ 81B5C14 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B5C3C ldr r0, =gSpriteTemplate_8615EC0 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x3] movs r3, 0 bl CreateSprite strb r0, [r4, 0xA] adds r0, r5, 0 adds r1, r4, 0 bl sub_81B5C94 _081B5C3C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_held_item_object thumb_func_start party_menu_link_mon_held_item_object party_menu_link_mon_held_item_object: @ 81B5C48 push {r4,r5,lr} adds r4, r2, 0 lsls r0, 16 lsls r1, 16 lsrs r5, r1, 16 cmp r0, 0 beq _081B5C84 ldr r0, =gSpriteTemplate_8615EC0 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x3] movs r3, 0 bl CreateSprite strb r0, [r4, 0xA] ldr r2, =gSprites ldrb r0, [r4, 0xA] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] adds r0, r5, 0 adds r1, r4, 0 bl sub_81B5CB0 _081B5C84: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_held_item_object thumb_func_start sub_81B5C94 sub_81B5C94: @ 81B5C94 push {r4,lr} adds r4, r1, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl sub_81B5CB0 pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5C94 thumb_func_start sub_81B5CB0 sub_81B5CB0: @ 81B5CB0 push {r4,lr} adds r4, r1, 0 lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _081B5CD8 ldr r2, =gSprites ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _081B5D24 .pool _081B5CD8: bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B5CFC ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim b _081B5D0E .pool _081B5CFC: ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAnim _081B5D0E: ldr r2, =gSprites ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _081B5D24: strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B5CB0 thumb_func_start sub_81B5D30 sub_81B5D30: @ 81B5D30 push {lr} ldr r0, =gUnknown_08615EB0 bl LoadSpriteSheet ldr r0, =gUnknown_08615EB8 bl LoadSpritePalette pop {r0} bx r0 .pool thumb_func_end sub_81B5D30 thumb_func_start sub_81B5D4C sub_81B5D4C: @ 81B5D4C push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 cmp r2, 0 beq _081B5D60 cmp r2, 0x1 beq _081B5DA8 b _081B5DE4 _081B5D60: movs r5, 0 ldrb r0, [r6] cmp r5, r0 bcs _081B5DE4 _081B5D68: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _081B5D94 adds r0, r7, r5 ldrb r4, [r0] adds r0, r1, 0 bl ItemIsMail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B5DF0 _081B5D94: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrb r0, [r6] cmp r5, r0 bcc _081B5D68 b _081B5DE4 .pool _081B5DA8: movs r5, 0 b _081B5DDE _081B5DAC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _081B5DD8 adds r0, r5, r7 ldrb r4, [r0, 0x6] adds r0, r1, 0 bl ItemIsMail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B5DF0 _081B5DD8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _081B5DDE: ldrb r0, [r6, 0x1] cmp r5, r0 bcc _081B5DAC _081B5DE4: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5D4C thumb_func_start sub_81B5DF0 sub_81B5DF0: @ 81B5DF0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r6, r0, 0 mov r9, r1 lsls r6, 24 lsrs r6, 24 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, =gSprites mov r8, r0 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 add r0, r8 adds r0, 0x43 ldrb r3, [r0] ldr r0, =gSpriteTemplate_8615EC0 subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r1, 0xFA movs r2, 0xAA bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 mov r0, r8 adds r5, r4, r0 movs r0, 0x4 strh r0, [r5, 0x24] movs r0, 0xA strh r0, [r5, 0x26] movs r0, 0x1C add r8, r0 add r4, r8 ldr r0, =sub_81B5E74 str r0, [r4] strh r6, [r5, 0x3C] adds r0, r5, 0 mov r1, r9 bl StartSpriteAnim ldr r1, [r4] adds r0, r5, 0 bl _call_via_r1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B5DF0 thumb_func_start sub_81B5E74 sub_81B5E74: @ 81B5E74 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x3C] lsls r1, 24 lsrs r1, 24 ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r2 adds r0, r2, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _081B5EA8 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _081B5EC6 .pool _081B5EA8: adds r3, r4, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x24] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x26] ldrh r2, [r2, 0x22] adds r0, r2 strh r0, [r4, 0x22] _081B5EC6: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5E74 thumb_func_start party_menu_pokeball_object party_menu_pokeball_object: @ 81B5ECC push {r4,lr} adds r4, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B5EEA ldr r0, =gSpriteTemplate_8615F08 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x6] ldrb r2, [r2, 0x7] movs r3, 0x8 bl CreateSprite strb r0, [r4, 0xB] _081B5EEA: pop {r4} pop {r0} bx r0 .pool thumb_func_end party_menu_pokeball_object thumb_func_start party_menu_link_mon_pokeball_object party_menu_link_mon_pokeball_object: @ 81B5EF4 push {r4,lr} adds r4, r1, 0 lsls r0, 16 cmp r0, 0 beq _081B5F24 ldr r0, =gSpriteTemplate_8615F08 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x6] ldrb r2, [r2, 0x7] movs r3, 0x8 bl CreateSprite strb r0, [r4, 0xB] ldr r2, =gSprites ldrb r0, [r4, 0xB] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] _081B5F24: pop {r4} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_pokeball_object thumb_func_start sub_81B5F34 sub_81B5F34: @ 81B5F34 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, =gSpriteTemplate_8615F08 adds r1, r3, 0 movs r3, 0x8 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 ands r2, r3 movs r3, 0x8 orrs r2, r3 strb r2, [r1, 0x5] pop {r1} bx r1 .pool thumb_func_end sub_81B5F34 thumb_func_start sub_81B5F74 sub_81B5F74: @ 81B5F74 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, =gSpriteTemplate_8615F78 adds r1, r3, 0 movs r3, 0x8 bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_81B5F74 thumb_func_start sub_81B5F98 sub_81B5F98: @ 81B5F98 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, =gSprites adds r0, r2 bl StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_81B5F98 thumb_func_start sub_81B5FBC sub_81B5FBC: @ 81B5FBC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 cmp r6, 0 bne _081B6000 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, =gSprites mov r8, r0 add r4, r8 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim lsls r5, r7, 4 adds r5, r7 lsls r5, 2 add r5, r8 adds r0, r5, 0 movs r1, 0x4 bl StartSpriteAnim strh r6, [r4, 0x26] strh r6, [r5, 0x26] b _081B602C .pool _081B6000: lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r0, =gSprites mov r8, r0 add r5, r8 adds r0, r5, 0 movs r1, 0x3 bl StartSpriteAnim lsls r4, r7, 4 adds r4, r7 lsls r4, 2 add r4, r8 adds r0, r4, 0 movs r1, 0x5 bl StartSpriteAnim ldr r0, =0x0000fffc strh r0, [r5, 0x26] movs r0, 0x4 strh r0, [r4, 0x26] _081B602C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5FBC thumb_func_start sub_81B6040 sub_81B6040: @ 81B6040 push {lr} ldr r0, =gUnknown_08615EF8 bl LoadCompressedObjectPic ldr r0, =gUnknown_08615F70 bl LoadCompressedObjectPic ldr r0, =gUnknown_08615F00 bl LoadCompressedObjectPalette pop {r0} bx r0 .pool thumb_func_end sub_81B6040 thumb_func_start party_menu_status_condition_object party_menu_status_condition_object: @ 81B6064 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B608C ldr r0, =gSpriteTemplate_8616008 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x4] ldrb r2, [r2, 0x5] movs r3, 0 bl CreateSprite strb r0, [r4, 0xC] adds r0, r5, 0 adds r1, r4, 0 bl party_menu_get_status_condition_and_update_object _081B608C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_status_condition_object thumb_func_start party_menu_link_mon_status_condition_object party_menu_link_mon_status_condition_object: @ 81B6098 push {r4,r5,lr} adds r4, r2, 0 lsls r0, 16 lsls r1, 24 lsrs r5, r1, 24 cmp r0, 0 beq _081B60D4 ldr r0, =gSpriteTemplate_8616008 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x4] ldrb r2, [r2, 0x5] movs r3, 0 bl CreateSprite strb r0, [r4, 0xC] adds r0, r5, 0 adds r1, r4, 0 bl party_menu_update_status_condition_object ldr r2, =gSprites ldrb r0, [r4, 0xC] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] _081B60D4: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_status_condition_object thumb_func_start party_menu_get_status_condition_and_update_object @ void party_menu_get_status_condition_and_update_object(struct pokemon *mon, void *a2, void *a3) party_menu_get_status_condition_and_update_object: @ 81B60E4 push {r4,lr} adds r4, r1, 0 bl sub_81B205C lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl party_menu_update_status_condition_object pop {r4} pop {r0} bx r0 thumb_func_end party_menu_get_status_condition_and_update_object thumb_func_start party_menu_update_status_condition_object @ void party_menu_update_status_condition_object(u8 a1, void *a2) party_menu_update_status_condition_object: @ 81B60FC push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _081B610C cmp r2, 0x6 bne _081B6128 _081B610C: ldr r2, =gSprites ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _081B6152 .pool _081B6128: ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 subs r1, r2, 0x1 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _081B6152: strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_update_status_condition_object thumb_func_start sub_81B6160 sub_81B6160: @ 81B6160 push {lr} ldr r0, =gUnknown_08615FF8 bl LoadCompressedObjectPic ldr r0, =gUnknown_08616000 bl LoadCompressedObjectPalette pop {r0} bx r0 .pool thumb_func_end sub_81B6160 thumb_func_start sub_81B617C sub_81B617C: @ 81B617C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r0, =c2_815ABFC mov r8, r0 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B61BC movs r7, 0x1 bl sub_81B8984 lsls r0, 24 lsrs r6, r0, 24 b _081B61C0 .pool _081B61B0: ldr r0, =gUnknown_0203CEC8 strb r5, [r0, 0x9] b _081B6204 .pool _081B61BC: movs r7, 0 movs r6, 0 _081B61C0: ldr r4, =gSpecialVar_ItemId ldrh r0, [r4] bl GetItemEffectType lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _081B621C ldr r1, =gUnknown_0203CEC8 movs r0, 0 strb r0, [r1, 0x9] movs r5, 0 _081B61D8: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B61FA adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _081B61B0 _081B61FA: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _081B61D8 _081B6204: ldr r0, =sub_81B6280 movs r1, 0x7F b _081B6230 .pool _081B621C: ldrh r0, [r4] bl GetPocketByItemId lsls r0, 24 lsrs r0, 24 movs r1, 0x5 cmp r0, 0x3 bne _081B622E movs r1, 0x4 _081B622E: ldr r0, =sub_81B1370 _081B6230: str r1, [sp] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x3 movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B617C thumb_func_start c2_815ABFC c2_815ABFC: @ 81B6254 push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _081B626C movs r0, 0xC movs r1, 0x5 movs r2, 0 bl GoToBagMenu b _081B6276 _081B626C: ldr r0, =gUnknown_0203CF30 ldr r1, [r0] movs r0, 0x4 bl sub_81C4F98 _081B6276: pop {r0} bx r0 .pool thumb_func_end c2_815ABFC thumb_func_start sub_81B6280 sub_81B6280: @ 81B6280 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B62B2 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _081B62A6 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B9140 str r0, [r1, 0x4] _081B62A6: ldr r0, =gUnknown_03006328 ldr r1, =sub_81B6794 ldr r2, [r0] adds r0, r3, 0 bl _call_via_r2 _081B62B2: pop {r0} bx r0 .pool thumb_func_end sub_81B6280 thumb_func_start IsHPRecoveryItem @ bool8 IsHPRecoveryItem(u16 itemId) IsHPRecoveryItem: @ 81B62D0 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _081B62EC ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003214 adds r0, r1 b _081B62F6 .pool _081B62EC: ldr r1, =gItemEffectTable subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r0, [r0] _081B62F6: ldrb r1, [r0, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _081B6308 movs r0, 0 b _081B630A .pool _081B6308: movs r0, 0x1 _081B630A: pop {r1} bx r1 thumb_func_end IsHPRecoveryItem thumb_func_start GetMedicineItemEffectMessage @ void GetMedicineItemEffectMessage(u16 itemId) GetMedicineItemEffectMessage: @ 81B6310 push {lr} lsls r0, 16 lsrs r0, 16 bl GetItemEffectType lsls r0, 24 lsrs r0, 24 subs r0, 0x3 cmp r0, 0x12 bls _081B6326 b _081B64BC _081B6326: lsls r0, 2 ldr r1, =_081B6334 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B6334: .4byte _081B6380 .4byte _081B6394 .4byte _081B63A8 .4byte _081B63BC .4byte _081B63D0 .4byte _081B63E4 .4byte _081B63F8 .4byte _081B64BC .4byte _081B640C .4byte _081B6430 .4byte _081B6420 .4byte _081B6460 .4byte _081B6470 .4byte _081B6450 .4byte _081B6440 .4byte _081B64BC .4byte _081B6494 .4byte _081B6494 .4byte _081B64A8 _081B6380: ldr r0, =gStringVar4 ldr r1, =gText_PkmnCuredOfPoison bl StringExpandPlaceholders b _081B64C4 .pool _081B6394: ldr r0, =gStringVar4 ldr r1, =gText_PkmnWokeUp2 bl StringExpandPlaceholders b _081B64C4 .pool _081B63A8: ldr r0, =gStringVar4 ldr r1, =gText_PkmnBurnHealed bl StringExpandPlaceholders b _081B64C4 .pool _081B63BC: ldr r0, =gStringVar4 ldr r1, =gText_PkmnThawedOut bl StringExpandPlaceholders b _081B64C4 .pool _081B63D0: ldr r0, =gStringVar4 ldr r1, =gText_PkmnCuredOfParalysis bl StringExpandPlaceholders b _081B64C4 .pool _081B63E4: ldr r0, =gStringVar4 ldr r1, =gText_PkmnSnappedOutOfConfusion bl StringExpandPlaceholders b _081B64C4 .pool _081B63F8: ldr r0, =gStringVar4 ldr r1, =gText_PkmnGotOverInfatuation bl StringExpandPlaceholders b _081B64C4 .pool _081B640C: ldr r0, =gStringVar4 ldr r1, =gText_PkmnBecameHealthy bl StringExpandPlaceholders b _081B64C4 .pool _081B6420: ldr r0, =gStringVar2 ldr r1, =gText_HP3 b _081B6474 .pool _081B6430: ldr r0, =gStringVar2 ldr r1, =gText_Attack3 b _081B6474 .pool _081B6440: ldr r0, =gStringVar2 ldr r1, =gText_Defense3 b _081B6474 .pool _081B6450: ldr r0, =gStringVar2 ldr r1, =gText_Speed2 b _081B6474 .pool _081B6460: ldr r0, =gStringVar2 ldr r1, =gText_SpAtk3 b _081B6474 .pool _081B6470: ldr r0, =gStringVar2 ldr r1, =gText_SpDef3 _081B6474: bl StringCopy ldr r0, =gStringVar4 ldr r1, =gText_PkmnBaseVar2StatIncreased bl StringExpandPlaceholders b _081B64C4 .pool _081B6494: ldr r0, =gStringVar4 ldr r1, =gText_MovesPPIncreased bl StringExpandPlaceholders b _081B64C4 .pool _081B64A8: ldr r0, =gStringVar4 ldr r1, =gText_PPWasRestored bl StringExpandPlaceholders b _081B64C4 .pool _081B64BC: ldr r0, =gStringVar4 ldr r1, =gText_WontHaveEffect bl StringExpandPlaceholders _081B64C4: pop {r0} bx r0 .pool thumb_func_end GetMedicineItemEffectMessage thumb_func_start UsingHPEVItemOnShedinja @ bool8 UsingHPEVItemOnShedinja(struct pokemon *mon, u16 itemId) UsingHPEVItemOnShedinja: @ 81B64D0 push {r4,lr} adds r4, r0, 0 lsls r0, r1, 16 lsrs r0, 16 bl GetItemEffectType lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bne _081B64FC adds r0, r4, 0 movs r1, 0xB bl GetMonData ldr r1, =0x0000012f cmp r0, r1 bne _081B64FC movs r0, 0 b _081B64FE .pool _081B64FC: movs r0, 0x1 _081B64FE: pop {r4} pop {r1} bx r1 thumb_func_end UsingHPEVItemOnShedinja thumb_func_start IsBlueYellowRedFlute @ bool8 IsBlueYellowRedFlute(u16 itemId) IsBlueYellowRedFlute: @ 81B6504 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0x27 beq _081B6516 cmp r0, 0x29 beq _081B6516 cmp r0, 0x28 bne _081B651A _081B6516: movs r0, 0x1 b _081B651C _081B651A: movs r0, 0 _081B651C: pop {r1} bx r1 thumb_func_end IsBlueYellowRedFlute thumb_func_start ExecuteTableBasedItemEffect__ @ bool8 ExecuteTableBasedItemEffect__(u8 partyMonIndex, u16 itemId, u8 monMoveIndex) ExecuteTableBasedItemEffect__: @ 81B6520 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 24 lsrs r6, r2, 24 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _081B6558 movs r0, 0x64 muls r0, r3 ldr r1, =gPlayerParty adds r0, r1 adds r1, r5, 0 adds r2, r3, 0 b _081B6572 .pool _081B6558: movs r0, 0x64 adds r4, r3, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r3, 0 bl sub_81B8F38 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 _081B6572: adds r3, r6, 0 bl ExecuteTableBasedItemEffect_ lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end ExecuteTableBasedItemEffect__ thumb_func_start ItemUseCB_Medicine ItemUseCB_Medicine: @ 81B6588 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 str r1, [sp, 0x4] lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 mov r10, r0 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r0, =gSpecialVar_ItemId ldrh r6, [r0] adds r0, r5, 0 adds r1, r6, 0 bl UsingHPEVItemOnShedinja lsls r0, 24 cmp r0, 0 beq _081B6600 adds r0, r6, 0 bl IsHPRecoveryItem lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bne _081B65EE adds r0, r5, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r0, r5, 0 movs r1, 0x3A bl GetMonData cmp r10, r0 bne _081B65EE movs r1, 0 mov r8, r1 _081B65EE: ldr r4, =gUnknown_0203CEC8 ldrb r0, [r4, 0x9] adds r1, r6, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B6624 _081B6600: ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] movs r0, 0x5 bl PlaySE ldr r0, =gText_WontHaveEffect b _081B66F4 .pool _081B6624: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] adds r0, r6, 0 bl IsBlueYellowRedFlute lsls r0, 24 cmp r0, 0 bne _081B6650 movs r0, 0x1 bl PlaySE ldrb r0, [r4, 0xB] cmp r0, 0xE beq _081B6656 adds r0, r6, 0 movs r1, 0x1 bl RemoveBagItem b _081B6656 .pool _081B6650: movs r0, 0x75 bl PlaySE _081B6656: ldr r4, =gUnknown_0203CEDC ldr r7, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r7, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 adds r0, r5, 0 bl party_menu_get_status_condition_and_update_object ldr r2, =gSprites movs r0, 0x9 ldrsb r0, [r7, r0] ldr r1, [r4] lsls r0, 4 adds r3, r0, r1 ldrb r1, [r3, 0xC] 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 bge _081B6694 adds r0, r5, 0 adds r1, r3, 0 movs r2, 0x1 bl sub_81B2AC8 _081B6694: mov r2, r8 cmp r2, 0x1 bne _081B66E4 mov r0, r10 cmp r0, 0 bne _081B66A8 ldrb r0, [r7, 0x9] movs r1, 0x1 bl sub_81B0FCC _081B66A8: adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r3, r0, 0 mov r1, r10 subs r3, r1 lsls r3, 16 asrs r3, 16 ldrb r1, [r7, 0x9] ldr r0, =sub_81B672C str r0, [sp] mov r0, r9 movs r2, 0x1 bl sub_81B1F18 mov r0, r9 movs r1, 0 mov r2, r10 bl sub_81B1FA8 b _081B6710 .pool _081B66E4: ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname adds r0, r6, 0 bl GetMedicineItemEffectMessage ldr r0, =gStringVar4 _081B66F4: movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, [sp, 0x4] str r1, [r0] _081B6710: 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 ItemUseCB_Medicine thumb_func_start sub_81B672C sub_81B672C: @ 81B672C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gText_PkmnHPRestoredByVar2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram bl sub_805EAE8 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B672C thumb_func_start sub_81B6794 sub_81B6794: @ 81B6794 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B67BA ldr r0, =gUnknown_0203CEE8 ldrb r1, [r0] cmp r1, 0 bne _081B67B4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] str r1, [r0, 0x4] _081B67B4: adds r0, r4, 0 bl sub_81B12C0 _081B67BA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6794 thumb_func_start sub_81B67C8 sub_81B67C8: @ 81B67C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r1, [sp] lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r0, =gSpecialVar_ItemId ldrh r6, [r0] adds r0, r6, 0 bl GetItemEffectType lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x20 bl GetMonData lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r7, 0 bl sub_81B691C lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] ldrb r0, [r4, 0x9] adds r1, r6, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x20 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r9, r0 adds r0, r5, 0 adds r1, r7, 0 bl sub_81B691C lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r4, 0 bne _081B6850 ldr r0, [sp, 0x4] cmp r0, r9 bne _081B6874 ldr r1, [sp, 0x8] cmp r1, r8 bne _081B6874 _081B6850: ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] movs r0, 0x5 bl PlaySE ldr r0, =gText_WontHaveEffect b _081B68E2 .pool _081B6874: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 bl PlaySE adds r0, r6, 0 movs r1, 0x1 bl RemoveBagItem ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r7, 0 bl option_menu_get_string ldr r2, [sp, 0x4] cmp r2, r9 beq _081B68D8 ldr r0, [sp, 0x8] cmp r0, r8 beq _081B68C4 ldr r0, =gStringVar4 ldr r1, =gText_PkmnFriendlyBaseVar2Fell bl StringExpandPlaceholders b _081B68E0 .pool _081B68C4: ldr r0, =gStringVar4 ldr r1, =gText_PkmnFriendlyBaseVar2CantFall bl StringExpandPlaceholders b _081B68E0 .pool _081B68D8: ldr r0, =gStringVar4 ldr r1, =gText_PkmnAdoresBaseVar2Fell bl StringExpandPlaceholders _081B68E0: ldr r0, =gStringVar4 _081B68E2: movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks mov r2, r10 lsls r0, r2, 2 add r0, r10 lsls r0, 3 adds r0, r1 ldr r1, [sp] str r1, [r0] 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_81B67C8 thumb_func_start sub_81B691C sub_81B691C: @ 81B691C push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 subs r0, 0xC cmp r0, 0x5 bhi _081B6992 lsls r0, 2 ldr r1, =_081B693C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B693C: .4byte _081B696C .4byte _081B6954 .4byte _081B697E .4byte _081B6984 .4byte _081B6978 .4byte _081B6972 _081B6954: adds r0, r4, 0 movs r1, 0xB bl GetMonData ldr r1, =0x0000012f cmp r0, r1 beq _081B6992 adds r0, r4, 0 movs r1, 0x1A b _081B6988 .pool _081B696C: adds r0, r4, 0 movs r1, 0x1B b _081B6988 _081B6972: adds r0, r4, 0 movs r1, 0x1C b _081B6988 _081B6978: adds r0, r4, 0 movs r1, 0x1D b _081B6988 _081B697E: adds r0, r4, 0 movs r1, 0x1E b _081B6988 _081B6984: adds r0, r4, 0 movs r1, 0x1F _081B6988: bl GetMonData lsls r0, 16 lsrs r0, 16 b _081B6994 _081B6992: movs r0, 0 _081B6994: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B691C thumb_func_start option_menu_get_string option_menu_get_string: @ 81B699C push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 subs r0, 0xC cmp r0, 0x5 bhi _081B6A08 lsls r0, 2 ldr r1, =_081B69B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B69B8: .4byte _081B69D8 .4byte _081B69D0 .4byte _081B69F0 .4byte _081B6A00 .4byte _081B69E8 .4byte _081B69E0 _081B69D0: ldr r1, =gText_HP3 b _081B69F2 .pool _081B69D8: ldr r1, =gText_Attack3 b _081B69F2 .pool _081B69E0: ldr r1, =gText_Defense3 b _081B69F2 .pool _081B69E8: ldr r1, =gText_Speed2 b _081B69F2 .pool _081B69F0: ldr r1, =gText_SpAtk3 _081B69F2: adds r0, r2, 0 bl StringCopy b _081B6A08 .pool _081B6A00: ldr r1, =gText_SpDef3 adds r0, r2, 0 bl StringCopy _081B6A08: pop {r0} bx r0 .pool thumb_func_end option_menu_get_string thumb_func_start sub_81B6A10 sub_81B6A10: @ 81B6A10 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r7, 0 movs r0, 0x1 mov r10, r0 movs r0, 0x3 bl sub_81B31B0 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0x64 adds r1, r4, 0 muls r1, r0 mov r8, r1 ldr r0, =gPlayerParty mov r9, r0 _081B6A40: adds r1, r5, 0 adds r1, 0xD mov r0, r8 add r0, r9 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0xD adds r2, r4, 0 muls r2, r0 ldr r0, =gMoveNames adds r2, r0 lsls r0, r5, 4 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r6, 0 mov r1, r10 movs r3, 0x8 bl PrintTextOnWindow cmp r4, 0 beq _081B6A82 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _081B6A82: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081B6A40 adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram 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_81B6A10 thumb_func_start ether_effect_related_3 ether_effect_related_3: @ 81B6AB4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl ProcessMenuInput lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _081B6AF0 adds r0, 0x1 cmp r1, r0 bne _081B6AE0 movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B6BB4 b _081B6AF0 _081B6AE0: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl ether_effect_related_2 _081B6AF0: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ether_effect_related_3 thumb_func_start dp05_ether dp05_ether: @ 81B6AFC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gSpecialVar_ItemId ldrh r0, [r0] cmp r0, 0xAF bne _081B6B20 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003214 adds r0, r1 b _081B6B2A .pool _081B6B20: ldr r1, =gItemEffectTable subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r0, [r0] _081B6B2A: ldrb r1, [r0, 0x4] movs r0, 0x10 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _081B6B4C ldr r0, =gUnknown_0203CEC8 strh r1, [r0, 0xE] adds r0, r4, 0 bl ether_effect_related b _081B6B6E .pool _081B6B4C: movs r0, 0x5 bl PlaySE movs r0, 0x16 bl display_pokemon_menu_message ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] bl sub_81B6A10 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =ether_effect_related_3 str r1, [r0] _081B6B6E: pop {r4} pop {r0} bx r0 .pool thumb_func_end dp05_ether thumb_func_start ether_effect_related_2 ether_effect_related_2: @ 81B6B80 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xC bl sub_81B302C bl GetMenuCursorPos ldr r1, =gUnknown_0203CEC8 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 bl ether_effect_related pop {r4} pop {r0} bx r0 .pool thumb_func_end ether_effect_related_2 thumb_func_start sub_81B6BB4 sub_81B6BB4: @ 81B6BB4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, =sub_81B1370 str r0, [r1] ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0 str r1, [r0, 0x4] adds r0, 0xC bl sub_81B302C movs r0, 0x5 bl display_pokemon_menu_message pop {r0} bx r0 .pool thumb_func_end sub_81B6BB4 thumb_func_start ether_effect_related ether_effect_related: @ 81B6BEC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r7, =gUnknown_0203CED6 ldr r0, =gSpecialVar_ItemId ldrh r5, [r0] movs r0, 0xE negs r0, r0 adds r0, r7 mov r8, r0 ldrb r0, [r0, 0x9] ldrb r2, [r7] adds r1, r5, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B6C34 ldr r0, =gUnknown_0203CEE8 strb r4, [r0] movs r0, 0x5 bl PlaySE ldr r0, =gText_WontHaveEffect b _081B6C7E .pool _081B6C34: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] mov r0, r8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 adds r4, r1, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 movs r0, 0x1 bl PlaySE adds r0, r5, 0 movs r1, 0x1 bl RemoveBagItem movs r0, 0 ldrsh r1, [r7, r0] adds r1, 0xD adds r0, r4, 0 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r0, =gStringVar1 movs r1, 0xD muls r1, r4 ldr r2, =gMoveNames adds r1, r2 bl StringCopy adds r0, r5, 0 bl GetMedicineItemEffectMessage ldr r0, =gStringVar4 _081B6C7E: movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end ether_effect_related thumb_func_start dp05_pp_up dp05_pp_up: @ 81B6CC0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE movs r0, 0x17 bl display_pokemon_menu_message ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] bl sub_81B6A10 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =ether_effect_related_3 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end dp05_pp_up thumb_func_start ItemIdToBattleMoveId ItemIdToBattleMoveId: @ 81B6CFC lsls r0, 16 ldr r1, =0xfedf0000 adds r0, r1 ldr r1, =gUnknown_08616040 lsrs r0, 15 adds r0, r1 ldrh r0, [r0] bx lr .pool thumb_func_end ItemIdToBattleMoveId thumb_func_start sub_81B6D14 sub_81B6D14: @ 81B6D14 push {lr} lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldr r3, =gUnknown_08616040 _081B6D1E: adds r0, r1, 0 adds r0, 0x32 lsls r0, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r2 bne _081B6D34 movs r0, 0x1 b _081B6D40 .pool _081B6D34: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _081B6D1E movs r0, 0 _081B6D40: pop {r1} bx r1 thumb_func_end sub_81B6D14 thumb_func_start pokemon_has_move pokemon_has_move: @ 81B6D44 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 _081B6D4E: adds r1, r4, 0 adds r1, 0xD adds r0, r6, 0 bl GetMonData cmp r0, r5 bne _081B6D60 movs r0, 0x1 b _081B6D6C _081B6D60: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081B6D4E movs r0, 0 _081B6D6C: pop {r4-r6} pop {r1} bx r1 thumb_func_end pokemon_has_move thumb_func_start sub_81B6D74 sub_81B6D74: @ 81B6D74 push {r4,lr} adds r1, r0, 0 ldr r4, =gStringVar4 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6D74 thumb_func_start sub_81B6D98 sub_81B6D98: @ 81B6D98 push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 bl sub_81B6D74 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6D98 thumb_func_start sub_81B6DC4 sub_81B6DC4: @ 81B6DC4 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x5 bl PlaySE ldr r7, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 movs r0, 0xE adds r0, r7 mov r8, r0 ldr r0, =gSpecialVar_ItemId ldrh r4, [r0] ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname adds r0, r4, 0 bl ItemIdToBattleMoveId strh r0, [r7, 0xE] ldr r0, =gStringVar2 movs r1, 0xE ldrsh r2, [r7, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy movs r0, 0 mov r1, r8 strh r0, [r1, 0x2] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_81B22D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B6E70 cmp r0, 0x2 beq _081B6E78 ldrh r1, [r7, 0xE] adds r0, r5, 0 bl GiveMoveToMon lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 beq _081B6E88 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B6EB4 str r0, [r1] b _081B6E9C .pool _081B6E70: ldr r1, =gText_PkmnCantLearnMove b _081B6E7A .pool _081B6E78: ldr r1, =gText_PkmnAlreadyKnows _081B6E7A: adds r0, r6, 0 bl sub_81B6D98 b _081B6E9C .pool _081B6E88: ldr r0, =gText_PkmnNeedsToReplaceMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] _081B6E9C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B6DC4 thumb_func_start sub_81B6EB4 sub_81B6EB4: @ 81B6EB4 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r2, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r2, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r6, r2, 0 adds r6, 0xE ldr r0, =gSpecialVar_ItemId ldrh r4, [r0] movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, 0 bne _081B6EF0 adds r0, r5, 0 movs r1, 0x4 bl AdjustFriendship movs r0, 0xA9 lsls r0, 1 cmp r4, r0 bhi _081B6EF0 adds r0, r4, 0 movs r1, 0x1 bl RemoveBagItem _081B6EF0: ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0 ldrsh r2, [r6, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gText_PkmnLearnedMove3 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C 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_81B6F60 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B6EB4 thumb_func_start sub_81B6F60 sub_81B6F60: @ 81B6F60 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B6F86 ldr r0, =0x0000016f bl PlayFanfare ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6F98 str r1, [r0] _081B6F86: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6F60 thumb_func_start sub_81B6F98 sub_81B6F98: @ 81B6F98 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _081B6FEA ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _081B6FC0 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B6FEA _081B6FC0: ldr r0, =gUnknown_0203CEC8 movs r1, 0x10 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _081B6FDC adds r0, r4, 0 bl sub_81B77AC b _081B6FEA .pool _081B6FDC: cmp r0, 0x2 bne _081B6FE4 ldr r0, =gSpecialVar_Result strh r2, [r0] _081B6FE4: adds r0, r5, 0 bl sub_81B12C0 _081B6FEA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B6F98 thumb_func_start sub_81B6FF4 sub_81B6FF4: @ 81B6FF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7018 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B7028 str r0, [r1] _081B7018: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6FF4 thumb_func_start sub_81B7028 sub_81B7028: @ 81B7028 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B704E cmp r1, 0 bgt _081B7048 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B7074 b _081B7080 _081B7048: cmp r1, 0x1 beq _081B707A b _081B7080 _081B704E: ldr r0, =gText_WhichMoveToForget movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B7088 str r1, [r0] b _081B7080 .pool _081B7074: movs r0, 0x5 bl PlaySE _081B707A: adds r0, r4, 0 bl sub_81B7230 _081B7080: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B7028 thumb_func_start sub_81B7088 sub_81B7088: @ 81B7088 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B70A8 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B70B8 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 _081B70A8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B7088 thumb_func_start sub_81B70B8 sub_81B70B8: @ 81B70B8 push {r4,lr} sub sp, 0x4 ldr r0, =gPlayerParty ldr r4, =gUnknown_0203CEC8 ldrb r1, [r4, 0x9] ldr r2, =gPlayerPartyCount ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, =sub_81B70F0 ldrh r4, [r4, 0xE] str r4, [sp] bl sub_81BFA38 add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B70B8 thumb_func_start sub_81B70F0 sub_81B70F0: @ 81B70F0 push {lr} sub sp, 0xC movs r0, 0x7F str r0, [sp] ldr r0, =sub_81B711C str r0, [sp, 0x4] ldr r0, =gUnknown_0203CEC8 ldr r0, [r0] str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B70F0 thumb_func_start sub_81B711C sub_81B711C: @ 81B711C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B714E bl sub_81C1B94 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _081B7148 adds r0, r4, 0 bl sub_81B7154 b _081B714E .pool _081B7148: adds r0, r5, 0 bl sub_81B7230 _081B714E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B711C thumb_func_start sub_81B7154 sub_81B7154: @ 81B7154 push {r4-r6,lr} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, =gPlayerParty adds r5, r0 bl sub_81C1B94 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r1, 0xD adds r0, r5, 0 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xD muls r1, r4 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r0, =gText_12PoofForgotMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B71D4 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B7154 thumb_func_start sub_81B71D4 sub_81B71D4: @ 81B71D4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7220 ldr r5, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r5, r1] movs r0, 0x64 adds r4, r1, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 bl sub_81C1B94 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RemoveMonPPBonus ldrh r5, [r5, 0xE] bl sub_81C1B94 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl SetMonMoveSlot adds r0, r6, 0 bl sub_81B6EB4 _081B7220: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B71D4 thumb_func_start sub_81B7230 sub_81B7230: @ 81B7230 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gStringVar2 ldr r1, =gUnknown_0203CEC8 movs r3, 0xE ldrsh r2, [r1, r3] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gText_StopLearningMove2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B7294 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B7230 thumb_func_start sub_81B7294 sub_81B7294: @ 81B7294 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B72B8 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B72C8 str r0, [r1] _081B72B8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B7294 thumb_func_start sub_81B72C8 sub_81B72C8: @ 81B72C8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 beq _081B7306 cmp r5, 0 bgt _081B7300 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _081B738C b _081B73C2 .pool _081B7300: cmp r5, 0x1 beq _081B7392 b _081B73C2 _081B7306: ldr r1, =gStringVar1 adds r0, r4, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xE ldrsh r2, [r7, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gText_MoveNotLearned adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r3, 0x10 ldrsh r0, [r7, r3] cmp r0, 0x1 bne _081B7368 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B73E4 str r0, [r1] b _081B73C2 .pool _081B7368: cmp r0, 0x2 bne _081B7370 ldr r0, =gSpecialVar_Result strh r5, [r0] _081B7370: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B6794 str r0, [r1] b _081B73C2 .pool _081B738C: movs r0, 0x5 bl PlaySE _081B7392: ldr r1, =gStringVar1 adds r0, r4, 0 bl GetMonNickname ldr r0, =gStringVar2 ldr r1, =gUnknown_0203CEC8 movs r3, 0xE ldrsh r2, [r1, r3] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r0, =gText_PkmnNeedsToReplaceMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] _081B73C2: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B72C8 thumb_func_start sub_81B73E4 sub_81B73E4: @ 81B73E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B73FC adds r0, r4, 0 bl sub_81B77AC _081B73FC: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B73E4 thumb_func_start dp05_rare_candy dp05_rare_candy: @ 81B7404 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r1 lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 mov r9, r0 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r0, =gUnknown_0203CEC4 ldr r6, [r0] movs r1, 0x86 lsls r1, 2 adds r4, r6, r1 ldr r2, =gSpecialVar_ItemId mov r8, r2 adds r0, r5, 0 movs r1, 0x38 bl GetMonData cmp r0, 0x64 beq _081B7478 adds r0, r5, 0 adds r1, r4, 0 bl sub_81B79A0 mov r1, r9 ldrb r0, [r1, 0x9] mov r2, r8 ldrh r1, [r2] movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x89 lsls r0, 2 adds r1, r6, r0 adds r0, r5, 0 bl sub_81B79A0 b _081B747A .pool _081B7478: movs r4, 0x1 _081B747A: movs r0, 0x5 bl PlaySE cmp r4, 0 beq _081B74B4 ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] ldr r0, =gText_WontHaveEffect movs r1, 0x1 bl sub_81B1B5C 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 mov r1, r10 b _081B7516 .pool _081B74B4: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] movs r0, 0 bl PlayFanfareByFanfareNum ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] adds r1, r5, 0 bl sub_81B754C ldr r0, =gSpecialVar_ItemId ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r4, =gStringVar2 adds r0, r5, 0 movs r1, 0x38 bl GetMonData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_PkmnElevatedToLvVar2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C 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_81B75D4 _081B7516: str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp05_rare_candy thumb_func_start sub_81B754C sub_81B754C: @ 81B754C push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r6, =gUnknown_0203CEDC lsls r4, r7, 4 ldr r1, [r6] adds r1, r4 adds r0, r5, 0 bl party_menu_get_status_condition_and_update_object ldr r2, =gSprites ldr r0, [r6] adds r3, r4, r0 ldrb r1, [r3, 0xC] 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 bge _081B7588 adds r0, r5, 0 adds r1, r3, 0 movs r2, 0x1 bl sub_81B2AC8 _081B7588: ldr r1, [r6] adds r1, r4 adds r0, r5, 0 movs r2, 0x1 bl sub_81B2CD4 ldr r1, [r6] adds r1, r4 adds r0, r5, 0 movs r2, 0x1 bl sub_81B2D74 ldr r1, [r6] adds r1, r4 adds r0, r5, 0 bl sub_81B2E28 ldr r0, [r6] adds r0, r4, r0 ldrb r0, [r0, 0x9] adds r1, r5, 0 bl sub_81B5B38 adds r0, r7, 0 movs r1, 0x1 bl sub_81B0FCC movs r0, 0 bl schedule_bg_copy_tilemap_to_vram pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B754C thumb_func_start sub_81B75D4 sub_81B75D4: @ 81B75D4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _081B7620 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7620 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081B7606 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B7620 _081B7606: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B767C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B7634 str r0, [r1] _081B7620: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B75D4 thumb_func_start sub_81B7634 sub_81B7634: @ 81B7634 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 bne _081B764E movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B7668 _081B764E: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B76C8 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B7704 str r0, [r1] _081B7668: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B7634 thumb_func_start sub_81B767C sub_81B767C: @ 81B767C push {r4,r5,lr} sub sp, 0x8 ldr r0, =gUnknown_0203CEC4 ldr r5, [r0] movs r0, 0x86 lsls r0, 2 adds r4, r5, r0 bl sub_81B3364 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] ldrh r0, [r4, 0x18] movs r1, 0x89 lsls r1, 2 adds r2, r5, r1 movs r1, 0x2 str r1, [sp] movs r1, 0x3 str r1, [sp, 0x4] adds r1, r4, 0 movs r3, 0x1 bl sub_81D3640 ldrb r0, [r4, 0x18] movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B767C thumb_func_start sub_81B76C8 sub_81B76C8: @ 81B76C8 push {r4,lr} sub sp, 0x4 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] movs r0, 0x86 lsls r0, 2 adds r4, r1, r0 ldrh r0, [r4, 0x18] movs r2, 0x89 lsls r2, 2 adds r1, r2 movs r2, 0x3 str r2, [sp] movs r2, 0x1 movs r3, 0x2 bl sub_81D3784 ldrb r0, [r4, 0x18] movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B76C8 thumb_func_start sub_81B7704 sub_81B7704: @ 81B7704 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _081B77A6 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _081B772C movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B77A6 _081B772C: bl sub_81B3394 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1 bl MonTryLearningNewMove lsls r0, 16 lsrs r1, r0, 16 strh r6, [r4, 0x10] ldr r0, =0x0000fffe cmp r1, r0 beq _081B7788 cmp r1, r0 bgt _081B776C cmp r1, 0 beq _081B7778 b _081B77A0 .pool _081B776C: ldr r0, =0x0000ffff cmp r1, r0 beq _081B7780 b _081B77A0 .pool _081B7778: adds r0, r5, 0 bl sub_81B7810 b _081B77A6 _081B7780: adds r0, r5, 0 bl sub_81B787C b _081B77A6 _081B7788: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B77AC str r0, [r1] b _081B77A6 .pool _081B77A0: adds r0, r5, 0 bl sub_81B7910 _081B77A6: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B7704 thumb_func_start sub_81B77AC sub_81B77AC: @ 81B77AC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0 bl MonTryLearningNewMove lsls r0, 16 lsrs r1, r0, 16 ldr r0, =0x0000fffe cmp r1, r0 beq _081B780A cmp r1, r0 bgt _081B77E8 cmp r1, 0 beq _081B77F4 b _081B7804 .pool _081B77E8: ldr r0, =0x0000ffff cmp r1, r0 beq _081B77FC b _081B7804 .pool _081B77F4: adds r0, r4, 0 bl sub_81B7810 b _081B780A _081B77FC: adds r0, r4, 0 bl sub_81B787C b _081B780A _081B7804: adds r0, r4, 0 bl sub_81B7910 _081B780A: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B77AC thumb_func_start sub_81B7810 sub_81B7810: @ 81B7810 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0 movs r2, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _081B7860 bl sub_81B06F4 ldr r0, =gCB2_AfterEvolution ldr r1, [r6] str r1, [r0] ldrb r3, [r6, 0x9] adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x1 bl BeginEvolutionScene adds r0, r5, 0 bl DestroyTask b _081B786E .pool _081B7860: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B6794 str r0, [r1] _081B786E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7810 thumb_func_start sub_81B787C sub_81B787C: @ 81B787C push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC8 mov r8, r0 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar2 ldr r6, =gMoveToLearn ldrh r2, [r6] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gText_PkmnNeedsToReplaceMove adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldrh r0, [r6] mov r1, r8 strh r0, [r1, 0xE] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B787C thumb_func_start sub_81B7910 sub_81B7910: @ 81B7910 push {r4-r6,lr} mov r6, r8 push {r6} adds r6, r0, 0 adds r5, r1, 0 lsls r6, 24 lsrs r6, 24 lsls r5, 16 lsrs r5, 16 ldr r0, =gUnknown_0203CEC8 mov r8, r0 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xD muls r1, r5 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gText_PkmnLearnedMove3 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram mov r0, r8 strh r5, [r0, 0xE] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6F60 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B7910 thumb_func_start sub_81B79A0 sub_81B79A0: @ 81B79A0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r1, 0x3A bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x3B bl GetMonData strh r0, [r5, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData strh r0, [r5, 0x4] adds r0, r4, 0 movs r1, 0x3E bl GetMonData strh r0, [r5, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData strh r0, [r5, 0xA] adds r0, r4, 0 movs r1, 0x3D bl GetMonData strh r0, [r5, 0x6] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B79A0 thumb_func_start sub_81B79E8 sub_81B79E8: @ 81B79E8 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEC4 ldr r2, [r1] movs r3, 0x86 lsls r3, 2 adds r1, r2, r3 movs r3, 0 strh r3, [r1] ldr r4, =0x0000021a adds r1, r2, r4 strh r3, [r1] ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] lsls r1, 24 asrs r1, 24 movs r3, 0x87 lsls r3, 2 adds r2, r3 strh r1, [r2] bl sub_81B7A28 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B79E8 thumb_func_start sub_81B7A28 sub_81B7A28: @ 81B7A28 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B7A6E adds r0, r5, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r7, r0, 16 ldrb r0, [r6, 0x9] ldr r1, =gSpecialVar_ItemId ldrh r1, [r1] movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B7A94 _081B7A6E: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =task_intro_gamefreak str r0, [r1] b _081B7B2A .pool _081B7A94: movs r0, 0x1 bl PlaySE ldr r4, =gUnknown_0203CEDC movs r0, 0x9 ldrsb r0, [r6, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 adds r0, r5, 0 bl party_menu_get_status_condition_and_update_object ldr r2, =gSprites movs r0, 0x9 ldrsb r0, [r6, r0] ldr r1, [r4] lsls r0, 4 adds r3, r0, r1 ldrb r1, [r3, 0xC] 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 bge _081B7AD6 adds r0, r5, 0 adds r1, r3, 0 movs r2, 0x1 bl sub_81B2AC8 _081B7AD6: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] movs r1, 0x87 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_81B0FCC ldrb r0, [r6, 0x9] movs r1, 0x1 bl sub_81B0FCC adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r3, r0, 0 subs r3, r7 lsls r3, 16 asrs r3, 16 ldrb r1, [r6, 0x9] ldr r0, =sub_81B7C10 str r0, [sp] mov r0, r8 movs r2, 0x1 bl sub_81B1F18 mov r0, r8 movs r1, 0 adds r2, r7, 0 bl sub_81B1FA8 ldr r0, [r4] movs r2, 0x86 lsls r2, 2 adds r1, r0, r2 movs r2, 0x1 strh r2, [r1] ldr r1, =0x0000021a adds r0, r1 strh r2, [r0] _081B7B2A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7A28 thumb_func_start task_intro_gamefreak task_intro_gamefreak: @ 81B7B4C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7C0A ldr r5, =gUnknown_0203CEC4 ldr r2, [r5] movs r0, 0x86 lsls r0, 2 adds r1, r2, r0 movs r3, 0 ldrsh r0, [r1, r3] ldr r3, =gUnknown_0203CEC8 cmp r0, 0x1 bne _081B7B82 movs r0, 0 strh r0, [r1] movs r1, 0x9 ldrsb r1, [r3, r1] movs r6, 0x87 lsls r6, 2 adds r0, r2, r6 strh r1, [r0] _081B7B82: ldrb r0, [r3, 0x9] adds r0, 0x1 strb r0, [r3, 0x9] lsls r0, 24 asrs r0, 24 cmp r0, 0x6 bne _081B7C04 ldr r0, [r5] ldr r1, =0x0000021a adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 bne _081B7BC8 ldr r0, =gUnknown_0203CEE8 strb r1, [r0] ldr r0, =gText_WontHaveEffect movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram b _081B7BD8 .pool _081B7BC8: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] ldr r0, =gSpecialVar_ItemId ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem _081B7BD8: ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] ldr r1, =gUnknown_0203CEC8 movs r0, 0 strb r0, [r1, 0x9] b _081B7C0A .pool _081B7C04: adds r0, r4, 0 bl sub_81B7A28 _081B7C0A: pop {r4-r6} pop {r0} bx r0 thumb_func_end task_intro_gamefreak thumb_func_start sub_81B7C10 sub_81B7C10: @ 81B7C10 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gText_PkmnHPRestoredByVar2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =task_intro_gamefreak str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B7C10 thumb_func_start sub_81B7C74 sub_81B7C74: @ 81B7C74 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x5 bl PlaySE ldr r2, =gCB2_AfterEvolution ldr r1, =gUnknown_0203CEC8 ldr r0, [r1] str r0, [r2] ldrb r0, [r1, 0x9] ldr r4, =gSpecialVar_ItemId ldrh r1, [r4] movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B7CD8 ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] ldr r0, =gText_WontHaveEffect movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 str r6, [r0] b _081B7CE4 .pool _081B7CD8: ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem bl sub_81B06F4 _081B7CE4: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B7C74 thumb_func_start GetItemEffectType @ u8 GetItemEffectType(u16 itemId) GetItemEffectType: @ 81B7CEC push {r4,r5,lr} lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 subs r2, 0xD lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0xA5 bls _081B7D00 b _081B7E40 _081B7D00: cmp r1, 0xAF bne _081B7D18 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003214 adds r4, r0, r1 b _081B7D20 .pool _081B7D18: ldr r1, =gItemEffectTable lsls r0, r2, 2 adds r0, r1 ldr r4, [r0] _081B7D20: ldrb r1, [r4] movs r5, 0x3F adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _081B7D42 ldrb r0, [r4, 0x1] cmp r0, 0 bne _081B7D42 ldrb r0, [r4, 0x2] cmp r0, 0 bne _081B7D42 ldrb r3, [r4, 0x3] movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _081B7D4C _081B7D42: movs r0, 0 b _081B7E46 .pool _081B7D4C: movs r2, 0x40 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _081B7D5A movs r0, 0xA b _081B7E46 _081B7D5A: adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _081B7D66 movs r0, 0x1 b _081B7E46 _081B7D66: adds r2, r5, 0 ands r2, r3 cmp r2, 0 bne _081B7D74 lsrs r0, r1, 7 cmp r0, 0 beq _081B7DB6 _081B7D74: cmp r2, 0x20 bne _081B7D7C movs r0, 0x4 b _081B7E46 _081B7D7C: cmp r2, 0x10 bne _081B7D84 movs r0, 0x3 b _081B7E46 _081B7D84: cmp r2, 0x8 bne _081B7D8C movs r0, 0x5 b _081B7E46 _081B7D8C: cmp r2, 0x4 bne _081B7D94 movs r0, 0x6 b _081B7E46 _081B7D94: cmp r2, 0x2 bne _081B7D9C movs r0, 0x7 b _081B7E46 _081B7D9C: cmp r2, 0x1 bne _081B7DA4 movs r0, 0x8 b _081B7E46 _081B7DA4: lsrs r0, r1, 7 cmp r0, 0 beq _081B7DB2 cmp r2, 0 bne _081B7DB2 movs r0, 0x9 b _081B7E46 _081B7DB2: movs r0, 0xB b _081B7E46 _081B7DB6: ldrb r1, [r4, 0x4] movs r0, 0x44 ands r0, r1 adds r2, r1, 0 cmp r0, 0 beq _081B7DC6 movs r0, 0x2 b _081B7E46 _081B7DC6: movs r5, 0x2 adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _081B7DD4 movs r0, 0xC b _081B7E46 _081B7DD4: movs r3, 0x1 adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _081B7DE2 movs r0, 0xD b _081B7E46 _081B7DE2: ldrb r1, [r4, 0x5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _081B7DF0 movs r0, 0xE b _081B7E46 _081B7DF0: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081B7DFC movs r0, 0xF b _081B7E46 _081B7DFC: adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _081B7E08 movs r0, 0x10 b _081B7E46 _081B7E08: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _081B7E14 movs r0, 0x11 b _081B7E46 _081B7E14: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _081B7E20 movs r0, 0x12 b _081B7E46 _081B7E20: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _081B7E2C movs r0, 0x13 b _081B7E46 _081B7E2C: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081B7E38 movs r0, 0x14 b _081B7E46 _081B7E38: movs r0, 0x18 ands r0, r2 cmp r0, 0 bne _081B7E44 _081B7E40: movs r0, 0x16 b _081B7E46 _081B7E44: movs r0, 0x15 _081B7E46: pop {r4,r5} pop {r1} bx r1 thumb_func_end GetItemEffectType thumb_func_start sub_81B7E4C sub_81B7E4C: @ 81B7E4C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B7F1C ldr r7, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 movs r0, 0xE adds r0, r7 mov r8, r0 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r4, =gSpecialVar_0x8005 ldrb r0, [r4] bl sub_81B2360 strh r0, [r7, 0xE] ldr r0, =gStringVar2 movs r1, 0xE ldrsh r2, [r7, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy movs r0, 0x2 mov r1, r8 strh r0, [r1, 0x2] ldrb r2, [r4] adds r0, r5, 0 movs r1, 0 bl sub_81B22D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7EF0 cmp r0, 0x2 beq _081B7EF8 ldrh r1, [r7, 0xE] adds r0, r5, 0 bl GiveMoveToMon lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 beq _081B7F08 adds r0, r6, 0 bl sub_81B6EB4 b _081B7F1C .pool _081B7EF0: ldr r1, =gText_PkmnCantLearnMove b _081B7EFA .pool _081B7EF8: ldr r1, =gText_PkmnAlreadyKnows _081B7EFA: adds r0, r6, 0 bl sub_81B6D98 b _081B7F1C .pool _081B7F08: ldr r0, =gText_PkmnNeedsToReplaceMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] _081B7F1C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7E4C thumb_func_start CB2_PartyMenuFromStartMenu CB2_PartyMenuFromStartMenu: @ 81B7F34 push {lr} sub sp, 0xC movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_8086194 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end CB2_PartyMenuFromStartMenu thumb_func_start sub_81B7F60 sub_81B7F60: @ 81B7F60 push {lr} sub sp, 0xC bl InBattlePyramid lsls r0, 24 ldr r1, =sub_81C4F84 cmp r0, 0 bne _081B7F72 ldr r1, =c2_815ABFC _081B7F72: movs r0, 0x6 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x5 movs r3, 0 bl sub_81B0038 ldr r1, =gUnknown_0203CEC8 ldr r0, =gSpecialVar_ItemId ldrh r0, [r0] strh r0, [r1, 0xC] add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B7F60 thumb_func_start sub_81B7FAC sub_81B7FAC: @ 81B7FAC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r5, =gUnknown_0203CEFC ldr r0, =gUnknown_0203CEC8 mov r9, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r7, =gPlayerParty adds r0, r7 movs r1, 0xC bl GetMonData strh r0, [r5] lsls r0, 16 cmp r0, 0 bne _081B7FF8 adds r0, r4, 0 bl sub_81B8044 b _081B8030 .pool _081B7FF8: ldrh r0, [r5] bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B800C adds r0, r4, 0 bl sub_81B83B8 b _081B8030 _081B800C: mov r1, r9 movs r0, 0x9 ldrsb r0, [r1, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 ldrh r1, [r5] movs r2, 0x1 bl sub_81B1D1C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B82A0 str r1, [r0] _081B8030: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7FAC thumb_func_start sub_81B8044 sub_81B8044: @ 81B8044 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gUnknown_0203CEC8 ldrh r0, [r5, 0xC] bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B807C ldrh r0, [r5, 0xC] bl sub_81B83F0 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B814C str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 b _081B8082 .pool _081B807C: adds r0, r4, 0 bl sub_81B8088 _081B8082: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B8044 thumb_func_start sub_81B8088 sub_81B8088: @ 81B8088 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B80E4 ldr r4, =gUnknown_0203CEC8 ldrh r5, [r4, 0xC] movs r0, 0x9 ldrsb r0, [r4, r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, =gPlayerParty adds r0, r6 adds r1, r5, 0 movs r2, 0 movs r3, 0x1 bl sub_81B1C84 movs r0, 0x9 ldrsb r0, [r4, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 adds r1, r5, 0 bl sub_81B1DB8 adds r0, r5, 0 bl sub_81B83F0 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B8104 str r1, [r0] _081B80E4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B8088 thumb_func_start sub_81B8104 sub_81B8104: @ 81B8104 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r4, [r0, 0x9] bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B8138 lsls r2, r4, 24 asrs r2, 24 movs r0, 0x64 muls r0, r2 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_0203CEDC lsls r2, 4 ldr r1, [r1] adds r1, r2 bl sub_81B5C94 adds r0, r5, 0 bl sub_81B12C0 _081B8138: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B8104 thumb_func_start sub_81B814C sub_81B814C: @ 81B814C push {r4-r6,lr} ldr r4, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r4, r0] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 ldrh r1, [r4, 0xC] bl sub_81B1DB8 movs r0, 0x9 ldrsb r0, [r4, r0] muls r0, r6 adds r0, r5 movs r1, 0x40 bl GetMonData lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr lsls r2, r0, 3 adds r2, r0 lsls r2, 2 ldr r0, =0x00002be0 adds r2, r0 ldr r1, [r1] adds r1, r2 ldr r2, =sub_81B81A8 movs r0, 0x4 movs r3, 0x3 bl sub_811A20C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B814C thumb_func_start sub_81B81A8 sub_81B81A8: @ 81B81A8 push {r4-r7,lr} sub sp, 0xC ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r7, r0, 16 ldr r0, =gSpecialVar_Result ldrh r0, [r0] cmp r0, 0 bne _081B8208 adds r0, r5, 0 bl TakeMailFromMon ldr r4, =gUnknown_0203CEFC adds r0, r5, 0 movs r1, 0xC adds r2, r4, 0 bl SetMonData ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem adds r0, r7, 0 bl sub_81B841C ldr r0, [r6] bl SetMainCallback2 b _081B8224 .pool _081B8208: ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r6, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B8230 str r1, [sp, 0x4] ldr r1, [r6] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 _081B8224: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B81A8 thumb_func_start sub_81B8230 sub_81B8230: @ 81B8230 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 _081B828A ldr r1, =gUnknown_0203CEFC ldrh r0, [r1] cmp r0, 0 beq _081B8264 ldr r0, =gUnknown_0203CEC8 ldrh r0, [r0, 0xC] ldrh r1, [r1] movs r2, 0 bl sub_81B1D68 b _081B827C .pool _081B8264: ldr r2, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r2, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldrh r1, [r2, 0xC] movs r2, 0 movs r3, 0x1 bl sub_81B1C84 _081B827C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B8104 str r0, [r1] _081B828A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B8230 thumb_func_start sub_81B82A0 sub_81B82A0: @ 81B82A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B82C4 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B82D4 str r0, [r1] _081B82C4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B82A0 thumb_func_start sub_81B82D4 sub_81B82D4: @ 81B82D4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B82FA cmp r1, 0 bgt _081B82F4 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B8394 b _081B83A8 _081B82F4: cmp r1, 0x1 beq _081B839A b _081B83A8 _081B82FA: ldr r7, =gUnknown_0203CEC8 ldrh r4, [r7, 0xC] adds r0, r4, 0 bl sub_81B83F0 ldr r6, =gUnknown_0203CEFC ldrh r0, [r6] movs r1, 0x1 bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081B8338 adds r0, r4, 0 bl sub_81B841C ldrh r0, [r6] bl pokemon_item_not_removed ldr r0, =gStringVar4 movs r1, 0 bl sub_81B1B5C b _081B8378 .pool _081B8338: adds r0, r4, 0 bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B835C ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B814C str r0, [r1, 0x4] adds r0, r5, 0 bl sub_81B12C0 b _081B83A8 .pool _081B835C: movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 bl sub_81B1DB8 ldrh r1, [r6] adds r0, r4, 0 movs r2, 0x1 bl sub_81B1D68 _081B8378: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B8104 str r1, [r0] b _081B83A8 .pool _081B8394: movs r0, 0x5 bl PlaySE _081B839A: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B8104 str r0, [r1] _081B83A8: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B82D4 thumb_func_start sub_81B83B8 sub_81B83B8: @ 81B83B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gText_RemoveMailBeforeItem movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B8104 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B83B8 thumb_func_start sub_81B83F0 sub_81B83F0: @ 81B83F0 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x6 bne _081B8410 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x1 bl sub_80D6E48 b _081B8418 .pool _081B8410: adds r0, r1, 0 movs r1, 0x1 bl RemoveBagItem _081B8418: pop {r0} bx r0 thumb_func_end sub_81B83F0 thumb_func_start sub_81B841C sub_81B841C: @ 81B841C push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x5 beq _081B8438 adds r0, r1, 0 movs r1, 0x1 bl AddPCItem b _081B8440 .pool _081B8438: adds r0, r1, 0 movs r1, 0x1 bl AddBagItem _081B8440: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_81B841C thumb_func_start sub_81B8448 sub_81B8448: @ 81B8448 push {lr} sub sp, 0xC movs r0, 0x6 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_816BB28 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x7 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8448 thumb_func_start sub_81B8474 sub_81B8474: @ 81B8474 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] ldr r2, =gSaveBlock1Ptr ldr r0, =gUnknown_0203BCB8 ldrh r1, [r0] adds r1, 0x6 ldrh r0, [r0, 0x2] adds r1, r0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =0x00002be0 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B84DC ldr r0, =gText_PkmnHoldingItemCantHoldMail movs r1, 0x1 bl sub_81B1B5C b _081B84F2 .pool _081B84DC: adds r0, r5, 0 adds r1, r4, 0 bl GiveMailToMon2 adds r0, r4, 0 bl ClearMailStruct ldr r0, =gText_MailTransferredFromMailbox movs r1, 0x1 bl sub_81B1B5C _081B84F2: movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B8104 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B8474 thumb_func_start sub_81B8518 sub_81B8518: @ 81B8518 push {lr} sub sp, 0xC bl sub_81B8558 movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =gMain ldr r0, [r0, 0x8] str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 ldr r1, =gUnknown_0203CEC8 ldr r0, =sub_81B879C str r0, [r1, 0x4] add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8518 thumb_func_start sub_81B8558 sub_81B8558: @ 81B8558 push {lr} ldr r0, =gUnknown_0203CEF8 movs r1, 0 movs r2, 0x4 bl memset pop {r0} bx r0 .pool thumb_func_end sub_81B8558 thumb_func_start sub_81B856C sub_81B856C: @ 81B856C push {r4,lr} lsls r0, 24 asrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_81B85AC lsls r0, 24 cmp r0, 0 bne _081B858C movs r0, 0x2 b _081B85A4 .pool _081B858C: adds r0, r4, 0x1 lsls r0, 24 lsrs r0, 24 bl sub_81B8770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B85A2 movs r0, 0 b _081B85A4 _081B85A2: movs r0, 0x1 _081B85A4: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B856C thumb_func_start sub_81B85AC sub_81B85AC: @ 81B85AC push {r4-r6,lr} adds r5, r0, 0 movs r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B8608 adds r0, r5, 0 movs r1, 0x38 bl GetMonData adds r4, r0, 0 bl sub_81B8888 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bhi _081B8608 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r0, 0x4] ldr r0, =0x0000191a cmp r1, r0 bne _081B85EA adds r0, r5, 0 movs r1, 0xC bl GetMonData cmp r0, 0 bne _081B8608 _081B85EA: ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B864A cmp r0, 0x9 bne _081B8618 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B864A _081B8608: movs r0, 0 b _081B864C .pool _081B8618: adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r3, =gUnknown_08611C9A lsls r1, r6, 1 adds r0, r1, r3 ldrh r0, [r0] ldr r2, =0x0000ffff cmp r0, r2 beq _081B864A _081B8632: adds r0, r1, r3 ldrh r0, [r0] cmp r0, r4 beq _081B8608 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 lsls r1, r6, 1 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r2 bne _081B8632 _081B864A: movs r0, 0x1 _081B864C: pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81B85AC thumb_func_start sub_81B865C sub_81B865C: @ 81B865C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} bl sub_81B885C lsls r0, 24 lsrs r2, r0, 24 adds r1, r2, 0 ldr r3, =gUnknown_0203CEF8 adds r0, r2, r3 subs r0, 0x1 ldrb r0, [r0] cmp r0, 0 bne _081B869C cmp r2, 0x1 bne _081B8688 movs r0, 0xE b _081B8758 .pool _081B8688: ldr r0, =gStringVar1 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r0, 0x11 b _081B8758 .pool _081B869C: ldr r0, =0x000040cf bl VarGet lsls r0, 24 movs r1, 0xF8 lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1 bhi _081B86C0 b _081B8756 .pool _081B86B8: movs r0, 0x12 b _081B8758 _081B86BC: movs r0, 0x13 b _081B8758 _081B86C0: bl sub_81B8830 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 b _081B8750 _081B86CE: ldr r3, =gUnknown_0203CEF8 adds r4, r3, r5 ldrb r0, [r4] movs r1, 0x64 muls r0, r1 subs r0, 0x64 ldr r3, =gPlayerParty adds r0, r3, r0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 mov r10, r0 ldrb r0, [r4] movs r1, 0x64 muls r0, r1 subs r0, 0x64 ldr r3, =gPlayerParty adds r0, r3, r0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r1, r5, 0x1 lsls r0, r1, 24 lsrs r4, r0, 24 mov r9, r1 cmp r4, r8 bcs _081B8748 movs r7, 0x64 _081B870E: ldr r0, =gUnknown_0203CEF8 adds r5, r0, r4 ldrb r0, [r5] muls r0, r7 subs r0, 0x64 ldr r1, =gPlayerParty adds r0, r1, r0 movs r1, 0xB bl GetMonData cmp r10, r0 beq _081B86B8 cmp r6, 0 beq _081B873E ldrb r0, [r5] muls r0, r7 subs r0, 0x64 ldr r3, =gPlayerParty adds r0, r3, r0 movs r1, 0xC bl GetMonData cmp r6, r0 beq _081B86BC _081B873E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r8 bcc _081B870E _081B8748: mov r1, r9 lsls r0, r1, 24 lsrs r5, r0, 24 mov r0, r8 _081B8750: subs r0, 0x1 cmp r5, r0 blt _081B86CE _081B8756: movs r0, 0xFF _081B8758: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B865C thumb_func_start sub_81B8770 sub_81B8770: @ 81B8770 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, =gUnknown_0203CEF8 _081B877A: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081B878C movs r0, 0x1 b _081B8798 .pool _081B878C: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _081B877A movs r0, 0 _081B8798: pop {r1} bx r1 thumb_func_end sub_81B8770 thumb_func_start sub_81B879C sub_81B879C: @ 81B879C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_81B865C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF beq _081B87D4 movs r0, 0x20 bl PlaySE adds r0, r4, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B87E8 str r0, [r1] b _081B87E0 .pool _081B87D4: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B12C0 _081B87E0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B879C thumb_func_start sub_81B87E8 sub_81B87E8: @ 81B87E8 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 bne _081B8802 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B881C _081B8802: movs r0, 0x5 bl PlaySE movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] _081B881C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B87E8 thumb_func_start sub_81B8830 sub_81B8830: @ 81B8830 push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B884C cmp r0, 0x9 bne _081B8850 movs r0, 0x3 b _081B8854 .pool _081B884C: movs r0, 0x2 b _081B8854 _081B8850: ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] _081B8854: pop {r1} bx r1 .pool thumb_func_end sub_81B8830 thumb_func_start sub_81B885C sub_81B885C: @ 81B885C push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B8878 cmp r0, 0x9 bne _081B887C movs r0, 0x1 b _081B8880 .pool _081B8878: movs r0, 0x2 b _081B8880 _081B887C: ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] _081B8880: pop {r1} bx r1 .pool thumb_func_end sub_81B885C thumb_func_start sub_81B8888 sub_81B8888: @ 81B8888 push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B88A4 cmp r0, 0x9 bne _081B88A8 _081B889C: movs r0, 0x64 b _081B88B2 .pool _081B88A4: movs r0, 0x1E b _081B88B2 _081B88A8: ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _081B889C movs r0, 0x32 _081B88B2: pop {r1} bx r1 .pool thumb_func_end sub_81B8888 thumb_func_start sub_81B88BC sub_81B88BC: @ 81B88BC push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xF8 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x1 bhi _081B88E0 ldr r0, =gText_CancelBattle b _081B88FA .pool _081B88E0: cmp r1, 0x1 bne _081B88F8 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x2 bne _081B88F8 ldr r0, =gText_ReturnToWaitingRoom b _081B88FA .pool _081B88F8: ldr r0, =gText_CancelChallenge _081B88FA: pop {r1} bx r1 .pool thumb_func_end sub_81B88BC thumb_func_start sub_81B8904 sub_81B8904: @ 81B8904 push {lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 movs r2, 0 str r2, [sp] ldr r2, =sub_81B1370 str r2, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8904 thumb_func_start sub_81B892C sub_81B892C: @ 81B892C push {lr} sub sp, 0xC movs r0, 0x4 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0xC movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B892C thumb_func_start sub_81B8958 sub_81B8958: @ 81B8958 push {lr} sub sp, 0xC movs r0, 0x1 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music str r0, [sp, 0x8] movs r0, 0xB movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8958 thumb_func_start sub_81B8984 sub_81B8984: @ 81B8984 push {lr} bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _081B8994 movs r0, 0 b _081B89A6 _081B8994: bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B89A4 movs r0, 0x1 b _081B89A6 _081B89A4: movs r0, 0x2 _081B89A6: pop {r1} bx r1 thumb_func_end sub_81B8984 thumb_func_start sub_81B89AC sub_81B89AC: @ 81B89AC push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_81B8984 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =SetCB2ToReshowScreenAfterMenu str r0, [sp, 0x8] movs r0, 0x1 adds r2, r4, 0 movs r3, 0 bl sub_81B0038 bl nullsub_35 bl pokemon_change_order add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B89AC thumb_func_start sub_81B89F0 sub_81B89F0: @ 81B89F0 push {lr} sub sp, 0xC bl sub_81B8984 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x5 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =c2_815ABFC str r0, [sp, 0x8] movs r0, 0x1 movs r2, 0x3 movs r3, 0 bl sub_81B0038 bl nullsub_35 bl pokemon_change_order add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B89F0 thumb_func_start sub_81B8A2C sub_81B8A2C: @ 81B8A2C push {r4,lr} adds r4, r0, 0 ldr r0, =gPlayerParty + 0x64 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B8A74 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B8A74 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x1 bne _081B8A5C movs r0, 0x3 b _081B8A76 .pool _081B8A5C: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 bne _081B8A74 movs r0, 0x2 b _081B8A76 .pool _081B8A74: movs r0, 0x7 _081B8A76: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B8A2C thumb_func_start sub_81B8A7C sub_81B8A7C: @ 81B8A7C push {r4-r7,lr} mov r7, r8 push {r7} bl GetCursorSelectionMonId lsls r0, 24 lsrs r5, r0, 24 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B8AC4 cmp r5, 0x1 beq _081B8AA2 cmp r5, 0x4 beq _081B8AA2 cmp r5, 0x5 bne _081B8AC4 _081B8AA2: ldr r4, =gStringVar1 bl GetTrainerPartnerName adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r0, =gStringVar4 ldr r1, =gText_CantSwitchWithAlly b _081B8C42 .pool _081B8AC4: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B8AF8 ldr r1, =gStringVar1 adds r0, r4, 0 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gText_PkmnHasNoEnergy b _081B8C42 .pool _081B8AF8: movs r4, 0 b _081B8B24 _081B8AFC: adds r0, r4, 0 bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081B8B1E adds r0, r5, 0 bl sub_81B8F38 lsls r0, 24 ldr r2, =gBattlerPartyIndexes lsls r1, r4, 1 adds r1, r2 lsrs r0, 24 ldrh r1, [r1] cmp r0, r1 beq _081B8BFC _081B8B1E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B8B24: ldr r0, =gBattlersCount ldrb r0, [r0] cmp r4, r0 bcc _081B8AFC movs r7, 0x64 adds r0, r5, 0 muls r0, r7 ldr r1, =gPlayerParty mov r8, r1 adds r6, r0, r1 adds r0, r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B8B60 ldr r0, =gStringVar4 ldr r1, =gText_EggCantBattle b _081B8C42 .pool _081B8B60: adds r0, r5, 0 bl sub_81B8F38 ldr r1, =gBattleStruct ldr r1, [r1] adds r1, 0x8B lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _081B8B94 ldr r1, =gStringVar1 adds r0, r6, 0 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gText_PkmnAlreadySelected b _081B8C42 .pool _081B8B94: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x4 bne _081B8BA8 bl sub_806E994 b _081B8C46 .pool _081B8BA8: cmp r0, 0x2 beq _081B8C20 adds r0, r5, 0 bl sub_81B8F38 ldr r1, =gUnknown_0203CEE9 strb r0, [r1] ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] ldr r1, =gBattlerPartyIndexes ldr r0, =gBankInMenu ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_81B8FB0 adds r0, r4, 0 muls r0, r7 add r0, r8 adds r1, r6, 0 bl sub_81B1288 movs r0, 0x1 b _081B8C48 .pool _081B8BFC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gText_PkmnAlreadyInBattle b _081B8C42 .pool _081B8C20: ldr r0, =gBankInMenu ldrb r0, [r0] ldr r1, =gBattlerPartyIndexes lsls r0, 1 adds r0, r1 ldrb r0, [r0] bl pokemon_order_func lsls r0, 24 lsrs r0, 24 muls r0, r7 add r0, r8 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gText_PkmnCantSwitchOut _081B8C42: bl StringExpandPlaceholders _081B8C46: movs r0, 0 _081B8C48: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B8A7C thumb_func_start sub_81B8C68 sub_81B8C68: @ 81B8C68 push {r4,lr} ldr r4, =gUnknown_0203CF00 bl sub_806D7EC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B8C88 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B8C68 thumb_func_start sub_81B8C88 sub_81B8C88: @ 81B8C88 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r4, r1, 24 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B8CBE cmp r4, 0 beq _081B8CB0 movs r0, 0x30 strb r0, [r6] movs r0, 0x45 strb r0, [r6, 0x1] movs r0, 0x12 strb r0, [r6, 0x2] b _081B8D58 _081B8CB0: movs r0, 0x3 strb r0, [r6] movs r0, 0x12 strb r0, [r6, 0x1] movs r0, 0x45 strb r0, [r6, 0x2] b _081B8D58 _081B8CBE: bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _081B8CFC movs r5, 0x1 movs r0, 0 bl GetBattlerAtPosition mov r2, sp ldr r1, =gBattlerPartyIndexes lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r0, [r0] strb r0, [r2] movs r4, 0 mov r1, sp _081B8CE2: ldrb r0, [r1] cmp r4, r0 beq _081B8CF0 mov r2, sp adds r0, r2, r5 strb r4, [r0] adds r5, 0x1 _081B8CF0: adds r4, 0x1 cmp r4, 0x5 ble _081B8CE2 b _081B8D40 .pool _081B8CFC: movs r5, 0x2 movs r0, 0 bl GetBattlerAtPosition mov r1, sp ldr r4, =gBattlerPartyIndexes lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] strb r0, [r1] movs r0, 0x2 bl GetBattlerAtPosition mov r1, sp lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] strb r0, [r1, 0x1] movs r4, 0 _081B8D26: ldrb r0, [r1] cmp r4, r0 beq _081B8D3A ldrb r0, [r1, 0x1] cmp r4, r0 beq _081B8D3A mov r2, sp adds r0, r2, r5 strb r4, [r0] adds r5, 0x1 _081B8D3A: adds r4, 0x1 cmp r4, 0x5 ble _081B8D26 _081B8D40: movs r4, 0 mov r3, sp _081B8D44: adds r0, r6, r4 ldrb r1, [r3] lsls r1, 4 ldrb r2, [r3, 0x1] orrs r1, r2 strb r1, [r0] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _081B8D44 _081B8D58: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B8C88 thumb_func_start sub_81B8D64 sub_81B8D64: @ 81B8D64 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r1, 24 lsrs r1, 24 ldr r0, =gBattleStruct lsls r3, r2, 1 adds r3, r2 adds r3, 0x60 ldr r0, [r0] adds r0, r3 bl sub_81B8D88 pop {r0} bx r0 .pool thumb_func_end sub_81B8D64 thumb_func_start sub_81B8D88 sub_81B8D88: @ 81B8D88 push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r0, r2, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r0, 24 lsrs r0, 24 bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081B8DB0 movs r0, 0 bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 b _081B8DBC _081B8DB0: movs r0, 0x1 bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 _081B8DBC: bl GetBattlerAtPosition lsls r0, 24 lsrs r6, r0, 24 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B8DF0 cmp r7, 0 beq _081B8DE2 movs r0, 0x30 strb r0, [r5] movs r0, 0x45 strb r0, [r5, 0x1] movs r0, 0x12 strb r0, [r5, 0x2] b _081B8E72 _081B8DE2: movs r0, 0x3 strb r0, [r5] movs r0, 0x12 strb r0, [r5, 0x1] movs r0, 0x45 strb r0, [r5, 0x2] b _081B8E72 _081B8DF0: bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _081B8E28 movs r3, 0x1 mov r2, sp ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] strb r0, [r2] movs r4, 0 mov r1, sp _081B8E0C: ldrb r0, [r1] cmp r4, r0 beq _081B8E1A mov r2, sp adds r0, r2, r3 strb r4, [r0] adds r3, 0x1 _081B8E1A: adds r4, 0x1 cmp r4, 0x5 ble _081B8E0C b _081B8E5A .pool _081B8E28: movs r3, 0x2 mov r1, sp ldr r2, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] lsls r0, r6, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x1] movs r4, 0 _081B8E40: ldrb r0, [r1] cmp r4, r0 beq _081B8E54 ldrb r0, [r1, 0x1] cmp r4, r0 beq _081B8E54 mov r2, sp adds r0, r2, r3 strb r4, [r0] adds r3, 0x1 _081B8E54: adds r4, 0x1 cmp r4, 0x5 ble _081B8E40 _081B8E5A: movs r4, 0 mov r3, sp _081B8E5E: adds r0, r5, r4 ldrb r1, [r3] lsls r1, 4 ldrb r2, [r3, 0x1] orrs r1, r2 strb r1, [r0] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _081B8E5E _081B8E72: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B8D88 thumb_func_start sub_81B8E80 sub_81B8E80: @ 81B8E80 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r7, 0 bl sub_81B1250 lsls r0, 24 cmp r0, 0 beq _081B8F2E ldr r0, =gBattleStruct lsls r1, r4, 1 adds r1, r4 adds r1, 0x60 ldr r0, [r0] adds r4, r0, r1 movs r2, 0 add r6, sp mov r12, r6 movs r6, 0xF mov r3, sp _081B8EB2: adds r1, r4, r2 ldrb r0, [r1] lsrs r0, 4 strb r0, [r3] adds r3, 0x1 ldrb r1, [r1] adds r0, r6, 0 ands r0, r1 strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 ble _081B8EB2 mov r0, r12 ldrb r3, [r0] movs r2, 0 mov r0, sp ldrb r0, [r0] cmp r0, r5 bne _081B8EE8 mov r0, sp ldrb r7, [r0] strb r3, [r0] b _081B8EFC .pool _081B8EE8: adds r2, 0x1 cmp r2, 0x5 bgt _081B8EFC mov r0, sp adds r1, r0, r2 ldrb r0, [r1] cmp r0, r5 bne _081B8EE8 adds r7, r0, 0 strb r3, [r1] _081B8EFC: cmp r2, 0x6 beq _081B8F2E mov r0, r12 strb r7, [r0] mov r0, sp ldrb r0, [r0] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x1] orrs r0, r1 strb r0, [r4] mov r0, sp ldrb r0, [r0, 0x2] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x3] orrs r0, r1 strb r0, [r4, 0x1] mov r0, sp ldrb r0, [r0, 0x4] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x5] orrs r0, r1 strb r0, [r4, 0x2] _081B8F2E: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B8E80 thumb_func_start sub_81B8F38 sub_81B8F38: @ 81B8F38 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1 ands r1, r2 lsrs r2, r0, 25 cmp r1, 0 beq _081B8F58 ldr r0, =gUnknown_0203CF00 adds r0, r2, r0 ldrb r0, [r0] movs r1, 0xF ands r1, r0 b _081B8F60 .pool _081B8F58: ldr r0, =gUnknown_0203CF00 adds r0, r2, r0 ldrb r0, [r0] lsrs r1, r0, 4 _081B8F60: adds r0, r1, 0 pop {r1} bx r1 .pool thumb_func_end sub_81B8F38 thumb_func_start sub_81B8F6C sub_81B8F6C: @ 81B8F6C push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 movs r1, 0x1 ands r1, r3 lsrs r3, r0, 25 cmp r1, 0 beq _081B8F94 ldr r0, =gUnknown_0203CF00 adds r0, r3, r0 ldrb r2, [r0] movs r1, 0xF0 ands r1, r2 orrs r1, r4 strb r1, [r0] b _081B8FA4 .pool _081B8F94: ldr r2, =gUnknown_0203CF00 adds r2, r3, r2 ldrb r1, [r2] movs r0, 0xF ands r0, r1 lsls r1, r4, 4 orrs r0, r1 strb r0, [r2] _081B8FA4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B8F6C thumb_func_start sub_81B8FB0 sub_81B8FB0: @ 81B8FB0 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 adds r0, r5, 0 bl sub_81B8F38 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_81B8F38 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_81B8F6C adds r0, r6, 0 adds r1, r4, 0 bl sub_81B8F6C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B8FB0 thumb_func_start pokemon_order_func pokemon_order_func: @ 81B8FEC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 movs r2, 0 ldr r5, =gUnknown_0203CF00 _081B8FF8: adds r0, r3, r5 ldrb r1, [r0] lsrs r0, r1, 4 cmp r0, r4 beq _081B9010 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xF ands r0, r1 cmp r0, r4 bne _081B9018 _081B9010: adds r0, r2, 0 b _081B902A .pool _081B9018: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _081B8FF8 movs r0, 0 _081B902A: pop {r4,r5} pop {r1} bx r1 thumb_func_end pokemon_order_func thumb_func_start pokemon_change_order pokemon_change_order: @ 81B9030 push {r4-r6,lr} movs r4, 0x96 lsls r4, 2 adds r0, r4, 0 bl Alloc adds r5, r0, 0 ldr r1, =gPlayerParty adds r2, r4, 0 bl memcpy movs r4, 0 movs r6, 0x64 _081B904A: adds r0, r4, 0 bl pokemon_order_func lsls r0, 24 lsrs r0, 24 muls r0, r6 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 muls r1, r6 adds r1, r5 movs r2, 0x64 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B904A adds r0, r5, 0 bl Free pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end pokemon_change_order thumb_func_start sub_81B9080 sub_81B9080: @ 81B9080 push {r4-r6,lr} movs r4, 0x96 lsls r4, 2 adds r0, r4, 0 bl Alloc adds r5, r0, 0 ldr r1, =gPlayerParty adds r2, r4, 0 bl memcpy movs r4, 0 movs r6, 0x64 _081B909A: adds r0, r4, 0 bl sub_81B8F38 lsls r0, 24 lsrs r0, 24 muls r0, r6 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 muls r1, r6 adds r1, r5 movs r2, 0x64 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B909A adds r0, r5, 0 bl Free pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B9080 thumb_func_start sub_81B90D0 sub_81B90D0: @ 81B90D0 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0x1 movs r7, 0x64 ldr r0, =gPlayerParty mov r8, r0 _081B90DE: adds r0, r6, 0 bl sub_81B8F38 lsls r0, 24 lsrs r0, 24 muls r0, r7 mov r1, r8 adds r5, r0, r1 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B912C adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _081B912C movs r0, 0 bl sub_81B8F38 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 adds r1, r6, 0 bl sub_81B8FB0 adds r0, r4, 0 muls r0, r7 add r0, r8 adds r1, r5, 0 bl sub_81B1288 b _081B9136 .pool _081B912C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _081B90DE _081B9136: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B90D0 thumb_func_start sub_81B9140 sub_81B9140: @ 81B9140 push {lr} ldr r0, =SetCB2ToReshowScreenAfterMenu bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_81B9140 thumb_func_start sub_81B9150 sub_81B9150: @ 81B9150 push {lr} sub sp, 0xC movs r0, 0x7F str r0, [sp] ldr r0, =sub_81B917C str r0, [sp, 0x4] ldr r0, =gMain ldr r0, [r0, 0x8] str r0, [sp, 0x8] movs r0, 0x5 movs r1, 0x3 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B9150 thumb_func_start sub_81B917C sub_81B917C: @ 81B917C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0x80 lsls r1, 1 strh r1, [r4, 0x8] bl sub_81B9294 movs r1, 0x80 lsls r1, 9 movs r0, 0x2 movs r2, 0 bl ChangeBgX ldr r0, =sub_81B91B4 str r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B917C thumb_func_start sub_81B91B4 sub_81B91B4: @ 81B91B4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r6, r5, 2 adds r0, r6, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B9220 ldrh r0, [r4] subs r0, 0x8 strh r0, [r4] adds r0, r5, 0 bl sub_81B9294 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _081B9220 movs r4, 0x3 ldr r7, =gUnknown_02022FF8 _081B91E8: subs r0, r4, 0x3 lsls r0, 5 adds r0, r7 ldrh r0, [r0] cmp r0, 0 beq _081B9204 ldr r0, =gUnknown_0203CEDC ldr r1, [r0] lsls r0, r4, 4 adds r0, r1 ldrb r0, [r0, 0x9] movs r1, 0 bl sub_81B5B6C _081B9204: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B91E8 movs r0, 0x78 bl PlaySE ldr r0, =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B9240 str r0, [r1] _081B9220: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B91B4 thumb_func_start sub_81B9240 sub_81B9240: @ 81B9240 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bne _081B9266 adds r0, r2, 0 bl sub_81B12C0 _081B9266: pop {r0} bx r0 .pool thumb_func_end sub_81B9240 thumb_func_start sub_81B9270 sub_81B9270: @ 81B9270 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 16 lsrs r3, r1, 16 cmp r1, 0 blt _081B928A ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 strh r3, [r0, 0x24] _081B928A: pop {r0} bx r0 .pool thumb_func_end sub_81B9270 thumb_func_start sub_81B9294 sub_81B9294: @ 81B9294 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r5, r1, r0 movs r6, 0x3 ldr r7, =gUnknown_0203CEDC _081B92A8: ldr r0, =gUnknown_02022FF8 subs r1, r6, 0x3 lsls r1, 5 adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _081B9300 ldr r0, [r7] lsls r4, r6, 4 adds r0, r4, r0 ldrb r0, [r0, 0x9] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 ldr r0, [r7] adds r0, r4, r0 ldrb r0, [r0, 0xA] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 ldr r0, [r7] adds r0, r4, r0 ldrb r0, [r0, 0xB] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 ldr r0, [r7] adds r4, r0 ldrb r0, [r4, 0xC] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 _081B9300: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _081B92A8 movs r1, 0x80 lsls r1, 4 movs r0, 0x2 movs r2, 0x1 bl ChangeBgX pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B9294 thumb_func_start sub_81B9328 sub_81B9328: @ 81B9328 push {lr} sub sp, 0xC movs r0, 0xF str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9390 str r0, [sp, 0x8] movs r0, 0x6 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B9328 thumb_func_start sub_81B9354 sub_81B9354: @ 81B9354 push {lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03005DB0 ldr r1, =hm_add_c3_without_phase_2 str r1, [r2] movs r1, 0 str r1, [sp] ldr r1, =sub_81B1370 str r1, [sp, 0x4] ldr r1, =c2_exit_to_overworld_2_switch str r1, [sp, 0x8] movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B9354 thumb_func_start sub_81B9390 sub_81B9390: @ 81B9390 push {r4,lr} ldr r4, =gSpecialVar_0x8004 bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 strh r0, [r4] cmp r0, 0x5 bls _081B93A6 movs r0, 0xFF strh r0, [r4] _081B93A6: ldr r0, =gUnknown_03005DB0 ldr r1, =hm_add_c3_without_phase_2 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B9390 thumb_func_start hm_add_c3_without_phase_2 hm_add_c3_without_phase_2: @ 81B93C8 push {lr} bl pal_fill_black ldr r0, =task_hm_without_phase_2 movs r1, 0xA bl CreateTask movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end hm_add_c3_without_phase_2 thumb_func_start task_hm_without_phase_2 task_hm_without_phase_2: @ 81B93E0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80ABDFC lsls r0, 24 cmp r0, 0 beq _081B93FE adds r0, r4, 0 bl DestroyTask bl ScriptContext2_Disable bl EnableBothScriptContexts _081B93FE: pop {r4} pop {r0} bx r0 thumb_func_end task_hm_without_phase_2 thumb_func_start sub_81B9404 sub_81B9404: @ 81B9404 push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl FadeScreen ldr r0, =sub_81B9424 movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B9404 thumb_func_start sub_81B9424 sub_81B9424: @ 81B9424 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B945C bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9470 str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B945C: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9424 thumb_func_start sub_81B9470 sub_81B9470: @ 81B9470 push {lr} bl GetCursorSelectionMonId ldr r2, =gUnknown_02039F24 strb r0, [r2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _081B9486 movs r0, 0xFF strb r0, [r2] _081B9486: ldr r1, =gSpecialVar_0x8004 ldrb r0, [r2] strh r0, [r1] ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_without_phase_2 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_81B9470 thumb_func_start sub_81B94B0 sub_81B94B0: @ 81B94B0 push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl FadeScreen ldr r0, =sub_81B94D0 movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B94B0 thumb_func_start sub_81B94D0 sub_81B94D0: @ 81B94D0 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B9508 bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9390 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B9508: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B94D0 thumb_func_start sub_81B951C sub_81B951C: @ 81B951C push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl FadeScreen ldr r0, =sub_81B953C movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B951C thumb_func_start sub_81B953C sub_81B953C: @ 81B953C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B9574 bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9588 str r0, [sp, 0x8] movs r0, 0x7 movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B9574: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B953C thumb_func_start sub_81B9588 sub_81B9588: @ 81B9588 push {r4,r5,lr} ldr r5, =gSpecialVar_0x8004 bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 strh r0, [r5] cmp r0, 0x5 bls _081B95A4 movs r0, 0xFF strh r0, [r5] b _081B95BA .pool _081B95A4: ldr r4, =gSpecialVar_0x8005 ldrh r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 bl GetNumberOfRelearnableMoves lsls r0, 24 lsrs r0, 24 strh r0, [r4] _081B95BA: ldr r0, =gUnknown_03005DB0 ldr r1, =hm_add_c3_without_phase_2 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9588 thumb_func_start sub_81B95E0 sub_81B95E0: @ 81B95E0 push {r4,r5,lr} ldr r1, =gSpecialVar_Result movs r0, 0 strh r0, [r1] movs r4, 0 adds r5, r1, 0 b _081B95FA .pool _081B95F4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B95FA: cmp r4, 0x2 bhi _081B9614 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B95F4 movs r0, 0x1 strh r0, [r5] _081B9614: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B95E0 thumb_func_start sub_81B9620 sub_81B9620: @ 81B9620 push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl FadeScreen ldr r0, =sub_81B9640 movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B9620 thumb_func_start sub_81B9640 sub_81B9640: @ 81B9640 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B9678 bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9390 str r0, [sp, 0x8] movs r0, 0xC movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B9678: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9640 thumb_func_start sub_81B968C sub_81B968C: @ 81B968C push {lr} sub sp, 0x4 ldr r1, =gPlayerParty ldr r0, =gSpecialVar_0x8004 ldrb r2, [r0] ldr r0, =gPlayerPartyCount ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, =c2_exit_to_overworld_2_switch str r0, [sp] movs r0, 0x3 bl sub_81BF8EC ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_81B968C thumb_func_start sub_81B96D0 sub_81B96D0: @ 81B96D0 push {r4,r5,lr} ldr r1, =gSpecialVar_Result movs r0, 0 strh r0, [r1] movs r4, 0 adds r5, r1, 0 _081B96DC: ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 adds r1, 0xD bl GetMonData cmp r0, 0 beq _081B96FA ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _081B96FA: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081B96DC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B96D0 thumb_func_start sub_81B9718 sub_81B9718: @ 81B9718 push {r4,r5,lr} ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, =gPlayerParty adds r5, r0 ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] adds r1, 0xD adds r0, r5, 0 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xD muls r1, r4 ldr r2, =gMoveNames adds r1, r2 bl StringCopy pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9718 thumb_func_start sub_81B9770 sub_81B9770: @ 81B9770 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, =gSpecialVar_0x8004 mov r8, r0 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 ldr r4, =gSpecialVar_0x8005 ldrb r2, [r4] movs r1, 0 bl SetMonMoveSlot mov r1, r8 ldrh r0, [r1] muls r0, r6 adds r0, r5 ldrb r1, [r4] bl RemoveMonPPBonus ldrh r4, [r4] cmp r4, 0x2 bhi _081B97C4 _081B97A2: ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 lsls r1, r4, 24 lsrs r1, 24 adds r4, 0x1 lsls r2, r4, 24 lsrs r2, 24 bl sub_81B97DC lsls r4, 16 lsrs r4, 16 cmp r4, 0x2 bls _081B97A2 _081B97C4: pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B9770 thumb_func_start sub_81B97DC sub_81B97DC: @ 81B97DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r0, 0xD str r0, [sp, 0x8] mov r0, r8 ldr r1, [sp, 0x8] bl GetMonData mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r3, r4, 0 adds r3, 0xD str r3, [sp, 0xC] mov r0, r8 adds r1, r3, 0 bl GetMonData mov r1, sp strh r0, [r1] adds r7, r5, 0 adds r7, 0x11 str r7, [sp, 0x10] mov r0, r8 adds r1, r7, 0 bl GetMonData mov r1, sp adds r1, 0x5 str r1, [sp, 0x18] strb r0, [r1] adds r3, r4, 0 adds r3, 0x11 str r3, [sp, 0x1C] mov r0, r8 adds r1, r3, 0 bl GetMonData add r7, sp, 0x4 mov r10, r7 strb r0, [r7] mov r0, r8 movs r1, 0x15 bl GetMonData mov r6, sp adds r6, 0x6 strb r0, [r6] ldr r1, =gUnknown_08329D22 adds r0, r5, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r6] adds r2, r0, 0 mov r3, r9 ands r2, r3 lsls r5, 1 asrs r2, r5 lsls r2, 24 lsrs r2, 24 adds r1, r4, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r4, 1 asrs r1, r4 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r6] ldrb r0, [r6] bics r0, r3 strb r0, [r6] lsls r2, r4 lsls r1, r5 adds r2, r1 ldrb r0, [r6] orrs r0, r2 strb r0, [r6] mov r0, r8 ldr r1, [sp, 0x8] mov r2, sp bl SetMonData mov r0, r8 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl SetMonData mov r0, r8 ldr r1, [sp, 0x10] mov r2, r10 bl SetMonData mov r0, r8 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl SetMonData mov r0, r8 movs r1, 0x15 adds r2, r6, 0 bl SetMonData add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B97DC thumb_func_start sub_81B98DC sub_81B98DC: @ 81B98DC push {lr} ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2D bl GetMonData adds r1, r0, 0 cmp r1, 0 beq _081B990C ldr r1, =gSpecialVar_Result movs r0, 0x1 strh r0, [r1] b _081B9910 .pool _081B990C: ldr r0, =gSpecialVar_Result strh r1, [r0] _081B9910: pop {r0} bx r0 .pool thumb_func_end sub_81B98DC thumb_func_start sub_81B9918 sub_81B9918: @ 81B9918 push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, =gSpecialVar_Result movs r0, 0 strh r0, [r1] ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] adds r1, 0xD bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x39 bne _081B999C movs r6, 0 b _081B9980 .pool _081B9958: ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r6, r0 beq _081B997E movs r4, 0 movs r0, 0x64 adds r5, r6, 0 muls r5, r0 ldr r7, =gPlayerParty _081B996A: adds r1, r4, 0 adds r1, 0xD adds r0, r5, r7 bl GetMonData cmp r0, 0x39 beq _081B999C adds r4, 0x1 cmp r4, 0x3 bls _081B996A _081B997E: adds r6, 0x1 _081B9980: bl CalculatePlayerPartyCount lsls r0, 24 lsrs r0, 24 cmp r6, r0 bcc _081B9958 mov r0, r8 bl sub_80D23A8 cmp r0, 0x1 beq _081B999C ldr r1, =gSpecialVar_Result movs r0, 0x1 strh r0, [r1] _081B999C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B9918 .align 2, 0 @ Don't pad with nop.