.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_8107DB4 sub_8107DB4: @ 8107DB4 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r2, 0 lsls r0, 24 lsrs r6, r0, 24 adds r7, r6, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 bl sub_81081AC ldr r5, _08107DE4 @ =gUnknown_203AD10 movs r0, 0x14 bl Alloc str r0, [r5] cmp r0, 0 bne _08107DE8 adds r0, r4, 0 bl SetMainCallback2 b _08107E9A .align 2, 0 _08107DE4: .4byte gUnknown_203AD10 _08107DE8: cmp r6, 0xB beq _08107DF0 ldr r0, _08107E38 @ =gUnknown_203ACFC strb r6, [r0, 0x4] _08107DF0: cmp r4, 0 beq _08107DF8 ldr r0, _08107E38 @ =gUnknown_203ACFC str r4, [r0] _08107DF8: ldr r1, [r5] movs r0, 0 str r0, [r1] movs r0, 0xFF strb r0, [r1, 0x4] ldr r2, [r5] ldrb r1, [r2, 0x5] movs r0, 0x31 negs r0, r0 ands r0, r1 strb r0, [r2, 0x5] ldr r2, [r5] ldrb r1, [r2, 0x5] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x5] ldr r1, [r5] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x8] ldr r1, [r5] strb r0, [r1, 0x9] cmp r6, 0x3 bne _08107E3C ldr r2, [r5] ldrb r1, [r2, 0x5] subs r0, 0xF ands r0, r1 movs r1, 0x1 orrs r0, r1 b _08107E5A .align 2, 0 _08107E38: .4byte gUnknown_203ACFC _08107E3C: cmp r7, 0x6 bne _08107E50 ldr r2, [r5] ldrb r1, [r2, 0x5] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 b _08107E5A _08107E50: ldr r2, [r5] ldrb r1, [r2, 0x5] movs r0, 0x10 negs r0, r0 ands r0, r1 _08107E5A: strb r0, [r2, 0x5] movs r1, 0 ldr r4, _08107EA4 @ =gTextFlags ldr r5, _08107EA8 @ =gSpecialVar_ItemId ldr r6, _08107EAC @ =sub_8107F10 ldr r3, _08107EB0 @ =gUnknown_203AD10 movs r2, 0 _08107E68: ldr r0, [r3] adds r0, 0x10 adds r0, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _08107E68 mov r0, r8 cmp r0, 0x2 bhi _08107E86 ldr r0, _08107EB4 @ =gUnknown_203ACFC mov r1, r8 strh r1, [r0, 0x6] _08107E86: ldrb r0, [r4] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r4] movs r0, 0 strh r0, [r5] adds r0, r6, 0 bl SetMainCallback2 _08107E9A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08107EA4: .4byte gTextFlags _08107EA8: .4byte gSpecialVar_ItemId _08107EAC: .4byte sub_8107F10 _08107EB0: .4byte gUnknown_203AD10 _08107EB4: .4byte gUnknown_203ACFC thumb_func_end sub_8107DB4 thumb_func_start UseFameCheckerFromMenu UseFameCheckerFromMenu: @ 8107EB8 push {lr} ldr r2, _08107EC8 @ =sub_80568A8 movs r0, 0 movs r1, 0x3 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 _08107EC8: .4byte sub_80568A8 thumb_func_end UseFameCheckerFromMenu thumb_func_start sub_8107ECC sub_8107ECC: @ 8107ECC push {lr} ldr r2, _08107EDC @ =sub_8030AEC movs r0, 0x5 movs r1, 0x3 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 _08107EDC: .4byte sub_8030AEC thumb_func_end sub_8107ECC thumb_func_start sub_8107EE0 sub_8107EE0: @ 8107EE0 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_8107EE0 thumb_func_start sub_8107EFC sub_8107EFC: @ 8107EFC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8107EFC thumb_func_start sub_8107F10 sub_8107F10: @ 8107F10 push {lr} _08107F12: bl sub_80BF72C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08107F36 bl sub_8107F3C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08107F36 bl sub_80BF708 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08107F12 _08107F36: pop {r0} bx r0 thumb_func_end sub_8107F10 thumb_func_start sub_8107F3C sub_8107F3C: @ 8107F3C push {r4,r5,lr} ldr r0, _08107F58 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x13 bls _08107F4E b _0810811C _08107F4E: lsls r0, 2 ldr r1, _08107F5C @ =_08107F60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08107F58: .4byte gMain _08107F5C: .4byte _08107F60 .align 2, 0 _08107F60: .4byte _08107FB0 .4byte _08107FBA .4byte _08107FC0 .4byte _08107FC6 .4byte _08107FD8 .4byte _08107FDE .4byte _08107FE4 .4byte _08107FF6 .4byte _08108010 .4byte _08108020 .4byte _08108026 .4byte _08108034 .4byte _08108046 .4byte _08108054 .4byte _0810806E .4byte _081080B8 .4byte _081080C8 .4byte _081080D2 .4byte _081080D8 .4byte _081080DE _08107FB0: bl sub_80BF768 bl clear_scheduled_bg_copies_to_vram b _08108104 _08107FBA: bl remove_some_task b _08108104 _08107FC0: bl FreeAllSpritePalettes b _08108104 _08107FC6: bl ResetPaletteFade ldr r2, _08107FD4 @ =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 b _08108102 .align 2, 0 _08107FD4: .4byte gPaletteFade _08107FD8: bl ResetSpriteData b _08108104 _08107FDE: bl sub_80984D8 b _08108104 _08107FE4: bl sub_80BF708 lsls r0, 24 cmp r0, 0 beq _08107FF0 b _08108104 _08107FF0: bl ResetTasks b _08108104 _08107FF6: bl sub_81081D0 lsls r0, 24 cmp r0, 0 beq _0810803E ldr r0, _0810800C @ =gUnknown_203AD10 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x10] b _08108104 .align 2, 0 _0810800C: .4byte gUnknown_203AD10 _08108010: bl sub_8108240 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810801E b _08108134 _0810801E: b _08108104 _08108020: bl sub_810B858 b _08108104 _08108026: bl sub_8108E54 bl sub_8108A68 bl sub_8108A84 b _08108104 _08108034: bl sub_81083F4 lsls r0, 24 cmp r0, 0 bne _08108104 _0810803E: bl sub_810813C movs r0, 0x1 b _08108136 _08108046: ldr r0, _08108050 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] bl sub_810842C b _08108104 .align 2, 0 _08108050: .4byte gUnknown_203ACFC _08108054: ldr r0, _08108064 @ =gUnknown_203ACFC ldrb r0, [r0, 0x4] cmp r0, 0x3 beq _08108068 bl sub_81087EC b _08108104 .align 2, 0 _08108064: .4byte gUnknown_203ACFC _08108068: bl sub_810B994 b _08108104 _0810806E: ldr r4, _081080AC @ =gUnknown_203ACFC ldrb r0, [r4, 0x4] bl sub_8108388 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _081080B0 @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 adds r1, r4, 0 adds r1, 0xE adds r1, r2, r1 ldrh r1, [r1] adds r4, 0x8 adds r2, r4 ldrh r2, [r2] bl ListMenuInit ldr r2, _081080B4 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r1, 0x8] strh r2, [r1, 0xE] strh r2, [r1, 0x18] b _08108104 .align 2, 0 _081080AC: .4byte gUnknown_203ACFC _081080B0: .4byte gUnknown_3005E70 _081080B4: .4byte gTasks _081080B8: ldr r0, _081080C4 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] bl sub_80984FC b _08108104 .align 2, 0 _081080C4: .4byte gUnknown_203ACFC _081080C8: bl sub_8108888 bl sub_81088D8 b _08108104 _081080D2: bl sub_80985E4 b _08108104 _081080D8: bl sub_8108C10 b _08108104 _081080DE: ldr r0, _081080F0 @ =gUnknown_203ACFC ldrb r0, [r0, 0x4] cmp r0, 0x3 bne _081080F4 movs r0, 0x1D bl sub_812B1F0 b _081080FA .align 2, 0 _081080F0: .4byte gUnknown_203ACFC _081080F4: movs r0, 0x9 bl sub_812B1F0 _081080FA: ldr r2, _08108114 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 _08108102: strb r0, [r2, 0x8] _08108104: ldr r1, _08108118 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08108134 .align 2, 0 _08108114: .4byte gPaletteFade _08108118: .4byte gMain _0810811C: ldr r0, _0810812C @ =sub_8107EFC bl SetVBlankCallback ldr r0, _08108130 @ =sub_8107EE0 bl SetMainCallback2 movs r0, 0x1 b _08108136 .align 2, 0 _0810812C: .4byte sub_8107EFC _08108130: .4byte sub_8107EE0 _08108134: movs r0, 0 _08108136: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8107F3C thumb_func_start sub_810813C sub_810813C: @ 810813C push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0x2 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0810816C @ =sub_8108178 movs r1, 0 bl CreateTask ldr r0, _08108170 @ =sub_8107EFC bl SetVBlankCallback ldr r0, _08108174 @ =sub_8107EE0 bl SetMainCallback2 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0810816C: .4byte sub_8108178 _08108170: .4byte sub_8107EFC _08108174: .4byte sub_8107EE0 thumb_func_end sub_810813C thumb_func_start sub_8108178 sub_8108178: @ 8108178 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081081A4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810819C ldr r0, _081081A8 @ =gUnknown_203ACFC ldr r0, [r0] bl SetMainCallback2 bl sub_8108B04 adds r0, r4, 0 bl DestroyTask _0810819C: pop {r4} pop {r0} bx r0 .align 2, 0 _081081A4: .4byte gPaletteFade _081081A8: .4byte gUnknown_203ACFC thumb_func_end sub_8108178 thumb_func_start sub_81081AC sub_81081AC: @ 81081AC ldr r0, _081081C0 @ =gUnknown_203AD10 movs r1, 0 str r1, [r0] ldr r0, _081081C4 @ =gUnknown_203AD14 str r1, [r0] ldr r0, _081081C8 @ =gUnknown_203AD18 str r1, [r0] ldr r0, _081081CC @ =gUnknown_203AD1C str r1, [r0] bx lr .align 2, 0 _081081C0: .4byte gUnknown_203AD10 _081081C4: .4byte gUnknown_203AD14 _081081C8: .4byte gUnknown_203AD18 _081081CC: .4byte gUnknown_203AD1C thumb_func_end sub_81081AC thumb_func_start sub_81081D0 sub_81081D0: @ 81081D0 push {r4,r5,lr} bl sub_80BF7C8 ldr r5, _08108230 @ =gUnknown_203AD14 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc str r0, [r5] cmp r0, 0 beq _08108238 movs r1, 0 adds r2, r4, 0 bl memset movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _08108234 @ =gUnknown_8452CF4 movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates ldr r1, [r5] movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r1, 0xC1 lsls r1, 6 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x1 b _0810823A .align 2, 0 _08108230: .4byte gUnknown_203AD14 _08108234: .4byte gUnknown_8452CF4 _08108238: movs r0, 0 _0810823A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81081D0 thumb_func_start sub_8108240 sub_8108240: @ 8108240 push {r4,lr} sub sp, 0x4 ldr r4, _0810825C @ =gUnknown_203AD10 ldr r0, [r4] ldrb r0, [r0, 0x10] cmp r0, 0x5 bls _08108250 b _08108368 _08108250: lsls r0, 2 ldr r1, _08108260 @ =_08108264 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810825C: .4byte gUnknown_203AD10 _08108260: .4byte _08108264 .align 2, 0 _08108264: .4byte _0810827C .4byte _08108298 .4byte _081082D8 .4byte _08108310 .4byte _08108340 .4byte _0810834C _0810827C: bl reset_temp_tile_data_buffers ldr r1, _08108294 @ =gUnknown_8E830CC movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _08108352 .align 2, 0 _08108294: .4byte gUnknown_8E830CC _08108298: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810837C ldr r0, _081082B8 @ =gUnknown_203ACFC ldrb r0, [r0, 0x4] cmp r0, 0x3 beq _081082C4 ldr r0, _081082BC @ =gUnknown_8E832C0 ldr r1, _081082C0 @ =gUnknown_203AD14 ldr r1, [r1] bl LZDecompressWram b _08108352 .align 2, 0 _081082B8: .4byte gUnknown_203ACFC _081082BC: .4byte gUnknown_8E832C0 _081082C0: .4byte gUnknown_203AD14 _081082C4: ldr r0, _081082D0 @ =gUnknown_8E83444 ldr r1, _081082D4 @ =gUnknown_203AD14 ldr r1, [r1] bl LZDecompressWram b _08108352 .align 2, 0 _081082D0: .4byte gUnknown_8E83444 _081082D4: .4byte gUnknown_203AD14 _081082D8: ldr r0, _08108304 @ =gUnknown_8E835B4 movs r1, 0 movs r2, 0x60 bl LoadCompressedPalette bl sub_810ADAC lsls r0, 24 cmp r0, 0 bne _08108352 ldr r0, _08108308 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 beq _08108352 ldr r0, _0810830C @ =gUnknown_8E83604 movs r1, 0 movs r2, 0x20 bl LoadCompressedPalette b _08108352 .align 2, 0 _08108304: .4byte gUnknown_8E835B4 _08108308: .4byte gSaveBlock2Ptr _0810830C: .4byte gUnknown_8E83604 _08108310: bl sub_810ADAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08108326 ldr r0, _0810832C @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _08108334 _08108326: ldr r0, _08108330 @ =gUnknown_83D41E4 b _0810834E .align 2, 0 _0810832C: .4byte gSaveBlock2Ptr _08108330: .4byte gUnknown_83D41E4 _08108334: ldr r0, _0810833C @ =gUnknown_83D41EC bl LoadCompressedObjectPic b _08108352 .align 2, 0 _0810833C: .4byte gUnknown_83D41EC _08108340: ldr r0, _08108348 @ =gUnknown_83D41F4 bl LoadCompressedObjectPalette b _08108352 .align 2, 0 _08108348: .4byte gUnknown_83D41F4 _0810834C: ldr r0, _08108360 @ =gUnknown_83D4240 _0810834E: bl LoadCompressedObjectPic _08108352: ldr r0, _08108364 @ =gUnknown_203AD10 ldr r1, [r0] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _0810837C .align 2, 0 _08108360: .4byte gUnknown_83D4240 _08108364: .4byte gUnknown_203AD10 _08108368: ldr r0, _08108378 @ =gUnknown_83D4248 bl LoadCompressedObjectPalette ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x10] movs r0, 0x1 b _0810837E .align 2, 0 _08108378: .4byte gUnknown_83D4248 _0810837C: movs r0, 0 _0810837E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8108240 thumb_func_start sub_8108388 sub_8108388: @ 8108388 push {lr} lsls r0, 24 lsrs r0, 24 subs r0, 0x6 cmp r0, 0x4 bhi _081083E0 lsls r0, 2 ldr r1, _081083A0 @ =_081083A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081083A0: .4byte _081083A4 .align 2, 0 _081083A4: .4byte _081083B8 .4byte _081083D0 .4byte _081083D8 .4byte _081083C0 .4byte _081083C8 _081083B8: ldr r0, _081083BC @ =sub_810AF9C b _081083E2 .align 2, 0 _081083BC: .4byte sub_810AF9C _081083C0: ldr r0, _081083C4 @ =sub_810B1D4 b _081083E2 .align 2, 0 _081083C4: .4byte sub_810B1D4 _081083C8: ldr r0, _081083CC @ =sub_810B5D4 b _081083E2 .align 2, 0 _081083CC: .4byte sub_810B5D4 _081083D0: ldr r0, _081083D4 @ =sub_810B4BC b _081083E2 .align 2, 0 _081083D4: .4byte sub_810B4BC _081083D8: ldr r0, _081083DC @ =sub_810B378 b _081083E2 .align 2, 0 _081083DC: .4byte sub_810B378 _081083E0: ldr r0, _081083F0 @ =sub_8108F0C _081083E2: movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _081083F0: .4byte sub_8108F0C thumb_func_end sub_8108388 thumb_func_start sub_81083F4 sub_81083F4: @ 81083F4 push {r4,lr} ldr r4, _08108418 @ =gUnknown_203AD18 movs r0, 0xAC lsls r0, 1 bl Alloc str r0, [r4] cmp r0, 0 beq _08108424 ldr r4, _0810841C @ =gUnknown_203AD1C ldr r0, _08108420 @ =0x00000331 bl Alloc str r0, [r4] cmp r0, 0 beq _08108424 movs r0, 0x1 b _08108426 .align 2, 0 _08108418: .4byte gUnknown_203AD18 _0810841C: .4byte gUnknown_203AD1C _08108420: .4byte 0x00000331 _08108424: movs r0, 0 _08108426: pop {r4} pop {r1} bx r1 thumb_func_end sub_81083F4 thumb_func_start sub_810842C sub_810842C: @ 810842C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 3 ldr r0, _0810853C @ =gUnknown_203988C adds r1, r0 mov r8, r1 movs r6, 0 ldr r0, _08108540 @ =gUnknown_203AD10 ldr r0, [r0] adds r0, 0xA adds r0, r7 ldrb r0, [r0] cmp r6, r0 bcs _0810848C ldr r5, _08108544 @ =gUnknown_203AD1C _08108450: lsls r2, r6, 2 adds r4, r2, r6 lsls r4, 2 subs r4, r6 ldr r0, [r5] adds r0, r4 mov r3, r8 ldr r1, [r3] adds r2, r1 ldrh r1, [r2] bl sub_8108560 ldr r0, _08108548 @ =gUnknown_203AD18 ldr r0, [r0] lsls r1, r6, 3 adds r1, r0 ldr r0, [r5] adds r0, r4 str r0, [r1] str r6, [r1, 0x4] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _08108540 @ =gUnknown_203AD10 ldr r0, [r0] adds r0, 0xA adds r0, r7 ldrb r0, [r0] cmp r6, r0 bcc _08108450 _0810848C: ldr r5, _08108544 @ =gUnknown_203AD1C lsls r4, r6, 2 adds r4, r6 lsls r4, 2 subs r4, r6 ldr r0, [r5] adds r0, r4 ldr r1, _0810854C @ =gUnknown_8452F60 bl StringCopy ldr r0, [r5] adds r0, r4 ldr r1, _08108550 @ =gFameCheckerText_Cancel bl StringAppend ldr r0, _08108548 @ =gUnknown_203AD18 ldr r2, [r0] lsls r1, r6, 3 adds r1, r2 ldr r0, [r5] adds r0, r4 str r0, [r1] str r6, [r1, 0x4] ldr r3, _08108554 @ =gUnknown_3005E70 str r2, [r3] ldr r0, _08108540 @ =gUnknown_203AD10 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xA adds r0, r7 ldrb r0, [r0] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0xC] strb r1, [r3, 0x10] strb r1, [r3, 0x11] movs r0, 0x9 strb r0, [r3, 0x12] movs r0, 0x1 strb r0, [r3, 0x13] ldrb r0, [r3, 0x16] movs r4, 0x8 negs r4, r4 ands r4, r0 movs r0, 0x39 negs r0, r0 ands r4, r0 movs r0, 0x10 orrs r4, r0 strb r4, [r3, 0x16] ldrb r0, [r3, 0x14] movs r1, 0x10 negs r1, r1 ands r1, r0 movs r5, 0x2 orrs r1, r5 strb r1, [r3, 0x14] adds r2, 0xD adds r2, r7 ldrb r0, [r2] strh r0, [r3, 0xE] ldrb r0, [r3, 0x17] movs r2, 0x40 negs r2, r2 ands r2, r0 orrs r2, r5 movs r0, 0xF ands r1, r0 movs r0, 0x20 orrs r1, r0 strb r1, [r3, 0x14] movs r0, 0x30 strb r0, [r3, 0x15] ldr r0, _08108558 @ =sub_81085A4 str r0, [r3, 0x4] ldr r0, _0810855C @ =sub_8108654 str r0, [r3, 0x8] movs r0, 0x3F ands r2, r0 strb r2, [r3, 0x17] ands r4, r0 strb r4, [r3, 0x16] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810853C: .4byte gUnknown_203988C _08108540: .4byte gUnknown_203AD10 _08108544: .4byte gUnknown_203AD1C _08108548: .4byte gUnknown_203AD18 _0810854C: .4byte gUnknown_8452F60 _08108550: .4byte gFameCheckerText_Cancel _08108554: .4byte gUnknown_3005E70 _08108558: .4byte sub_81085A4 _0810855C: .4byte sub_8108654 thumb_func_end sub_810842C thumb_func_start sub_8108560 sub_8108560: @ 8108560 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 16 lsrs r5, r1, 16 ldr r0, _0810857C @ =0xfe940000 adds r1, r0 lsrs r1, 16 cmp r1, 0x1 bhi _08108584 ldr r1, _08108580 @ =gUnknown_8452F66 adds r0, r4, 0 bl StringCopy b _0810858C .align 2, 0 _0810857C: .4byte 0xfe940000 _08108580: .4byte gUnknown_8452F66 _08108584: ldr r1, _081085A0 @ =gUnknown_8452F60 adds r0, r4, 0 bl StringCopy _0810858C: adds r0, r5, 0 bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringAppend pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081085A0: .4byte gUnknown_8452F60 thumb_func_end sub_8108560 thumb_func_start sub_81085A4 sub_81085A4: @ 81085A4 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _081085BA movs r0, 0xF5 bl PlaySE bl sub_8098580 _081085BA: ldr r4, _08108604 @ =gUnknown_203AD10 ldr r1, [r4] ldrb r0, [r1, 0x4] cmp r0, 0xFF bne _08108644 ldrb r1, [r1, 0x5] lsls r1, 26 lsrs r1, 30 movs r0, 0x1 eors r0, r1 bl sub_8098940 ldr r2, [r4] ldr r0, _08108608 @ =gUnknown_203ACFC ldrh r1, [r0, 0x6] adds r0, r2, 0 adds r0, 0xA adds r0, r1 ldrb r0, [r0] cmp r0, r5 beq _0810860C adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, r5, 16 lsrs r1, 16 bl sub_809A798 lsls r0, 16 lsrs r0, 16 ldr r1, [r4] ldrb r1, [r1, 0x5] lsls r1, 26 lsrs r1, 30 bl sub_80988E8 b _08108618 .align 2, 0 _08108604: .4byte gUnknown_203AD10 _08108608: .4byte gUnknown_203ACFC _0810860C: ldr r0, _0810864C @ =0x00000177 ldrb r1, [r2, 0x5] lsls r1, 26 lsrs r1, 30 bl sub_80988E8 _08108618: ldr r4, _08108650 @ =gUnknown_203AD10 ldr r3, [r4] ldrb r2, [r3, 0x5] lsls r0, r2, 26 lsrs r0, 30 movs r1, 0x1 eors r1, r0 lsls r1, 4 movs r0, 0x31 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x5] ldr r0, [r4] ldrb r1, [r0, 0x5] movs r0, 0xC0 ands r0, r1 cmp r0, 0 bne _08108644 adds r0, r5, 0 bl sub_8108818 _08108644: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810864C: .4byte 0x00000177 _08108650: .4byte gUnknown_203AD10 thumb_func_end sub_81085A4 thumb_func_start sub_8108654 sub_8108654: @ 8108654 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _08108684 @ =gUnknown_203AD10 ldr r0, [r0] ldrb r1, [r0, 0x4] cmp r1, 0xFF beq _08108690 lsls r0, r4, 24 lsrs r0, 24 cmp r1, r0 bne _08108688 adds r0, r6, 0 movs r1, 0x2 bl bag_menu_print_cursor b _08108690 .align 2, 0 _08108684: .4byte gUnknown_203AD10 _08108688: adds r0, r6, 0 movs r1, 0xFF bl bag_menu_print_cursor _08108690: movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _08108752 ldr r0, _08108718 @ =gUnknown_203AD10 ldr r0, [r0] ldr r5, _0810871C @ =gUnknown_203ACFC ldrh r1, [r5, 0x6] adds r0, 0xA adds r0, r1 ldrb r0, [r0] cmp r0, r4 beq _08108752 adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 bl sub_809A798 lsls r0, 16 lsrs r7, r0, 16 ldrb r0, [r5, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_809A7B4 lsls r0, 16 lsrs r4, r0, 16 ldrh r0, [r5, 0x6] cmp r0, 0x1 beq _0810872C adds r0, r7, 0 bl itemid_is_unique lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0810872C ldr r0, _08108720 @ =gStringVar1 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _08108724 @ =gStringVar4 ldr r1, _08108728 @ =gUnknown_84162B9 adds r0, r4, 0 bl StringExpandPlaceholders str r6, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] mov r0, r8 movs r1, 0 adds r2, r4, 0 movs r3, 0x6E bl sub_810B8F0 b _08108752 .align 2, 0 _08108718: .4byte gUnknown_203AD10 _0810871C: .4byte gUnknown_203ACFC _08108720: .4byte gStringVar1 _08108724: .4byte gStringVar4 _08108728: .4byte gUnknown_84162B9 _0810872C: ldr r0, _08108760 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _08108764 @ =0x00000296 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _08108752 cmp r0, r7 bne _08108752 ldr r1, _08108768 @ =gUnknown_8452F7C movs r0, 0x18 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] mov r0, r8 movs r2, 0x70 adds r3, r6, 0 bl BlitBitmapToWindow _08108752: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108760: .4byte gSaveBlock1Ptr _08108764: .4byte 0x00000296 _08108768: .4byte gUnknown_8452F7C thumb_func_end sub_8108654 thumb_func_start bag_menu_print_cursor_ bag_menu_print_cursor_: @ 810876C push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl ListMenuGetYCoordForPrintingArrowCursor lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl bag_menu_print_cursor pop {r4} pop {r0} bx r0 thumb_func_end bag_menu_print_cursor_ thumb_func_start bag_menu_print_cursor bag_menu_print_cursor: @ 810878C push {r4,r5,lr} sub sp, 0x14 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0xFF bne _081087C8 movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x1 bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x1 adds r3, r5, 0 bl FillWindowPixelRect b _081087DE _081087C8: ldr r2, _081087E8 @ =gFameCheckerText_ListMenuCursor str r5, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r1, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 bl sub_810B8F0 _081087DE: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081087E8: .4byte gFameCheckerText_ListMenuCursor thumb_func_end bag_menu_print_cursor thumb_func_start sub_81087EC sub_81087EC: @ 81087EC push {lr} movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer ldr r2, _08108810 @ =gUnknown_8452CFC ldr r0, _08108814 @ =gUnknown_203ACFC ldrh r1, [r0, 0x6] lsls r0, r1, 2 adds r0, r2 ldr r0, [r0] lsls r1, 24 lsrs r1, 24 bl sub_810B958 pop {r0} bx r0 .align 2, 0 _08108810: .4byte gUnknown_8452CFC _08108814: .4byte gUnknown_203ACFC thumb_func_end sub_81087EC thumb_func_start sub_8108818 sub_8108818: @ 8108818 push {r4,lr} sub sp, 0x14 adds r2, r0, 0 ldr r0, _0810884C @ =gUnknown_203AD10 ldr r0, [r0] ldr r1, _08108850 @ =gUnknown_203ACFC ldrh r1, [r1, 0x6] adds r0, 0xA adds r0, r1 ldrb r0, [r0] cmp r2, r0 beq _08108854 adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, r2, 16 lsrs r1, 16 bl sub_809A798 lsls r0, 16 lsrs r0, 16 bl ItemId_GetDescription adds r4, r0, 0 b _08108856 .align 2, 0 _0810884C: .4byte gUnknown_203AD10 _08108850: .4byte gUnknown_203ACFC _08108854: ldr r4, _08108884 @ =gUnknown_84162F5 _08108856: movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x3 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 bl sub_810B8F0 add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _08108884: .4byte gUnknown_84162F5 thumb_func_end sub_8108818 thumb_func_start sub_8108888 sub_8108888: @ 8108888 push {r4,lr} sub sp, 0x10 ldr r4, _081088D0 @ =gUnknown_203AD10 ldr r1, [r4] ldr r2, _081088D4 @ =gUnknown_203ACFC ldrh r3, [r2, 0x6] adds r0, r1, 0 adds r0, 0xA adds r0, r3 ldrb r0, [r0] adds r1, 0xD adds r1, r3 ldrb r1, [r1] subs r0, r1 adds r0, 0x1 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] ldrh r0, [r2, 0x6] lsls r0, 1 adds r2, 0xE adds r0, r2 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0xA0 movs r2, 0x8 movs r3, 0x68 bl AddScrollIndicatorArrowPairParametrized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _081088D0: .4byte gUnknown_203AD10 _081088D4: .4byte gUnknown_203ACFC thumb_func_end sub_8108888 thumb_func_start sub_81088D8 sub_81088D8: @ 81088D8 push {r4,lr} ldr r4, _081088FC @ =gUnknown_203AD10 ldr r0, [r4] ldrb r1, [r0, 0x5] movs r0, 0xF ands r0, r1 cmp r0, 0x1 beq _081088F4 ldr r0, _08108900 @ =gUnknown_8452F6C ldr r1, _08108904 @ =gUnknown_203AD02 bl AddScrollIndicatorArrowPair ldr r1, [r4] strb r0, [r1, 0x9] _081088F4: pop {r4} pop {r0} bx r0 .align 2, 0 _081088FC: .4byte gUnknown_203AD10 _08108900: .4byte gUnknown_8452F6C _08108904: .4byte gUnknown_203AD02 thumb_func_end sub_81088D8 thumb_func_start sub_8108908 sub_8108908: @ 8108908 push {r4,lr} sub sp, 0x10 ldr r4, _0810893C @ =gUnknown_203AD10 ldr r1, [r4] movs r0, 0x1 strh r0, [r1, 0x6] movs r0, 0x2 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] adds r1, 0x6 str r1, [sp, 0xC] movs r0, 0x2 movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 bl AddScrollIndicatorArrowPairParametrized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0810893C: .4byte gUnknown_203AD10 thumb_func_end sub_8108908 thumb_func_start sub_8108940 sub_8108940: @ 8108940 push {r4,lr} sub sp, 0x10 ldr r4, _08108974 @ =gUnknown_203AD10 ldr r1, [r4] movs r0, 0x1 strh r0, [r1, 0x6] movs r0, 0x2 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] adds r1, 0x6 str r1, [sp, 0xC] movs r0, 0x2 movs r1, 0xD4 movs r2, 0x78 movs r3, 0x98 bl AddScrollIndicatorArrowPairParametrized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08108974: .4byte gUnknown_203AD10 thumb_func_end sub_8108940 thumb_func_start sub_8108978 sub_8108978: @ 8108978 push {r4,lr} ldr r4, _08108998 @ =gUnknown_203AD10 ldr r1, [r4] ldrb r0, [r1, 0x8] cmp r0, 0xFF beq _0810898E bl RemoveScrollIndicatorArrowPair ldr r1, [r4] movs r0, 0xFF strb r0, [r1, 0x8] _0810898E: bl sub_810899C pop {r4} pop {r0} bx r0 .align 2, 0 _08108998: .4byte gUnknown_203AD10 thumb_func_end sub_8108978 thumb_func_start sub_810899C sub_810899C: @ 810899C push {r4,lr} ldr r4, _081089B8 @ =gUnknown_203AD10 ldr r1, [r4] ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _081089B2 bl RemoveScrollIndicatorArrowPair ldr r1, [r4] movs r0, 0xFF strb r0, [r1, 0x9] _081089B2: pop {r4} pop {r0} bx r0 .align 2, 0 _081089B8: .4byte gUnknown_203AD10 thumb_func_end sub_810899C thumb_func_start sub_81089BC sub_81089BC: @ 81089BC push {r4,r5,lr} ldr r0, _081089F0 @ =gUnknown_203ACFC movs r2, 0 movs r1, 0 strh r1, [r0, 0x6] strb r2, [r0, 0x5] movs r2, 0 adds r5, r0, 0 adds r5, 0x8 movs r3, 0 adds r4, r0, 0 adds r4, 0xE _081089D4: lsls r1, r2, 1 adds r0, r1, r5 strh r3, [r0] adds r1, r4 strh r3, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _081089D4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081089F0: .4byte gUnknown_203ACFC thumb_func_end sub_81089BC thumb_func_start sub_81089F4 sub_81089F4: @ 81089F4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _08108A60 @ =gUnknown_203ACFC lsls r1, r4, 1 adds r0, r2, 0 adds r0, 0xE adds r3, r1, r0 ldrh r0, [r3] adds r7, r2, 0 ldr r6, _08108A64 @ =gUnknown_203AD10 cmp r0, 0 beq _08108A2E adds r2, r0, 0 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xD adds r0, r4 ldrb r5, [r0] adds r2, r5 adds r1, 0xA adds r1, r4 ldrb r1, [r1] adds r0, r1, 0x1 cmp r2, r0 ble _08108A2E subs r0, r5, 0x1 subs r0, r1, r0 strh r0, [r3] _08108A2E: lsls r2, r4, 1 adds r0, r7, 0 adds r0, 0xE adds r0, r2, r0 ldrh r1, [r0] adds r0, r7, 0 adds r0, 0x8 adds r2, r0 ldrh r0, [r2] adds r1, r0 ldr r0, [r6] adds r0, 0xA adds r0, r4 ldrb r0, [r0] adds r3, r0, 0x1 cmp r1, r3 blt _08108A58 cmp r3, 0x1 bgt _08108A56 movs r0, 0 _08108A56: strh r0, [r2] _08108A58: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108A60: .4byte gUnknown_203ACFC _08108A64: .4byte gUnknown_203AD10 thumb_func_end sub_81089F4 thumb_func_start sub_8108A68 sub_8108A68: @ 8108A68 push {r4,lr} movs r4, 0 _08108A6C: adds r0, r4, 0 bl sub_81089F4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08108A6C pop {r4} pop {r0} bx r0 thumb_func_end sub_8108A68 thumb_func_start sub_8108A84 sub_8108A84: @ 8108A84 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, _08108AF8 @ =gUnknown_203AD04 mov r8, r0 _08108A90: lsls r2, r6, 1 mov r3, r8 adds r1, r2, r3 ldrh r0, [r1] adds r7, r6, 0x1 cmp r0, 0x3 bls _08108AE6 movs r5, 0 subs r0, 0x3 cmp r5, r0 bgt _08108AE6 ldr r0, _08108AFC @ =gUnknown_203AD0A ldr r3, _08108B00 @ =gUnknown_203AD10 mov r12, r3 adds r4, r2, r0 adds r3, r1, 0 _08108AB0: ldrh r2, [r4] mov r0, r12 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xD adds r0, r6 ldrb r0, [r0] adds r2, r0 adds r1, 0xA adds r1, r6 ldrb r0, [r1] adds r0, 0x1 cmp r2, r0 beq _08108AE6 ldrh r0, [r3] subs r0, 0x1 strh r0, [r3] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r3] subs r0, 0x3 cmp r5, r0 ble _08108AB0 _08108AE6: lsls r0, r7, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _08108A90 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108AF8: .4byte gUnknown_203AD04 _08108AFC: .4byte gUnknown_203AD0A _08108B00: .4byte gUnknown_203AD10 thumb_func_end sub_8108A84 thumb_func_start sub_8108B04 sub_8108B04: @ 8108B04 push {lr} ldr r0, _08108B40 @ =gUnknown_203AD10 ldr r0, [r0] cmp r0, 0 beq _08108B12 bl Free _08108B12: ldr r0, _08108B44 @ =gUnknown_203AD14 ldr r0, [r0] cmp r0, 0 beq _08108B1E bl Free _08108B1E: ldr r0, _08108B48 @ =gUnknown_203AD18 ldr r0, [r0] cmp r0, 0 beq _08108B2A bl Free _08108B2A: ldr r0, _08108B4C @ =gUnknown_203AD1C ldr r0, [r0] cmp r0, 0 beq _08108B36 bl Free _08108B36: bl FreeAllWindowBuffers pop {r0} bx r0 .align 2, 0 _08108B40: .4byte gUnknown_203AD10 _08108B44: .4byte gUnknown_203AD14 _08108B48: .4byte gUnknown_203AD18 _08108B4C: .4byte gUnknown_203AD1C thumb_func_end sub_8108B04 thumb_func_start sub_8108B50 sub_8108B50: @ 8108B50 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r1, 0x2 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08108B84 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08108B88 @ =sub_8108B8C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08108B84: .4byte gTasks _08108B88: .4byte sub_8108B8C thumb_func_end sub_8108B50 thumb_func_start sub_8108B8C sub_8108B8C: @ 8108B8C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08108BE0 @ =gTasks+0x8 adds r4, r0, r1 ldr r0, _08108BE4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08108C08 ldr r0, _08108BE8 @ =sub_8108CFC bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08108C08 ldrb r0, [r4] ldr r4, _08108BEC @ =gUnknown_203ACFC ldrh r2, [r4, 0x6] lsls r2, 1 adds r1, r4, 0 adds r1, 0xE adds r1, r2, r1 adds r3, r4, 0 adds r3, 0x8 adds r2, r3 bl sub_810713C ldr r0, _08108BF0 @ =gUnknown_203AD10 ldr r0, [r0] ldr r0, [r0] cmp r0, 0 beq _08108BF4 bl SetMainCallback2 b _08108BFA .align 2, 0 _08108BE0: .4byte gTasks+0x8 _08108BE4: .4byte gPaletteFade _08108BE8: .4byte sub_8108CFC _08108BEC: .4byte gUnknown_203ACFC _08108BF0: .4byte gUnknown_203AD10 _08108BF4: ldr r0, [r4] bl SetMainCallback2 _08108BFA: bl sub_8108978 bl sub_8108B04 adds r0, r5, 0 bl DestroyTask _08108C08: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8108B8C thumb_func_start sub_8108C10 sub_8108C10: @ 8108C10 push {r4,r5,lr} sub sp, 0x8 movs r5, 0 add r0, sp, 0x4 strh r5, [r0] movs r1, 0 movs r2, 0x2 bl LoadPalette movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0x3F bl SetGpuReg movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes str r5, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r4, _08108C68 @ =gUnknown_203ACFC ldrb r0, [r4, 0x5] cmp r0, 0x1 bne _08108C6C movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg b _08108C9E .align 2, 0 _08108C68: .4byte gUnknown_203ACFC _08108C6C: movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg movs r0, 0x44 movs r1, 0xA0 bl SetGpuReg ldr r0, _08108CA8 @ =sub_8108CFC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08108CAC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0xC0 strh r0, [r1, 0x8] ldr r0, _08108CB0 @ =0x0000fff0 strh r0, [r1, 0xA] movs r0, 0x1 strb r0, [r4, 0x5] _08108C9E: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08108CA8: .4byte sub_8108CFC _08108CAC: .4byte gTasks _08108CB0: .4byte 0x0000fff0 thumb_func_end sub_8108C10 thumb_func_start sub_8108CB4 sub_8108CB4: @ 8108CB4 push {lr} ldr r0, _08108CE0 @ =sub_8108CFC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08108CE4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 ldr r0, _08108CE8 @ =0x0000fff0 strh r0, [r1, 0x8] movs r0, 0x10 strh r0, [r1, 0xA] ldr r0, _08108CEC @ =gUnknown_203ACFC strb r2, [r0, 0x5] pop {r0} bx r0 .align 2, 0 _08108CE0: .4byte sub_8108CFC _08108CE4: .4byte gTasks _08108CE8: .4byte 0x0000fff0 _08108CEC: .4byte gUnknown_203ACFC thumb_func_end sub_8108CB4 thumb_func_start sub_8108CF0 sub_8108CF0: @ 8108CF0 ldr r1, _08108CF8 @ =gUnknown_203ACFC movs r0, 0 strb r0, [r1, 0x5] bx lr .align 2, 0 _08108CF8: .4byte gUnknown_203ACFC thumb_func_end sub_8108CF0 thumb_func_start sub_8108CFC sub_8108CFC: @ 8108CFC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08108D28 @ =gTasks+0x8 adds r4, r0, r1 ldrh r0, [r4, 0x2] ldrh r1, [r4] adds r0, r1 strh r0, [r4] lsls r0, 16 asrs r0, 16 cmp r0, 0xA0 ble _08108D2C movs r0, 0x44 movs r1, 0xA0 bl SetGpuReg b _08108D34 .align 2, 0 _08108D28: .4byte gTasks+0x8 _08108D2C: ldrh r1, [r4] movs r0, 0x44 bl SetGpuReg _08108D34: movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0x10 bne _08108D44 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0xA0 beq _08108D54 _08108D44: movs r0, 0x10 negs r0, r0 cmp r1, r0 bne _08108D5A movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _08108D5A _08108D54: adds r0, r5, 0 bl DestroyTask _08108D5A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8108CFC thumb_func_start sub_8108D60 sub_8108D60: @ 8108D60 push {r4-r6,lr} adds r4, r0, 0 adds r3, r2, 0 cmp r1, r3 beq _08108DC0 lsls r0, r1, 2 adds r0, r4 ldr r6, [r0] cmp r3, r1 bls _08108D98 subs r3, 0x1 lsls r1, 16 lsls r0, r3, 16 asrs r2, r0, 16 cmp r1, r0 bge _08108DBA adds r5, r2, 0 _08108D82: asrs r2, r1, 16 lsls r0, r2, 2 adds r0, r4 ldr r1, [r0, 0x4] str r1, [r0] adds r2, 0x1 lsls r1, r2, 16 asrs r0, r1, 16 cmp r0, r5 blt _08108D82 b _08108DBA _08108D98: lsls r1, 16 lsls r0, r3, 16 asrs r2, r0, 16 cmp r1, r0 ble _08108DBA adds r5, r2, 0 _08108DA4: asrs r2, r1, 16 lsls r1, r2, 2 adds r1, r4 subs r0, r1, 0x4 ldr r0, [r0] str r0, [r1] subs r2, 0x1 lsls r1, r2, 16 asrs r0, r1, 16 cmp r0, r5 bgt _08108DA4 _08108DBA: lsls r0, r3, 2 adds r0, r4 str r6, [r0] _08108DC0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8108D60 thumb_func_start sub_8108DC8 sub_8108DC8: @ 8108DC8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, r5, 3 ldr r0, _08108E3C @ =gUnknown_203988C adds r4, r1, r0 ldr r0, [r4] ldrb r1, [r4, 0x4] bl sub_809A584 ldr r3, _08108E40 @ =gUnknown_203AD10 ldr r0, [r3] adds r0, 0xA adds r0, r5 movs r1, 0 strb r1, [r0] movs r2, 0 ldrb r0, [r4, 0x4] cmp r2, r0 bcs _08108E1C ldr r0, [r4] ldrh r0, [r0] cmp r0, 0 beq _08108E1C _08108DF8: ldr r0, [r3] adds r0, 0xA adds r0, r5 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrb r0, [r4, 0x4] cmp r2, r0 bcs _08108E1C ldr r0, [r4] lsls r1, r2, 2 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08108DF8 _08108E1C: ldr r0, _08108E40 @ =gUnknown_203AD10 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xA adds r0, r5 ldrb r0, [r0] adds r2, r0, 0x1 cmp r2, 0x6 ble _08108E44 adds r0, r1, 0 adds r0, 0xD adds r0, r5 movs r1, 0x6 strb r1, [r0] b _08108E4C .align 2, 0 _08108E3C: .4byte gUnknown_203988C _08108E40: .4byte gUnknown_203AD10 _08108E44: adds r0, r1, 0 adds r0, 0xD adds r0, r5 strb r2, [r0] _08108E4C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8108DC8 thumb_func_start sub_8108E54 sub_8108E54: @ 8108E54 push {r4,lr} movs r4, 0 _08108E58: adds r0, r4, 0 bl sub_8108DC8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08108E58 pop {r4} pop {r0} bx r0 thumb_func_end sub_8108E54 thumb_func_start sub_8108E70 sub_8108E70: @ 8108E70 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 mov r9, r3 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _08108EDC @ =gTasks+0x8 adds r4, r0 movs r0, 0x5 bl sub_810BA70 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] movs r1, 0x11 bl FillWindowPixelBuffer bl sub_80F78A8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x14] str r6, [sp] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] adds r0, r5, 0 movs r2, 0x6D movs r3, 0xD bl DisplayMessageAndContinueTask movs r0, 0 bl schedule_bg_copy_tilemap_to_vram add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08108EDC: .4byte gTasks+0x8 thumb_func_end sub_8108E70 thumb_func_start sub_8108EE0 sub_8108EE0: @ 8108EE0 ldr r1, _08108EE8 @ =gUnknown_203AD10 ldr r1, [r1] str r0, [r1] bx lr .align 2, 0 _08108EE8: .4byte gUnknown_203AD10 thumb_func_end sub_8108EE0 thumb_func_start sub_8108EEC sub_8108EEC: @ 8108EEC lsls r0, 24 ldr r1, _08108F08 @ =gUnknown_203ACFC lsrs r0, 23 adds r2, r1, 0 adds r2, 0xE adds r2, r0, r2 adds r1, 0x8 adds r0, r1 ldrb r0, [r0] ldrb r2, [r2] adds r0, r2 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08108F08: .4byte gUnknown_203ACFC thumb_func_end sub_8108EEC thumb_func_start sub_8108F0C sub_8108F0C: @ 8108F0C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08108F78 @ =gTasks+0x8 adds r7, r0, r1 ldr r0, _08108F7C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08108F2C b _081090C6 _08108F2C: ldr r0, _08108F80 @ =sub_8108CFC bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08108F3C b _081090C6 _08108F3C: bl sub_80BF72C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08108F4A b _081090C6 _08108F4A: ldr r4, _08108F84 @ =gUnknown_203ACFC ldrb r1, [r4, 0x6] adds r0, r6, 0 bl sub_8109168 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08108F8C cmp r0, 0x2 beq _08108F94 ldr r0, _08108F88 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08108FE4 adds r5, r4, 0 ldrb r0, [r5, 0x4] cmp r0, 0 bne _08108FE4 b _08108FA0 .align 2, 0 _08108F78: .4byte gTasks+0x8 _08108F7C: .4byte gPaletteFade _08108F80: .4byte sub_8108CFC _08108F84: .4byte gUnknown_203ACFC _08108F88: .4byte gMain _08108F8C: movs r1, 0x1 negs r1, r1 adds r0, r6, 0 b _08108F98 _08108F94: adds r0, r6, 0 movs r1, 0x1 _08108F98: movs r2, 0 bl sub_81091D0 b _081090C6 _08108FA0: ldrb r0, [r7] mov r4, sp adds r4, 0x2 mov r1, sp adds r2, r4, 0 bl get_coro_args_x18_x1A mov r0, sp ldrh r1, [r0] ldrh r0, [r4] adds r1, r0 ldr r0, _08108FE0 @ =gUnknown_203AD10 ldr r0, [r0] adds r0, 0xA ldrh r5, [r5, 0x6] adds r0, r5 ldrb r0, [r0] cmp r1, r0 beq _08108FE4 movs r0, 0x5 bl PlaySE mov r0, sp ldrh r1, [r4] ldrh r0, [r0] adds r1, r0 lsls r1, 16 asrs r1, 16 adds r0, r6, 0 bl sub_81093B8 b _081090C6 .align 2, 0 _08108FE0: .4byte gUnknown_203AD10 _08108FE4: ldrb r0, [r7] bl ListMenuHandleInput adds r4, r0, 0 ldrb r0, [r7] ldr r5, _08109014 @ =gUnknown_203ACFC ldrh r2, [r5, 0x6] lsls r2, 1 adds r1, r5, 0 adds r1, 0xE adds r1, r2, r1 adds r3, r5, 0 adds r3, 0x8 adds r2, r3 bl get_coro_args_x18_x1A movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _08109018 adds r0, 0x1 cmp r4, r0 bne _08109044 b _081090C6 .align 2, 0 _08109014: .4byte gUnknown_203ACFC _08109018: movs r0, 0x5 bl PlaySE ldr r1, _08109038 @ =gSpecialVar_ItemId movs r0, 0 strh r0, [r1] bl sub_8108CB4 ldr r1, _0810903C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _08109040 @ =sub_8108B50 b _081090C4 .align 2, 0 _08109038: .4byte gSpecialVar_ItemId _0810903C: .4byte gTasks _08109040: .4byte sub_8108B50 _08109044: movs r0, 0x5 bl PlaySE ldr r0, _08109074 @ =gUnknown_203AD10 ldr r0, [r0] adds r0, 0xA ldrh r1, [r5, 0x6] adds r0, r1 ldrb r0, [r0] cmp r4, r0 bne _08109084 ldr r1, _08109078 @ =gSpecialVar_ItemId movs r0, 0 strh r0, [r1] bl sub_8108CB4 ldr r1, _0810907C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _08109080 @ =sub_8108B50 b _081090C4 .align 2, 0 _08109074: .4byte gUnknown_203AD10 _08109078: .4byte gSpecialVar_ItemId _0810907C: .4byte gTasks _08109080: .4byte sub_8108B50 _08109084: bl sub_8108978 ldrb r0, [r7] movs r1, 0x2 bl bag_menu_print_cursor_ strh r4, [r7, 0x2] ldrb r0, [r5, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 bl sub_809A7B4 strh r0, [r7, 0x4] ldrb r0, [r5, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_809A798 ldr r1, _081090D0 @ =gSpecialVar_ItemId strh r0, [r1] ldr r1, _081090D4 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _081090D8 @ =sub_81090DC _081090C4: str r1, [r0] _081090C6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081090D0: .4byte gSpecialVar_ItemId _081090D4: .4byte gTasks _081090D8: .4byte sub_81090DC thumb_func_end sub_8108F0C thumb_func_start sub_81090DC sub_81090DC: @ 81090DC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl sub_8109140 ldr r1, _08109104 @ =gUnknown_8452F34 ldr r0, _08109108 @ =gUnknown_203ACFC ldrb r0, [r0, 0x4] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _08109104: .4byte gUnknown_8452F34 _08109108: .4byte gUnknown_203ACFC thumb_func_end sub_81090DC thumb_func_start sub_810910C sub_810910C: @ 810910C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_8109140 bl sub_8108888 bl sub_81088D8 ldr r1, _08109138 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810913C @ =sub_8108F0C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08109138: .4byte gTasks _0810913C: .4byte sub_8108F0C thumb_func_end sub_810910C thumb_func_start sub_8109140 sub_8109140: @ 8109140 push {lr} sub sp, 0x8 movs r1, 0x6 str r1, [sp] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0xE movs r3, 0x1E bl sub_80F6B08 movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_8109140 thumb_func_start sub_8109168 sub_8109168: @ 8109168 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldr r0, _081091A4 @ =gUnknown_203AD10 ldr r0, [r0] ldrb r1, [r0, 0x5] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081091C6 bl GetLRKeysState lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081091A8 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08109194 cmp r2, 0x1 bne _081091AC _08109194: cmp r4, 0 beq _081091C6 movs r0, 0xF6 bl PlaySE movs r0, 0x1 b _081091C8 .align 2, 0 _081091A4: .4byte gUnknown_203AD10 _081091A8: .4byte gMain _081091AC: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081091B8 cmp r2, 0x2 bne _081091C6 _081091B8: cmp r4, 0x1 bhi _081091C6 movs r0, 0xF6 bl PlaySE movs r0, 0x2 b _081091C8 _081091C6: movs r0, 0 _081091C8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8109168 thumb_func_start sub_81091D0 sub_81091D0: @ 81091D0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r1, 16 lsrs r1, 16 adds r6, r1, 0 lsls r2, 16 lsls r0, r5, 2 adds r0, r5 lsls r7, r0, 3 ldr r0, _08109288 @ =gTasks+0x8 mov r8, r0 adds r4, r7, r0 movs r0, 0 strh r0, [r4, 0x1A] strh r0, [r4, 0x18] strh r6, [r4, 0x16] cmp r2, 0 bne _08109242 movs r0, 0 bl ClearWindowTilemap movs r0, 0x1 bl ClearWindowTilemap movs r0, 0x2 bl ClearWindowTilemap ldrb r0, [r4] ldr r3, _0810928C @ =gUnknown_203ACFC ldrh r2, [r3, 0x6] lsls r2, 1 adds r1, r3, 0 adds r1, 0xE adds r1, r2, r1 adds r3, 0x8 adds r2, r3 bl sub_810713C movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, _08109290 @ =gUnknown_203AD10 ldr r0, [r0] ldrb r1, [r0, 0x5] lsls r1, 26 lsrs r1, 30 movs r0, 0x1 eors r0, r1 bl sub_8098940 bl sub_8108978 _08109242: movs r0, 0x12 str r0, [sp] movs r0, 0xC str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x2D movs r2, 0xB movs r3, 0x1 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram ldr r0, _0810928C @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, r6 lsls r0, 24 lsrs r0, 24 bl sub_8098528 ldr r1, _08109294 @ =sub_8109298 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r2, [r0] adds r0, r5, 0 bl SetTaskFuncWithFollowupFunc add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08109288: .4byte gTasks+0x8 _0810928C: .4byte gUnknown_203ACFC _08109290: .4byte gUnknown_203AD10 _08109294: .4byte sub_8109298 thumb_func_end sub_81091D0 thumb_func_start sub_8109298 sub_8109298: @ 8109298 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _081092DC @ =gTasks+0x8 adds r5, r0, r1 bl sub_80BF708 lsls r0, 24 cmp r0, 0 bne _08109314 bl sub_810ADAC lsls r0, 24 cmp r0, 0 bne _08109314 ldr r4, _081092E0 @ =gUnknown_203ACFC ldrb r1, [r5, 0x16] ldrb r0, [r4, 0x6] adds r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8109168 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081092E4 cmp r0, 0x2 beq _081092FA b _08109314 .align 2, 0 _081092DC: .4byte gTasks+0x8 _081092E0: .4byte gUnknown_203ACFC _081092E4: ldrh r0, [r5, 0x16] ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r4, 0x6] adds r0, r6, 0 bl SwitchTaskToFollowupFunc movs r1, 0x1 negs r1, r1 adds r0, r6, 0 b _0810930C _081092FA: ldrh r0, [r5, 0x16] ldrh r2, [r4, 0x6] adds r0, r2 strh r0, [r4, 0x6] adds r0, r6, 0 bl SwitchTaskToFollowupFunc adds r0, r6, 0 movs r1, 0x1 _0810930C: movs r2, 0x1 bl sub_81091D0 b _081093AA _08109314: movs r1, 0x1A ldrsh r0, [r5, r1] cmp r0, 0 beq _08109322 cmp r0, 0x1 beq _08109358 b _081093AA _08109322: ldrh r1, [r5, 0x18] movs r2, 0x18 ldrsh r0, [r5, r2] ldr r4, _08109354 @ =0x00007fff cmp r0, r4 beq _0810934C adds r0, r1, 0x1 strh r0, [r5, 0x18] lsls r0, 24 lsrs r0, 24 bl sub_8109854 movs r1, 0x18 ldrsh r0, [r5, r1] cmp r0, 0xC bne _08109344 strh r4, [r5, 0x18] _08109344: movs r2, 0x18 ldrsh r0, [r5, r2] cmp r0, r4 bne _081093AA _0810934C: ldrh r0, [r5, 0x1A] adds r0, 0x1 strh r0, [r5, 0x1A] b _081093AA .align 2, 0 _08109354: .4byte 0x00007fff _08109358: ldr r4, _081093B0 @ =gUnknown_203ACFC ldrh r0, [r5, 0x16] ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r4, 0x6] bl sub_81087EC ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _081093B4 @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 adds r1, r4, 0 adds r1, 0xE adds r1, r2, r1 ldrh r1, [r1] adds r4, 0x8 adds r2, r4 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_8108888 bl sub_81088D8 adds r0, r6, 0 bl SwitchTaskToFollowupFunc _081093AA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081093B0: .4byte gUnknown_203ACFC _081093B4: .4byte gUnknown_3005E70 thumb_func_end sub_8109298 thumb_func_start sub_81093B8 sub_81093B8: @ 81093B8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x18 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 lsls r5, r0, 2 adds r5, r0 lsls r5, 3 ldr r0, _08109494 @ =gTasks+0x8 mov r9, r0 adds r1, r5, 0 add r1, r9 mov r8, r1 ldrb r0, [r1] mov r2, sp adds r2, 0x16 add r1, sp, 0x14 bl get_coro_args_x18_x1A mov r2, r8 ldrb r0, [r2] movs r1, 0x10 movs r2, 0x1 bl sub_8107BD0 mov r0, r8 strh r4, [r0, 0x2] ldr r0, _08109498 @ =gUnknown_203AD10 ldr r0, [r0] movs r6, 0 strb r4, [r0, 0x4] ldr r4, _0810949C @ =gStringVar1 ldr r0, _081094A0 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r2, r8 ldrh r1, [r2, 0x2] bl sub_809A798 lsls r0, 16 lsrs r0, 16 bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r4, _081094A4 @ =gStringVar4 ldr r1, _081094A8 @ =gUnknown_841633F adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x3 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r6, [sp, 0x8] str r6, [sp, 0xC] str r6, [sp, 0x10] movs r0, 0x1 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 bl sub_810B8F0 mov r1, r8 ldrb r0, [r1] bl ListMenuGetYCoordForPrintingArrowCursor adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0 bl sub_80986A8 movs r0, 0 bl sub_8098660 bl sub_810899C mov r2, r8 ldrb r0, [r2] movs r1, 0x2 bl bag_menu_print_cursor_ movs r0, 0x8 negs r0, r0 add r9, r0 add r5, r9 ldr r0, _081094AC @ =sub_81094B0 str r0, [r5] add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109494: .4byte gTasks+0x8 _08109498: .4byte gUnknown_203AD10 _0810949C: .4byte gStringVar1 _081094A0: .4byte gUnknown_203ACFC _081094A4: .4byte gStringVar4 _081094A8: .4byte gUnknown_841633F _081094AC: .4byte sub_81094B0 thumb_func_end sub_81093B8 thumb_func_start sub_81094B0 sub_81094B0: @ 81094B0 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08109538 @ =gTasks+0x8 adds r4, r0, r1 bl sub_80BF72C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810959E ldrb r0, [r4] bl ListMenuHandleInput adds r5, r0, 0 ldrb r0, [r4] ldr r3, _0810953C @ =gUnknown_203ACFC ldrh r2, [r3, 0x6] lsls r2, 1 adds r1, r3, 0 adds r1, 0xE adds r1, r2, r1 adds r3, 0x8 adds r2, r3 bl get_coro_args_x18_x1A ldrb r0, [r4] bl ListMenuGetYCoordForPrintingArrowCursor adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0 bl sub_80986A8 ldr r0, _08109540 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08109548 movs r0, 0x5 bl PlaySE ldr r0, _08109544 @ =gUnknown_203AD10 ldr r1, [r0] movs r0, 0xFF strb r0, [r1, 0x4] ldrb r0, [r4] mov r4, sp adds r4, 0x2 mov r1, sp adds r2, r4, 0 bl get_coro_args_x18_x1A mov r0, sp ldrh r1, [r0] ldrh r0, [r4] adds r1, r0 adds r0, r6, 0 bl sub_81095AC b _0810959E .align 2, 0 _08109538: .4byte gTasks+0x8 _0810953C: .4byte gUnknown_203ACFC _08109540: .4byte gMain _08109544: .4byte gUnknown_203AD10 _08109548: movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _08109558 adds r0, 0x1 cmp r5, r0 bne _08109588 b _0810959E _08109558: movs r0, 0x5 bl PlaySE ldr r0, _08109584 @ =gUnknown_203AD10 ldr r1, [r0] movs r0, 0xFF strb r0, [r1, 0x4] ldrb r0, [r4] mov r4, sp adds r4, 0x2 mov r1, sp adds r2, r4, 0 bl get_coro_args_x18_x1A mov r0, sp ldrh r1, [r0] ldrh r0, [r4] adds r1, r0 adds r0, r6, 0 bl sub_810967C b _0810959E .align 2, 0 _08109584: .4byte gUnknown_203AD10 _08109588: movs r0, 0x5 bl PlaySE ldr r0, _081095A8 @ =gUnknown_203AD10 ldr r1, [r0] movs r0, 0xFF strb r0, [r1, 0x4] adds r0, r6, 0 adds r1, r5, 0 bl sub_81095AC _0810959E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081095A8: .4byte gUnknown_203AD10 thumb_func_end sub_81094B0 thumb_func_start sub_81095AC sub_81095AC: @ 81095AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r1, 0 lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 mov r9, r0 ldr r0, _081095E4 @ =gTasks+0x8 mov r10, r0 mov r6, r9 add r6, r10 movs r3, 0x2 ldrsh r2, [r6, r3] cmp r2, r5 beq _081095DA subs r0, r5, 0x1 cmp r2, r0 bne _081095E8 _081095DA: adds r0, r1, 0 adds r1, r5, 0 bl sub_810967C b _0810965C .align 2, 0 _081095E4: .4byte gTasks+0x8 _081095E8: ldr r1, _0810966C @ =gUnknown_203988C ldr r4, _08109670 @ =gUnknown_203ACFC ldrh r0, [r4, 0x6] lsls r0, 3 adds r0, r1 ldr r0, [r0] adds r1, r2, 0 adds r2, r5, 0 bl sub_8108D60 ldrb r0, [r6] ldrh r2, [r4, 0x6] lsls r2, 1 movs r1, 0xE adds r1, r4 mov r8, r1 adds r1, r2, r1 adds r7, r4, 0 adds r7, 0x8 adds r2, r7 bl sub_810713C movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r5 bcs _08109628 ldrh r1, [r4, 0x6] lsls r1, 1 adds r1, r7 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _08109628: ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _08109674 @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 mov r3, r8 adds r1, r2, r3 ldrh r1, [r1] adds r2, r7 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r6] movs r0, 0x1 bl sub_8098660 bl sub_81088D8 mov r0, r10 subs r0, 0x8 add r0, r9 ldr r1, _08109678 @ =sub_8108F0C str r1, [r0] _0810965C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810966C: .4byte gUnknown_203988C _08109670: .4byte gUnknown_203ACFC _08109674: .4byte gUnknown_3005E70 _08109678: .4byte sub_8108F0C thumb_func_end sub_81095AC thumb_func_start sub_810967C sub_810967C: @ 810967C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 mov r8, r1 ldr r0, _0810970C @ =gTasks+0x8 mov r10, r0 mov r6, r8 add r6, r10 ldrb r0, [r6] ldr r5, _08109710 @ =gUnknown_203ACFC ldrh r2, [r5, 0x6] lsls r2, 1 movs r1, 0xE adds r1, r5 mov r9, r1 adds r1, r2, r1 adds r7, r5, 0 adds r7, 0x8 adds r2, r7 bl sub_810713C movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r4 bcs _081096CA ldrh r1, [r5, 0x6] lsls r1, 1 adds r1, r7 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _081096CA: ldrb r0, [r5, 0x6] bl sub_810842C ldr r0, _08109714 @ =gUnknown_3005E70 ldrh r2, [r5, 0x6] lsls r2, 1 mov r3, r9 adds r1, r2, r3 ldrh r1, [r1] adds r2, r7 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r6] movs r0, 0x1 bl sub_8098660 bl sub_81088D8 mov r0, r10 subs r0, 0x8 add r0, r8 ldr r1, _08109718 @ =sub_8108F0C str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810970C: .4byte gTasks+0x8 _08109710: .4byte gUnknown_203ACFC _08109714: .4byte gUnknown_3005E70 _08109718: .4byte sub_8108F0C thumb_func_end sub_810967C thumb_func_start sub_810971C sub_810971C: @ 810971C push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x14 adds r4, r0, 0 adds r6, r1, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x6 movs r1, 0x2 bl sub_810B9DC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _081097D4 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_809A798 lsls r0, 16 lsrs r0, 16 ldr r1, _081097D8 @ =gStringVar1 mov r10, r1 bl sub_8099E90 ldr r0, _081097DC @ =gStringVar4 mov r9, r0 adds r1, r6, 0 bl StringExpandPlaceholders movs r0, 0x2 str r0, [sp] movs r1, 0x1 mov r8, r1 str r1, [sp, 0x4] movs r6, 0 str r6, [sp, 0x8] str r6, [sp, 0xC] str r1, [sp, 0x10] adds r0, r5, 0 movs r1, 0x2 mov r2, r9 movs r3, 0 bl sub_810B8F0 movs r0, 0 movs r1, 0 bl sub_810B9DC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r0, r10 movs r1, 0x1 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, _081097E0 @ =gUnknown_84162B9 mov r0, r9 bl StringExpandPlaceholders movs r0, 0xA str r0, [sp] mov r0, r8 str r0, [sp, 0x4] str r6, [sp, 0x8] str r6, [sp, 0xC] str r0, [sp, 0x10] adds r0, r4, 0 movs r1, 0 mov r2, r9 movs r3, 0x4 bl sub_810B8F0 bl sub_8108940 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081097D4: .4byte gUnknown_203ACFC _081097D8: .4byte gStringVar1 _081097DC: .4byte gStringVar4 _081097E0: .4byte gUnknown_84162B9 thumb_func_end sub_810971C thumb_func_start sub_81097E4 sub_81097E4: @ 81097E4 push {r4-r6,lr} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 movs r0, 0 bl sub_810BAD8 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 adds r0, r6, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, _08109848 @ =gStringVar1 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 movs r2, 0x2 adds r3, r5, 0 bl ConvertIntToDecimalStringN ldr r4, _0810984C @ =gStringVar4 ldr r1, _08109850 @ =gUnknown_84162B9 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA str r0, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r1, [sp, 0x10] adds r0, r6, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0x4 bl sub_810B8F0 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109848: .4byte gStringVar1 _0810984C: .4byte gStringVar4 _08109850: .4byte gUnknown_84162B9 thumb_func_end sub_81097E4 thumb_func_start sub_8109854 sub_8109854: @ 8109854 push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 movs r2, 0xC subs r2, r0 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 ldr r2, _0810988C @ =gUnknown_8452D08 adds r1, r2 movs r3, 0xD subs r3, r0 lsls r3, 24 lsrs r3, 24 movs r0, 0x12 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r2, 0xB bl CopyToBgTilemapBufferRect movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0810988C: .4byte gUnknown_8452D08 thumb_func_end sub_8109854 thumb_func_start sub_8109890 sub_8109890: @ 8109890 push {r4-r7,lr} sub sp, 0x14 ldr r0, _081098A8 @ =gUnknown_203ACFC ldrb r0, [r0, 0x4] cmp r0, 0x6 beq _08109924 cmp r0, 0x6 bgt _081098AC cmp r0, 0x5 beq _081098B6 b _0810993C .align 2, 0 _081098A8: .4byte gUnknown_203ACFC _081098AC: cmp r0, 0x7 beq _081098B6 cmp r0, 0x8 beq _08109924 b _0810993C _081098B6: ldr r2, _081098D4 @ =gSpecialVar_ItemId ldrh r1, [r2] ldr r0, _081098D8 @ =0x0000016d cmp r1, r0 bne _081098E8 ldr r1, _081098DC @ =gUnknown_203AD20 movs r0, 0x8 strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r0, _081098E0 @ =gUnknown_203AD24 str r1, [r0] ldr r1, _081098E4 @ =gUnknown_203AD28 movs r0, 0x2 b _08109AD0 .align 2, 0 _081098D4: .4byte gSpecialVar_ItemId _081098D8: .4byte 0x0000016d _081098DC: .4byte gUnknown_203AD20 _081098E0: .4byte gUnknown_203AD24 _081098E4: .4byte gUnknown_203AD28 _081098E8: ldrh r0, [r2] bl ItemId_GetBattleUsage lsls r0, 24 cmp r0, 0 beq _0810990C ldr r1, _08109900 @ =gUnknown_203AD24 ldr r0, _08109904 @ =gUnknown_8452F30 str r0, [r1] ldr r1, _08109908 @ =gUnknown_203AD28 movs r0, 0x2 b _08109AD0 .align 2, 0 _08109900: .4byte gUnknown_203AD24 _08109904: .4byte gUnknown_8452F30 _08109908: .4byte gUnknown_203AD28 _0810990C: ldr r1, _08109918 @ =gUnknown_203AD24 ldr r0, _0810991C @ =gUnknown_8452F32 str r0, [r1] ldr r1, _08109920 @ =gUnknown_203AD28 movs r0, 0x1 b _08109AD0 .align 2, 0 _08109918: .4byte gUnknown_203AD24 _0810991C: .4byte gUnknown_8452F32 _08109920: .4byte gUnknown_203AD28 _08109924: ldr r1, _08109930 @ =gUnknown_203AD24 ldr r0, _08109934 @ =gUnknown_8452F30 str r0, [r1] ldr r1, _08109938 @ =gUnknown_203AD28 movs r0, 0x2 b _08109AD0 .align 2, 0 _08109930: .4byte gUnknown_203AD24 _08109934: .4byte gUnknown_8452F30 _08109938: .4byte gUnknown_203AD28 _0810993C: bl sub_80BF708 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08109950 bl InUnionRoom cmp r0, 0x1 bne _081099C4 _08109950: ldr r1, _08109970 @ =gSpecialVar_ItemId ldr r2, _08109974 @ =0xfffffe94 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08109984 ldr r1, _08109978 @ =gUnknown_203AD24 ldr r0, _0810997C @ =gUnknown_8452F2E str r0, [r1] ldr r1, _08109980 @ =gUnknown_203AD28 movs r0, 0x2 b _08109AD0 .align 2, 0 _08109970: .4byte gSpecialVar_ItemId _08109974: .4byte 0xfffffe94 _08109978: .4byte gUnknown_203AD24 _0810997C: .4byte gUnknown_8452F2E _08109980: .4byte gUnknown_203AD28 _08109984: ldr r0, _08109998 @ =gUnknown_203ACFC ldrh r2, [r0, 0x6] adds r3, r0, 0 cmp r2, 0x1 bne _081099A0 ldr r0, _0810999C @ =gUnknown_203AD28 strb r2, [r0] adds r7, r0, 0 b _081099A8 .align 2, 0 _08109998: .4byte gUnknown_203ACFC _0810999C: .4byte gUnknown_203AD28 _081099A0: ldr r1, _081099B8 @ =gUnknown_203AD28 movs r0, 0x2 strb r0, [r1] adds r7, r1, 0 _081099A8: ldr r0, _081099BC @ =gUnknown_203AD24 ldrh r1, [r3, 0x6] lsls r1, 1 ldr r2, _081099C0 @ =gUnknown_8452F28 adds r1, r2 str r1, [r0] b _08109AD4 .align 2, 0 _081099B8: .4byte gUnknown_203AD28 _081099BC: .4byte gUnknown_203AD24 _081099C0: .4byte gUnknown_8452F28 _081099C4: ldr r5, _081099D8 @ =gUnknown_203ACFC ldrh r0, [r5, 0x6] cmp r0, 0x1 beq _08109A34 cmp r0, 0x1 bgt _081099E0 cmp r0, 0 beq _081099EC ldr r7, _081099DC @ =gUnknown_203AD28 b _08109AD4 .align 2, 0 _081099D8: .4byte gUnknown_203ACFC _081099DC: .4byte gUnknown_203AD28 _081099E0: cmp r0, 0x2 beq _08109AC4 ldr r7, _081099E8 @ =gUnknown_203AD28 b _08109AD4 .align 2, 0 _081099E8: .4byte gUnknown_203AD28 _081099EC: ldr r4, _08109A0C @ =gUnknown_203AD28 movs r0, 0x4 strb r0, [r4] ldr r0, _08109A10 @ =gSpecialVar_ItemId ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08109A1C ldr r1, _08109A14 @ =gUnknown_203AD24 ldr r0, _08109A18 @ =gUnknown_8452F24 str r0, [r1] adds r7, r4, 0 b _08109AD4 .align 2, 0 _08109A0C: .4byte gUnknown_203AD28 _08109A10: .4byte gSpecialVar_ItemId _08109A14: .4byte gUnknown_203AD24 _08109A18: .4byte gUnknown_8452F24 _08109A1C: ldr r0, _08109A2C @ =gUnknown_203AD24 ldrh r1, [r5, 0x6] lsls r1, 2 ldr r2, _08109A30 @ =gUnknown_8452F18 adds r1, r2 str r1, [r0] adds r7, r4, 0 b _08109AD4 .align 2, 0 _08109A2C: .4byte gUnknown_203AD24 _08109A30: .4byte gUnknown_8452F18 _08109A34: ldr r0, _08109A5C @ =gUnknown_203AD24 ldr r2, _08109A60 @ =gUnknown_203AD20 str r2, [r0] ldr r3, _08109A64 @ =gUnknown_203AD28 movs r0, 0x3 strb r0, [r3] movs r0, 0x4 strb r0, [r2, 0x2] ldr r0, _08109A68 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _08109A6C @ =0x00000296 adds r0, r1 ldr r1, _08109A70 @ =gSpecialVar_ItemId ldrh r0, [r0] adds r7, r3, 0 ldrh r3, [r1] cmp r0, r3 bne _08109A74 movs r0, 0xA b _08109A76 .align 2, 0 _08109A5C: .4byte gUnknown_203AD24 _08109A60: .4byte gUnknown_203AD20 _08109A64: .4byte gUnknown_203AD28 _08109A68: .4byte gSaveBlock1Ptr _08109A6C: .4byte 0x00000296 _08109A70: .4byte gSpecialVar_ItemId _08109A74: movs r0, 0x2 _08109A76: strb r0, [r2, 0x1] ldrh r1, [r1] ldr r3, _08109A8C @ =0xfffffe94 adds r0, r1, r3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08109A90 movs r0, 0x7 strb r0, [r2] b _08109AD4 .align 2, 0 _08109A8C: .4byte 0xfffffe94 _08109A90: lsls r1, 16 movs r0, 0xB4 lsls r0, 17 cmp r1, r0 bne _08109AB0 movs r0, 0x6 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08109AB0 ldr r1, _08109AAC @ =gUnknown_203AD20 movs r0, 0x9 b _08109AB4 .align 2, 0 _08109AAC: .4byte gUnknown_203AD20 _08109AB0: ldr r1, _08109ABC @ =gUnknown_203AD20 movs r0, 0 _08109AB4: strb r0, [r1] ldr r7, _08109AC0 @ =gUnknown_203AD28 b _08109AD4 .align 2, 0 _08109ABC: .4byte gUnknown_203AD20 _08109AC0: .4byte gUnknown_203AD28 _08109AC4: ldr r1, _08109B98 @ =gUnknown_203AD24 ldr r0, _08109B9C @ =gUnknown_8452F18 adds r0, 0x8 str r0, [r1] ldr r1, _08109BA0 @ =gUnknown_203AD28 movs r0, 0x3 _08109AD0: strb r0, [r1] adds r7, r1, 0 _08109AD4: ldrb r1, [r7] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0xA bl sub_810B9DC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x2 movs r1, 0x2 bl GetFontAttribute adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute adds r0, 0x2 lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] ldr r0, _08109BA4 @ =gUnknown_8452EB8 str r0, [sp, 0xC] ldr r0, _08109B98 @ =gUnknown_203AD24 ldr r0, [r0] str r0, [sp, 0x10] adds r0, r6, 0 movs r1, 0x2 adds r2, r5, 0 movs r3, 0x2 bl AddItemMenuActionTextPrinters movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute adds r0, 0x2 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldrb r0, [r7] str r0, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] adds r0, r6, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl sub_810F7D8 movs r0, 0x6 movs r1, 0 bl sub_810B9DC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08109BA8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08109BAC @ =gStringVar1 bl sub_8099E90 ldr r6, _08109BB0 @ =gStringVar4 ldr r1, _08109BB4 @ =gUnknown_84162FF adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] str r5, [sp, 0x8] str r5, [sp, 0xC] str r0, [sp, 0x10] adds r0, r4, 0 movs r1, 0x2 adds r2, r6, 0 movs r3, 0 bl sub_810B8F0 add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08109B98: .4byte gUnknown_203AD24 _08109B9C: .4byte gUnknown_8452F18 _08109BA0: .4byte gUnknown_203AD28 _08109BA4: .4byte gUnknown_8452EB8 _08109BA8: .4byte gSpecialVar_ItemId _08109BAC: .4byte gStringVar1 _08109BB0: .4byte gStringVar4 _08109BB4: .4byte gUnknown_84162FF thumb_func_end sub_8109890 thumb_func_start sub_8109BB8 sub_8109BB8: @ 8109BB8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8109890 ldr r1, _08109BDC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08109BE0 @ =sub_8109BE4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08109BDC: .4byte gTasks _08109BE0: .4byte sub_8109BE4 thumb_func_end sub_8109BB8 thumb_func_start sub_8109BE4 sub_8109BE4: @ 8109BE4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl sub_80BF72C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08109C42 bl ProcessMenuInputNoWrapAround lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _08109C42 adds r0, 0x1 cmp r4, r0 bne _08109C24 movs r0, 0x5 bl PlaySE ldr r0, _08109C20 @ =gUnknown_8452EB8 ldr r1, [r0, 0x24] adds r0, r5, 0 bl _call_via_r1 b _08109C42 .align 2, 0 _08109C20: .4byte gUnknown_8452EB8 _08109C24: movs r0, 0x5 bl PlaySE ldr r1, _08109C48 @ =gUnknown_8452EB8 ldr r0, _08109C4C @ =gUnknown_203AD24 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 _08109C42: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109C48: .4byte gUnknown_8452EB8 _08109C4C: .4byte gUnknown_203AD24 thumb_func_end sub_8109BE4 thumb_func_start sub_8109C50 sub_8109C50: @ 8109C50 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _08109CA0 @ =gSpecialVar_ItemId ldrh r0, [r5] bl ItemId_GetFieldFunc cmp r0, 0 beq _08109CB4 movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 bne _08109CA4 ldrh r0, [r5] bl ItemId_GetType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08109CA4 adds r0, r4, 0 bl sub_810A170 b _08109CB4 .align 2, 0 _08109CA0: .4byte gSpecialVar_ItemId _08109CA4: ldr r0, _08109CBC @ =gSpecialVar_ItemId ldrh r0, [r0] bl ItemId_GetFieldFunc adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 _08109CB4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08109CBC: .4byte gSpecialVar_ItemId thumb_func_end sub_8109C50 thumb_func_start sub_8109CC0 sub_8109CC0: @ 8109CC0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _08109D14 @ =gTasks+0x8 adds r4, r6, r7 movs r0, 0xA bl sub_810BAD8 lsls r0, 24 lsrs r0, 24 bl ClearWindowTilemap movs r0, 0x6 bl sub_810BAD8 lsls r0, 24 lsrs r0, 24 bl ClearWindowTilemap movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08109D18 adds r0, r5, 0 bl sub_8109D38 b _08109D2A .align 2, 0 _08109D14: .4byte gTasks+0x8 _08109D18: ldrh r0, [r4, 0x2] ldr r1, _08109D30 @ =gUnknown_84163DB bl sub_810971C adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _08109D34 @ =sub_8109DEC str r1, [r0] _08109D2A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08109D30: .4byte gUnknown_84163DB _08109D34: .4byte sub_8109DEC thumb_func_end sub_8109CC0 thumb_func_start sub_8109D38 sub_8109D38: @ 8109D38 push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 ldr r0, _08109D9C @ =gTasks+0x8 adds r1, r0 ldr r0, _08109DA0 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r1, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r5, _08109DA4 @ =gStringVar4 ldr r1, _08109DA8 @ =gUnknown_8416409 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x6 movs r1, 0x1 bl sub_810B9DC lsls r0, 24 lsrs r0, 24 movs r1, 0x2 str r1, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0x2 adds r2, r5, 0 movs r3, 0 bl sub_810B8F0 ldr r1, _08109DAC @ =gUnknown_8452F50 adds r0, r4, 0 bl sub_810BAE8 add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08109D9C: .4byte gTasks+0x8 _08109DA0: .4byte gStringVar2 _08109DA4: .4byte gStringVar4 _08109DA8: .4byte gUnknown_8416409 _08109DAC: .4byte gUnknown_8452F50 thumb_func_end sub_8109D38 thumb_func_start sub_8109DB0 sub_8109DB0: @ 8109DB0 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _08109DE8 @ =gTasks+0x8 adds r4, r0 movs r0, 0x6 bl sub_810BA3C movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ adds r0, r5, 0 bl sub_810910C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08109DE8: .4byte gTasks+0x8 thumb_func_end sub_8109DB0 thumb_func_start sub_8109DEC sub_8109DEC: @ 8109DEC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08109E1C @ =gTasks+0x8 adds r4, r0, r1 adds r0, r4, 0 adds r0, 0x10 ldrh r1, [r4, 0x4] bl sub_80BF848 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08109E20 movs r1, 0x10 ldrsh r0, [r4, r1] movs r1, 0x3 bl sub_81097E4 b _08109EA2 .align 2, 0 _08109E1C: .4byte gTasks+0x8 _08109E20: ldr r0, _08109E60 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08109E64 movs r0, 0x5 bl PlaySE movs r0, 0x6 bl sub_810BAD8 lsls r0, 24 lsrs r0, 24 bl ClearWindowTilemap movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl sub_810BA3C movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_8108978 adds r0, r5, 0 bl sub_8109D38 b _08109EA2 .align 2, 0 _08109E60: .4byte gMain _08109E64: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08109EA2 movs r0, 0x5 bl PlaySE movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ bl sub_8108978 adds r0, r6, 0 bl sub_810910C _08109EA2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8109DEC thumb_func_start sub_8109EA8 sub_8109EA8: @ 8109EA8 push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, _08109F28 @ =gTasks+0x8 adds r6, r4, r5 movs r0, 0x6 bl sub_810BA3C ldr r0, _08109F2C @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] bl sub_809A798 lsls r0, 16 lsrs r0, 16 ldr r1, _08109F30 @ =gStringVar1 bl sub_8099E90 ldr r0, _08109F34 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r6, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r6, _08109F38 @ =gStringVar4 ldr r1, _08109F3C @ =gUnknown_84163F4 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0x6 movs r1, 0x3 bl sub_810B9DC lsls r0, 24 lsrs r0, 24 movs r1, 0x2 str r1, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0x2 adds r2, r6, 0 movs r3, 0 bl sub_810B8F0 subs r5, 0x8 adds r4, r5 ldr r0, _08109F40 @ =sub_8109F44 str r0, [r4] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109F28: .4byte gTasks+0x8 _08109F2C: .4byte gUnknown_203ACFC _08109F30: .4byte gStringVar1 _08109F34: .4byte gStringVar2 _08109F38: .4byte gStringVar4 _08109F3C: .4byte gUnknown_84163F4 _08109F40: .4byte sub_8109F44 thumb_func_end sub_8109EA8 thumb_func_start sub_8109F44 sub_8109F44: @ 8109F44 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, _08109FEC @ =gTasks+0x8 adds r7, r0, r1 ldr r0, _08109FF0 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08109F6E movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08109FE0 _08109F6E: movs r0, 0x5 bl PlaySE ldr r0, _08109FF4 @ =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r7, 0x10] bl sub_809A1D8 movs r0, 0x6 bl sub_810BA3C ldrb r0, [r7] ldr r4, _08109FF8 @ =gUnknown_203ACFC ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r4, 0 adds r5, 0xE adds r1, r2, r5 adds r6, r4, 0 adds r6, 0x8 adds r2, r6 bl sub_810713C ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] bl sub_81089F4 ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _08109FFC @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 ldrh r1, [r5] adds r2, r6 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r7] movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r7] movs r1, 0x1 bl bag_menu_print_cursor_ mov r0, r8 bl sub_810910C _08109FE0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08109FEC: .4byte gTasks+0x8 _08109FF0: .4byte gMain _08109FF4: .4byte gSpecialVar_ItemId _08109FF8: .4byte gUnknown_203ACFC _08109FFC: .4byte gUnknown_3005E70 thumb_func_end sub_8109F44 thumb_func_start sub_810A000 sub_810A000: @ 810A000 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, _0810A040 @ =gTasks+0x8 adds r7, r0, r1 ldr r0, _0810A044 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x2] bl sub_809A798 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0810A048 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r3, _0810A04C @ =0x00000296 adds r1, r0, r3 ldrh r0, [r1] cmp r0, r2 bne _0810A050 movs r0, 0 strh r0, [r1] b _0810A052 .align 2, 0 _0810A040: .4byte gTasks+0x8 _0810A044: .4byte gUnknown_203ACFC _0810A048: .4byte gSaveBlock1Ptr _0810A04C: .4byte 0x00000296 _0810A050: strh r2, [r1] _0810A052: ldrb r0, [r7] ldr r4, _0810A0A0 @ =gUnknown_203ACFC ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r4, 0 adds r5, 0xE adds r1, r2, r5 adds r6, r4, 0 adds r6, 0x8 adds r2, r6 bl sub_810713C ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _0810A0A4 @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 ldrh r1, [r5] adds r2, r6 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r7] movs r0, 0 movs r1, 0x1 bl CopyWindowToVram mov r0, r8 bl sub_810A2DC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810A0A0: .4byte gUnknown_203ACFC _0810A0A4: .4byte gUnknown_3005E70 thumb_func_end sub_810A000 thumb_func_start sub_810A0A8 sub_810A0A8: @ 810A0A8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 lsls r0, r4, 2 adds r0, r4 lsls r6, r0, 3 ldr r0, _0810A110 @ =gTasks+0x8 mov r8, r0 adds r1, r6, r0 ldr r0, _0810A114 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] bl sub_809A798 lsls r0, 16 lsrs r5, r0, 16 movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 movs r1, 0x1 bl CopyWindowToVram adds r0, r5, 0 bl itemid_80BF6D8_mail_related lsls r0, 24 cmp r0, 0 bne _0810A120 ldr r2, _0810A118 @ =gUnknown_841630F ldr r3, _0810A11C @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 bl sub_8108E70 b _0810A166 .align 2, 0 _0810A110: .4byte gTasks+0x8 _0810A114: .4byte gUnknown_203ACFC _0810A118: .4byte gUnknown_841630F _0810A11C: .4byte sub_810A1D0 _0810A120: adds r0, r5, 0 bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _0810A160 bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 bne _0810A13E adds r0, r4, 0 bl sub_810A170 b _0810A166 _0810A13E: ldr r0, _0810A154 @ =gUnknown_203AD10 ldr r1, [r0] ldr r0, _0810A158 @ =sub_8126EDC str r0, [r1] mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0810A15C @ =sub_8108B50 str r1, [r0] b _0810A166 .align 2, 0 _0810A154: .4byte gUnknown_203AD10 _0810A158: .4byte sub_8126EDC _0810A15C: .4byte sub_8108B50 _0810A160: adds r0, r7, 0 bl sub_810A18C _0810A166: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810A0A8 thumb_func_start sub_810A170 sub_810A170: @ 810A170 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0810A184 @ =gUnknown_841632A ldr r3, _0810A188 @ =sub_810A1D0 movs r1, 0x2 bl sub_8108E70 pop {r0} bx r0 .align 2, 0 _0810A184: .4byte gUnknown_841632A _0810A188: .4byte sub_810A1D0 thumb_func_end sub_810A170 thumb_func_start sub_810A18C sub_810A18C: @ 810A18C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0810A1BC @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A1C0 @ =gStringVar1 bl sub_8099E90 ldr r5, _0810A1C4 @ =gStringVar4 ldr r1, _0810A1C8 @ =gUnknown_841635E adds r0, r5, 0 bl StringExpandPlaceholders ldr r3, _0810A1CC @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 bl sub_8108E70 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810A1BC: .4byte gSpecialVar_ItemId _0810A1C0: .4byte gStringVar1 _0810A1C4: .4byte gStringVar4 _0810A1C8: .4byte gUnknown_841635E _0810A1CC: .4byte sub_810A1D0 thumb_func_end sub_810A18C thumb_func_start sub_810A1D0 sub_810A1D0: @ 810A1D0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810A1F4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810A1EE movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_810A1F8 _0810A1EE: pop {r4} pop {r0} bx r0 .align 2, 0 _0810A1F4: .4byte gMain thumb_func_end sub_810A1D0 thumb_func_start sub_810A1F8 sub_810A1F8: @ 810A1F8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r5, r0, 2 add r5, r8 lsls r5, 3 ldr r0, _0810A27C @ =gTasks+0x8 adds r5, r0 movs r0, 0x5 bl sub_810BA9C ldrb r0, [r5] ldr r4, _0810A280 @ =gUnknown_203ACFC ldrh r2, [r4, 0x6] lsls r2, 1 adds r6, r4, 0 adds r6, 0xE adds r1, r2, r6 movs r3, 0x8 adds r3, r4 mov r9, r3 add r2, r9 bl sub_810713C ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] bl sub_81089F4 ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _0810A284 @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 adds r6, r2, r6 ldrh r1, [r6] add r2, r9 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r5] movs r1, 0x1 bl bag_menu_print_cursor_ mov r0, r8 bl sub_810910C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A27C: .4byte gTasks+0x8 _0810A280: .4byte gUnknown_203ACFC _0810A284: .4byte gUnknown_3005E70 thumb_func_end sub_810A1F8 thumb_func_start sub_810A288 sub_810A288: @ 810A288 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _0810A2D8 @ =gTasks+0x8 adds r4, r0 ldrb r0, [r4] mov r6, sp adds r6, 0x2 mov r1, sp adds r2, r6, 0 bl get_coro_args_x18_x1A mov r0, sp ldrh r0, [r0] ldrh r1, [r6] adds r0, r1 bl sub_8108818 movs r0, 0 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ adds r0, r5, 0 bl sub_810910C add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A2D8: .4byte gTasks+0x8 thumb_func_end sub_810A288 thumb_func_start sub_810A2DC sub_810A2DC: @ 810A2DC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, _0810A320 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r1, 0x1 bl bag_menu_print_cursor_ adds r0, r4, 0 bl sub_810910C pop {r4} pop {r0} bx r0 .align 2, 0 _0810A320: .4byte gTasks thumb_func_end sub_810A2DC thumb_func_start sub_810A324 sub_810A324: @ 810A324 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _0810A36C @ =gSpecialVar_ItemId ldrh r0, [r5] bl ItemId_GetBattleFunc cmp r0, 0 beq _0810A364 movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 movs r1, 0x1 bl CopyWindowToVram ldrh r0, [r5] bl ItemId_GetBattleFunc adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 _0810A364: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810A36C: .4byte gSpecialVar_ItemId thumb_func_end sub_810A324 thumb_func_start sub_810A370 sub_810A370: @ 810A370 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r7, r0, 3 ldr r0, _0810A3BC @ =gTasks+0x8 mov r9, r0 adds r1, r7, r0 ldr r2, _0810A3C0 @ =gUnknown_203ACFC mov r8, r2 ldrb r0, [r2, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] bl sub_809A798 lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 adds r0, r4, 0 bl itemid_80BF6D8_mail_related lsls r0, 24 cmp r0, 0 bne _0810A3CC ldr r2, _0810A3C4 @ =gUnknown_841630F ldr r3, _0810A3C8 @ =sub_810A1D0 adds r0, r5, 0 movs r1, 0x2 bl sub_8108E70 b _0810A426 .align 2, 0 _0810A3BC: .4byte gTasks+0x8 _0810A3C0: .4byte gUnknown_203ACFC _0810A3C4: .4byte gUnknown_841630F _0810A3C8: .4byte sub_810A1D0 _0810A3CC: movs r0, 0xB6 lsls r0, 1 cmp r4, r0 bne _0810A3DC ldr r0, _0810A3D8 @ =sub_810A434 b _0810A3E4 .align 2, 0 _0810A3D8: .4byte sub_810A434 _0810A3DC: ldr r0, _0810A3F0 @ =0x0000016d cmp r4, r0 bne _0810A3F8 ldr r0, _0810A3F4 @ =sub_810A448 _0810A3E4: bl sub_8108EE0 adds r0, r5, 0 bl sub_8108B50 b _0810A426 .align 2, 0 _0810A3F0: .4byte 0x0000016d _0810A3F4: .4byte sub_810A448 _0810A3F8: mov r1, r8 ldrh r0, [r1, 0x6] cmp r0, 0x1 beq _0810A420 adds r0, r6, 0 bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _0810A420 bl sub_8108CB4 mov r0, r9 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0810A41C @ =sub_8108B50 str r1, [r0] b _0810A426 .align 2, 0 _0810A41C: .4byte sub_8108B50 _0810A420: adds r0, r5, 0 bl sub_810A18C _0810A426: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810A370 thumb_func_start sub_810A434 sub_810A434: @ 810A434 push {lr} ldr r1, _0810A444 @ =sub_810A45C movs r0, 0x1 movs r2, 0 bl sub_81317F8 pop {r0} bx r0 .align 2, 0 _0810A444: .4byte sub_810A45C thumb_func_end sub_810A434 thumb_func_start sub_810A448 sub_810A448: @ 810A448 push {lr} ldr r1, _0810A458 @ =sub_810A45C movs r0, 0x1 movs r2, 0 bl sub_813CD50 pop {r0} bx r0 .align 2, 0 _0810A458: .4byte sub_810A45C thumb_func_end sub_810A448 thumb_func_start sub_810A45C sub_810A45C: @ 810A45C push {lr} bl sub_8123730 pop {r0} bx r0 thumb_func_end sub_810A45C thumb_func_start sub_810A468 sub_810A468: @ 810A468 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r7, r0, 3 ldr r0, _0810A4B4 @ =gTasks+0x8 mov r9, r0 adds r1, r7, r0 ldr r2, _0810A4B8 @ =gUnknown_203ACFC mov r8, r2 ldrb r0, [r2, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] bl sub_809A798 lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810A4C4 ldr r2, _0810A4BC @ =gUnknown_841630F ldr r3, _0810A4C0 @ =sub_810A1D0 adds r0, r5, 0 movs r1, 0x2 bl sub_8108E70 b _0810A51E .align 2, 0 _0810A4B4: .4byte gTasks+0x8 _0810A4B8: .4byte gUnknown_203ACFC _0810A4BC: .4byte gUnknown_841630F _0810A4C0: .4byte sub_810A1D0 _0810A4C4: movs r0, 0xB6 lsls r0, 1 cmp r4, r0 bne _0810A4D4 ldr r0, _0810A4D0 @ =sub_810A52C b _0810A4DC .align 2, 0 _0810A4D0: .4byte sub_810A52C _0810A4D4: ldr r0, _0810A4E8 @ =0x0000016d cmp r4, r0 bne _0810A4F0 ldr r0, _0810A4EC @ =sub_810A540 _0810A4DC: bl sub_8108EE0 adds r0, r5, 0 bl sub_8108B50 b _0810A51E .align 2, 0 _0810A4E8: .4byte 0x0000016d _0810A4EC: .4byte sub_810A540 _0810A4F0: mov r1, r8 ldrh r0, [r1, 0x6] cmp r0, 0x1 beq _0810A518 adds r0, r6, 0 bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _0810A518 bl sub_8108CB4 mov r0, r9 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0810A514 @ =sub_8108B50 str r1, [r0] b _0810A51E .align 2, 0 _0810A514: .4byte sub_8108B50 _0810A518: adds r0, r5, 0 bl sub_810A18C _0810A51E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810A468 thumb_func_start sub_810A52C sub_810A52C: @ 810A52C push {lr} ldr r1, _0810A53C @ =sub_810A554 movs r0, 0x3 movs r2, 0 bl sub_81317F8 pop {r0} bx r0 .align 2, 0 _0810A53C: .4byte sub_810A554 thumb_func_end sub_810A52C thumb_func_start sub_810A540 sub_810A540: @ 810A540 push {lr} ldr r1, _0810A550 @ =sub_810A554 movs r0, 0x3 movs r2, 0 bl sub_813CD50 pop {r0} bx r0 .align 2, 0 _0810A550: .4byte sub_810A554 thumb_func_end sub_810A540 thumb_func_start sub_810A554 sub_810A554: @ 810A554 push {lr} ldr r2, _0810A564 @ =sub_808CE60 movs r0, 0x4 movs r1, 0x3 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 _0810A564: .4byte sub_808CE60 thumb_func_end sub_810A554 thumb_func_start sub_810A568 sub_810A568: @ 810A568 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810A58C @ =gTasks+0x8 adds r4, r0, r1 ldr r6, _0810A590 @ =gSpecialVar_ItemId ldrh r1, [r6] movs r0, 0xB6 lsls r0, 1 cmp r1, r0 bne _0810A598 ldr r0, _0810A594 @ =sub_810A654 b _0810A5A0 .align 2, 0 _0810A58C: .4byte gTasks+0x8 _0810A590: .4byte gSpecialVar_ItemId _0810A594: .4byte sub_810A654 _0810A598: ldr r0, _0810A5AC @ =0x0000016d cmp r1, r0 bne _0810A5B4 ldr r0, _0810A5B0 @ =sub_810A668 _0810A5A0: bl sub_8108EE0 adds r0, r5, 0 bl sub_8108B50 b _0810A63E .align 2, 0 _0810A5AC: .4byte 0x0000016d _0810A5B0: .4byte sub_810A668 _0810A5B4: ldrh r0, [r6] bl itemid_get_market_price lsls r0, 16 cmp r0, 0 bne _0810A5F8 ldrh r0, [r6] ldr r1, _0810A5E8 @ =gStringVar1 bl sub_8099E90 ldr r4, _0810A5EC @ =gStringVar4 ldr r1, _0810A5F0 @ =gUnknown_84168F1 adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _0810A5F4 @ =sub_810A1F8 adds r0, r5, 0 adds r2, r4, 0 bl sub_8108E70 b _0810A63E .align 2, 0 _0810A5E8: .4byte gStringVar1 _0810A5EC: .4byte gStringVar4 _0810A5F0: .4byte gUnknown_84168F1 _0810A5F4: .4byte sub_810A1F8 _0810A5F8: movs r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0810A610 bl sub_810BB40 adds r0, r5, 0 bl sub_810A690 b _0810A63E _0810A610: cmp r0, 0x63 ble _0810A618 movs r0, 0x63 strh r0, [r4, 0x4] _0810A618: ldrh r0, [r6] ldr r1, _0810A644 @ =gStringVar1 bl sub_8099E90 ldr r4, _0810A648 @ =gStringVar4 ldr r1, _0810A64C @ =gUnknown_8416911 adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _0810A650 @ =sub_810A770 adds r0, r7, 0 adds r2, r4, 0 bl sub_8108E70 _0810A63E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810A644: .4byte gStringVar1 _0810A648: .4byte gStringVar4 _0810A64C: .4byte gUnknown_8416911 _0810A650: .4byte sub_810A770 thumb_func_end sub_810A568 thumb_func_start sub_810A654 sub_810A654: @ 810A654 push {lr} ldr r1, _0810A664 @ =sub_810A67C movs r0, 0x2 movs r2, 0 bl sub_81317F8 pop {r0} bx r0 .align 2, 0 _0810A664: .4byte sub_810A67C thumb_func_end sub_810A654 thumb_func_start sub_810A668 sub_810A668: @ 810A668 push {lr} ldr r1, _0810A678 @ =sub_810A67C movs r0, 0x2 movs r2, 0 bl sub_813CD50 pop {r0} bx r0 .align 2, 0 _0810A678: .4byte sub_810A67C thumb_func_end sub_810A668 thumb_func_start sub_810A67C sub_810A67C: @ 810A67C push {lr} ldr r2, _0810A68C @ =c2_exit_to_overworld_2_switch movs r0, 0x2 movs r1, 0x3 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 _0810A68C: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_810A67C thumb_func_start sub_810A690 sub_810A690: @ 810A690 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _0810A6F4 @ =gTasks+0x8 adds r4, r0 ldr r6, _0810A6F8 @ =gStringVar3 ldr r0, _0810A6FC @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] bl sub_809A798 lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 movs r2, 0x10 ldrsh r1, [r4, r2] muls r1, r0 adds r0, r6, 0 movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0810A700 @ =gStringVar4 ldr r1, _0810A704 @ =gUnknown_8416936 adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _0810A708 @ =sub_810A70C adds r0, r5, 0 adds r2, r4, 0 bl sub_8108E70 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A6F4: .4byte gTasks+0x8 _0810A6F8: .4byte gStringVar3 _0810A6FC: .4byte gUnknown_203ACFC _0810A700: .4byte gStringVar4 _0810A704: .4byte gUnknown_8416936 _0810A708: .4byte sub_810A70C thumb_func_end sub_810A690 thumb_func_start sub_810A70C sub_810A70C: @ 810A70C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0810A71C @ =gUnknown_8452F58 bl sub_810BB14 pop {r0} bx r0 .align 2, 0 _0810A71C: .4byte gUnknown_8452F58 thumb_func_end sub_810A70C thumb_func_start sub_810A720 sub_810A720: @ 810A720 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _0810A76C @ =gTasks+0x8 adds r4, r0 movs r0, 0x2 bl sub_810BA3C movs r0, 0x5 bl sub_810BA9C movs r0, 0x2 bl PutWindowTilemap movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ adds r0, r5, 0 bl sub_810910C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810A76C: .4byte gTasks+0x8 thumb_func_end sub_810A720 thumb_func_start sub_810A770 sub_810A770: @ 810A770 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r5, r0, 2 adds r5, r0 lsls r5, 3 ldr r0, _0810A81C @ =gTasks+0x8 mov r8, r0 adds r2, r5, 0 add r2, r8 mov r9, r2 movs r0, 0 movs r1, 0x1 bl sub_810B9DC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0810A820 @ =gStringVar1 movs r1, 0x1 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r6, _0810A824 @ =gStringVar4 ldr r1, _0810A828 @ =gUnknown_84162B9 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0xA str r0, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] str r1, [sp, 0x10] adds r0, r4, 0 movs r1, 0 adds r2, r6, 0 movs r3, 0x4 bl sub_810B8F0 ldr r0, _0810A82C @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r3, r9 ldrh r1, [r3, 0x2] bl sub_809A798 lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 mov r2, r9 movs r3, 0x10 ldrsh r1, [r2, r3] muls r0, r1 bl sub_810A834 bl sub_810BB40 bl sub_8108908 movs r0, 0x8 negs r0, r0 add r8, r0 add r5, r8 ldr r0, _0810A830 @ =sub_810A85C str r0, [r5] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A81C: .4byte gTasks+0x8 _0810A820: .4byte gStringVar1 _0810A824: .4byte gStringVar4 _0810A828: .4byte gUnknown_84162B9 _0810A82C: .4byte gUnknown_203ACFC _0810A830: .4byte sub_810A85C thumb_func_end sub_810A770 thumb_func_start sub_810A834 sub_810A834: @ 810A834 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r0, 0 bl sub_810BAD8 lsls r0, 24 lsrs r0, 24 movs r1, 0 str r1, [sp] movs r1, 0x38 movs r2, 0xA adds r3, r4, 0 bl PrintMoneyAmount add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_810A834 thumb_func_start sub_810A85C sub_810A85C: @ 810A85C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0810A8B4 @ =gTasks+0x8 adds r5, r0, r1 adds r0, r5, 0 adds r0, 0x10 ldrh r1, [r5, 0x4] bl sub_80BF848 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810A8BC movs r1, 0x10 ldrsh r0, [r5, r1] movs r1, 0x2 bl sub_81097E4 ldr r0, _0810A8B8 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] bl sub_809A798 lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 movs r2, 0x10 ldrsh r1, [r5, r2] muls r0, r1 bl sub_810A834 b _0810A93A .align 2, 0 _0810A8B4: .4byte gTasks+0x8 _0810A8B8: .4byte gUnknown_203ACFC _0810A8BC: ldr r0, _0810A8EC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810A8F0 movs r0, 0x5 bl PlaySE movs r0, 0 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_8108978 adds r0, r4, 0 bl sub_810A690 b _0810A93A .align 2, 0 _0810A8EC: .4byte gMain _0810A8F0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810A93A movs r0, 0x5 bl PlaySE movs r0, 0 bl sub_810BA3C movs r0, 0x2 bl sub_810BA3C movs r0, 0x5 bl sub_810BA9C movs r0, 0x2 bl PutWindowTilemap movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_8108978 ldrb r0, [r5] movs r1, 0x1 bl bag_menu_print_cursor_ adds r0, r6, 0 bl sub_810910C _0810A93A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810A85C thumb_func_start sub_810A940 sub_810A940: @ 810A940 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _0810A9B4 @ =gTasks+0x8 adds r4, r0 movs r0, 0 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, _0810A9B8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A9BC @ =gStringVar1 bl sub_8099E90 ldr r6, _0810A9C0 @ =gStringVar3 ldr r0, _0810A9C4 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] bl sub_809A798 lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 movs r2, 0x10 ldrsh r1, [r4, r2] muls r1, r0 adds r0, r6, 0 movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0810A9C8 @ =gStringVar4 ldr r1, _0810A9CC @ =gUnknown_8416959 adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, _0810A9D0 @ =sub_810A9D4 adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 bl sub_8108E70 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A9B4: .4byte gTasks+0x8 _0810A9B8: .4byte gSpecialVar_ItemId _0810A9BC: .4byte gStringVar1 _0810A9C0: .4byte gStringVar3 _0810A9C4: .4byte gUnknown_203ACFC _0810A9C8: .4byte gStringVar4 _0810A9CC: .4byte gUnknown_8416959 _0810A9D0: .4byte sub_810A9D4 thumb_func_end sub_810A940 thumb_func_start sub_810A9D4 sub_810A9D4: @ 810A9D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r6, r0, 2 adds r6, r0 lsls r6, 3 ldr r0, _0810AAD8 @ =gTasks+0x8 mov r10, r0 adds r1, r6, 0 add r1, r10 mov r8, r1 movs r0, 0xF8 bl PlaySE ldr r5, _0810AADC @ =gSpecialVar_ItemId ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] bl sub_809A1D8 ldr r3, _0810AAE0 @ =gSaveBlock1Ptr ldr r4, [r3] movs r7, 0xA4 lsls r7, 2 adds r4, r7 ldrh r0, [r5] bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 mov r2, r8 movs r3, 0x10 ldrsh r1, [r2, r3] muls r1, r0 adds r0, r4, 0 bl AddMoney ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] movs r2, 0x2 bl sub_809C09C mov r3, r8 ldrb r0, [r3] ldr r4, _0810AAE4 @ =gUnknown_203ACFC ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r4, 0 adds r5, 0xE adds r1, r2, r5 movs r3, 0x8 adds r3, r4 mov r9, r3 add r2, r9 bl sub_810713C ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] bl sub_81089F4 ldr r0, _0810AAE8 @ =gUnknown_203AD10 ldr r2, [r0] ldrb r1, [r2, 0x5] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x5] ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _0810AAEC @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 ldrh r1, [r5] add r2, r9 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1] movs r1, 0x2 bl bag_menu_print_cursor_ movs r0, 0x2 bl sub_810BAD8 lsls r0, 24 lsrs r0, 24 bl sub_810BB74 movs r0, 0x2 bl sub_810BAD8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _0810AAE0 @ =gSaveBlock1Ptr ldr r0, [r2] adds r0, r7 bl GetMoney adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl PrintMoneyAmountInMoneyBox movs r3, 0x8 negs r3, r3 add r10, r3 add r6, r10 ldr r0, _0810AAF0 @ =sub_810AAF4 str r0, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810AAD8: .4byte gTasks+0x8 _0810AADC: .4byte gSpecialVar_ItemId _0810AAE0: .4byte gSaveBlock1Ptr _0810AAE4: .4byte gUnknown_203ACFC _0810AAE8: .4byte gUnknown_203AD10 _0810AAEC: .4byte gUnknown_3005E70 _0810AAF0: .4byte sub_810AAF4 thumb_func_end sub_810A9D4 thumb_func_start sub_810AAF4 sub_810AAF4: @ 810AAF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810AB38 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810AB0E movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810AB32 _0810AB0E: movs r0, 0x5 bl PlaySE movs r0, 0x2 bl sub_810BA3C movs r0, 0x2 bl PutWindowTilemap ldr r0, _0810AB3C @ =gUnknown_203AD10 ldr r2, [r0] ldrb r1, [r2, 0x5] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x5] adds r0, r4, 0 bl sub_810A1F8 _0810AB32: pop {r4} pop {r0} bx r0 .align 2, 0 _0810AB38: .4byte gMain _0810AB3C: .4byte gUnknown_203AD10 thumb_func_end sub_810AAF4 thumb_func_start sub_810AB40 sub_810AB40: @ 810AB40 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r4, r0, 3 ldr r5, _0810AB64 @ =gTasks+0x8 adds r1, r4, r5 movs r0, 0x1 strh r0, [r1, 0x10] movs r3, 0x4 ldrsh r0, [r1, r3] cmp r0, 0x1 bne _0810AB68 adds r0, r2, 0 bl sub_810AC40 b _0810AB7A .align 2, 0 _0810AB64: .4byte gTasks+0x8 _0810AB68: ldrh r0, [r1, 0x2] ldr r1, _0810AB80 @ =gUnknown_841638F bl sub_810971C adds r0, r5, 0 subs r0, 0x8 adds r0, r4, r0 ldr r1, _0810AB84 @ =sub_810AB88 str r1, [r0] _0810AB7A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810AB80: .4byte gUnknown_841638F _0810AB84: .4byte sub_810AB88 thumb_func_end sub_810AB40 thumb_func_start sub_810AB88 sub_810AB88: @ 810AB88 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810ABB8 @ =gTasks+0x8 adds r4, r0, r1 adds r0, r4, 0 adds r0, 0x10 ldrh r1, [r4, 0x4] bl sub_80BF848 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810ABBC movs r1, 0x10 ldrsh r0, [r4, r1] movs r1, 0x3 bl sub_81097E4 b _0810AC38 .align 2, 0 _0810ABB8: .4byte gTasks+0x8 _0810ABBC: ldr r0, _0810ABFC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810AC00 movs r0, 0x5 bl PlaySE movs r0, 0x6 bl sub_810BAD8 lsls r0, 24 lsrs r0, 24 bl ClearWindowTilemap movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl sub_810BA3C movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_8108978 adds r0, r5, 0 bl sub_810AC40 b _0810AC38 .align 2, 0 _0810ABFC: .4byte gMain _0810AC00: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810AC38 movs r0, 0x5 bl PlaySE movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl sub_810BA3C movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ bl sub_8108978 adds r0, r6, 0 bl sub_810910C _0810AC38: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810AB88 thumb_func_start sub_810AC40 sub_810AC40: @ 810AC40 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 mov r8, r0 ldr r0, _0810ACCC @ =gTasks+0x8 mov r9, r0 mov r7, r8 add r7, r9 ldr r5, _0810ACD0 @ =gSpecialVar_ItemId ldrh r0, [r5] ldrh r1, [r7, 0x10] bl sub_809A3C8 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bne _0810ACEC ldrh r2, [r5] ldr r3, _0810ACD4 @ =0x0000ffff movs r0, 0x1C movs r1, 0 bl sub_80A2294 ldrh r0, [r5] ldr r1, _0810ACD8 @ =gStringVar1 bl sub_8099E90 ldr r0, _0810ACDC @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r7, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0810ACE0 @ =gStringVar4 ldr r1, _0810ACE4 @ =gUnknown_84163A7 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x6 movs r1, 0x3 bl sub_810B9DC lsls r0, 24 lsrs r0, 24 movs r1, 0x2 str r1, [sp] str r6, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] str r1, [sp, 0xC] str r6, [sp, 0x10] movs r1, 0x2 adds r2, r4, 0 movs r3, 0 bl sub_810B8F0 mov r0, r9 subs r0, 0x8 add r0, r8 ldr r1, _0810ACE8 @ =sub_8109F44 str r1, [r0] b _0810ACF8 .align 2, 0 _0810ACCC: .4byte gTasks+0x8 _0810ACD0: .4byte gSpecialVar_ItemId _0810ACD4: .4byte 0x0000ffff _0810ACD8: .4byte gStringVar1 _0810ACDC: .4byte gStringVar2 _0810ACE0: .4byte gStringVar4 _0810ACE4: .4byte gUnknown_84163A7 _0810ACE8: .4byte sub_8109F44 _0810ACEC: ldr r2, _0810AD08 @ =gUnknown_84163BB ldr r3, _0810AD0C @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 bl sub_8108E70 _0810ACF8: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810AD08: .4byte gUnknown_84163BB _0810AD0C: .4byte sub_810A1D0 thumb_func_end sub_810AC40 thumb_func_start UseRegisteredKeyItemOnField UseRegisteredKeyItemOnField: @ 810AD10 push {r4-r6,lr} bl InUnionRoom cmp r0, 0x1 bne _0810AD1E movs r0, 0 b _0810ADA0 _0810AD1E: bl sub_80982EC movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r4, _0810AD80 @ =gSaveBlock1Ptr ldr r0, [r4] ldr r5, _0810AD84 @ =0x00000296 adds r1, r0, r5 ldrh r0, [r1] cmp r0, 0 beq _0810AD98 movs r1, 0x1 bl sub_8099F40 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bne _0810AD90 bl ScriptContext2_Enable bl player_bitmagic bl sub_805C270 bl sub_805C780 ldr r2, _0810AD88 @ =gSpecialVar_ItemId ldr r0, [r4] adds r0, r5 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0] bl ItemId_GetFieldFunc movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810AD8C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r6, [r1, 0xE] b _0810AD9E .align 2, 0 _0810AD80: .4byte gSaveBlock1Ptr _0810AD84: .4byte 0x00000296 _0810AD88: .4byte gSpecialVar_ItemId _0810AD8C: .4byte gTasks _0810AD90: ldr r0, [r4] adds r0, r5 movs r1, 0 strh r1, [r0] _0810AD98: ldr r0, _0810ADA8 @ =gUnknown_81A77A0 bl ScriptContext1_SetupScript _0810AD9E: movs r0, 0x1 _0810ADA0: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0810ADA8: .4byte gUnknown_81A77A0 thumb_func_end UseRegisteredKeyItemOnField thumb_func_start sub_810ADAC sub_810ADAC: @ 810ADAC push {lr} ldr r0, _0810ADCC @ =gUnknown_203ACFC ldrb r0, [r0, 0x4] cmp r0, 0x6 beq _0810ADC6 cmp r0, 0x8 beq _0810ADC6 cmp r0, 0x7 beq _0810ADC6 cmp r0, 0x9 beq _0810ADC6 cmp r0, 0xA bne _0810ADD0 _0810ADC6: movs r0, 0x1 b _0810ADD2 .align 2, 0 _0810ADCC: .4byte gUnknown_203ACFC _0810ADD0: movs r0, 0 _0810ADD2: pop {r1} bx r1 thumb_func_end sub_810ADAC thumb_func_start sub_810ADD8 sub_810ADD8: @ 810ADD8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _0810AEBC @ =gUnknown_203AD2C movs r0, 0xB2 lsls r0, 1 bl AllocZeroed str r0, [r5] ldr r4, _0810AEC0 @ =gSaveBlock1Ptr ldr r1, [r4] movs r2, 0xC4 lsls r2, 2 adds r1, r2 movs r2, 0xA8 bl memcpy ldr r0, [r5] adds r0, 0xA8 ldr r1, [r4] movs r3, 0xEE lsls r3, 2 adds r1, r3 movs r2, 0x78 bl memcpy ldr r0, [r5] movs r1, 0x90 lsls r1, 1 adds r0, r1 ldr r1, [r4] movs r2, 0x86 lsls r2, 3 adds r1, r2 movs r2, 0x34 bl memcpy ldr r2, [r5] ldr r0, [r4] ldr r3, _0810AEC4 @ =0x00000296 adds r0, r3 ldrh r1, [r0] movs r3, 0xB0 lsls r3, 1 adds r0, r2, r3 strh r1, [r0] ldr r1, _0810AEC8 @ =gUnknown_203ACFC ldrh r0, [r1, 0x6] adds r3, 0x2 adds r2, r3 strh r0, [r2] movs r4, 0 mov r8, r5 movs r7, 0xAA lsls r7, 1 movs r0, 0xE adds r0, r1 mov r12, r0 movs r6, 0xAD lsls r6, 1 adds r5, r1, 0 adds r5, 0x8 _0810AE54: mov r1, r8 ldr r2, [r1] lsls r3, r4, 1 adds r0, r2, r7 adds r0, r3 ldrh r1, [r5] strh r1, [r0] adds r2, r6 adds r2, r3 mov r3, r12 ldrh r0, [r3] strh r0, [r2] movs r0, 0x2 add r12, r0 adds r5, 0x2 adds r4, 0x1 cmp r4, 0x2 bls _0810AE54 ldr r4, _0810AEC0 @ =gSaveBlock1Ptr ldr r0, [r4] movs r1, 0xC4 lsls r1, 2 adds r0, r1 movs r1, 0x2A bl ClearItemSlots ldr r0, [r4] movs r2, 0xEE lsls r2, 2 adds r0, r2 movs r1, 0x1E bl ClearItemSlots ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0xD bl ClearItemSlots ldr r0, [r4] ldr r1, _0810AEC4 @ =0x00000296 adds r0, r1 movs r1, 0 strh r1, [r0] bl sub_81089BC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810AEBC: .4byte gUnknown_203AD2C _0810AEC0: .4byte gSaveBlock1Ptr _0810AEC4: .4byte 0x00000296 _0810AEC8: .4byte gUnknown_203ACFC thumb_func_end sub_810ADD8 thumb_func_start sub_810AECC sub_810AECC: @ 810AECC push {r4-r7,lr} ldr r4, _0810AF64 @ =gSaveBlock1Ptr ldr r0, [r4] movs r1, 0xC4 lsls r1, 2 adds r0, r1 ldr r5, _0810AF68 @ =gUnknown_203AD2C ldr r1, [r5] movs r2, 0xA8 bl memcpy ldr r0, [r4] movs r2, 0xEE lsls r2, 2 adds r0, r2 ldr r1, [r5] adds r1, 0xA8 movs r2, 0x78 bl memcpy ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 ldr r1, [r5] movs r2, 0x90 lsls r2, 1 adds r1, r2 movs r2, 0x34 bl memcpy ldr r1, [r4] ldr r2, [r5] movs r3, 0xB0 lsls r3, 1 adds r0, r2, r3 ldrh r0, [r0] ldr r3, _0810AF6C @ =0x00000296 adds r1, r3 strh r0, [r1] ldr r1, _0810AF70 @ =gUnknown_203ACFC movs r3, 0xB1 lsls r3, 1 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, 0x6] movs r4, 0 mov r12, r5 adds r3, r1, 0 adds r3, 0x8 mov r7, r12 movs r6, 0xAA lsls r6, 1 movs r5, 0xAD lsls r5, 1 _0810AF3A: lsls r2, r4, 1 ldr r1, [r7] adds r0, r1, r6 adds r0, r2 ldrh r0, [r0] strh r0, [r3] adds r1, r5 adds r1, r2 ldrh r0, [r1] strh r0, [r3, 0x6] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x2 bls _0810AF3A mov r1, r12 ldr r0, [r1] bl Free pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810AF64: .4byte gSaveBlock1Ptr _0810AF68: .4byte gUnknown_203AD2C _0810AF6C: .4byte 0x00000296 _0810AF70: .4byte gUnknown_203ACFC thumb_func_end sub_810AECC thumb_func_start sub_810AF74 sub_810AF74: @ 810AF74 push {lr} bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 bl sub_809A084 movs r0, 0x4 movs r1, 0x1 bl sub_809A084 ldr r2, _0810AF98 @ =sub_8030AEC movs r0, 0x6 movs r1, 0 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 _0810AF98: .4byte sub_8030AEC thumb_func_end sub_810AF74 thumb_func_start sub_810AF9C sub_810AF9C: @ 810AF9C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r6, r0, 3 ldr r7, _0810AFCC @ =gTasks+0x8 adds r5, r6, r7 ldr r0, _0810AFD0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810B06A movs r0, 0x10 ldrsh r1, [r5, r0] cmp r1, 0xCC beq _0810AFE4 cmp r1, 0xCC bgt _0810AFD4 cmp r1, 0x66 beq _0810AFE4 b _0810B064 .align 2, 0 _0810AFCC: .4byte gTasks+0x8 _0810AFD0: .4byte gPaletteFade _0810AFD4: movs r0, 0x99 lsls r0, 1 cmp r1, r0 beq _0810AFF6 adds r0, 0x66 cmp r1, r0 beq _0810B01C b _0810B064 _0810AFE4: movs r0, 0xF6 bl PlaySE adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_81091D0 b _0810B064 _0810AFF6: movs r0, 0x5 bl PlaySE ldrb r0, [r5] movs r1, 0x2 bl bag_menu_print_cursor_ movs r0, 0x1 bl sub_8109140 ldr r1, _0810B018 @ =gSpecialVar_ItemId movs r0, 0x4 strh r0, [r1] adds r0, r4, 0 bl sub_8109890 b _0810B064 .align 2, 0 _0810B018: .4byte gSpecialVar_ItemId _0810B01C: movs r0, 0x5 bl PlaySE movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r5] movs r1, 0 movs r2, 0 bl sub_810713C bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0810B060 @ =sub_810B070 str r1, [r0] b _0810B06A .align 2, 0 _0810B060: .4byte sub_810B070 _0810B064: ldrh r0, [r5, 0x10] adds r0, 0x1 strh r0, [r5, 0x10] _0810B06A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810AF9C thumb_func_start sub_810B070 sub_810B070: @ 810B070 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r1, 0x2 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0810B0A4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810B0A8 @ =sub_810B0AC str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810B0A4: .4byte gTasks _0810B0A8: .4byte sub_810B0AC thumb_func_end sub_810B070 thumb_func_start sub_810B0AC sub_810B0AC: @ 810B0AC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810B0DC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810B0FE ldr r0, _0810B0E0 @ =sub_8108CFC bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810B0FE ldr r0, _0810B0E4 @ =gUnknown_203AD10 ldr r0, [r0] ldr r0, [r0] cmp r0, 0 beq _0810B0E8 bl SetMainCallback2 b _0810B0F0 .align 2, 0 _0810B0DC: .4byte gPaletteFade _0810B0E0: .4byte sub_8108CFC _0810B0E4: .4byte gUnknown_203AD10 _0810B0E8: ldr r0, _0810B104 @ =gUnknown_203ACFC ldr r0, [r0] bl SetMainCallback2 _0810B0F0: bl sub_8108978 bl sub_8108B04 adds r0, r4, 0 bl DestroyTask _0810B0FE: pop {r4} pop {r0} bx r0 .align 2, 0 _0810B104: .4byte gUnknown_203ACFC thumb_func_end sub_810B0AC thumb_func_start sub_810B108 sub_810B108: @ 810B108 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 bl sub_809A084 movs r0, 0xE movs r1, 0x1 bl sub_809A084 movs r0, 0xB7 lsls r0, 1 movs r1, 0x1 bl sub_809A084 movs r0, 0xB6 lsls r0, 1 movs r1, 0x1 bl sub_809A084 movs r0, 0x4 movs r1, 0x5 bl sub_809A084 movs r0, 0x3 movs r1, 0x1 bl sub_809A084 movs r0, 0x8 movs r1, 0x1 bl sub_809A084 cmp r4, 0x7 beq _0810B160 cmp r4, 0x8 beq _0810B16C ldr r2, _0810B15C @ =sub_815ABFC adds r0, r4, 0 b _0810B170 .align 2, 0 _0810B15C: .4byte sub_815ABFC _0810B160: ldr r2, _0810B168 @ =sub_8030AEC movs r0, 0x7 b _0810B170 .align 2, 0 _0810B168: .4byte sub_8030AEC _0810B16C: ldr r2, _0810B17C @ =sub_8030AEC movs r0, 0x8 _0810B170: movs r1, 0 bl sub_8107DB4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810B17C: .4byte sub_8030AEC thumb_func_end sub_810B108 thumb_func_start sub_810B180 sub_810B180: @ 810B180 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810B198 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0810B19C movs r0, 0 b _0810B1BC .align 2, 0 _0810B198: .4byte gMain _0810B19C: bl sub_810AECC bl sub_815AC20 ldr r0, _0810B1C4 @ =gUnknown_203AD10 ldr r1, [r0] ldr r0, _0810B1C8 @ =sub_815ABFC str r0, [r1] ldr r1, _0810B1CC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810B1D0 @ =sub_810B070 str r1, [r0] movs r0, 0x1 _0810B1BC: pop {r4} pop {r1} bx r1 .align 2, 0 _0810B1C4: .4byte gUnknown_203AD10 _0810B1C8: .4byte sub_815ABFC _0810B1CC: .4byte gTasks _0810B1D0: .4byte sub_810B070 thumb_func_end sub_810B180 thumb_func_start sub_810B1D4 sub_810B1D4: @ 810B1D4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r5, r0, 3 ldr r6, _0810B220 @ =gTasks+0x8 adds r7, r5, r6 ldr r0, _0810B224 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0810B1F2 b _0810B372 _0810B1F2: adds r0, r4, 0 bl sub_810B180 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B202 b _0810B372 _0810B202: movs r0, 0x10 ldrsh r1, [r7, r0] movs r0, 0xCC lsls r0, 1 cmp r1, r0 beq _0810B29E cmp r1, r0 bgt _0810B232 cmp r1, 0xCC beq _0810B266 cmp r1, 0xCC bgt _0810B228 cmp r1, 0x66 beq _0810B254 b _0810B36C .align 2, 0 _0810B220: .4byte gTasks+0x8 _0810B224: .4byte gPaletteFade _0810B228: movs r0, 0x99 lsls r0, 1 cmp r1, r0 beq _0810B290 b _0810B36C _0810B232: movs r0, 0x99 lsls r0, 2 cmp r1, r0 beq _0810B32C cmp r1, r0 bgt _0810B246 subs r0, 0x66 cmp r1, r0 beq _0810B32C b _0810B36C _0810B246: ldr r0, _0810B250 @ =0x000002ca cmp r1, r0 bne _0810B24E b _0810B344 _0810B24E: b _0810B36C .align 2, 0 _0810B250: .4byte 0x000002ca _0810B254: movs r0, 0xF6 bl PlaySE adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_81091D0 b _0810B36C _0810B266: movs r0, 0x5 bl PlaySE ldrb r0, [r7] movs r1, 0x2 bl bag_menu_print_cursor_ movs r0, 0x1 bl sub_8109140 ldr r1, _0810B28C @ =gSpecialVar_ItemId movs r2, 0xB7 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] adds r0, r4, 0 bl sub_8109890 b _0810B36C .align 2, 0 _0810B28C: .4byte gSpecialVar_ItemId _0810B290: movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursorNoWrapAround b _0810B36C _0810B29E: movs r0, 0x5 bl PlaySE ldr r0, _0810B318 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _0810B31C @ =gSpecialVar_ItemId ldrh r1, [r1] ldr r2, _0810B320 @ =0x00000296 adds r0, r2 strh r1, [r0] movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap ldrb r0, [r7] ldr r4, _0810B324 @ =gUnknown_203ACFC ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r4, 0 adds r5, 0xE adds r1, r2, r5 adds r6, r4, 0 adds r6, 0x8 adds r2, r6 bl sub_810713C ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _0810B328 @ =gUnknown_3005E70 ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 ldrh r1, [r5] adds r2, r6 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r7] movs r0, 0 bl sub_8109140 ldrb r0, [r7] movs r1, 0x1 bl bag_menu_print_cursor_ movs r0, 0 movs r1, 0x1 bl CopyWindowToVram b _0810B36C .align 2, 0 _0810B318: .4byte gSaveBlock1Ptr _0810B31C: .4byte gSpecialVar_ItemId _0810B320: .4byte 0x00000296 _0810B324: .4byte gUnknown_203ACFC _0810B328: .4byte gUnknown_3005E70 _0810B32C: ldr r1, _0810B340 @ =gMain movs r0, 0 strh r0, [r1, 0x2E] movs r0, 0x80 strh r0, [r1, 0x30] ldrb r0, [r7] bl ListMenuHandleInput b _0810B36C .align 2, 0 _0810B340: .4byte gMain _0810B344: movs r0, 0x5 bl PlaySE ldrb r0, [r7] movs r1, 0 movs r2, 0 bl sub_810713C bl sub_810AECC bl sub_8108CB4 adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, _0810B368 @ =sub_810B070 str r1, [r0] b _0810B372 .align 2, 0 _0810B368: .4byte sub_810B070 _0810B36C: ldrh r0, [r7, 0x10] adds r0, 0x1 strh r0, [r7, 0x10] _0810B372: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810B1D4 thumb_func_start sub_810B378 sub_810B378: @ 810B378 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _0810B3B0 @ =gTasks+0x8 adds r4, r6, r7 ldr r0, _0810B3B4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0810B396 b _0810B4B6 _0810B396: adds r0, r5, 0 bl sub_810B180 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B3B8 bl FreeRestoreBattleData bl LoadPlayerParty b _0810B4B6 .align 2, 0 _0810B3B0: .4byte gTasks+0x8 _0810B3B4: .4byte gPaletteFade _0810B3B8: movs r0, 0x10 ldrsh r1, [r4, r0] movs r0, 0xCC lsls r0, 1 cmp r1, r0 beq _0810B41A cmp r1, r0 bgt _0810B3E0 cmp r1, 0xCC beq _0810B408 cmp r1, 0xCC bgt _0810B3D6 cmp r1, 0x66 beq _0810B408 b _0810B4B0 _0810B3D6: movs r0, 0x99 lsls r0, 1 cmp r1, r0 beq _0810B41A b _0810B4B0 _0810B3E0: movs r0, 0x99 lsls r0, 2 cmp r1, r0 beq _0810B428 cmp r1, r0 bgt _0810B3F4 subs r0, 0x66 cmp r1, r0 beq _0810B428 b _0810B4B0 _0810B3F4: ldr r0, _0810B404 @ =0x000002ca cmp r1, r0 beq _0810B440 adds r0, 0x66 cmp r1, r0 beq _0810B468 b _0810B4B0 .align 2, 0 _0810B404: .4byte 0x000002ca _0810B408: movs r0, 0xF6 bl PlaySE adds r0, r5, 0 movs r1, 0x1 movs r2, 0 bl sub_81091D0 b _0810B4B0 _0810B41A: ldr r1, _0810B424 @ =gMain movs r0, 0 strh r0, [r1, 0x2E] movs r0, 0x80 b _0810B430 .align 2, 0 _0810B424: .4byte gMain _0810B428: ldr r1, _0810B43C @ =gMain movs r0, 0 strh r0, [r1, 0x2E] movs r0, 0x40 _0810B430: strh r0, [r1, 0x30] ldrb r0, [r4] bl ListMenuHandleInput b _0810B4B0 .align 2, 0 _0810B43C: .4byte gMain _0810B440: movs r0, 0x5 bl PlaySE ldrb r0, [r4] movs r1, 0x2 bl bag_menu_print_cursor_ movs r0, 0x1 bl sub_8109140 ldr r1, _0810B464 @ =gSpecialVar_ItemId movs r0, 0x4 strh r0, [r1] adds r0, r5, 0 bl sub_8109890 b _0810B4B0 .align 2, 0 _0810B464: .4byte gSpecialVar_ItemId _0810B468: movs r0, 0x5 bl PlaySE movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r4] movs r1, 0 movs r2, 0 bl sub_810713C bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0810B4AC @ =sub_810B070 str r1, [r0] b _0810B4B6 .align 2, 0 _0810B4AC: .4byte sub_810B070 _0810B4B0: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] _0810B4B6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810B378 thumb_func_start sub_810B4BC sub_810B4BC: @ 810B4BC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 mov r8, r0 ldr r0, _0810B504 @ =gTasks+0x8 mov r9, r0 mov r5, r8 add r5, r9 ldr r0, _0810B508 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r7, 0x80 adds r0, r7, 0 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0810B5C6 adds r0, r4, 0 bl sub_810B180 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B50C bl FreeRestoreBattleData bl LoadPlayerParty b _0810B5C6 .align 2, 0 _0810B504: .4byte gTasks+0x8 _0810B508: .4byte gPaletteFade _0810B50C: movs r0, 0x10 ldrsh r1, [r5, r0] cmp r1, 0xCC beq _0810B53C cmp r1, 0xCC bgt _0810B51E cmp r1, 0x66 beq _0810B528 b _0810B5C0 _0810B51E: movs r0, 0x99 lsls r0, 1 cmp r1, r0 beq _0810B564 b _0810B5C0 _0810B528: ldr r0, _0810B538 @ =gMain strh r6, [r0, 0x2E] strh r7, [r0, 0x30] ldrb r0, [r5] bl ListMenuHandleInput b _0810B5C0 .align 2, 0 _0810B538: .4byte gMain _0810B53C: movs r0, 0x5 bl PlaySE ldrb r0, [r5] movs r1, 0x2 bl bag_menu_print_cursor_ movs r0, 0x1 bl sub_8109140 ldr r1, _0810B560 @ =gSpecialVar_ItemId movs r0, 0xE strh r0, [r1] adds r0, r4, 0 bl sub_8109890 b _0810B5C0 .align 2, 0 _0810B560: .4byte gSpecialVar_ItemId _0810B564: movs r0, 0x5 bl PlaySE movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r5] movs r1, 0 movs r2, 0 bl sub_810713C bl sub_810AECC ldr r1, _0810B5B0 @ =gUnknown_3005E98 ldr r0, _0810B5B4 @ =ItemUseCB_Medicine str r0, [r1] ldr r0, _0810B5B8 @ =sub_81279A4 bl sub_8108EE0 mov r0, r9 subs r0, 0x8 add r0, r8 ldr r1, _0810B5BC @ =sub_810B070 str r1, [r0] b _0810B5C6 .align 2, 0 _0810B5B0: .4byte gUnknown_3005E98 _0810B5B4: .4byte ItemUseCB_Medicine _0810B5B8: .4byte sub_81279A4 _0810B5BC: .4byte sub_810B070 _0810B5C0: ldrh r0, [r5, 0x10] adds r0, 0x1 strh r0, [r5, 0x10] _0810B5C6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810B4BC thumb_func_start sub_810B5D4 sub_810B5D4: @ 810B5D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 mov r8, r0 ldr r0, _0810B624 @ =gTasks+0x8 mov r9, r0 mov r6, r8 add r6, r9 ldr r0, _0810B628 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r7, 0x80 adds r0, r7, 0 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0810B6E6 adds r0, r4, 0 bl sub_810B180 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810B6E6 movs r2, 0x10 ldrsh r1, [r6, r2] cmp r1, 0xCC beq _0810B64E cmp r1, 0xCC bgt _0810B62C cmp r1, 0x66 beq _0810B63C b _0810B6E0 .align 2, 0 _0810B624: .4byte gTasks+0x8 _0810B628: .4byte gPaletteFade _0810B62C: movs r0, 0x99 lsls r0, 1 cmp r1, r0 beq _0810B660 adds r0, 0x66 cmp r1, r0 beq _0810B68C b _0810B6E0 _0810B63C: movs r0, 0xF6 bl PlaySE adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_81091D0 b _0810B6E0 _0810B64E: ldr r0, _0810B65C @ =gMain strh r5, [r0, 0x2E] strh r7, [r0, 0x30] ldrb r0, [r6] bl ListMenuHandleInput b _0810B6E0 .align 2, 0 _0810B65C: .4byte gMain _0810B660: movs r0, 0x5 bl PlaySE ldrb r0, [r6] movs r1, 0x2 bl bag_menu_print_cursor_ movs r0, 0x1 bl sub_8109140 ldr r1, _0810B688 @ =gSpecialVar_ItemId movs r2, 0xB6 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] adds r0, r4, 0 bl sub_8109890 b _0810B6E0 .align 2, 0 _0810B688: .4byte gSpecialVar_ItemId _0810B68C: movs r0, 0x5 bl PlaySE movs r0, 0xA bl sub_810BA3C movs r0, 0x6 bl sub_810BA3C movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r6] movs r1, 0 movs r2, 0 bl sub_810713C bl sub_810AECC ldr r0, _0810B6D4 @ =gUnknown_203AD10 ldr r1, [r0] ldr r0, _0810B6D8 @ =sub_8132E64 str r0, [r1] mov r0, r9 subs r0, 0x8 add r0, r8 ldr r1, _0810B6DC @ =sub_810B070 str r1, [r0] b _0810B6E6 .align 2, 0 _0810B6D4: .4byte gUnknown_203AD10 _0810B6D8: .4byte sub_8132E64 _0810B6DC: .4byte sub_810B070 _0810B6E0: ldrh r0, [r6, 0x10] adds r0, 0x1 strh r0, [r6, 0x10] _0810B6E6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810B5D4 .align 2, 0 @ Don't pad with nop.