Files
PokemonEmeraldSafariFrontier/asm/player_pc.s
2018-03-12 13:56:20 +05:30

3440 lines
57 KiB
ArmAsm

.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.