Files
2019-09-27 01:42:56 -04:00

6892 lines
121 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start ResetBagScrollPositions
ResetBagScrollPositions: @ 0x081AA8E8
push {r4, lr}
ldr r4, _081AA910
movs r0, #0
strb r0, [r4, #5]
adds r0, r4, #0
adds r0, #8
movs r1, #0
movs r2, #0xa
bl memset
adds r4, #0x12
adds r0, r4, #0
movs r1, #0
movs r2, #0xa
bl memset
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AA910: .4byte 0x0203CB24
thumb_func_end ResetBagScrollPositions
thumb_func_start CB2_BagMenuFromStartMenu
CB2_BagMenuFromStartMenu: @ 0x081AA914
push {lr}
ldr r2, _081AA924
movs r0, #0
movs r1, #5
bl GoToBagMenu
pop {r0}
bx r0
.align 2, 0
_081AA924: .4byte 0x08085AFD
thumb_func_end CB2_BagMenuFromStartMenu
thumb_func_start sub_081AA928
sub_081AA928: @ 0x081AA928
push {lr}
bl InBattlePyramid
lsls r0, r0, #0x18
cmp r0, #0
bne _081AA944
ldr r2, _081AA940
movs r0, #1
movs r1, #5
bl GoToBagMenu
b _081AA94C
.align 2, 0
_081AA940: .4byte 0x0805996D
_081AA944:
ldr r1, _081AA950
movs r0, #1
bl sub_081C47A0
_081AA94C:
pop {r0}
bx r0
.align 2, 0
_081AA950: .4byte 0x0805996D
thumb_func_end sub_081AA928
thumb_func_start CB2_ChooseBerry
CB2_ChooseBerry: @ 0x081AA954
push {lr}
ldr r2, _081AA964
movs r0, #4
movs r1, #3
bl GoToBagMenu
pop {r0}
bx r0
.align 2, 0
_081AA964: .4byte 0x08085B19
thumb_func_end CB2_ChooseBerry
thumb_func_start sub_081AA968
sub_081AA968: @ 0x081AA968
push {lr}
adds r2, r0, #0
movs r0, #5
movs r1, #3
bl GoToBagMenu
pop {r0}
bx r0
thumb_func_end sub_081AA968
thumb_func_start CB2_GoToSellMenu
CB2_GoToSellMenu: @ 0x081AA978
push {lr}
ldr r2, _081AA988
movs r0, #3
movs r1, #5
bl GoToBagMenu
pop {r0}
bx r0
.align 2, 0
_081AA988: .4byte 0x080DF195
thumb_func_end CB2_GoToSellMenu
thumb_func_start sub_081AA98C
sub_081AA98C: @ 0x081AA98C
push {lr}
ldr r2, _081AA99C
movs r0, #6
movs r1, #5
bl GoToBagMenu
pop {r0}
bx r0
.align 2, 0
_081AA99C: .4byte 0x0816B141
thumb_func_end sub_081AA98C
thumb_func_start sub_081AA9A0
sub_081AA9A0: @ 0x081AA9A0
push {lr}
ldr r2, _081AA9BC
movs r0, #9
movs r1, #5
bl GoToBagMenu
ldr r0, _081AA9C0
movs r1, #0
strh r1, [r0]
ldr r0, _081AA9C4
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
_081AA9BC: .4byte 0x081ADC79
_081AA9C0: .4byte 0x02037282
_081AA9C4: .4byte 0x02037290
thumb_func_end sub_081AA9A0
thumb_func_start sub_081AA9C8
sub_081AA9C8: @ 0x081AA9C8
push {lr}
ldr r2, _081AA9E0
movs r0, #7
movs r1, #5
bl GoToBagMenu
ldr r1, _081AA9E4
movs r0, #0
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_081AA9E0: .4byte 0x081ADCC9
_081AA9E4: .4byte 0x02037290
thumb_func_end sub_081AA9C8
thumb_func_start sub_081AA9E8
sub_081AA9E8: @ 0x081AA9E8
push {lr}
ldr r2, _081AAA00
movs r0, #8
movs r1, #5
bl GoToBagMenu
ldr r1, _081AAA04
movs r0, #0
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_081AAA00: .4byte 0x081ADD0D
_081AAA04: .4byte 0x02037290
thumb_func_end sub_081AA9E8
thumb_func_start GoToBagMenu
GoToBagMenu: @ 0x081AAA08
push {r4, r5, r6, r7, lr}
adds r4, r2, #0
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r1, r1, #0x18
lsrs r7, r1, #0x18
ldr r6, _081AAA2C
ldr r0, _081AAA30
bl AllocZeroed
str r0, [r6]
cmp r0, #0
bne _081AAA34
adds r0, r4, #0
bl SetMainCallback2
b _081AAAB2
.align 2, 0
_081AAA2C: .4byte 0x0203CB20
_081AAA30: .4byte 0x00000844
_081AAA34:
ldr r0, _081AAAB8
cmp r5, #0xc
beq _081AAA3C
strb r5, [r0, #4]
_081AAA3C:
cmp r4, #0
beq _081AAA42
str r4, [r0]
_081AAA42:
cmp r7, #4
bhi _081AAA48
strb r7, [r0, #5]
_081AAA48:
ldrb r0, [r0, #4]
subs r0, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _081AAA68
ldr r2, [r6]
ldr r0, _081AAABC
adds r2, r2, r0
ldrb r1, [r2]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2]
_081AAA68:
ldr r0, [r6]
movs r1, #0
str r1, [r0]
ldr r1, _081AAAC0
adds r0, r0, r1
movs r1, #0xff
strb r1, [r0]
ldr r0, [r6]
ldr r1, _081AAAC4
adds r0, r0, r1
movs r1, #1
rsbs r1, r1, #0
strb r1, [r0]
ldr r0, [r6]
ldr r1, _081AAAC8
adds r0, r0, r1
movs r1, #1
rsbs r1, r1, #0
strb r1, [r0]
ldr r0, [r6]
ldr r1, _081AAACC
adds r0, r0, r1
movs r1, #0xff
movs r2, #0xc
bl memset
ldr r0, [r6]
movs r1, #0x81
lsls r1, r1, #4
adds r0, r0, r1
movs r1, #0xff
movs r2, #0xa
bl memset
ldr r0, _081AAAD0
bl SetMainCallback2
_081AAAB2:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AAAB8: .4byte 0x0203CB24
_081AAABC: .4byte 0x0000081B
_081AAAC0: .4byte 0x0000081A
_081AAAC4: .4byte 0x0000081E
_081AAAC8: .4byte 0x0000081F
_081AAACC: .4byte 0x00000804
_081AAAD0: .4byte 0x081AAB05
thumb_func_end GoToBagMenu
thumb_func_start c2_bag_3
c2_bag_3: @ 0x081AAAD4
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl do_scheduled_bg_tilemap_copies_to_vram
bl UpdatePaletteFade
pop {r0}
bx r0
.align 2, 0
thumb_func_end c2_bag_3
thumb_func_start vblank_cb_bag_menu
vblank_cb_bag_menu: @ 0x081AAAF0
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
thumb_func_end vblank_cb_bag_menu
thumb_func_start CB2_Bag
CB2_Bag: @ 0x081AAB04
push {lr}
_081AAB06:
bl sub_081221F8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081AAB2A
bl SetupBagMenu
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081AAB2A
bl sub_081221B8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081AAB06
_081AAB2A:
pop {r0}
bx r0
.align 2, 0
thumb_func_end CB2_Bag
thumb_func_start SetupBagMenu
SetupBagMenu: @ 0x081AAB30
push {r4, r5, lr}
sub sp, #4
ldr r1, _081AAB50
movs r2, #0x87
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, #0
cmp r0, #0x14
bls _081AAB46
b _081AAD9C
_081AAB46:
lsls r0, r0, #2
ldr r1, _081AAB54
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081AAB50: .4byte 0x03002360
_081AAB54: .4byte 0x081AAB58
_081AAB58: @ jump table
.4byte _081AABAC @ case 0
.4byte _081AABB6 @ case 1
.4byte _081AABC8 @ case 2
.4byte _081AABCE @ case 3
.4byte _081AABF0 @ case 4
.4byte _081AABF6 @ case 5
.4byte _081AABFE @ case 6
.4byte _081AAC1C @ case 7
.4byte _081AAC44 @ case 8
.4byte _081AAC52 @ case 9
.4byte _081AAC64 @ case 10
.4byte _081AAC72 @ case 11
.4byte _081AAC84 @ case 12
.4byte _081AAC94 @ case 13
.4byte _081AACC4 @ case 14
.4byte _081AAD10 @ case 15
.4byte _081AAD2C @ case 16
.4byte _081AAD32 @ case 17
.4byte _081AAD48 @ case 18
.4byte _081AAD4E @ case 19
.4byte _081AAD68 @ case 20
_081AABAC:
bl SetVBlankHBlankCallbacksToNull
bl clear_scheduled_bg_copies_to_vram
b _081AAD82
_081AABB6:
bl ScanlineEffect_Stop
ldr r1, _081AABC4
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AABC4: .4byte 0x03002360
_081AABC8:
bl FreeAllSpritePalettes
b _081AAD82
_081AABCE:
bl ResetPaletteFade
ldr r2, _081AABE8
ldrb r0, [r2, #8]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #8]
ldr r1, _081AABEC
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AABE8: .4byte 0x02037C74
_081AABEC: .4byte 0x03002360
_081AABF0:
bl ResetSpriteData
b _081AAD82
_081AABF6:
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
b _081AAD8A
_081AABFE:
bl sub_081221B8
lsls r0, r0, #0x18
cmp r0, #0
bne _081AAC0C
bl ResetTasks
_081AAC0C:
ldr r1, _081AAC18
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AAC18: .4byte 0x03002360
_081AAC1C:
bl BagMenu_InitBGs
ldr r0, _081AAC38
ldr r0, [r0]
ldr r1, _081AAC3C
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
ldr r1, _081AAC40
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AAC38: .4byte 0x0203CB20
_081AAC3C: .4byte 0x00000834
_081AAC40: .4byte 0x03002360
_081AAC44:
bl LoadBagMenu_Graphics
lsls r0, r0, #0x18
cmp r0, #0
bne _081AAC50
b _081AADB4
_081AAC50:
b _081AAD82
_081AAC52:
bl SetupBagMenu_Textboxes
ldr r1, _081AAC60
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AAC60: .4byte 0x03002360
_081AAC64:
bl sub_081AB818
bl SetPocketListPositions
bl sub_081AB88C
b _081AAD82
_081AAC72:
bl AllocateBagItemListBuffers
ldr r1, _081AAC80
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AAC80: .4byte 0x03002360
_081AAC84:
ldr r0, _081AAC90
ldrb r0, [r0, #5]
bl LoadBagItemListBuffers
b _081AAD82
.align 2, 0
_081AAC90: .4byte 0x0203CB24
_081AAC94:
ldr r4, _081AACB8
ldrb r1, [r4, #5]
lsls r0, r1, #3
adds r0, r0, r1
ldr r1, _081AACBC
adds r0, r0, r1
movs r1, #0
bl sub_081AB4A0
ldrb r0, [r4, #5]
movs r1, #1
bl BagMenu_DrawPocketIndicatorSquare
ldr r1, _081AACC0
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AACB8: .4byte 0x0203CB24
_081AACBC: .4byte 0x085C9742
_081AACC0: .4byte 0x03002360
_081AACC4:
ldr r4, _081AAD04
ldrb r0, [r4, #4]
bl sub_081AAF60
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
ldr r0, _081AAD08
ldrb r2, [r4, #5]
lsls r2, r2, #1
adds r1, r4, #0
adds r1, #0x12
adds r1, r2, r1
ldrh r1, [r1]
adds r4, #8
adds r2, r2, r4
ldrh r2, [r2]
bl ListMenuInit
ldr r2, _081AAD0C
lsls r1, r5, #2
adds r1, r1, r5
lsls r1, r1, #3
adds r1, r1, r2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r2, #0
strh r0, [r1, #8]
strh r2, [r1, #0xe]
strh r2, [r1, #0x18]
b _081AAD82
.align 2, 0
_081AAD04: .4byte 0x0203CB24
_081AAD08: .4byte 0x03006050
_081AAD0C: .4byte 0x03005B60
_081AAD10:
ldr r0, _081AAD24
ldrb r0, [r0, #5]
bl AddBagVisualSprite
ldr r1, _081AAD28
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AAD24: .4byte 0x0203CB24
_081AAD28: .4byte 0x03002360
_081AAD2C:
bl sub_080D4830
b _081AAD82
_081AAD32:
bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
bl bag_menu_add_list_scroll_arrow_indicators_maybe
ldr r1, _081AAD44
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AAD44: .4byte 0x03002360
_081AAD48:
bl BagMenu_PrepareTMHMMoveWindow
b _081AAD82
_081AAD4E:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0x10
movs r2, #0
bl BlendPalettes
ldr r1, _081AAD64
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _081AAD8A
.align 2, 0
_081AAD64: .4byte 0x03002360
_081AAD68:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r2, _081AAD94
ldrb r1, [r2, #8]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #8]
_081AAD82:
ldr r1, _081AAD98
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
_081AAD8A:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _081AADB4
.align 2, 0
_081AAD94: .4byte 0x02037C74
_081AAD98: .4byte 0x03002360
_081AAD9C:
ldr r0, _081AADAC
bl SetVBlankCallback
ldr r0, _081AADB0
bl SetMainCallback2
movs r0, #1
b _081AADB6
.align 2, 0
_081AADAC: .4byte 0x081AAAF1
_081AADB0: .4byte 0x081AAAD5
_081AADB4:
movs r0, #0
_081AADB6:
add sp, #4
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end SetupBagMenu
thumb_func_start BagMenu_InitBGs
BagMenu_InitBGs: @ 0x081AADC0
push {r4, lr}
bl ResetVramOamAndBgCntRegs
ldr r4, _081AAE24
ldr r0, [r4]
adds r0, #4
movs r2, #0x80
lsls r2, r2, #4
movs r1, #0
bl memset
movs r0, #0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _081AAE28
movs r0, #0
movs r2, #3
bl InitBgsFromTemplates
ldr r1, [r4]
adds r1, #4
movs r0, #2
bl SetBgTilemapBuffer
bl ResetAllBgsCoordinates
movs r0, #2
bl schedule_bg_copy_tilemap_to_vram
movs r1, #0x82
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
movs r0, #0
bl ShowBg
movs r0, #1
bl ShowBg
movs r0, #2
bl ShowBg
movs r0, #0x50
movs r1, #0
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AAE24: .4byte 0x0203CB20
_081AAE28: .4byte 0x085DF7C8
thumb_func_end BagMenu_InitBGs
thumb_func_start LoadBagMenu_Graphics
LoadBagMenu_Graphics: @ 0x081AAE2C
push {r4, lr}
sub sp, #4
ldr r4, _081AAE4C
ldr r0, [r4]
ldr r1, _081AAE50
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #4
bls _081AAE42
b _081AAF3C
_081AAE42:
lsls r0, r0, #2
ldr r1, _081AAE54
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081AAE4C: .4byte 0x0203CB20
_081AAE50: .4byte 0x00000834
_081AAE54: .4byte 0x081AAE58
_081AAE58: @ jump table
.4byte _081AAE6C @ case 0
.4byte _081AAE88 @ case 1
.4byte _081AAEAC @ case 2
.4byte _081AAEE4 @ case 3
.4byte _081AAF18 @ case 4
_081AAE6C:
bl reset_temp_tile_data_buffers
ldr r1, _081AAE84
movs r0, #0
str r0, [sp]
movs r0, #2
movs r2, #0
movs r3, #0
bl decompress_and_copy_tile_data_to_vram
b _081AAF1E
.align 2, 0
_081AAE84: .4byte 0x08D9A7CC
_081AAE88:
bl free_temp_tile_data_buffers_if_possible
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081AAF54
ldr r0, _081AAEA4
ldr r4, _081AAEA8
ldr r1, [r4]
adds r1, #4
bl LZDecompressVram
ldr r1, [r4]
b _081AAF22
.align 2, 0
_081AAEA4: .4byte 0x08D9AA84
_081AAEA8: .4byte 0x0203CB20
_081AAEAC:
bl IsWallysBag
lsls r0, r0, #0x18
cmp r0, #0
bne _081AAED4
ldr r0, _081AAECC
ldr r0, [r0]
ldrb r0, [r0, #8]
cmp r0, #0
beq _081AAED4
ldr r0, _081AAED0
movs r1, #0
movs r2, #0x40
bl LoadCompressedPalette
b _081AAF1E
.align 2, 0
_081AAECC: .4byte 0x03005AF0
_081AAED0: .4byte 0x08D9A780
_081AAED4:
ldr r0, _081AAEE0
movs r1, #0
movs r2, #0x40
bl LoadCompressedPalette
b _081AAF1E
.align 2, 0
_081AAEE0: .4byte 0x08D9A734
_081AAEE4:
bl IsWallysBag
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081AAEFA
ldr r0, _081AAF04
ldr r0, [r0]
ldrb r0, [r0, #8]
cmp r0, #0
bne _081AAF0C
_081AAEFA:
ldr r0, _081AAF08
bl LoadCompressedSpriteSheet
b _081AAF1E
.align 2, 0
_081AAF04: .4byte 0x03005AF0
_081AAF08: .4byte 0x0855A664
_081AAF0C:
ldr r0, _081AAF14
bl LoadCompressedSpriteSheet
b _081AAF1E
.align 2, 0
_081AAF14: .4byte 0x0855A66C
_081AAF18:
ldr r0, _081AAF30
bl LoadCompressedSpritePalette
_081AAF1E:
ldr r0, _081AAF34
ldr r1, [r0]
_081AAF22:
ldr r0, _081AAF38
adds r1, r1, r0
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _081AAF54
.align 2, 0
_081AAF30: .4byte 0x0855A674
_081AAF34: .4byte 0x0203CB20
_081AAF38: .4byte 0x00000834
_081AAF3C:
bl LoadListMenuArrowsGfx
ldr r0, [r4]
ldr r1, _081AAF50
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
movs r0, #1
b _081AAF56
.align 2, 0
_081AAF50: .4byte 0x00000834
_081AAF54:
movs r0, #0
_081AAF56:
add sp, #4
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end LoadBagMenu_Graphics
thumb_func_start sub_081AAF60
sub_081AAF60: @ 0x081AAF60
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xa
bne _081AAF74
ldr r0, _081AAF70
b _081AAF76
.align 2, 0
_081AAF70: .4byte 0x081ADBA5
_081AAF74:
ldr r0, _081AAF84
_081AAF76:
movs r1, #0
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
_081AAF84: .4byte 0x081ABAB5
thumb_func_end sub_081AAF60
thumb_func_start AllocateBagItemListBuffers
AllocateBagItemListBuffers: @ 0x081AAF88
push {r4, lr}
ldr r4, _081AAFA8
movs r0, #0x82
lsls r0, r0, #2
bl Alloc
str r0, [r4]
ldr r4, _081AAFAC
movs r0, #0xc3
lsls r0, r0, #3
bl Alloc
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AAFA8: .4byte 0x0203CB40
_081AAFAC: .4byte 0x0203CB44
thumb_func_end AllocateBagItemListBuffers
thumb_func_start LoadBagItemListBuffers
LoadBagItemListBuffers: @ 0x081AAFB0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
lsls r1, r7, #3
ldr r0, _081AB050
adds r1, r1, r0
mov r8, r1
ldr r0, _081AB054
ldr r2, [r0]
ldr r1, _081AB058
adds r0, r2, r1
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _081AB06C
movs r6, #0
ldr r3, _081AB05C
adds r0, r2, r3
adds r0, r0, r7
ldrb r0, [r0]
subs r0, #1
cmp r6, r0
bge _081AB026
ldr r5, _081AB060
_081AAFE6:
lsls r4, r6, #1
adds r4, r4, r6
lsls r4, r4, #3
ldr r0, [r5]
adds r0, r0, r4
mov r1, r8
ldr r2, [r1]
lsls r1, r6, #2
adds r1, r1, r2
ldrh r1, [r1]
bl GetItemName
ldr r0, _081AB064
ldr r0, [r0]
lsls r1, r6, #3
adds r1, r1, r0
ldr r0, [r5]
adds r0, r0, r4
str r0, [r1]
str r6, [r1, #4]
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldr r0, _081AB054
ldr r0, [r0]
ldr r3, _081AB05C
adds r0, r0, r3
adds r0, r0, r7
ldrb r0, [r0]
subs r0, #1
cmp r6, r0
blt _081AAFE6
_081AB026:
ldr r5, _081AB060
lsls r4, r6, #1
adds r4, r4, r6
lsls r4, r4, #3
ldr r0, [r5]
adds r0, r0, r4
ldr r1, _081AB068
bl StringCopy
ldr r0, _081AB064
ldr r0, [r0]
lsls r1, r6, #3
adds r1, r1, r0
ldr r0, [r5]
adds r0, r0, r4
str r0, [r1]
movs r0, #2
rsbs r0, r0, #0
str r0, [r1, #4]
b _081AB0BA
.align 2, 0
_081AB050: .4byte 0x02039A78
_081AB054: .4byte 0x0203CB20
_081AB058: .4byte 0x0000081B
_081AB05C: .4byte 0x00000829
_081AB060: .4byte 0x0203CB44
_081AB064: .4byte 0x0203CB40
_081AB068: .4byte 0x085C9448
_081AB06C:
movs r6, #0
ldr r4, _081AB0F0
adds r0, r2, r4
adds r0, r0, r7
ldrb r0, [r0]
cmp r6, r0
bhs _081AB0BA
ldr r5, _081AB0F4
_081AB07C:
lsls r4, r6, #1
adds r4, r4, r6
lsls r4, r4, #3
ldr r0, [r5]
adds r0, r0, r4
mov r1, r8
ldr r2, [r1]
lsls r1, r6, #2
adds r1, r1, r2
ldrh r1, [r1]
bl GetItemName
ldr r0, _081AB0F8
ldr r0, [r0]
lsls r1, r6, #3
adds r1, r1, r0
ldr r0, [r5]
adds r0, r0, r4
str r0, [r1]
str r6, [r1, #4]
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldr r0, _081AB0FC
ldr r0, [r0]
ldr r3, _081AB0F0
adds r0, r0, r3
adds r0, r0, r7
ldrb r0, [r0]
cmp r6, r0
blo _081AB07C
_081AB0BA:
ldr r2, _081AB100
adds r1, r2, #0
ldr r0, _081AB104
ldm r0!, {r3, r4, r5}
stm r1!, {r3, r4, r5}
ldm r0!, {r3, r4, r5}
stm r1!, {r3, r4, r5}
ldr r0, _081AB0FC
ldr r1, [r0]
ldr r4, _081AB0F0
adds r0, r1, r4
adds r0, r0, r7
ldrb r0, [r0]
strh r0, [r2, #0xc]
ldr r0, _081AB0F8
ldr r0, [r0]
str r0, [r2]
ldr r5, _081AB108
adds r1, r1, r5
adds r1, r1, r7
ldrb r0, [r1]
strh r0, [r2, #0xe]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AB0F0: .4byte 0x00000829
_081AB0F4: .4byte 0x0203CB44
_081AB0F8: .4byte 0x0203CB40
_081AB0FC: .4byte 0x0203CB20
_081AB100: .4byte 0x03006050
_081AB104: .4byte 0x085DF7D4
_081AB108: .4byte 0x0000082E
thumb_func_end LoadBagItemListBuffers
thumb_func_start GetItemName
GetItemName: @ 0x081AB10C
push {r4, r5, r6, lr}
adds r6, r0, #0
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
ldr r0, _081AB12C
ldrb r0, [r0, #5]
cmp r0, #2
beq _081AB130
cmp r0, #3
beq _081AB190
adds r0, r5, #0
adds r1, r6, #0
bl CopyItemName
b _081AB1AE
.align 2, 0
_081AB12C: .4byte 0x0203CB24
_081AB130:
ldr r4, _081AB164
adds r0, r5, #0
bl ItemIdToBattleMoveId
adds r1, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0xd
ldr r0, _081AB168
adds r1, r1, r0
adds r0, r4, #0
bl StringCopy
movs r0, #0xa9
lsls r0, r0, #1
cmp r5, r0
bls _081AB178
ldr r0, _081AB16C
ldr r2, _081AB170
adds r1, r5, r2
movs r2, #2
movs r3, #1
bl ConvertIntToDecimalStringN
ldr r1, _081AB174
b _081AB1A8
.align 2, 0
_081AB164: .4byte 0x02021C54
_081AB168: .4byte 0x082EACC4
_081AB16C: .4byte 0x02021C40
_081AB170: .4byte 0xFFFFFEAE
_081AB174: .4byte 0x085C9776
_081AB178:
ldr r0, _081AB188
ldr r2, _081AB18C
adds r1, r5, r2
movs r2, #2
movs r3, #2
bl ConvertIntToDecimalStringN
b _081AB1A6
.align 2, 0
_081AB188: .4byte 0x02021C40
_081AB18C: .4byte 0xFFFFFEE0
_081AB190:
ldr r0, _081AB1B4
adds r1, r5, #0
subs r1, #0x84
movs r2, #2
movs r3, #2
bl ConvertIntToDecimalStringN
ldr r1, _081AB1B8
adds r0, r5, #0
bl CopyItemName
_081AB1A6:
ldr r1, _081AB1BC
_081AB1A8:
adds r0, r6, #0
bl StringExpandPlaceholders
_081AB1AE:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AB1B4: .4byte 0x02021C40
_081AB1B8: .4byte 0x02021C54
_081AB1BC: .4byte 0x085C976F
thumb_func_end GetItemName
thumb_func_start BagMenu_MoveCursorCallback
BagMenu_MoveCursorCallback: @ 0x081AB1C0
push {r4, r5, r6, lr}
adds r6, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #1
beq _081AB1D6
movs r0, #5
bl PlaySE
bl ShakeBagVisual
_081AB1D6:
ldr r4, _081AB228
ldr r1, [r4]
ldr r2, _081AB22C
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #0xff
bne _081AB27C
adds r2, #1
adds r0, r1, r2
ldrb r1, [r0]
lsls r1, r1, #0x1a
lsrs r1, r1, #0x1e
movs r0, #1
eors r0, r1
bl RemoveBagItemIconSprite
movs r0, #2
rsbs r0, r0, #0
cmp r6, r0
beq _081AB238
ldr r0, _081AB230
ldrb r0, [r0, #5]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r6, #0x10
lsrs r1, r1, #0x10
bl BagGetItemIdByPocketPosition
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, [r4]
ldr r2, _081AB234
adds r1, r1, r2
ldrb r1, [r1]
lsls r1, r1, #0x1a
lsrs r1, r1, #0x1e
bl AddBagItemIconSprite
b _081AB24A
.align 2, 0
_081AB228: .4byte 0x0203CB20
_081AB22C: .4byte 0x0000081A
_081AB230: .4byte 0x0203CB24
_081AB234: .4byte 0x0000081B
_081AB238:
ldr r0, _081AB284
ldr r1, [r4]
ldr r2, _081AB288
adds r1, r1, r2
ldrb r1, [r1]
lsls r1, r1, #0x1a
lsrs r1, r1, #0x1e
bl AddBagItemIconSprite
_081AB24A:
ldr r5, _081AB28C
ldr r2, [r5]
ldr r4, _081AB288
adds r2, r2, r4
ldrb r3, [r2]
lsls r0, r3, #0x1a
lsrs r0, r0, #0x1e
movs r1, #1
eors r1, r0
lsls r1, r1, #4
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldr r0, [r5]
adds r0, r0, r4
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _081AB27C
adds r0, r6, #0
bl BagMenu_PrintDescription
_081AB27C:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AB284: .4byte 0x0000FFFF
_081AB288: .4byte 0x0000081B
_081AB28C: .4byte 0x0203CB20
thumb_func_end BagMenu_MoveCursorCallback
thumb_func_start PrintItemQuantityPlusGFX
PrintItemQuantityPlusGFX: @ 0x081AB290
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x14
adds r4, r1, #0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
lsls r2, r2, #0x18
lsrs r7, r2, #0x18
movs r0, #2
rsbs r0, r0, #0
cmp r4, r0
bne _081AB2B0
b _081AB3FA
_081AB2B0:
ldr r0, _081AB2D0
ldr r0, [r0]
ldr r1, _081AB2D4
adds r0, r0, r1
ldrb r1, [r0]
cmp r1, #0xff
beq _081AB2E0
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
cmp r1, r0
bne _081AB2D8
adds r0, r7, #0
movs r1, #2
bl BagMenu_PrintCursor
b _081AB2E0
.align 2, 0
_081AB2D0: .4byte 0x0203CB20
_081AB2D4: .4byte 0x0000081A
_081AB2D8:
adds r0, r7, #0
movs r1, #0xff
bl BagMenu_PrintCursor
_081AB2E0:
ldr r5, _081AB368
ldrb r0, [r5, #5]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r1, r4, #0
bl BagGetItemIdByPocketPosition
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldrb r0, [r5, #5]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r1, r4, #0
bl BagGetQuantityByPocketPosition
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
mov sb, r4
ldr r1, _081AB36C
adds r0, r6, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #7
bhi _081AB32E
ldr r1, _081AB370
subs r3, r7, #2
lsls r3, r3, #0x10
lsrs r3, r3, #0x10
movs r0, #0x10
str r0, [sp]
str r0, [sp, #4]
mov r0, r8
movs r2, #8
bl BlitBitmapToWindow
_081AB32E:
ldrb r0, [r5, #5]
cmp r0, #3
bne _081AB380
ldr r0, _081AB374
adds r1, r4, #0
movs r2, #1
movs r3, #3
bl ConvertIntToDecimalStringN
ldr r4, _081AB378
ldr r1, _081AB37C
adds r0, r4, #0
bl StringExpandPlaceholders
str r7, [sp]
movs r1, #0
str r1, [sp, #4]
str r1, [sp, #8]
movs r0, #0xff
str r0, [sp, #0xc]
str r1, [sp, #0x10]
mov r0, r8
movs r1, #1
adds r2, r4, #0
movs r3, #0x58
bl BagMenu_Print
b _081AB3FA
.align 2, 0
_081AB368: .4byte 0x0203CB24
_081AB36C: .4byte 0xFFFFFEAD
_081AB370: .4byte 0x085DF99C
_081AB374: .4byte 0x02021C40
_081AB378: .4byte 0x02021C7C
_081AB37C: .4byte 0x085C943C
_081AB380:
cmp r0, #4
beq _081AB3D0
adds r0, r6, #0
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _081AB3D0
ldr r0, _081AB3C4
mov r1, sb
movs r2, #1
movs r3, #2
bl ConvertIntToDecimalStringN
ldr r4, _081AB3C8
ldr r1, _081AB3CC
adds r0, r4, #0
bl StringExpandPlaceholders
str r7, [sp]
str r5, [sp, #4]
str r5, [sp, #8]
movs r0, #0xff
str r0, [sp, #0xc]
str r5, [sp, #0x10]
mov r0, r8
movs r1, #1
adds r2, r4, #0
movs r3, #0x60
bl BagMenu_Print
b _081AB3FA
.align 2, 0
_081AB3C4: .4byte 0x02021C40
_081AB3C8: .4byte 0x02021C7C
_081AB3CC: .4byte 0x085C943C
_081AB3D0:
ldr r0, _081AB408
ldr r0, [r0]
ldr r1, _081AB40C
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, #0
beq _081AB3FA
cmp r0, r6
bne _081AB3FA
ldr r1, _081AB410
subs r3, r7, #1
lsls r3, r3, #0x10
lsrs r3, r3, #0x10
movs r0, #0x18
str r0, [sp]
movs r0, #0x10
str r0, [sp, #4]
mov r0, r8
movs r2, #0x60
bl BlitBitmapToWindow
_081AB3FA:
add sp, #0x14
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AB408: .4byte 0x03005AEC
_081AB40C: .4byte 0x00000496
_081AB410: .4byte 0x085DF8DC
thumb_func_end PrintItemQuantityPlusGFX
thumb_func_start BagMenu_PrintDescription
BagMenu_PrintDescription: @ 0x081AB414
push {r4, lr}
sub sp, #0x14
adds r1, r0, #0
movs r0, #2
rsbs r0, r0, #0
cmp r1, r0
beq _081AB444
ldr r0, _081AB440
ldrb r0, [r0, #5]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
bl BagGetItemIdByPocketPosition
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl ItemId_GetHoldEffect
adds r4, r0, #0
b _081AB460
.align 2, 0
_081AB440: .4byte 0x0203CB24
_081AB444:
ldr r0, _081AB48C
ldr r2, _081AB490
ldr r1, _081AB494
ldrb r1, [r1, #4]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl StringCopy
ldr r4, _081AB498
ldr r1, _081AB49C
adds r0, r4, #0
bl StringExpandPlaceholders
_081AB460:
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
movs r0, #1
movs r1, #1
adds r2, r4, #0
movs r3, #0
bl BagMenu_Print
add sp, #0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AB48C: .4byte 0x02021C40
_081AB490: .4byte 0x085C96F8
_081AB494: .4byte 0x0203CB24
_081AB498: .4byte 0x02021C7C
_081AB49C: .4byte 0x085C9738
thumb_func_end BagMenu_PrintDescription
thumb_func_start sub_081AB4A0
sub_081AB4A0: @ 0x081AB4A0
push {lr}
sub sp, #0x20
adds r2, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r2, r2, r1
add r0, sp, #0x14
adds r1, r2, #0
movs r2, #9
bl StringCopyN
add r1, sp, #0x14
movs r0, #0xff
strb r0, [r1, #8]
movs r0, #2
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
movs r0, #1
str r0, [sp, #0x10]
movs r0, #2
movs r1, #1
add r2, sp, #0x14
movs r3, #0
bl BagMenu_Print
add sp, #0x20
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_081AB4A0
thumb_func_start BagMenu_PrintCursor_
BagMenu_PrintCursor_: @ 0x081AB4E8
push {r4, lr}
adds r4, r1, #0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
bl ListMenuGetYCoordForPrintingArrowCursor
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r1, r4, #0
bl BagMenu_PrintCursor
pop {r4}
pop {r0}
bx r0
thumb_func_end BagMenu_PrintCursor_
thumb_func_start BagMenu_PrintCursor
BagMenu_PrintCursor: @ 0x081AB508
push {r4, r5, lr}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0xff
bne _081AB544
movs r0, #1
movs r1, #0
bl GetMenuCursorDimensionByFont
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
movs r0, #1
movs r1, #1
bl GetMenuCursorDimensionByFont
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r4, [sp]
str r0, [sp, #4]
movs r0, #0
movs r1, #0
movs r2, #0
adds r3, r5, #0
bl FillWindowPixelRect
b _081AB55A
_081AB544:
ldr r2, _081AB564
str r5, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r1, [sp, #0x10]
movs r1, #1
movs r3, #0
bl BagMenu_Print
_081AB55A:
add sp, #0x14
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081AB564: .4byte 0x085C9421
thumb_func_end BagMenu_PrintCursor
thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe
bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 0x081AB568
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _081AB5C0
ldr r4, [r5]
ldr r1, _081AB5C4
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, #0xff
bne _081AB5B6
ldr r2, _081AB5C8
ldrb r3, [r2, #5]
ldr r6, _081AB5CC
adds r0, r4, r6
adds r0, r0, r3
ldrb r1, [r0]
adds r6, #5
adds r0, r4, r6
adds r0, r0, r3
ldrb r0, [r0]
subs r1, r1, r0
str r1, [sp]
movs r0, #0x6e
str r0, [sp, #4]
str r0, [sp, #8]
ldrb r0, [r2, #5]
lsls r0, r0, #1
adds r2, #0x12
adds r0, r0, r2
str r0, [sp, #0xc]
movs r0, #2
movs r1, #0xac
movs r2, #0xc
movs r3, #0x94
bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r5]
ldr r2, _081AB5C4
adds r1, r1, r2
strb r0, [r1]
_081AB5B6:
add sp, #0x10
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AB5C0: .4byte 0x0203CB20
_081AB5C4: .4byte 0x0000081E
_081AB5C8: .4byte 0x0203CB24
_081AB5CC: .4byte 0x00000829
thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe
thumb_func_start sub_081AB5D0
sub_081AB5D0: @ 0x081AB5D0
push {r4, lr}
ldr r4, _081AB5F8
ldr r0, [r4]
ldr r2, _081AB5FC
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0xff
beq _081AB5EE
bl RemoveScrollIndicatorArrowPair
ldr r0, [r4]
ldr r1, _081AB5FC
adds r0, r0, r1
movs r1, #0xff
strb r1, [r0]
_081AB5EE:
bl sub_081AB648
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AB5F8: .4byte 0x0203CB20
_081AB5FC: .4byte 0x0000081E
thumb_func_end sub_081AB5D0
thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe
bag_menu_add_list_scroll_arrow_indicators_maybe: @ 0x081AB600
push {r4, lr}
ldr r4, _081AB634
ldr r2, [r4]
ldr r1, _081AB638
adds r0, r2, r1
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
cmp r0, #1
beq _081AB62E
ldr r1, _081AB63C
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #0xff
bne _081AB62E
ldr r0, _081AB640
ldr r1, _081AB644
bl AddScrollIndicatorArrowPair
ldr r1, [r4]
ldr r2, _081AB63C
adds r1, r1, r2
strb r0, [r1]
_081AB62E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AB634: .4byte 0x0203CB20
_081AB638: .4byte 0x0000081B
_081AB63C: .4byte 0x0000081F
_081AB640: .4byte 0x085DF8CC
_081AB644: .4byte 0x0203CB2A
thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe
thumb_func_start sub_081AB648
sub_081AB648: @ 0x081AB648
push {r4, lr}
ldr r4, _081AB66C
ldr r0, [r4]
ldr r2, _081AB670
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0xff
beq _081AB666
bl RemoveScrollIndicatorArrowPair
ldr r0, [r4]
ldr r1, _081AB670
adds r0, r0, r1
movs r1, #0xff
strb r1, [r0]
_081AB666:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AB66C: .4byte 0x0203CB20
_081AB670: .4byte 0x0000081F
thumb_func_end sub_081AB648
thumb_func_start FreeBagItemListBuffers
FreeBagItemListBuffers: @ 0x081AB674
push {lr}
ldr r0, _081AB698
ldr r0, [r0]
bl Free
ldr r0, _081AB69C
ldr r0, [r0]
bl Free
bl FreeAllWindowBuffers
ldr r0, _081AB6A0
ldr r0, [r0]
bl Free
pop {r0}
bx r0
.align 2, 0
_081AB698: .4byte 0x0203CB44
_081AB69C: .4byte 0x0203CB40
_081AB6A0: .4byte 0x0203CB20
thumb_func_end FreeBagItemListBuffers
thumb_func_start unknown_ItemMenu_Confirm
unknown_ItemMenu_Confirm: @ 0x081AB6A4
push {r4, lr}
sub sp, #4
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r1, _081AB6D4
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _081AB6D8
str r1, [r0]
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AB6D4: .4byte 0x03005B60
_081AB6D8: .4byte 0x081AB6DD
thumb_func_end unknown_ItemMenu_Confirm
thumb_func_start TaskCloseBagMenu_2
TaskCloseBagMenu_2: @ 0x081AB6DC
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
ldr r1, _081AB720
adds r2, r0, r1
ldr r0, _081AB724
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _081AB74C
ldrb r0, [r2]
ldr r4, _081AB728
ldrb r2, [r4, #5]
lsls r2, r2, #1
adds r1, r4, #0
adds r1, #0x12
adds r1, r2, r1
adds r3, r4, #0
adds r3, #8
adds r2, r2, r3
bl DestroyListMenuTask
ldr r0, _081AB72C
ldr r0, [r0]
ldr r0, [r0]
cmp r0, #0
beq _081AB730
bl SetMainCallback2
b _081AB736
.align 2, 0
_081AB720: .4byte 0x03005B68
_081AB724: .4byte 0x02037C74
_081AB728: .4byte 0x0203CB24
_081AB72C: .4byte 0x0203CB20
_081AB730:
ldr r0, [r4]
bl SetMainCallback2
_081AB736:
bl sub_081AB5D0
bl ResetSpriteData
bl FreeAllSpritePalettes
bl FreeBagItemListBuffers
adds r0, r5, #0
bl DestroyTask
_081AB74C:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end TaskCloseBagMenu_2
thumb_func_start sub_081AB754
sub_081AB754: @ 0x081AB754
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r1, r5, #3
ldr r0, _081AB770
adds r4, r1, r0
cmp r5, #3
bgt _081AB774
cmp r5, #2
blt _081AB774
adds r0, r4, #0
bl SortBerriesOrTMHMs
b _081AB77A
.align 2, 0
_081AB770: .4byte 0x02039A78
_081AB774:
adds r0, r4, #0
bl CompactItemsInBagPocket
_081AB77A:
ldr r0, _081AB7F4
ldr r1, [r0]
ldr r6, _081AB7F8
adds r1, r1, r6
adds r1, r1, r5
movs r2, #0
strb r2, [r1]
adds r3, r0, #0
ldrb r0, [r4, #4]
cmp r2, r0
bhs _081AB7BE
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _081AB7BE
adds r7, r3, #0
_081AB79A:
ldr r0, [r7]
adds r0, r0, r6
adds r0, r0, r5
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldrb r1, [r4, #4]
cmp r2, r1
bhs _081AB7BE
ldr r0, [r4]
lsls r1, r2, #2
adds r1, r1, r0
ldrh r0, [r1]
cmp r0, #0
bne _081AB79A
_081AB7BE:
ldr r2, [r3]
ldr r1, _081AB7FC
adds r0, r2, r1
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _081AB7DA
ldr r0, _081AB7F8
adds r1, r2, r0
adds r1, r1, r5
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_081AB7DA:
ldr r1, [r3]
ldr r2, _081AB7F8
adds r0, r1, r2
adds r0, r0, r5
ldrb r2, [r0]
cmp r2, #8
bls _081AB804
ldr r3, _081AB800
adds r0, r1, r3
adds r0, r0, r5
movs r1, #8
strb r1, [r0]
b _081AB80C
.align 2, 0
_081AB7F4: .4byte 0x0203CB20
_081AB7F8: .4byte 0x00000829
_081AB7FC: .4byte 0x0000081B
_081AB800: .4byte 0x0000082E
_081AB804:
ldr r3, _081AB814
adds r0, r1, r3
adds r0, r0, r5
strb r2, [r0]
_081AB80C:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AB814: .4byte 0x0000082E
thumb_func_end sub_081AB754
thumb_func_start sub_081AB818
sub_081AB818: @ 0x081AB818
push {r4, lr}
movs r4, #0
_081AB81C:
adds r0, r4, #0
bl sub_081AB754
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #4
bls _081AB81C
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_081AB818
thumb_func_start SetInitialScrollAndCursorPositions
SetInitialScrollAndCursorPositions: @ 0x081AB834
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #1
ldr r2, _081AB864
adds r4, r1, r2
subs r2, #0xa
adds r1, r1, r2
ldr r2, _081AB868
ldr r3, [r2]
ldr r5, _081AB86C
adds r2, r3, r5
adds r2, r2, r0
ldrb r2, [r2]
subs r5, #5
adds r3, r3, r5
adds r3, r3, r0
ldrb r3, [r3]
adds r0, r4, #0
bl sub_08122268
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081AB864: .4byte 0x0203CB36
_081AB868: .4byte 0x0203CB20
_081AB86C: .4byte 0x0000082E
thumb_func_end SetInitialScrollAndCursorPositions
thumb_func_start SetPocketListPositions
SetPocketListPositions: @ 0x081AB870
push {r4, lr}
movs r4, #0
_081AB874:
adds r0, r4, #0
bl SetInitialScrollAndCursorPositions
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #4
bls _081AB874
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end SetPocketListPositions
thumb_func_start sub_081AB88C
sub_081AB88C: @ 0x081AB88C
push {r4, r5, r6, r7, lr}
sub sp, #4
movs r5, #0
ldr r6, _081AB8CC
adds r7, r6, #0
subs r7, #0xa
_081AB898:
lsls r1, r5, #1
adds r0, r1, r6
adds r1, r1, r7
ldr r2, _081AB8D0
ldr r3, [r2]
ldr r4, _081AB8D4
adds r2, r3, r4
adds r2, r2, r5
ldrb r2, [r2]
subs r4, #5
adds r3, r3, r4
adds r3, r3, r5
ldrb r3, [r3]
movs r4, #8
str r4, [sp]
bl sub_081222A4
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #4
bls _081AB898
add sp, #4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AB8CC: .4byte 0x0203CB36
_081AB8D0: .4byte 0x0203CB20
_081AB8D4: .4byte 0x0000082E
thumb_func_end sub_081AB88C
thumb_func_start GetItemListPosition
GetItemListPosition: @ 0x081AB8D8
lsls r0, r0, #0x18
ldr r1, _081AB8F4
lsrs r0, r0, #0x17
adds r2, r1, #0
adds r2, #0x12
adds r2, r0, r2
adds r1, #8
adds r0, r0, r1
ldrb r0, [r0]
ldrb r2, [r2]
adds r0, r0, r2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bx lr
.align 2, 0
_081AB8F4: .4byte 0x0203CB24
thumb_func_end GetItemListPosition
thumb_func_start DisplayItemMessage
DisplayItemMessage: @ 0x081AB8F8
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
sub sp, #0x10
adds r5, r0, #0
adds r6, r1, #0
mov r8, r2
mov sb, r3
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
ldr r0, _081AB964
adds r4, r4, r0
movs r0, #4
bl AddItemMessageWindow
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r4, #0x14]
movs r1, #0x11
bl FillWindowPixelBuffer
bl GetPlayerTextSpeedDelay
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldrb r1, [r4, #0x14]
str r6, [sp]
str r0, [sp, #4]
mov r0, r8
str r0, [sp, #8]
mov r0, sb
str r0, [sp, #0xc]
adds r0, r5, #0
movs r2, #0xa
movs r3, #0xd
bl DisplayMessageAndContinueTask
movs r0, #1
bl schedule_bg_copy_tilemap_to_vram
add sp, #0x10
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AB964: .4byte 0x03005B68
thumb_func_end DisplayItemMessage
thumb_func_start BagMenu_InitListsMenu
BagMenu_InitListsMenu: @ 0x081AB968
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r5, r6, #2
adds r5, r5, r6
lsls r5, r5, #3
ldr r0, _081AB9DC
adds r5, r5, r0
ldr r7, _081AB9E0
ldrb r4, [r7, #5]
lsls r4, r4, #1
movs r0, #0x12
adds r0, r0, r7
mov r8, r0
add r8, r4
adds r0, r7, #0
adds r0, #8
adds r4, r4, r0
movs r0, #4
bl bag_menu_RemoveBagItem_message_window
ldrb r0, [r5]
mov r1, r8
adds r2, r4, #0
bl DestroyListMenuTask
ldrb r0, [r7, #5]
bl sub_081AB754
ldrb r0, [r7, #5]
bl SetInitialScrollAndCursorPositions
ldrb r0, [r7, #5]
bl LoadBagItemListBuffers
ldr r0, _081AB9E4
mov r2, r8
ldrh r1, [r2]
ldrh r2, [r4]
bl ListMenuInit
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r5]
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r6, #0
bl set_callback3_to_bag
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AB9DC: .4byte 0x03005B68
_081AB9E0: .4byte 0x0203CB24
_081AB9E4: .4byte 0x03006050
thumb_func_end BagMenu_InitListsMenu
thumb_func_start PrintItemDepositAmount
PrintItemDepositAmount: @ 0x081AB9E8
push {r4, r5, r6, lr}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _081ABA00
ldrb r0, [r0, #5]
cmp r0, #3
bne _081ABA04
movs r6, #4
movs r3, #3
b _081ABA08
.align 2, 0
_081ABA00: .4byte 0x0203CB24
_081ABA04:
movs r6, #8
movs r3, #2
_081ABA08:
ldr r0, _081ABA44
movs r1, #1
movs r2, #2
bl ConvertIntToDecimalStringN
ldr r4, _081ABA48
ldr r1, _081ABA4C
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r5, #0
bl BagMenu_AddWindow
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r3, r6, #0
movs r1, #2
str r1, [sp]
movs r1, #0
str r1, [sp, #4]
str r1, [sp, #8]
movs r1, #1
adds r2, r4, #0
bl AddTextPrinterParameterized
add sp, #0xc
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081ABA44: .4byte 0x02021C40
_081ABA48: .4byte 0x02021C7C
_081ABA4C: .4byte 0x085C943C
thumb_func_end PrintItemDepositAmount
thumb_func_start sub_081ABA50
sub_081ABA50: @ 0x081ABA50
push {r4, r5, r6, lr}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldr r0, _081ABA6C
ldrb r0, [r0, #5]
cmp r0, #3
bne _081ABA70
movs r5, #4
movs r3, #3
b _081ABA74
.align 2, 0
_081ABA6C: .4byte 0x0203CB24
_081ABA70:
movs r5, #8
movs r3, #2
_081ABA74:
ldr r0, _081ABAA8
lsls r1, r1, #0x10
asrs r1, r1, #0x10
movs r2, #2
bl ConvertIntToDecimalStringN
ldr r4, _081ABAAC
ldr r1, _081ABAB0
adds r0, r4, #0
bl StringExpandPlaceholders
adds r3, r5, #0
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
adds r0, r6, #0
movs r1, #1
adds r2, r4, #0
bl AddTextPrinterParameterized
add sp, #0xc
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081ABAA8: .4byte 0x02021C40
_081ABAAC: .4byte 0x02021C7C
_081ABAB0: .4byte 0x085C943C
thumb_func_end sub_081ABA50
thumb_func_start Task_BagMenu
Task_BagMenu: @ 0x081ABAB4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
lsls r0, r0, #2
add r0, sb
lsls r0, r0, #3
str r0, [sp]
ldr r1, _081ABB34
adds r6, r0, r1
ldr r5, _081ABB38
ldrb r0, [r5, #5]
lsls r0, r0, #1
adds r1, r5, #0
adds r1, #0x12
adds r7, r0, r1
subs r1, #0xa
adds r0, r0, r1
mov r8, r0
bl sub_081221F8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081ABAF2
b _081ABC3E
_081ABAF2:
ldr r0, _081ABB3C
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _081ABB00
b _081ABC3E
_081ABB00:
bl GetSwitchBagPocketDirection
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081ABB44
cmp r0, #2
beq _081ABB4C
ldr r0, _081ABB40
ldrh r1, [r0, #0x2e]
movs r0, #4
ands r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
cmp r0, #0
beq _081ABB9C
bl sub_081AC084
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081ABB30
b _081ABC3E
_081ABB30:
b _081ABB58
.align 2, 0
_081ABB34: .4byte 0x03005B68
_081ABB38: .4byte 0x0203CB24
_081ABB3C: .4byte 0x02037C74
_081ABB40: .4byte 0x03002360
_081ABB44:
movs r1, #1
rsbs r1, r1, #0
mov r0, sb
b _081ABB50
_081ABB4C:
mov r0, sb
movs r1, #1
_081ABB50:
movs r2, #0
bl SwitchBagPocket
b _081ABC3E
_081ABB58:
ldrb r0, [r6]
adds r1, r7, #0
mov r2, r8
bl ListMenuGetScrollAndRow
ldrh r2, [r7]
mov r3, r8
ldrh r0, [r3]
adds r2, r2, r0
ldr r0, _081ABB90
ldr r0, [r0]
ldr r1, _081ABB94
ldr r3, _081ABB98
adds r0, r0, r3
ldrb r1, [r1, #5]
adds r0, r0, r1
ldrb r0, [r0]
subs r0, #1
cmp r2, r0
beq _081ABC3E
movs r0, #5
bl PlaySE
mov r0, sb
bl BagMenu_SwapItems
b _081ABC3E
.align 2, 0
_081ABB90: .4byte 0x0203CB20
_081ABB94: .4byte 0x0203CB24
_081ABB98: .4byte 0x00000829
_081ABB9C:
ldrb r0, [r6]
bl ListMenu_ProcessInput
adds r4, r0, #0
ldrb r0, [r6]
adds r1, r7, #0
mov r2, r8
bl ListMenuGetScrollAndRow
movs r0, #2
rsbs r0, r0, #0
cmp r4, r0
beq _081ABBBE
adds r0, #1
cmp r4, r0
bne _081ABBF4
b _081ABC3E
_081ABBBE:
ldrb r0, [r5, #4]
cmp r0, #5
bne _081ABBCC
movs r0, #0x20
bl PlaySE
b _081ABC3E
_081ABBCC:
movs r0, #5
bl PlaySE
ldr r0, _081ABBE8
mov r1, sl
strh r1, [r0]
ldr r0, _081ABBEC
subs r0, #8
ldr r3, [sp]
adds r0, r3, r0
ldr r1, _081ABBF0
str r1, [r0]
b _081ABC3E
.align 2, 0
_081ABBE8: .4byte 0x0203CB48
_081ABBEC: .4byte 0x03005B68
_081ABBF0: .4byte 0x081AB6A5
_081ABBF4:
movs r0, #5
bl PlaySE
bl sub_081AB5D0
ldrb r0, [r6]
movs r1, #2
bl BagMenu_PrintCursor_
strh r4, [r6, #2]
ldrb r0, [r5, #5]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r1, r4, #0
bl BagGetQuantityByPocketPosition
strh r0, [r6, #4]
ldrb r0, [r5, #5]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r1, r4, #0
bl BagGetItemIdByPocketPosition
ldr r1, _081ABC50
strh r0, [r1]
ldr r1, _081ABC54
ldrb r0, [r5, #4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
mov r0, sb
bl _call_via_r1
_081ABC3E:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081ABC50: .4byte 0x0203CB48
_081ABC54: .4byte 0x085DF88C
thumb_func_end Task_BagMenu
thumb_func_start set_callback3_to_bag
set_callback3_to_bag: @ 0x081ABC58
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
bl bag_menu_add_list_scroll_arrow_indicators_maybe
movs r0, #3
bl ClearWindowTilemap
movs r0, #4
bl ClearWindowTilemap
movs r0, #1
bl PutWindowTilemap
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _081ABC94
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, _081ABC98
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ABC94: .4byte 0x03005B60
_081ABC98: .4byte 0x081ABAB5
thumb_func_end set_callback3_to_bag
thumb_func_start GetSwitchBagPocketDirection
GetSwitchBagPocketDirection: @ 0x081ABC9C
push {lr}
ldr r0, _081ABCD4
ldr r0, [r0]
ldr r1, _081ABCD8
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _081ABCF6
bl GetLRKeysState
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _081ABCDC
ldrh r1, [r0, #0x2e]
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _081ABCC8
cmp r2, #1
bne _081ABCE0
_081ABCC8:
movs r0, #5
bl PlaySE
movs r0, #1
b _081ABCF8
.align 2, 0
_081ABCD4: .4byte 0x0203CB20
_081ABCD8: .4byte 0x0000081B
_081ABCDC: .4byte 0x03002360
_081ABCE0:
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _081ABCEC
cmp r2, #2
bne _081ABCF6
_081ABCEC:
movs r0, #5
bl PlaySE
movs r0, #2
b _081ABCF8
_081ABCF6:
movs r0, #0
_081ABCF8:
pop {r1}
bx r1
thumb_func_end GetSwitchBagPocketDirection
thumb_func_start ChangeBagPocketId
ChangeBagPocketId: @ 0x081ABCFC
push {r4, lr}
adds r2, r0, #0
lsls r1, r1, #0x18
lsrs r4, r1, #0x18
asrs r1, r1, #0x18
cmp r1, #1
bne _081ABD14
ldrb r0, [r2]
cmp r0, #4
bne _081ABD14
movs r0, #0
b _081ABD2C
_081ABD14:
lsls r0, r4, #0x18
asrs r0, r0, #0x18
movs r1, #1
rsbs r1, r1, #0
ldrb r3, [r2]
cmp r0, r1
bne _081ABD2A
cmp r3, #0
bne _081ABD2A
movs r0, #4
b _081ABD2C
_081ABD2A:
adds r0, r3, r4
_081ABD2C:
strb r0, [r2]
pop {r4}
pop {r0}
bx r0
thumb_func_end ChangeBagPocketId
thumb_func_start SwitchBagPocket
SwitchBagPocket: @ 0x081ABD34
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
lsls r2, r2, #0x10
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
ldr r1, _081ABDFC
adds r4, r0, r1
movs r0, #0
strh r0, [r4, #0x1a]
strh r0, [r4, #0x18]
strh r5, [r4, #0x16]
cmp r2, #0
bne _081ABDB6
movs r0, #0
bl ClearWindowTilemap
movs r0, #1
bl ClearWindowTilemap
ldrb r0, [r4]
ldr r3, _081ABE00
ldrb r2, [r3, #5]
lsls r2, r2, #1
adds r1, r3, #0
adds r1, #0x12
adds r1, r2, r1
adds r3, #8
adds r2, r2, r3
bl DestroyListMenuTask
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
ldr r3, _081ABE04
ldr r0, _081ABE08
ldr r2, [r0]
ldr r1, _081ABE0C
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, r1, #0x1a
lsrs r1, r1, #0x1e
movs r0, #1
eors r0, r1
adds r2, r2, r0
ldr r0, _081ABE10
adds r2, r2, r0
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
bl sub_081AB5D0
_081ABDB6:
ldr r6, _081ABE00
ldrb r1, [r6, #5]
add r0, sp, #8
strb r1, [r0]
lsls r1, r5, #0x18
asrs r1, r1, #0x18
bl ChangeBagPocketId
lsls r0, r5, #0x10
asrs r1, r0, #0x10
mov r8, r0
cmp r1, #1
bne _081ABE1C
ldr r4, _081ABE14
ldrb r0, [r6, #5]
lsls r1, r0, #3
adds r1, r1, r0
ldr r5, _081ABE18
adds r1, r1, r5
adds r0, r4, #0
bl StringCopy
add r0, sp, #8
ldrb r0, [r0]
lsls r1, r0, #3
adds r1, r1, r0
adds r1, r1, r5
adds r0, r4, #0
bl StringAppend
adds r0, r4, #0
movs r1, #0
bl sub_081AB4A0
b _081ABE46
.align 2, 0
_081ABDFC: .4byte 0x03005B68
_081ABE00: .4byte 0x0203CB24
_081ABE04: .4byte 0x020205AC
_081ABE08: .4byte 0x0203CB20
_081ABE0C: .4byte 0x0000081B
_081ABE10: .4byte 0x00000806
_081ABE14: .4byte 0x02021C7C
_081ABE18: .4byte 0x085C9742
_081ABE1C:
ldr r4, _081ABEAC
add r0, sp, #8
ldrb r0, [r0]
lsls r1, r0, #3
adds r1, r1, r0
ldr r5, _081ABEB0
adds r1, r1, r5
adds r0, r4, #0
bl StringCopy
ldrb r0, [r6, #5]
lsls r1, r0, #3
adds r1, r1, r0
adds r1, r1, r5
adds r0, r4, #0
bl StringAppend
adds r0, r4, #0
movs r1, #8
bl sub_081AB4A0
_081ABE46:
ldr r0, _081ABEB4
ldrb r0, [r0, #5]
movs r1, #0
bl BagMenu_DrawPocketIndicatorSquare
add r0, sp, #8
ldrb r0, [r0]
movs r1, #1
bl BagMenu_DrawPocketIndicatorSquare
movs r0, #0xf
str r0, [sp]
movs r0, #0x10
str r0, [sp, #4]
movs r0, #2
movs r1, #0xb
movs r2, #0xe
movs r3, #2
bl FillBgTilemapBufferRect_Palette0
movs r0, #2
bl schedule_bg_copy_tilemap_to_vram
add r0, sp, #8
ldrb r0, [r0]
movs r1, #1
bl SetBagVisualPocketId
movs r0, #1
bl RemoveBagSprite
mov r1, r8
asrs r0, r1, #0x10
bl AddSwitchPocketRotatingBallSprite
ldr r1, _081ABEB8
ldr r2, _081ABEBC
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r2
ldr r2, [r0]
adds r0, r7, #0
bl SetTaskFuncWithFollowupFunc
add sp, #0xc
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081ABEAC: .4byte 0x02021C7C
_081ABEB0: .4byte 0x085C9742
_081ABEB4: .4byte 0x0203CB24
_081ABEB8: .4byte 0x081ABEC1
_081ABEBC: .4byte 0x03005B60
thumb_func_end SwitchBagPocket
thumb_func_start sub_081ABEC0
sub_081ABEC0: @ 0x081ABEC0
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
ldr r1, _081ABEF8
adds r6, r0, r1
bl sub_081221B8
lsls r0, r0, #0x18
cmp r0, #0
bne _081ABF38
bl IsWallysBag
lsls r0, r0, #0x18
cmp r0, #0
bne _081ABF38
bl GetSwitchBagPocketDirection
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081ABEFC
cmp r0, #2
beq _081ABF18
b _081ABF38
.align 2, 0
_081ABEF8: .4byte 0x03005B68
_081ABEFC:
ldr r0, _081ABF14
movs r1, #0x16
ldrsb r1, [r6, r1]
bl ChangeBagPocketId
adds r0, r7, #0
bl SwitchTaskToFollowupFunc
movs r1, #1
rsbs r1, r1, #0
adds r0, r7, #0
b _081ABF2C
.align 2, 0
_081ABF14: .4byte 0x0203CB29
_081ABF18:
ldr r0, _081ABF34
movs r1, #0x16
ldrsb r1, [r6, r1]
bl ChangeBagPocketId
adds r0, r7, #0
bl SwitchTaskToFollowupFunc
adds r0, r7, #0
movs r1, #1
_081ABF2C:
movs r2, #1
bl SwitchBagPocket
b _081ABFF2
.align 2, 0
_081ABF34: .4byte 0x0203CB29
_081ABF38:
movs r1, #0x1a
ldrsh r0, [r6, r1]
cmp r0, #0
beq _081ABF46
cmp r0, #1
beq _081ABFA0
b _081ABFF2
_081ABF46:
ldrb r0, [r6, #0x18]
bl bag_menu_leave_maybe
ldrh r0, [r6, #0x18]
adds r1, r0, #1
strh r1, [r6, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _081ABF8A
movs r2, #0x16
ldrsh r0, [r6, r2]
cmp r0, #1
bne _081ABF78
ldr r0, _081ABF74
lsls r1, r1, #0x10
asrs r1, r1, #0x11
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl sub_081AB4A0
b _081ABF8A
.align 2, 0
_081ABF74: .4byte 0x02021C7C
_081ABF78:
ldr r0, _081ABF9C
lsls r2, r1, #0x10
asrs r2, r2, #0x11
movs r1, #8
subs r1, r1, r2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl sub_081AB4A0
_081ABF8A:
movs r1, #0x18
ldrsh r0, [r6, r1]
cmp r0, #0x10
bne _081ABFF2
ldrh r0, [r6, #0x1a]
adds r0, #1
strh r0, [r6, #0x1a]
b _081ABFF2
.align 2, 0
_081ABF9C: .4byte 0x02021C7C
_081ABFA0:
ldr r4, _081ABFF8
movs r1, #0x16
ldrsb r1, [r6, r1]
adds r0, r4, #0
bl ChangeBagPocketId
subs r5, r4, #5
ldrb r0, [r5, #5]
bl LoadBagItemListBuffers
ldr r0, _081ABFFC
ldrb r2, [r5, #5]
lsls r2, r2, #1
adds r1, r4, #0
adds r1, #0xd
adds r1, r2, r1
ldrh r1, [r1]
adds r4, #3
adds r2, r2, r4
ldrh r2, [r2]
bl ListMenuInit
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r6]
movs r0, #1
bl PutWindowTilemap
movs r0, #2
bl PutWindowTilemap
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
bl bag_menu_add_list_scroll_arrow_indicators_maybe
adds r0, r7, #0
bl SwitchTaskToFollowupFunc
_081ABFF2:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081ABFF8: .4byte 0x0203CB29
_081ABFFC: .4byte 0x03006050
thumb_func_end sub_081ABEC0
thumb_func_start bag_menu_leave_maybe
bag_menu_leave_maybe: @ 0x081AC000
push {lr}
sub sp, #8
adds r3, r0, #0
lsls r3, r3, #0x18
movs r0, #0x80
lsls r0, r0, #0x12
adds r3, r3, r0
lsrs r3, r3, #0x18
movs r0, #0xf
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
movs r0, #2
movs r1, #0x11
movs r2, #0xe
bl FillBgTilemapBufferRect_Palette0
movs r0, #2
bl schedule_bg_copy_tilemap_to_vram
add sp, #8
pop {r0}
bx r0
.align 2, 0
thumb_func_end bag_menu_leave_maybe
thumb_func_start BagMenu_DrawPocketIndicatorSquare
BagMenu_DrawPocketIndicatorSquare: @ 0x081AC030
push {lr}
sub sp, #8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
cmp r1, #0
bne _081AC05C
ldr r1, _081AC058
adds r2, r0, #5
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
movs r0, #1
str r0, [sp]
str r0, [sp, #4]
movs r0, #2
movs r3, #3
bl FillBgTilemapBufferRect_Palette0
b _081AC072
.align 2, 0
_081AC058: .4byte 0x00001017
_081AC05C:
ldr r1, _081AC080
adds r2, r0, #5
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
movs r0, #1
str r0, [sp]
str r0, [sp, #4]
movs r0, #2
movs r3, #3
bl FillBgTilemapBufferRect_Palette0
_081AC072:
movs r0, #2
bl schedule_bg_copy_tilemap_to_vram
add sp, #8
pop {r0}
bx r0
.align 2, 0
_081AC080: .4byte 0x0000102B
thumb_func_end BagMenu_DrawPocketIndicatorSquare
thumb_func_start sub_081AC084
sub_081AC084: @ 0x081AC084
push {lr}
ldr r1, _081AC0A0
ldrb r0, [r1, #4]
cmp r0, #1
bhi _081AC0A4
ldrb r0, [r1, #5]
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bls _081AC0A4
movs r0, #1
b _081AC0A6
.align 2, 0
_081AC0A0: .4byte 0x0203CB24
_081AC0A4:
movs r0, #0
_081AC0A6:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_081AC084
thumb_func_start BagMenu_SwapItems
BagMenu_SwapItems: @ 0x081AC0AC
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r0, #2
adds r4, r4, r0
lsls r4, r4, #3
ldr r0, _081AC164
mov sb, r0
adds r6, r4, r0
ldrb r0, [r6]
movs r1, #0x10
movs r2, #1
bl ListMenuSetUnkIndicatorsStructField
ldr r3, _081AC168
ldrb r0, [r3, #5]
lsls r0, r0, #1
adds r2, r3, #0
adds r2, #0x12
adds r2, r0, r2
adds r1, r3, #0
adds r1, #8
adds r0, r0, r1
ldrh r1, [r0]
ldrh r2, [r2]
adds r1, r1, r2
strh r1, [r6, #2]
ldr r0, _081AC16C
ldr r0, [r0]
ldr r2, _081AC170
adds r0, r0, r2
movs r5, #0
strb r1, [r0]
ldrb r0, [r3, #5]
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldrh r1, [r6, #2]
bl BagGetItemIdByPocketPosition
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _081AC174
bl CopyItemName
ldr r0, _081AC178
mov r8, r0
ldr r1, _081AC17C
bl StringExpandPlaceholders
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
str r5, [sp, #4]
str r5, [sp, #8]
str r5, [sp, #0xc]
str r5, [sp, #0x10]
movs r0, #1
movs r1, #1
mov r2, r8
movs r3, #0
bl BagMenu_Print
ldrb r0, [r6, #2]
bl sub_080D4870
bl sub_081AB648
ldrb r0, [r6]
movs r1, #2
bl BagMenu_PrintCursor_
movs r2, #8
rsbs r2, r2, #0
add sb, r2
add r4, sb
ldr r0, _081AC180
str r0, [r4]
add sp, #0x14
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AC164: .4byte 0x03005B68
_081AC168: .4byte 0x0203CB24
_081AC16C: .4byte 0x0203CB20
_081AC170: .4byte 0x0000081A
_081AC174: .4byte 0x02021C40
_081AC178: .4byte 0x02021C7C
_081AC17C: .4byte 0x085C947F
_081AC180: .4byte 0x081AC185
thumb_func_end BagMenu_SwapItems
thumb_func_start sub_081AC184
sub_081AC184: @ 0x081AC184
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
ldr r1, _081AC1D0
adds r4, r0, r1
bl sub_081221F8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081AC252
ldr r0, _081AC1D4
mov r8, r0
ldrh r1, [r0, #0x2e]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _081AC1DC
movs r0, #5
bl PlaySE
ldrb r0, [r4]
ldr r3, _081AC1D8
ldrb r2, [r3, #5]
lsls r2, r2, #1
adds r1, r3, #0
adds r1, #0x12
adds r1, r2, r1
adds r3, #8
adds r2, r2, r3
bl ListMenuGetScrollAndRow
b _081AC236
.align 2, 0
_081AC1D0: .4byte 0x03005B68
_081AC1D4: .4byte 0x03002360
_081AC1D8: .4byte 0x0203CB24
_081AC1DC:
ldrb r0, [r4]
bl ListMenu_ProcessInput
adds r7, r0, #0
ldrb r0, [r4]
ldr r5, _081AC220
ldrb r2, [r5, #5]
lsls r2, r2, #1
adds r1, r5, #0
adds r1, #0x12
adds r1, r2, r1
adds r4, r5, #0
adds r4, #8
adds r2, r2, r4
bl ListMenuGetScrollAndRow
movs r0, #0
bl sub_080D484C
ldrb r0, [r5, #5]
lsls r0, r0, #1
adds r0, r0, r4
ldrb r0, [r0]
bl sub_080D4870
movs r0, #2
rsbs r0, r0, #0
cmp r7, r0
beq _081AC224
adds r0, #1
cmp r7, r0
bne _081AC246
b _081AC252
.align 2, 0
_081AC220: .4byte 0x0203CB24
_081AC224:
movs r0, #5
bl PlaySE
mov r0, r8
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _081AC23E
_081AC236:
adds r0, r6, #0
bl sub_081AC25C
b _081AC252
_081AC23E:
adds r0, r6, #0
bl sub_081AC354
b _081AC252
_081AC246:
movs r0, #5
bl PlaySE
adds r0, r6, #0
bl sub_081AC25C
_081AC252:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_081AC184
thumb_func_start sub_081AC25C
sub_081AC25C: @ 0x081AC25C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
lsls r0, r3, #2
adds r0, r0, r3
lsls r0, r0, #3
mov sl, r0
ldr r0, _081AC2B0
add r0, sl
mov sb, r0
ldr r5, _081AC2B4
ldrb r6, [r5, #5]
lsls r1, r6, #1
adds r0, r5, #0
adds r0, #0x12
adds r0, r0, r1
mov r8, r0
ldr r2, _081AC2B8
adds r7, r1, r2
ldrh r0, [r7]
mov r1, r8
ldrh r1, [r1]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
mov r0, sb
movs r1, #2
ldrsh r2, [r0, r1]
cmp r2, r4
beq _081AC2A6
subs r0, r4, #1
cmp r2, r0
bne _081AC2BC
_081AC2A6:
adds r0, r3, #0
bl sub_081AC354
b _081AC32A
.align 2, 0
_081AC2B0: .4byte 0x03005B68
_081AC2B4: .4byte 0x0203CB24
_081AC2B8: .4byte 0x0203CB2C
_081AC2BC:
ldr r1, _081AC338
lsls r0, r6, #3
adds r0, r0, r1
ldr r0, [r0]
adds r1, r2, #0
adds r2, r4, #0
bl MoveItemSlotInList
ldr r0, _081AC33C
ldr r0, [r0]
ldr r2, _081AC340
adds r0, r0, r2
movs r1, #0xff
strb r1, [r0]
mov r1, sb
ldrb r0, [r1]
mov r1, r8
adds r2, r7, #0
bl DestroyListMenuTask
mov r2, sb
movs r1, #2
ldrsh r0, [r2, r1]
cmp r0, r4
bge _081AC2FC
ldrb r1, [r5, #5]
lsls r1, r1, #1
ldr r2, _081AC344
adds r1, r1, r2
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_081AC2FC:
ldrb r0, [r5, #5]
bl LoadBagItemListBuffers
ldr r0, _081AC348
mov r2, r8
ldrh r1, [r2]
ldrh r2, [r7]
bl ListMenuInit
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r1, sb
strh r0, [r1]
movs r0, #1
bl sub_080D484C
bl bag_menu_add_list_scroll_arrow_indicators_maybe
ldr r0, _081AC34C
subs r0, #8
add r0, sl
ldr r1, _081AC350
str r1, [r0]
_081AC32A:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AC338: .4byte 0x02039A78
_081AC33C: .4byte 0x0203CB20
_081AC340: .4byte 0x0000081A
_081AC344: .4byte 0x0203CB2C
_081AC348: .4byte 0x03006050
_081AC34C: .4byte 0x03005B68
_081AC350: .4byte 0x081ABAB5
thumb_func_end sub_081AC25C
thumb_func_start sub_081AC354
sub_081AC354: @ 0x081AC354
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
mov sb, r1
ldr r0, _081AC3F0
mov sl, r0
mov r7, sb
add r7, sl
ldr r4, _081AC3F4
ldrb r0, [r4, #5]
lsls r0, r0, #1
adds r1, r4, #0
adds r1, #0x12
adds r6, r0, r1
movs r1, #8
adds r1, r1, r4
mov r8, r1
adds r5, r0, r1
ldr r0, _081AC3F8
ldr r0, [r0]
ldr r1, _081AC3FC
adds r0, r0, r1
movs r1, #0xff
strb r1, [r0]
ldrb r0, [r7]
adds r1, r6, #0
adds r2, r5, #0
bl DestroyListMenuTask
movs r0, #2
ldrsh r2, [r7, r0]
ldrh r0, [r6]
ldrh r1, [r5]
adds r0, r0, r1
cmp r2, r0
bge _081AC3B6
ldrb r1, [r4, #5]
lsls r1, r1, #1
add r1, r8
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_081AC3B6:
ldrb r0, [r4, #5]
bl LoadBagItemListBuffers
ldr r0, _081AC400
ldrh r1, [r6]
ldrh r2, [r5]
bl ListMenuInit
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r7]
movs r0, #1
bl sub_080D484C
bl bag_menu_add_list_scroll_arrow_indicators_maybe
mov r0, sl
subs r0, #8
add r0, sb
ldr r1, _081AC404
str r1, [r0]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AC3F0: .4byte 0x03005B68
_081AC3F4: .4byte 0x0203CB24
_081AC3F8: .4byte 0x0203CB20
_081AC3FC: .4byte 0x0000081A
_081AC400: .4byte 0x03006050
_081AC404: .4byte 0x081ABAB5
thumb_func_end sub_081AC354
thumb_func_start sub_081AC408
sub_081AC408: @ 0x081AC408
push {r4, r5, lr}
sub sp, #0x14
ldr r0, _081AC424
ldrb r0, [r0, #4]
subs r0, #1
cmp r0, #9
bls _081AC418
b _081AC5F0
_081AC418:
lsls r0, r0, #2
ldr r1, _081AC428
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081AC424: .4byte 0x0203CB24
_081AC428: .4byte 0x081AC42C
_081AC42C: @ jump table
.4byte _081AC454 @ case 0
.4byte _081AC5F0 @ case 1
.4byte _081AC5F0 @ case 2
.4byte _081AC5F0 @ case 3
.4byte _081AC4AC @ case 4
.4byte _081AC5F0 @ case 5
.4byte _081AC530 @ case 6
.4byte _081AC590 @ case 7
.4byte _081AC4D0 @ case 8
.4byte _081AC454 @ case 9
_081AC454:
ldr r0, _081AC478
ldrh r0, [r0]
bl ItemId_GetSecondaryId
lsls r0, r0, #0x18
cmp r0, #0
beq _081AC488
ldr r0, _081AC47C
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC480
str r0, [r2]
ldr r0, _081AC484
adds r1, r1, r0
movs r0, #2
b _081AC7D4
.align 2, 0
_081AC478: .4byte 0x0203CB48
_081AC47C: .4byte 0x0203CB20
_081AC480: .4byte 0x085DF87A
_081AC484: .4byte 0x00000828
_081AC488:
ldr r0, _081AC4A0
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC4A4
str r0, [r2]
ldr r0, _081AC4A8
adds r1, r1, r0
movs r0, #1
b _081AC7D4
.align 2, 0
_081AC4A0: .4byte 0x0203CB20
_081AC4A4: .4byte 0x085DF87E
_081AC4A8: .4byte 0x00000828
_081AC4AC:
ldr r0, _081AC4C4
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC4C8
str r0, [r2]
ldr r0, _081AC4CC
adds r1, r1, r0
movs r0, #4
b _081AC7D4
.align 2, 0
_081AC4C4: .4byte 0x0203CB20
_081AC4C8: .4byte 0x085DF87F
_081AC4CC: .4byte 0x00000828
_081AC4D0:
ldr r4, _081AC4FC
ldrh r0, [r4]
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
cmp r0, #0
bne _081AC50C
ldrh r0, [r4]
cmp r0, #0xaf
beq _081AC50C
ldr r0, _081AC500
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC504
str r0, [r2]
ldr r0, _081AC508
adds r1, r1, r0
movs r0, #2
b _081AC7D4
.align 2, 0
_081AC4FC: .4byte 0x0203CB48
_081AC500: .4byte 0x0203CB20
_081AC504: .4byte 0x085DF883
_081AC508: .4byte 0x00000828
_081AC50C:
ldr r0, _081AC524
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC528
str r0, [r2]
ldr r0, _081AC52C
adds r1, r1, r0
movs r0, #1
b _081AC7D4
.align 2, 0
_081AC524: .4byte 0x0203CB20
_081AC528: .4byte 0x085DF87E
_081AC52C: .4byte 0x00000828
_081AC530:
ldr r4, _081AC55C
ldrh r0, [r4]
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
cmp r0, #0
bne _081AC56C
ldrh r0, [r4]
cmp r0, #0xaf
beq _081AC56C
ldr r0, _081AC560
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC564
str r0, [r2]
ldr r0, _081AC568
adds r1, r1, r0
movs r0, #2
b _081AC7D4
.align 2, 0
_081AC55C: .4byte 0x0203CB48
_081AC560: .4byte 0x0203CB20
_081AC564: .4byte 0x085DF885
_081AC568: .4byte 0x00000828
_081AC56C:
ldr r0, _081AC584
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC588
str r0, [r2]
ldr r0, _081AC58C
adds r1, r1, r0
movs r0, #1
b _081AC7D4
.align 2, 0
_081AC584: .4byte 0x0203CB20
_081AC588: .4byte 0x085DF87E
_081AC58C: .4byte 0x00000828
_081AC590:
ldr r4, _081AC5BC
ldrh r0, [r4]
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
cmp r0, #0
bne _081AC5CC
ldrh r0, [r4]
cmp r0, #0xaf
beq _081AC5CC
ldr r0, _081AC5C0
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC5C4
str r0, [r2]
ldr r0, _081AC5C8
adds r1, r1, r0
movs r0, #2
b _081AC7D4
.align 2, 0
_081AC5BC: .4byte 0x0203CB48
_081AC5C0: .4byte 0x0203CB20
_081AC5C4: .4byte 0x085DF887
_081AC5C8: .4byte 0x00000828
_081AC5CC:
ldr r0, _081AC5E4
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC5E8
str r0, [r2]
ldr r0, _081AC5EC
adds r1, r1, r0
movs r0, #1
b _081AC7D4
.align 2, 0
_081AC5E4: .4byte 0x0203CB20
_081AC5E8: .4byte 0x085DF87E
_081AC5EC: .4byte 0x00000828
_081AC5F0:
bl sub_081221B8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081AC604
bl InUnionRoom
cmp r0, #1
bne _081AC668
_081AC604:
ldr r0, _081AC630
ldrb r0, [r0, #5]
cmp r0, #4
beq _081AC61A
ldr r0, _081AC634
ldrh r0, [r0]
bl sub_08122154
lsls r0, r0, #0x18
cmp r0, #0
bne _081AC644
_081AC61A:
ldr r0, _081AC638
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC63C
str r0, [r2]
ldr r0, _081AC640
adds r1, r1, r0
movs r0, #1
b _081AC7D4
.align 2, 0
_081AC630: .4byte 0x0203CB24
_081AC634: .4byte 0x0203CB48
_081AC638: .4byte 0x0203CB20
_081AC63C: .4byte 0x085DF87E
_081AC640: .4byte 0x00000828
_081AC644:
ldr r0, _081AC65C
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC660
str r0, [r2]
ldr r0, _081AC664
adds r1, r1, r0
movs r0, #2
b _081AC7D4
.align 2, 0
_081AC65C: .4byte 0x0203CB20
_081AC660: .4byte 0x085DF87C
_081AC664: .4byte 0x00000828
_081AC668:
ldr r0, _081AC67C
ldrb r0, [r0, #5]
cmp r0, #4
bls _081AC672
b _081AC7D6
_081AC672:
lsls r0, r0, #2
ldr r1, _081AC680
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081AC67C: .4byte 0x0203CB24
_081AC680: .4byte 0x081AC684
_081AC684: @ jump table
.4byte _081AC698 @ case 0
.4byte _081AC778 @ case 1
.4byte _081AC79C @ case 2
.4byte _081AC7C0 @ case 3
.4byte _081AC6F0 @ case 4
_081AC698:
ldr r4, _081AC6DC
ldr r1, [r4]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r3, _081AC6E0
adds r0, r1, r3
str r0, [r2]
ldr r0, _081AC6E4
adds r1, r1, r0
movs r0, #4
strb r0, [r1]
ldr r0, [r4]
adds r0, r0, r3
ldr r1, _081AC6E8
movs r2, #4
bl memcpy
ldr r0, _081AC6EC
ldrh r0, [r0]
bl ItemIsMail
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081AC6CE
b _081AC7D6
_081AC6CE:
ldr r0, [r4]
ldr r1, _081AC6E0
adds r0, r0, r1
movs r1, #6
strb r1, [r0]
b _081AC7D6
.align 2, 0
_081AC6DC: .4byte 0x0203CB20
_081AC6E0: .4byte 0x00000824
_081AC6E4: .4byte 0x00000828
_081AC6E8: .4byte 0x085DF864
_081AC6EC: .4byte 0x0203CB48
_081AC6F0:
ldr r4, _081AC754
ldr r1, [r4]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r5, _081AC758
adds r0, r1, r5
str r0, [r2]
ldr r0, _081AC75C
adds r1, r1, r0
movs r0, #4
strb r0, [r1]
ldr r0, [r4]
adds r0, r0, r5
ldr r1, _081AC760
movs r2, #4
bl memcpy
ldr r0, _081AC764
ldr r0, [r0]
ldr r1, _081AC768
adds r0, r0, r1
ldr r2, _081AC76C
ldrh r0, [r0]
ldrh r1, [r2]
cmp r0, r1
bne _081AC730
ldr r0, [r4]
ldr r1, _081AC770
adds r0, r0, r1
movs r1, #8
strb r1, [r0]
_081AC730:
ldrh r1, [r2]
ldr r0, _081AC774
cmp r1, r0
beq _081AC73E
adds r0, #0xd
cmp r1, r0
bne _081AC7D6
_081AC73E:
movs r0, #6
bl TestPlayerAvatarFlags
lsls r0, r0, #0x18
cmp r0, #0
beq _081AC7D6
ldr r0, [r4]
adds r0, r0, r5
movs r1, #7
strb r1, [r0]
b _081AC7D6
.align 2, 0
_081AC754: .4byte 0x0203CB20
_081AC758: .4byte 0x00000824
_081AC75C: .4byte 0x00000828
_081AC760: .4byte 0x085DF868
_081AC764: .4byte 0x03005AEC
_081AC768: .4byte 0x00000496
_081AC76C: .4byte 0x0203CB48
_081AC770: .4byte 0x00000825
_081AC774: .4byte 0x00000103
_081AC778:
ldr r0, _081AC790
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC794
str r0, [r2]
ldr r0, _081AC798
adds r1, r1, r0
movs r0, #4
b _081AC7D4
.align 2, 0
_081AC790: .4byte 0x0203CB20
_081AC794: .4byte 0x085DF86C
_081AC798: .4byte 0x00000828
_081AC79C:
ldr r0, _081AC7B4
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC7B8
str r0, [r2]
ldr r0, _081AC7BC
adds r1, r1, r0
movs r0, #4
b _081AC7D4
.align 2, 0
_081AC7B4: .4byte 0x0203CB20
_081AC7B8: .4byte 0x085DF870
_081AC7BC: .4byte 0x00000828
_081AC7C0:
ldr r0, _081AC800
ldr r1, [r0]
movs r0, #0x82
lsls r0, r0, #4
adds r2, r1, r0
ldr r0, _081AC804
str r0, [r2]
ldr r0, _081AC808
adds r1, r1, r0
movs r0, #6
_081AC7D4:
strb r0, [r1]
_081AC7D6:
ldr r0, _081AC80C
ldrb r0, [r0, #5]
cmp r0, #2
bne _081AC814
movs r0, #1
bl ClearWindowTilemap
ldr r0, _081AC810
ldrh r0, [r0]
bl PrintTMHMMoveData
movs r0, #3
bl PutWindowTilemap
movs r0, #4
bl PutWindowTilemap
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
b _081AC84A
.align 2, 0
_081AC800: .4byte 0x0203CB20
_081AC804: .4byte 0x085DF874
_081AC808: .4byte 0x00000828
_081AC80C: .4byte 0x0203CB24
_081AC810: .4byte 0x0203CB48
_081AC814:
ldr r0, _081AC85C
ldrh r0, [r0]
ldr r1, _081AC860
bl CopyItemName
ldr r4, _081AC864
ldr r1, _081AC868
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
movs r0, #1
movs r1, #1
adds r2, r4, #0
movs r3, #0
bl BagMenu_Print
_081AC84A:
ldr r0, _081AC86C
ldr r0, [r0]
ldr r1, _081AC870
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #1
bne _081AC874
movs r0, #0
b _081AC87A
.align 2, 0
_081AC85C: .4byte 0x0203CB48
_081AC860: .4byte 0x02021C40
_081AC864: .4byte 0x02021C7C
_081AC868: .4byte 0x085C9450
_081AC86C: .4byte 0x0203CB20
_081AC870: .4byte 0x00000828
_081AC874:
cmp r0, #2
bne _081AC888
movs r0, #1
_081AC87A:
bl BagMenu_AddWindow
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl sub_081AC8BC
b _081AC8B2
_081AC888:
cmp r0, #4
bne _081AC8A0
movs r0, #2
bl BagMenu_AddWindow
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #2
movs r2, #2
bl sub_081AC938
b _081AC8B2
_081AC8A0:
movs r0, #3
bl BagMenu_AddWindow
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #2
movs r2, #3
bl sub_081AC938
_081AC8B2:
add sp, #0x14
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_081AC408
thumb_func_start sub_081AC8BC
sub_081AC8BC: @ 0x081AC8BC
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
sub sp, #0x14
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
movs r0, #0
mov r8, r0
str r0, [sp]
movs r0, #0x10
str r0, [sp, #4]
ldr r6, _081AC92C
ldr r1, [r6]
ldr r5, _081AC930
adds r0, r1, r5
ldrb r0, [r0]
str r0, [sp, #8]
ldr r0, _081AC934
str r0, [sp, #0xc]
movs r0, #0x82
lsls r0, r0, #4
adds r1, r1, r0
ldr r0, [r1]
str r0, [sp, #0x10]
adds r0, r4, #0
movs r1, #1
movs r2, #8
movs r3, #2
bl AddItemMenuActionTextPrinters
movs r0, #1
movs r1, #1
bl GetFontAttribute
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp]
ldr r0, [r6]
adds r0, r0, r5
ldrb r0, [r0]
str r0, [sp, #4]
mov r0, r8
str r0, [sp, #8]
adds r0, r4, #0
movs r1, #1
movs r2, #0
movs r3, #2
bl sub_081984B0
add sp, #0x14
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AC92C: .4byte 0x0203CB20
_081AC930: .4byte 0x00000828
_081AC934: .4byte 0x085DF7EC
thumb_func_end sub_081AC8BC
thumb_func_start sub_081AC938
sub_081AC938: @ 0x081AC938
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
sub sp, #0x14
adds r6, r0, #0
adds r4, r1, #0
adds r5, r2, #0
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
movs r0, #0x30
mov r8, r0
str r0, [sp]
str r4, [sp, #4]
str r5, [sp, #8]
ldr r0, _081AC9A0
str r0, [sp, #0xc]
ldr r0, _081AC9A4
ldr r0, [r0]
movs r1, #0x82
lsls r1, r1, #4
adds r0, r0, r1
ldr r0, [r0]
str r0, [sp, #0x10]
adds r0, r6, #0
movs r1, #1
movs r2, #8
movs r3, #2
bl sub_08198ECC
mov r0, r8
str r0, [sp]
str r4, [sp, #4]
str r5, [sp, #8]
movs r0, #0
str r0, [sp, #0xc]
adds r0, r6, #0
movs r1, #1
movs r2, #0
movs r3, #2
bl sub_081990E4
add sp, #0x14
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AC9A0: .4byte 0x085DF7EC
_081AC9A4: .4byte 0x0203CB20
thumb_func_end sub_081AC938
thumb_func_start unknown_item_menu_type
unknown_item_menu_type: @ 0x081AC9A8
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
adds r0, r4, #0
bl sub_081AC408
ldr r0, _081AC9D0
ldr r0, [r0]
ldr r1, _081AC9D4
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #2
bhi _081AC9E0
ldr r0, _081AC9D8
lsls r1, r4, #2
adds r1, r1, r4
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _081AC9DC
b _081AC9EC
.align 2, 0
_081AC9D0: .4byte 0x0203CB20
_081AC9D4: .4byte 0x00000828
_081AC9D8: .4byte 0x03005B60
_081AC9DC: .4byte 0x081AC9FD
_081AC9E0:
ldr r0, _081AC9F4
lsls r1, r4, #2
adds r1, r1, r4
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _081AC9F8
_081AC9EC:
str r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AC9F4: .4byte 0x03005B60
_081AC9F8: .4byte 0x081ACA71
thumb_func_end unknown_item_menu_type
thumb_func_start Task_HandleInBattleItemMenuInput
Task_HandleInBattleItemMenuInput: @ 0x081AC9FC
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
adds r6, r5, #0
bl sub_081221F8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _081ACA62
bl Menu_ProcessInputNoWrap
lsls r0, r0, #0x18
asrs r4, r0, #0x18
movs r0, #2
rsbs r0, r0, #0
cmp r4, r0
beq _081ACA62
adds r0, #1
cmp r4, r0
bne _081ACA3C
movs r0, #5
bl PlaySE
ldr r0, _081ACA38
ldr r1, [r0, #0x24]
adds r0, r5, #0
bl _call_via_r1
b _081ACA62
.align 2, 0
_081ACA38: .4byte 0x085DF7EC
_081ACA3C:
movs r0, #5
bl PlaySE
ldr r1, _081ACA68
ldr r0, _081ACA6C
ldr r0, [r0]
movs r2, #0x82
lsls r2, r2, #4
adds r0, r0, r2
ldr r0, [r0]
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #3
adds r1, #4
adds r0, r0, r1
ldr r1, [r0]
adds r0, r6, #0
bl _call_via_r1
_081ACA62:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081ACA68: .4byte 0x085DF7EC
_081ACA6C: .4byte 0x0203CB20
thumb_func_end Task_HandleInBattleItemMenuInput
thumb_func_start Task_HandleOutOfBattleItemMenuInput
Task_HandleOutOfBattleItemMenuInput: @ 0x081ACA70
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
bl sub_081221F8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081ACA84
b _081ACBE8
_081ACA84:
bl Menu_GetCursorPos
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r5, _081ACAC8
ldrh r1, [r5, #0x2e]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _081ACACC
lsls r0, r4, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _081ACAA2
b _081ACBE8
_081ACAA2:
subs r0, #2
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_081ACBF4
lsls r0, r0, #0x18
cmp r0, #0
bne _081ACAB4
b _081ACBE8
_081ACAB4:
movs r0, #5
bl PlaySE
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
bl sub_08199250
b _081ACBE8
.align 2, 0
_081ACAC8: .4byte 0x03002360
_081ACACC:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _081ACB14
lsls r0, r4, #0x18
asrs r1, r0, #0x18
ldr r0, _081ACB0C
ldr r0, [r0]
ldr r2, _081ACB10
adds r0, r0, r2
ldrb r0, [r0]
subs r0, #2
cmp r1, r0
blt _081ACAEA
b _081ACBE8
_081ACAEA:
adds r0, r1, #2
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_081ACBF4
lsls r0, r0, #0x18
cmp r0, #0
beq _081ACBE8
movs r0, #5
bl PlaySE
movs r0, #0
movs r1, #1
bl sub_08199250
b _081ACBE8
.align 2, 0
_081ACB0C: .4byte 0x0203CB20
_081ACB10: .4byte 0x00000828
_081ACB14:
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _081ACB28
bl GetLRKeysState
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081ACB50
_081ACB28:
lsls r0, r4, #0x18
asrs r1, r0, #0x18
movs r0, #1
ands r0, r1
cmp r0, #0
beq _081ACBE8
subs r0, r1, #1
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_081ACBF4
lsls r0, r0, #0x18
cmp r0, #0
beq _081ACBE8
movs r0, #5
bl PlaySE
movs r0, #1
rsbs r0, r0, #0
b _081ACB8A
_081ACB50:
ldrh r1, [r5, #0x2e]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _081ACB66
bl GetLRKeysState
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #2
bne _081ACB92
_081ACB66:
lsls r0, r4, #0x18
asrs r1, r0, #0x18
movs r0, #1
ands r0, r1
cmp r0, #0
bne _081ACBE8
adds r0, r1, #1
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl sub_081ACBF4
lsls r0, r0, #0x18
cmp r0, #0
beq _081ACBE8
movs r0, #5
bl PlaySE
movs r0, #1
_081ACB8A:
movs r1, #0
bl sub_08199250
b _081ACBE8
_081ACB92:
ldrh r1, [r5, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _081ACBD0
movs r0, #5
bl PlaySE
ldr r2, _081ACBC8
ldr r0, _081ACBCC
ldr r0, [r0]
lsls r1, r4, #0x18
asrs r1, r1, #0x18
movs r3, #0x82
lsls r3, r3, #4
adds r0, r0, r3
ldr r0, [r0]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #3
adds r2, #4
adds r0, r0, r2
ldr r1, [r0]
adds r0, r6, #0
bl _call_via_r1
b _081ACBE8
.align 2, 0
_081ACBC8: .4byte 0x085DF7EC
_081ACBCC: .4byte 0x0203CB20
_081ACBD0:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _081ACBE8
movs r0, #5
bl PlaySE
ldr r0, _081ACBF0
ldr r1, [r0, #0x24]
adds r0, r6, #0
bl _call_via_r1
_081ACBE8:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081ACBF0: .4byte 0x085DF7EC
thumb_func_end Task_HandleOutOfBattleItemMenuInput
thumb_func_start sub_081ACBF4
sub_081ACBF4: @ 0x081ACBF4
push {lr}
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
blt _081ACC28
ldr r0, _081ACC20
ldr r2, [r0]
ldr r3, _081ACC24
adds r0, r2, r3
ldrb r0, [r0]
cmp r1, r0
bgt _081ACC28
movs r3, #0x82
lsls r3, r3, #4
adds r0, r2, r3
ldr r0, [r0]
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0xe
beq _081ACC28
movs r0, #1
b _081ACC2A
.align 2, 0
_081ACC20: .4byte 0x0203CB20
_081ACC24: .4byte 0x00000828
_081ACC28:
movs r0, #0
_081ACC2A:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_081ACBF4
thumb_func_start BagMenu_RemoveSomeWindow
BagMenu_RemoveSomeWindow: @ 0x081ACC30
push {lr}
ldr r0, _081ACC48
ldr r0, [r0]
ldr r1, _081ACC4C
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #1
bne _081ACC50
movs r0, #0
bl BagMenu_RemoveWindow
b _081ACC6E
.align 2, 0
_081ACC48: .4byte 0x0203CB20
_081ACC4C: .4byte 0x00000828
_081ACC50:
cmp r0, #2
bne _081ACC5C
movs r0, #1
bl BagMenu_RemoveWindow
b _081ACC6E
_081ACC5C:
cmp r0, #4
bne _081ACC68
movs r0, #2
bl BagMenu_RemoveWindow
b _081ACC6E
_081ACC68:
movs r0, #3
bl BagMenu_RemoveWindow
_081ACC6E:
pop {r0}
bx r0
.align 2, 0
thumb_func_end BagMenu_RemoveSomeWindow
thumb_func_start ItemMenu_UseOutOfBattle
ItemMenu_UseOutOfBattle: @ 0x081ACC74
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r5, _081ACCAC
ldrh r0, [r5]
bl sub_080D6DF8
cmp r0, #0
beq _081ACCE6
bl BagMenu_RemoveSomeWindow
bl CalculatePlayerPartyCount
lsls r0, r0, #0x18
cmp r0, #0
bne _081ACCB0
ldrh r0, [r5]
bl ItemId_GetPocket
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081ACCB0
adds r0, r4, #0
bl BagMenu_PrintThereIsNoPokemon
b _081ACCE6
.align 2, 0
_081ACCAC: .4byte 0x0203CB48
_081ACCB0:
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, _081ACCD8
ldrb r0, [r0, #5]
cmp r0, #3
beq _081ACCE0
ldr r0, _081ACCDC
ldrh r0, [r0]
bl sub_080D6DF8
adds r1, r0, #0
adds r0, r4, #0
bl _call_via_r1
b _081ACCE6
.align 2, 0
_081ACCD8: .4byte 0x0203CB24
_081ACCDC: .4byte 0x0203CB48
_081ACCE0:
adds r0, r4, #0
bl sub_080FE564
_081ACCE6:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end ItemMenu_UseOutOfBattle
thumb_func_start ItemMenu_Toss
ItemMenu_Toss: @ 0x081ACCEC
push {r4, r5, r6, r7, lr}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r0, r5, #2
adds r0, r0, r5
lsls r6, r0, #3
ldr r7, _081ACD18
adds r4, r6, r7
bl BagMenu_RemoveSomeWindow
movs r0, #1
strh r0, [r4, #0x10]
movs r1, #4
ldrsh r0, [r4, r1]
cmp r0, #1
bne _081ACD1C
adds r0, r5, #0
bl BagMenu_TossItems
b _081ACD62
.align 2, 0
_081ACD18: .4byte 0x03005B68
_081ACD1C:
ldr r0, _081ACD6C
ldrh r0, [r0]
ldr r1, _081ACD70
bl CopyItemName
ldr r4, _081ACD74
ldr r1, _081ACD78
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
movs r0, #1
movs r1, #1
adds r2, r4, #0
movs r3, #0
bl BagMenu_Print
movs r0, #7
bl PrintItemDepositAmount
adds r0, r7, #0
subs r0, #8
adds r0, r6, r0
ldr r1, _081ACD7C
str r1, [r0]
_081ACD62:
add sp, #0x14
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081ACD6C: .4byte 0x0203CB48
_081ACD70: .4byte 0x02021C40
_081ACD74: .4byte 0x02021C7C
_081ACD78: .4byte 0x085C9523
_081ACD7C: .4byte 0x081ACE3D
thumb_func_end ItemMenu_Toss
thumb_func_start BagMenu_TossItems
BagMenu_TossItems: @ 0x081ACD80
push {r4, r5, lr}
sub sp, #0x14
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
ldr r0, _081ACDEC
adds r4, r4, r0
ldr r0, _081ACDF0
ldrh r0, [r0]
ldr r1, _081ACDF4
bl CopyItemName
ldr r0, _081ACDF8
movs r2, #0x10
ldrsh r1, [r4, r2]
movs r2, #0
movs r3, #3
bl ConvertIntToDecimalStringN
ldr r4, _081ACDFC
ldr r1, _081ACE00
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
movs r0, #1
movs r1, #1
adds r2, r4, #0
movs r3, #0
bl BagMenu_Print
ldr r2, _081ACE04
adds r0, r5, #0
movs r1, #5
bl BagMenu_YesNo
add sp, #0x14
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081ACDEC: .4byte 0x03005B68
_081ACDF0: .4byte 0x0203CB48
_081ACDF4: .4byte 0x02021C40
_081ACDF8: .4byte 0x02021C54
_081ACDFC: .4byte 0x02021C7C
_081ACE00: .4byte 0x085C9540
_081ACE04: .4byte 0x085DF8BC
thumb_func_end BagMenu_TossItems
thumb_func_start BagMenu_CancelToss
BagMenu_CancelToss: @ 0x081ACE08
push {r4, r5, lr}
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
ldr r0, _081ACE38
adds r4, r4, r0
movs r1, #2
ldrsh r0, [r4, r1]
bl BagMenu_PrintDescription
ldrb r0, [r4]
movs r1, #0
bl BagMenu_PrintCursor_
adds r0, r5, #0
bl set_callback3_to_bag
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081ACE38: .4byte 0x03005B68
thumb_func_end BagMenu_CancelToss
thumb_func_start Task_ChooseHowManyToToss
Task_ChooseHowManyToToss: @ 0x081ACE3C
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
adds r6, r5, #0
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
ldr r1, _081ACE74
adds r4, r0, r1
adds r0, r4, #0
adds r0, #0x10
ldrh r1, [r4, #4]
bl AdjustQuantityAccordingToDPadInput
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081ACE80
ldr r0, _081ACE78
ldr r0, [r0]
ldr r1, _081ACE7C
adds r0, r0, r1
ldrb r0, [r0]
movs r2, #0x10
ldrsh r1, [r4, r2]
bl sub_081ABA50
b _081ACEBE
.align 2, 0
_081ACE74: .4byte 0x03005B68
_081ACE78: .4byte 0x0203CB20
_081ACE7C: .4byte 0x00000817
_081ACE80:
ldr r0, _081ACEA0
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _081ACEA4
movs r0, #5
bl PlaySE
movs r0, #7
bl BagMenu_RemoveWindow
adds r0, r5, #0
bl BagMenu_TossItems
b _081ACEBE
.align 2, 0
_081ACEA0: .4byte 0x03002360
_081ACEA4:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _081ACEBE
movs r0, #5
bl PlaySE
movs r0, #7
bl BagMenu_RemoveWindow
adds r0, r6, #0
bl BagMenu_CancelToss
_081ACEBE:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_end Task_ChooseHowManyToToss
thumb_func_start BagMenu_ConfirmToss
BagMenu_ConfirmToss: @ 0x081ACEC4
push {r4, r5, r6, lr}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r0, #2
adds r4, r4, r0
lsls r4, r4, #3
ldr r5, _081ACF2C
adds r6, r4, r5
ldr r0, _081ACF30
ldrh r0, [r0]
ldr r1, _081ACF34
bl CopyItemName
ldr r0, _081ACF38
movs r2, #0x10
ldrsh r1, [r6, r2]
movs r2, #0
movs r3, #3
bl ConvertIntToDecimalStringN
ldr r6, _081ACF3C
ldr r1, _081ACF40
adds r0, r6, #0
bl StringExpandPlaceholders
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
movs r0, #1
movs r1, #1
adds r2, r6, #0
movs r3, #0
bl BagMenu_Print
subs r5, #8
adds r4, r4, r5
ldr r0, _081ACF44
str r0, [r4]
add sp, #0x14
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081ACF2C: .4byte 0x03005B68
_081ACF30: .4byte 0x0203CB48
_081ACF34: .4byte 0x02021C40
_081ACF38: .4byte 0x02021C54
_081ACF3C: .4byte 0x02021C7C
_081ACF40: .4byte 0x085C9532
_081ACF44: .4byte 0x081ACF49
thumb_func_end BagMenu_ConfirmToss
thumb_func_start Task_ActuallyToss
Task_ActuallyToss: @ 0x081ACF48
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
ldr r1, _081ACFD0
adds r5, r0, r1
ldr r4, _081ACFD4
ldrb r0, [r4, #5]
lsls r0, r0, #1
adds r1, r4, #0
adds r1, #0x12
adds r1, r1, r0
mov r8, r1
adds r1, r4, #0
adds r1, #8
adds r7, r0, r1
ldr r0, _081ACFD8
ldrh r1, [r0, #0x2e]
movs r0, #3
ands r0, r1
cmp r0, #0
beq _081ACFC6
movs r0, #5
bl PlaySE
ldr r0, _081ACFDC
ldrh r0, [r0]
ldrh r1, [r5, #0x10]
bl RemoveBagItem
ldrb r0, [r5]
mov r1, r8
adds r2, r7, #0
bl DestroyListMenuTask
ldrb r0, [r4, #5]
bl sub_081AB754
ldrb r0, [r4, #5]
bl SetInitialScrollAndCursorPositions
ldrb r0, [r4, #5]
bl LoadBagItemListBuffers
ldr r0, _081ACFE0
mov r2, r8
ldrh r1, [r2]
ldrh r2, [r7]
bl ListMenuInit
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r5]
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r6, #0
bl set_callback3_to_bag
_081ACFC6:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081ACFD0: .4byte 0x03005B68
_081ACFD4: .4byte 0x0203CB24
_081ACFD8: .4byte 0x03002360
_081ACFDC: .4byte 0x0203CB48
_081ACFE0: .4byte 0x03006050
thumb_func_end Task_ActuallyToss
thumb_func_start ItemMenu_Register
ItemMenu_Register: @ 0x081ACFE4
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
ldr r1, _081AD01C
adds r7, r0, r1
ldr r0, _081AD020
ldrb r1, [r0, #5]
lsls r1, r1, #1
adds r2, r0, #0
adds r2, #0x12
adds r6, r1, r2
adds r0, #8
adds r5, r1, r0
ldr r0, _081AD024
ldr r0, [r0]
ldr r2, _081AD028
adds r1, r0, r2
ldr r0, _081AD02C
ldrh r2, [r0]
ldrh r0, [r1]
cmp r0, r2
bne _081AD030
movs r0, #0
strh r0, [r1]
b _081AD032
.align 2, 0
_081AD01C: .4byte 0x03005B68
_081AD020: .4byte 0x0203CB24
_081AD024: .4byte 0x03005AEC
_081AD028: .4byte 0x00000496
_081AD02C: .4byte 0x0203CB48
_081AD030:
strh r2, [r1]
_081AD032:
ldrb r0, [r7]
adds r1, r6, #0
adds r2, r5, #0
bl DestroyListMenuTask
ldr r0, _081AD068
ldrb r0, [r0, #5]
bl LoadBagItemListBuffers
ldr r0, _081AD06C
ldrh r1, [r6]
ldrh r2, [r5]
bl ListMenuInit
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r7]
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r4, #0
bl ItemMenu_Cancel
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AD068: .4byte 0x0203CB24
_081AD06C: .4byte 0x03006050
thumb_func_end ItemMenu_Register
thumb_func_start ItemMenu_Give
ItemMenu_Give: @ 0x081AD070
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
adds r6, r4, #0
bl BagMenu_RemoveSomeWindow
ldr r5, _081AD098
ldrh r0, [r5]
bl itemid_80BF6D8_mail_related
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD0A4
ldr r2, _081AD09C
ldr r3, _081AD0A0
adds r0, r4, #0
movs r1, #1
bl DisplayItemMessage
b _081AD0E2
.align 2, 0
_081AD098: .4byte 0x0203CB48
_081AD09C: .4byte 0x085C945C
_081AD0A0: .4byte 0x081AD149
_081AD0A4:
ldrh r0, [r5]
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD0DC
bl CalculatePlayerPartyCount
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD0C2
adds r0, r4, #0
bl BagMenu_PrintThereIsNoPokemon
b _081AD0E2
_081AD0C2:
ldr r0, _081AD0D4
ldr r1, [r0]
ldr r0, _081AD0D8
str r0, [r1]
adds r0, r4, #0
bl unknown_ItemMenu_Confirm
b _081AD0E2
.align 2, 0
_081AD0D4: .4byte 0x0203CB20
_081AD0D8: .4byte 0x081B7C01
_081AD0DC:
adds r0, r6, #0
bl BagMenu_PrintItemCantBeHeld
_081AD0E2:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_end ItemMenu_Give
thumb_func_start BagMenu_PrintThereIsNoPokemon
BagMenu_PrintThereIsNoPokemon: @ 0x081AD0E8
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _081AD0FC
ldr r3, _081AD100
movs r1, #1
bl DisplayItemMessage
pop {r0}
bx r0
.align 2, 0
_081AD0FC: .4byte 0x085C9472
_081AD100: .4byte 0x081AD149
thumb_func_end BagMenu_PrintThereIsNoPokemon
thumb_func_start BagMenu_PrintItemCantBeHeld
BagMenu_PrintItemCantBeHeld: @ 0x081AD104
push {r4, r5, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r0, _081AD134
ldrh r0, [r0]
ldr r1, _081AD138
bl CopyItemName
ldr r5, _081AD13C
ldr r1, _081AD140
adds r0, r5, #0
bl StringExpandPlaceholders
ldr r3, _081AD144
adds r0, r4, #0
movs r1, #1
adds r2, r5, #0
bl DisplayItemMessage
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081AD134: .4byte 0x0203CB48
_081AD138: .4byte 0x02021C40
_081AD13C: .4byte 0x02021C7C
_081AD140: .4byte 0x085C948E
_081AD144: .4byte 0x081AD149
thumb_func_end BagMenu_PrintItemCantBeHeld
thumb_func_start sub_081AD148
sub_081AD148: @ 0x081AD148
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r0, _081AD16C
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _081AD166
movs r0, #5
bl PlaySE
adds r0, r4, #0
bl BagMenu_InitListsMenu
_081AD166:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AD16C: .4byte 0x03002360
thumb_func_end sub_081AD148
thumb_func_start ItemMenu_CheckTag
ItemMenu_CheckTag: @ 0x081AD170
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _081AD188
ldr r2, [r1]
ldr r1, _081AD18C
str r1, [r2]
bl unknown_ItemMenu_Confirm
pop {r0}
bx r0
.align 2, 0
_081AD188: .4byte 0x0203CB20
_081AD18C: .4byte 0x08177AFD
thumb_func_end ItemMenu_CheckTag
thumb_func_start ItemMenu_Cancel
ItemMenu_Cancel: @ 0x081AD190
push {r4, r5, lr}
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
ldr r0, _081AD1D0
adds r4, r4, r0
bl BagMenu_RemoveSomeWindow
movs r1, #2
ldrsh r0, [r4, r1]
bl BagMenu_PrintDescription
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
movs r0, #1
bl schedule_bg_copy_tilemap_to_vram
ldrb r0, [r4]
movs r1, #0
bl BagMenu_PrintCursor_
adds r0, r5, #0
bl set_callback3_to_bag
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081AD1D0: .4byte 0x03005B68
thumb_func_end ItemMenu_Cancel
thumb_func_start ItemMenu_UseInBattle
ItemMenu_UseInBattle: @ 0x081AD1D4
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r4, _081AD200
ldrh r0, [r4]
bl sub_080D6E44
cmp r0, #0
beq _081AD1F8
bl BagMenu_RemoveSomeWindow
ldrh r0, [r4]
bl sub_080D6E44
adds r1, r0, #0
adds r0, r5, #0
bl _call_via_r1
_081AD1F8:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081AD200: .4byte 0x0203CB48
thumb_func_end ItemMenu_UseInBattle
thumb_func_start bag_menu_mail_related
bag_menu_mail_related: @ 0x081AD204
push {lr}
movs r0, #0xc
movs r1, #5
movs r2, #0
bl GoToBagMenu
pop {r0}
bx r0
thumb_func_end bag_menu_mail_related
thumb_func_start item_menu_type_2
item_menu_type_2: @ 0x081AD214
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r4, _081AD238
ldrh r0, [r4]
bl itemid_80BF6D8_mail_related
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD244
ldr r2, _081AD23C
ldr r3, _081AD240
adds r0, r5, #0
movs r1, #1
bl DisplayItemMessage
b _081AD2A6
.align 2, 0
_081AD238: .4byte 0x0203CB48
_081AD23C: .4byte 0x085C945C
_081AD240: .4byte 0x081AD149
_081AD244:
ldrh r0, [r4]
bl sub_08122154
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD280
ldrh r0, [r4]
ldr r1, _081AD270
bl CopyItemName
ldr r4, _081AD274
ldr r1, _081AD278
adds r0, r4, #0
bl StringExpandPlaceholders
ldr r3, _081AD27C
adds r0, r5, #0
movs r1, #1
adds r2, r4, #0
bl DisplayItemMessage
b _081AD2A6
.align 2, 0
_081AD270: .4byte 0x02021C40
_081AD274: .4byte 0x02021C7C
_081AD278: .4byte 0x085C94A1
_081AD27C: .4byte 0x081AD149
_081AD280:
ldr r0, _081AD29C
ldrb r0, [r0, #5]
cmp r0, #4
beq _081AD2A0
ldrh r0, [r4]
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD2A0
adds r0, r5, #0
bl unknown_ItemMenu_Confirm
b _081AD2A6
.align 2, 0
_081AD29C: .4byte 0x0203CB24
_081AD2A0:
adds r0, r5, #0
bl BagMenu_PrintItemCantBeHeld
_081AD2A6:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end item_menu_type_2
thumb_func_start item_menu_type_b
item_menu_type_b: @ 0x081AD2AC
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r5, _081AD2D0
ldrh r0, [r5]
bl ItemIsMail
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081AD2DC
ldr r2, _081AD2D4
ldr r3, _081AD2D8
adds r0, r4, #0
movs r1, #1
bl DisplayItemMessage
b _081AD312
.align 2, 0
_081AD2D0: .4byte 0x0203CB48
_081AD2D4: .4byte 0x085C945C
_081AD2D8: .4byte 0x081AD149
_081AD2DC:
ldr r0, _081AD300
ldrb r0, [r0, #5]
cmp r0, #4
beq _081AD30C
ldrh r0, [r5]
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD30C
ldr r0, _081AD304
lsls r1, r4, #2
adds r1, r1, r4
lsls r1, r1, #3
adds r1, r1, r0
ldr r0, _081AD308
str r0, [r1]
b _081AD312
.align 2, 0
_081AD300: .4byte 0x0203CB24
_081AD304: .4byte 0x03005B60
_081AD308: .4byte 0x081AB6A5
_081AD30C:
adds r0, r4, #0
bl BagMenu_PrintItemCantBeHeld
_081AD312:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end item_menu_type_b
thumb_func_start UseRegisteredKeyItemOnField
UseRegisteredKeyItemOnField: @ 0x081AD318
push {r4, r5, r6, r7, lr}
bl InUnionRoom
cmp r0, #1
beq _081AD344
bl InBattlePyramid
lsls r0, r0, #0x18
cmp r0, #0
bne _081AD344
bl InBattlePike
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
cmp r7, #0
bne _081AD344
bl InMultiBattleRoom
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081AD348
_081AD344:
movs r0, #0
b _081AD3CA
_081AD348:
bl HideMapNamePopUpWindow
movs r0, #0
movs r1, #0
movs r2, #0
bl ChangeBgY
ldr r4, _081AD3AC
ldr r0, [r4]
ldr r5, _081AD3B0
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, #0
beq _081AD3C2
movs r1, #1
bl CheckBagHasItem
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #1
bne _081AD3BC
bl ScriptContext2_Enable
bl FreezeEventObjects
bl sub_0808B1C8
bl sub_0808B658
ldr r2, _081AD3B4
ldr r0, [r4]
adds r0, r0, r5
ldrh r1, [r0]
strh r1, [r2]
ldrh r0, [r0]
bl sub_080D6DF8
movs r1, #8
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _081AD3B8
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
strh r6, [r1, #0xe]
b _081AD3C8
.align 2, 0
_081AD3AC: .4byte 0x03005AEC
_081AD3B0: .4byte 0x00000496
_081AD3B4: .4byte 0x0203CB48
_081AD3B8: .4byte 0x03005B60
_081AD3BC:
ldr r0, [r4]
adds r0, r0, r5
strh r7, [r0]
_081AD3C2:
ldr r0, _081AD3D0
bl ScriptContext1_SetupScript
_081AD3C8:
movs r0, #1
_081AD3CA:
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_081AD3D0: .4byte 0x082440DD
thumb_func_end UseRegisteredKeyItemOnField
thumb_func_start DisplaySellItemAskString
DisplaySellItemAskString: @ 0x081AD3D4
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
adds r7, r5, #0
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
ldr r1, _081AD414
adds r4, r0, r1
ldr r6, _081AD418
ldrh r0, [r6]
bl sub_080D6CD4
lsls r0, r0, #0x10
cmp r0, #0
bne _081AD42C
ldrh r0, [r6]
ldr r1, _081AD41C
bl CopyItemName
ldr r4, _081AD420
ldr r1, _081AD424
adds r0, r4, #0
bl StringExpandPlaceholders
ldr r3, _081AD428
adds r0, r5, #0
movs r1, #1
adds r2, r4, #0
bl DisplayItemMessage
b _081AD462
.align 2, 0
_081AD414: .4byte 0x03005B68
_081AD418: .4byte 0x0203CB48
_081AD41C: .4byte 0x02021C54
_081AD420: .4byte 0x02021C7C
_081AD424: .4byte 0x085C9A47
_081AD428: .4byte 0x081AB969
_081AD42C:
movs r0, #1
strh r0, [r4, #0x10]
movs r1, #4
ldrsh r0, [r4, r1]
cmp r0, #1
bne _081AD444
bl bag_menu_AddMoney_window
adds r0, r5, #0
bl sub_081AD478
b _081AD462
_081AD444:
ldrh r0, [r6]
ldr r1, _081AD468
bl CopyItemName
ldr r4, _081AD46C
ldr r1, _081AD470
adds r0, r4, #0
bl StringExpandPlaceholders
ldr r3, _081AD474
adds r0, r7, #0
movs r1, #1
adds r2, r4, #0
bl DisplayItemMessage
_081AD462:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AD468: .4byte 0x02021C54
_081AD46C: .4byte 0x02021C7C
_081AD470: .4byte 0x085C9A5D
_081AD474: .4byte 0x081AD529
thumb_func_end DisplaySellItemAskString
thumb_func_start sub_081AD478
sub_081AD478: @ 0x081AD478
push {r4, r5, r6, lr}
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
ldr r0, _081AD4C4
adds r4, r4, r0
ldr r6, _081AD4C8
ldr r0, _081AD4CC
ldrh r0, [r0]
bl sub_080D6CD4
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
movs r2, #0x10
ldrsh r1, [r4, r2]
muls r1, r0, r1
adds r0, r6, #0
movs r2, #0
movs r3, #6
bl ConvertIntToDecimalStringN
ldr r4, _081AD4D0
ldr r1, _081AD4D4
adds r0, r4, #0
bl StringExpandPlaceholders
ldr r3, _081AD4D8
adds r0, r5, #0
movs r1, #1
adds r2, r4, #0
bl DisplayItemMessage
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AD4C4: .4byte 0x03005B68
_081AD4C8: .4byte 0x02021C40
_081AD4CC: .4byte 0x0203CB48
_081AD4D0: .4byte 0x02021C7C
_081AD4D4: .4byte 0x085C9A6C
_081AD4D8: .4byte 0x081AD4DD
thumb_func_end sub_081AD478
thumb_func_start sub_081AD4DC
sub_081AD4DC: @ 0x081AD4DC
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _081AD4F0
movs r1, #6
bl BagMenu_YesNo
pop {r0}
bx r0
.align 2, 0
_081AD4F0: .4byte 0x085DF8C4
thumb_func_end sub_081AD4DC
thumb_func_start BagMenu_CancelSell
BagMenu_CancelSell: @ 0x081AD4F4
push {r4, r5, lr}
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
ldr r0, _081AD524
adds r4, r4, r0
bl bag_menu_remove_money_window
movs r0, #4
bl bag_menu_RemoveBagItem_message_window
ldrb r0, [r4]
movs r1, #0
bl BagMenu_PrintCursor_
adds r0, r5, #0
bl set_callback3_to_bag
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081AD524: .4byte 0x03005B68
thumb_func_end BagMenu_CancelSell
thumb_func_start sub_081AD528
sub_081AD528: @ 0x081AD528
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r4, r0, #2
adds r4, r4, r0
lsls r4, r4, #3
ldr r5, _081AD570
adds r6, r4, r5
movs r0, #8
bl BagMenu_AddWindow
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #1
bl sub_081ABA50
ldr r0, _081AD574
ldrh r0, [r0]
bl sub_080D6CD4
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
movs r2, #0x10
ldrsh r1, [r6, r2]
muls r0, r1, r0
bl bag_menu_leave_maybe_2
bl bag_menu_AddMoney_window
subs r5, #8
adds r4, r4, r5
ldr r0, _081AD578
str r0, [r4]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AD570: .4byte 0x03005B68
_081AD574: .4byte 0x0203CB48
_081AD578: .4byte 0x081AD5A9
thumb_func_end sub_081AD528
thumb_func_start bag_menu_leave_maybe_2
bag_menu_leave_maybe_2: @ 0x081AD57C
push {lr}
sub sp, #4
adds r3, r0, #0
ldr r0, _081AD5A0
ldr r0, [r0]
ldr r1, _081AD5A4
adds r0, r0, r1
ldrb r0, [r0]
movs r1, #0
str r1, [sp]
movs r1, #0x28
movs r2, #2
bl PrintMoneyAmountInMoneyBoxWithBorder
add sp, #4
pop {r0}
bx r0
.align 2, 0
_081AD5A0: .4byte 0x0203CB20
_081AD5A4: .4byte 0x00000818
thumb_func_end bag_menu_leave_maybe_2
thumb_func_start sub_081AD5A8
sub_081AD5A8: @ 0x081AD5A8
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
adds r6, r4, #0
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
ldr r1, _081AD5F8
adds r5, r0, r1
adds r0, r5, #0
adds r0, #0x10
ldrh r1, [r5, #4]
bl AdjustQuantityAccordingToDPadInput
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081AD608
ldr r0, _081AD5FC
ldr r0, [r0]
ldr r1, _081AD600
adds r0, r0, r1
ldrb r0, [r0]
movs r2, #0x10
ldrsh r1, [r5, r2]
bl sub_081ABA50
ldr r0, _081AD604
ldrh r0, [r0]
bl sub_080D6CD4
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
movs r2, #0x10
ldrsh r1, [r5, r2]
muls r0, r1, r0
bl bag_menu_leave_maybe_2
b _081AD658
.align 2, 0
_081AD5F8: .4byte 0x03005B68
_081AD5FC: .4byte 0x0203CB20
_081AD600: .4byte 0x00000818
_081AD604: .4byte 0x0203CB48
_081AD608:
ldr r0, _081AD628
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _081AD62C
movs r0, #5
bl PlaySE
movs r0, #8
bl BagMenu_RemoveWindow
adds r0, r4, #0
bl sub_081AD478
b _081AD658
.align 2, 0
_081AD628: .4byte 0x03002360
_081AD62C:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _081AD658
movs r0, #5
bl PlaySE
ldrb r0, [r5]
movs r1, #0
bl BagMenu_PrintCursor_
bl bag_menu_remove_money_window
movs r0, #8
bl BagMenu_RemoveWindow
movs r0, #4
bl bag_menu_RemoveBagItem_message_window
adds r0, r6, #0
bl set_callback3_to_bag
_081AD658:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_081AD5A8
thumb_func_start BagMenu_ConfirmSell
BagMenu_ConfirmSell: @ 0x081AD660
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
ldr r0, _081AD6C0
adds r4, r4, r0
ldr r6, _081AD6C4
ldrh r0, [r6]
ldr r1, _081AD6C8
bl CopyItemName
ldr r0, _081AD6CC
mov r8, r0
ldrh r0, [r6]
bl sub_080D6CD4
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
movs r2, #0x10
ldrsh r1, [r4, r2]
muls r1, r0, r1
mov r0, r8
movs r2, #0
movs r3, #6
bl ConvertIntToDecimalStringN
ldr r4, _081AD6D0
ldr r1, _081AD6D4
adds r0, r4, #0
bl StringExpandPlaceholders
ldr r3, _081AD6D8
adds r0, r5, #0
movs r1, #1
adds r2, r4, #0
bl DisplayItemMessage
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AD6C0: .4byte 0x03005B68
_081AD6C4: .4byte 0x0203CB48
_081AD6C8: .4byte 0x02021C54
_081AD6CC: .4byte 0x02021C40
_081AD6D0: .4byte 0x02021C7C
_081AD6D4: .4byte 0x085C9A88
_081AD6D8: .4byte 0x081AD6DD
thumb_func_end BagMenu_ConfirmSell
thumb_func_start sub_081AD6DC
sub_081AD6DC: @ 0x081AD6DC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r6, r0, #2
adds r6, r6, r0
lsls r6, r6, #3
ldr r0, _081AD7B4
adds r0, r0, r6
mov sl, r0
ldr r7, _081AD7B8
ldrb r5, [r7, #5]
lsls r5, r5, #1
movs r1, #0x12
adds r1, r1, r7
mov sb, r1
add sb, r5
adds r0, r7, #0
adds r0, #8
adds r5, r5, r0
movs r0, #0x5f
bl PlaySE
ldr r2, _081AD7BC
mov r8, r2
ldrh r0, [r2]
mov r3, sl
ldrh r1, [r3, #0x10]
bl RemoveBagItem
ldr r0, _081AD7C0
ldr r4, [r0]
movs r1, #0x92
lsls r1, r1, #3
adds r4, r4, r1
mov r2, r8
ldrh r0, [r2]
bl sub_080D6CD4
lsls r0, r0, #0x10
lsrs r0, r0, #0x11
mov r3, sl
movs r2, #0x10
ldrsh r1, [r3, r2]
muls r1, r0, r1
adds r0, r4, #0
bl AddMoney
mov r3, sl
ldrb r0, [r3]
mov r1, sb
adds r2, r5, #0
bl DestroyListMenuTask
ldrb r0, [r7, #5]
bl sub_081AB754
ldrb r0, [r7, #5]
bl SetInitialScrollAndCursorPositions
ldrb r0, [r7, #5]
bl LoadBagItemListBuffers
ldr r0, _081AD7C4
mov r2, sb
ldrh r1, [r2]
ldrh r2, [r5]
bl ListMenuInit
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r3, sl
strh r0, [r3]
movs r1, #2
bl BagMenu_PrintCursor_
ldr r0, _081AD7C8
ldr r0, [r0]
ldr r1, _081AD7CC
adds r0, r0, r1
ldrb r4, [r0]
ldr r2, _081AD7C0
ldr r0, [r2]
movs r3, #0x92
lsls r3, r3, #3
adds r0, r0, r3
bl GetMoney
adds r1, r0, #0
adds r0, r4, #0
movs r2, #0
bl PrintMoneyAmountInMoneyBox
ldr r0, _081AD7B4
subs r0, #8
adds r6, r6, r0
ldr r0, _081AD7D0
str r0, [r6]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AD7B4: .4byte 0x03005B68
_081AD7B8: .4byte 0x0203CB24
_081AD7BC: .4byte 0x0203CB48
_081AD7C0: .4byte 0x03005AEC
_081AD7C4: .4byte 0x03006050
_081AD7C8: .4byte 0x0203CB20
_081AD7CC: .4byte 0x00000819
_081AD7D0: .4byte 0x081AD7D5
thumb_func_end sub_081AD6DC
thumb_func_start unknown_ItemMenu_Show
unknown_ItemMenu_Show: @ 0x081AD7D4
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r0, _081AD7FC
ldrh r1, [r0, #0x2e]
movs r0, #3
ands r0, r1
cmp r0, #0
beq _081AD7F6
movs r0, #5
bl PlaySE
bl bag_menu_remove_money_window
adds r0, r4, #0
bl BagMenu_InitListsMenu
_081AD7F6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081AD7FC: .4byte 0x03002360
thumb_func_end unknown_ItemMenu_Show
thumb_func_start DisplayDepositItemAskString
DisplayDepositItemAskString: @ 0x081AD800
push {r4, r5, r6, lr}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
lsls r0, r2, #2
adds r0, r0, r2
lsls r5, r0, #3
ldr r6, _081AD828
adds r1, r5, r6
movs r0, #1
strh r0, [r1, #0x10]
movs r3, #4
ldrsh r0, [r1, r3]
cmp r0, #1
bne _081AD82C
adds r0, r2, #0
bl sub_081AD928
b _081AD872
.align 2, 0
_081AD828: .4byte 0x03005B68
_081AD82C:
ldr r0, _081AD87C
ldrh r0, [r0]
ldr r1, _081AD880
bl CopyItemName
ldr r4, _081AD884
ldr r1, _081AD888
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
movs r0, #1
movs r1, #1
adds r2, r4, #0
movs r3, #0
bl BagMenu_Print
movs r0, #7
bl PrintItemDepositAmount
adds r0, r6, #0
subs r0, #8
adds r0, r5, r0
ldr r1, _081AD88C
str r1, [r0]
_081AD872:
add sp, #0x14
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081AD87C: .4byte 0x0203CB48
_081AD880: .4byte 0x02021C40
_081AD884: .4byte 0x02021C7C
_081AD888: .4byte 0x085C94B9
_081AD88C: .4byte 0x081AD891
thumb_func_end DisplayDepositItemAskString
thumb_func_start sub_081AD890
sub_081AD890: @ 0x081AD890
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
adds r6, r4, #0
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
ldr r1, _081AD8C8
adds r5, r0, r1
adds r0, r5, #0
adds r0, #0x10
ldrh r1, [r5, #4]
bl AdjustQuantityAccordingToDPadInput
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081AD8D4
ldr r0, _081AD8CC
ldr r0, [r0]
ldr r1, _081AD8D0
adds r0, r0, r1
ldrb r0, [r0]
movs r2, #0x10
ldrsh r1, [r5, r2]
bl sub_081ABA50
b _081AD922
.align 2, 0
_081AD8C8: .4byte 0x03005B68
_081AD8CC: .4byte 0x0203CB20
_081AD8D0: .4byte 0x00000817
_081AD8D4:
ldr r0, _081AD8F4
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _081AD8F8
movs r0, #5
bl PlaySE
movs r0, #7
bl BagMenu_RemoveWindow
adds r0, r4, #0
bl sub_081AD928
b _081AD922
.align 2, 0
_081AD8F4: .4byte 0x03002360
_081AD8F8:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _081AD922
movs r0, #5
bl PlaySE
movs r1, #2
ldrsh r0, [r5, r1]
bl BagMenu_PrintDescription
ldrb r0, [r5]
movs r1, #0
bl BagMenu_PrintCursor_
movs r0, #7
bl BagMenu_RemoveWindow
adds r0, r6, #0
bl set_callback3_to_bag
_081AD922:
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_end sub_081AD890
thumb_func_start sub_081AD928
sub_081AD928: @ 0x081AD928
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #2
adds r1, r1, r0
lsls r6, r1, #3
ldr r0, _081AD96C
mov r8, r0
adds r7, r6, r0
movs r0, #1
movs r1, #0
bl FillWindowPixelBuffer
ldr r4, _081AD970
ldrh r0, [r4]
bl ItemId_GetHoldEffectParam
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
beq _081AD978
ldr r2, _081AD974
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
b _081AD9EE
.align 2, 0
_081AD96C: .4byte 0x03005B68
_081AD970: .4byte 0x0203CB48
_081AD974: .4byte 0x085C94EB
_081AD978:
ldrh r0, [r4]
ldrh r1, [r7, #0x10]
bl AddPCItem
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _081AD9E0
ldrh r0, [r4]
ldr r1, _081AD9CC
bl CopyItemName
ldr r0, _081AD9D0
movs r2, #0x10
ldrsh r1, [r7, r2]
movs r2, #0
movs r3, #3
bl ConvertIntToDecimalStringN
ldr r4, _081AD9D4
ldr r1, _081AD9D8
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #2
str r0, [sp]
str r5, [sp, #4]
str r5, [sp, #8]
str r5, [sp, #0xc]
str r5, [sp, #0x10]
movs r0, #1
movs r1, #1
adds r2, r4, #0
movs r3, #0
bl BagMenu_Print
mov r0, r8
subs r0, #8
adds r0, r6, r0
ldr r1, _081AD9DC
b _081ADA00
.align 2, 0
_081AD9CC: .4byte 0x02021C40
_081AD9D0: .4byte 0x02021C54
_081AD9D4: .4byte 0x02021C7C
_081AD9D8: .4byte 0x085C94CA
_081AD9DC: .4byte 0x081ACF49
_081AD9E0:
ldr r2, _081ADA10
movs r0, #2
str r0, [sp]
str r5, [sp, #4]
str r5, [sp, #8]
str r5, [sp, #0xc]
str r5, [sp, #0x10]
_081AD9EE:
movs r0, #1
movs r1, #1
movs r3, #0
bl BagMenu_Print
mov r0, r8
subs r0, #8
adds r0, r6, r0
ldr r1, _081ADA14
_081ADA00:
str r1, [r0]
add sp, #0x14
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081ADA10: .4byte 0x085C94DA
_081ADA14: .4byte 0x081ADA19
thumb_func_end sub_081AD928
thumb_func_start sub_081ADA18
sub_081ADA18: @ 0x081ADA18
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
ldr r1, _081ADA58
adds r5, r0, r1
ldr r0, _081ADA5C
ldrh r1, [r0, #0x2e]
movs r0, #3
ands r0, r1
cmp r0, #0
beq _081ADA50
movs r0, #5
bl PlaySE
movs r1, #2
ldrsh r0, [r5, r1]
bl BagMenu_PrintDescription
ldrb r0, [r5]
movs r1, #0
bl BagMenu_PrintCursor_
adds r0, r4, #0
bl set_callback3_to_bag
_081ADA50:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_081ADA58: .4byte 0x03005B68
_081ADA5C: .4byte 0x03002360
thumb_func_end sub_081ADA18
thumb_func_start IsWallysBag
IsWallysBag: @ 0x081ADA60
push {lr}
ldr r0, _081ADA70
ldrb r0, [r0, #4]
cmp r0, #0xa
beq _081ADA74
movs r0, #0
b _081ADA76
.align 2, 0
_081ADA70: .4byte 0x0203CB24
_081ADA74:
movs r0, #1
_081ADA76:
pop {r1}
bx r1
.align 2, 0
thumb_func_end IsWallysBag
thumb_func_start PrepareBagForWallyTutorial
PrepareBagForWallyTutorial: @ 0x081ADA7C
push {r4, r5, r6, lr}
ldr r4, _081ADB00
movs r0, #0xd0
bl AllocZeroed
str r0, [r4]
ldr r5, _081ADB04
ldr r1, [r5]
movs r2, #0xac
lsls r2, r2, #3
adds r1, r1, r2
movs r2, #0x78
bl memcpy
ldr r0, [r4]
ldr r1, [r5]
movs r2, #0xca
lsls r2, r2, #3
adds r1, r1, r2
adds r0, #0x78
movs r2, #0x40
bl memcpy
ldr r0, [r4]
ldr r2, _081ADB08
ldrb r1, [r2, #5]
adds r0, #0xce
strh r1, [r0]
movs r6, #0
adds r5, r2, #0
adds r5, #8
_081ADABA:
ldr r2, [r4]
lsls r3, r6, #1
adds r0, r2, #0
adds r0, #0xb8
adds r0, r0, r3
ldrh r1, [r5]
strh r1, [r0]
adds r2, #0xc2
adds r2, r2, r3
ldrh r0, [r5, #0xa]
strh r0, [r2]
adds r5, #2
adds r6, #1
cmp r6, #4
bls _081ADABA
ldr r4, _081ADB04
ldr r0, [r4]
movs r1, #0xac
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #0x1e
bl ClearItemSlots
ldr r0, [r4]
movs r2, #0xca
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0x10
bl ClearItemSlots
bl ResetBagScrollPositions
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081ADB00: .4byte 0x0203CB4C
_081ADB04: .4byte 0x03005AEC
_081ADB08: .4byte 0x0203CB24
thumb_func_end PrepareBagForWallyTutorial
thumb_func_start RestoreBagAfterWallyTutorial
RestoreBagAfterWallyTutorial: @ 0x081ADB0C
push {r4, r5, r6, lr}
ldr r5, _081ADB70
ldr r0, [r5]
movs r1, #0xac
lsls r1, r1, #3
adds r0, r0, r1
ldr r4, _081ADB74
ldr r1, [r4]
movs r2, #0x78
bl memcpy
ldr r0, [r5]
movs r1, #0xca
lsls r1, r1, #3
adds r0, r0, r1
ldr r1, [r4]
adds r1, #0x78
movs r2, #0x40
bl memcpy
ldr r1, _081ADB78
ldr r0, [r4]
adds r0, #0xce
ldrh r0, [r0]
strb r0, [r1, #5]
movs r5, #0
adds r6, r4, #0
adds r3, r1, #0
adds r3, #8
_081ADB46:
lsls r2, r5, #1
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0xb8
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r3]
adds r1, #0xc2
adds r1, r1, r2
ldrh r0, [r1]
strh r0, [r3, #0xa]
adds r3, #2
adds r5, #1
cmp r5, #4
bls _081ADB46
ldr r0, [r6]
bl Free
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081ADB70: .4byte 0x03005AEC
_081ADB74: .4byte 0x0203CB4C
_081ADB78: .4byte 0x0203CB24
thumb_func_end RestoreBagAfterWallyTutorial
thumb_func_start DoWallyTutorialBagMenu
DoWallyTutorialBagMenu: @ 0x081ADB7C
push {lr}
bl PrepareBagForWallyTutorial
movs r0, #0xd
movs r1, #1
bl AddBagItem
movs r0, #4
movs r1, #1
bl AddBagItem
ldr r2, _081ADBA0
movs r0, #0xa
movs r1, #0
bl GoToBagMenu
pop {r0}
bx r0
.align 2, 0
_081ADBA0: .4byte 0x0805996D
thumb_func_end DoWallyTutorialBagMenu
thumb_func_start Task_WallyTutorialBagMenu
Task_WallyTutorialBagMenu: @ 0x081ADBA4
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
ldr r1, _081ADBD4
adds r4, r0, r1
ldr r0, _081ADBD8
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _081ADC3E
movs r0, #0x10
ldrsh r1, [r4, r0]
cmp r1, #0xcc
beq _081ADBF8
cmp r1, #0xcc
bgt _081ADBDC
cmp r1, #0x66
beq _081ADBE6
b _081ADC38
.align 2, 0
_081ADBD4: .4byte 0x03005B68
_081ADBD8: .4byte 0x02037C74
_081ADBDC:
movs r0, #0x99
lsls r0, r0, #1
cmp r1, r0
beq _081ADC18
b _081ADC38
_081ADBE6:
movs r0, #5
bl PlaySE
adds r0, r5, #0
movs r1, #1
movs r2, #0
bl SwitchBagPocket
b _081ADC38
_081ADBF8:
movs r0, #5
bl PlaySE
ldrb r0, [r4]
movs r1, #2
bl BagMenu_PrintCursor_
ldr r1, _081ADC14
movs r0, #4
strh r0, [r1]
adds r0, r5, #0
bl sub_081AC408
b _081ADC38
.align 2, 0
_081ADC14: .4byte 0x0203CB48
_081ADC18:
movs r0, #5
bl PlaySE
bl BagMenu_RemoveSomeWindow
ldrb r0, [r4]
movs r1, #0
movs r2, #0
bl DestroyListMenuTask
bl RestoreBagAfterWallyTutorial
adds r0, r5, #0
bl unknown_ItemMenu_Confirm
b _081ADC3E
_081ADC38:
ldrh r0, [r4, #0x10]
adds r0, #1
strh r0, [r4, #0x10]
_081ADC3E:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end Task_WallyTutorialBagMenu
thumb_func_start sub_081ADC44
sub_081ADC44: @ 0x081ADC44
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r1, _081ADC6C
ldr r0, _081ADC70
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _081ADC74
movs r0, #1
strh r0, [r1]
bl BagMenu_RemoveSomeWindow
adds r0, r4, #0
bl unknown_ItemMenu_Confirm
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ADC6C: .4byte 0x02037282
_081ADC70: .4byte 0x0203CB48
_081ADC74: .4byte 0x02037290
thumb_func_end sub_081ADC44
thumb_func_start bag_menu_leave_maybe_3
bag_menu_leave_maybe_3: @ 0x081ADC78
push {lr}
ldr r0, _081ADC8C
ldr r1, _081ADC90
str r1, [r0]
ldr r0, _081ADC94
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_081ADC8C: .4byte 0x03005B0C
_081ADC90: .4byte 0x0819F929
_081ADC94: .4byte 0x08085A31
thumb_func_end bag_menu_leave_maybe_3
thumb_func_start unknown_ItemMenu_Give2
unknown_ItemMenu_Give2: @ 0x081ADC98
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r0, _081ADCC0
ldrh r0, [r0]
movs r1, #1
bl RemoveBagItem
ldr r1, _081ADCC4
movs r0, #1
strh r0, [r1]
bl BagMenu_RemoveSomeWindow
adds r0, r4, #0
bl unknown_ItemMenu_Confirm
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ADCC0: .4byte 0x0203CB48
_081ADCC4: .4byte 0x02037290
thumb_func_end unknown_ItemMenu_Give2
thumb_func_start sub_081ADCC8
sub_081ADCC8: @ 0x081ADCC8
push {lr}
ldr r0, _081ADCDC
ldr r1, _081ADCE0
str r1, [r0]
ldr r0, _081ADCE4
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_081ADCDC: .4byte 0x03005B0C
_081ADCE0: .4byte 0x0818DC01
_081ADCE4: .4byte 0x08085A31
thumb_func_end sub_081ADCC8
thumb_func_start unknown_ItemMenu_Confirm2
unknown_ItemMenu_Confirm2: @ 0x081ADCE8
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r1, _081ADD08
movs r0, #1
strh r0, [r1]
bl BagMenu_RemoveSomeWindow
adds r0, r4, #0
bl unknown_ItemMenu_Confirm
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ADD08: .4byte 0x02037290
thumb_func_end unknown_ItemMenu_Confirm2
thumb_func_start sub_081ADD0C
sub_081ADD0C: @ 0x081ADD0C
push {lr}
ldr r0, _081ADD20
ldr r1, _081ADD24
str r1, [r0]
ldr r0, _081ADD28
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_081ADD20: .4byte 0x03005B0C
_081ADD24: .4byte 0x0818E1C1
_081ADD28: .4byte 0x08085A31
thumb_func_end sub_081ADD0C
thumb_func_start SetupBagMenu_Textboxes
SetupBagMenu_Textboxes: @ 0x081ADD2C
push {r4, lr}
ldr r0, _081ADD8C
bl InitWindows
bl DeactivateAllTextPrinters
movs r0, #0
movs r1, #1
movs r2, #0xe0
bl LoadUserWindowBorderGfx
movs r0, #0
movs r1, #0xa
movs r2, #0xd0
bl LoadMessageBoxGfx
movs r0, #0xc0
movs r1, #1
bl sub_08199F54
ldr r0, _081ADD90
movs r1, #0xf0
movs r2, #0x20
bl LoadPalette
movs r4, #0
_081ADD60:
adds r0, r4, #0
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r4, #0
bl PutWindowTilemap
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #2
bls _081ADD60
movs r0, #0
bl schedule_bg_copy_tilemap_to_vram
movs r0, #1
bl schedule_bg_copy_tilemap_to_vram
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ADD8C: .4byte 0x085DFA2C
_081ADD90: .4byte 0x085D7B04
thumb_func_end SetupBagMenu_Textboxes
thumb_func_start BagMenu_Print
BagMenu_Print: @ 0x081ADD94
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x14
mov sb, r3
ldr r3, [sp, #0x30]
ldr r4, [sp, #0x34]
ldr r6, [sp, #0x38]
ldr r5, [sp, #0x3c]
mov r8, r5
ldr r5, [sp, #0x40]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
mov r7, sb
lsls r7, r7, #0x18
lsrs r7, r7, #0x18
mov sb, r7
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
str r4, [sp]
str r6, [sp, #4]
lsls r4, r5, #1
adds r4, r4, r5
ldr r5, _081ADDF8
adds r4, r4, r5
str r4, [sp, #8]
mov r4, r8
lsls r4, r4, #0x18
asrs r4, r4, #0x18
str r4, [sp, #0xc]
str r2, [sp, #0x10]
mov r2, sb
bl AddTextPrinterParameterized4
add sp, #0x14
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081ADDF8: .4byte 0x085DFA1C
thumb_func_end BagMenu_Print
thumb_func_start sub_081ADDFC
sub_081ADDFC: @ 0x081ADDFC
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _081ADE10
ldr r1, [r1]
movs r2, #0x81
lsls r2, r2, #4
adds r1, r1, r2
adds r1, r1, r0
ldrb r0, [r1]
bx lr
.align 2, 0
_081ADE10: .4byte 0x0203CB20
thumb_func_end sub_081ADDFC
thumb_func_start BagMenu_AddWindow
BagMenu_AddWindow: @ 0x081ADE14
push {r4, lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _081ADE54
movs r3, #0x81
lsls r3, r3, #4
adds r1, r2, r3
ldr r0, [r0]
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, #0xff
bne _081ADE4A
lsls r0, r2, #3
ldr r1, _081ADE58
adds r0, r0, r1
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
movs r1, #0
movs r2, #1
movs r3, #0xe
bl DrawStdFrameWithCustomTileAndPalette
movs r0, #1
bl schedule_bg_copy_tilemap_to_vram
_081ADE4A:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_081ADE54: .4byte 0x0203CB20
_081ADE58: .4byte 0x085DFA64
thumb_func_end BagMenu_AddWindow
thumb_func_start BagMenu_RemoveWindow
BagMenu_RemoveWindow: @ 0x081ADE5C
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _081ADE98
movs r2, #0x81
lsls r2, r2, #4
adds r0, r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, #0xff
beq _081ADE90
movs r1, #0
bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, #1
bl schedule_bg_copy_tilemap_to_vram
movs r0, #0xff
strb r0, [r4]
_081ADE90:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ADE98: .4byte 0x0203CB20
thumb_func_end BagMenu_RemoveWindow
thumb_func_start AddItemMessageWindow
AddItemMessageWindow: @ 0x081ADE9C
push {r4, lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _081ADEC8
movs r3, #0x81
lsls r3, r3, #4
adds r1, r2, r3
ldr r0, [r0]
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, #0xff
bne _081ADEC0
lsls r0, r2, #3
ldr r1, _081ADECC
adds r0, r0, r1
bl AddWindow
strb r0, [r4]
_081ADEC0:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_081ADEC8: .4byte 0x0203CB20
_081ADECC: .4byte 0x085DFA64
thumb_func_end AddItemMessageWindow
thumb_func_start bag_menu_RemoveBagItem_message_window
bag_menu_RemoveBagItem_message_window: @ 0x081ADED0
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _081ADF0C
movs r2, #0x81
lsls r2, r2, #4
adds r0, r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, #0xff
beq _081ADF04
movs r1, #0
bl ClearDialogWindowAndFrameToTransparent
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, #1
bl schedule_bg_copy_tilemap_to_vram
movs r0, #0xff
strb r0, [r4]
_081ADF04:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ADF0C: .4byte 0x0203CB20
thumb_func_end bag_menu_RemoveBagItem_message_window
thumb_func_start BagMenu_YesNo
BagMenu_YesNo: @ 0x081ADF10
push {lr}
sub sp, #0x10
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x15
ldr r3, _081ADF3C
adds r1, r1, r3
movs r3, #2
str r3, [sp]
movs r3, #1
str r3, [sp, #4]
movs r3, #0xe
str r3, [sp, #8]
str r2, [sp, #0xc]
movs r2, #1
movs r3, #0
bl CreateYesNoMenuWithCallbacks
add sp, #0x10
pop {r0}
bx r0
.align 2, 0
_081ADF3C: .4byte 0x085DFA64
thumb_func_end BagMenu_YesNo
thumb_func_start bag_menu_AddMoney_window
bag_menu_AddMoney_window: @ 0x081ADF40
push {r4, lr}
movs r0, #9
bl BagMenu_AddWindow
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r0, _081ADF78
ldr r0, [r0]
movs r1, #0x92
lsls r1, r1, #3
adds r0, r0, r1
bl GetMoney
adds r3, r0, #0
adds r0, r4, #0
movs r1, #1
movs r2, #0xe
bl PrintMoneyAmount
movs r0, #0x13
movs r1, #0xb
bl AddMoneyLabelObject
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081ADF78: .4byte 0x03005AEC
thumb_func_end bag_menu_AddMoney_window
thumb_func_start bag_menu_remove_money_window
bag_menu_remove_money_window: @ 0x081ADF7C
push {lr}
movs r0, #9
bl BagMenu_RemoveWindow
bl RemoveMoneyLabelObject
pop {r0}
bx r0
thumb_func_end bag_menu_remove_money_window
thumb_func_start BagMenu_PrepareTMHMMoveWindow
BagMenu_PrepareTMHMMoveWindow: @ 0x081ADF8C
push {lr}
movs r0, #3
movs r1, #0
bl FillWindowPixelBuffer
movs r0, #3
movs r1, #0x13
movs r2, #0
movs r3, #0
bl blit_move_info_icon
movs r0, #3
movs r1, #0x14
movs r2, #0
movs r3, #0xc
bl blit_move_info_icon
movs r0, #3
movs r1, #0x15
movs r2, #0
movs r3, #0x18
bl blit_move_info_icon
movs r0, #3
movs r1, #0x16
movs r2, #0
movs r3, #0x24
bl blit_move_info_icon
movs r0, #3
movs r1, #2
bl CopyWindowToVram
pop {r0}
bx r0
.align 2, 0
thumb_func_end BagMenu_PrepareTMHMMoveWindow
thumb_func_start PrintTMHMMoveData
PrintTMHMMoveData: @ 0x081ADFD4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x14
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
movs r0, #4
movs r1, #0
bl FillWindowPixelBuffer
cmp r4, #0
bne _081AE02C
movs r4, #0
movs r5, #0
_081ADFF2:
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #0x1a
lsrs r0, r0, #0x18
str r0, [sp]
str r5, [sp, #4]
str r5, [sp, #8]
movs r0, #0xff
str r0, [sp, #0xc]
movs r0, #4
str r0, [sp, #0x10]
movs r1, #1
ldr r2, _081AE028
movs r3, #4
bl BagMenu_Print
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #3
bls _081ADFF2
movs r0, #4
movs r1, #2
bl CopyWindowToVram
b _081AE118
.align 2, 0
_081AE028: .4byte 0x085C9406
_081AE02C:
adds r0, r4, #0
bl ItemIdToBattleMoveId
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
ldr r1, _081AE05C
lsls r0, r7, #1
adds r0, r0, r7
lsls r0, r0, #2
adds r5, r0, r1
ldrb r1, [r5, #2]
adds r1, #1
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r0, #4
movs r2, #0
movs r3, #0
bl blit_move_info_icon
ldrb r0, [r5, #1]
cmp r0, #1
bhi _081AE064
ldr r2, _081AE060
b _081AE074
.align 2, 0
_081AE05C: .4byte 0x082ED220
_081AE060: .4byte 0x085C9406
_081AE064:
ldr r4, _081AE0A4
ldrb r1, [r5, #1]
adds r0, r4, #0
movs r2, #1
movs r3, #3
bl ConvertIntToDecimalStringN
adds r2, r4, #0
_081AE074:
movs r0, #0xc
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
movs r0, #0xff
str r0, [sp, #0xc]
movs r0, #4
str r0, [sp, #0x10]
movs r1, #1
movs r3, #4
bl BagMenu_Print
ldr r2, _081AE0A8
lsls r1, r7, #1
adds r0, r1, r7
lsls r0, r0, #2
adds r2, r0, r2
ldrb r0, [r2, #3]
adds r6, r1, #0
cmp r0, #0
bne _081AE0B0
ldr r2, _081AE0AC
b _081AE0C0
.align 2, 0
_081AE0A4: .4byte 0x02021C40
_081AE0A8: .4byte 0x082ED220
_081AE0AC: .4byte 0x085C9406
_081AE0B0:
ldr r4, _081AE128
ldrb r1, [r2, #3]
adds r0, r4, #0
movs r2, #1
movs r3, #3
bl ConvertIntToDecimalStringN
adds r2, r4, #0
_081AE0C0:
movs r0, #0x18
str r0, [sp]
movs r4, #0
str r4, [sp, #4]
str r4, [sp, #8]
movs r0, #0xff
mov r8, r0
str r0, [sp, #0xc]
movs r0, #4
mov sb, r0
str r0, [sp, #0x10]
movs r1, #1
movs r3, #4
bl BagMenu_Print
ldr r5, _081AE128
ldr r1, _081AE12C
adds r0, r6, r7
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #4]
adds r0, r5, #0
movs r2, #1
movs r3, #3
bl ConvertIntToDecimalStringN
movs r0, #0x24
str r0, [sp]
str r4, [sp, #4]
str r4, [sp, #8]
mov r0, r8
str r0, [sp, #0xc]
mov r0, sb
str r0, [sp, #0x10]
movs r0, #4
movs r1, #1
adds r2, r5, #0
movs r3, #4
bl BagMenu_Print
movs r0, #4
movs r1, #2
bl CopyWindowToVram
_081AE118:
add sp, #0x14
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081AE128: .4byte 0x02021C40
_081AE12C: .4byte 0x082ED220
thumb_func_end PrintTMHMMoveData