summaryrefslogtreecommitdiff
path: root/asm/item_menu.s
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-24 23:27:41 -0700
committerYamaArashi <shadow962@live.com>2016-10-24 23:27:41 -0700
commit427131714c72177bf4480f23a1ee60db6cc5b9ef (patch)
tree8fb5837ab4baa409b5eeb5f5a8503f842d6239b5 /asm/item_menu.s
parente1191bfe667671cdcc1f77839769eae686245ac4 (diff)
split several files out of rom_8094928.s
Diffstat (limited to 'asm/item_menu.s')
-rw-r--r--asm/item_menu.s9869
1 files changed, 9869 insertions, 0 deletions
diff --git a/asm/item_menu.s b/asm/item_menu.s
new file mode 100644
index 000000000..d35feb54f
--- /dev/null
+++ b/asm/item_menu.s
@@ -0,0 +1,9869 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A3118
+sub_80A3118: @ 80A3118
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl sub_80A740C
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3118
+
+ thumb_func_start sub_80A3134
+sub_80A3134: @ 80A3134
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _080A3168 @ =gBG1TilemapBuffer
+ ldr r2, _080A316C @ =0x06002000
+ ldr r0, _080A3170 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r3, _080A3174 @ =0x80000400
+ str r3, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r2
+ ldr r2, _080A3178 @ =0x06006000
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ str r3, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3168: .4byte gBG1TilemapBuffer
+_080A316C: .4byte 0x06002000
+_080A3170: .4byte 0x040000d4
+_080A3174: .4byte 0x80000400
+_080A3178: .4byte 0x06006000
+ thumb_func_end sub_80A3134
+
+ thumb_func_start sub_80A317C
+sub_80A317C: @ 80A317C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _080A3198 @ =gMain
+ ldr r1, _080A319C @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bls _080A318E
+ b _080A34A8
+_080A318E:
+ lsls r0, 2
+ ldr r1, _080A31A0 @ =_080A31A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A3198: .4byte gMain
+_080A319C: .4byte 0x0000043c
+_080A31A0: .4byte _080A31A4
+ .align 2, 0
+_080A31A4:
+ .4byte _080A31E8
+ .4byte _080A31F2
+ .4byte _080A3208
+ .4byte _080A320E
+ .4byte _080A3228
+ .4byte _080A324C
+ .4byte _080A3252
+ .4byte _080A3270
+ .4byte _080A327C
+ .4byte _080A3298
+ .4byte _080A32A4
+ .4byte _080A3328
+ .4byte _080A338C
+ .4byte _080A33F4
+ .4byte _080A3404
+ .4byte _080A345C
+ .4byte _080A347C
+_080A31E8:
+ bl sub_80F9438
+ bl sub_80A34E8
+ b _080A3464
+_080A31F2:
+ bl remove_some_task
+ ldr r1, _080A3200 @ =gMain
+ ldr r0, _080A3204 @ =0x0000043c
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3200: .4byte gMain
+_080A3204: .4byte 0x0000043c
+_080A3208:
+ bl gpu_pal_allocator_reset__manage_upper_four
+ b _080A3464
+_080A320E:
+ bl sub_80F9020
+ ldr r0, _080A3220 @ =0x02000000
+ ldr r1, _080A3224 @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _080A3464
+ .align 2, 0
+_080A3220: .4byte 0x02000000
+_080A3224: .4byte 0x0001ffff
+_080A3228:
+ bl ResetPaletteFade
+ ldr r2, _080A3240 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _080A3244 @ =gMain
+ ldr r0, _080A3248 @ =0x0000043c
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3240: .4byte gPaletteFade
+_080A3244: .4byte gMain
+_080A3248: .4byte 0x0000043c
+_080A324C:
+ bl ResetSpriteData
+ b _080A3464
+_080A3252:
+ bl sub_80A3520
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A325E
+ b _080A34A8
+_080A325E:
+ ldr r1, _080A3268 @ =gMain
+ ldr r0, _080A326C @ =0x0000043c
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3268: .4byte gMain
+_080A326C: .4byte 0x0000043c
+_080A3270:
+ ldr r0, _080A3278 @ =gWindowConfig_81E6DFC
+ bl SetUpWindowConfig
+ b _080A3464
+ .align 2, 0
+_080A3278: .4byte gWindowConfig_81E6DFC
+_080A327C:
+ ldr r0, _080A328C @ =gWindowConfig_81E6DFC
+ bl MultistepInitMenuWindowBegin
+ ldr r1, _080A3290 @ =gMain
+ ldr r0, _080A3294 @ =0x0000043c
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A328C: .4byte gWindowConfig_81E6DFC
+_080A3290: .4byte gMain
+_080A3294: .4byte 0x0000043c
+_080A3298:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _080A32A2
+ b _080A34A8
+_080A32A2:
+ b _080A3464
+_080A32A4:
+ bl sub_80F944C
+ bl LoadScrollIndicatorPalette
+ movs r0, 0
+ movs r1, 0xAC
+ movs r2, 0xC
+ bl CreateVerticalScrollIndicators
+ movs r0, 0x1
+ movs r1, 0xAC
+ movs r2, 0x94
+ bl CreateVerticalScrollIndicators
+ movs r0, 0x2
+ movs r1, 0x1C
+ movs r2, 0x58
+ bl CreateVerticalScrollIndicators
+ movs r0, 0x3
+ movs r1, 0x64
+ movs r2, 0x58
+ bl CreateVerticalScrollIndicators
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_80F9988
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_80F9988
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_80F9988
+ movs r0, 0x3
+ movs r1, 0x2
+ bl sub_80F9988
+ ldr r0, _080A331C @ =gUnknown_03000701
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A3312
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_80F979C
+_080A3312:
+ ldr r1, _080A3320 @ =gMain
+ ldr r0, _080A3324 @ =0x0000043c
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A331C: .4byte gUnknown_03000701
+_080A3320: .4byte gMain
+_080A3324: .4byte 0x0000043c
+_080A3328:
+ ldr r1, _080A3378 @ =gUnknown_0203855A
+ movs r0, 0x10
+ strb r0, [r1]
+ ldr r4, _080A337C @ =gBG2TilemapBuffer
+ ldr r5, _080A3380 @ =gUnknown_02038559
+ ldrb r1, [r5]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A39B8
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80A3AC0
+ bl sub_80A3D08
+ ldr r4, _080A3384 @ =gBagPockets
+ ldr r0, [r4, 0x10]
+ ldr r1, [r4, 0x14]
+ bl sub_80A3C34
+ ldr r0, [r4, 0x18]
+ ldr r1, [r4, 0x1C]
+ bl sub_80A3C34
+ bl sub_80A3D40
+ ldr r1, _080A3388 @ =gUnknown_03005D24
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 3
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ bl sub_80A362C
+ b _080A3464
+ .align 2, 0
+_080A3378: .4byte gUnknown_0203855A
+_080A337C: .4byte gBG2TilemapBuffer
+_080A3380: .4byte gUnknown_02038559
+_080A3384: .4byte gBagPockets
+_080A3388: .4byte gUnknown_03005D24
+_080A338C:
+ ldr r0, _080A33D4 @ =0x0000ffff
+ movs r1, 0
+ movs r2, 0x7
+ bl sub_80A48E8
+ ldr r1, _080A33D8 @ =gUnknown_03005D10
+ ldr r4, _080A33DC @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A33E0 @ =gUnknown_03005D24
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bl ItemListMenu_InitDescription
+ bl ItemListMenu_InitMenu
+ ldr r1, _080A33E4 @ =gUnknown_0203855B
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080A33E8 @ =gUnknown_0203855C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080A33EC @ =gMain
+ ldr r0, _080A33F0 @ =0x0000043c
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A33D4: .4byte 0x0000ffff
+_080A33D8: .4byte gUnknown_03005D10
+_080A33DC: .4byte gUnknown_02038559
+_080A33E0: .4byte gUnknown_03005D24
+_080A33E4: .4byte gUnknown_0203855B
+_080A33E8: .4byte gUnknown_0203855C
+_080A33EC: .4byte gMain
+_080A33F0: .4byte 0x0000043c
+_080A33F4:
+ bl CreateBagSprite
+ movs r0, 0
+ bl CreateBagPokeballSprite
+ bl sub_80A3740
+ b _080A3464
+_080A3404:
+ ldr r3, _080A3444 @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _080A3448 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _080A344C @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _080A3450 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _080A3454 @ =gMain
+ ldr r0, _080A3458 @ =0x0000043c
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3444: .4byte 0x04000208
+_080A3448: .4byte 0x04000200
+_080A344C: .4byte REG_DISPSTAT
+_080A3450: .4byte gPaletteFade
+_080A3454: .4byte gMain
+_080A3458: .4byte 0x0000043c
+_080A345C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080A34A8
+_080A3464:
+ ldr r1, _080A3474 @ =gMain
+ ldr r2, _080A3478 @ =0x0000043c
+ adds r1, r2
+_080A346A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080A34A8
+ .align 2, 0
+_080A3474: .4byte gMain
+_080A3478: .4byte 0x0000043c
+_080A347C:
+ ldr r0, _080A34A0 @ =sub_80A3134
+ bl SetVBlankCallback
+ ldr r0, _080A34A4 @ =sub_80A3118
+ bl SetMainCallback2
+ bl sub_80A751C
+ bl sub_80A7630
+ bl sub_80A770C
+ bl sub_80A7828
+ bl sub_80A78B8
+ movs r0, 0x1
+ b _080A34AA
+ .align 2, 0
+_080A34A0: .4byte sub_80A3134
+_080A34A4: .4byte sub_80A3118
+_080A34A8:
+ movs r0, 0
+_080A34AA:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A317C
+
+ thumb_func_start sub_80A34B4
+sub_80A34B4: @ 80A34B4
+ push {lr}
+_080A34B6:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A34D2
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A34B6
+ movs r0, 0
+ b _080A34DE
+_080A34D2:
+ ldr r1, _080A34E4 @ =gUnknown_03000700
+ movs r0, 0
+ strb r0, [r1]
+ bl ResetTasks
+ movs r0, 0x1
+_080A34DE:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A34E4: .4byte gUnknown_03000700
+ thumb_func_end sub_80A34B4
+
+ thumb_func_start sub_80A34E8
+sub_80A34E8: @ 80A34E8
+ push {lr}
+ bl sub_80F9368
+ ldr r1, _080A3514 @ =REG_BG2CNT
+ ldr r2, _080A3518 @ =0x00000c06
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080A351C @ =0x00000405
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3514: .4byte REG_BG2CNT
+_080A3518: .4byte 0x00000c06
+_080A351C: .4byte 0x00000405
+ thumb_func_end sub_80A34E8
+
+ thumb_func_start sub_80A3520
+sub_80A3520: @ 80A3520
+ push {lr}
+ ldr r0, _080A353C @ =0x02000000
+ ldr r1, _080A3540 @ =0x0001ffff
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080A3530
+ b _080A3624
+_080A3530:
+ lsls r0, 2
+ ldr r1, _080A3544 @ =_080A3548
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A353C: .4byte 0x02000000
+_080A3540: .4byte 0x0001ffff
+_080A3544: .4byte _080A3548
+ .align 2, 0
+_080A3548:
+ .4byte _080A355C
+ .4byte _080A3570
+ .4byte _080A3588
+ .4byte _080A35C0
+ .4byte _080A3604
+_080A355C:
+ ldr r0, _080A3568 @ =gBagScreen_Gfx
+ ldr r1, _080A356C @ =0x06004000
+ bl LZDecompressVram
+ b _080A35EA
+ .align 2, 0
+_080A3568: .4byte gBagScreen_Gfx
+_080A356C: .4byte 0x06004000
+_080A3570:
+ ldr r0, _080A3580 @ =gUnknown_08E77004
+ ldr r1, _080A3584 @ =gBG2TilemapBuffer
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ b _080A35EA
+ .align 2, 0
+_080A3580: .4byte gUnknown_08E77004
+_080A3584: .4byte gBG2TilemapBuffer
+_080A3588:
+ ldr r0, _080A35A4 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ beq _080A3598
+ ldr r0, _080A35A8 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _080A35B0
+_080A3598:
+ ldr r0, _080A35AC @ =gBagScreenMale_Pal
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _080A35EA
+ .align 2, 0
+_080A35A4: .4byte gSaveBlock2
+_080A35A8: .4byte gUnknown_03000701
+_080A35AC: .4byte gBagScreenMale_Pal
+_080A35B0:
+ ldr r0, _080A35BC @ =gBagScreenFemale_Pal
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _080A35EA
+ .align 2, 0
+_080A35BC: .4byte gBagScreenFemale_Pal
+_080A35C0:
+ ldr r0, _080A35D8 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ beq _080A35D0
+ ldr r0, _080A35DC @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _080A35E4
+_080A35D0:
+ ldr r0, _080A35E0 @ =gUnknown_083C1CC8
+ bl LoadCompressedObjectPic
+ b _080A35EA
+ .align 2, 0
+_080A35D8: .4byte gSaveBlock2
+_080A35DC: .4byte gUnknown_03000701
+_080A35E0: .4byte gUnknown_083C1CC8
+_080A35E4:
+ ldr r0, _080A35F8 @ =gUnknown_083C1CD0
+ bl LoadCompressedObjectPic
+_080A35EA:
+ ldr r1, _080A35FC @ =0x02000000
+ ldr r0, _080A3600 @ =0x0001ffff
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080A3624
+ .align 2, 0
+_080A35F8: .4byte gUnknown_083C1CD0
+_080A35FC: .4byte 0x02000000
+_080A3600: .4byte 0x0001ffff
+_080A3604:
+ ldr r0, _080A3618 @ =gUnknown_083C1CD8
+ bl LoadCompressedObjectPalette
+ ldr r0, _080A361C @ =0x02000000
+ ldr r1, _080A3620 @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _080A3626
+ .align 2, 0
+_080A3618: .4byte gUnknown_083C1CD8
+_080A361C: .4byte 0x02000000
+_080A3620: .4byte 0x0001ffff
+_080A3624:
+ movs r0, 0
+_080A3626:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A3520
+
+ thumb_func_start sub_80A362C
+sub_80A362C: @ 80A362C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _080A3648 @ =gUnknown_03000701
+ ldr r5, _080A364C @ =gUnknown_03005D10
+_080A3634:
+ ldrb r0, [r6]
+ cmp r0, 0x5
+ bne _080A3650
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080A3656
+ .align 2, 0
+_080A3648: .4byte gUnknown_03000701
+_080A364C: .4byte gUnknown_03005D10
+_080A3650:
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrb r3, [r0, 0x2]
+_080A3656:
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _080A366C
+ ldrb r2, [r1, 0x3]
+ adds r0, r2
+ cmp r0, r3
+ ble _080A3674
+ subs r0, r3, r2
+ strb r0, [r1, 0x1]
+ b _080A3674
+_080A366C:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bls _080A3674
+ strb r3, [r1]
+_080A3674:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _080A3634
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A362C
+
+ thumb_func_start sub_80A3684
+sub_80A3684: @ 80A3684
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _080A36B0 @ =gUnknown_02038559
+ ldr r3, _080A36B4 @ =gUnknown_03005D10
+ movs r1, 0
+_080A368E:
+ lsls r0, r2, 2
+ adds r0, r3
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strb r1, [r0, 0x2]
+ strb r1, [r0, 0x3]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _080A368E
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A36B0: .4byte gUnknown_02038559
+_080A36B4: .4byte gUnknown_03005D10
+ thumb_func_end sub_80A3684
+
+ thumb_func_start sub_80A36B8
+sub_80A36B8: @ 80A36B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, [sp, 0x18]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ lsls r0, 24
+ lsrs r0, 24
+ lsrs r2, 24
+ adds r0, r2, r0
+ cmp r2, r0
+ bgt _080A370A
+ adds r7, r0, 0
+_080A36DE:
+ mov r1, r8
+ mov r3, r12
+ adds r0, r1, r3
+ adds r4, r2, 0x1
+ cmp r1, r0
+ bgt _080A3702
+ lsls r3, r2, 5
+ movs r5, 0
+ adds r2, r0, 0
+_080A36F0:
+ adds r0, r1, r3
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ ble _080A36F0
+_080A3702:
+ lsls r0, r4, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ ble _080A36DE
+_080A370A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A36B8
+
+ thumb_func_start sub_80A3714
+sub_80A3714: @ 80A3714
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080A373C @ =gBagPockets
+_080A371A:
+ lsls r1, r4, 3
+ adds r1, r5
+ ldr r0, [r1]
+ ldrb r1, [r1, 0x4]
+ bl ClearItemSlots
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080A371A
+ bl sub_80A3684
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A373C: .4byte gBagPockets
+ thumb_func_end sub_80A3714
+
+ thumb_func_start sub_80A3740
+sub_80A3740: @ 80A3740
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080A376C @ =gUnknown_083C1704
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0xD1
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ movs r1, 0xD8
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A376C: .4byte gUnknown_083C1704
+ thumb_func_end sub_80A3740
+
+ thumb_func_start sub_80A3770
+sub_80A3770: @ 80A3770
+ push {lr}
+ ldr r0, _080A379C @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A37B6
+ ldr r3, _080A37A0 @ =gUnknown_03000704
+ ldr r2, _080A37A4 @ =gUnknown_02038559
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _080A37A8 @ =gUnknown_083C1690
+ adds r0, r1
+ str r0, [r3]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x3
+ beq _080A37B0
+ ldr r1, _080A37AC @ =gUnknown_02038564
+ movs r0, 0x4
+ b _080A37B4
+ .align 2, 0
+_080A379C: .4byte gUnknown_03000701
+_080A37A0: .4byte gUnknown_03000704
+_080A37A4: .4byte gUnknown_02038559
+_080A37A8: .4byte gUnknown_083C1690
+_080A37AC: .4byte gUnknown_02038564
+_080A37B0:
+ ldr r1, _080A37BC @ =gUnknown_02038564
+ movs r0, 0x6
+_080A37B4:
+ strb r0, [r1]
+_080A37B6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A37BC: .4byte gUnknown_02038564
+ thumb_func_end sub_80A3770
+
+ thumb_func_start sub_80A37C0
+sub_80A37C0: @ 80A37C0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A37F0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080A37F4 @ =sub_80A50C8
+ str r0, [r1]
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ movs r0, 0x2
+ bl sub_80F98DC
+ movs r0, 0x3
+ bl sub_80F98DC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A37F0: .4byte gTasks
+_080A37F4: .4byte sub_80A50C8
+ thumb_func_end sub_80A37C0
+
+ thumb_func_start sub_80A37F8
+sub_80A37F8: @ 80A37F8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, _080A3854 @ =gUnknown_0203855A
+ ldrb r5, [r6]
+ cmp r5, 0xF
+ bhi _080A3868
+ adds r0, r5, 0x1
+ strb r0, [r6]
+ ldr r4, _080A3858 @ =gBG2TilemapBuffer
+ ldrb r2, [r6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x4F
+ bl sub_80A396C
+ ldr r0, _080A385C @ =gUnknown_02038559
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6]
+ lsrs r2, 1
+ ldr r3, _080A3860 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r3
+ movs r3, 0x12
+ ldrsb r3, [r0, r3]
+ adds r0, r4, 0
+ bl sub_80A39E4
+ ldr r4, _080A3864 @ =gUnknown_02038558
+ movs r0, 0x1
+ strb r0, [r4]
+ lsrs r1, r5, 1
+ ldrb r2, [r6]
+ lsrs r2, 1
+ subs r2, 0x1
+ adds r0, r7, 0
+ bl sub_80A48E8
+ movs r0, 0
+ strb r0, [r4]
+ b _080A3932
+ .align 2, 0
+_080A3854: .4byte gUnknown_0203855A
+_080A3858: .4byte gBG2TilemapBuffer
+_080A385C: .4byte gUnknown_02038559
+_080A3860: .4byte gTasks
+_080A3864: .4byte gUnknown_02038558
+_080A3868:
+ ldr r0, _080A38A0 @ =gLinkOpen
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A38B4
+ ldr r1, _080A38A4 @ =gUnknown_03005D10
+ ldr r0, _080A38A8 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A38AC @ =gUnknown_03005D24
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ ldr r4, _080A38B0 @ =gUnknown_02038562
+ ldrb r1, [r4]
+ bl ItemListMenu_ChangeDescription
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080A38F2
+ .align 2, 0
+_080A38A0: .4byte gLinkOpen
+_080A38A4: .4byte gUnknown_03005D10
+_080A38A8: .4byte gUnknown_02038559
+_080A38AC: .4byte gUnknown_03005D24
+_080A38B0: .4byte gUnknown_02038562
+_080A38B4:
+ ldr r1, _080A3938 @ =gUnknown_02038562
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _080A38F2
+ ldr r5, _080A393C @ =gUnknown_03005D10
+ adds r4, r1, 0
+_080A38C0:
+ ldr r0, _080A3940 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A3944 @ =gUnknown_03005D24
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ ldrb r1, [r4]
+ bl ItemListMenu_ChangeDescription
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _080A38C0
+_080A38F2:
+ ldr r0, _080A3938 @ =gUnknown_02038562
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080A3932
+ ldr r1, _080A3948 @ =gUnknown_0203855A
+ movs r0, 0x10
+ strb r0, [r1]
+ ldr r1, _080A394C @ =gUnknown_0203855B
+ ldr r0, _080A3940 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080A3950 @ =sub_80A4F68
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A37C0
+ adds r0, r7, 0
+ bl DestroyTask
+ bl ItemListMenu_InitMenu
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80F979C
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_80F979C
+_080A3932:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3938: .4byte gUnknown_02038562
+_080A393C: .4byte gUnknown_03005D10
+_080A3940: .4byte gUnknown_02038559
+_080A3944: .4byte gUnknown_03005D24
+_080A3948: .4byte gUnknown_0203855A
+_080A394C: .4byte gUnknown_0203855B
+_080A3950: .4byte sub_80A4F68
+ thumb_func_end sub_80A37F8
+
+ thumb_func_start sub_80A3954
+sub_80A3954: @ 80A3954
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080A3968 @ =gUnknown_08E77004
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3968: .4byte gUnknown_08E77004
+ thumb_func_end sub_80A3954
+
+ thumb_func_start sub_80A396C
+sub_80A396C: @ 80A396C
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r4, r5, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r1, r4, 0x2
+ lsls r1, 6
+ adds r1, 0x1C
+ adds r2, r0, r1
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r7, r4
+ bls _080A39B2
+_080A398E:
+ movs r1, 0
+ adds r3, r5, 0x1
+ adds r4, r2, 0
+ adds r4, 0x40
+_080A3996:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r6, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xE
+ bls _080A3996
+ adds r2, r4, 0
+ adds r1, r5, 0
+ lsls r0, r3, 24
+ lsrs r5, r0, 24
+ cmp r7, r1
+ bhi _080A398E
+_080A39B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A396C
+
+ thumb_func_start sub_80A39B8
+sub_80A39B8: @ 80A39B8
+ push {lr}
+ sub sp, 0x10
+ lsls r1, 25
+ lsrs r1, 24
+ ldr r3, _080A39E0 @ =gUnknown_08E96EC8
+ movs r2, 0
+ str r2, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x4
+ movs r2, 0xA
+ bl sub_809D104
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A39E0: .4byte gUnknown_08E96EC8
+ thumb_func_end sub_80A39B8
+
+ thumb_func_start sub_80A39E4
+sub_80A39E4: @ 80A39E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r4, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ adds r5, r6, 0
+ lsls r2, r1, 1
+ mov r9, r2
+ lsls r3, 24
+ asrs r3, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080A3A5C
+ adds r0, r1, 0x1
+ lsls r7, r0, 1
+ cmp r1, 0x5
+ bne _080A3A18
+ movs r7, 0x2
+_080A3A18:
+ ldr r0, _080A3A58 @ =gUnknown_08E96EC8
+ mov r10, r0
+ movs r4, 0x8
+ subs r4, r6
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp]
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x2
+ mov r9, r0
+ str r0, [sp, 0xC]
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xA
+ mov r3, r10
+ bl sub_809D104
+ adds r1, r6, 0x4
+ movs r0, 0
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ mov r0, r8
+ movs r2, 0xA
+ mov r3, r10
+ bl sub_809D104
+ b _080A3AAA
+ .align 2, 0
+_080A3A58: .4byte gUnknown_08E96EC8
+_080A3A5C:
+ cmp r3, 0x1
+ bne _080A3AAA
+ subs r0, r4, 0x1
+ lsls r0, 17
+ lsrs r7, r0, 16
+ cmp r4, 0x1
+ bne _080A3A6C
+ movs r7, 0xA
+_080A3A6C:
+ ldr r6, _080A3ABC @ =gUnknown_08E96EC8
+ str r5, [sp]
+ str r7, [sp, 0x4]
+ movs r0, 0x8
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r1, 0xC
+ subs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ str r0, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r4, [sp, 0xC]
+ mov r0, r8
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_809D104
+_080A3AAA:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3ABC: .4byte gUnknown_08E96EC8
+ thumb_func_end sub_80A39E4
+
+ thumb_func_start sub_80A3AC0
+sub_80A3AC0: @ 80A3AC0
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r2, 0
+ ldr r1, _080A3AE4 @ =0x0000024a
+ ldr r0, _080A3AE8 @ =0x0000107d
+ adds r6, r0, 0
+ subs r0, 0x1
+ adds r5, r0, 0
+_080A3AD4:
+ cmp r2, r4
+ bne _080A3AEC
+ lsls r0, r2, 1
+ adds r0, r3
+ adds r0, r1
+ strh r6, [r0]
+ b _080A3AF4
+ .align 2, 0
+_080A3AE4: .4byte 0x0000024a
+_080A3AE8: .4byte 0x0000107d
+_080A3AEC:
+ lsls r0, r2, 1
+ adds r0, r3
+ adds r0, r1
+ strh r5, [r0]
+_080A3AF4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _080A3AD4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3AC0
+
+ thumb_func_start sub_80A3B04
+sub_80A3B04: @ 80A3B04
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080A3BA4 @ =gUnknown_02038559
+ ldrb r0, [r4]
+ lsls r1, 24
+ asrs r6, r1, 24
+ adds r0, r6, r0
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _080A3B20
+ movs r0, 0
+ strb r0, [r4]
+_080A3B20:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bge _080A3B2C
+ movs r0, 0x4
+ strb r0, [r4]
+_080A3B2C:
+ bl sub_80A76A0
+ bl sub_80A7590
+ ldr r2, _080A3BA8 @ =gUnknown_03005D24
+ ldr r1, _080A3BAC @ =gBagPockets
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldrb r0, [r4]
+ bl sub_80A3D24
+ ldr r0, _080A3BB0 @ =gUnknown_0203855A
+ movs r4, 0
+ strb r4, [r0]
+ adds r0, r5, 0
+ bl sub_80A3954
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x3
+ bl sub_80A396C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A39B8
+ ldr r1, _080A3BB4 @ =gUnknown_0203855B
+ movs r0, 0x6
+ strb r0, [r1]
+ ldr r0, _080A3BB8 @ =gUnknown_02038562
+ strb r4, [r0]
+ ldr r4, _080A3BBC @ =sub_80A37F8
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _080A3B90
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080A3B90:
+ ldr r1, _080A3BC0 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x12]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3BA4: .4byte gUnknown_02038559
+_080A3BA8: .4byte gUnknown_03005D24
+_080A3BAC: .4byte gBagPockets
+_080A3BB0: .4byte gUnknown_0203855A
+_080A3BB4: .4byte gUnknown_0203855B
+_080A3BB8: .4byte gUnknown_02038562
+_080A3BBC: .4byte sub_80A37F8
+_080A3BC0: .4byte gTasks
+ thumb_func_end sub_80A3B04
+
+ thumb_func_start swap32
+swap32: @ 80A3BC4
+ ldr r3, [r0]
+ ldr r2, [r1]
+ str r2, [r0]
+ str r3, [r1]
+ bx lr
+ thumb_func_end swap32
+
+ thumb_func_start sub_80A3BD0
+sub_80A3BD0: @ 80A3BD0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r1, 0
+ adds r6, r0, 0
+ movs r3, 0
+ b _080A3C1A
+_080A3BE0:
+ adds r0, r3, 0x1
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ lsls r1, r2, 24
+ lsrs r1, 24
+ mov r8, r0
+ cmp r4, r1
+ bcs _080A3C14
+ lsls r0, r3, 2
+ adds r5, r0, r6
+ adds r2, r1, 0
+_080A3BF6:
+ ldrh r0, [r5, 0x2]
+ cmp r0, 0
+ bne _080A3C0A
+ lsls r1, r4, 2
+ adds r1, r6
+ adds r0, r5, 0
+ str r2, [sp]
+ bl swap32
+ ldr r2, [sp]
+_080A3C0A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bcc _080A3BF6
+_080A3C14:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+_080A3C1A:
+ adds r2, r7, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r3, r0
+ blt _080A3BE0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3BD0
+
+ thumb_func_start sub_80A3C34
+sub_80A3C34: @ 80A3C34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r1, 0
+ adds r6, r0, 0
+ adds r2, r7, 0
+ lsls r0, r2, 24
+ movs r3, 0
+ cmp r0, 0
+ beq _080A3C9C
+_080A3C4A:
+ adds r0, r3, 0x1
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ lsls r1, r2, 24
+ lsrs r1, 24
+ mov r8, r0
+ cmp r4, r1
+ bcs _080A3C8C
+ lsls r0, r3, 2
+ adds r5, r0, r6
+ adds r2, r1, 0
+_080A3C60:
+ ldrh r0, [r5, 0x2]
+ cmp r0, 0
+ beq _080A3C82
+ lsls r0, r4, 2
+ adds r1, r0, r6
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080A3C82
+ ldrh r0, [r5]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _080A3C82
+ adds r0, r5, 0
+ str r2, [sp]
+ bl swap32
+ ldr r2, [sp]
+_080A3C82:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bcc _080A3C60
+_080A3C8C:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+ adds r2, r7, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r3, r0
+ bcc _080A3C4A
+_080A3C9C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3C34
+
+ thumb_func_start sub_80A3CA8
+sub_80A3CA8: @ 80A3CA8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A3D00 @ =gUnknown_03005D10
+ lsls r0, r6, 2
+ adds r3, r0, r1
+ movs r0, 0
+ strb r0, [r3, 0x2]
+ movs r4, 0
+ ldr r0, _080A3D04 @ =gBagPockets
+ lsls r2, r6, 3
+ adds r1, r2, r0
+ mov r12, r0
+ ldrb r1, [r1, 0x4]
+ cmp r4, r1
+ bcs _080A3CEC
+ mov r7, r12
+ adds r5, r3, 0
+_080A3CCC:
+ adds r3, r2, r7
+ ldr r0, [r3]
+ lsls r1, r4, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080A3CE0
+ ldrb r0, [r5, 0x2]
+ adds r0, 0x1
+ strb r0, [r5, 0x2]
+_080A3CE0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r3, [r3, 0x4]
+ cmp r4, r3
+ bcc _080A3CCC
+_080A3CEC:
+ lsls r0, r6, 3
+ add r0, r12
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ bl sub_80A3BD0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3D00: .4byte gUnknown_03005D10
+_080A3D04: .4byte gBagPockets
+ thumb_func_end sub_80A3CA8
+
+ thumb_func_start sub_80A3D08
+sub_80A3D08: @ 80A3D08
+ push {r4,lr}
+ movs r4, 0
+_080A3D0C:
+ adds r0, r4, 0
+ bl sub_80A3CA8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _080A3D0C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3D08
+
+ thumb_func_start sub_80A3D24
+sub_80A3D24: @ 80A3D24
+ push {lr}
+ lsls r0, 24
+ ldr r1, _080A3D3C @ =gUnknown_03005D10
+ lsrs r0, 22
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x6
+ bls _080A3D36
+ movs r0, 0x7
+_080A3D36:
+ strb r0, [r1, 0x3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3D3C: .4byte gUnknown_03005D10
+ thumb_func_end sub_80A3D24
+
+ thumb_func_start sub_80A3D40
+sub_80A3D40: @ 80A3D40
+ push {r4,lr}
+ movs r4, 0
+_080A3D44:
+ adds r0, r4, 0
+ bl sub_80A3D24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _080A3D44
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3D40
+
+ thumb_func_start sub_80A3D5C
+sub_80A3D5C: @ 80A3D5C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A3DF4 @ =gUnknown_03005D10
+ mov r9, r1
+ ldr r2, _080A3DF8 @ =gUnknown_02038559
+ mov r8, r2
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ lsls r1, 2
+ add r1, r9
+ ldrb r2, [r1, 0x1]
+ ldrb r1, [r1]
+ adds r2, r1
+ ldr r7, _080A3DFC @ =gUnknown_03005D24
+ ldr r1, [r7]
+ lsls r6, r2, 2
+ adds r3, r6, r1
+ ldr r2, _080A3E00 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r3, 0x2]
+ ldrh r1, [r1, 0xA]
+ subs r0, r1
+ strh r0, [r3, 0x2]
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _080A3DE0
+ ldr r0, _080A3E04 @ =gSaveBlock1
+ ldr r1, _080A3E08 @ =0x00000496
+ adds r5, r0, r1
+ ldrh r0, [r5]
+ ldrh r3, [r3]
+ cmp r0, r3
+ bne _080A3DB4
+ bl sub_80A40D0
+ strh r4, [r5]
+_080A3DB4:
+ ldr r0, [r7]
+ adds r0, r6, r0
+ strh r4, [r0]
+ mov r2, r8
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ mov r3, r9
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ adds r0, r1, 0x7
+ ldrb r3, [r2, 0x2]
+ cmp r0, r3
+ bne _080A3DD8
+ cmp r1, 0
+ beq _080A3DD8
+ subs r0, r1, 0x1
+ strb r0, [r2, 0x1]
+_080A3DD8:
+ ldr r0, _080A3DF8 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ bl sub_80A3CA8
+_080A3DE0:
+ ldr r0, _080A3DF8 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ bl sub_80A3D24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3DF4: .4byte gUnknown_03005D10
+_080A3DF8: .4byte gUnknown_02038559
+_080A3DFC: .4byte gUnknown_03005D24
+_080A3E00: .4byte gTasks
+_080A3E04: .4byte gSaveBlock1
+_080A3E08: .4byte 0x00000496
+ thumb_func_end sub_80A3D5C
+
+ thumb_func_start sub_80A3E0C
+sub_80A3E0C: @ 80A3E0C
+ push {lr}
+ ldr r3, _080A3E60 @ =gUnknown_03005D10
+ ldr r2, _080A3E64 @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A3E68 @ =gUnknown_03005D24
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080A3E52
+ strh r0, [r1]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ adds r0, r1, 0x7
+ ldrb r3, [r2, 0x2]
+ cmp r0, r3
+ bne _080A3E4A
+ cmp r1, 0
+ beq _080A3E4A
+ subs r0, r1, 0x1
+ strb r0, [r2, 0x1]
+_080A3E4A:
+ ldr r0, _080A3E64 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ bl sub_80A3CA8
+_080A3E52:
+ ldr r0, _080A3E64 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ bl sub_80A3D24
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3E60: .4byte gUnknown_03005D10
+_080A3E64: .4byte gUnknown_02038559
+_080A3E68: .4byte gUnknown_03005D24
+ thumb_func_end sub_80A3E0C
+
+ thumb_func_start nullsub_16
+nullsub_16: @ 80A3E6C
+ bx lr
+ thumb_func_end nullsub_16
+
+ thumb_func_start sub_80A3E70
+sub_80A3E70: @ 80A3E70
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, _080A3E8C @ =gUnknown_03005D24
+ ldr r2, [r2]
+ lsrs r0, 22
+ adds r0, r2
+ ldr r3, [r0]
+ lsrs r1, 22
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r0]
+ str r3, [r1]
+ bx lr
+ .align 2, 0
+_080A3E8C: .4byte gUnknown_03005D24
+ thumb_func_end sub_80A3E70
+
+ thumb_func_start sub_80A3E90
+sub_80A3E90: @ 80A3E90
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_16
+ ldr r0, _080A3EE8 @ =gTasks
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ ldrb r0, [r5, 0x1C]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080A3EEC @ =gUnknown_03005D10
+ ldr r1, _080A3EF0 @ =gUnknown_02038559
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r2, 2
+ adds r2, r3
+ ldrb r1, [r2, 0x1]
+ ldrb r2, [r2]
+ adds r1, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80A3E70
+ movs r0, 0
+ strh r0, [r5, 0x1C]
+ bl sub_80A763C
+ movs r0, 0
+ bl sub_80A7528
+ bl ItemListMenu_InitMenu
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3EE8: .4byte gTasks
+_080A3EEC: .4byte gUnknown_03005D10
+_080A3EF0: .4byte gUnknown_02038559
+ thumb_func_end sub_80A3E90
+
+ thumb_func_start sub_80A3EF4
+sub_80A3EF4: @ 80A3EF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_16
+ ldr r0, _080A3F44 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080A3F48 @ =gUnknown_03005D10
+ ldr r0, _080A3F4C @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ mvns r0, r0
+ ldrb r2, [r1, 0x1C]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ cmp r2, 0x7
+ bhi _080A3F38
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+_080A3F38:
+ movs r0, 0
+ bl sub_80A7528
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3F44: .4byte gTasks
+_080A3F48: .4byte gUnknown_03005D10
+_080A3F4C: .4byte gUnknown_02038559
+ thumb_func_end sub_80A3EF4
+
+ thumb_func_start sub_80A3F50
+sub_80A3F50: @ 80A3F50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A3F94 @ =gTasks
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r3, r1
+ ldr r5, _080A3F98 @ =gUnknown_03005D10
+ ldr r4, _080A3F9C @ =gUnknown_02038559
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ ldrb r1, [r1]
+ adds r2, r1
+ adds r2, 0x1
+ strh r2, [r3, 0x1C]
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1]
+ adds r1, r2, 0
+ bl sub_80A48E8
+ movs r0, 0x1
+ bl sub_80A7528
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3F94: .4byte gTasks
+_080A3F98: .4byte gUnknown_03005D10
+_080A3F9C: .4byte gUnknown_02038559
+ thumb_func_end sub_80A3F50
+
+ thumb_func_start sub_80A3FA0
+sub_80A3FA0: @ 80A3FA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ ldr r0, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r6, r4, 16
+ lsrs r2, 24
+ adds r0, r2, r0
+ cmp r2, r0
+ bge _080A3FFC
+ mov r8, r5
+ adds r4, r5, r3
+ mov r12, r0
+_080A3FCC:
+ adds r0, r5, 0
+ lsls r3, r2, 16
+ cmp r8, r4
+ bge _080A3FEE
+ asrs r2, r3, 11
+_080A3FD6:
+ lsls r1, r0, 16
+ asrs r1, 16
+ adds r0, r1, r2
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, r4
+ blt _080A3FD6
+_080A3FEE:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, r12
+ blt _080A3FCC
+_080A3FFC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3FA0
+
+ thumb_func_start sub_80A4008
+sub_80A4008: @ 80A4008
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r4, [sp, 0x10]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ bl sub_80A3FA0
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4008
+
+ thumb_func_start sub_80A4030
+sub_80A4030: @ 80A4030
+ ldr r1, _080A4058 @ =gBG2TilemapBuffer + 0xB4
+ lsls r0, 7
+ adds r1, r0, r1
+ movs r0, 0x5A
+ strh r0, [r1]
+ movs r0, 0x5B
+ strh r0, [r1, 0x2]
+ movs r0, 0x5C
+ strh r0, [r1, 0x4]
+ adds r2, r1, 0
+ adds r2, 0x40
+ movs r0, 0x6A
+ strh r0, [r2]
+ adds r2, 0x2
+ movs r0, 0x6B
+ strh r0, [r2]
+ adds r1, 0x44
+ movs r0, 0x6C
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080A4058: .4byte gBG2TilemapBuffer + 0xB4
+ thumb_func_end sub_80A4030
+
+ thumb_func_start sub_80A405C
+sub_80A405C: @ 80A405C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080A40A8 @ =gBG2TilemapBuffer + 0xB4
+ movs r0, 0
+ adds r4, r2, 0
+ movs r1, 0x4F
+_080A406A:
+ strh r1, [r2]
+ strh r1, [r2, 0x2]
+ strh r1, [r2, 0x4]
+ adds r2, 0x40
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xF
+ bls _080A406A
+ lsls r0, r3, 7
+ adds r2, r0, r4
+ movs r0, 0x5A
+ strh r0, [r2]
+ movs r0, 0x5B
+ strh r0, [r2, 0x2]
+ movs r0, 0x5C
+ strh r0, [r2, 0x4]
+ adds r1, r2, 0
+ adds r1, 0x40
+ movs r0, 0x6A
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6B
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6C
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A40A8: .4byte gBG2TilemapBuffer + 0xB4
+ thumb_func_end sub_80A405C
+
+ thumb_func_start sub_80A40AC
+sub_80A40AC: @ 80A40AC
+ lsls r0, 24
+ ldr r1, _080A40CC @ =gBG2TilemapBuffer + 0xB4
+ lsrs r0, 17
+ adds r1, r0, r1
+ movs r2, 0x4F
+ strh r2, [r1]
+ strh r2, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ adds r0, r1, 0
+ adds r0, 0x40
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r1, 0x44
+ strh r2, [r1]
+ bx lr
+ .align 2, 0
+_080A40CC: .4byte gBG2TilemapBuffer + 0xB4
+ thumb_func_end sub_80A40AC
+
+ thumb_func_start sub_80A40D0
+sub_80A40D0: @ 80A40D0
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r2, _080A4114 @ =gUnknown_03005D10
+ ldr r3, _080A4118 @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ adds r7, r2, 0
+ adds r6, r3, 0
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ beq _080A4136
+ ldr r5, _080A411C @ =gSaveBlock1 + 0x496
+_080A40EE:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r3, r0, r7
+ ldrb r2, [r3, 0x1]
+ adds r1, r2, r4
+ ldr r0, _080A4120 @ =gUnknown_03005D24
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _080A4124
+ adds r0, r4, 0
+ bl sub_80A40AC
+ b _080A4136
+ .align 2, 0
+_080A4114: .4byte gUnknown_03005D10
+_080A4118: .4byte gUnknown_02038559
+_080A411C: .4byte gSaveBlock1 + 0x496
+_080A4120: .4byte gUnknown_03005D24
+_080A4124:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bhi _080A4136
+ adds r0, r2, r4
+ ldrb r3, [r3, 0x2]
+ cmp r0, r3
+ bne _080A40EE
+_080A4136:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A40D0
+
+ thumb_func_start sub_80A413C
+sub_80A413C: @ 80A413C
+ push {lr}
+ bl sub_80A40D0
+ ldr r1, _080A415C @ =gUnknown_03005D10
+ ldr r0, _080A4160 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80A405C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A415C: .4byte gUnknown_03005D10
+_080A4160: .4byte gUnknown_02038559
+ thumb_func_end sub_80A413C
+
+ thumb_func_start sub_80A4164
+sub_80A4164: @ 80A4164
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0xB9
+ strb r4, [r0]
+ adds r0, 0x1
+ movs r4, 0xFC
+ strb r4, [r0]
+ movs r4, 0x14
+ strb r4, [r0, 0x1]
+ movs r4, 0x6
+ strb r4, [r0, 0x2]
+ adds r0, 0x3
+ bl ConvertIntToDecimalStringN
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4164
+
+ thumb_func_start sub_80A418C
+sub_80A418C: @ 80A418C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r4, r0, 0
+ mov r9, r1
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x18]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _080A41D0 @ =gStringVar1
+ mov r8, r0
+ adds r1, r4, 0
+ mov r2, r9
+ bl sub_80A4164
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A41D0: .4byte gStringVar1
+ thumb_func_end sub_80A418C
+
+ thumb_func_start sub_80A41D4
+sub_80A41D4: @ 80A41D4
+ push {lr}
+ bl sub_80A763C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A41D4
+
+ thumb_func_start sub_80A41E0
+sub_80A41E0: @ 80A41E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ mov r9, r2
+ adds r5, r3, 0
+ ldr r4, [sp, 0x1C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xFC
+ mov r8, r0
+ strb r0, [r7]
+ movs r6, 0x13
+ strb r6, [r7, 0x1]
+ movs r0, 0x8
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ adds r0, r7, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r1, r8
+ strb r1, [r0]
+ strb r6, [r0, 0x1]
+ movs r1, 0x18
+ strb r1, [r0, 0x2]
+ adds r7, r0, 0x3
+ adds r4, 0x1
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 1
+ movs r2, 0x78
+ subs r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ mov r1, r9
+ movs r3, 0
+ bl sub_8072C74
+ movs r1, 0xB9
+ strb r1, [r0]
+ adds r7, r0, 0x1
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x78
+ movs r3, 0x1
+ bl sub_8072C14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A41E0
+
+ thumb_func_start sub_80A425C
+sub_80A425C: @ 80A425C
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080A42A4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x1C
+ ldrsh r1, [r1, r0]
+ ldr r3, _080A42A8 @ =gUnknown_03005D10
+ ldr r0, _080A42AC @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ subs r1, r0
+ subs r1, 0x1
+ cmp r1, r2
+ bne _080A429C
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_080A429C:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A42A4: .4byte gTasks
+_080A42A8: .4byte gUnknown_03005D10
+_080A42AC: .4byte gUnknown_02038559
+ thumb_func_end sub_80A425C
+
+ thumb_func_start sub_80A42B0
+sub_80A42B0: @ 80A42B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r0, _080A4344 @ =gUnknown_02038540
+ mov r8, r0
+ ldr r1, _080A4348 @ =gUnknown_03005D10
+ ldr r0, _080A434C @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ adds r1, r6
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bgt _080A4370
+ cmp r1, r0
+ bne _080A4374
+ ldr r0, _080A4350 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _080A4370
+ lsls r0, r6, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r0, r1
+ lsrs r5, r0, 24
+ ldr r4, _080A4354 @ =gStringVar1
+ ldr r1, _080A4358 @ =gOtherText_CloseBag
+ adds r0, r4, 0
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ lsls r0, r5, 6
+ ldr r1, _080A435C @ =gBG2TilemapBuffer + 0x1C
+ adds r0, r1
+ movs r2, 0x4F
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ adds r1, r0, 0
+ adds r1, 0x40
+ strh r2, [r1]
+ adds r0, 0x42
+ strh r2, [r0]
+ cmp r6, 0x7
+ beq _080A4370
+ cmp r7, 0x1
+ bne _080A432E
+ mov r1, r8
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080A4332
+_080A432E:
+ cmp r7, 0x2
+ bne _080A4360
+_080A4332:
+ adds r1, r5, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuFillWindowRectWithBlankTile
+ b _080A4370
+ .align 2, 0
+_080A4344: .4byte gUnknown_02038540
+_080A4348: .4byte gUnknown_03005D10
+_080A434C: .4byte gUnknown_02038559
+_080A4350: .4byte gUnknown_03000701
+_080A4354: .4byte gStringVar1
+_080A4358: .4byte gOtherText_CloseBag
+_080A435C: .4byte gBG2TilemapBuffer + 0x1C
+_080A4360:
+ adds r1, r5, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1D
+ movs r3, 0x11
+ bl MenuFillWindowRectWithBlankTile
+_080A4370:
+ movs r0, 0x1
+ b _080A4376
+_080A4374:
+ movs r0, 0
+_080A4376:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A42B0
+
+ thumb_func_start sub_80A4380
+sub_80A4380: @ 80A4380
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r2, [sp]
+ mov r10, r3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A43A0 @ =gUnknown_03005D24
+ mov r8, r0
+ b _080A441A
+ .align 2, 0
+_080A43A0: .4byte gUnknown_03005D24
+_080A43A4:
+ ldr r1, _080A4440 @ =gUnknown_03005D10
+ ldr r0, _080A4444 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ adds r4, r7, r4
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r7, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ lsrs r5, 24
+ ldr r6, _080A4448 @ =gStringVar1
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_80A425C
+ adds r6, r0, 0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r4, 2
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0x66
+ movs r3, 0
+ bl sub_8072C74
+ adds r6, r0, 0
+ movs r0, 0xB9
+ strb r0, [r6]
+ adds r6, 0x1
+ mov r1, r8
+ ldr r0, [r1]
+ adds r4, r0
+ ldrh r1, [r4, 0x2]
+ adds r0, r6, 0
+ movs r2, 0x78
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A4448 @ =gStringVar1
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080A441A:
+ ldr r0, [sp]
+ cmp r7, r0
+ bgt _080A4430
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A43A4
+_080A4430:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4440: .4byte gUnknown_03005D10
+_080A4444: .4byte gUnknown_02038559
+_080A4448: .4byte gStringVar1
+ thumb_func_end sub_80A4380
+
+ thumb_func_start sub_80A444C
+sub_80A444C: @ 80A444C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r0, _080A446C @ =gSaveBlock1 + 0x496
+ mov r9, r0
+ b _080A4520
+ .align 2, 0
+_080A446C: .4byte gSaveBlock1 + 0x496
+_080A4470:
+ ldr r1, _080A44E8 @ =gUnknown_03005D10
+ ldr r0, _080A44EC @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ adds r4, r6, r4
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r6, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ lsrs r5, 24
+ ldr r7, _080A44F0 @ =gStringVar1
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_80A425C
+ adds r7, r0, 0
+ ldr r0, _080A44F4 @ =gUnknown_03005D24
+ mov r8, r0
+ ldr r0, [r0]
+ lsls r4, 2
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r7, 0
+ movs r2, 0x60
+ movs r3, 0
+ bl sub_8072C74
+ ldr r0, _080A44F0 @ =gStringVar1
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ ldr r0, _080A44F8 @ =gUnknown_02038558
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A44FC
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ mov r2, r9
+ ldrh r2, [r2]
+ cmp r0, r2
+ bne _080A451A
+ adds r0, r6, 0
+ bl sub_80A4030
+ b _080A451A
+ .align 2, 0
+_080A44E8: .4byte gUnknown_03005D10
+_080A44EC: .4byte gUnknown_02038559
+_080A44F0: .4byte gStringVar1
+_080A44F4: .4byte gUnknown_03005D24
+_080A44F8: .4byte gUnknown_02038558
+_080A44FC:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ mov r2, r9
+ ldrh r2, [r2]
+ cmp r0, r2
+ bne _080A4514
+ adds r0, r6, 0
+ bl sub_80A405C
+ b _080A451A
+_080A4514:
+ adds r0, r6, 0
+ bl sub_80A40AC
+_080A451A:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080A4520:
+ ldr r0, [sp]
+ cmp r6, r0
+ bgt _080A4536
+ adds r0, r6, 0
+ ldr r1, [sp, 0x4]
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4470
+_080A4536:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A444C
+
+ thumb_func_start sub_80A4548
+sub_80A4548: @ 80A4548
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r0, _080A456C @ =gBG2TilemapBuffer
+ mov r9, r0
+ b _080A46C2
+ .align 2, 0
+_080A456C: .4byte gBG2TilemapBuffer
+_080A4570:
+ ldr r1, _080A461C @ =gUnknown_03005D10
+ ldr r0, _080A4620 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ add r4, r8
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ lsls r0, r1, 25
+ movs r3, 0x80
+ lsls r3, 18
+ adds r0, r3
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r0, 5
+ adds r0, 0xE
+ adds r5, r0, 0
+ ldr r6, _080A4624 @ =gStringVar1
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ mov r2, r8
+ bl sub_80A425C
+ adds r6, r0, 0
+ ldr r3, _080A4628 @ =gUnknown_03005D24
+ mov r10, r3
+ ldr r0, [r3]
+ lsls r7, r4, 2
+ adds r3, r7, r0
+ ldrh r1, [r3]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080A4634
+ lsls r0, r5, 1
+ add r0, r9
+ movs r1, 0x59
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ movs r2, 0x4F
+ strh r2, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ add r0, r9
+ movs r1, 0x69
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x21
+ lsls r0, 1
+ add r0, r9
+ strh r2, [r0]
+ ldrh r0, [r3]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ adds r2, r0, 0
+ muls r2, r1
+ ldr r0, _080A462C @ =gMoveNames
+ adds r2, r0
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldr r3, _080A4630 @ =0xfffffee0
+ adds r1, r3, 0
+ ldrh r3, [r0]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r3, [r0, 0x2]
+ movs r0, 0x2
+ str r0, [sp]
+ adds r0, r6, 0
+ bl sub_80A41E0
+ b _080A46AE
+ .align 2, 0
+_080A461C: .4byte gUnknown_03005D10
+_080A4620: .4byte gUnknown_02038559
+_080A4624: .4byte gStringVar1
+_080A4628: .4byte gUnknown_03005D24
+_080A462C: .4byte gMoveNames
+_080A4630: .4byte 0xfffffee0
+_080A4634:
+ lsls r0, r5, 1
+ add r0, r9
+ ldr r1, _080A46EC @ =0x0000105d
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ adds r1, 0x1
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ add r0, r9
+ adds r1, 0xF
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x21
+ lsls r0, 1
+ add r0, r9
+ adds r1, 0x1
+ strh r1, [r0]
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r4, 0x13
+ strb r4, [r6, 0x1]
+ movs r0, 0x11
+ strb r0, [r6, 0x2]
+ adds r6, 0x3
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r3, _080A46F0 @ =0xfffffeae
+ adds r1, r3
+ adds r0, r6, 0
+ bl ConvertIntToDecimalString
+ adds r6, r0, 0
+ movs r0, 0xFC
+ strb r0, [r6]
+ strb r4, [r6, 0x1]
+ movs r0, 0x18
+ strb r0, [r6, 0x2]
+ adds r6, 0x3
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, _080A46F4 @ =gMoveNames
+ adds r1, r0
+ adds r0, r6, 0
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_8072C74
+_080A46AE:
+ ldr r0, _080A46F8 @ =gStringVar1
+ movs r1, 0xE
+ ldr r2, [sp, 0x10]
+ bl MenuPrint
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080A46C2:
+ ldr r3, [sp, 0x8]
+ cmp r8, r3
+ bgt _080A46DA
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A46DA
+ b _080A4570
+_080A46DA:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A46EC: .4byte 0x0000105d
+_080A46F0: .4byte 0xfffffeae
+_080A46F4: .4byte gMoveNames
+_080A46F8: .4byte gStringVar1
+ thumb_func_end sub_80A4548
+
+ thumb_func_start sub_80A46FC
+sub_80A46FC: @ 80A46FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r0, _080A4724 @ =gBG2TilemapBuffer
+ mov r10, r0
+ ldr r1, _080A4728 @ =gStringVar2
+ mov r9, r1
+ ldr r0, _080A472C @ =gUnknown_03005D24
+ mov r8, r0
+ b _080A47B4
+ .align 2, 0
+_080A4724: .4byte gBG2TilemapBuffer
+_080A4728: .4byte gStringVar2
+_080A472C: .4byte gUnknown_03005D24
+_080A4730:
+ ldr r1, _080A47DC @ =gUnknown_03005D10
+ ldr r0, _080A47E0 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ adds r4, r6, r4
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r6, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ lsrs r5, 24
+ lsls r0, r5, 5
+ adds r0, 0xE
+ lsls r1, r0, 1
+ add r1, r10
+ movs r2, 0x59
+ strh r2, [r1]
+ adds r0, 0x20
+ lsls r0, 1
+ add r0, r10
+ movs r1, 0x69
+ strh r1, [r0]
+ ldr r7, _080A47E4 @ =gStringVar1
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_80A425C
+ adds r7, r0, 0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r4, 2
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ mov r1, r9
+ bl CopyItemName
+ mov r1, r8
+ ldr r0, [r1]
+ adds r4, r0
+ ldrh r1, [r4]
+ subs r1, 0x84
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r3, [r4, 0x2]
+ movs r0, 0x3
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r2, r9
+ bl sub_80A41E0
+ ldr r0, _080A47E4 @ =gStringVar1
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080A47B4:
+ ldr r0, [sp, 0x8]
+ cmp r6, r0
+ bgt _080A47CA
+ adds r0, r6, 0
+ ldr r1, [sp, 0xC]
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4730
+_080A47CA:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A47DC: .4byte gUnknown_03005D10
+_080A47E0: .4byte gUnknown_02038559
+_080A47E4: .4byte gStringVar1
+ thumb_func_end sub_80A46FC
+
+ thumb_func_start sub_80A47E8
+sub_80A47E8: @ 80A47E8
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080A4808 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _080A4852
+ lsls r0, 2
+ ldr r1, _080A480C @ =_080A4810
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A4808: .4byte gUnknown_02038559
+_080A480C: .4byte _080A4810
+ .align 2, 0
+_080A4810:
+ .4byte _080A4824
+ .4byte _080A4824
+ .4byte _080A483C
+ .4byte _080A4848
+ .4byte _080A4830
+_080A4824:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4380
+ b _080A4852
+_080A4830:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A444C
+ b _080A4852
+_080A483C:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4548
+ b _080A4852
+_080A4848:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A46FC
+_080A4852:
+ ldr r1, _080A4870 @ =gUnknown_03005D10
+ ldr r0, _080A4874 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080A4878
+ movs r0, 0
+ movs r1, 0
+ bl sub_80F979C
+ b _080A4880
+ .align 2, 0
+_080A4870: .4byte gUnknown_03005D10
+_080A4874: .4byte gUnknown_02038559
+_080A4878:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+_080A4880:
+ ldr r0, _080A48A4 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _080A48B0
+ ldr r1, _080A48A8 @ =gUnknown_03005D10
+ ldr r0, _080A48AC @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ adds r1, 0x8
+ ldrb r0, [r0, 0x2]
+ adds r0, 0x1
+ cmp r1, r0
+ blt _080A48C6
+ b _080A48D8
+ .align 2, 0
+_080A48A4: .4byte gUnknown_03000701
+_080A48A8: .4byte gUnknown_03005D10
+_080A48AC: .4byte gUnknown_02038559
+_080A48B0:
+ ldr r2, _080A48D0 @ =gUnknown_03005D10
+ ldr r0, _080A48D4 @ =gUnknown_02038559
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x8
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ bge _080A48D8
+_080A48C6:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+ b _080A48E0
+ .align 2, 0
+_080A48D0: .4byte gUnknown_03005D10
+_080A48D4: .4byte gUnknown_02038559
+_080A48D8:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+_080A48E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A47E8
+
+ thumb_func_start sub_80A48E8
+sub_80A48E8: @ 80A48E8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r3, 0
+ bl sub_80A47E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A48E8
+
+ thumb_func_start sub_80A48F8
+sub_80A48F8: @ 80A48F8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0x2
+ bl sub_80A47E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A48F8
+
+ thumb_func_start ItemListMenu_InitDescription
+ItemListMenu_InitDescription: @ 80A490C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _080A4960 @ =gUnknown_03005D10
+ ldr r0, _080A4964 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A4974
+ ldr r0, _080A4968 @ =gOtherText_ReturnTo
+ movs r4, 0x1
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072A18
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A496C @ =gUnknown_0840E740
+ ldr r0, _080A4970 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0x78
+ movs r3, 0x68
+ bl sub_8072A18
+ adds r0, r5, r0
+ b _080A4988
+ .align 2, 0
+_080A4960: .4byte gUnknown_03005D10
+_080A4964: .4byte gUnknown_02038559
+_080A4968: .4byte gOtherText_ReturnTo
+_080A496C: .4byte gUnknown_0840E740
+_080A4970: .4byte gUnknown_03000701
+_080A4974:
+ adds r0, r3, 0
+ bl ItemId_GetDescription
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072A18
+_080A4988:
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bhi _080A49A4
+ lsls r1, r5, 25
+ movs r0, 0xD0
+ lsls r0, 20
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+_080A49A4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemListMenu_InitDescription
+
+ thumb_func_start ItemListMenu_ChangeDescription
+ItemListMenu_ChangeDescription: @ 80A49AC
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080A49E8 @ =gUnknown_03005D10
+ ldr r0, _080A49EC @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A4A18
+ cmp r4, 0
+ bne _080A49F4
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A49F0 @ =gOtherText_ReturnTo
+ movs r1, 0x4
+ movs r2, 0x68
+ b _080A4A08
+ .align 2, 0
+_080A49E8: .4byte gUnknown_03005D10
+_080A49EC: .4byte gUnknown_02038559
+_080A49F0: .4byte gOtherText_ReturnTo
+_080A49F4:
+ cmp r4, 0x1
+ bne _080A4A4C
+ ldr r1, _080A4A10 @ =gUnknown_0840E740
+ ldr r0, _080A4A14 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x4
+ movs r2, 0x78
+_080A4A08:
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ b _080A4A4C
+ .align 2, 0
+_080A4A10: .4byte gUnknown_0840E740
+_080A4A14: .4byte gUnknown_03000701
+_080A4A18:
+ cmp r4, 0
+ bne _080A4A28
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+_080A4A28:
+ lsls r1, r5, 16
+ asrs r1, 16
+ mov r0, sp
+ adds r2, r4, 0
+ bl ItemId_CopyDescription
+ cmp r0, 0
+ beq _080A4A4C
+ lsls r2, r4, 20
+ movs r0, 0xD0
+ lsls r0, 15
+ adds r2, r0
+ lsrs r2, 16
+ mov r0, sp
+ movs r1, 0x4
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+_080A4A4C:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemListMenu_ChangeDescription
+
+ thumb_func_start sub_80A4A54
+sub_80A4A54: @ 80A4A54
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r2, 0x1
+ adds r2, r1, 0
+ adds r1, r5, 0
+_080A4A5E:
+ ldrb r3, [r2]
+ adds r0, r3, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A4A8A
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080A4A78
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080A4A92
+_080A4A78:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080A4A84
+ movs r0, 0
+ b _080A4A92
+_080A4A84:
+ adds r1, r5, 0
+ adds r2, 0x1
+ b _080A4A5E
+_080A4A8A:
+ strb r3, [r1]
+ adds r2, 0x1
+ adds r1, 0x1
+ b _080A4A5E
+_080A4A92:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4A54
+
+ thumb_func_start sub_80A4A98
+sub_80A4A98: @ 80A4A98
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ bne _080A4AB0
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+_080A4AB0:
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80A4A54
+ cmp r0, 0
+ beq _080A4AD2
+ lsls r2, r4, 20
+ movs r0, 0xD0
+ lsls r0, 15
+ adds r2, r0
+ lsrs r2, 16
+ mov r0, sp
+ movs r1, 0x4
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+_080A4AD2:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4A98
+
+ thumb_func_start sub_80A4ADC
+sub_80A4ADC: @ 80A4ADC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A4B0C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080A4AFA
+ movs r0, 0
+ bl sub_80A7528
+_080A4AFA:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080A4B10 @ =gUnknown_0203855C
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B0C: .4byte gTasks
+_080A4B10: .4byte gUnknown_0203855C
+ thumb_func_end sub_80A4ADC
+
+ thumb_func_start sub_80A4B14
+sub_80A4B14: @ 80A4B14
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080A4B50 @ =gUnknown_03005D10
+ ldr r1, _080A4B54 @ =gUnknown_02038559
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, 24
+ ldrb r2, [r1, 0x1]
+ adds r0, r2
+ strb r0, [r1, 0x1]
+ movs r0, 0
+ bl MoveMenuCursor
+ bl sub_80A73C0
+ bl sub_80A763C
+ adds r0, r4, 0
+ bl sub_80A4ADC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B50: .4byte gUnknown_03005D10
+_080A4B54: .4byte gUnknown_02038559
+ thumb_func_end sub_80A4B14
+
+ thumb_func_start sub_80A4B58
+sub_80A4B58: @ 80A4B58
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ bl MoveMenuCursor
+ ldr r2, _080A4B88 @ =gUnknown_03005D10
+ ldr r1, _080A4B8C @ =gUnknown_02038559
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 2
+ adds r1, r2
+ strb r0, [r1]
+ bl sub_80A73C0
+ adds r0, r4, 0
+ bl sub_80A4ADC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B88: .4byte gUnknown_03005D10
+_080A4B8C: .4byte gUnknown_02038559
+ thumb_func_end sub_80A4B58
+
+ thumb_func_start sub_80A4B90
+sub_80A4B90: @ 80A4B90
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x6
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4BBC
+ ldr r0, _080A4BB4 @ =0x00000103
+ cmp r4, r0
+ beq _080A4BAE
+ adds r0, 0xD
+ cmp r4, r0
+ bne _080A4BBC
+_080A4BAE:
+ ldr r0, _080A4BB8 @ =gOtherText_Walk
+ b _080A4BE6
+ .align 2, 0
+_080A4BB4: .4byte 0x00000103
+_080A4BB8: .4byte gOtherText_Walk
+_080A4BBC:
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A4BE4
+ ldr r1, _080A4BDC @ =gUnknown_083C1640
+ ldr r0, _080A4BE0 @ =gUnknown_03000704
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ b _080A4BE6
+ .align 2, 0
+_080A4BDC: .4byte gUnknown_083C1640
+_080A4BE0: .4byte gUnknown_03000704
+_080A4BE4:
+ ldr r0, _080A4BEC @ =gOtherText_Check
+_080A4BE6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A4BEC: .4byte gOtherText_Check
+ thumb_func_end sub_80A4B90
+
+ thumb_func_start sub_80A4BF0
+sub_80A4BF0: @ 80A4BF0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r7, _080A4C38 @ =gUnknown_02038564
+ ldrb r4, [r7]
+ cmp r4, 0x4
+ beq _080A4C00
+ b _080A4CF8
+_080A4C00:
+ movs r0, 0
+ movs r1, 0x7
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuDrawTextWindow
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_80A4008
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4C40
+ ldr r0, _080A4C3C @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A4C40
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80A7834
+ b _080A4CA0
+ .align 2, 0
+_080A4C38: .4byte gUnknown_02038564
+_080A4C3C: .4byte gUnknown_03000701
+_080A4C40:
+ movs r6, 0
+ ldr r0, _080A4C5C @ =gUnknown_02038564
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080A4CA0
+ ldr r4, _080A4C60 @ =gUnknown_083C1640
+_080A4C4C:
+ cmp r6, 0
+ bne _080A4C68
+ ldr r0, _080A4C64 @ =word_203855E
+ ldrh r0, [r0]
+ bl sub_80A4B90
+ adds r3, r0, 0
+ b _080A4C76
+ .align 2, 0
+_080A4C5C: .4byte gUnknown_02038564
+_080A4C60: .4byte gUnknown_083C1640
+_080A4C64: .4byte word_203855E
+_080A4C68:
+ ldr r0, _080A4CC4 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r4
+ ldr r3, [r0]
+_080A4C76:
+ lsrs r0, r6, 1
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x1
+ ands r2, r6
+ lsls r2, 1
+ adds r2, 0x8
+ adds r0, r3, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080A4CC8 @ =gUnknown_02038564
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080A4C4C
+_080A4CA0:
+ ldr r0, _080A4CCC @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A4CD4
+ ldr r0, _080A4CC8 @ =gUnknown_02038564
+ ldrb r3, [r0]
+ ldr r0, _080A4CD0 @ =gUnknown_03000700
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ bl InitMenu
+ b _080A4CEA
+ .align 2, 0
+_080A4CC4: .4byte gUnknown_03000704
+_080A4CC8: .4byte gUnknown_02038564
+_080A4CCC: .4byte gUnknown_03000701
+_080A4CD0: .4byte gUnknown_03000700
+_080A4CD4:
+ ldr r0, _080A4CF4 @ =gUnknown_02038564
+ ldrb r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ bl InitMenu
+_080A4CEA:
+ movs r0, 0x2F
+ bl sub_8072DCC
+ b _080A4D8A
+ .align 2, 0
+_080A4CF4: .4byte gUnknown_02038564
+_080A4CF8:
+ movs r0, 0
+ movs r1, 0x5
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuDrawTextWindow
+ movs r0, 0x6
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x6
+ movs r3, 0xC
+ bl sub_80A4008
+ movs r6, 0
+ ldrb r7, [r7]
+ cmp r6, r7
+ bcs _080A4D6E
+ ldr r7, _080A4D98 @ =gUnknown_083C1640
+_080A4D1E:
+ ldr r0, _080A4D9C @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r7
+ ldr r5, [r0]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 1
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 25
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r2, r0
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080A4DA0 @ =gUnknown_02038564
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080A4D1E
+_080A4D6E:
+ ldr r0, _080A4DA0 @ =gUnknown_02038564
+ ldrb r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x6
+ bl InitMenu
+ movs r0, 0x2F
+ bl sub_8072DCC
+_080A4D8A:
+ movs r0, 0x2
+ bl sub_80A7528
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4D98: .4byte gUnknown_083C1640
+_080A4D9C: .4byte gUnknown_03000704
+_080A4DA0: .4byte gUnknown_02038564
+ thumb_func_end sub_80A4BF0
+
+ thumb_func_start sub_80A4DA4
+sub_80A4DA4: @ 80A4DA4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_80A73FC
+ movs r0, 0x6
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x6
+ movs r3, 0xD
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0x5
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ bl sub_80A7590
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4DA4
+
+ thumb_func_start sub_80A4DD8
+sub_80A4DD8: @ 80A4DD8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ adds r4, r1, 0
+ adds r1, r2, 0
+ adds r6, r3, 0
+ ldr r5, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldr r3, _080A4E84 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ movs r0, 0x1
+ strh r0, [r2, 0xA]
+ adds r0, r4, 0x2
+ mov r9, r0
+ strh r0, [r2, 0xC]
+ adds r0, r1, 0x1
+ mov r8, r0
+ strh r0, [r2, 0xE]
+ adds r2, r4, r6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, r5
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl MenuDrawTextWindow
+ ldr r0, _080A4E88 @ =gBG1TilemapBuffer
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ subs r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ subs r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp]
+ adds r1, r4, 0
+ mov r2, r8
+ adds r3, r6, 0
+ bl sub_80A4008
+ mov r2, r9
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ mov r0, r10
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ mov r3, r8
+ bl sub_80A418C
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4E84: .4byte gTasks
+_080A4E88: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A4DD8
+
+ thumb_func_start sub_80A4E8C
+sub_80A4E8C: @ 80A4E8C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r0, 0x2
+ bl sub_80F996C
+ movs r0, 0x3
+ bl sub_80F996C
+ ldr r5, _080A4F04 @ =gBG2TilemapBuffer
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A3B04
+ ldr r0, _080A4F08 @ =gUnknown_02038559
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80A3AC0
+ bl sub_80A3770
+ bl sub_80A7C64
+ adds r0, r6, 0
+ bl CreateBagPokeballSprite
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4F04: .4byte gBG2TilemapBuffer
+_080A4F08: .4byte gUnknown_02038559
+ thumb_func_end sub_80A4E8C
+
+ thumb_func_start sub_80A4F0C
+sub_80A4F0C: @ 80A4F0C
+ push {r4,lr}
+ ldr r0, _080A4F38 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080A4F60
+ ldr r4, _080A4F3C @ =gMain
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x10
+ beq _080A4F30
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080A4F40
+_080A4F30:
+ movs r0, 0x1
+ movs r1, 0x2
+ b _080A4F58
+ .align 2, 0
+_080A4F38: .4byte gUnknown_03000701
+_080A4F3C: .4byte gMain
+_080A4F40:
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x20
+ beq _080A4F52
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4F60
+_080A4F52:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x1
+_080A4F58:
+ bl sub_80A4E8C
+ movs r0, 0x1
+ b _080A4F62
+_080A4F60:
+ movs r0, 0
+_080A4F62:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4F0C
+
+ thumb_func_start sub_80A4F68
+sub_80A4F68: @ 80A4F68
+ push {lr}
+ bl sub_80A4F0C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4F68
+
+ thumb_func_start sub_80A4F74
+sub_80A4F74: @ 80A4F74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r4, 0
+ movs r5, 0
+ ldr r0, _080A4FAC @ =gMain
+ ldrh r0, [r0, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A4FE8
+ ldr r1, _080A4FB0 @ =gUnknown_03005D10
+ ldr r0, _080A4FB4 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080A4FB8
+ movs r0, 0x1
+ negs r0, r0
+ adds r1, r4, 0
+ bl sub_80A4B58
+ b _080A4FC8
+ .align 2, 0
+_080A4FAC: .4byte gMain
+_080A4FB0: .4byte gUnknown_03005D10
+_080A4FB4: .4byte gUnknown_02038559
+_080A4FB8:
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _080A4FC8
+ movs r0, 0x1
+ negs r0, r0
+ adds r1, r4, 0
+ bl sub_80A4B14
+_080A4FC8:
+ ldr r0, _080A4FE0 @ =gLinkOpen
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A50AE
+ ldr r1, _080A4FE4 @ =gMain
+ ldrh r0, [r1, 0x32]
+ cmp r0, 0x5
+ bne _080A50AE
+ movs r0, 0xB
+ strh r0, [r1, 0x32]
+ b _080A50AE
+ .align 2, 0
+_080A4FE0: .4byte gLinkOpen
+_080A4FE4: .4byte gMain
+_080A4FE8:
+ cmp r1, 0x80
+ bne _080A5088
+ ldr r0, _080A5020 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _080A502C
+ ldr r1, _080A5024 @ =gUnknown_03005D10
+ ldr r0, _080A5028 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bne _080A504E
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _080A5068
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_80A4B14
+ b _080A5068
+ .align 2, 0
+_080A5020: .4byte gUnknown_03000701
+_080A5024: .4byte gUnknown_03005D10
+_080A5028: .4byte gUnknown_02038559
+_080A502C:
+ ldr r1, _080A5058 @ =gUnknown_03005D10
+ ldr r0, _080A505C @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x1]
+ ldrb r3, [r2]
+ adds r1, r3
+ ldrb r0, [r2, 0x2]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A5068
+ ldrb r2, [r2, 0x3]
+ cmp r3, r2
+ beq _080A5060
+_080A504E:
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_80A4B58
+ b _080A5068
+ .align 2, 0
+_080A5058: .4byte gUnknown_03005D10
+_080A505C: .4byte gUnknown_02038559
+_080A5060:
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_80A4B14
+_080A5068:
+ movs r5, 0x1
+ ldr r0, _080A5080 @ =gLinkOpen
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A50C0
+ ldr r1, _080A5084 @ =gMain
+ ldrh r0, [r1, 0x32]
+ cmp r0, 0x5
+ bne _080A50C0
+ movs r0, 0xB
+ strh r0, [r1, 0x32]
+ b _080A50C0
+ .align 2, 0
+_080A5080: .4byte gLinkOpen
+_080A5084: .4byte gMain
+_080A5088:
+ ldr r0, _080A50B4 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A50BC
+ bl sub_80A4F0C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A50BC
+ bl sub_80A73F0
+ ldr r0, _080A50B8 @ =sub_80A4F68
+ str r0, [r4]
+_080A50AE:
+ movs r5, 0x1
+ b _080A50C0
+ .align 2, 0
+_080A50B4: .4byte gTasks
+_080A50B8: .4byte sub_80A4F68
+_080A50BC:
+ bl sub_80A73C0
+_080A50C0:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4F74
+
+ thumb_func_start sub_80A50C8
+sub_80A50C8: @ 80A50C8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A5148 @ =gTasks + 0x8
+ adds r5, r0, r1
+ ldr r0, _080A514C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080A50E6
+ b _080A52BC
+_080A50E6:
+ adds r0, r4, 0
+ bl sub_80A4F74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A50F6
+ b _080A526A
+_080A50F6:
+ ldr r2, _080A5150 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5190
+ ldr r3, _080A5154 @ =gUnknown_02038559
+ ldrb r0, [r3]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080A5190
+ ldr r0, _080A5158 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080A5190
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A5160
+ ldr r1, _080A515C @ =gUnknown_03005D10
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A5138
+ b _080A526A
+_080A5138:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A3F50
+ b _080A526A
+ .align 2, 0
+_080A5148: .4byte gTasks + 0x8
+_080A514C: .4byte gPaletteFade
+_080A5150: .4byte gMain
+_080A5154: .4byte gUnknown_02038559
+_080A5158: .4byte gUnknown_03000701
+_080A515C: .4byte gUnknown_03005D10
+_080A5160:
+ ldr r1, _080A5184 @ =gUnknown_03005D10
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ beq _080A5188
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A3E90
+ b _080A526A
+ .align 2, 0
+_080A5184: .4byte gUnknown_03005D10
+_080A5188:
+ adds r0, r4, 0
+ bl sub_80A3EF4
+ b _080A526A
+_080A5190:
+ ldrh r2, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080A5272
+ ldr r7, _080A51D4 @ =gUnknown_03005D10
+ ldr r6, _080A51D8 @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A51F0
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ bne _080A51E8
+ ldr r0, _080A51DC @ =word_203855E
+ strh r1, [r0]
+ ldr r1, _080A51E0 @ =gUnknown_083C16BC
+ ldr r0, _080A51E4 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A526A
+ .align 2, 0
+_080A51D4: .4byte gUnknown_03005D10
+_080A51D8: .4byte gUnknown_02038559
+_080A51DC: .4byte word_203855E
+_080A51E0: .4byte gUnknown_083C16BC
+_080A51E4: .4byte gUnknown_03000701
+_080A51E8:
+ adds r0, r4, 0
+ bl sub_80A3EF4
+ b _080A526A
+_080A51F0:
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A5264
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080A5250 @ =gUnknown_02038560
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ strb r0, [r2]
+ ldr r3, _080A5254 @ =word_203855E
+ ldrb r0, [r2]
+ ldr r1, _080A5258 @ =gUnknown_03005D24
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3]
+ ldr r1, _080A525C @ =gUnknown_083C16BC
+ ldr r0, _080A5260 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ movs r0, 0
+ bl sub_80F98A4
+ movs r0, 0x1
+ bl sub_80F98A4
+ movs r0, 0x2
+ bl sub_80F98A4
+ movs r0, 0x3
+ bl sub_80F98A4
+ bl sub_80A797C
+ b _080A526A
+ .align 2, 0
+_080A5250: .4byte gUnknown_02038560
+_080A5254: .4byte word_203855E
+_080A5258: .4byte gUnknown_03005D24
+_080A525C: .4byte gUnknown_083C16BC
+_080A5260: .4byte gUnknown_03000701
+_080A5264:
+ adds r0, r4, 0
+ bl sub_80A3E90
+_080A526A:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _080A52BC
+_080A5272:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080A52BC
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ bne _080A52B0
+ ldr r2, _080A52A4 @ =gUnknown_03000701
+ ldrb r0, [r2]
+ cmp r0, 0x5
+ beq _080A52B6
+ ldr r0, _080A52A8 @ =word_203855E
+ strh r1, [r0]
+ ldr r1, _080A52AC @ =gUnknown_083C16BC
+ ldrb r0, [r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A52B6
+ .align 2, 0
+_080A52A4: .4byte gUnknown_03000701
+_080A52A8: .4byte word_203855E
+_080A52AC: .4byte gUnknown_083C16BC
+_080A52B0:
+ adds r0, r4, 0
+ bl sub_80A3EF4
+_080A52B6:
+ adds r0, r4, 0
+ bl sub_808B5B4
+_080A52BC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A50C8
+
+ thumb_func_start sub_80A52C4
+sub_80A52C4: @ 80A52C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ adds r4, r3, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A52F4 @ =gTasks + 0x8
+ adds r1, r0
+ ldr r0, _080A52F8 @ =gMain
+ ldrh r0, [r0, 0x30]
+ movs r2, 0xF0
+ ands r2, r0
+ cmp r2, 0x40
+ bne _080A52FC
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, r3
+ beq _080A533E
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x1
+ b _080A5340
+ .align 2, 0
+_080A52F4: .4byte gTasks + 0x8
+_080A52F8: .4byte gMain
+_080A52FC:
+ cmp r2, 0x80
+ bne _080A5312
+ ldrh r2, [r1, 0x2]
+ movs r4, 0x2
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x1
+ beq _080A530E
+ subs r0, r2, 0x1
+ b _080A5340
+_080A530E:
+ strh r3, [r1, 0x2]
+ b _080A5342
+_080A5312:
+ cmp r2, 0x10
+ bne _080A532A
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ adds r0, 0xA
+ cmp r0, r3
+ bge _080A5326
+ ldrh r0, [r1, 0x2]
+ adds r0, 0xA
+ b _080A5340
+_080A5326:
+ strh r4, [r1, 0x2]
+ b _080A5342
+_080A532A:
+ cmp r2, 0x20
+ bne _080A5346
+ ldrh r2, [r1, 0x2]
+ movs r3, 0x2
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xA
+ ble _080A533E
+ adds r0, r2, 0
+ subs r0, 0xA
+ b _080A5340
+_080A533E:
+ movs r0, 0x1
+_080A5340:
+ strh r0, [r1, 0x2]
+_080A5342:
+ movs r0, 0x1
+ b _080A5348
+_080A5346:
+ movs r0, 0
+_080A5348:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A52C4
+
+ thumb_func_start sub_80A5350
+sub_80A5350: @ 80A5350
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080A539C @ =gTasks + 0x8
+ adds r4, r1, r2
+ ldr r1, _080A53A0 @ =gUnknown_02038560
+ ldrb r1, [r1]
+ ldr r2, _080A53A4 @ =gUnknown_03005D24
+ ldr r2, [r2]
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x2]
+ bl sub_80A52C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A53C0
+ ldr r0, _080A53A8 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A53AC
+ ldrh r0, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0x1
+ bl sub_80A418C
+ b _080A53BC
+ .align 2, 0
+_080A539C: .4byte gTasks + 0x8
+_080A53A0: .4byte gUnknown_02038560
+_080A53A4: .4byte gUnknown_03005D24
+_080A53A8: .4byte gUnknown_02038559
+_080A53AC:
+ ldrh r0, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0x1
+ bl sub_80A418C
+_080A53BC:
+ movs r0, 0x1
+ b _080A53C2
+_080A53C0:
+ movs r0, 0
+_080A53C2:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A5350
+
+ thumb_func_start sub_80A53CC
+sub_80A53CC: @ 80A53CC
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A53EA
+ bl sub_80A3770
+ ldr r0, _080A53F0 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A53F4 @ =gUnknown_02038563
+ strb r0, [r1]
+_080A53EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A53F0: .4byte sub_80A50C8
+_080A53F4: .4byte gUnknown_02038563
+ thumb_func_end sub_80A53CC
+
+ thumb_func_start sub_80A53F8
+sub_80A53F8: @ 80A53F8
+ push {lr}
+ ldr r0, _080A540C @ =gUnknown_03000701
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080A5410 @ =sub_80A53CC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A540C: .4byte gUnknown_03000701
+_080A5410: .4byte sub_80A53CC
+ thumb_func_end sub_80A53F8
+
+ thumb_func_start sub_80A5414
+sub_80A5414: @ 80A5414
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ bl sub_80A78A0
+ cmp r0, 0
+ bne _080A5426
+ b _080A5552
+_080A5426:
+ ldr r2, _080A5460 @ =gMain
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A546C
+ ldr r4, _080A5464 @ =gUnknown_03000700
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5440
+ b _080A5552
+_080A5440:
+ ldrb r1, [r4]
+ ldr r0, _080A5468 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ bne _080A5452
+ b _080A5552
+_080A5452:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A54EE
+ .align 2, 0
+_080A5460: .4byte gMain
+_080A5464: .4byte gUnknown_03000700
+_080A5468: .4byte gUnknown_03000704
+_080A546C:
+ cmp r1, 0x80
+ bne _080A549C
+ ldr r4, _080A5494 @ =gUnknown_03000700
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5552
+ ldrb r1, [r4]
+ ldr r0, _080A5498 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x8
+ beq _080A5552
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ b _080A54EE
+ .align 2, 0
+_080A5494: .4byte gUnknown_03000700
+_080A5498: .4byte gUnknown_03000704
+_080A549C:
+ cmp r1, 0x20
+ bne _080A54CC
+ ldr r4, _080A54C4 @ =gUnknown_03000700
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bls _080A5552
+ adds r1, r0, 0
+ ldr r0, _080A54C8 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ beq _080A5552
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ negs r0, r0
+ b _080A54EE
+ .align 2, 0
+_080A54C4: .4byte gUnknown_03000700
+_080A54C8: .4byte gUnknown_03000704
+_080A54CC:
+ cmp r1, 0x10
+ bne _080A5500
+ ldr r4, _080A54F8 @ =gUnknown_03000700
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bhi _080A5552
+ adds r1, r0, 0
+ ldr r0, _080A54FC @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x8
+ beq _080A5552
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+_080A54EE:
+ bl MoveMenuCursor3
+ strb r0, [r4]
+ b _080A5552
+ .align 2, 0
+_080A54F8: .4byte gUnknown_03000700
+_080A54FC: .4byte gUnknown_03000704
+_080A5500:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5590
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5552
+ ldr r1, _080A5570 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r1, _080A5574 @ =gUnknown_03005D10
+ ldr r0, _080A5578 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A557C @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r1, _080A5580 @ =gUnknown_083C1640
+ ldr r0, _080A5584 @ =gUnknown_03000704
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+_080A5552:
+ cmp r5, 0
+ bne _080A55FA
+ ldr r0, _080A5588 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A55E0
+ ldr r0, _080A558C @ =gUnknown_03000700
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A55D4
+ movs r0, 0xC
+ bl sub_8072DDC
+ b _080A55FA
+ .align 2, 0
+_080A5570: .4byte gTasks
+_080A5574: .4byte gUnknown_03005D10
+_080A5578: .4byte gUnknown_02038559
+_080A557C: .4byte gBG1TilemapBuffer
+_080A5580: .4byte gUnknown_083C1640
+_080A5584: .4byte gUnknown_03000704
+_080A5588: .4byte gUnknown_03000701
+_080A558C: .4byte gUnknown_03000700
+_080A5590:
+ ldr r1, _080A55C0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r0, _080A55C4 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r1, _080A55C8 @ =gUnknown_083C1640
+ ldr r0, _080A55CC @ =gUnknown_03000700
+ ldrb r2, [r0]
+ ldr r0, _080A55D0 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+ b _080A5552
+ .align 2, 0
+_080A55C0: .4byte gTasks
+_080A55C4: .4byte gBG1TilemapBuffer
+_080A55C8: .4byte gUnknown_083C1640
+_080A55CC: .4byte gUnknown_03000700
+_080A55D0: .4byte gUnknown_03000704
+_080A55D4:
+ cmp r0, 0x1
+ bls _080A55E8
+ movs r0, 0x30
+ bl sub_8072DCC
+ b _080A55FA
+_080A55E0:
+ ldr r0, _080A55F0 @ =gUnknown_03000700
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080A55F4
+_080A55E8:
+ movs r0, 0x2F
+ bl sub_8072DCC
+ b _080A55FA
+ .align 2, 0
+_080A55F0: .4byte gUnknown_03000700
+_080A55F4:
+ movs r0, 0x30
+ bl sub_8072DCC
+_080A55FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5414
+
+ thumb_func_start sub_80A5600
+sub_80A5600: @ 80A5600
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r2, _080A563C @ =gMain
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A5648
+ ldr r4, _080A5640 @ =gUnknown_03000700
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080A561E
+ b _080A5736
+_080A561E:
+ adds r1, r0, 0
+ ldr r0, _080A5644 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ bne _080A5630
+ b _080A5736
+_080A5630:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A56D2
+ .align 2, 0
+_080A563C: .4byte gMain
+_080A5640: .4byte gUnknown_03000700
+_080A5644: .4byte gUnknown_03000704
+_080A5648:
+ cmp r1, 0x80
+ bne _080A5680
+ ldr r4, _080A5674 @ =gUnknown_03000700
+ ldrb r1, [r4]
+ ldr r0, _080A5678 @ =gUnknown_02038564
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A5736
+ cmp r1, 0x2
+ beq _080A5736
+ ldr r0, _080A567C @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r1, r0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x8
+ beq _080A5736
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ b _080A56D2
+ .align 2, 0
+_080A5674: .4byte gUnknown_03000700
+_080A5678: .4byte gUnknown_02038564
+_080A567C: .4byte gUnknown_03000704
+_080A5680:
+ cmp r1, 0x20
+ bne _080A56B0
+ ldr r4, _080A56A8 @ =gUnknown_03000700
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bls _080A5736
+ adds r1, r0, 0
+ ldr r0, _080A56AC @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x3
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ beq _080A5736
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x3
+ negs r0, r0
+ b _080A56D2
+ .align 2, 0
+_080A56A8: .4byte gUnknown_03000700
+_080A56AC: .4byte gUnknown_03000704
+_080A56B0:
+ cmp r1, 0x10
+ bne _080A56E4
+ ldr r4, _080A56DC @ =gUnknown_03000700
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bhi _080A5736
+ adds r1, r0, 0
+ ldr r0, _080A56E0 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x8
+ beq _080A5736
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x3
+_080A56D2:
+ bl MoveMenuCursor3
+ strb r0, [r4]
+ b _080A5736
+ .align 2, 0
+_080A56DC: .4byte gUnknown_03000700
+_080A56E0: .4byte gUnknown_03000704
+_080A56E4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5768
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5736
+ ldr r1, _080A574C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r1, _080A5750 @ =gUnknown_03005D10
+ ldr r0, _080A5754 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A5758 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r1, _080A575C @ =gUnknown_083C1640
+ ldr r0, _080A5760 @ =gUnknown_03000704
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+_080A5736:
+ cmp r5, 0
+ bne _080A57BE
+ ldr r0, _080A5764 @ =gUnknown_03000700
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A57AC
+ movs r0, 0xC
+ bl sub_8072DDC
+ b _080A57BE
+ .align 2, 0
+_080A574C: .4byte gTasks
+_080A5750: .4byte gUnknown_03005D10
+_080A5754: .4byte gUnknown_02038559
+_080A5758: .4byte gBG1TilemapBuffer
+_080A575C: .4byte gUnknown_083C1640
+_080A5760: .4byte gUnknown_03000704
+_080A5764: .4byte gUnknown_03000700
+_080A5768:
+ ldr r1, _080A5798 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r0, _080A579C @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r1, _080A57A0 @ =gUnknown_083C1640
+ ldr r0, _080A57A4 @ =gUnknown_03000700
+ ldrb r2, [r0]
+ ldr r0, _080A57A8 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+ b _080A5736
+ .align 2, 0
+_080A5798: .4byte gTasks
+_080A579C: .4byte gBG1TilemapBuffer
+_080A57A0: .4byte gUnknown_083C1640
+_080A57A4: .4byte gUnknown_03000700
+_080A57A8: .4byte gUnknown_03000704
+_080A57AC:
+ cmp r0, 0x2
+ bhi _080A57B8
+ movs r0, 0x2F
+ bl sub_8072DCC
+ b _080A57BE
+_080A57B8:
+ movs r0, 0x30
+ bl sub_8072DCC
+_080A57BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5600
+
+ thumb_func_start sub_80A57C4
+sub_80A57C4: @ 80A57C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r5, _080A57EC @ =gUnknown_03000704
+ ldr r0, _080A57F0 @ =gUnknown_02038559
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ ldr r4, _080A57F4 @ =gUnknown_083C16AE
+ adds r1, r4
+ str r1, [r5]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _080A57FC
+ ldr r1, _080A57F8 @ =gUnknown_02038564
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r5, 0x9
+ b _080A582C
+ .align 2, 0
+_080A57EC: .4byte gUnknown_03000704
+_080A57F0: .4byte gUnknown_02038559
+_080A57F4: .4byte gUnknown_083C16AE
+_080A57F8: .4byte gUnknown_02038564
+_080A57FC:
+ ldr r0, _080A581C @ =word_203855E
+ ldrh r0, [r0]
+ bl sub_80F92F4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A5824
+ adds r0, r4, 0
+ adds r0, 0x8
+ str r0, [r5]
+ ldr r1, _080A5820 @ =gUnknown_02038564
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r5, 0x9
+ b _080A582C
+ .align 2, 0
+_080A581C: .4byte word_203855E
+_080A5820: .4byte gUnknown_02038564
+_080A5824:
+ ldr r1, _080A5880 @ =gUnknown_02038564
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r5, 0x7
+_080A582C:
+ adds r6, r1, 0
+ ldr r0, _080A5884 @ =gBG1TilemapBuffer
+ adds r4, r5, 0x1
+ ldrb r1, [r6]
+ lsls r1, 25
+ lsrs r1, 24
+ str r1, [sp]
+ movs r1, 0x7
+ adds r2, r4, 0
+ movs r3, 0x6
+ bl sub_80A4008
+ ldrb r3, [r6]
+ lsls r3, 1
+ adds r3, 0x1
+ adds r3, r5, r3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x6
+ adds r1, r5, 0
+ movs r2, 0xD
+ bl MenuDrawTextWindow
+ movs r0, 0
+ adds r1, r5, 0
+ bl sub_80A7834
+ ldrb r3, [r6]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5880: .4byte gUnknown_02038564
+_080A5884: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A57C4
+
+ thumb_func_start sub_80A5888
+sub_80A5888: @ 80A5888
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80A78A0
+ cmp r0, 0
+ beq _080A5988
+ ldr r2, _080A58B8 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080A58C0
+ ldr r4, _080A58BC @ =gUnknown_03000700
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080A5988
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A58E2
+ .align 2, 0
+_080A58B8: .4byte gMain
+_080A58BC: .4byte gUnknown_03000700
+_080A58C0:
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080A58F4
+ ldr r4, _080A58EC @ =gUnknown_03000700
+ ldrb r1, [r4]
+ ldr r0, _080A58F0 @ =gUnknown_02038564
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A5988
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080A58E2:
+ bl MoveMenuCursor
+ strb r0, [r4]
+ b _080A5988
+ .align 2, 0
+_080A58EC: .4byte gUnknown_03000700
+_080A58F0: .4byte gUnknown_02038564
+_080A58F4:
+ ldrh r1, [r2, 0x2E]
+ movs r2, 0x1
+ ands r2, r1
+ cmp r2, 0
+ beq _080A5964
+ ldr r1, _080A5948 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x1C]
+ ldr r1, _080A594C @ =gUnknown_03005D10
+ ldr r0, _080A5950 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A5954 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r1, _080A5958 @ =gUnknown_083C1640
+ ldr r0, _080A595C @ =gUnknown_03000700
+ ldrb r2, [r0]
+ ldr r0, _080A5960 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A5988
+ .align 2, 0
+_080A5948: .4byte gTasks
+_080A594C: .4byte gUnknown_03005D10
+_080A5950: .4byte gUnknown_02038559
+_080A5954: .4byte gBG1TilemapBuffer
+_080A5958: .4byte gUnknown_083C1640
+_080A595C: .4byte gUnknown_03000700
+_080A5960: .4byte gUnknown_03000704
+_080A5964:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5988
+ ldr r1, _080A5990 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r0, _080A5994 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r0, _080A5998 @ =gUnknown_083C1640
+ ldr r1, [r0, 0x14]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A5988:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5990: .4byte gTasks
+_080A5994: .4byte gBG1TilemapBuffer
+_080A5998: .4byte gUnknown_083C1640
+ thumb_func_end sub_80A5888
+
+ thumb_func_start sub_80A599C
+sub_80A599C: @ 80A599C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A59C4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A59C8 @ =sub_805469C
+ lsrs r2, r3, 16
+ movs r4, 0
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ ldr r1, _080A59CC @ =gUnknown_03005CE0
+ strb r4, [r1]
+ bl sub_80A5AE4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A59C4: .4byte gTasks
+_080A59C8: .4byte sub_805469C
+_080A59CC: .4byte gUnknown_03005CE0
+ thumb_func_end sub_80A599C
+
+ thumb_func_start sub_80A59D0
+sub_80A59D0: @ 80A59D0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A5A3C @ =gUnknown_03000700
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _080A5A40 @ =gUnknown_03000701
+ ldrb r0, [r7]
+ cmp r0, 0x5
+ bne _080A59E8
+ movs r0, 0x1
+ strb r0, [r1]
+_080A59E8:
+ ldr r1, _080A5A44 @ =gTasks
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r6, r0, r1
+ ldr r3, _080A5A48 @ =gUnknown_03005D10
+ ldr r2, _080A5A4C @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r6, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5A54
+ ldrb r0, [r7]
+ cmp r0, 0x5
+ beq _080A5A54
+ bl sub_80A57C4
+ ldr r0, _080A5A50 @ =sub_80A5888
+ str r0, [r6]
+ b _080A5A9C
+ .align 2, 0
+_080A5A3C: .4byte gUnknown_03000700
+_080A5A40: .4byte gUnknown_03000701
+_080A5A44: .4byte gTasks
+_080A5A48: .4byte gUnknown_03005D10
+_080A5A4C: .4byte gUnknown_02038559
+_080A5A50: .4byte sub_80A5888
+_080A5A54:
+ ldr r0, _080A5A7C @ =gBG1TilemapBuffer
+ bl sub_80A4BF0
+ ldr r0, _080A5A80 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A5A6E
+ ldr r0, _080A5A84 @ =gUnknown_03000701
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A5A90
+_080A5A6E:
+ ldr r0, _080A5A88 @ =gTasks
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A5A8C @ =sub_80A5414
+ b _080A5A9A
+ .align 2, 0
+_080A5A7C: .4byte gBG1TilemapBuffer
+_080A5A80: .4byte gUnknown_02038559
+_080A5A84: .4byte gUnknown_03000701
+_080A5A88: .4byte gTasks
+_080A5A8C: .4byte sub_80A5414
+_080A5A90:
+ ldr r0, _080A5AA4 @ =gTasks
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A5AA8 @ =sub_80A5600
+_080A5A9A:
+ str r0, [r1]
+_080A5A9C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5AA4: .4byte gTasks
+_080A5AA8: .4byte sub_80A5600
+ thumb_func_end sub_80A59D0
+
+ thumb_func_start sub_80A5AAC
+sub_80A5AAC: @ 80A5AAC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080A5ADC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5AE0 @ =sub_80A5B00
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5ADC: .4byte gTasks
+_080A5AE0: .4byte sub_80A5B00
+ thumb_func_end sub_80A5AAC
+
+ thumb_func_start sub_80A5AE4
+sub_80A5AE4: @ 80A5AE4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A5AAC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5AE4
+
+ thumb_func_start sub_80A5B00
+sub_80A5B00: @ 80A5B00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A5B38 @ =gTasks + 0x8
+ adds r2, r0, r1
+ ldr r0, _080A5B3C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5B32
+ ldrh r0, [r2, 0x10]
+ lsls r0, 16
+ ldrh r1, [r2, 0x12]
+ orrs r0, r1
+ bl SetMainCallback2
+ bl gpu_pal_allocator_reset__manage_upper_four
+ adds r0, r4, 0
+ bl DestroyTask
+_080A5B32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5B38: .4byte gTasks + 0x8
+_080A5B3C: .4byte gPaletteFade
+ thumb_func_end sub_80A5B00
+
+ thumb_func_start sub_80A5B40
+sub_80A5B40: @ 80A5B40
+ push {lr}
+_080A5B42:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5B68
+ bl ResetTasks
+ ldr r0, _080A5B60 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A5B64 @ =gUnknown_02038563
+ strb r0, [r1]
+ b _080A5B74
+ .align 2, 0
+_080A5B60: .4byte sub_80A50C8
+_080A5B64: .4byte gUnknown_02038563
+_080A5B68:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5B42
+_080A5B74:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5B40
+
+ thumb_func_start sub_80A5B78
+sub_80A5B78: @ 80A5B78
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080A5BB0 @ =word_203855E
+ ldrh r0, [r5]
+ bl ItemId_GetFieldFunc
+ cmp r0, 0
+ beq _080A5BF2
+ movs r0, 0x5
+ bl PlaySE
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A5BB4
+ ldrh r0, [r5]
+ bl ItemId_GetType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5BB4
+ adds r0, r4, 0
+ bl sub_80A5BF8
+ b _080A5BF2
+ .align 2, 0
+_080A5BB0: .4byte word_203855E
+_080A5BB4:
+ ldr r1, _080A5BE0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r0, _080A5BE4 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ beq _080A5BEC
+ ldr r0, _080A5BE8 @ =word_203855E
+ ldrh r0, [r0]
+ bl ItemId_GetFieldFunc
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A5BF2
+ .align 2, 0
+_080A5BE0: .4byte gTasks
+_080A5BE4: .4byte gUnknown_02038559
+_080A5BE8: .4byte word_203855E
+_080A5BEC:
+ adds r0, r4, 0
+ bl sub_80C9C7C
+_080A5BF2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5B78
+
+ thumb_func_start sub_80A5BF8
+sub_80A5BF8: @ 80A5BF8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A73FC
+ bl sub_80A7590
+ ldr r1, _080A5C1C @ =gOtherText_NoPokemon
+ ldr r2, _080A5C20 @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5C1C: .4byte gOtherText_NoPokemon
+_080A5C20: .4byte sub_80A5C48
+ thumb_func_end sub_80A5BF8
+
+ thumb_func_start sub_80A5C24
+sub_80A5C24: @ 80A5C24
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5C24
+
+ thumb_func_start sub_80A5C48
+sub_80A5C48: @ 80A5C48
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A5C90 @ =gBG1TilemapBuffer
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A5C94 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5C98 @ =sub_80A5C24
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5C90: .4byte gBG1TilemapBuffer
+_080A5C94: .4byte gTasks
+_080A5C98: .4byte sub_80A5C24
+ thumb_func_end sub_80A5C48
+
+ thumb_func_start sub_80A5C9C
+sub_80A5C9C: @ 80A5C9C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5C9C
+
+ thumb_func_start sub_80A5CC4
+sub_80A5CC4: @ 80A5CC4
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5CD8: .4byte Task_CallItemUseOnFieldCallback
+ thumb_func_end sub_80A5CC4
+
+ thumb_func_start Task_CallItemUseOnFieldCallback
+Task_CallItemUseOnFieldCallback: @ 80A5CDC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5CF8
+ ldr r0, _080A5D00 @ =gUnknown_03005D00
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080A5CF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D00: .4byte gUnknown_03005D00
+ thumb_func_end Task_CallItemUseOnFieldCallback
+
+ thumb_func_start sub_80A5D04
+sub_80A5D04: @ 80A5D04
+ push {lr}
+_080A5D06:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5D28
+ ldr r0, _080A5D20 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A5D24 @ =gUnknown_02038563
+ strb r0, [r1]
+ b _080A5D34
+ .align 2, 0
+_080A5D20: .4byte sub_80A50C8
+_080A5D24: .4byte gUnknown_02038563
+_080A5D28:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5D06
+_080A5D34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5D04
+
+ thumb_func_start sub_80A5D38
+sub_80A5D38: @ 80A5D38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A5D70 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ ldr r0, _080A5D74 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D70: .4byte gTasks
+_080A5D74: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5D38
+
+ thumb_func_start sub_80A5D78
+sub_80A5D78: @ 80A5D78
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080A5D9C @ =gBG1TilemapBuffer
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0x8
+ movs r3, 0x5
+ bl sub_80A4008
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D9C: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5D78
+
+ thumb_func_start sub_80A5DA0
+sub_80A5DA0: @ 80A5DA0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r1, _080A5DC4 @ =gStringVar1
+ bl CopyItemName
+ cmp r4, 0x63
+ bls _080A5DCC
+ ldr r0, _080A5DC8 @ =gStringVar2
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ b _080A5DD8
+ .align 2, 0
+_080A5DC4: .4byte gStringVar1
+_080A5DC8: .4byte gStringVar2
+_080A5DCC:
+ ldr r0, _080A5DF0 @ =gStringVar2
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+_080A5DD8:
+ ldr r0, _080A5DF4 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ movs r0, 0x5
+ bl sub_80A7528
+ bl sub_80A5D78
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5DF0: .4byte gStringVar2
+_080A5DF4: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5DA0
+
+ thumb_func_start sub_80A5DF8
+sub_80A5DF8: @ 80A5DF8
+ push {lr}
+ ldr r0, _080A5E18 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xB
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0x4
+ bl sub_80A7528
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E18: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5DF8
+
+ thumb_func_start sub_80A5E1C
+sub_80A5E1C: @ 80A5E1C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A5E58 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5E36
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5E50
+_080A5E36:
+ ldr r0, _080A5E5C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ adds r0, r4, 0
+ bl sub_80A41D4
+ adds r0, r4, 0
+ bl sub_80A5D38
+_080A5E50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E58: .4byte gMain
+_080A5E5C: .4byte gTasks
+ thumb_func_end sub_80A5E1C
+
+ thumb_func_start sub_80A5E60
+sub_80A5E60: @ 80A5E60
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A5DF8
+ adds r0, r4, 0
+ bl sub_80A3D5C
+ ldr r1, _080A5E88 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5E8C @ =sub_80A5E1C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E88: .4byte gTasks
+_080A5E8C: .4byte sub_80A5E1C
+ thumb_func_end sub_80A5E60
+
+ thumb_func_start sub_80A5E90
+sub_80A5E90: @ 80A5E90
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A5D38
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5E90
+
+ thumb_func_start sub_80A5EA0
+sub_80A5EA0: @ 80A5EA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_80A5350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A5F0C
+ ldr r0, _080A5EE8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5EF8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A5EEC @ =word_203855E
+ ldrh r0, [r0]
+ ldr r2, _080A5EF0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ ldrh r1, [r1, 0xA]
+ bl sub_80A5DA0
+ ldr r1, _080A5EF4 @ =gUnknown_083C16F4
+ adds r0, r4, 0
+ bl sub_80F914C
+ b _080A5F0C
+ .align 2, 0
+_080A5EE8: .4byte gMain
+_080A5EEC: .4byte word_203855E
+_080A5EF0: .4byte gTasks
+_080A5EF4: .4byte gUnknown_083C16F4
+_080A5EF8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5F0C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_80A5D38
+_080A5F0C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5EA0
+
+ thumb_func_start sub_80A5F14
+sub_80A5F14: @ 80A5F14
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080A5F58 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5F5C @ =sub_80A5EA0
+ str r1, [r0]
+ movs r0, 0x3
+ bl sub_80A7528
+ ldr r0, _080A5F60 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A5F64
+ movs r0, 0x3
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x6
+ movs r2, 0x9
+ movs r3, 0x7
+ bl sub_80A4DD8
+ b _080A5F78
+ .align 2, 0
+_080A5F58: .4byte gTasks
+_080A5F5C: .4byte sub_80A5EA0
+_080A5F60: .4byte gUnknown_02038559
+_080A5F64:
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x9
+ movs r3, 0x6
+ bl sub_80A4DD8
+_080A5F78:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F14
+
+ thumb_func_start sub_80A5F80
+sub_80A5F80: @ 80A5F80
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F80
+
+ thumb_func_start sub_80A5FAC
+sub_80A5FAC: @ 80A5FAC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A5FD0 @ =gSaveBlock1
+ ldr r1, _080A5FD4 @ =0x00000496
+ adds r4, r0, r1
+ ldr r5, _080A5FD8 @ =word_203855E
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _080A5FDC
+ bl sub_80A40D0
+ movs r0, 0
+ b _080A5FE2
+ .align 2, 0
+_080A5FD0: .4byte gSaveBlock1
+_080A5FD4: .4byte 0x00000496
+_080A5FD8: .4byte word_203855E
+_080A5FDC:
+ bl sub_80A413C
+ ldrh r0, [r5]
+_080A5FE2:
+ strh r0, [r4]
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r6, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r6, 0
+ bl sub_80A37C0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5FAC
+
+ thumb_func_start sub_80A6000
+sub_80A6000: @ 80A6000
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6000
+
+ thumb_func_start sub_80A6024
+sub_80A6024: @ 80A6024
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A606C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6062
+ ldr r0, _080A6070 @ =gBG1TilemapBuffer
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A6074 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A6078 @ =sub_80A6000
+ str r1, [r0]
+_080A6062:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A606C: .4byte gMain
+_080A6070: .4byte gBG1TilemapBuffer
+_080A6074: .4byte gTasks
+_080A6078: .4byte sub_80A6000
+ thumb_func_end sub_80A6024
+
+ thumb_func_start DisplayCannotBeHeldMessage
+DisplayCannotBeHeldMessage: @ 80A607C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A73FC
+ ldr r0, _080A60B4 @ =word_203855E
+ ldrh r0, [r0]
+ ldr r1, _080A60B8 @ =gStringVar1
+ bl CopyItemName
+ ldr r5, _080A60BC @ =gStringVar4
+ ldr r1, _080A60C0 @ =gOtherText_CantBeHeld
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ bl sub_80A7590
+ ldr r2, _080A60C4 @ =sub_80A6024
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A60B4: .4byte word_203855E
+_080A60B8: .4byte gStringVar1
+_080A60BC: .4byte gStringVar4
+_080A60C0: .4byte gOtherText_CantBeHeld
+_080A60C4: .4byte sub_80A6024
+ thumb_func_end DisplayCannotBeHeldMessage
+
+ thumb_func_start ItemMenu_Give
+ItemMenu_Give: @ 80A60C8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _080A60FC @ =word_203855E
+ ldrh r0, [r5]
+ bl sub_80F931C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6108
+ bl sub_80A73FC
+ bl sub_80A7590
+ ldr r1, _080A6100 @ =gOtherText_CantWriteMail
+ ldr r2, _080A6104 @ =sub_80A6024
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A616E
+ .align 2, 0
+_080A60FC: .4byte word_203855E
+_080A6100: .4byte gOtherText_CantWriteMail
+_080A6104: .4byte sub_80A6024
+_080A6108:
+ ldrh r0, [r5]
+ bl ItemId_GetImportance
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A6168
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6128
+ adds r0, r4, 0
+ bl sub_80A5BF8
+ b _080A616E
+_080A6128:
+ ldr r1, _080A6158 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A615C @ =sub_808B020
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ ldr r1, _080A6160 @ =sub_80A5B00
+ str r1, [r0]
+ ldr r1, _080A6164 @ =gUnknown_02038561
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080A616E
+ .align 2, 0
+_080A6158: .4byte gTasks
+_080A615C: .4byte sub_808B020
+_080A6160: .4byte sub_80A5B00
+_080A6164: .4byte gUnknown_02038561
+_080A6168:
+ adds r0, r6, 0
+ bl DisplayCannotBeHeldMessage
+_080A616E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemMenu_Give
+
+ thumb_func_start sub_80A6178
+sub_80A6178: @ 80A6178
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80A5AE4
+ ldr r1, _080A61A0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A61A4 @ =sub_814625C
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A61A0: .4byte gTasks
+_080A61A4: .4byte sub_814625C
+ thumb_func_end sub_80A6178
+
+ thumb_func_start sub_80A61A8
+sub_80A61A8: @ 80A61A8
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A61C2
+ ldr r0, _080A61C8 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A61CC @ =gUnknown_02038563
+ strb r0, [r1]
+_080A61C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A61C8: .4byte sub_80A50C8
+_080A61CC: .4byte gUnknown_02038563
+ thumb_func_end sub_80A61A8
+
+ thumb_func_start sub_80A61D0
+sub_80A61D0: @ 80A61D0
+ push {lr}
+ ldr r0, _080A61E4 @ =gUnknown_03000701
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, _080A61E8 @ =sub_80A61A8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A61E4: .4byte gUnknown_03000701
+_080A61E8: .4byte sub_80A61A8
+ thumb_func_end sub_80A61D0
+
+ thumb_func_start sub_80A61EC
+sub_80A61EC: @ 80A61EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A620C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6210 @ =sub_808A3F8
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A620C: .4byte gTasks
+_080A6210: .4byte sub_808A3F8
+ thumb_func_end sub_80A61EC
+
+ thumb_func_start sub_80A6214
+sub_80A6214: @ 80A6214
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080A6244 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _080A6248 @ =word_203855E
+ ldrh r0, [r4]
+ bl sub_80F931C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6254
+ bl sub_80A73FC
+ bl sub_80A7590
+ ldr r1, _080A624C @ =gOtherText_CantWriteMail
+ ldr r2, _080A6250 @ =sub_80A6024
+ adds r0, r5, 0
+ b _080A6280
+ .align 2, 0
+_080A6244: .4byte gUnknown_02038559
+_080A6248: .4byte word_203855E
+_080A624C: .4byte gOtherText_CantWriteMail
+_080A6250: .4byte sub_80A6024
+_080A6254:
+ ldrh r0, [r4]
+ bl sub_80F92F4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6298
+ bl sub_80A73FC
+ ldrh r0, [r4]
+ ldr r1, _080A6288 @ =gStringVar1
+ bl CopyItemName
+ ldr r4, _080A628C @ =gStringVar4
+ ldr r1, _080A6290 @ =gOtherText_CantBeHeldHere
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ bl sub_80A7590
+ ldr r2, _080A6294 @ =sub_80A6024
+ adds r0, r5, 0
+ adds r1, r4, 0
+_080A6280:
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A62D2
+ .align 2, 0
+_080A6288: .4byte gStringVar1
+_080A628C: .4byte gStringVar4
+_080A6290: .4byte gOtherText_CantBeHeldHere
+_080A6294: .4byte sub_80A6024
+_080A6298:
+ cmp r6, 0x5
+ beq _080A62CC
+ ldrh r0, [r4]
+ bl ItemId_GetImportance
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A62CC
+ ldr r1, _080A62C4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A62C8 @ =sub_808A3F8
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ adds r0, r5, 0
+ bl sub_80A5AAC
+ b _080A62D2
+ .align 2, 0
+_080A62C4: .4byte gTasks
+_080A62C8: .4byte sub_808A3F8
+_080A62CC:
+ adds r0, r5, 0
+ bl DisplayCannotBeHeldMessage
+_080A62D2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6214
+
+ thumb_func_start sub_80A62D8
+sub_80A62D8: @ 80A62D8
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A62F2
+ ldr r0, _080A62F8 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A62FC @ =gUnknown_02038563
+ strb r0, [r1]
+_080A62F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A62F8: .4byte sub_80A50C8
+_080A62FC: .4byte gUnknown_02038563
+ thumb_func_end sub_80A62D8
+
+ thumb_func_start sub_80A6300
+sub_80A6300: @ 80A6300
+ push {lr}
+ ldr r0, _080A6314 @ =gUnknown_03000701
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r0, _080A6318 @ =sub_80A62D8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6314: .4byte gUnknown_03000701
+_080A6318: .4byte sub_80A62D8
+ thumb_func_end sub_80A6300
+
+ thumb_func_start sub_80A631C
+sub_80A631C: @ 80A631C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6344 @ =gUnknown_0300485C
+ ldr r1, _080A6348 @ =sub_80B3050
+ str r1, [r2]
+ ldr r2, _080A634C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6350 @ =c2_exit_to_overworld_2_switch
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6344: .4byte gUnknown_0300485C
+_080A6348: .4byte sub_80B3050
+_080A634C: .4byte gTasks
+_080A6350: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80A631C
+
+ thumb_func_start sub_80A6354
+sub_80A6354: @ 80A6354
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80A7590
+ ldr r0, _080A63C4 @ =gTasks
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r0
+ ldr r4, _080A63C8 @ =gUnknown_03005D10
+ ldr r3, _080A63CC @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r2, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ ldr r4, _080A63D0 @ =word_203855E
+ ldrh r0, [r4]
+ ldr r1, _080A63D4 @ =gStringVar2
+ bl CopyItemName
+ ldrh r0, [r4]
+ bl ItemId_GetPrice
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A63E4
+ ldr r4, _080A63D8 @ =gStringVar4
+ ldr r1, _080A63DC @ =gOtherText_CantBuyThat
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A63E0 @ =sub_80A6444
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A63FA
+ .align 2, 0
+_080A63C4: .4byte gTasks
+_080A63C8: .4byte gUnknown_03005D10
+_080A63CC: .4byte gUnknown_02038559
+_080A63D0: .4byte word_203855E
+_080A63D4: .4byte gStringVar2
+_080A63D8: .4byte gStringVar4
+_080A63DC: .4byte gOtherText_CantBuyThat
+_080A63E0: .4byte sub_80A6444
+_080A63E4:
+ ldr r4, _080A6400 @ =gStringVar4
+ ldr r1, _080A6404 @ =gOtherText_HowManyToSell
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A6408 @ =sub_80A648C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+_080A63FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6400: .4byte gStringVar4
+_080A6404: .4byte gOtherText_HowManyToSell
+_080A6408: .4byte sub_80A648C
+ thumb_func_end sub_80A6354
+
+ thumb_func_start sub_80A640C
+sub_80A640C: @ 80A640C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A6440 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6440: .4byte gTasks
+ thumb_func_end sub_80A640C
+
+ thumb_func_start sub_80A6444
+sub_80A6444: @ 80A6444
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A6480 @ =gBG1TilemapBuffer
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A6484 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A6488 @ =sub_80A640C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6480: .4byte gBG1TilemapBuffer
+_080A6484: .4byte gTasks
+_080A6488: .4byte sub_80A640C
+ thumb_func_end sub_80A6444
+
+ thumb_func_start sub_80A648C
+sub_80A648C: @ 80A648C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A64E8 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, _080A64EC @ =Task_BuyHowManyDialogueHandleInput
+ str r0, [r4]
+ ldr r0, _080A64F0 @ =gBG1TilemapBuffer
+ movs r5, 0x2
+ str r5, [sp]
+ movs r1, 0x1
+ movs r2, 0xB
+ movs r3, 0xC
+ bl sub_80A4008
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0xB
+ strh r0, [r4, 0xE]
+ ldr r0, _080A64F4 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A64F8
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0xB
+ bl sub_80A418C
+ b _080A6506
+ .align 2, 0
+_080A64E8: .4byte gTasks
+_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput
+_080A64F0: .4byte gBG1TilemapBuffer
+_080A64F4: .4byte gUnknown_02038559
+_080A64F8:
+ str r5, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0xB
+ bl sub_80A418C
+_080A6506:
+ ldr r0, _080A651C @ =word_203855E
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl BuyMenuDisplayMessage
+ bl sub_80A683C
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A651C: .4byte word_203855E
+ thumb_func_end sub_80A648C
+
+ thumb_func_start sub_80A6520
+sub_80A6520: @ 80A6520
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A6544 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A653E
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl BuyMenuPrintItemQuantityAndPrice
+_080A653E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6544: .4byte gMain
+ thumb_func_end sub_80A6520
+
+ thumb_func_start sub_80A6548
+sub_80A6548: @ 80A6548
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80A48F8
+ ldr r1, _080A656C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A6570 @ =sub_80A6520
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A656C: .4byte gTasks
+_080A6570: .4byte sub_80A6520
+ thumb_func_end sub_80A6548
+
+ thumb_func_start sub_80A6574
+sub_80A6574: @ 80A6574
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x5F
+ bl PlaySE
+ ldr r0, _080A65A0 @ =word_203855E
+ ldrh r0, [r0]
+ ldr r1, _080A65A4 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ ldrb r1, [r4, 0xA]
+ bl sub_80A6870
+ ldr r0, _080A65A8 @ =sub_80A6548
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A65A0: .4byte word_203855E
+_080A65A4: .4byte gTasks
+_080A65A8: .4byte sub_80A6548
+ thumb_func_end sub_80A6574
+
+ thumb_func_start sub_80A65AC
+sub_80A65AC: @ 80A65AC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A6600 @ =gBG1TilemapBuffer
+ movs r1, 0x6
+ str r1, [sp]
+ movs r1, 0x7
+ movs r2, 0x6
+ movs r3, 0x6
+ bl sub_80A36B8
+ ldr r0, _080A6604 @ =word_203855E
+ ldrh r0, [r0]
+ ldr r1, _080A6608 @ =gStringVar2
+ bl CopyItemName
+ ldr r4, _080A660C @ =gStringVar4
+ ldr r1, _080A6610 @ =gOtherText_SoldItem
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A6614 @ =sub_80A6574
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ adds r0, r5, 0
+ bl sub_80A3D5C
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6600: .4byte gBG1TilemapBuffer
+_080A6604: .4byte word_203855E
+_080A6608: .4byte gStringVar2
+_080A660C: .4byte gStringVar4
+_080A6610: .4byte gOtherText_SoldItem
+_080A6614: .4byte sub_80A6574
+ thumb_func_end sub_80A65AC
+
+ thumb_func_start sub_80A6618
+sub_80A6618: @ 80A6618
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A664C @ =gBG1TilemapBuffer
+ movs r1, 0x6
+ str r1, [sp]
+ movs r1, 0x7
+ movs r2, 0x6
+ movs r3, 0x6
+ bl sub_80A36B8
+ adds r0, r4, 0
+ bl BuyMenuPrintItemQuantityAndPrice
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A664C: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A6618
+
+ thumb_func_start sub_80A6650
+sub_80A6650: @ 80A6650
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A5D78
+ ldr r1, _080A666C @ =gUnknown_083C16FC
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A666C: .4byte gUnknown_083C16FC
+ thumb_func_end sub_80A6650
+
+ thumb_func_start Task_BuyHowManyDialogueHandleInput
+Task_BuyHowManyDialogueHandleInput: @ 80A6670
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ adds r0, r5, 0
+ bl sub_80A5350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A66B4
+ movs r0, 0x6
+ movs r1, 0xB
+ movs r2, 0xC
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A66AC @ =word_203855E
+ ldrh r0, [r0]
+ ldr r2, _080A66B0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ ldrh r1, [r1, 0xA]
+ bl BuyMenuDisplayMessage
+ b _080A6758
+ .align 2, 0
+_080A66AC: .4byte word_203855E
+_080A66B0: .4byte gTasks
+_080A66B4:
+ ldr r0, _080A6724 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6744
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A6728 @ =gBG1TilemapBuffer
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0xD
+ bl sub_80A36B8
+ ldr r4, _080A672C @ =gStringVar1
+ ldr r0, _080A6730 @ =word_203855E
+ ldrh r0, [r0]
+ bl ItemId_GetPrice
+ lsls r0, 16
+ lsrs r0, 17
+ ldr r2, _080A6734 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0xA
+ ldrsh r1, [r1, r2]
+ muls r1, r0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080A6738 @ =gStringVar4
+ ldr r1, _080A673C @ =gOtherText_CanPay
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A6740 @ =sub_80A6650
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A6758
+ .align 2, 0
+_080A6724: .4byte gMain
+_080A6728: .4byte gBG1TilemapBuffer
+_080A672C: .4byte gStringVar1
+_080A6730: .4byte word_203855E
+_080A6734: .4byte gTasks
+_080A6738: .4byte gStringVar4
+_080A673C: .4byte gOtherText_CanPay
+_080A6740: .4byte sub_80A6650
+_080A6744:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6758
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl BuyMenuPrintItemQuantityAndPrice
+_080A6758:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_BuyHowManyDialogueHandleInput
+
+ thumb_func_start sub_80A6760
+sub_80A6760: @ 80A6760
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A6794 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6794: .4byte gTasks
+ thumb_func_end sub_80A6760
+
+ thumb_func_start BuyMenuPrintItemQuantityAndPrice
+BuyMenuPrintItemQuantityAndPrice: @ 80A6798
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A67E8 @ =gBG1TilemapBuffer
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0
+ bl RemoveMoneyLabelObject
+ movs r0, 0
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A67EC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A67F0 @ =sub_80A6760
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A67E8: .4byte gBG1TilemapBuffer
+_080A67EC: .4byte gTasks
+_080A67F0: .4byte sub_80A6760
+ thumb_func_end BuyMenuPrintItemQuantityAndPrice
+
+ thumb_func_start BuyMenuDisplayMessage
+BuyMenuDisplayMessage: @ 80A67F4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ bl ItemId_GetPrice
+ lsls r0, 16
+ lsrs r0, 17
+ muls r0, r5
+ movs r1, 0x6
+ movs r2, 0x6
+ movs r3, 0xB
+ bl sub_80B7A94
+ ldr r6, _080A6838 @ =gStringVar1
+ adds r0, r4, 0
+ bl ItemId_GetPrice
+ lsls r0, 16
+ lsrs r0, 17
+ adds r1, r0, 0
+ muls r1, r5
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6838: .4byte gStringVar1
+ thumb_func_end BuyMenuDisplayMessage
+
+ thumb_func_start sub_80A683C
+sub_80A683C: @ 80A683C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080A6868 @ =gSaveBlock1
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B7C14
+ ldr r0, _080A686C @ =gBG1TilemapBuffer
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0xC
+ bl sub_80A4008
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6868: .4byte gSaveBlock1
+_080A686C: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A683C
+
+ thumb_func_start sub_80A6870
+sub_80A6870: @ 80A6870
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080A68A0 @ =gSaveBlock1 + 0x490
+ bl ItemId_GetPrice
+ lsls r0, 16
+ lsrs r0, 17
+ adds r1, r0, 0
+ muls r1, r4
+ adds r0, r5, 0
+ bl sub_80B79B8
+ ldr r0, [r5]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B7BEC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68A0: .4byte gSaveBlock1 + 0x490
+ thumb_func_end sub_80A6870
+
+ thumb_func_start sub_80A68A4
+sub_80A68A4: @ 80A68A4
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A68BE
+ ldr r0, _080A68C4 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A68C8 @ =gUnknown_02038563
+ strb r0, [r1]
+_080A68BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68C4: .4byte sub_80A50C8
+_080A68C8: .4byte gUnknown_02038563
+ thumb_func_end sub_80A68A4
+
+ thumb_func_start sub_80A68CC
+sub_80A68CC: @ 80A68CC
+ push {lr}
+ ldr r1, _080A68E4 @ =gUnknown_02038559
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r1, _080A68E8 @ =gUnknown_03000701
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _080A68EC @ =sub_80A68A4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68E4: .4byte gUnknown_02038559
+_080A68E8: .4byte gUnknown_03000701
+_080A68EC: .4byte sub_80A68A4
+ thumb_func_end sub_80A68CC
+
+ thumb_func_start sub_80A68F0
+sub_80A68F0: @ 80A68F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6910 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6914 @ =sub_80546B8
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6910: .4byte gTasks
+_080A6914: .4byte sub_80546B8
+ thumb_func_end sub_80A68F0
+
+ thumb_func_start sub_80A6918
+sub_80A6918: @ 80A6918
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6938 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A693C @ =sub_80546B8
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6938: .4byte gTasks
+_080A693C: .4byte sub_80546B8
+ thumb_func_end sub_80A6918
+
+ thumb_func_start sub_80A6940
+sub_80A6940: @ 80A6940
+ push {lr}
+_080A6942:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6968
+ ldr r0, _080A6960 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A6964 @ =gUnknown_02038563
+ strb r0, [r1]
+ bl sub_80A699C
+ b _080A6974
+ .align 2, 0
+_080A6960: .4byte sub_80A50C8
+_080A6964: .4byte gUnknown_02038563
+_080A6968:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6942
+_080A6974:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6940
+
+ thumb_func_start sub_80A6978
+sub_80A6978: @ 80A6978
+ push {lr}
+ ldr r1, _080A6990 @ =gUnknown_02038559
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r1, _080A6994 @ =gUnknown_03000701
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080A6998 @ =sub_80A6940
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6990: .4byte gUnknown_02038559
+_080A6994: .4byte gUnknown_03000701
+_080A6998: .4byte sub_80A6940
+ thumb_func_end sub_80A6978
+
+ thumb_func_start sub_80A699C
+sub_80A699C: @ 80A699C
+ ldr r1, _080A69AC @ =gUnknown_03000704
+ ldr r0, _080A69B0 @ =gUnknown_083C16B8
+ str r0, [r1]
+ ldr r1, _080A69B4 @ =gUnknown_02038564
+ movs r0, 0x4
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A69AC: .4byte gUnknown_03000704
+_080A69B0: .4byte gUnknown_083C16B8
+_080A69B4: .4byte gUnknown_02038564
+ thumb_func_end sub_80A699C
+
+ thumb_func_start sub_80A69B8
+sub_80A69B8: @ 80A69B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A69D8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A69DC @ =sub_804E990
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A69D8: .4byte gTasks
+_080A69DC: .4byte sub_804E990
+ thumb_func_end sub_80A69B8
+
+ thumb_func_start sub_80A69E0
+sub_80A69E0: @ 80A69E0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6A00 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6A04 @ =sub_804E990
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A00: .4byte gTasks
+_080A6A04: .4byte sub_804E990
+ thumb_func_end sub_80A69E0
+
+ thumb_func_start sub_80A6A08
+sub_80A6A08: @ 80A6A08
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6A22
+ ldr r0, _080A6A28 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A6A2C @ =gUnknown_02038563
+ strb r0, [r1]
+_080A6A22:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A28: .4byte sub_80A50C8
+_080A6A2C: .4byte gUnknown_02038563
+ thumb_func_end sub_80A6A08
+
+ thumb_func_start sub_80A6A30
+sub_80A6A30: @ 80A6A30
+ push {lr}
+ ldr r0, _080A6A44 @ =gUnknown_03000701
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r0, _080A6A48 @ =sub_80A6A08
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A44: .4byte gUnknown_03000701
+_080A6A48: .4byte sub_80A6A08
+ thumb_func_end sub_80A6A30
+
+ thumb_func_start sub_80A6A4C
+sub_80A6A4C: @ 80A6A4C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6A74 @ =gUnknown_0300485C
+ ldr r1, _080A6A78 @ =sub_813A0F8
+ str r1, [r2]
+ ldr r2, _080A6A7C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6A80 @ =c2_exit_to_overworld_2_switch
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A74: .4byte gUnknown_0300485C
+_080A6A78: .4byte sub_813A0F8
+_080A6A7C: .4byte gTasks
+_080A6A80: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80A6A4C
+
+ thumb_func_start sub_80A6A84
+sub_80A6A84: @ 80A6A84
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r6, _080A6AE8 @ =gTasks + 0x8
+ adds r0, r4, r6
+ mov r8, r0
+ ldr r0, _080A6AEC @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r0, _080A6AF0 @ =word_203855E
+ ldrh r0, [r0]
+ ldr r1, _080A6AF4 @ =gStringVar1
+ bl CopyItemName
+ ldr r0, _080A6AF8 @ =gStringVar2
+ mov r2, r8
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xB
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0x7
+ bl sub_80A7528
+ adds r0, r5, 0
+ bl sub_80A3D5C
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _080A6AFC @ =sub_80A5E1C
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6AE8: .4byte gTasks + 0x8
+_080A6AEC: .4byte gBG1TilemapBuffer
+_080A6AF0: .4byte word_203855E
+_080A6AF4: .4byte gStringVar1
+_080A6AF8: .4byte gStringVar2
+_080A6AFC: .4byte sub_80A5E1C
+ thumb_func_end sub_80A6A84
+
+ thumb_func_start sub_80A6B00
+sub_80A6B00: @ 80A6B00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A6B54 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6B1A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6B4C
+_080A6B1A:
+ ldr r1, _080A6B58 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r1, _080A6B5C @ =gUnknown_03005D10
+ ldr r0, _080A6B60 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A5D38
+_080A6B4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6B54: .4byte gMain
+_080A6B58: .4byte gTasks
+_080A6B5C: .4byte gUnknown_03005D10
+_080A6B60: .4byte gUnknown_02038559
+ thumb_func_end sub_80A6B00
+
+ thumb_func_start sub_80A6B64
+sub_80A6B64: @ 80A6B64
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r5, r0, 3
+ ldr r6, _080A6B9C @ =gTasks + 0x8
+ adds r7, r5, r6
+ ldr r0, _080A6BA0 @ =word_203855E
+ mov r8, r0
+ ldrh r0, [r0]
+ bl ItemId_GetImportance
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080A6BA8
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r5, r0
+ ldr r1, _080A6BA4 @ =sub_80A6B00
+ str r1, [r0]
+ movs r0, 0x9
+ bl sub_80A7528
+ b _080A6BD2
+ .align 2, 0
+_080A6B9C: .4byte gTasks + 0x8
+_080A6BA0: .4byte word_203855E
+_080A6BA4: .4byte sub_80A6B00
+_080A6BA8:
+ mov r1, r8
+ ldrh r0, [r1]
+ ldrh r1, [r7, 0x2]
+ bl AddPCItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6BC2
+ adds r0, r4, 0
+ bl sub_80A6A84
+ b _080A6BD2
+_080A6BC2:
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r5, r0
+ ldr r1, _080A6BDC @ =sub_80A6B00
+ str r1, [r0]
+ movs r0, 0x8
+ bl sub_80A7528
+_080A6BD2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6BDC: .4byte sub_80A6B00
+ thumb_func_end sub_80A6B64
+
+ thumb_func_start sub_80A6BE0
+sub_80A6BE0: @ 80A6BE0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_80A5350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A6C58
+ ldr r0, _080A6C18 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ ands r2, r1
+ cmp r2, 0
+ beq _080A6C20
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A6C1C @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ adds r0, r4, 0
+ bl sub_80A6B64
+ b _080A6C58
+ .align 2, 0
+_080A6C18: .4byte gMain
+_080A6C1C: .4byte gBG1TilemapBuffer
+_080A6C20:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6C58
+ ldr r1, _080A6C60 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, _080A6C64 @ =gUnknown_03005D10
+ ldr r0, _080A6C68 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_80A5D38
+_080A6C58:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C60: .4byte gTasks
+_080A6C64: .4byte gUnknown_03005D10
+_080A6C68: .4byte gUnknown_02038559
+ thumb_func_end sub_80A6BE0
+
+ thumb_func_start sub_80A6C6C
+sub_80A6C6C: @ 80A6C6C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A6CE4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r2, _080A6CE8 @ =gUnknown_03005D10
+ ldr r6, _080A6CEC @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r5, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80A7590
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x4
+ beq _080A6D0A
+ ldr r0, _080A6CF0 @ =sub_80A6BE0
+ str r0, [r5]
+ movs r0, 0x6
+ bl sub_80A7528
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x3
+ bne _080A6CF4
+ movs r0, 0x3
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x6
+ movs r2, 0x9
+ movs r3, 0x7
+ bl sub_80A4DD8
+ b _080A6D14
+ .align 2, 0
+_080A6CE4: .4byte gTasks
+_080A6CE8: .4byte gUnknown_03005D10
+_080A6CEC: .4byte gUnknown_02038559
+_080A6CF0: .4byte sub_80A6BE0
+_080A6CF4:
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x9
+ movs r3, 0x6
+ bl sub_80A4DD8
+ b _080A6D14
+_080A6D0A:
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ bl sub_80A6B64
+_080A6D14:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6C6C
+
+ thumb_func_start sub_80A6D1C
+sub_80A6D1C: @ 80A6D1C
+ push {r4,r5,lr}
+ bl HideMapNamePopUpWindow
+ ldr r0, _080A6D70 @ =gSaveBlock1
+ ldr r1, _080A6D74 @ =0x00000496
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080A6D84
+ movs r1, 0x1
+ bl CheckBagHasItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080A6D80
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ bl sub_80594C0
+ bl sub_80597F4
+ ldr r1, _080A6D78 @ =word_203855E
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldrh r0, [r4]
+ bl ItemId_GetFieldFunc
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6D7C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0xC]
+ b _080A6D8A
+ .align 2, 0
+_080A6D70: .4byte gSaveBlock1
+_080A6D74: .4byte 0x00000496
+_080A6D78: .4byte word_203855E
+_080A6D7C: .4byte gTasks
+_080A6D80:
+ movs r0, 0
+ strh r0, [r4]
+_080A6D84:
+ ldr r0, _080A6D94 @ =Event_NoRegisteredItem
+ bl ScriptContext1_SetupScript
+_080A6D8A:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A6D94: .4byte Event_NoRegisteredItem
+ thumb_func_end sub_80A6D1C
+
+ thumb_func_start sub_80A6D98
+sub_80A6D98: @ 80A6D98
+ push {lr}
+_080A6D9A:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6DBC
+ ldr r0, _080A6DB4 @ =sub_80A50C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A6DB8 @ =gUnknown_02038563
+ strb r0, [r1]
+ b _080A6DC8
+ .align 2, 0
+_080A6DB4: .4byte sub_80A50C8
+_080A6DB8: .4byte gUnknown_02038563
+_080A6DBC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6D9A
+_080A6DC8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6D98
+
+ thumb_func_start sub_80A6DCC
+sub_80A6DCC: @ 80A6DCC
+ push {lr}
+ ldr r1, _080A6DE4 @ =gUnknown_03000700
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080A6DE8 @ =gUnknown_03000701
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080A6DEC @ =sub_80A6D98
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6DE4: .4byte gUnknown_03000700
+_080A6DE8: .4byte gUnknown_03000701
+_080A6DEC: .4byte sub_80A6D98
+ thumb_func_end sub_80A6DCC
+
+ thumb_func_start sub_80A6DF0
+sub_80A6DF0: @ 80A6DF0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r4, _080A6E4C @ =gUnknown_02038564
+ ldrb r0, [r4]
+ subs r0, 0x1
+ lsls r0, 25
+ lsrs r6, r0, 24
+ movs r1, 0x9
+ subs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x7
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuDrawTextWindow
+ movs r2, 0xA
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r6, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x8
+ movs r3, 0x5
+ bl sub_80A4008
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A6E58
+ ldr r1, _080A6E50 @ =gUnknown_083C1640
+ ldr r0, _080A6E54 @ =gUnknown_03000704
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x8
+ movs r2, 0xA
+ bl MenuPrint
+ b _080A6E80
+ .align 2, 0
+_080A6E4C: .4byte gUnknown_02038564
+_080A6E50: .4byte gUnknown_083C1640
+_080A6E54: .4byte gUnknown_03000704
+_080A6E58:
+ ldr r5, _080A6EAC @ =gUnknown_083C1640
+ ldr r4, _080A6EB0 @ =gUnknown_03000704
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x8
+ movs r2, 0x8
+ bl MenuPrint
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 3
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x8
+ movs r2, 0xA
+ bl MenuPrint
+_080A6E80:
+ movs r2, 0xA
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080A6EB4 @ =gUnknown_02038564
+ ldrb r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x8
+ bl InitMenu
+ movs r0, 0x2
+ bl sub_80A7528
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6EAC: .4byte gUnknown_083C1640
+_080A6EB0: .4byte gUnknown_03000704
+_080A6EB4: .4byte gUnknown_02038564
+ thumb_func_end sub_80A6DF0
+
+ thumb_func_start sub_80A6EB8
+sub_80A6EB8: @ 80A6EB8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r2, _080A6EE0 @ =gMain
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A6EE8
+ ldr r4, _080A6EE4 @ =gUnknown_03000700
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A6FC0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A6F02
+ .align 2, 0
+_080A6EE0: .4byte gMain
+_080A6EE4: .4byte gUnknown_03000700
+_080A6EE8:
+ cmp r1, 0x80
+ bne _080A6F14
+ ldr r4, _080A6F0C @ =gUnknown_03000700
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldr r1, _080A6F10 @ =gUnknown_02038564
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _080A6FC0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080A6F02:
+ bl MoveMenuCursor
+ strb r0, [r4]
+ b _080A6FC0
+ .align 2, 0
+_080A6F0C: .4byte gUnknown_03000700
+_080A6F10: .4byte gUnknown_02038564
+_080A6F14:
+ ldrh r1, [r2, 0x2E]
+ movs r2, 0x1
+ ands r2, r1
+ cmp r2, 0
+ beq _080A6F84
+ ldr r1, _080A6F68 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r1, _080A6F6C @ =gUnknown_03005D10
+ ldr r0, _080A6F70 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A6F74 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r1, _080A6F78 @ =gUnknown_083C1640
+ ldr r0, _080A6F7C @ =gUnknown_03000700
+ ldrb r2, [r0]
+ ldr r0, _080A6F80 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A6FC0
+ .align 2, 0
+_080A6F68: .4byte gTasks
+_080A6F6C: .4byte gUnknown_03005D10
+_080A6F70: .4byte gUnknown_02038559
+_080A6F74: .4byte gBG1TilemapBuffer
+_080A6F78: .4byte gUnknown_083C1640
+_080A6F7C: .4byte gUnknown_03000700
+_080A6F80: .4byte gUnknown_03000704
+_080A6F84:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6FC0
+ ldr r1, _080A6FC8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, _080A6FCC @ =gUnknown_03005D10
+ ldr r0, _080A6FD0 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A6FD4 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r0, _080A6FD8 @ =gUnknown_083C1640
+ ldr r1, [r0, 0x2C]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A6FC0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6FC8: .4byte gTasks
+_080A6FCC: .4byte gUnknown_03005D10
+_080A6FD0: .4byte gUnknown_02038559
+_080A6FD4: .4byte gBG1TilemapBuffer
+_080A6FD8: .4byte gUnknown_083C1640
+ thumb_func_end sub_80A6EB8
+
+ thumb_func_start sub_80A6FDC
+sub_80A6FDC: @ 80A6FDC
+ push {lr}
+ ldr r0, _080A6FF8 @ =word_203855E
+ ldrh r0, [r0]
+ bl ItemId_GetBattleUsage
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7008
+ ldr r1, _080A6FFC @ =gUnknown_03000704
+ ldr r0, _080A7000 @ =gUnknown_083C1708
+ str r0, [r1]
+ ldr r1, _080A7004 @ =gUnknown_02038564
+ movs r0, 0x2
+ b _080A7012
+ .align 2, 0
+_080A6FF8: .4byte word_203855E
+_080A6FFC: .4byte gUnknown_03000704
+_080A7000: .4byte gUnknown_083C1708
+_080A7004: .4byte gUnknown_02038564
+_080A7008:
+ ldr r1, _080A7018 @ =gUnknown_03000704
+ ldr r0, _080A701C @ =gUnknown_083C170A
+ str r0, [r1]
+ ldr r1, _080A7020 @ =gUnknown_02038564
+ movs r0, 0x1
+_080A7012:
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7018: .4byte gUnknown_03000704
+_080A701C: .4byte gUnknown_083C170A
+_080A7020: .4byte gUnknown_02038564
+ thumb_func_end sub_80A6FDC
+
+ thumb_func_start sub_80A7024
+sub_80A7024: @ 80A7024
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080A707C @ =gUnknown_03000700
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80A6FDC
+ ldr r0, _080A7080 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldr r3, _080A7084 @ =gUnknown_03005D10
+ ldr r2, _080A7088 @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r4, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ ldr r0, _080A708C @ =gBG1TilemapBuffer
+ bl sub_80A6DF0
+ ldr r0, _080A7090 @ =sub_80A6EB8
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A707C: .4byte gUnknown_03000700
+_080A7080: .4byte gTasks
+_080A7084: .4byte gUnknown_03005D10
+_080A7088: .4byte gUnknown_02038559
+_080A708C: .4byte gBG1TilemapBuffer
+_080A7090: .4byte sub_80A6EB8
+ thumb_func_end sub_80A7024
+
+ thumb_func_start sub_80A7094
+sub_80A7094: @ 80A7094
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A70CC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A70D0 @ =sub_802E424
+ lsrs r0, r2, 16
+ movs r3, 0
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080A70D4 @ =sub_80A5B00
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A70CC: .4byte gTasks
+_080A70D0: .4byte sub_802E424
+_080A70D4: .4byte sub_80A5B00
+ thumb_func_end sub_80A7094
+
+ thumb_func_start sub_80A70D8
+sub_80A70D8: @ 80A70D8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A7094
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A70D8
+
+ thumb_func_start ItemMenu_UseInBattle
+ItemMenu_UseInBattle: @ 80A70F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A7120 @ =word_203855E
+ ldrh r0, [r4]
+ bl ItemId_GetBattleFunc
+ cmp r0, 0
+ beq _080A711A
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ bl ItemId_GetBattleFunc
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A711A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7120: .4byte word_203855E
+ thumb_func_end ItemMenu_UseInBattle
+
+ thumb_func_start sub_80A7124
+sub_80A7124: @ 80A7124
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl ItemListMenu_InitMenu
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7124
+
+ thumb_func_start sub_80A7150
+sub_80A7150: @ 80A7150
+ push {r4,r5,lr}
+ ldr r4, _080A7158 @ =gUnknown_02038563
+ ldr r5, _080A715C @ =gTasks
+ b _080A716C
+ .align 2, 0
+_080A7158: .4byte gUnknown_02038563
+_080A715C: .4byte gTasks
+_080A7160:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A7190
+_080A716C:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A7160
+ ldr r0, _080A7198 @ =sub_80A7230
+ movs r1, 0
+ bl CreateTask
+ strb r0, [r4]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x26]
+_080A7190:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7198: .4byte sub_80A7230
+ thumb_func_end sub_80A7150
+
+ thumb_func_start PrepareBagForWallyTutorial
+PrepareBagForWallyTutorial: @ 80A719C
+ push {r4,r5,lr}
+ ldr r0, _080A7214 @ =gUnknown_03000700
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080A7218 @ =gUnknown_02038559
+ strb r1, [r0]
+ movs r1, 0
+ ldr r4, _080A721C @ =0x0201e000
+ ldr r5, _080A7220 @ =gSaveBlock1 + 0x560
+ ldr r3, _080A7224 @ =gUnknown_03005D10
+ movs r2, 0
+_080A71B2:
+ lsls r0, r1, 2
+ adds r0, r3
+ strb r2, [r0]
+ strb r2, [r0, 0x1]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080A71B2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x50
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r4, r1
+ adds r4, r5, 0
+ adds r4, 0xA0
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl memcpy
+ adds r0, r5, 0
+ movs r1, 0x14
+ bl ClearItemSlots
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl ClearItemSlots
+ movs r0, 0xD
+ movs r1, 0x1
+ bl AddBagItem
+ movs r0, 0x4
+ movs r1, 0x1
+ bl AddBagItem
+ ldr r1, _080A7228 @ =gUnknown_03000701
+ movs r0, 0x7
+ strb r0, [r1]
+ ldr r0, _080A722C @ =sub_80A7150
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7214: .4byte gUnknown_03000700
+_080A7218: .4byte gUnknown_02038559
+_080A721C: .4byte 0x0201e000
+_080A7220: .4byte gSaveBlock1 + 0x560
+_080A7224: .4byte gUnknown_03005D10
+_080A7228: .4byte gUnknown_03000701
+_080A722C: .4byte sub_80A7150
+ thumb_func_end PrepareBagForWallyTutorial
+
+ thumb_func_start sub_80A7230
+sub_80A7230: @ 80A7230
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _080A725C @ =gTasks + 0x8
+ mov r8, r0
+ adds r7, r6, r0
+ movs r0, 0x1E
+ ldrsh r1, [r7, r0]
+ cmp r1, 0xCC
+ beq _080A727A
+ cmp r1, 0xCC
+ bgt _080A7260
+ cmp r1, 0x66
+ beq _080A726A
+ b _080A7358
+ .align 2, 0
+_080A725C: .4byte gTasks + 0x8
+_080A7260:
+ movs r0, 0x99
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A72F4
+ b _080A7358
+_080A726A:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_80A4E8C
+ b _080A7358
+_080A727A:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ bl sub_80F98A4
+ movs r0, 0x3
+ bl sub_80F98A4
+ ldr r1, _080A72D8 @ =word_203855E
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r1, _080A72DC @ =gUnknown_03000704
+ ldr r0, _080A72E0 @ =gUnknown_083C1708
+ str r0, [r1]
+ ldr r1, _080A72E4 @ =gUnknown_02038564
+ movs r0, 0x2
+ strb r0, [r1]
+ mov r0, r8
+ adds r4, r0, r6
+ ldr r3, _080A72E8 @ =gUnknown_03005D10
+ ldr r2, _080A72EC @ =gUnknown_02038559
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r4, 0x14]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ ldr r0, _080A72F0 @ =gBG1TilemapBuffer
+ bl sub_80A6DF0
+ b _080A7358
+ .align 2, 0
+_080A72D8: .4byte word_203855E
+_080A72DC: .4byte gUnknown_03000704
+_080A72E0: .4byte gUnknown_083C1708
+_080A72E4: .4byte gUnknown_02038564
+_080A72E8: .4byte gUnknown_03005D10
+_080A72EC: .4byte gUnknown_02038559
+_080A72F0: .4byte gBG1TilemapBuffer
+_080A72F4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A7344 @ =gBG1TilemapBuffer
+ bl sub_80A4DA4
+ ldr r4, _080A7348 @ =gSaveBlock1 + 0x560
+ ldr r5, _080A734C @ =0x0201e000
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r4, 0xA0
+ movs r0, 0x80
+ lsls r0, 5
+ adds r5, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, _080A7350 @ =sub_802E424
+ lsrs r0, r1, 16
+ strh r0, [r7, 0x10]
+ strh r1, [r7, 0x12]
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _080A7354 @ =sub_80A5B00
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080A735E
+ .align 2, 0
+_080A7344: .4byte gBG1TilemapBuffer
+_080A7348: .4byte gSaveBlock1 + 0x560
+_080A734C: .4byte 0x0201e000
+_080A7350: .4byte sub_802E424
+_080A7354: .4byte sub_80A5B00
+_080A7358:
+ ldrh r0, [r7, 0x1E]
+ adds r0, 0x1
+ strh r0, [r7, 0x1E]
+_080A735E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7230
+
+ thumb_func_start ItemListMenu_InitMenu
+ItemListMenu_InitMenu: @ 80A736C
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080A73B0 @ =gUnknown_03005D10
+ ldr r0, _080A73B4 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0xE
+ movs r2, 0x2
+ bl InitMenu
+ ldr r1, _080A73B8 @ =0x0000ffff
+ ldr r3, _080A73BC @ =0x00002d9f
+ movs r0, 0xF
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0xC
+ bl CreateBlendedOutlineCursor
+ bl sub_80A73C0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73B0: .4byte gUnknown_03005D10
+_080A73B4: .4byte gUnknown_02038559
+_080A73B8: .4byte 0x0000ffff
+_080A73BC: .4byte 0x00002d9f
+ thumb_func_end ItemListMenu_InitMenu
+
+ thumb_func_start sub_80A73C0
+sub_80A73C0: @ 80A73C0
+ push {lr}
+ ldr r1, _080A73E8 @ =gUnknown_03005D10
+ ldr r0, _080A73EC @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 28
+ movs r0, 0x80
+ lsls r0, 21
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0x70
+ bl sub_814AD7C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73E8: .4byte gUnknown_03005D10
+_080A73EC: .4byte gUnknown_02038559
+ thumb_func_end sub_80A73C0
+
+ thumb_func_start sub_80A73F0
+sub_80A73F0: @ 80A73F0
+ push {lr}
+ bl sub_814ADC8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A73F0
+
+ thumb_func_start sub_80A73FC
+sub_80A73FC: @ 80A73FC
+ push {lr}
+ bl sub_8072DEC
+ bl sub_814AD44
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A73FC
+
+ thumb_func_start sub_80A740C
+sub_80A740C: @ 80A740C
+ push {lr}
+ bl sub_80A75E4
+ bl sub_80A7768
+ bl sub_80A7420
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A740C
+
+ thumb_func_start sub_80A7420
+sub_80A7420: @ 80A7420
+ push {r4,lr}
+ ldr r4, _080A7438 @ =gUnknown_0203853C
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _080A743C
+ cmp r0, 0x3
+ beq _080A7430
+ b _080A7512
+_080A7430:
+ movs r0, 0x2
+ strb r0, [r4]
+ b _080A7512
+ .align 2, 0
+_080A7438: .4byte gUnknown_0203853C
+_080A743C:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x9
+ bhi _080A74FC
+ lsls r0, 2
+ ldr r1, _080A744C @ =_080A7450
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A744C: .4byte _080A7450
+ .align 2, 0
+_080A7450:
+ .4byte _080A7478
+ .4byte _080A74AC
+ .4byte _080A74B4
+ .4byte _080A74BC
+ .4byte _080A74C4
+ .4byte _080A74CC
+ .4byte _080A74D4
+ .4byte _080A74DC
+ .4byte _080A74E4
+ .4byte _080A74F4
+_080A7478:
+ ldr r1, _080A74A0 @ =gUnknown_03005D10
+ ldr r0, _080A74A4 @ =gUnknown_02038559
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A74A8 @ =gUnknown_03005D24
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ ldrb r1, [r4, 0x1]
+ bl ItemListMenu_ChangeDescription
+ b _080A74FC
+ .align 2, 0
+_080A74A0: .4byte gUnknown_03005D10
+_080A74A4: .4byte gUnknown_02038559
+_080A74A8: .4byte gUnknown_03005D24
+_080A74AC:
+ ldr r0, _080A74B0 @ =gOtherText_SwitchWhichItem
+ b _080A74E6
+ .align 2, 0
+_080A74B0: .4byte gOtherText_SwitchWhichItem
+_080A74B4:
+ ldr r0, _080A74B8 @ =gOtherText_WhatWillYouDo2
+ b _080A74E6
+ .align 2, 0
+_080A74B8: .4byte gOtherText_WhatWillYouDo2
+_080A74BC:
+ ldr r0, _080A74C0 @ =gOtherText_HowManyToToss
+ b _080A74E6
+ .align 2, 0
+_080A74C0: .4byte gOtherText_HowManyToToss
+_080A74C4:
+ ldr r0, _080A74C8 @ =gOtherText_ThrewAwayItem
+ b _080A74E6
+ .align 2, 0
+_080A74C8: .4byte gOtherText_ThrewAwayItem
+_080A74CC:
+ ldr r0, _080A74D0 @ =gOtherText_OkayToThrowAwayPrompt
+ b _080A74E6
+ .align 2, 0
+_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt
+_080A74D4:
+ ldr r0, _080A74D8 @ =gOtherText_HowManyToDeposit
+ b _080A74E6
+ .align 2, 0
+_080A74D8: .4byte gOtherText_HowManyToDeposit
+_080A74DC:
+ ldr r0, _080A74E0 @ =gOtherText_DepositedItems
+ b _080A74E6
+ .align 2, 0
+_080A74E0: .4byte gOtherText_DepositedItems
+_080A74E4:
+ ldr r0, _080A74F0 @ =gOtherText_NoRoomForItems
+_080A74E6:
+ ldrb r1, [r4, 0x1]
+ bl sub_80A4A98
+ b _080A74FC
+ .align 2, 0
+_080A74F0: .4byte gOtherText_NoRoomForItems
+_080A74F4:
+ ldr r0, _080A7518 @ =gOtherText_CantStoreSomeoneItem
+ ldrb r1, [r4, 0x1]
+ bl sub_80A4A98
+_080A74FC:
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080A7512
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80A7918
+_080A7512:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7518: .4byte gOtherText_CantStoreSomeoneItem
+ thumb_func_end sub_80A7420
+
+ thumb_func_start sub_80A751C
+sub_80A751C: @ 80A751C
+ ldr r1, _080A7524 @ =gUnknown_0203853C
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7524: .4byte gUnknown_0203853C
+ thumb_func_end sub_80A751C
+
+ thumb_func_start sub_80A7528
+sub_80A7528: @ 80A7528
+ push {r4,lr}
+ ldr r4, _080A7544 @ =gUnknown_0203853C
+ movs r1, 0
+ strb r1, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ bl sub_80A78F4
+ cmp r0, 0x1
+ beq _080A755E
+ cmp r0, 0x1
+ bgt _080A7548
+ cmp r0, 0
+ beq _080A754E
+ b _080A7566
+ .align 2, 0
+_080A7544: .4byte gUnknown_0203853C
+_080A7548:
+ cmp r0, 0x2
+ beq _080A7562
+ b _080A7566
+_080A754E:
+ movs r0, 0x2
+ strb r0, [r4]
+_080A7552:
+ bl sub_80A7420
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080A7552
+ b _080A7566
+_080A755E:
+ movs r0, 0x3
+ b _080A7564
+_080A7562:
+ movs r0, 0x1
+_080A7564:
+ strb r0, [r4]
+_080A7566:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7528
+
+ thumb_func_start sub_80A756C
+sub_80A756C: @ 80A756C
+ push {r4,lr}
+ ldr r4, _080A758C @ =gUnknown_0203853C
+ ldrb r0, [r4]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A7580
+ bl sub_80A7918
+_080A7580:
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A758C: .4byte gUnknown_0203853C
+ thumb_func_end sub_80A756C
+
+ thumb_func_start sub_80A7590
+sub_80A7590: @ 80A7590
+ push {lr}
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ bl sub_80A756C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7590
+
+ thumb_func_start sub_80A75A8
+sub_80A75A8: @ 80A75A8
+ push {lr}
+ ldr r1, _080A75C0 @ =gUnknown_0203853C
+ ldrb r0, [r1]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A75BC
+ movs r0, 0x1
+ strb r0, [r1]
+_080A75BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A75C0: .4byte gUnknown_0203853C
+ thumb_func_end sub_80A75A8
+
+ thumb_func_start sub_80A75C4
+sub_80A75C4: @ 80A75C4
+ push {lr}
+ ldr r1, _080A75D8 @ =gUnknown_0203853C
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080A75DC
+ cmp r0, 0x1
+ bne _080A75E0
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080A75E0
+ .align 2, 0
+_080A75D8: .4byte gUnknown_0203853C
+_080A75DC:
+ bl sub_80A7918
+_080A75E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A75C4
+
+ thumb_func_start sub_80A75E4
+sub_80A75E4: @ 80A75E4
+ push {r4,r5,lr}
+ ldr r4, _080A7628 @ =gUnknown_02038540
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A7622
+ bl sub_80A7988
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080A7622
+ ldr r0, _080A762C @ =gUnknown_02038563
+ ldrb r0, [r0]
+ ldrb r2, [r4, 0x1]
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl sub_80A47E8
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ movs r1, 0x7
+ cmp r0, 0
+ beq _080A7616
+ movs r1, 0x5
+_080A7616:
+ ldrb r0, [r4, 0x1]
+ cmp r1, r0
+ bge _080A7622
+ strb r5, [r4]
+ bl sub_80A78E8
+_080A7622:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7628: .4byte gUnknown_02038540
+_080A762C: .4byte gUnknown_02038563
+ thumb_func_end sub_80A75E4
+
+ thumb_func_start sub_80A7630
+sub_80A7630: @ 80A7630
+ ldr r1, _080A7638 @ =gUnknown_02038540
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7638: .4byte gUnknown_02038540
+ thumb_func_end sub_80A7630
+
+ thumb_func_start sub_80A763C
+sub_80A763C: @ 80A763C
+ push {r4,lr}
+ ldr r4, _080A7650 @ =gUnknown_02038540
+ bl sub_80A78C4
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080A7654
+ cmp r1, 0x1
+ beq _080A7668
+ b _080A7670
+ .align 2, 0
+_080A7650: .4byte gUnknown_02038540
+_080A7654:
+ ldr r0, _080A7664 @ =gUnknown_02038563
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0x7
+ bl sub_80A48E8
+ b _080A7670
+ .align 2, 0
+_080A7664: .4byte gUnknown_02038563
+_080A7668:
+ movs r0, 0
+ strb r1, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+_080A7670:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A763C
+
+ thumb_func_start sub_80A7678
+sub_80A7678: @ 80A7678
+ push {r4,lr}
+ ldr r4, _080A7690 @ =gUnknown_02038540
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A7686
+ bl sub_80A78E8
+_080A7686:
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7690: .4byte gUnknown_02038540
+ thumb_func_end sub_80A7678
+
+ thumb_func_start sub_80A7694
+sub_80A7694: @ 80A7694
+ ldr r1, _080A769C @ =gUnknown_02038540
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ bx lr
+ .align 2, 0
+_080A769C: .4byte gUnknown_02038540
+ thumb_func_end sub_80A7694
+
+ thumb_func_start sub_80A76A0
+sub_80A76A0: @ 80A76A0
+ push {lr}
+ movs r0, 0xE
+ movs r1, 0x2
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ bl sub_80A7678
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A76A0
+
+ thumb_func_start sub_80A76B8
+sub_80A76B8: @ 80A76B8
+ push {lr}
+ ldr r0, _080A76CC @ =gUnknown_02038540
+ movs r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A76C6
+ movs r1, 0x1
+_080A76C6:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A76CC: .4byte gUnknown_02038540
+ thumb_func_end sub_80A76B8
+
+ thumb_func_start sub_80A76D0
+sub_80A76D0: @ 80A76D0
+ push {lr}
+ ldr r0, _080A76E4 @ =gUnknown_02038540
+ movs r1, 0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x5
+ bls _080A76DE
+ movs r1, 0x1
+_080A76DE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A76E4: .4byte gUnknown_02038540
+ thumb_func_end sub_80A76D0
+
+ thumb_func_start sub_80A76E8
+sub_80A76E8: @ 80A76E8
+ push {r4,lr}
+ ldr r4, _080A7708 @ =gUnknown_02038544
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A7702
+ ldrb r0, [r4, 0x1]
+ ldr r1, [r4, 0x4]
+ ldr r2, [r4, 0x8]
+ ldrh r3, [r4, 0x2]
+ bl DisplayItemMessageOnField
+ movs r0, 0
+ strb r0, [r4]
+_080A7702:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7708: .4byte gUnknown_02038544
+ thumb_func_end sub_80A76E8
+
+ thumb_func_start sub_80A770C
+sub_80A770C: @ 80A770C
+ ldr r1, _080A7714 @ =gUnknown_02038544
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7714: .4byte gUnknown_02038544
+ thumb_func_end sub_80A770C
+
+ thumb_func_start DisplayCannotUseItemMessage
+DisplayCannotUseItemMessage: @ 80A7718
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ mov r8, r2
+ adds r6, r3, 0
+ ldr r4, _080A7738 @ =gUnknown_02038544
+ bl sub_80A7924
+ cmp r0, 0
+ beq _080A773C
+ cmp r0, 0x2
+ beq _080A774E
+ b _080A775C
+ .align 2, 0
+_080A7738: .4byte gUnknown_02038544
+_080A773C:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ lsls r3, r6, 16
+ lsrs r3, 16
+ adds r1, r7, 0
+ mov r2, r8
+ bl DisplayItemMessageOnField
+ b _080A775C
+_080A774E:
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r5, [r4, 0x1]
+ str r7, [r4, 0x4]
+ mov r0, r8
+ str r0, [r4, 0x8]
+ strh r6, [r4, 0x2]
+_080A775C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end DisplayCannotUseItemMessage
+
+ thumb_func_start sub_80A7768
+sub_80A7768: @ 80A7768
+ push {r4,lr}
+ ldr r4, _080A77A8 @ =gUnknown_02038550
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bne _080A7814
+ ldrb r1, [r4, 0x1]
+ cmp r1, 0
+ beq _080A780E
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x1
+ beq _080A77B4
+ ldr r2, _080A77AC @ =gUnknown_083C1640
+ ldr r0, _080A77B0 @ =gUnknown_03000704
+ ldr r0, [r0]
+ adds r0, r1, r0
+ subs r0, 0x1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0]
+ subs r1, 0x1
+ lsls r1, 1
+ adds r1, 0x1
+ ldrb r2, [r4, 0x3]
+ adds r2, r1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x7
+ bl MenuPrint
+ b _080A77FC
+ .align 2, 0
+_080A77A8: .4byte gUnknown_02038550
+_080A77AC: .4byte gUnknown_083C1640
+_080A77B0: .4byte gUnknown_03000704
+_080A77B4:
+ cmp r1, 0x1
+ bne _080A77C8
+ ldr r0, _080A77C4 @ =word_203855E
+ ldrh r0, [r0]
+ bl sub_80A4B90
+ adds r3, r0, 0
+ b _080A77DC
+ .align 2, 0
+_080A77C4: .4byte word_203855E
+_080A77C8:
+ ldr r2, _080A781C @ =gUnknown_083C1640
+ ldrb r0, [r4, 0x1]
+ ldr r1, _080A7820 @ =gUnknown_03000704
+ ldr r1, [r1]
+ adds r0, r1
+ subs r0, 0x1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r3, [r0]
+_080A77DC:
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ asrs r0, r2, 1
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ ands r2, r0
+ lsls r2, 1
+ adds r2, 0x8
+ adds r0, r3, 0
+ bl MenuPrint
+_080A77FC:
+ ldr r1, _080A7824 @ =gUnknown_02038564
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080A780E
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80A7970
+_080A780E:
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+_080A7814:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A781C: .4byte gUnknown_083C1640
+_080A7820: .4byte gUnknown_03000704
+_080A7824: .4byte gUnknown_02038564
+ thumb_func_end sub_80A7768
+
+ thumb_func_start sub_80A7828
+sub_80A7828: @ 80A7828
+ ldr r1, _080A7830 @ =gUnknown_02038550
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7830: .4byte gUnknown_02038550
+ thumb_func_end sub_80A7828
+
+ thumb_func_start sub_80A7834
+sub_80A7834: @ 80A7834
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, _080A784C @ =gUnknown_02038550
+ bl sub_80A7958
+ cmp r0, 0x1
+ beq _080A7850
+ cmp r0, 0x2
+ beq _080A7856
+ b _080A7862
+ .align 2, 0
+_080A784C: .4byte gUnknown_02038550
+_080A7850:
+ movs r1, 0
+ movs r0, 0x2
+ b _080A785A
+_080A7856:
+ movs r1, 0
+ movs r0, 0x1
+_080A785A:
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ strb r5, [r4, 0x2]
+ strb r6, [r4, 0x3]
+_080A7862:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7834
+
+ thumb_func_start sub_80A7868
+sub_80A7868: @ 80A7868
+ push {lr}
+ ldr r1, _080A787C @ =gUnknown_02038550
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _080A7876
+ movs r0, 0x1
+ strb r0, [r1]
+_080A7876:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A787C: .4byte gUnknown_02038550
+ thumb_func_end sub_80A7868
+
+ thumb_func_start sub_80A7880
+sub_80A7880: @ 80A7880
+ push {lr}
+ ldr r1, _080A7894 @ =gUnknown_02038550
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080A7898
+ cmp r0, 0x1
+ bne _080A789C
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080A789C
+ .align 2, 0
+_080A7894: .4byte gUnknown_02038550
+_080A7898:
+ bl sub_80A7970
+_080A789C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7880
+
+ thumb_func_start sub_80A78A0
+sub_80A78A0: @ 80A78A0
+ push {lr}
+ ldr r0, _080A78B4 @ =gUnknown_02038550
+ movs r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A78AE
+ movs r1, 0x1
+_080A78AE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A78B4: .4byte gUnknown_02038550
+ thumb_func_end sub_80A78A0
+
+ thumb_func_start sub_80A78B8
+sub_80A78B8: @ 80A78B8
+ ldr r1, _080A78C0 @ =gUnknown_02038554
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A78C0: .4byte gUnknown_02038554
+ thumb_func_end sub_80A78B8
+
+ thumb_func_start sub_80A78C4
+sub_80A78C4: @ 80A78C4
+ push {lr}
+ ldr r0, _080A78DC @ =gLinkOpen
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A78E0
+ bl sub_80A7868
+ bl sub_80A75A8
+ movs r0, 0x1
+ b _080A78E2
+ .align 2, 0
+_080A78DC: .4byte gLinkOpen
+_080A78E0:
+ movs r0, 0
+_080A78E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A78C4
+
+ thumb_func_start sub_80A78E8
+sub_80A78E8: @ 80A78E8
+ push {lr}
+ bl sub_80A7880
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A78E8
+
+ thumb_func_start sub_80A78F4
+sub_80A78F4: @ 80A78F4
+ push {lr}
+ ldr r0, _080A790C @ =gLinkOpen
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A7910
+ bl sub_80A76B8
+ movs r1, 0x2
+ cmp r0, 0
+ beq _080A7912
+ movs r1, 0x1
+ b _080A7912
+ .align 2, 0
+_080A790C: .4byte gLinkOpen
+_080A7910:
+ movs r1, 0
+_080A7912:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A78F4
+
+ thumb_func_start sub_80A7918
+sub_80A7918: @ 80A7918
+ push {lr}
+ bl sub_80A76E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7918
+
+ thumb_func_start sub_80A7924
+sub_80A7924: @ 80A7924
+ push {lr}
+ ldr r0, _080A7948 @ =gLinkOpen
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A7942
+ bl sub_80A76B8
+ cmp r0, 0
+ bne _080A7942
+ bl sub_80A76D0
+ cmp r0, 0
+ beq _080A794C
+ bl sub_80A7678
+_080A7942:
+ movs r0, 0
+ b _080A7952
+ .align 2, 0
+_080A7948: .4byte gLinkOpen
+_080A794C:
+ bl sub_80A7694
+ movs r0, 0x2
+_080A7952:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A7924
+
+ thumb_func_start sub_80A7958
+sub_80A7958: @ 80A7958
+ push {lr}
+ bl sub_80A76B8
+ cmp r0, 0
+ beq _080A796A
+ bl sub_80A75A8
+ movs r0, 0x1
+ b _080A796C
+_080A796A:
+ movs r0, 0x2
+_080A796C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A7958
+
+ thumb_func_start sub_80A7970
+sub_80A7970: @ 80A7970
+ push {lr}
+ bl sub_80A75C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7970
+
+ thumb_func_start sub_80A797C
+sub_80A797C: @ 80A797C
+ ldr r1, _080A7984 @ =gUnknown_02038554
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7984: .4byte gUnknown_02038554
+ thumb_func_end sub_80A797C
+
+ thumb_func_start sub_80A7988
+sub_80A7988: @ 80A7988
+ ldr r1, _080A7994 @ =gUnknown_02038554
+ ldrb r0, [r1]
+ movs r2, 0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_080A7994: .4byte gUnknown_02038554
+ thumb_func_end sub_80A7988
+
+ thumb_func_start sub_80A7998
+sub_80A7998: @ 80A7998
+ adds r2, r0, 0
+ adds r2, 0x2A
+ movs r1, 0
+ strb r1, [r2]
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ ldr r1, _080A79B0 @ =sub_80A79B4
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A79B0: .4byte sub_80A79B4
+ thumb_func_end sub_80A7998
+
+ thumb_func_start sub_80A79B4
+sub_80A79B4: @ 80A79B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A79E4 @ =gUnknown_0203855B
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A79CC
+ adds r0, r4, 0
+ bl sub_80A79EC
+_080A79CC:
+ ldr r0, _080A79E8 @ =gUnknown_0203855C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080A79DE
+ adds r0, r4, 0
+ bl sub_80A7A94
+_080A79DE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A79E4: .4byte gUnknown_0203855B
+_080A79E8: .4byte gUnknown_0203855C
+ thumb_func_end sub_80A79B4
+
+ thumb_func_start sub_80A79EC
+sub_80A79EC: @ 80A79EC
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ movs r0, 0x34
+ ldrsh r4, [r2, r0]
+ cmp r4, 0
+ beq _080A79FE
+ cmp r4, 0x1
+ beq _080A7A54
+ b _080A7A8A
+_080A79FE:
+ ldr r5, _080A7A28 @ =gUnknown_0203855B
+ ldrb r6, [r5]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0x6
+ beq _080A7A2C
+ adds r3, r2, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0x2A
+ strb r6, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+ strb r0, [r5]
+ b _080A7A8A
+ .align 2, 0
+_080A7A28: .4byte gUnknown_0203855B
+_080A7A2C:
+ adds r3, r2, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0x2A
+ strb r4, [r0]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x4
+ strh r0, [r2, 0x22]
+ movs r0, 0x4
+ strh r0, [r2, 0x2E]
+ movs r0, 0x1
+ strh r0, [r2, 0x34]
+ adds r0, r2, 0
+ bl sub_80A7AE4
+ b _080A7A8A
+_080A7A54:
+ ldrh r4, [r2, 0x2E]
+ movs r0, 0x2E
+ ldrsh r3, [r2, r0]
+ cmp r3, 0
+ beq _080A7A7C
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080A7A72
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x1
+ strh r0, [r2, 0x22]
+ subs r0, r4, 0x1
+ strh r0, [r2, 0x2E]
+_080A7A72:
+ adds r0, r1, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ b _080A7A8A
+_080A7A7C:
+ ldr r1, _080A7A90 @ =gUnknown_0203855B
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ strb r0, [r1]
+ strh r3, [r2, 0x30]
+ strh r3, [r2, 0x34]
+_080A7A8A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7A90: .4byte gUnknown_0203855B
+ thumb_func_end sub_80A79EC
+
+ thumb_func_start sub_80A7A94
+sub_80A7A94: @ 80A7A94
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A7AA6
+ cmp r0, 0x1
+ beq _080A7AC8
+ b _080A7ADC
+_080A7AA6:
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080A7AC4 @ =gSpriteAffineAnimTable_83C1CC4
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ b _080A7ADC
+ .align 2, 0
+_080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4
+_080A7AC8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080A7ADC
+ adds r0, r4, 0
+ bl sub_80A7AE4
+_080A7ADC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7A94
+
+ thumb_func_start sub_80A7AE4
+sub_80A7AE4: @ 80A7AE4
+ push {lr}
+ ldr r2, _080A7B0C @ =gUnknown_0203855C
+ movs r1, 0
+ strb r1, [r2]
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B0C: .4byte gUnknown_0203855C
+ thumb_func_end sub_80A7AE4
+
+ thumb_func_start CreateBagSprite
+CreateBagSprite: @ 80A7B10
+ push {lr}
+ ldr r0, _080A7B24 @ =gSpriteTemplate_83C1CE0
+ movs r1, 0x3A
+ movs r2, 0x28
+ movs r3, 0
+ bl CreateSprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B24: .4byte gSpriteTemplate_83C1CE0
+ thumb_func_end CreateBagSprite
+
+ thumb_func_start sub_80A7B28
+sub_80A7B28: @ 80A7B28
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80A7B6C
+ ldr r0, _080A7B44 @ =sub_80A7B6C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B44: .4byte sub_80A7B6C
+ thumb_func_end sub_80A7B28
+
+ thumb_func_start sub_80A7B48
+sub_80A7B48: @ 80A7B48
+ ldrh r2, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ movs r3, 0x1
+ ands r1, r3
+ subs r2, r1
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r2, [r1]
+ ldrh r2, [r0, 0x3A]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ ands r1, r3
+ subs r2, r1
+ adds r0, 0x29
+ strb r2, [r0]
+ bx lr
+ thumb_func_end sub_80A7B48
+
+ thumb_func_start sub_80A7B6C
+sub_80A7B6C: @ 80A7B6C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x3C
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080A7C16
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A7B86
+ cmp r0, 0x1
+ beq _080A7BD4
+ b _080A7C16
+_080A7B86:
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ cmp r2, 0x1
+ bne _080A7BA0
+ ldr r0, _080A7B9C @ =gSpriteAffineAnimTable_83C1D20
+ b _080A7BA2
+ .align 2, 0
+_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20
+_080A7BA0:
+ ldr r0, _080A7BD0 @ =gSpriteAffineAnimTable_83C1D20 + 0x4
+_080A7BA2:
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ adds r0, r4, 0
+ bl sub_80A7B48
+ b _080A7C16
+ .align 2, 0
+_080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4
+_080A7BD4:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80A7B48
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _080A7C16
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x34]
+ ldrh r1, [r4, 0x38]
+ adds r0, r4, 0
+ adds r0, 0x28
+ strb r1, [r0]
+ ldrh r0, [r4, 0x3A]
+ adds r1, r4, 0
+ adds r1, 0x29
+ strb r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080A7C1C @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080A7C16:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C1C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80A7B6C
+
+ thumb_func_start CreateBagPokeballSprite
+CreateBagPokeballSprite: @ 80A7C20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A7C54 @ =gUnknown_083C1D30
+ bl LoadSpritePalette
+ ldr r0, _080A7C58 @ =gSpriteTemplate_83C1D38
+ movs r1, 0x10
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080A7C5C @ =gUnknown_02038568
+ strb r0, [r1]
+ ldr r2, _080A7C60 @ =gSprites
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C54: .4byte gUnknown_083C1D30
+_080A7C58: .4byte gSpriteTemplate_83C1D38
+_080A7C5C: .4byte gUnknown_02038568
+_080A7C60: .4byte gSprites
+ thumb_func_end CreateBagPokeballSprite
+
+ thumb_func_start sub_80A7C64
+sub_80A7C64: @ 80A7C64
+ push {r4,r5,lr}
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ ldr r5, _080A7C98 @ =gSprites
+ ldr r4, _080A7C9C @ =gUnknown_02038568
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C98: .4byte gSprites
+_080A7C9C: .4byte gUnknown_02038568
+ thumb_func_end sub_80A7C64
+
+ thumb_func_start sub_80A7CA0
+sub_80A7CA0: @ 80A7CA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r4, 0
+ movs r1, 0
+ bl memset
+ movs r0, 0x80
+ lsls r0, 1
+ adds r4, r0
+ movs r7, 0
+_080A7CBE:
+ adds r4, 0x20
+ movs r5, 0
+ adds r1, r7, 0x1
+ mov r8, r1
+_080A7CC6:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r4, 0x20
+ adds r6, 0x20
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080A7CC6
+ cmp r7, 0x5
+ beq _080A7CE4
+ adds r4, 0x20
+_080A7CE4:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _080A7CBE
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7CA0
+
+ thumb_func_start sub_80A7CF8
+sub_80A7CF8: @ 80A7CF8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2A
+ bne _080A7D44
+ bl sub_80B4940
+ cmp r0, 0x1
+ bne _080A7D44
+ ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C
+ ldr r1, _080A7D38 @ =0x02000000
+ adds r0, r4, 0
+ bl sub_80A7CA0
+ movs r0, 0x90
+ lsls r0, 3
+ adds r4, r0
+ str r4, [sp]
+ ldr r1, _080A7D3C @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ ldr r1, _080A7D40 @ =0x00007544
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ b _080A7D72
+ .align 2, 0
+_080A7D34: .4byte gSaveBlock1 + 0x317C
+_080A7D38: .4byte 0x02000000
+_080A7D3C: .4byte 0xffff0000
+_080A7D40: .4byte 0x00007544
+_080A7D44:
+ ldr r5, _080A7D7C @ =gBerryGraphicsTable
+ lsls r4, 3
+ adds r0, r5, 0x4
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [sp]
+ mov r1, sp
+ ldr r0, _080A7D80 @ =0x00007544
+ strh r0, [r1, 0x4]
+ mov r0, sp
+ bl LoadCompressedObjectPalette
+ adds r4, r5
+ ldr r0, [r4]
+ ldr r4, _080A7D84 @ =0x02001000
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _080A7D88 @ =0xfffff000
+ adds r1, r4, r0
+ adds r0, r4, 0
+ bl sub_80A7CA0
+_080A7D72:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7D7C: .4byte gBerryGraphicsTable
+_080A7D80: .4byte 0x00007544
+_080A7D84: .4byte 0x02001000
+_080A7D88: .4byte 0xfffff000
+ thumb_func_end sub_80A7CF8
+
+ thumb_func_start sub_80A7D8C
+sub_80A7D8C: @ 80A7D8C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ bl sub_80A7CF8
+ ldr r0, _080A7DC0 @ =gSpriteTemplate_83C1D74
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A7DC0: .4byte gSpriteTemplate_83C1D74
+ thumb_func_end sub_80A7D8C
+
+ thumb_func_start sub_80A7DC4
+sub_80A7DC4: @ 80A7DC4
+ ldr r1, _080A7DD0 @ =gUnknown_030041B4
+ ldrh r1, [r1]
+ negs r1, r1
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_080A7DD0: .4byte gUnknown_030041B4
+ thumb_func_end sub_80A7DC4
+
+ thumb_func_start sub_80A7DD4
+sub_80A7DD4: @ 80A7DD4
+ push {lr}
+ ldr r0, _080A7DE8 @ =0x00007544
+ bl FreeSpritePaletteByTag
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7DE8: .4byte 0x00007544
+ thumb_func_end sub_80A7DD4
+
+ thumb_func_start sub_80A7DEC
+sub_80A7DEC: @ 80A7DEC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _080A7E50 @ =0x00007544
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl sub_80A7CF8
+ ldr r0, _080A7E54 @ =gSpriteTemplate_83C1E04
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r4, r1, 0
+ mov r0, r8
+ cmp r0, 0x1
+ bne _080A7E42
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A7E58 @ =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080A7E42:
+ adds r0, r4, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A7E50: .4byte 0x00007544
+_080A7E54: .4byte gSpriteTemplate_83C1E04
+_080A7E58: .4byte gSprites
+ thumb_func_end sub_80A7DEC
+
+ thumb_func_start sub_80A7E5C
+sub_80A7E5C: @ 80A7E5C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080A7E78 @ =gSpriteTemplate_83C1F98
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x63
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A7E78: .4byte gSpriteTemplate_83C1F98
+ thumb_func_end sub_80A7E5C
+
+ .align 2, 0 @ Don't pad with nop.