pokeemerald/asm/player_pc.s
2018-03-02 16:34:31 +01:00

3437 lines
54 KiB
ArmAsm

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