summaryrefslogtreecommitdiff
path: root/asm/item_use.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/item_use.s')
-rw-r--r--asm/item_use.s3017
1 files changed, 3017 insertions, 0 deletions
diff --git a/asm/item_use.s b/asm/item_use.s
new file mode 100644
index 000000000..ec093aa2e
--- /dev/null
+++ b/asm/item_use.s
@@ -0,0 +1,3017 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C8FAC
+sub_80C8FAC: @ 80C8FAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8FD0 @ =word_203855E
+ ldrh r0, [r1]
+ cmp r0, 0xAF
+ bne _080C8FD8
+ ldr r1, _080C8FD4 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080C8FE6
+ .align 2, 0
+_080C8FD0: .4byte word_203855E
+_080C8FD4: .4byte gTasks
+_080C8FD8:
+ ldrh r0, [r1]
+ bl itemid_get_type
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r2, r4, 2
+_080C8FE6:
+ ldr r0, _080C9008 @ =gTasks
+ adds r1, r2, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080C900C @ =gUnknown_083D61E4
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r2, [r0]
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080C9010 @ =sub_80A5B00
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9008: .4byte gTasks
+_080C900C: .4byte gUnknown_083D61E4
+_080C9010: .4byte sub_80A5B00
+ thumb_func_end sub_80C8FAC
+
+ thumb_func_start unknown_ItemMenu_Confirm
+unknown_ItemMenu_Confirm: @ 80C9014
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end unknown_ItemMenu_Confirm
+
+ thumb_func_start sub_80C9038
+sub_80C9038: @ 80C9038
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9038
+
+ thumb_func_start SetUpItemUseOnFieldCallback
+SetUpItemUseOnFieldCallback: @ 80C9050
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C9078 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080C9084
+ ldr r1, _080C907C @ =gUnknown_0300485C
+ ldr r0, _080C9080 @ =sub_80A5CC4
+ str r0, [r1]
+ adds r0, r2, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C908E
+ .align 2, 0
+_080C9078: .4byte gTasks
+_080C907C: .4byte gUnknown_0300485C
+_080C9080: .4byte sub_80A5CC4
+_080C9084:
+ ldr r0, _080C9094 @ =gUnknown_03005D00
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+_080C908E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9094: .4byte gUnknown_03005D00
+ thumb_func_end SetUpItemUseOnFieldCallback
+
+ thumb_func_start sub_80C9098
+sub_80C9098: @ 80C9098
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r1, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080C90CC @ =gStringVar4
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ cmp r4, 0
+ bne _080C90D4
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C90D0 @ =sub_80A5C48
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C90E0
+ .align 2, 0
+_080C90CC: .4byte gStringVar4
+_080C90D0: .4byte sub_80A5C48
+_080C90D4:
+ ldr r2, _080C90E8 @ =sub_80A5C9C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C90E0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C90E8: .4byte sub_80A5C9C
+ thumb_func_end sub_80C9098
+
+ thumb_func_start DisplayDadsAdviceCannotUseItemMessage
+DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9100 @ =gOtherText_DadsAdvice
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9100: .4byte gOtherText_DadsAdvice
+ thumb_func_end DisplayDadsAdviceCannotUseItemMessage
+
+ thumb_func_start sub_80C9104
+sub_80C9104: @ 80C9104
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9118 @ =gOtherText_CantGetOffBike
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9118: .4byte gOtherText_CantGetOffBike
+ thumb_func_end sub_80C9104
+
+ thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
+CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM
+ cmp r0, r1
+ bne _080C9138
+ movs r0, 0x1
+ b _080C914E
+ .align 2, 0
+_080C9134: .4byte ItemUseOutOfBattle_TMHM
+_080C9138:
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone
+ cmp r0, r1
+ beq _080C914C
+ movs r0, 0
+ b _080C914E
+ .align 2, 0
+_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
+_080C914C:
+ movs r0, 0x2
+_080C914E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
+
+ thumb_func_start sub_80C9154
+sub_80C9154: @ 80C9154
+ push {r4,lr}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9188 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9180
+ mov r1, sp
+ ldr r0, _080C918C @ =word_203855E
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, _080C9190 @ =sub_80A5D04
+ mov r0, sp
+ movs r2, 0
+ bl sub_80F890C
+ adds r0, r4, 0
+ bl DestroyTask
+_080C9180:
+ add sp, 0x24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9188: .4byte gPaletteFade
+_080C918C: .4byte word_203855E
+_080C9190: .4byte sub_80A5D04
+ thumb_func_end sub_80C9154
+
+ thumb_func_start ItemUseOutOfBattle_Mail
+ItemUseOutOfBattle_Mail: @ 80C9194
+ 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, _080C91C4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C91C8 @ =sub_80C9154
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C91C4: .4byte gTasks
+_080C91C8: .4byte sub_80C9154
+ thumb_func_end ItemUseOutOfBattle_Mail
+
+ thumb_func_start ItemUseOutOfBattle_Bike
+ItemUseOutOfBattle_Bike: @ 80C91CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C924C @ =0x0000082b
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9254
+_080C9238:
+ ldr r0, _080C9250 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl sub_80C9104
+ b _080C928E
+ .align 2, 0
+_080C924C: .4byte 0x0000082b
+_080C9250: .4byte gTasks
+_080C9254:
+ bl sub_8053C44
+ cmp r0, 0x1
+ bne _080C927C
+ bl sub_80E5EF4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C927C
+ ldr r1, _080C9274 @ =gUnknown_03005D00
+ ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike
+ str r0, [r1]
+ adds r0, r5, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C928E
+ .align 2, 0
+_080C9274: .4byte gUnknown_03005D00
+_080C9278: .4byte ItemUseOnFieldCB_Bike
+_080C927C:
+ ldr r0, _080C9298 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C928E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9298: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Bike
+
+ thumb_func_start ItemUseOnFieldCB_Bike
+ItemUseOnFieldCB_Bike: @ 80C929C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C92E0 @ =word_203855E
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C92B6
+ movs r0, 0x2
+ bl GetOnOffBike
+_080C92B6:
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C92CA
+ movs r0, 0x4
+ bl GetOnOffBike
+_080C92CA:
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C92E0: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Bike
+
+ thumb_func_start CanFish
+CanFish: @ 80C92E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x10
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C933C
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C936C
+_080C9338:
+ movs r0, 0x1
+ b _080C936E
+_080C933C:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C935C
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridIsImpassableAt
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9338
+_080C935C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8057434
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9338
+_080C936C:
+ movs r0, 0
+_080C936E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CanFish
+
+ thumb_func_start ItemUseOutOfBattle_Rod
+ItemUseOutOfBattle_Rod: @ 80C9378
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl CanFish
+ cmp r0, 0x1
+ bne _080C939C
+ ldr r1, _080C9394 @ =gUnknown_03005D00
+ ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C93AE
+ .align 2, 0
+_080C9394: .4byte gUnknown_03005D00
+_080C9398: .4byte ItemUseOnFieldCB_Rod
+_080C939C:
+ ldr r0, _080C93B4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C93AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93B4: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Rod
+
+ thumb_func_start ItemUseOnFieldCB_Rod
+ItemUseOnFieldCB_Rod: @ 80C93B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C93DC @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ bl StartFishing
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93DC: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Rod
+
+ thumb_func_start ItemUseOutOfBattle_Itemfinder
+ItemUseOutOfBattle_Itemfinder: @ 80C93E0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x27
+ bl sav12_xor_increment
+ ldr r1, _080C9400 @ =gUnknown_03005D00
+ ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9400: .4byte gUnknown_03005D00
+_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
+ thumb_func_end ItemUseOutOfBattle_Itemfinder
+
+ thumb_func_start ItemUseOnFieldCB_Itemfinder
+ItemUseOnFieldCB_Itemfinder: @ 80C9408
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9430 @ =gMapHeader
+ ldr r0, [r0, 0x4]
+ adds r1, r4, 0
+ bl ItemfinderCheckForHiddenItems
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C943C
+ ldr r0, _080C9434 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C9438 @ =sub_80C9458
+ str r0, [r1]
+ b _080C9448
+ .align 2, 0
+_080C9430: .4byte gMapHeader
+_080C9434: .4byte gTasks
+_080C9438: .4byte sub_80C9458
+_080C943C:
+ ldr r1, _080C9450 @ =gOtherText_NoResponse
+ ldr r2, _080C9454 @ =sub_80C9520
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9448:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9450: .4byte gOtherText_NoResponse
+_080C9454: .4byte sub_80C9520
+ thumb_func_end ItemUseOnFieldCB_Itemfinder
+
+ thumb_func_start sub_80C9458
+sub_80C9458: @ 80C9458
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ ldr r0, _080C94AC @ =gTasks + 0x8
+ mov r8, r0
+ adds r4, r7, r0
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C950C
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _080C9500
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_80C9908
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080C94B8
+ ldr r1, _080C94B0 @ =gUnknown_083D61F0
+ subs r0, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _080C94B4 @ =sub_80C99EC
+ str r1, [r0]
+ b _080C9516
+ .align 2, 0
+_080C94AC: .4byte gTasks + 0x8
+_080C94B0: .4byte gUnknown_083D61F0
+_080C94B4: .4byte sub_80C99EC
+_080C94B8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ adds r3, r6, 0
+ ldr r7, _080C94F4 @ =gUnknown_083D61F0
+ movs r6, 0x3
+_080C94C8:
+ adds r0, r1, r7
+ adds r1, 0x1
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _080C94D8
+ adds r0, r1, 0
+ ands r0, r6
+ strh r0, [r4, 0xA]
+_080C94D8:
+ lsls r0, r1, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C94C8
+ ldr r1, _080C94F8 @ =gTasks
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C94FC @ =sub_80C9A38
+ str r1, [r0]
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ strh r0, [r4, 0x4]
+ b _080C9516
+ .align 2, 0
+_080C94F4: .4byte gUnknown_083D61F0
+_080C94F8: .4byte gTasks
+_080C94FC: .4byte sub_80C9A38
+_080C9500:
+ movs r0, 0x48
+ bl PlaySE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C950C:
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r4, 0x6]
+_080C9516:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9458
+
+ thumb_func_start sub_80C9520
+sub_80C9520: @ 80C9520
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9520
+
+ thumb_func_start ItemfinderCheckForHiddenItems
+ItemfinderCheckForHiddenItems: @ 80C9548
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ ldr r1, _080C9618 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r3, 0
+ mov r9, r4
+ ldrb r0, [r5, 0x3]
+ cmp r3, r0
+ bge _080C95FC
+ subs r1, 0x5
+ mov r8, r1
+_080C9580:
+ lsls r3, 16
+ asrs r1, r3, 16
+ ldr r2, [r5, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r4, r0, 2
+ adds r1, r4, r2
+ ldrb r0, [r1, 0x5]
+ adds r7, r3, 0
+ cmp r0, 0x7
+ bne _080C95EC
+ movs r2, 0x96
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C95EC
+ ldr r1, [r5, 0x10]
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ adds r2, 0x7
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r2, r0
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ mov r3, r9
+ ldrh r1, [r3]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0xE0
+ lsls r3, 11
+ adds r2, r3
+ lsrs r2, 16
+ cmp r2, 0xE
+ bhi _080C95EC
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, r8
+ blt _080C95EC
+ cmp r2, 0x5
+ bgt _080C95EC
+ adds r0, r6, 0
+ bl sub_80C9838
+_080C95EC:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ ldrb r2, [r5, 0x3]
+ cmp r0, r2
+ blt _080C9580
+_080C95FC:
+ adds r0, r6, 0
+ bl sub_80C9720
+ ldr r0, _080C9618 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C961C
+ movs r0, 0
+ b _080C961E
+ .align 2, 0
+_080C9618: .4byte gTasks
+_080C961C:
+ movs r0, 0x1
+_080C961E:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ItemfinderCheckForHiddenItems
+
+ thumb_func_start sub_80C962C
+sub_80C962C: @ 80C962C
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldrb r2, [r0, 0x3]
+ ldr r5, [r0, 0x10]
+ movs r1, 0
+ cmp r1, r2
+ bge _080C9680
+ lsls r0, r3, 16
+ asrs r6, r0, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ adds r3, r5, 0
+_080C964A:
+ ldrb r0, [r3, 0x5]
+ cmp r0, 0x7
+ bne _080C9678
+ ldrh r0, [r3]
+ cmp r6, r0
+ bne _080C9678
+ ldrh r0, [r3, 0x2]
+ cmp r4, r0
+ bne _080C9678
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1, 0
+ ldrh r3, [r3, 0xA]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9680
+ movs r0, 0x1
+ b _080C9682
+_080C9678:
+ adds r3, 0xC
+ adds r1, 0x1
+ cmp r1, r2
+ blt _080C964A
+_080C9680:
+ movs r0, 0
+_080C9682:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C962C
+
+ thumb_func_start sub_80C9688
+sub_80C9688: @ 80C9688
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl mapconnection_get_mapheader
+ adds r3, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _080C96B0
+ cmp r0, 0x2
+ bgt _080C96A6
+ cmp r0, 0x1
+ beq _080C96C4
+ b _080C9704
+_080C96A6:
+ cmp r0, 0x3
+ beq _080C96DC
+ cmp r0, 0x4
+ beq _080C96E6
+ b _080C9704
+_080C96B0:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ subs r0, 0x7
+ adds r0, r6
+ b _080C96FA
+_080C96C4:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080C96D8 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ b _080C96F6
+ .align 2, 0
+_080C96D8: .4byte gMapHeader
+_080C96DC:
+ ldr r0, [r3]
+ ldr r0, [r0]
+ subs r0, 0x7
+ adds r0, r5
+ b _080C96F0
+_080C96E6:
+ ldr r0, _080C9700 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, 0x7
+ subs r0, r5, r0
+_080C96F0:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r4, 0x4]
+_080C96F6:
+ adds r0, 0x7
+ subs r0, r6, r0
+_080C96FA:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9708
+ .align 2, 0
+_080C9700: .4byte gMapHeader
+_080C9704:
+ movs r0, 0
+ b _080C971A
+_080C9708:
+ ldr r0, [r3, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ bl sub_80C962C
+ lsls r0, 24
+ lsrs r0, 24
+_080C971A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9688
+
+ thumb_func_start sub_80C9720
+sub_80C9720: @ 80C9720
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080C9834 @ =gMapHeader
+ ldr r1, [r0]
+ ldr r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ adds r1, 0x7
+ cmp r0, r1
+ bgt _080C9824
+_080C976E:
+ mov r5, sp
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ movs r6, 0x2
+ ldrsh r0, [r5, r6]
+ adds r0, 0x5
+ lsls r3, 16
+ mov r8, r3
+ cmp r1, r0
+ bgt _080C980E
+ movs r0, 0x7
+ str r0, [sp, 0x10]
+ mov r1, r8
+ asrs r1, 16
+ mov r9, r1
+ mov r10, r0
+_080C9796:
+ ldr r3, [sp, 0x10]
+ cmp r3, r9
+ bgt _080C97B8
+ ldr r5, [sp, 0x8]
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r9, r0
+ bge _080C97B8
+ asrs r1, r2, 16
+ cmp r10, r1
+ bgt _080C97B8
+ ldr r6, [sp, 0xC]
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r7, r4, 16
+ cmp r1, r0
+ blt _080C97F6
+_080C97B8:
+ mov r0, r8
+ asrs r5, r0, 16
+ lsls r4, 16
+ asrs r6, r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8056BA0
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080C97F6
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80C9688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C97F6
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r5, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, r6, r2
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, [sp, 0x4]
+ bl sub_80C9838
+_080C97F6:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ mov r3, sp
+ movs r5, 0x2
+ ldrsh r0, [r3, r5]
+ adds r0, 0x5
+ cmp r1, r0
+ ble _080C9796
+_080C980E:
+ movs r1, 0x80
+ lsls r1, 9
+ add r1, r8
+ lsrs r3, r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ adds r0, 0x7
+ cmp r1, r0
+ ble _080C976E
+_080C9824:
+ 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
+_080C9834: .4byte gMapHeader
+ thumb_func_end sub_80C9720
+
+ thumb_func_start sub_80C9838
+sub_80C9838: @ 80C9838
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r12, r2
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080C986C @ =gTasks + 0x8
+ adds r3, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C9870
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+ movs r0, 0x1
+ strh r0, [r3, 0x4]
+ b _080C98FA
+ .align 2, 0
+_080C986C: .4byte gTasks + 0x8
+_080C9870:
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080C9880
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C9882
+_080C9880:
+ ldrh r4, [r3]
+_080C9882:
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ ldrh r1, [r3, 0x2]
+ mov r9, r1
+ cmp r0, 0
+ bge _080C9896
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9898
+_080C9896:
+ ldrh r2, [r3, 0x2]
+_080C9898:
+ lsls r1, r7, 16
+ asrs r0, r1, 16
+ cmp r0, 0
+ bge _080C98A8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080C98AA
+_080C98A8:
+ lsrs r6, r1, 16
+_080C98AA:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ mov r8, r0
+ cmp r1, 0
+ bge _080C98BC
+ negs r0, r1
+ lsls r0, 16
+ b _080C98BE
+_080C98BC:
+ mov r0, r8
+_080C98BE:
+ lsrs r5, r0, 16
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r2, r1, 16
+ adds r4, r0, r2
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r5, 16
+ asrs r1, 16
+ adds r0, r1
+ cmp r4, r0
+ ble _080C98E0
+ strh r7, [r3]
+ mov r1, r12
+ strh r1, [r3, 0x2]
+ b _080C98FA
+_080C98E0:
+ cmp r4, r0
+ bne _080C98FA
+ cmp r2, r1
+ bgt _080C98F4
+ cmp r2, r1
+ bne _080C98FA
+ mov r1, r9
+ lsls r0, r1, 16
+ cmp r0, r8
+ bge _080C98FA
+_080C98F4:
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+_080C98FA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9838
+
+ thumb_func_start sub_80C9908
+sub_80C9908: @ 80C9908
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bne _080C991A
+ cmp r1, 0
+ beq _080C9974
+_080C991A:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ adds r5, r0, 0
+ cmp r2, 0
+ bge _080C992C
+ negs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C992E
+_080C992C:
+ lsrs r4, r5, 16
+_080C992E:
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ adds r1, r0, 0
+ cmp r2, 0
+ bge _080C9940
+ negs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080C9942
+_080C9940:
+ lsrs r3, r1, 16
+_080C9942:
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r2, r0
+ ble _080C995A
+ cmp r5, 0
+ bge _080C9956
+ movs r0, 0x4
+ b _080C9976
+_080C9956:
+ movs r0, 0x2
+ b _080C9976
+_080C995A:
+ cmp r2, r0
+ bge _080C9964
+ cmp r1, 0
+ blt _080C996C
+ b _080C9970
+_080C9964:
+ cmp r2, r0
+ bne _080C9974
+ cmp r1, 0
+ bge _080C9970
+_080C996C:
+ movs r0, 0x1
+ b _080C9976
+_080C9970:
+ movs r0, 0x3
+ b _080C9976
+_080C9974:
+ movs r0, 0
+_080C9976:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9908
+
+ thumb_func_start sub_80C997C
+sub_80C997C: @ 80C997C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080C99E8 @ =gMapObjects
+ adds r0, r4
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FieldObjectClearAnim
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl npc_sync_anim_pause_bits
+ adds r0, r5, 0
+ bl PlayerTurnInPlace
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C99E8: .4byte gMapObjects
+ thumb_func_end sub_80C997C
+
+ thumb_func_start sub_80C99EC
+sub_80C99EC: @ 80C99EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9A2C @ =gMapObjects
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9A24
+ ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding
+ ldr r2, _080C9A34 @ =sub_80C9520
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9A24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9A2C: .4byte gMapObjects
+_080C9A30: .4byte gOtherText_ItemfinderResponding
+_080C9A34: .4byte sub_80C9520
+ thumb_func_end sub_80C99EC
+
+ thumb_func_start sub_80C9A38
+sub_80C9A38: @ 80C9A38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C9AB4 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9AB8 @ =gMapObjects
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9A78
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C9AAE
+_080C9A78:
+ ldr r1, _080C9ABC @ =gUnknown_083D61F0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080C9AAE
+ ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem
+ ldr r2, _080C9AC4 @ =sub_80C9520
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9AAE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9AB4: .4byte gTasks + 0x8
+_080C9AB8: .4byte gMapObjects
+_080C9ABC: .4byte gUnknown_083D61F0
+_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
+_080C9AC4: .4byte sub_80C9520
+ thumb_func_end sub_80C9A38
+
+ thumb_func_start ItemUseOutOfBattle_PokeblockCase
+ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9AF4
+ ldr r0, _080C9AF0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+ b _080C9B2A
+ .align 2, 0
+_080C9AF0: .4byte gTasks
+_080C9AF4:
+ ldr r0, _080C9B14 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080C9B18
+ movs r0, 0
+ bl sub_810BA7C
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C9B2A
+ .align 2, 0
+_080C9B14: .4byte gTasks
+_080C9B18:
+ ldr r1, _080C9B30 @ =gUnknown_0300485C
+ ldr r0, _080C9B34 @ =sub_8080E28
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_810BA7C
+ adds r0, r5, 0
+ bl sub_80C9038
+_080C9B2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9B30: .4byte gUnknown_0300485C
+_080C9B34: .4byte sub_8080E28
+ thumb_func_end ItemUseOutOfBattle_PokeblockCase
+
+ thumb_func_start ItemUseOutOfBattle_CoinCase
+ItemUseOutOfBattle_CoinCase: @ 80C9B38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C9B8C @ =gStringVar1
+ bl GetCoins
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080C9B90 @ =gStringVar4
+ ldr r1, _080C9B94 @ =gOtherText_Coins3
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, _080C9B98 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9BA0
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C9B9C @ =sub_80A5C48
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9BAC
+ .align 2, 0
+_080C9B8C: .4byte gStringVar1
+_080C9B90: .4byte gStringVar4
+_080C9B94: .4byte gOtherText_Coins3
+_080C9B98: .4byte gTasks
+_080C9B9C: .4byte sub_80A5C48
+_080C9BA0:
+ ldr r2, _080C9BB4 @ =sub_80A5C9C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9BAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BB4: .4byte sub_80A5C9C
+ thumb_func_end ItemUseOutOfBattle_CoinCase
+
+ thumb_func_start sub_80C9BB8
+sub_80C9BB8: @ 80C9BB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BD4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BD0
+ adds r0, r2, 0
+ bl sub_80A5C48
+_080C9BD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BD4: .4byte gMain
+ thumb_func_end sub_80C9BB8
+
+ thumb_func_start sub_80C9BD8
+sub_80C9BD8: @ 80C9BD8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BF4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BF0
+ adds r0, r2, 0
+ bl sub_80A5C9C
+_080C9BF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BF4: .4byte gMain
+ thumb_func_end sub_80C9BD8
+
+ thumb_func_start unref_sub_80C9BF8
+unref_sub_80C9BF8: @ 80C9BF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C9C3C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9C4C
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080C9C40 @ =gUnknown_083D61DC
+ ldr r0, _080C9C44 @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C48 @ =sub_80C9BB8
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9C68
+ .align 2, 0
+_080C9C3C: .4byte gTasks
+_080C9C40: .4byte gUnknown_083D61DC
+_080C9C44: .4byte word_203855E
+_080C9C48: .4byte sub_80C9BB8
+_080C9C4C:
+ ldr r4, _080C9C70 @ =gUnknown_083D61DC
+ ldr r0, _080C9C74 @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C78 @ =sub_80C9BD8
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9C68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9C70: .4byte gUnknown_083D61DC
+_080C9C74: .4byte word_203855E
+_080C9C78: .4byte sub_80C9BD8
+ thumb_func_end unref_sub_80C9BF8
+
+ thumb_func_start sub_80C9C7C
+sub_80C9C7C: @ 80C9C7C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsPlayerFacingPlantedBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9CE4
+ ldr r1, _080C9CC8 @ =gUnknown_03005D00
+ ldr r0, _080C9CCC @ =sub_80C9D00
+ str r0, [r1]
+ ldr r1, _080C9CD0 @ =gUnknown_0300485C
+ ldr r0, _080C9CD4 @ =sub_80A5CC4
+ str r0, [r1]
+ ldr r1, _080C9CD8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch
+ lsrs r1, r2, 16
+ movs r3, 0
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ ldr r1, _080C9CE0 @ =sub_80A5B00
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080C9CF4
+ .align 2, 0
+_080C9CC8: .4byte gUnknown_03005D00
+_080C9CCC: .4byte sub_80C9D00
+_080C9CD0: .4byte gUnknown_0300485C
+_080C9CD4: .4byte sub_80A5CC4
+_080C9CD8: .4byte gTasks
+_080C9CDC: .4byte c2_exit_to_overworld_2_switch
+_080C9CE0: .4byte sub_80A5B00
+_080C9CE4:
+ ldr r0, _080C9CFC @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_overworld_function
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl _call_via_r1
+_080C9CF4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9CFC: .4byte word_203855E
+ thumb_func_end sub_80C9C7C
+
+ thumb_func_start sub_80C9D00
+sub_80C9D00: @ 80C9D00
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C9D28 @ =word_203855E
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D2C @ =gUnknown_081A1654
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D28: .4byte word_203855E
+_080C9D2C: .4byte gUnknown_081A1654
+ thumb_func_end sub_80C9D00
+
+ thumb_func_start ItemUseOutOfBattle_WailmerPail
+ItemUseOutOfBattle_WailmerPail: @ 80C9D30
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl WaterBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9D58
+ ldr r1, _080C9D50 @ =gUnknown_03005D00
+ ldr r0, _080C9D54 @ =sub_80C9D74
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C9D6A
+ .align 2, 0
+_080C9D50: .4byte gUnknown_03005D00
+_080C9D54: .4byte sub_80C9D74
+_080C9D58:
+ ldr r0, _080C9D70 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C9D6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D70: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_WailmerPail
+
+ thumb_func_start sub_80C9D74
+sub_80C9D74: @ 80C9D74
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D94 @ =gUnknown_081A168F
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D94: .4byte gUnknown_081A168F
+ thumb_func_end sub_80C9D74
+
+ thumb_func_start sub_80C9D98
+sub_80C9D98: @ 80C9D98
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DAC @ =gUnknown_02038561
+ movs r1, 0
+ strb r1, [r2]
+ bl unknown_ItemMenu_Confirm
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DAC: .4byte gUnknown_02038561
+ thumb_func_end sub_80C9D98
+
+ thumb_func_start ItemUseOutOfBattle_Medicine
+ItemUseOutOfBattle_Medicine: @ 80C9DB0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DC4 @ =gUnknown_03004AE4
+ ldr r1, _080C9DC8 @ =sub_806FE2C
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DC4: .4byte gUnknown_03004AE4
+_080C9DC8: .4byte sub_806FE2C
+ thumb_func_end ItemUseOutOfBattle_Medicine
+
+ thumb_func_start ItemUseOutOfBattle_SacredAsh
+ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080C9DDC @ =gUnknown_03005CE0
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ b _080C9DE6
+ .align 2, 0
+_080C9DDC: .4byte gUnknown_03005CE0
+_080C9DE0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080C9DE6:
+ cmp r5, 0x5
+ bhi _080C9E10
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C9E28 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C9DE0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080C9DE0
+ ldr r0, _080C9E2C @ =gUnknown_03005CE0
+ strb r5, [r0]
+_080C9E10:
+ ldr r1, _080C9E30 @ =gUnknown_03004AE4
+ ldr r0, _080C9E34 @ =sub_8070048
+ str r0, [r1]
+ ldr r1, _080C9E38 @ =gUnknown_02038561
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl unknown_ItemMenu_Confirm
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E28: .4byte gPlayerParty
+_080C9E2C: .4byte gUnknown_03005CE0
+_080C9E30: .4byte gUnknown_03004AE4
+_080C9E34: .4byte sub_8070048
+_080C9E38: .4byte gUnknown_02038561
+ thumb_func_end ItemUseOutOfBattle_SacredAsh
+
+ thumb_func_start ItemUseOutOfBattle_PPRecovery
+ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E50 @ =gUnknown_03004AE4
+ ldr r1, _080C9E54 @ =dp05_ether
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E50: .4byte gUnknown_03004AE4
+_080C9E54: .4byte dp05_ether
+ thumb_func_end ItemUseOutOfBattle_PPRecovery
+
+ thumb_func_start ItemUseOutOfBattle_PPUp
+ItemUseOutOfBattle_PPUp: @ 80C9E58
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E6C @ =gUnknown_03004AE4
+ ldr r1, _080C9E70 @ =dp05_pp_up
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E6C: .4byte gUnknown_03004AE4
+_080C9E70: .4byte dp05_pp_up
+ thumb_func_end ItemUseOutOfBattle_PPUp
+
+ thumb_func_start ItemUseOutOfBattle_RareCandy
+ItemUseOutOfBattle_RareCandy: @ 80C9E74
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E88 @ =gUnknown_03004AE4
+ ldr r1, _080C9E8C @ =sub_8070680
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E88: .4byte gUnknown_03004AE4
+_080C9E8C: .4byte sub_8070680
+ thumb_func_end ItemUseOutOfBattle_RareCandy
+
+ thumb_func_start ItemUseOutOfBattle_TMHM
+ItemUseOutOfBattle_TMHM: @ 80C9E90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080C9EBC @ =word_203855E
+ ldrh r1, [r0]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bls _080C9EC8
+ ldr r1, _080C9EC0 @ =gOtherText_BootedHM
+ ldr r2, _080C9EC4 @ =sub_80C9EE4
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9ED4
+ .align 2, 0
+_080C9EBC: .4byte word_203855E
+_080C9EC0: .4byte gOtherText_BootedHM
+_080C9EC4: .4byte sub_80C9EE4
+_080C9EC8:
+ ldr r1, _080C9EDC @ =gOtherText_BootedTM
+ ldr r2, _080C9EE0 @ =sub_80C9EE4
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9ED4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9EDC: .4byte gOtherText_BootedTM
+_080C9EE0: .4byte sub_80C9EE4
+ thumb_func_end ItemUseOutOfBattle_TMHM
+
+ thumb_func_start sub_80C9EE4
+sub_80C9EE4: @ 80C9EE4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ bl PlaySE
+ ldr r1, _080C9F08 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C9F0C @ =sub_80C9F10
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F08: .4byte gTasks
+_080C9F0C: .4byte sub_80C9F10
+ thumb_func_end sub_80C9EE4
+
+ thumb_func_start sub_80C9F10
+sub_80C9F10: @ 80C9F10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C9F64 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9F2A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9F5C
+_080C9F2A:
+ ldr r4, _080C9F68 @ =gStringVar1
+ ldr r0, _080C9F6C @ =word_203855E
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, _080C9F70 @ =gMoveNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, _080C9F74 @ =gStringVar4
+ ldr r1, _080C9F78 @ =gOtherText_ContainsMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080C9F7C @ =sub_80C9F80
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F64: .4byte gMain
+_080C9F68: .4byte gStringVar1
+_080C9F6C: .4byte word_203855E
+_080C9F70: .4byte gMoveNames
+_080C9F74: .4byte gStringVar4
+_080C9F78: .4byte gOtherText_ContainsMove
+_080C9F7C: .4byte sub_80C9F80
+ thumb_func_end sub_80C9F10
+
+ thumb_func_start sub_80C9F80
+sub_80C9F80: @ 80C9F80
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _080C9FB8 @ =gBG1TilemapBuffer
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ movs r2, 0x8
+ movs r3, 0x5
+ bl sub_80A3FA0
+ ldr r1, _080C9FBC @ =gUnknown_083D61F4
+ adds r0, r4, 0
+ bl sub_80F914C
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FB8: .4byte gBG1TilemapBuffer
+_080C9FBC: .4byte gUnknown_083D61F4
+ thumb_func_end sub_80C9F80
+
+ thumb_func_start sub_80C9FC0
+sub_80C9FC0: @ 80C9FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9FD4 @ =gUnknown_03004AE4
+ ldr r1, _080C9FD8 @ =sub_806F06C
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FD4: .4byte gUnknown_03004AE4
+_080C9FD8: .4byte sub_806F06C
+ thumb_func_end sub_80C9FC0
+
+ thumb_func_start sub_80C9FDC
+sub_80C9FDC: @ 80C9FDC
+ push {r4,lr}
+ ldr r4, _080CA004 @ =word_203855E
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl sub_80A3E0C
+ ldrh r0, [r4]
+ ldr r1, _080CA008 @ =gStringVar2
+ bl itemid_copy_name
+ ldr r0, _080CA00C @ =gStringVar4
+ ldr r1, _080CA010 @ =gOtherText_UsedItem
+ bl StringExpandPlaceholders
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA004: .4byte word_203855E
+_080CA008: .4byte gStringVar2
+_080CA00C: .4byte gStringVar4
+_080CA010: .4byte gOtherText_UsedItem
+ thumb_func_end sub_80C9FDC
+
+ thumb_func_start ItemUseOutOfBattle_Repel
+ItemUseOutOfBattle_Repel: @ 80CA014
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080CA050 @ =0x00004021
+ adds r0, r5, 0
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CA060
+ ldr r0, _080CA054 @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_quality
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl VarSet
+ bl sub_80C9FDC
+ ldr r1, _080CA058 @ =gStringVar4
+ ldr r2, _080CA05C @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA06C
+ .align 2, 0
+_080CA050: .4byte 0x00004021
+_080CA054: .4byte word_203855E
+_080CA058: .4byte gStringVar4
+_080CA05C: .4byte sub_80A5C48
+_080CA060:
+ ldr r1, _080CA074 @ =gOtherText_RepelLingers
+ ldr r2, _080CA078 @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA06C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA074: .4byte gOtherText_RepelLingers
+_080CA078: .4byte sub_80A5C48
+ thumb_func_end ItemUseOutOfBattle_Repel
+
+ thumb_func_start sub_80CA07C
+sub_80CA07C: @ 80CA07C
+ push {lr}
+ bl sub_80A3E0C
+ ldr r0, _080CA090 @ =word_203855E
+ ldrh r0, [r0]
+ ldr r1, _080CA094 @ =gStringVar2
+ bl itemid_copy_name
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA090: .4byte word_203855E
+_080CA094: .4byte gStringVar2
+ thumb_func_end sub_80CA07C
+
+ thumb_func_start sub_80CA098
+sub_80CA098: @ 80CA098
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA0D0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA0C8
+ movs r0, 0x75
+ bl PlaySE
+ ldr r1, _080CA0D4 @ =gStringVar4
+ ldr r2, _080CA0D8 @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA0C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA0D0: .4byte gTasks
+_080CA0D4: .4byte gStringVar4
+_080CA0D8: .4byte sub_80A5C48
+ thumb_func_end sub_80CA098
+
+ thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
+ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080CA10C @ =word_203855E
+ ldrh r0, [r0]
+ cmp r0, 0x2B
+ bne _080CA124
+ ldr r0, _080CA110 @ =0x0000084d
+ bl FlagSet
+ ldr r0, _080CA114 @ =0x0000084e
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA118 @ =gStringVar4
+ ldr r1, _080CA11C @ =gOtherText_UsedFlute
+ bl StringExpandPlaceholders
+ ldr r1, _080CA120 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ b _080CA146
+ .align 2, 0
+_080CA10C: .4byte word_203855E
+_080CA110: .4byte 0x0000084d
+_080CA114: .4byte 0x0000084e
+_080CA118: .4byte gStringVar4
+_080CA11C: .4byte gOtherText_UsedFlute
+_080CA120: .4byte gTasks
+_080CA124:
+ cmp r0, 0x2A
+ bne _080CA152
+ ldr r0, _080CA158 @ =0x0000084e
+ bl FlagSet
+ ldr r0, _080CA15C @ =0x0000084d
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA160 @ =gStringVar4
+ ldr r1, _080CA164 @ =gOtherText_UsedRepel
+ bl StringExpandPlaceholders
+ ldr r1, _080CA168 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+_080CA146:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080CA16C @ =sub_80CA098
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x26]
+_080CA152:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA158: .4byte 0x0000084e
+_080CA15C: .4byte 0x0000084d
+_080CA160: .4byte gStringVar4
+_080CA164: .4byte gOtherText_UsedRepel
+_080CA168: .4byte gTasks
+_080CA16C: .4byte sub_80CA098
+ thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
+
+ thumb_func_start task08_080A1C44
+task08_080A1C44: @ 80CA170
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl player_avatar_init_params_reset
+ bl sub_80878A8
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task08_080A1C44
+
+ thumb_func_start sub_80CA18C
+sub_80CA18C: @ 80CA18C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8053014
+ bl sub_80C9FDC
+ ldr r1, _080CA1BC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080CA1C0 @ =gStringVar4
+ ldr r2, _080CA1C4 @ =task08_080A1C44
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA1BC: .4byte gTasks
+_080CA1C0: .4byte gStringVar4
+_080CA1C4: .4byte task08_080A1C44
+ thumb_func_end sub_80CA18C
+
+ thumb_func_start sub_80CA1C8
+sub_80CA1C8: @ 80CA1C8
+ push {lr}
+ ldr r0, _080CA1D8 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x4
+ beq _080CA1DC
+ movs r0, 0
+ b _080CA1DE
+ .align 2, 0
+_080CA1D8: .4byte gMapHeader
+_080CA1DC:
+ movs r0, 0x1
+_080CA1DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CA1C8
+
+ thumb_func_start ItemUseOutOfBattle_EscapeRope
+ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80CA1C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CA20C
+ ldr r1, _080CA204 @ =gUnknown_03005D00
+ ldr r0, _080CA208 @ =sub_80CA18C
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080CA21E
+ .align 2, 0
+_080CA204: .4byte gUnknown_03005D00
+_080CA208: .4byte sub_80CA18C
+_080CA20C:
+ ldr r0, _080CA224 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA21E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA224: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EscapeRope
+
+ thumb_func_start ItemUseOutOfBattle_EvolutionStone
+ItemUseOutOfBattle_EvolutionStone: @ 80CA228
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA23C @ =gUnknown_03004AE4
+ ldr r1, _080CA240 @ =sub_8070DBC
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA23C: .4byte gUnknown_03004AE4
+_080CA240: .4byte sub_8070DBC
+ thumb_func_end ItemUseOutOfBattle_EvolutionStone
+
+ thumb_func_start ItemUseInBattle_PokeBall
+ItemUseInBattle_PokeBall: @ 80CA244
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl PlayerPartyAndPokemonStorageFull
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA26C
+ ldr r0, _080CA268 @ =word_203855E
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r4, 0
+ bl sub_80A7094
+ b _080CA284
+ .align 2, 0
+_080CA268: .4byte word_203855E
+_080CA26C:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r1, _080CA28C @ =gOtherText_BoxIsFull
+ ldr r2, _080CA290 @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA284:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA28C: .4byte gOtherText_BoxIsFull
+_080CA290: .4byte sub_80A5C48
+ thumb_func_end ItemUseInBattle_PokeBall
+
+ thumb_func_start sub_80CA294
+sub_80CA294: @ 80CA294
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CA2B8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA2AE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CA2B4
+_080CA2AE:
+ adds r0, r2, 0
+ bl sub_80A7094
+_080CA2B4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA2B8: .4byte gMain
+ thumb_func_end sub_80CA294
+
+ thumb_func_start sub_80CA2BC
+sub_80CA2BC: @ 80CA2BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080CA304 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA2FC
+ movs r0, 0x1
+ bl PlaySE
+ ldr r4, _080CA308 @ =word_203855E
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldrh r0, [r4]
+ bl sub_803F378
+ adds r1, r0, 0
+ ldr r2, _080CA30C @ =sub_80CA294
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA2FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA304: .4byte gTasks
+_080CA308: .4byte word_203855E
+_080CA30C: .4byte sub_80CA294
+ thumb_func_end sub_80CA2BC
+
+ thumb_func_start ItemUseInBattle_StatIncrease
+ItemUseInBattle_StatIncrease: @ 80CA310
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080CA35C @ =gUnknown_02024A6A
+ ldr r0, _080CA360 @ =gUnknown_02024E6C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r4, [r0]
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080CA364 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080CA368 @ =word_203855E
+ ldrh r1, [r1]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r2, r4, 0
+ movs r3, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080CA374
+ ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect
+ ldr r2, _080CA370 @ =sub_80A5C48
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA384
+ .align 2, 0
+_080CA35C: .4byte gUnknown_02024A6A
+_080CA360: .4byte gUnknown_02024E6C
+_080CA364: .4byte gPlayerParty
+_080CA368: .4byte word_203855E
+_080CA36C: .4byte gOtherText_WontHaveAnyEffect
+_080CA370: .4byte sub_80A5C48
+_080CA374:
+ ldr r0, _080CA38C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080CA390 @ =sub_80CA2BC
+ str r0, [r1]
+ strh r2, [r1, 0x26]
+_080CA384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA38C: .4byte gTasks
+_080CA390: .4byte sub_80CA2BC
+ thumb_func_end ItemUseInBattle_StatIncrease
+
+ thumb_func_start sub_80CA394
+sub_80CA394: @ 80CA394
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA3BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA3B4
+ bl sub_8094E4C
+ bl gpu_pal_allocator_reset__manage_upper_four
+ adds r0, r4, 0
+ bl DestroyTask
+_080CA3B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3BC: .4byte gPaletteFade
+ thumb_func_end sub_80CA394
+
+ thumb_func_start sub_80CA3C0
+sub_80CA3C0: @ 80CA3C0
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA3EC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080CA3F0 @ =sub_80CA394
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3EC: .4byte gTasks
+_080CA3F0: .4byte sub_80CA394
+ thumb_func_end sub_80CA3C0
+
+ thumb_func_start ItemUseInBattle_Medicine
+ItemUseInBattle_Medicine: @ 80CA3F4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA408 @ =gUnknown_03004AE4
+ ldr r1, _080CA40C @ =sub_806FE2C
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA408: .4byte gUnknown_03004AE4
+_080CA40C: .4byte sub_806FE2C
+ thumb_func_end ItemUseInBattle_Medicine
+
+ thumb_func_start unref_sub_80CA410
+unref_sub_80CA410: @ 80CA410
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA424 @ =gUnknown_03004AE4
+ ldr r1, _080CA428 @ =sub_8070048
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA424: .4byte gUnknown_03004AE4
+_080CA428: .4byte sub_8070048
+ thumb_func_end unref_sub_80CA410
+
+ thumb_func_start ItemUseInBattle_PPRecovery
+ItemUseInBattle_PPRecovery: @ 80CA42C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA440 @ =gUnknown_03004AE4
+ ldr r1, _080CA444 @ =dp05_ether
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA440: .4byte gUnknown_03004AE4
+_080CA444: .4byte dp05_ether
+ thumb_func_end ItemUseInBattle_PPRecovery
+
+ thumb_func_start unref_sub_80CA448
+unref_sub_80CA448: @ 80CA448
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080CA494 @ =word_203855E
+ ldrh r1, [r4]
+ movs r0, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA4AC
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r0, _080CA498 @ =gPlayerParty
+ ldr r1, _080CA49C @ =gStringVar1
+ bl GetMonNickname
+ ldr r4, _080CA4A0 @ =gStringVar4
+ ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080CA4A8 @ =sub_80A7094
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA4B8
+ .align 2, 0
+_080CA494: .4byte word_203855E
+_080CA498: .4byte gPlayerParty
+_080CA49C: .4byte gStringVar1
+_080CA4A0: .4byte gStringVar4
+_080CA4A4: .4byte gOtherText_SnapConfusion
+_080CA4A8: .4byte sub_80A7094
+_080CA4AC:
+ ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect
+ ldr r2, _080CA4C4 @ =sub_80A5C48
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA4B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
+_080CA4C4: .4byte sub_80A5C48
+ thumb_func_end unref_sub_80CA448
+
+ thumb_func_start ItemUseInBattle_Escape
+ItemUseInBattle_Escape: @ 80CA4C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080CA4F8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA504
+ bl sub_80C9FDC
+ ldr r1, _080CA4FC @ =gStringVar4
+ ldr r2, _080CA500 @ =sub_80A7094
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA516
+ .align 2, 0
+_080CA4F8: .4byte gUnknown_020239F8
+_080CA4FC: .4byte gStringVar4
+_080CA500: .4byte sub_80A7094
+_080CA504:
+ ldr r0, _080CA51C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA51C: .4byte gTasks
+ thumb_func_end ItemUseInBattle_Escape
+
+ thumb_func_start ItemUseOutOfBattle_EnigmaBerry
+ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA544 @ =word_203855E
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x14
+ bls _080CA53A
+ b _080CA62C
+_080CA53A:
+ lsls r0, 2
+ ldr r1, _080CA548 @ =_080CA54C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA544: .4byte word_203855E
+_080CA548: .4byte _080CA54C
+ .align 2, 0
+_080CA54C:
+ .4byte _080CA5D8
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA62C
+ .4byte _080CA5BC
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA5F4
+ .4byte _080CA5F4
+ .4byte _080CA610
+_080CA5A0:
+ ldr r0, _080CA5B8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_Medicine
+ b _080CA640
+ .align 2, 0
+_080CA5B8: .4byte gTasks
+_080CA5BC:
+ ldr r0, _080CA5D4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_SacredAsh
+ b _080CA640
+ .align 2, 0
+_080CA5D4: .4byte gTasks
+_080CA5D8:
+ ldr r0, _080CA5F0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_RareCandy
+ b _080CA640
+ .align 2, 0
+_080CA5F0: .4byte gTasks
+_080CA5F4:
+ ldr r0, _080CA60C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPUp
+ b _080CA640
+ .align 2, 0
+_080CA60C: .4byte gTasks
+_080CA610:
+ ldr r0, _080CA628 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPRecovery
+ b _080CA640
+ .align 2, 0
+_080CA628: .4byte gTasks
+_080CA62C:
+ ldr r0, _080CA648 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x4
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA640:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA648: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EnigmaBerry
+
+ thumb_func_start ItemUseInBattle_EnigmaBerry
+ItemUseInBattle_EnigmaBerry: @ 80CA64C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA66C @ =word_203855E
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x15
+ bhi _080CA6E4
+ lsls r0, 2
+ ldr r1, _080CA670 @ =_080CA674
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA66C: .4byte word_203855E
+_080CA670: .4byte _080CA674
+ .align 2, 0
+_080CA674:
+ .4byte _080CA6CC
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6DC
+_080CA6CC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_StatIncrease
+ b _080CA6EA
+_080CA6D4:
+ adds r0, r4, 0
+ bl ItemUseInBattle_Medicine
+ b _080CA6EA
+_080CA6DC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_PPRecovery
+ b _080CA6EA
+_080CA6E4:
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA6EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemUseInBattle_EnigmaBerry
+
+ thumb_func_start ItemUseOutOfBattle_CannotUse
+ItemUseOutOfBattle_CannotUse: @ 80CA6F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA70C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0xC]
+ bl DisplayDadsAdviceCannotUseItemMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA70C: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_CannotUse
+
+ .align 2, 0 @ Don't pad with nop.