.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text .equ gPcItemMenuOptionOrder, 0x0203BCB0 .equ gPcItemMenuOptionsNum, 0x0203BCB4 // thumb_func_start NewGameInitPCItems //NewGameInitPCItems: @ 816ADF4 // push {r4-r6,lr} // movs r4, 0 // ldr r0, =gSaveBlock1Ptr // ldr r0, [r0] // movs r1, 0x93 // lsls r1, 3 // adds r0, r1 // movs r1, 0x32 // bl ClearItemSlots // ldr r1, =gUnknown_085DFEFC // ldrh r0, [r1] // cmp r0, 0 // beq _0816AE48 // ldrh r0, [r1, 0x2] // cmp r0, 0 // beq _0816AE48 // adds r5, r1, 0 // adds r6, r5, 0x2 //_0816AE1A: // lsls r1, r4, 2 // adds r0, r1, r5 // ldrh r0, [r0] // adds r1, r6 // ldrh r1, [r1] // bl AddPCItem // lsls r0, 24 // lsrs r0, 24 // cmp r0, 0x1 // bne _0816AE48 // adds r0, r4, 0x1 // lsls r0, 24 // lsrs r4, r0, 24 // lsls r1, r4, 2 // adds r0, r1, r5 // ldrh r0, [r0] // cmp r0, 0 // beq _0816AE48 // adds r0, r1, r6 // ldrh r0, [r0] // cmp r0, 0 // bne _0816AE1A //_0816AE48: // pop {r4-r6} // pop {r0} // bx r0 // .pool // thumb_func_end NewGameInitPCItems // thumb_func_start sub_816AE58 //sub_816AE58: @ 816AE58 // push {lr} // ldr r1, =gPcItemMenuOptionOrder // ldr r0, =gUnknown_085DFED4 // str r0, [r1] // ldr r1, =gPcItemMenuOptionsNum // movs r0, 0x4 // strb r0, [r1] // ldr r0, =TaskDummy // movs r1, 0 // bl CreateTask // lsls r0, 24 // lsrs r0, 24 // ldr r1, =gText_WhatWouldYouLike // ldr r2, =InitPlayerPCMenu // bl DisplayItemMessageOnField // pop {r0} // bx r0 // .pool // thumb_func_end sub_816AE58 // thumb_func_start sub_816AE98 //sub_816AE98: @ 816AE98 // push {lr} // ldr r1, =gPcItemMenuOptionOrder // ldr r0, =gUnknown_085DFED8 // str r0, [r1] // ldr r1, =gPcItemMenuOptionsNum // movs r0, 0x3 // strb r0, [r1] // ldr r0, =TaskDummy // movs r1, 0 // bl CreateTask // lsls r0, 24 // lsrs r0, 24 // ldr r1, =gText_WhatWouldYouLike // ldr r2, =InitPlayerPCMenu // bl DisplayItemMessageOnField // pop {r0} // bx r0 // .pool // thumb_func_end sub_816AE98 // thumb_func_start InitPlayerPCMenu //InitPlayerPCMenu: @ 816AED8 // push {r4-r7,lr} // mov r7, r8 // push {r7} // sub sp, 0x8 // lsls r0, 24 // lsrs r7, r0, 24 // lsls r0, r7, 2 // adds r0, r7 // lsls r0, 3 // ldr r1, =gTasks + 0x8 // adds r6, r0, r1 // ldr r0, =gPcItemMenuOptionsNum // ldrb r1, [r0] // mov r8, r0 // cmp r1, 0x3 // bne _0816AF0C // ldr r0, =gUnknown_085DFF24 // ldr r1, [r0, 0x4] // ldr r0, [r0] // b _0816AF12 // .pool //_0816AF0C: // ldr r0, =gUnknown_085DFF24 // ldr r1, [r0, 0xC] // ldr r0, [r0, 0x8] //_0816AF12: // str r0, [sp] // str r1, [sp, 0x4] // ldr r5, =gUnknown_085DFEB4 // ldr r4, =gPcItemMenuOptionOrder // ldr r1, [r4] // mov r0, r8 // ldrb r2, [r0] // adds r0, r5, 0 // bl sub_81DB3D8 // lsls r0, 24 // ldr r2, =0x00ffffff // ldr r1, [sp] // ands r1, r2 // orrs r1, r0 // str r1, [sp] // mov r0, sp // bl AddWindow // strh r0, [r6, 0x8] // lsls r0, 24 // lsrs r0, 24 // movs r1, 0 // bl SetStandardWindowBorderStyle // ldrb r0, [r6, 0x8] // mov r2, r8 // ldrb r1, [r2] // ldr r3, [r4] // adds r2, r5, 0 // bl sub_81995E4 // ldrb r0, [r6, 0x8] // mov r2, r8 // ldrb r1, [r2] // movs r2, 0 // bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // ldr r1, =gTasks // lsls r0, r7, 2 // adds r0, r7 // lsls r0, 3 // adds r0, r1 // ldr r1, =sub_816AF98 // str r1, [r0] // add sp, 0x8 // pop {r3} // mov r8, r3 // pop {r4-r7} // pop {r0} // bx r0 // .pool // thumb_func_end InitPlayerPCMenu // thumb_func_start PlayerPCProcessMenuInput //PlayerPCProcessMenuInput: @ 816AF98 // push {r4-r6,lr} // lsls r0, 24 // lsrs r6, r0, 24 // lsls r0, r6, 2 // adds r0, r6 // lsls r0, 3 // ldr r1, =gTasks + 0x8 // adds r4, r0, r1 // ldr r0, =gPcItemMenuOptionsNum // ldrb r0, [r0] // cmp r0, 0x3 // bls _0816AFC0 // bl ProcessMenuInput // b _0816AFC4 // .pool //_0816AFC0: // bl ProcessMenuInputNoWrapAround //_0816AFC4: // lsls r0, 24 // lsrs r0, 24 // lsls r0, 24 // asrs r5, r0, 24 // movs r0, 0x2 // negs r0, r0 // cmp r5, r0 // beq _0816B04C // adds r0, 0x1 // cmp r5, r0 // bne _0816B014 // movs r0, 0x5 // bl PlaySE // ldrb r0, [r4, 0x8] // movs r1, 0 // bl sub_8198070 // ldrb r0, [r4, 0x8] // bl ClearWindowTilemap // ldrb r0, [r4, 0x8] // bl RemoveWindow // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // ldr r1, =gTasks // lsls r0, r6, 2 // adds r0, r6 // lsls r0, 3 // adds r0, r1 // ldr r1, =PlayerPC_TurnOff // str r1, [r0] // b _0816B04C // .pool //_0816B014: // ldrb r0, [r4, 0x8] // movs r1, 0 // bl sub_8198070 // ldrb r0, [r4, 0x8] // bl ClearWindowTilemap // ldrb r0, [r4, 0x8] // bl RemoveWindow // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // ldr r0, =gTasks // lsls r1, r6, 2 // adds r1, r6 // lsls r1, 3 // adds r1, r0 // ldr r2, =sPlayerPCMenuActions // ldr r0, =gPcItemMenuOptionOrder // ldr r0, [r0] // adds r0, r5 // ldrb r0, [r0] // lsls r0, 3 // adds r2, 0x4 // adds r0, r2 // ldr r0, [r0] // str r0, [r1] //_0816B04C: // pop {r4-r6} // pop {r0} // bx r0 // .pool // thumb_func_end PlayerPCProcessMenuInput // thumb_func_start ReshowPlayerPC //ReshowPlayerPC: @ 816B060 // push {lr} // lsls r0, 24 // lsrs r0, 24 // ldr r1, =gText_WhatWouldYouLike // ldr r2, =InitPlayerPCMenu // bl DisplayItemMessageOnField // pop {r0} // bx r0 // .pool // thumb_func_end ReshowPlayerPC // thumb_func_start PlayerPC_ItemStorage //PlayerPC_ItemStorage: @ 816B07C // push {r4,lr} // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // adds r0, r4, 0 // movs r1, 0 // bl InitItemStorageMenu // ldr r1, =gTasks // lsls r0, r4, 2 // adds r0, r4 // lsls r0, 3 // adds r0, r1 // ldr r1, =ItemStorageMenuProcessInput // str r1, [r0] // pop {r4} // pop {r0} // bx r0 // .pool // thumb_func_end PlayerPC_ItemStorage // thumb_func_start PlayerPC_Mailbox //PlayerPC_Mailbox: @ 816B0A8 // push {r4-r6,lr} // lsls r0, 24 // lsrs r4, r0, 24 // adds r6, r4, 0 // bl GetMailboxMailCount // ldr r5, =gUnknown_0203BCB8 // movs r1, 0 // strb r0, [r5, 0x5] // lsls r0, 24 // cmp r0, 0 // bne _0816B0D8 // ldr r1, =gText_NoMailHere // ldr r2, =ReshowPlayerPC // adds r0, r4, 0 // bl DisplayItemMessageOnField // b _0816B12A // .pool //_0816B0D8: // strh r1, [r5] // strh r1, [r5, 0x2] // movs r0, 0xFF // strb r0, [r5, 0x9] // bl Mailbox_UpdateMailList // adds r0, r4, 0 // bl ItemStorage_SetItemAndMailCount // ldrb r0, [r5, 0x5] // bl sub_81D1C44 // lsls r0, 24 // lsrs r0, 24 // cmp r0, 0x1 // bne _0816B120 // movs r0, 0 // movs r1, 0 // bl sub_8197434 // adds r0, r4, 0 // bl Mailbox_DrawMailboxMenu // ldr r0, =gTasks // lsls r1, r4, 2 // adds r1, r4 // lsls r1, 3 // adds r1, r0 // ldr r0, =Mailbox_ProcessInput // str r0, [r1] // b _0816B12A // .pool //_0816B120: // ldr r1, =gText_NoMailHere // ldr r2, =ReshowPlayerPC // adds r0, r6, 0 // bl DisplayItemMessageOnField //_0816B12A: // pop {r4-r6} // pop {r0} // bx r0 // .pool // thumb_func_end PlayerPC_Mailbox // thumb_func_start PlayerPC_Decoration //PlayerPC_Decoration: @ 816B138 // push {lr} // lsls r0, 24 // lsrs r0, 24 // bl sub_8126B2C // pop {r0} // bx r0 // thumb_func_end PlayerPC_Decoration // thumb_func_start PlayerPC_TurnOff //PlayerPC_TurnOff: @ 816B148 // push {r4,lr} // lsls r0, 24 // lsrs r4, r0, 24 // ldr r0, =gPcItemMenuOptionsNum // ldrb r0, [r0] // cmp r0, 0x4 // bne _0816B180 // ldr r0, =gSaveBlock2Ptr // ldr r0, [r0] // ldrb r0, [r0, 0x8] // cmp r0, 0 // bne _0816B174 // ldr r0, =LittlerootTown_BrendansHouse_2F_EventScript_1F863F // bl ScriptContext1_SetupScript // b _0816B184 // .pool //_0816B174: // ldr r0, =LittlerootTown_MaysHouse_2F_EventScript_1F958F // bl ScriptContext1_SetupScript // b _0816B184 // .pool //_0816B180: // bl EnableBothScriptContexts //_0816B184: // adds r0, r4, 0 // bl DestroyTask // pop {r4} // pop {r0} // bx r0 // thumb_func_end PlayerPC_TurnOff // thumb_func_start InitItemStorageMenu //InitItemStorageMenu: @ 816B190 // push {r4-r6,lr} // sub sp, 0x8 // adds r5, r1, 0 // lsls r0, 24 // lsrs r0, 24 // lsls r5, 24 // lsrs r5, 24 // lsls r4, r0, 2 // adds r4, r0 // lsls r4, 3 // ldr r0, =gTasks + 0x8 // adds r4, r0 // ldr r0, =gUnknown_085DFF24 // ldr r1, [r0, 0x14] // ldr r0, [r0, 0x10] // str r0, [sp] // str r1, [sp, 0x4] // ldr r6, =gPCText_ItemPCOptionsText // adds r0, r6, 0 // movs r1, 0x4 // bl GetMaxWidthInMenuTable // lsls r0, 24 // ldr r2, =0x00ffffff // ldr r1, [sp] // ands r1, r2 // orrs r1, r0 // str r1, [sp] // mov r0, sp // bl AddWindow // strh r0, [r4, 0x8] // lsls r0, 24 // lsrs r0, 24 // movs r1, 0 // bl SetStandardWindowBorderStyle // ldrb r0, [r4, 0x8] // movs r1, 0x4 // adds r2, r6, 0 // bl PrintMenuTable // ldrb r0, [r4, 0x8] // movs r1, 0x4 // adds r2, r5, 0 // bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // ldr r0, =gPCText_OptionDescList // lsls r5, 2 // adds r5, r0 // ldr r0, [r5] // bl sub_816B21C // add sp, 0x8 // pop {r4-r6} // pop {r0} // bx r0 // .pool // thumb_func_end InitItemStorageMenu // thumb_func_start sub_816B21C //sub_816B21C: @ 816B21C // push {r4,lr} // sub sp, 0xC // adds r4, r0, 0 // movs r0, 0 // movs r1, 0 // bl NewMenuHelpers_DrawDialogueFrame // movs r0, 0x1 // str r0, [sp] // movs r0, 0 // str r0, [sp, 0x4] // str r0, [sp, 0x8] // movs r1, 0x1 // adds r2, r4, 0 // movs r3, 0 // bl PrintTextOnWindow // add sp, 0xC // pop {r4} // pop {r0} // bx r0 // thumb_func_end sub_816B21C // thumb_func_start ItemStorageMenuProcessInput //ItemStorageMenuProcessInput: @ 816B248 // push {r4-r6,lr} // lsls r0, 24 // lsrs r6, r0, 24 // bl GetMenuCursorPos // lsls r0, 24 // lsrs r5, r0, 24 // bl ProcessMenuInput // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // bl GetMenuCursorPos // lsls r0, 24 // lsrs r2, r0, 24 // lsls r4, 24 // asrs r4, 24 // movs r0, 0x2 // negs r0, r0 // cmp r4, r0 // beq _0816B298 // adds r0, 0x1 // cmp r4, r0 // beq _0816B2B4 // movs r0, 0x5 // bl PlaySE // ldr r0, =gPCText_ItemPCOptionsText // lsls r1, r4, 3 // adds r0, 0x4 // adds r1, r0 // ldr r1, [r1] // adds r0, r6, 0 // bl _call_via_r1 // b _0816B2C0 // .pool //_0816B298: // lsls r1, r5, 24 // lsls r0, r2, 24 // asrs r2, r0, 24 // cmp r1, r0 // beq _0816B2C0 // ldr r0, =gPCText_OptionDescList // lsls r1, r2, 2 // adds r1, r0 // ldr r0, [r1] // bl ItemStorageMenuPrint // b _0816B2C0 // .pool //_0816B2B4: // movs r0, 0x5 // bl PlaySE // adds r0, r6, 0 // bl ItemStorage_Exit //_0816B2C0: // pop {r4-r6} // pop {r0} // bx r0 // thumb_func_end ItemStorageMenuProcessInput // thumb_func_start ItemStorage_Deposit //ItemStorage_Deposit: @ 816B2C8 // push {lr} // lsls r0, 24 // lsrs r0, 24 // ldr r2, =gTasks // lsls r1, r0, 2 // adds r1, r0 // lsls r1, 3 // adds r1, r2 // ldr r0, =sub_816B2F0 // str r0, [r1] // movs r0, 0x1 // movs r1, 0 // bl FadeScreen // pop {r0} // bx r0 // .pool // thumb_func_end ItemStorage_Deposit // // thumb_func_start sub_816B2F0 //sub_816B2F0: @ 816B2F0 // push {r4,lr} // lsls r0, 24 // lsrs r4, r0, 24 // ldr r0, =gPaletteFade // ldrb r1, [r0, 0x7] // movs r0, 0x80 // ands r0, r1 // cmp r0, 0 // bne _0816B310 // bl overworld_free_bg_tilemaps // bl sub_81AAC14 // adds r0, r4, 0 // bl DestroyTask //_0816B310: // pop {r4} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B2F0 // thumb_func_start sub_816B31C //sub_816B31C: @ 816B31C // push {lr} // ldr r0, =gFieldCallback // ldr r1, =mapldr_080EBC0C // str r1, [r0] // ldr r0, =CB2_ReturnToField // bl SetMainCallback2 // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B31C // // thumb_func_start mapldr_080EBC0C //mapldr_080EBC0C: @ 816B33C // push {lr} // bl sub_81973A4 // movs r0, 0 // movs r1, 0x1 // bl NewMenuHelpers_DrawDialogueFrame // ldr r0, =ItemStorage_HandleReturnToProcessInput // movs r1, 0 // bl CreateTask // lsls r0, 24 // lsrs r0, 24 // movs r1, 0x1 // bl InitItemStorageMenu // bl pal_fill_black // pop {r0} // bx r0 // .pool // thumb_func_end mapldr_080EBC0C // // thumb_func_start ItemStorage_HandleReturnToProcessInput //ItemStorage_HandleReturnToProcessInput: @ 816B368 // push {r4,lr} // lsls r0, 24 // lsrs r4, r0, 24 // bl sub_80ABDFC // lsls r0, 24 // lsrs r0, 24 // cmp r0, 0x1 // bne _0816B388 // ldr r0, =gTasks // lsls r1, r4, 2 // adds r1, r4 // lsls r1, 3 // adds r1, r0 // ldr r0, =ItemStorageMenuProcessInput // str r0, [r1] //_0816B388: // pop {r4} // pop {r0} // bx r0 // .pool // thumb_func_end ItemStorage_HandleReturnToProcessInput // thumb_func_start ItemStorage_Withdraw //ItemStorage_Withdraw: @ 816B398 // push {r4,r5,lr} // lsls r0, 24 // lsrs r5, r0, 24 // lsls r4, r5, 2 // adds r4, r5 // lsls r4, 3 // ldr r0, =gTasks + 0x8 // adds r4, r0 // bl sub_80D6CE4 // lsls r0, 24 // lsrs r0, 24 // strh r0, [r4, 0x2] // cmp r0, 0 // beq _0816B3C4 // adds r0, r5, 0 // movs r1, 0 // bl sub_816B430 // b _0816B3D4 // .pool //_0816B3C4: // adds r0, r5, 0 // bl sub_816B4DC // ldr r1, =gText_NoItems // ldr r2, =PlayerPC_ItemStorage // adds r0, r5, 0 // bl DisplayItemMessageOnField //_0816B3D4: // pop {r4,r5} // pop {r0} // bx r0 // .pool // thumb_func_end ItemStorage_Withdraw // // thumb_func_start ItemStorage_Toss //ItemStorage_Toss: @ 816B3E4 // push {r4,r5,lr} // lsls r0, 24 // lsrs r5, r0, 24 // lsls r4, r5, 2 // adds r4, r5 // lsls r4, 3 // ldr r0, =gTasks + 0x8 // adds r4, r0 // bl sub_80D6CE4 // lsls r0, 24 // lsrs r0, 24 // strh r0, [r4, 0x2] // cmp r0, 0 // beq _0816B410 // adds r0, r5, 0 // movs r1, 0x1 // bl sub_816B430 // b _0816B420 // .pool //_0816B410: // adds r0, r5, 0 // bl sub_816B4DC // ldr r1, =gText_NoItems // ldr r2, =PlayerPC_ItemStorage // adds r0, r5, 0 // bl DisplayItemMessageOnField //_0816B420: // pop {r4,r5} // pop {r0} // bx r0 // .pool // thumb_func_end ItemStorage_Toss // thumb_func_start sub_816B430 //sub_816B430: @ 816B430 // push {r4-r6,lr} // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // lsls r1, 24 // lsrs r1, 24 // lsls r5, r4, 2 // adds r5, r4 // lsls r5, 3 // ldr r6, =gTasks + 0x8 // adds r0, r5, r6 // strh r1, [r0, 0x6] // adds r0, r4, 0 // bl sub_816B4DC // ldr r1, =gUnknown_0203BCB8 // movs r0, 0 // strh r0, [r1] // strh r0, [r1, 0x2] // movs r0, 0xFF // strb r0, [r1, 0x9] // adds r0, r4, 0 // bl ItemStorage_SetItemAndMailCount // bl sub_816BC14 // bl gpu_pal_allocator_reset__manage_upper_four // bl LoadListMenuArrowsGfx // ldr r0, =gUnknown_0203BCC4 // ldr r0, [r0] // movs r1, 0xCD // lsls r1, 3 // adds r0, r1 // movs r1, 0x7 // bl sub_8122344 // movs r0, 0 // movs r1, 0 // bl sub_8197434 // subs r6, 0x8 // adds r5, r6 // ldr r0, =sub_816C158 // str r0, [r5] // pop {r4-r6} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B430 // thumb_func_start ItemStorage_Exit //ItemStorage_Exit: @ 816B4A4 // push {r4,lr} // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // adds r0, r4, 0 // bl sub_816B4DC // adds r0, r4, 0 // bl ReshowPlayerPC // pop {r4} // pop {r0} // bx r0 // thumb_func_end ItemStorage_Exit // thumb_func_start ItemStorage_SetItemAndMailCount //ItemStorage_SetItemAndMailCount: @ 816B4C0 // push {lr} // ldr r1, =gUnknown_0203BCB8 // ldrb r0, [r1, 0x5] // cmp r0, 0x7 // bls _0816B4D4 // movs r0, 0x8 // b _0816B4D6 // .pool //_0816B4D4: // adds r0, 0x1 //_0816B4D6: // strb r0, [r1, 0x4] // pop {r0} // bx r0 // thumb_func_end ItemStorage_SetItemAndMailCount // thumb_func_start sub_816B4DC //sub_816B4DC: @ 816B4DC // push {r4,lr} // lsls r0, 24 // lsrs r0, 24 // lsls r4, r0, 2 // adds r4, r0 // lsls r4, 3 // ldr r0, =gTasks + 0x8 // adds r4, r0 // ldrb r0, [r4, 0x8] // movs r1, 0 // bl sub_8198070 // ldrb r0, [r4, 0x8] // bl ClearWindowTilemap // ldrb r0, [r4, 0x8] // bl RemoveWindow // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // pop {r4} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B4DC // thumb_func_start GetMailboxMailCount //GetMailboxMailCount: @ 816B510 // push {r4,lr} // movs r2, 0 // movs r1, 0x6 // ldr r0, =gSaveBlock1Ptr // ldr r3, [r0] // movs r4, 0xB0 // lsls r4, 6 //_0816B51E: // lsls r0, r1, 3 // adds r0, r1 // lsls r0, 2 // adds r0, r3, r0 // adds r0, r4 // ldrh r0, [r0] // cmp r0, 0 // beq _0816B534 // adds r0, r2, 0x1 // lsls r0, 24 // lsrs r2, r0, 24 //_0816B534: // adds r0, r1, 0x1 // lsls r0, 24 // lsrs r1, r0, 24 // cmp r1, 0xF // bls _0816B51E // adds r0, r2, 0 // pop {r4} // pop {r1} // bx r1 // .pool // thumb_func_end GetMailboxMailCount // thumb_func_start Mailbox_UpdateMailList //Mailbox_UpdateMailList: @ 816B54C // push {r4-r7,lr} // mov r7, r10 // mov r6, r9 // mov r5, r8 // push {r5-r7} // sub sp, 0x24 // movs r2, 0x6 //_0816B55A: // adds r1, r2, 0x1 // lsls r0, r1, 24 // lsrs r4, r0, 24 // mov r8, r1 // cmp r4, 0xF // bhi _0816B5D4 // ldr r0, =gSaveBlock1Ptr // mov r10, r0 // lsls r0, r2, 3 // adds r0, r2 // lsls r0, 2 // mov r12, r0 // ldr r6, =0x00002be0 //_0816B574: // mov r1, r10 // ldr r1, [r1] // mov r9, r1 // mov r2, r9 // add r2, r12 // movs r3, 0xB0 // lsls r3, 6 // adds r0, r2, r3 // ldrh r0, [r0] // cmp r0, 0 // bne _0816B5CA // adds r2, r6 // mov r1, sp // adds r0, r2, 0 // ldm r0!, {r3,r5,r7} // stm r1!, {r3,r5,r7} // ldm r0!, {r3,r5,r7} // stm r1!, {r3,r5,r7} // ldm r0!, {r3,r5,r7} // stm r1!, {r3,r5,r7} // lsls r3, r4, 3 // adds r3, r4 // lsls r3, 2 // mov r5, r9 // adds r0, r5, r3 // adds r0, r6 // ldm r0!, {r1,r5,r7} // stm r2!, {r1,r5,r7} // ldm r0!, {r1,r5,r7} // stm r2!, {r1,r5,r7} // ldm r0!, {r1,r5,r7} // stm r2!, {r1,r5,r7} // mov r7, r10 // ldr r1, [r7] // adds r1, r3 // adds r1, r6 // mov r0, sp // ldm r0!, {r2,r3,r5} // stm r1!, {r2,r3,r5} // ldm r0!, {r2,r3,r7} // stm r1!, {r2,r3,r7} // ldm r0!, {r2,r5,r7} // stm r1!, {r2,r5,r7} //_0816B5CA: // adds r0, r4, 0x1 // lsls r0, 24 // lsrs r4, r0, 24 // cmp r4, 0xF // bls _0816B574 //_0816B5D4: // mov r3, r8 // lsls r0, r3, 24 // lsrs r2, r0, 24 // cmp r2, 0xE // bls _0816B55A // add sp, 0x24 // pop {r3-r5} // mov r8, r3 // mov r9, r4 // mov r10, r5 // pop {r4-r7} // pop {r0} // bx r0 // .pool // thumb_func_end Mailbox_UpdateMailList // thumb_func_start Mailbox_DrawMailboxMenu //Mailbox_DrawMailboxMenu: @ 816B5F8 // push {r4-r6,lr} // sub sp, 0xC // adds r5, r0, 0 // lsls r5, 24 // lsrs r5, 24 // movs r0, 0 // bl sub_81D1C84 // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // movs r0, 0x1 // bl sub_81D1C84 // ldr r6, =gText_Mailbox // movs r0, 0x1 // adds r1, r6, 0 // movs r2, 0x40 // bl GetStringCenterAlignXOffset // adds r3, r0, 0 // lsls r3, 24 // lsrs r3, 24 // movs r0, 0x1 // str r0, [sp] // movs r0, 0 // str r0, [sp, 0x4] // str r0, [sp, 0x8] // adds r0, r4, 0 // movs r1, 0x1 // adds r2, r6, 0 // bl PrintTextOnWindow // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // ldr r4, =gUnknown_0203BCB8 // adds r0, r4, 0 // bl sub_81D1DC0 // ldr r2, =gTasks // lsls r1, r5, 2 // adds r1, r5 // lsls r1, 3 // adds r1, r2 // lsls r0, 24 // lsrs r0, 24 // strh r0, [r1, 0x12] // adds r0, r4, 0 // bl sub_81D1E90 // add sp, 0xC // pop {r4-r6} // pop {r0} // bx r0 // .pool // thumb_func_end Mailbox_DrawMailboxMenu // thumb_func_start Mailbox_ProcessInput //Mailbox_ProcessInput: @ 816B674 // push {r4-r7,lr} // mov r7, r10 // mov r6, r9 // mov r5, r8 // push {r5-r7} // lsls r0, 24 // lsrs r5, r0, 24 // lsls r0, r5, 2 // adds r0, r5 // lsls r0, 3 // mov r9, r0 // ldr r0, =gTasks + 0x8 // mov r10, r0 // mov r4, r9 // add r4, r10 // ldr r0, =gPaletteFade // ldrb r1, [r0, 0x7] // movs r0, 0x80 // ands r0, r1 // cmp r0, 0 // bne _0816B71E // ldrb r0, [r4, 0xA] // bl ListMenuHandleInputGetItemId // adds r6, r0, 0 // ldrb r0, [r4, 0xA] // ldr r7, =gUnknown_0203BCBA // subs r1, r7, 0x2 // mov r8, r1 // adds r1, r7, 0 // mov r2, r8 // bl sub_81AE860 // movs r0, 0x2 // negs r0, r0 // cmp r6, r0 // beq _0816B6D4 // adds r0, 0x1 // cmp r6, r0 // bne _0816B6EA // b _0816B71E // .pool //_0816B6D4: // movs r0, 0x5 // bl PlaySE // mov r1, r8 // ldrb r0, [r1, 0x9] // bl RemoveScrollIndicatorArrowPair // adds r0, r5, 0 // bl sub_816B798 // b _0816B71E //_0816B6EA: // movs r0, 0x5 // bl PlaySE // movs r0, 0 // bl sub_81D1D04 // movs r0, 0x1 // bl sub_81D1D04 // ldrb r0, [r4, 0xA] // adds r1, r7, 0 // mov r2, r8 // bl sub_81AE6C8 // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // mov r1, r8 // ldrb r0, [r1, 0x9] // bl RemoveScrollIndicatorArrowPair // mov r0, r10 // subs r0, 0x8 // add r0, r9 // ldr r1, =sub_816B730 // str r1, [r0] //_0816B71E: // pop {r3-r5} // mov r8, r3 // mov r9, r4 // mov r10, r5 // pop {r4-r7} // pop {r0} // bx r0 // .pool // thumb_func_end Mailbox_ProcessInput // thumb_func_start sub_816B730 //sub_816B730: @ 816B730 // push {r4,r5,lr} // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // ldr r5, =gStringVar1 // ldr r2, =gSaveBlock1Ptr // ldr r1, =gUnknown_0203BCB8 // ldrh r0, [r1] // adds r0, 0x6 // ldrh r1, [r1, 0x2] // adds r0, r1 // lsls r1, r0, 3 // adds r1, r0 // lsls r1, 2 // ldr r0, [r2] // adds r1, r0 // ldr r0, =0x00002bf2 // adds r1, r0 // adds r0, r5, 0 // bl StringCopy // adds r0, r5, 0 // movs r1, 0 // bl sub_81DB554 // ldr r5, =gStringVar4 // ldr r1, =gText_WhatToDoWithVar1sMail // adds r0, r5, 0 // bl StringExpandPlaceholders // ldr r2, =sub_816B7DC // adds r0, r4, 0 // adds r1, r5, 0 // bl DisplayItemMessageOnField // pop {r4,r5} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B730 // thumb_func_start sub_816B798 //sub_816B798: @ 816B798 // push {r4,r5,lr} // adds r5, r0, 0 // lsls r5, 24 // lsrs r5, 24 // lsls r4, r5, 2 // adds r4, r5 // lsls r4, 3 // ldr r0, =gTasks + 0x8 // adds r4, r0 // movs r0, 0 // bl sub_81D1D04 // movs r0, 0x1 // bl sub_81D1D04 // ldrb r0, [r4, 0xA] // movs r1, 0 // movs r2, 0 // bl sub_81AE6C8 // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // bl sub_81D1EC0 // adds r0, r5, 0 // bl ReshowPlayerPC // pop {r4,r5} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B798 // thumb_func_start sub_816B7DC //sub_816B7DC: @ 816B7DC // push {r4,r5,lr} // adds r5, r0, 0 // lsls r5, 24 // lsrs r5, 24 // movs r0, 0x2 // bl sub_81D1C84 // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // ldr r2, =gUnknown_085DFF04 // adds r0, r4, 0 // movs r1, 0x4 // bl PrintMenuTable // adds r0, r4, 0 // movs r1, 0x4 // movs r2, 0 // bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed // movs r0, 0 // bl schedule_bg_copy_tilemap_to_vram // ldr r1, =gTasks // lsls r0, r5, 2 // adds r0, r5 // lsls r0, 3 // adds r0, r1 // ldr r1, =sub_816B82C // str r1, [r0] // pop {r4,r5} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B7DC // thumb_func_start sub_816B82C //sub_816B82C: @ 816B82C // push {r4-r6,lr} // lsls r0, 24 // lsrs r5, r0, 24 // adds r6, r5, 0 // bl ProcessMenuInput_other // lsls r0, 24 // asrs r4, r0, 24 // movs r0, 0x2 // negs r0, r0 // cmp r4, r0 // beq _0816B86E // adds r0, 0x1 // cmp r4, r0 // bne _0816B858 // movs r0, 0x5 // bl PlaySE // adds r0, r5, 0 // bl sub_816BBD4 // b _0816B86E //_0816B858: // movs r0, 0x5 // bl PlaySE // ldr r0, =gUnknown_085DFF04 // lsls r1, r4, 3 // adds r0, 0x4 // adds r1, r0 // ldr r1, [r1] // adds r0, r6, 0 // bl _call_via_r1 //_0816B86E: // pop {r4-r6} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B82C // thumb_func_start sub_816B878 //sub_816B878: @ 816B878 // push {r4,lr} // adds r4, r0, 0 // lsls r4, 24 // lsrs r4, 24 // movs r0, 0x1 // movs r1, 0 // bl FadeScreen // ldr r1, =gTasks // lsls r0, r4, 2 // adds r0, r4 // lsls r0, 3 // adds r0, r1 // ldr r1, =sub_816B8A4 // str r1, [r0] // pop {r4} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B878 // // thumb_func_start sub_816B8A4 //sub_816B8A4: @ 816B8A4 // push {r4,lr} // lsls r0, 24 // lsrs r4, r0, 24 // ldr r0, =gPaletteFade // ldrb r1, [r0, 0x7] // movs r0, 0x80 // ands r0, r1 // cmp r0, 0 // bne _0816B8E6 // bl sub_81D1EC0 // bl overworld_free_bg_tilemaps // ldr r2, =gSaveBlock1Ptr // ldr r1, =gUnknown_0203BCB8 // ldrh r0, [r1] // adds r0, 0x6 // ldrh r1, [r1, 0x2] // adds r0, r1 // lsls r1, r0, 3 // adds r1, r0 // lsls r1, 2 // ldr r0, =0x00002be0 // adds r1, r0 // ldr r0, [r2] // adds r0, r1 // ldr r1, =sub_816B900 // movs r2, 0x1 // bl ReadMail // adds r0, r4, 0 // bl DestroyTask //_0816B8E6: // pop {r4} // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B8A4 // thumb_func_start sub_816B900 //sub_816B900: @ 816B900 // push {lr} // ldr r0, =gFieldCallback // ldr r1, =pal_fill_for_maplights_or_black // str r1, [r0] // ldr r0, =CB2_ReturnToField // bl SetMainCallback2 // pop {r0} // bx r0 // .pool // thumb_func_end sub_816B900 thumb_func_start pal_fill_for_maplights_or_black pal_fill_for_maplights_or_black: @ 816B920 push {r4,lr} bl sub_81973A4 ldr r0, =task00_080EBBDC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203BCB8 ldrb r0, [r0, 0x5] bl sub_81D1C44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0816B954 adds r0, r4, 0 bl Mailbox_DrawMailboxMenu b _0816B95A .pool _0816B954: adds r0, r4, 0 bl DestroyTask _0816B95A: bl pal_fill_black pop {r4} pop {r0} bx r0 thumb_func_end pal_fill_for_maplights_or_black thumb_func_start task00_080EBBDC task00_080EBBDC: @ 816B964 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80ABDFC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0816B984 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =Mailbox_ProcessInput str r0, [r1] _0816B984: pop {r4} pop {r0} bx r0 .pool thumb_func_end task00_080EBBDC thumb_func_start sub_816B994 sub_816B994: @ 816B994 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gText_MessageWillBeLost ldr r2, =sub_816B9B0 bl DisplayItemMessageOnField pop {r0} bx r0 .pool thumb_func_end sub_816B994 thumb_func_start sub_816B9B0 sub_816B9B0: @ 816B9B0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8197930 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_816B9D8 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816B9B0 thumb_func_start sub_816B9D8 sub_816B9D8: @ 816B9D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0816BA04 cmp r0, r1 ble _0816BA10 cmp r0, 0 beq _0816B9FC cmp r0, 0x1 beq _0816BA0A b _0816BA10 _0816B9FC: adds r0, r4, 0 bl sub_816BA18 b _0816BA10 _0816BA04: movs r0, 0x5 bl PlaySE _0816BA0A: adds r0, r4, 0 bl sub_816BAAC _0816BA10: pop {r4} pop {r0} bx r0 thumb_func_end sub_816B9D8 thumb_func_start sub_816BA18 sub_816BA18: @ 816BA18 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, =gSaveBlock1Ptr ldr r4, =gUnknown_0203BCB8 ldrh r1, [r4] adds r1, 0x6 ldrh r0, [r4, 0x2] adds r1, r0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =0x00002be0 adds r0, r1 ldr r1, [r2] adds r5, r1, r0 ldrh r0, [r5, 0x20] movs r1, 0x1 bl AddBagItem lsls r0, 24 cmp r0, 0 bne _0816BA68 ldr r1, =gText_BagIsFull ldr r2, =sub_816BBD4 adds r0, r6, 0 bl DisplayItemMessageOnField b _0816BA9C .pool _0816BA68: ldr r1, =gText_MailToBagMessageErased ldr r2, =sub_816BBD4 adds r0, r6, 0 bl DisplayItemMessageOnField adds r0, r5, 0 bl ClearMailStruct bl Mailbox_UpdateMailList ldrb r0, [r4, 0x5] subs r0, 0x1 strb r0, [r4, 0x5] ldrb r1, [r4, 0x5] ldrb r0, [r4, 0x4] ldrh r2, [r4, 0x2] adds r0, r2 cmp r1, r0 bge _0816BA96 cmp r2, 0 beq _0816BA96 subs r0, r2, 0x1 strh r0, [r4, 0x2] _0816BA96: adds r0, r6, 0 bl ItemStorage_SetItemAndMailCount _0816BA9C: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816BA18 thumb_func_start sub_816BAAC sub_816BAAC: @ 816BAAC push {lr} lsls r0, 24 lsrs r0, 24 bl sub_816BBD4 pop {r0} bx r0 thumb_func_end sub_816BAAC thumb_func_start sub_816BABC sub_816BABC: @ 816BABC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 bne _0816BAD4 adds r0, r4, 0 bl sub_816BBB8 b _0816BAEA _0816BAD4: movs r0, 0x1 movs r1, 0 bl FadeScreen ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_816BAF8 str r0, [r1] _0816BAEA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BABC thumb_func_start sub_816BAF8 sub_816BAF8: @ 816BAF8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0816BB1C bl sub_81D1EC0 bl overworld_free_bg_tilemaps bl sub_81B8448 adds r0, r4, 0 bl DestroyTask _0816BB1C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BAF8 thumb_func_start sub_816BB28 sub_816BB28: @ 816BB28 push {lr} ldr r0, =gFieldCallback ldr r1, =sub_816BB48 str r1, [r0] ldr r0, =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_816BB28 thumb_func_start sub_816BB48 sub_816BB48: @ 816BB48 push {r4-r6,lr} ldr r0, =task00_080EBBDC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r6, r0, 24 ldr r5, =gUnknown_0203BCB8 ldrb r4, [r5, 0x5] bl GetMailboxMailCount strb r0, [r5, 0x5] bl Mailbox_UpdateMailList ldrb r0, [r5, 0x5] cmp r4, r0 beq _0816BB7E ldrb r1, [r5, 0x5] ldrb r0, [r5, 0x4] ldrh r2, [r5, 0x2] adds r0, r2 cmp r1, r0 bge _0816BB7E cmp r2, 0 beq _0816BB7E subs r0, r2, 0x1 strh r0, [r5, 0x2] _0816BB7E: adds r0, r6, 0 bl ItemStorage_SetItemAndMailCount bl sub_81973A4 ldr r0, =gUnknown_0203BCB8 ldrb r0, [r0, 0x5] bl sub_81D1C44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0816BBA8 adds r0, r6, 0 bl Mailbox_DrawMailboxMenu b _0816BBAE .pool _0816BBA8: adds r0, r6, 0 bl DestroyTask _0816BBAE: bl pal_fill_black pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_816BB48 thumb_func_start sub_816BBB8 sub_816BBB8: @ 816BBB8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gText_NoPokemon ldr r2, =sub_816BBD4 bl DisplayItemMessageOnField pop {r0} bx r0 .pool thumb_func_end sub_816BBB8 thumb_func_start sub_816BBD4 sub_816BBD4: @ 816BBD4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 bl sub_81D1D04 movs r0, 0 movs r1, 0 bl sub_8197434 adds r0, r4, 0 bl Mailbox_DrawMailboxMenu movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =Mailbox_ProcessInput str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BBD4 thumb_func_start sub_816BC14 sub_816BC14: @ 816BC14 push {r4,lr} ldr r4, =gUnknown_0203BCC4 movs r0, 0xCE lsls r0, 3 bl AllocZeroed str r0, [r4] movs r1, 0xCC lsls r1, 3 adds r0, r1 movs r1, 0xFF movs r2, 0x6 bl memset ldr r0, [r4] ldr r1, =0x00000666 adds r0, r1 movs r1, 0xFF strb r1, [r0] ldr r0, [r4] ldr r1, =0x00000667 adds r0, r1 movs r1, 0x1 negs r1, r1 strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BC14 thumb_func_start sub_816BC58 sub_816BC58: @ 816BC58 push {r4,lr} movs r4, 0 _0816BC5C: lsls r0, r4, 24 lsrs r0, 24 bl sub_816BCC4 adds r4, 0x1 cmp r4, 0x5 bls _0816BC5C ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] bl Free pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BC58 thumb_func_start sub_816BC7C sub_816BC7C: @ 816BC7C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_0203BCC4 movs r3, 0xCC lsls r3, 3 adds r1, r2, r3 ldr r0, [r0] adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0xFF bne _0816BCB4 lsls r0, r2, 3 ldr r1, =gUnknown_085DFF5C adds r0, r1 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r2, 0x85 lsls r2, 2 movs r1, 0 movs r3, 0xE bl SetWindowBorderStyle movs r0, 0 bl schedule_bg_copy_tilemap_to_vram _0816BCB4: ldrb r0, [r4] pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_816BC7C thumb_func_start sub_816BCC4 sub_816BCC4: @ 816BCC4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203BCC4 movs r2, 0xCC lsls r2, 3 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _0816BCF8 movs r1, 0 bl sub_8198070 ldrb r0, [r4] bl ClearWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF strb r0, [r4] _0816BCF8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BCC4 thumb_func_start sub_816BD04 sub_816BD04: @ 816BD04 push {r4-r6,lr} movs r6, 0 ldr r0, =gUnknown_0203BCB8 ldrb r0, [r0, 0x5] subs r0, 0x1 cmp r6, r0 bge _0816BD58 ldr r5, =gUnknown_0203BCC4 _0816BD14: lsls r4, r6, 1 adds r4, r6 lsls r4, 3 movs r0, 0xCC lsls r0, 1 adds r4, r0 ldr r0, [r5] adds r0, r4 ldr r1, =gSaveBlock1Ptr ldr r1, [r1] lsls r2, r6, 2 adds r1, r2 movs r2, 0x93 lsls r2, 3 adds r1, r2 ldrh r1, [r1] bl sub_816BDC8 ldr r0, [r5] lsls r2, r6, 3 adds r1, r0, r2 adds r4, r0, r4 str r4, [r1] adds r0, 0x4 adds r0, r2 str r6, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gUnknown_0203BCB8 ldrb r0, [r0, 0x5] subs r0, 0x1 cmp r6, r0 blt _0816BD14 _0816BD58: ldr r5, =gUnknown_0203BCC4 lsls r4, r6, 1 adds r4, r6 lsls r4, 3 movs r3, 0xCC lsls r3, 1 adds r4, r3 ldr r0, [r5] adds r0, r4 ldr r1, =gText_Cancel2 bl StringCopy ldr r0, [r5] lsls r2, r6, 3 adds r1, r0, r2 adds r4, r0, r4 str r4, [r1] adds r0, 0x4 adds r0, r2 movs r1, 0x2 negs r1, r1 str r1, [r0] ldr r4, =gMultiuseListMenuTemplate adds r1, r4, 0 ldr r0, =gUnknown_085DFF44 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r0, 0 bl sub_816BC7C strb r0, [r4, 0x10] ldr r1, =gUnknown_0203BCB8 ldrb r0, [r1, 0x5] strh r0, [r4, 0xC] ldr r0, [r5] str r0, [r4] ldrb r0, [r1, 0x4] strh r0, [r4, 0xE] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816BD04 thumb_func_start sub_816BDC8 sub_816BDC8: @ 816BDC8 push {lr} adds r2, r0, 0 lsls r0, r1, 16 lsrs r0, 16 adds r1, r2, 0 bl CopyItemName pop {r0} bx r0 thumb_func_end sub_816BDC8 thumb_func_start sub_816BDDC sub_816BDDC: @ 816BDDC push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _0816BDEE movs r0, 0x5 bl PlaySE _0816BDEE: ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] ldr r1, =0x00000666 adds r0, r1 ldrb r0, [r0] cmp r0, 0xFF bne _0816BE38 bl sub_816C0C8 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0816BE2C ldr r0, =gSaveBlock1Ptr ldr r0, [r0] lsls r1, r4, 2 adds r0, r1 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_816C060 b _0816BE32 .pool _0816BE2C: ldr r0, =0x0000ffff bl sub_816C060 _0816BE32: adds r0, r4, 0 bl sub_816BEF0 _0816BE38: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BDDC thumb_func_start fish4_goto_x5_or_x6 fish4_goto_x5_or_x6: @ 816BE44 push {r4-r6,lr} sub sp, 0xC adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r5, r2, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0816BED4 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] ldr r1, =0x00000666 adds r0, r1 ldrb r1, [r0] cmp r1, 0xFF beq _0816BE8E lsls r0, r4, 24 lsrs r0, 24 cmp r1, r0 bne _0816BE84 adds r0, r5, 0 movs r1, 0 movs r2, 0xFF bl sub_816BFE0 b _0816BE8E .pool _0816BE84: adds r0, r5, 0 movs r1, 0xFF movs r2, 0xFF bl sub_816BFE0 _0816BE8E: ldr r0, =gStringVar1 ldr r1, =gSaveBlock1Ptr ldr r1, [r1] lsls r2, r4, 2 adds r1, r2 ldr r2, =0x0000049a adds r1, r2 ldrh r1, [r1] movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_xVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x7 adds r1, r4, 0 movs r2, 0x68 bl GetStringRightAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 str r5, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r6, 0 movs r1, 0x7 adds r2, r4, 0 bl PrintTextOnWindow _0816BED4: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end fish4_goto_x5_or_x6 thumb_func_start sub_816BEF0 sub_816BEF0: @ 816BEF0 push {r4,r5,lr} sub sp, 0xC adds r1, r0, 0 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] ldr r2, =0x00000661 adds r0, r2 ldrb r5, [r0] movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _0816BF2C ldr r0, =gSaveBlock1Ptr ldr r0, [r0] lsls r1, 2 adds r0, r1 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl ItemId_GetDescription b _0816BF32 .pool _0816BF2C: ldr r0, =0x0000ffff bl sub_816C228 _0816BF32: adds r4, r0, 0 adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0 bl PrintTextOnWindow add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_816BEF0 thumb_func_start sub_816BF60 sub_816BF60: @ 816BF60 push {r4,lr} sub sp, 0x10 ldr r4, =gUnknown_0203BCB8 ldrb r0, [r4, 0x9] cmp r0, 0xFF bne _0816BF8C ldrb r0, [r4, 0x5] ldrb r1, [r4, 0x4] subs r0, r1 str r0, [sp] ldr r0, =0x000013f8 str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r4, 0x2 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0xB0 movs r2, 0xC movs r3, 0x94 bl AddScrollIndicatorArrowPairParametrized strb r0, [r4, 0x9] _0816BF8C: add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BF60 thumb_func_start sub_816BF9C sub_816BF9C: @ 816BF9C push {r4,lr} ldr r4, =gUnknown_0203BCB8 ldrb r0, [r4, 0x9] cmp r0, 0xFF beq _0816BFAE bl RemoveScrollIndicatorArrowPair movs r0, 0xFF strb r0, [r4, 0x9] _0816BFAE: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816BF9C thumb_func_start sub_816BFB8 sub_816BFB8: @ 816BFB8 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 bl ListMenuGetYCoordForPrintingArrowCursor lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl sub_816BFE0 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_816BFB8 thumb_func_start sub_816BFE0 sub_816BFE0: @ 816BFE0 push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] movs r3, 0xCC lsls r3, 3 adds r0, r3 ldrb r5, [r0] cmp r1, 0xFF bne _0816C030 movs r0, 0x1 movs r1, 0 bl GetMenuCursorDimensionByFont adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x1 bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x11 movs r2, 0 adds r3, r6, 0 bl FillWindowPixelRect b _0816C050 .pool _0816C030: movs r0, 0 str r0, [sp] str r0, [sp, 0x4] ldr r0, =gUnknown_085DFF8C str r0, [sp, 0x8] lsls r0, r2, 24 asrs r0, 24 str r0, [sp, 0xC] ldr r0, =gText_SelectorArrow2 str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0x1 movs r2, 0 adds r3, r6, 0 bl AddTextPrinterParameterized2 _0816C050: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816BFE0 thumb_func_start sub_816C060 sub_816C060: @ 816C060 push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] ldr r1, =0x00000667 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0xFF bne _0816C0B2 ldr r4, =0x000013f6 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 bl AddItemIconSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0816C0B2 strb r2, [r5] ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] movs r0, 0x18 strh r0, [r1, 0x24] movs r0, 0x50 strh r0, [r1, 0x26] _0816C0B2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816C060 thumb_func_start sub_816C0C8 sub_816C0C8: @ 816C0C8 push {r4,r5,lr} ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] ldr r1, =0x00000667 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0xFF beq _0816C0FA ldr r4, =0x000013f6 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite movs r0, 0xFF strb r0, [r5] _0816C0FA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_816C0C8 thumb_func_start sub_816C110 sub_816C110: @ 816C110 push {lr} sub sp, 0x4 bl sub_80D6E84 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x93 lsls r1, 3 adds r0, r1 ldr r2, =gUnknown_0203BCBC adds r3, r2, 0x1 movs r1, 0x8 str r1, [sp] movs r1, 0x32 bl sub_812220C add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_816C110 thumb_func_start sub_816C140 sub_816C140: @ 816C140 push {lr} ldr r0, =gUnknown_0203BCBA subs r1, r0, 0x2 ldrb r2, [r1, 0x4] ldrb r3, [r1, 0x5] bl sub_812225C pop {r0} bx r0 .pool thumb_func_end sub_816C140 thumb_func_start sub_816C158 sub_816C158: @ 816C158 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 movs r4, 0 _0816C16C: lsls r0, r4, 24 lsrs r0, 24 bl sub_816BC7C adds r4, 0x1 cmp r4, 0x3 bls _0816C16C movs r1, 0x6 ldrsh r0, [r7, r1] ldr r5, =gText_TossItem cmp r0, 0 bne _0816C186 ldr r5, =gText_WithdrawItem _0816C186: movs r0, 0x1 adds r1, r5, 0 movs r2, 0x68 bl GetStringCenterAlignXOffset adds r3, r0, 0 ldr r4, =gUnknown_0203BCC4 ldr r0, [r4] ldr r1, =0x00000663 adds r0, r1 ldrb r0, [r0] lsls r3, 24 lsrs r3, 24 movs r1, 0x1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow ldr r0, [r4] ldr r1, =0x00000662 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram bl sub_816C110 bl sub_816C140 bl sub_816BD04 ldr r0, =gMultiuseListMenuTemplate ldr r2, =gUnknown_0203BCB8 ldrh r1, [r2, 0x2] ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0xA] bl sub_816BF60 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_816C30C str r1, [r0] add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_816C158 thumb_func_start sub_816C228 sub_816C228: @ 816C228 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r2, =0xffff0009 adds r0, r1, r2 cmp r0, 0x8 bhi _0816C2B4 lsls r0, 2 ldr r1, =_0816C248 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0816C248: .4byte _0816C2AC .4byte _0816C2A4 .4byte _0816C29C .4byte _0816C294 .4byte _0816C28C .4byte _0816C284 .4byte _0816C27C .4byte _0816C274 .4byte _0816C26C _0816C26C: ldr r0, =gText_GoBackPrevMenu b _0816C2BA .pool _0816C274: ldr r0, =gText_WithdrawHowManyItems b _0816C2BA .pool _0816C27C: ldr r0, =gText_WithdrawXItems b _0816C2BA .pool _0816C284: ldr r0, =gText_TossHowManyVar1s b _0816C2BA .pool _0816C28C: ldr r0, =gText_ThrewAwayVar2Var1s b _0816C2BA .pool _0816C294: ldr r0, =gText_NoRoomInBag b _0816C2BA .pool _0816C29C: ldr r0, =gText_TooImportantToToss b _0816C2BA .pool _0816C2A4: ldr r0, =gText_ConfirmTossItems b _0816C2BA .pool _0816C2AC: ldr r0, =gText_MoveVar1Where b _0816C2BA .pool _0816C2B4: adds r0, r1, 0 bl ItemId_GetDescription _0816C2BA: pop {r1} bx r1 thumb_func_end sub_816C228 thumb_func_start sub_816C2C0 sub_816C2C0: @ 816C2C0 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] ldr r1, =0x00000661 adds r0, r1 ldrb r5, [r0] adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, =gStringVar4 adds r0, r4, 0 adds r1, r6, 0 bl StringExpandPlaceholders movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0 bl PrintTextOnWindow add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816C2C0 thumb_func_start sub_816C30C sub_816C30C: @ 816C30C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0816C35C ldrb r0, [r4, 0xA] ldr r1, =gUnknown_0203BCBA subs r4, r1, 0x2 adds r2, r4, 0 bl sub_81AE860 ldrh r1, [r4, 0x2] ldrh r0, [r4] adds r1, r0 ldrb r0, [r4, 0x5] subs r0, 0x1 cmp r1, r0 beq _0816C39E movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_816C450 b _0816C39E .pool _0816C35C: ldrb r0, [r4, 0xA] bl ListMenuHandleInputGetItemId adds r6, r0, 0 ldrb r0, [r4, 0xA] ldr r1, =gUnknown_0203BCBA subs r2, r1, 0x2 bl sub_81AE860 movs r0, 0x2 negs r0, r0 cmp r6, r0 beq _0816C384 adds r0, 0x1 cmp r6, r0 bne _0816C392 b _0816C39E .pool _0816C384: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_816C400 b _0816C39E _0816C392: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_816C71C _0816C39E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_816C30C thumb_func_start bx_battle_menu_t3 bx_battle_menu_t3: @ 816C3A4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0816C3F2 movs r0, 0 movs r1, 0 bl NewMenuHelpers_DrawDialogueFrame movs r1, 0x6 ldrsh r0, [r5, r1] cmp r0, 0 bne _0816C3DC adds r0, r4, 0 movs r1, 0 bl InitItemStorageMenu b _0816C3E4 .pool _0816C3DC: adds r0, r4, 0 movs r1, 0x2 bl InitItemStorageMenu _0816C3E4: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =ItemStorageMenuProcessInput str r0, [r1] _0816C3F2: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end bx_battle_menu_t3 thumb_func_start sub_816C400 sub_816C400: @ 816C400 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, =gTasks + 0x8 adds r5, r4, r6 bl sub_816C0C8 bl sub_816BF9C ldrb r0, [r5, 0xA] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] movs r1, 0xCD lsls r1, 3 adds r0, r1 movs r1, 0x7 bl sub_81223B0 bl sub_816BC58 subs r6, 0x8 adds r4, r6 ldr r0, =bx_battle_menu_t3 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816C400 thumb_func_start sub_816C450 sub_816C450: @ 816C450 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 mov r8, r0 adds r1, r4, 0 add r1, r8 mov r9, r1 ldrb r0, [r1, 0xA] movs r1, 0x10 movs r2, 0x1 bl sub_81AF15C ldr r6, =gUnknown_0203BCC4 ldr r2, [r6] ldr r1, =gUnknown_0203BCB8 ldrb r0, [r1] ldrb r1, [r1, 0x2] adds r0, r1 ldr r5, =0x00000666 adds r2, r5 strb r0, [r2] mov r1, r9 ldrb r0, [r1, 0xA] movs r1, 0 movs r2, 0 bl sub_816BFB8 ldr r0, [r6] adds r0, r5 ldrb r0, [r0] bl sub_816C690 ldr r0, =gSaveBlock1Ptr ldr r1, [r0] ldr r0, [r6] adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r1, r0 movs r0, 0x93 lsls r0, 3 adds r1, r0 ldrh r0, [r1] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =0x0000fff7 bl sub_816C228 bl sub_816C2C0 movs r1, 0x8 negs r1, r1 add r8, r1 add r4, r8 ldr r0, =sub_816C4FC str r0, [r4] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816C450 thumb_func_start sub_816C4FC sub_816C4FC: @ 816C4FC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r7, =gMain ldrh r1, [r7, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0816C530 ldrb r0, [r4, 0xA] ldr r1, =gUnknown_0203BCBA subs r2, r1, 0x2 bl sub_81AE860 b _0816C57E .pool _0816C530: ldrb r0, [r4, 0xA] bl ListMenuHandleInputGetItemId adds r6, r0, 0 ldrb r0, [r4, 0xA] ldr r1, =gUnknown_0203BCBA subs r4, r1, 0x2 adds r2, r4, 0 bl sub_81AE860 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] movs r1, 0xCD lsls r1, 3 adds r0, r1 movs r1, 0x7 movs r2, 0 bl sub_81223FC ldrb r0, [r4] bl sub_816C690 movs r0, 0x2 negs r0, r0 cmp r6, r0 beq _0816C574 adds r0, 0x1 cmp r6, r0 bne _0816C592 b _0816C59A .pool _0816C574: ldrh r1, [r7, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0816C588 _0816C57E: adds r0, r5, 0 movs r1, 0 bl sub_816C5A0 b _0816C59A _0816C588: adds r0, r5, 0 movs r1, 0x1 bl sub_816C5A0 b _0816C59A _0816C592: adds r0, r5, 0 movs r1, 0 bl sub_816C5A0 _0816C59A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_816C4FC thumb_func_start sub_816C5A0 sub_816C5A0: @ 816C5A0 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r0, r1 mov r8, r0 ldr r4, =gUnknown_0203BCB8 ldrh r0, [r4] ldrh r1, [r4, 0x2] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 movs r0, 0x5 bl PlaySE mov r2, r8 ldrb r0, [r2, 0xA] adds r1, r4, 0x2 adds r2, r4, 0 bl sub_81AE6C8 cmp r5, 0 bne _0816C60A ldr r1, =gUnknown_0203BCC4 ldr r0, [r1] ldr r2, =0x00000666 adds r0, r2 ldrb r2, [r0] adds r4, r1, 0 cmp r2, r6 beq _0816C622 subs r0, r6, 0x1 cmp r2, r0 beq _0816C60A ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x93 lsls r1, 3 adds r0, r1 adds r1, r2, 0 adds r2, r6, 0 bl sub_80D702C bl sub_816BD04 _0816C60A: ldr r0, =gUnknown_0203BCC4 ldr r1, [r0] ldr r2, =0x00000666 adds r1, r2 ldrb r1, [r1] adds r4, r0, 0 cmp r1, r6 bcs _0816C622 ldr r1, =gUnknown_0203BCB8 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _0816C622: ldr r0, [r4] movs r1, 0xCD lsls r1, 3 adds r0, r1 movs r1, 0x7 movs r2, 0x1 bl sub_81223FC ldr r0, [r4] ldr r2, =0x00000666 adds r0, r2 movs r1, 0xFF strb r1, [r0] ldr r0, =gMultiuseListMenuTemplate ldr r2, =gUnknown_0203BCB8 ldrh r1, [r2, 0x2] ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0xA] movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_816C30C str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_816C5A0 thumb_func_start sub_816C690 sub_816C690: @ 816C690 push {lr} adds r3, r0, 0 lsls r3, 24 ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] movs r1, 0xCD lsls r1, 3 adds r0, r1 lsrs r3, 4 movs r1, 0x80 lsls r1, 13 adds r3, r1 lsrs r3, 16 movs r1, 0x7 movs r2, 0x80 bl sub_8122448 pop {r0} bx r0 .pool thumb_func_end sub_816C690 thumb_func_start sub_816C6BC sub_816C6BC: @ 816C6BC push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r5, [sp, 0x1C] ldr r3, [sp, 0x20] lsls r6, 24 lsrs r6, 24 lsls r1, 16 lsrs r1, 16 lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 ldr r0, =gStringVar1 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_xVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 adds r1, r4, 0 movs r2, 0x30 bl GetStringCenterAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 str r5, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r6, 0 movs r1, 0x1 adds r2, r4, 0 bl PrintTextOnWindow add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816C6BC thumb_func_start sub_816C71C sub_816C71C: @ 816C71C push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 ldr r1, =gUnknown_0203BCB8 ldrh r0, [r1, 0x2] ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r4, r0, 16 bl sub_816BF9C movs r0, 0x1 strh r0, [r6, 0x4] movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 bne _0816C798 ldr r0, =gSaveBlock1Ptr ldr r1, [r0] lsls r0, r4, 2 adds r1, r0 ldr r2, =0x0000049a adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0x1 bne _0816C774 adds r0, r5, 0 bl sub_816C8FC b _0816C7FE .pool _0816C774: movs r2, 0x93 lsls r2, 3 adds r0, r1, r2 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =0x0000fffe bl sub_816C228 bl sub_816C2C0 b _0816C7D4 .pool _0816C798: ldr r0, =gSaveBlock1Ptr ldr r1, [r0] lsls r0, r4, 2 adds r1, r0 ldr r2, =0x0000049a adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0x1 bne _0816C7BC adds r0, r5, 0 bl sub_816C9B8 b _0816C7FE .pool _0816C7BC: movs r2, 0x93 lsls r2, 3 adds r0, r1, r2 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =0x0000fffc bl sub_816C228 bl sub_816C2C0 _0816C7D4: movs r0, 0x4 bl sub_816BC7C lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] movs r2, 0x1 str r2, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0x2 movs r3, 0x8 bl sub_816C6BC ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_816C818 str r1, [r0] _0816C7FE: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816C71C thumb_func_start sub_816C818 sub_816C818: @ 816C818 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 mov r9, r5 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 ldr r0, =gUnknown_0203BCB8 ldrh r2, [r0, 0x2] ldrh r0, [r0] adds r2, r0 lsls r2, 16 adds r0, r6, 0x4 ldr r1, =gSaveBlock1Ptr mov r8, r1 ldr r1, [r1] lsrs r7, r2, 14 adds r1, r7 ldr r2, =0x0000049a adds r1, r2 ldrh r1, [r1] bl AdjustQuantityAccordingToDPadInput lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _0816C888 movs r0, 0x4 bl sub_816BC7C lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] str r4, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0x2 movs r3, 0x8 bl sub_816C6BC b _0816C8EC .pool _0816C888: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0816C8BC movs r0, 0x5 bl PlaySE movs r0, 0x4 bl sub_816BCC4 movs r3, 0x6 ldrsh r0, [r6, r3] cmp r0, 0 bne _0816C8B4 adds r0, r5, 0 bl sub_816C8FC b _0816C8EC .pool _0816C8B4: adds r0, r5, 0 bl sub_816C9B8 b _0816C8EC _0816C8BC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0816C8EC movs r0, 0x5 bl PlaySE movs r0, 0x4 bl sub_816BCC4 mov r1, r8 ldr r0, [r1] adds r0, r7 movs r2, 0x93 lsls r2, 3 adds r0, r2 ldrh r0, [r0] bl sub_816C228 bl sub_816C2C0 mov r0, r9 bl sub_816CBC0 _0816C8EC: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_816C818 thumb_func_start sub_816C8FC sub_816C8FC: @ 816C8FC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r0, =gTasks + 0x8 mov r8, r0 adds r4, r6, r0 ldr r0, =gUnknown_0203BCB8 ldrh r1, [r0, 0x2] ldrh r0, [r0] adds r1, r0 lsls r1, 16 ldr r7, =gSaveBlock1Ptr ldr r0, [r7] lsrs r5, r1, 14 adds r0, r5 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] ldrh r1, [r4, 0x4] bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0816C98C ldr r0, [r7] adds r0, r5 movs r2, 0x93 lsls r2, 3 adds r0, r2 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =gStringVar2 movs r2, 0x4 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, =0x0000fffd bl sub_816C228 bl sub_816C2C0 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, =sub_816CB04 b _0816C9A2 .pool _0816C98C: movs r0, 0 strh r0, [r4, 0x4] ldr r0, =0x0000fffa bl sub_816C228 bl sub_816C2C0 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, =sub_816CB74 _0816C9A2: str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_816C8FC thumb_func_start sub_816C9B8 sub_816C9B8: @ 816C9B8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 mov r8, r0 ldr r0, =gTasks + 0x8 mov r9, r0 mov r7, r8 add r7, r9 ldr r0, =gUnknown_0203BCB8 ldrh r1, [r0, 0x2] ldrh r0, [r0] adds r1, r0 lsls r1, 16 ldr r6, =gSaveBlock1Ptr ldr r0, [r6] lsrs r4, r1, 14 adds r0, r4 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _0816CA64 ldr r0, [r6] adds r0, r4 movs r2, 0x93 lsls r2, 3 adds r0, r2 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =gStringVar2 movs r2, 0x4 ldrsh r1, [r7, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, =0x0000fff8 bl sub_816C228 bl sub_816C2C0 ldr r1, =gUnknown_085DFF84 movs r0, 0x1 str r0, [sp] movs r0, 0x85 lsls r0, 2 str r0, [sp, 0x4] movs r0, 0xE str r0, [sp, 0x8] ldr r0, =gUnknown_085DFF3C str r0, [sp, 0xC] adds r0, r5, 0 movs r2, 0x1 movs r3, 0 bl CreateYesNoMenuWithCallbacks b _0816CA7C .pool _0816CA64: movs r0, 0 strh r0, [r7, 0x4] ldr r0, =0x0000fff9 bl sub_816C228 bl sub_816C2C0 mov r0, r9 subs r0, 0x8 add r0, r8 ldr r1, =sub_816CB74 str r1, [r0] _0816CA7C: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_816C9B8 thumb_func_start sub_816CA94 sub_816CA94: @ 816CA94 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =0x0000fffb bl sub_816C228 bl sub_816C2C0 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_816CB04 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816CA94 thumb_func_start sub_816CAC8 sub_816CAC8: @ 816CAC8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r1, =gUnknown_0203BCB8 ldrh r0, [r1, 0x2] ldrh r1, [r1] adds r0, r1 lsls r0, 2 adds r2, r0 movs r0, 0x93 lsls r0, 3 adds r2, r0 ldrh r0, [r2] bl sub_816C228 bl sub_816C2C0 adds r0, r4, 0 bl sub_816CBC0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816CAC8 thumb_func_start sub_816CB04 sub_816CB04: @ 816CB04 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0816CB5E ldr r4, =gUnknown_0203BCB8 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x4] bl sub_80D6E48 ldrb r0, [r5, 0xA] adds r1, r4, 0x2 adds r2, r4, 0 bl sub_81AE6C8 bl sub_816C110 bl sub_816C140 bl sub_816BD04 ldr r0, =gMultiuseListMenuTemplate ldrh r1, [r4, 0x2] ldrh r2, [r4] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xA] adds r0, r6, 0 bl sub_816CBC0 _0816CB5E: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_816CB04 thumb_func_start sub_816CB74 sub_816CB74: @ 816CB74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0816CBAC ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r1, =gUnknown_0203BCB8 ldrh r0, [r1, 0x2] ldrh r1, [r1] adds r0, r1 lsls r0, 2 adds r2, r0 movs r0, 0x93 lsls r0, 3 adds r2, r0 ldrh r0, [r2] bl sub_816C228 bl sub_816C2C0 adds r0, r4, 0 bl sub_816CBC0 _0816CBAC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816CB74 thumb_func_start sub_816CBC0 sub_816CBC0: @ 816CBC0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_816BF60 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_816C30C str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_816CBC0 .align 2, 0 @ Don't pad with nop.