summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/party_menu.s6908
-rw-r--r--asm/rom_806D7F8.s6917
-rw-r--r--ld_script.txt1
3 files changed, 6908 insertions, 6918 deletions
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 9e7b6cd1d..e435b3d92 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -5298,4 +5298,6912 @@ _0806D7F0: .4byte 0x06007180
_0806D7F4: .4byte gStatusPal_Icons
thumb_func_end sub_806D718
+ thumb_func_start SetMonIconAnimByHP
+SetMonIconAnimByHP: @ 806D7F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r5, r4
+ beq _0806D830
+ movs r2, 0x1
+ cmp r0, 0x3
+ beq _0806D830
+ movs r2, 0x2
+ cmp r0, 0x2
+ beq _0806D830
+ movs r2, 0x4
+ cmp r0, 0x1
+ bne _0806D830
+ movs r2, 0x3
+_0806D830:
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _0806D848 @ =gSprites
+ adds r0, r1
+ adds r1, r2, 0
+ bl sub_809D824
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D848: .4byte gSprites
+ thumb_func_end SetMonIconAnimByHP
+
+ thumb_func_start SetMonIconAnim
+SetMonIconAnim: @ 806D84C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl SetMonIconAnimByHP
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end SetMonIconAnim
+
+ thumb_func_start CreatePartyMenuMonIcon
+CreatePartyMenuMonIcon: @ 806D880
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806D904 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ mov r9, r0
+ ldrb r1, [r1, 0x1]
+ mov r10, r1
+ mov r0, r8
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _0806D908 @ =sub_809D62C
+ movs r2, 0x5
+ str r2, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ adds r0, r4, 0
+ mov r1, r8
+ bl SetMonIconAnim
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D904: .4byte gUnknown_08376678
+_0806D908: .4byte sub_809D62C
+ thumb_func_end CreatePartyMenuMonIcon
+
+ thumb_func_start TryCreatePartyMenuMonIcon
+TryCreatePartyMenuMonIcon: @ 806D90C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r8, r6
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806D95A
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D946
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+ b _0806D95A
+_0806D946:
+ bl IsDoubleBattle
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+_0806D95A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end TryCreatePartyMenuMonIcon
+
+ thumb_func_start unref_sub_806D964
+unref_sub_806D964: @ 806D964
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _0806D986
+_0806D96E:
+ movs r0, 0x64
+ adds r2, r4, 0
+ muls r2, r0
+ ldr r0, _0806D994 @ =gPlayerParty
+ adds r2, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl TryCreatePartyMenuMonIcon
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806D986:
+ ldr r0, _0806D998 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0806D96E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D994: .4byte gPlayerParty
+_0806D998: .4byte gPlayerPartyCount
+ thumb_func_end unref_sub_806D964
+
+ thumb_func_start CreateMonIcon_806D99C
+CreateMonIcon_806D99C: @ 806D99C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DA04 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, _0806DA08 @ =sub_809D62C
+ movs r4, 0x5
+ str r4, [sp]
+ mov r7, r8
+ ldr r4, [r7, 0x18]
+ str r4, [sp, 0x4]
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ ldrh r1, [r7, 0x10]
+ ldrh r2, [r7, 0x12]
+ adds r0, r4, 0
+ bl SetMonIconAnimByHP
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA04: .4byte gUnknown_08376678
+_0806DA08: .4byte sub_809D62C
+ thumb_func_end CreateMonIcon_806D99C
+
+ thumb_func_start UpdateMonIconFrame_806DA0C
+UpdateMonIconFrame_806DA0C: @ 806DA0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl UpdateMonIconFrame
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806DA32
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806DA30
+ ldr r0, _0806DA2C @ =0x0000fffd
+ strh r0, [r4, 0x26]
+ b _0806DA32
+ .align 2, 0
+_0806DA2C: .4byte 0x0000fffd
+_0806DA30:
+ strh r1, [r4, 0x26]
+_0806DA32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA0C
+
+ thumb_func_start UpdateMonIconFrame_806DA38
+UpdateMonIconFrame_806DA38: @ 806DA38
+ push {lr}
+ bl UpdateMonIconFrame
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA38
+
+ thumb_func_start UpdateMonIconFrame_806DA44
+UpdateMonIconFrame_806DA44: @ 806DA44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r1, 0x5
+ bhi _0806DA8E
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806DA7C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r2, r1, 2
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x2E]
+ cmp r4, 0
+ bne _0806DA84
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38
+ b _0806DA8C
+ .align 2, 0
+_0806DA7C: .4byte gSprites
+_0806DA80: .4byte UpdateMonIconFrame_806DA38
+_0806DA84:
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C
+_0806DA8C:
+ str r1, [r0]
+_0806DA8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA94: .4byte UpdateMonIconFrame_806DA0C
+ thumb_func_end UpdateMonIconFrame_806DA44
+
+ thumb_func_start LoadHeldItemIconGraphics
+LoadHeldItemIconGraphics: @ 806DA98
+ push {lr}
+ ldr r0, _0806DAAC @ =gUnknown_083765DC
+ bl LoadSpriteSheet
+ ldr r0, _0806DAB0 @ =gUnknown_083765E4
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DAAC: .4byte gUnknown_083765DC
+_0806DAB0: .4byte gUnknown_083765E4
+ thumb_func_end LoadHeldItemIconGraphics
+
+ thumb_func_start SpriteCB_HeldItemIcon
+SpriteCB_HeldItemIcon: @ 806DAB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806DAE4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _0806DAE8
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DB06
+ .align 2, 0
+_0806DAE4: .4byte gSprites
+_0806DAE8:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+_0806DB06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_HeldItemIcon
+
+ thumb_func_start CreateHeldItemIcon
+CreateHeldItemIcon: @ 806DB0C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0806DB84 @ =gSprites
+ mov r8, r0
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x43
+ ldrb r3, [r0]
+ ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xFA
+ movs r2, 0xAA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r0, r8
+ adds r5, r4, r0
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _0806DB8C @ =SpriteCB_HeldItemIcon
+ str r0, [r4]
+ strh r6, [r5, 0x3C]
+ adds r0, r5, 0
+ mov r1, r9
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DB84: .4byte gSprites
+_0806DB88: .4byte gSpriteTemplate_837660C
+_0806DB8C: .4byte SpriteCB_HeldItemIcon
+ thumb_func_end CreateHeldItemIcon
+
+ thumb_func_start CreateHeldItemIcons
+CreateHeldItemIcons: @ 806DB90
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ beq _0806DBA4
+ cmp r2, 0x1
+ beq _0806DBEC
+ b _0806DC28
+_0806DBA4:
+ movs r5, 0
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcs _0806DC28
+_0806DBAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DBE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DBD8
+ adds r0, r7, r5
+ ldrb r4, [r0]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DBD8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcc _0806DBAC
+ b _0806DC28
+ .align 2, 0
+_0806DBE8: .4byte gPlayerParty
+_0806DBEC:
+ movs r5, 0
+ b _0806DC22
+_0806DBF0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DC30 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DC1C
+ adds r0, r5, r7
+ ldrb r4, [r0, 0x6]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DC1C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0806DC22:
+ ldrb r0, [r6, 0x1]
+ cmp r5, r0
+ bcc _0806DBF0
+_0806DC28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DC30: .4byte gEnemyParty
+ thumb_func_end CreateHeldItemIcons
+
+ thumb_func_start CreateHeldItemIcons_806DC34
+CreateHeldItemIcons_806DC34: @ 806DC34
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ ldr r0, _0806DCC8 @ =gSprites
+ mov r9, r0
+ movs r1, 0x1C
+ add r1, r9
+ mov r10, r1
+_0806DC50:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0806DCCC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806DCB0
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r1, r9
+ adds r6, r4, r1
+ movs r1, 0x4
+ strh r1, [r6, 0x24]
+ movs r1, 0xA
+ strh r1, [r6, 0x26]
+ strh r5, [r6, 0x3C]
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ add r1, r9
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ adds r1, r7, 0
+ bl SetHeldItemIconVisibility
+ add r4, r10
+ ldr r1, [r4]
+ adds r0, r6, 0
+ bl _call_via_r1
+_0806DCB0:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _0806DC50
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DCC8: .4byte gSprites
+_0806DCCC: .4byte gPlayerParty
+_0806DCD0: .4byte gSpriteTemplate_837660C
+ thumb_func_end CreateHeldItemIcons_806DC34
+
+ thumb_func_start CreateHeldItemIcon_806DCD4
+CreateHeldItemIcon_806DCD4: @ 806DCD4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r7, r2, 16
+ bl GetMonIconSpriteId_maybe
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806DD30 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ strh r4, [r5, 0x3C]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r6, [r0, 0x3C]
+ cmp r7, 0
+ bne _0806DD34
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DD5C
+ .align 2, 0
+_0806DD2C: .4byte gSpriteTemplate_837660C
+_0806DD30: .4byte gSprites
+_0806DD34:
+ adds r0, r7, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DD46
+ adds r0, r5, 0
+ movs r1, 0x1
+ b _0806DD4A
+_0806DD46:
+ adds r0, r5, 0
+ movs r1, 0
+_0806DD4A:
+ bl StartSpriteAnim
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0806DD5C:
+ ldr r2, _0806DD78 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DD78: .4byte gSprites
+ thumb_func_end CreateHeldItemIcon_806DCD4
+
+ thumb_func_start SpriteCB_HeldItemIcon_806DD7C
+SpriteCB_HeldItemIcon_806DD7C: @ 806DD7C
+ ldrh r2, [r0, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DD9C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ strh r2, [r0, 0x20]
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0806DD9C: .4byte gSprites
+ thumb_func_end SpriteCB_HeldItemIcon_806DD7C
+
+ thumb_func_start GetMonIconSpriteId_maybe
+GetMonIconSpriteId_maybe: @ 806DDA0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x5
+ bhi _0806DE38
+ lsls r0, 2
+ ldr r1, _0806DDB8 @ =_0806DDBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DDB8: .4byte _0806DDBC
+ .align 2, 0
+_0806DDBC:
+ .4byte _0806DE38
+ .4byte _0806DDD4
+ .4byte _0806DDE8
+ .4byte _0806DDFC
+ .4byte _0806DE10
+ .4byte _0806DE24
+_0806DDD4:
+ ldr r0, _0806DDE4 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ b _0806DE46
+ .align 2, 0
+_0806DDE4: .4byte gTasks
+_0806DDE8:
+ ldr r0, _0806DDF8 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ b _0806DE44
+ .align 2, 0
+_0806DDF8: .4byte gTasks
+_0806DDFC:
+ ldr r0, _0806DE0C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0806DE46
+ .align 2, 0
+_0806DE0C: .4byte gTasks
+_0806DE10:
+ ldr r0, _0806DE20 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ b _0806DE44
+ .align 2, 0
+_0806DE20: .4byte gTasks
+_0806DE24:
+ ldr r0, _0806DE34 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xC]
+ b _0806DE46
+ .align 2, 0
+_0806DE34: .4byte gTasks
+_0806DE38:
+ ldr r0, _0806DE4C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+_0806DE44:
+ lsrs r0, 8
+_0806DE46:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DE4C: .4byte gTasks
+ thumb_func_end GetMonIconSpriteId_maybe
+
+ thumb_func_start SetMonIconSpriteId_maybe
+SetMonIconSpriteId_maybe: @ 806DE50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r0, 0x5
+ bhi _0806DF24
+ lsls r0, 2
+ ldr r1, _0806DE6C @ =_0806DE70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DE6C: .4byte _0806DE70
+ .align 2, 0
+_0806DE70:
+ .4byte _0806DE88
+ .4byte _0806DEA0
+ .4byte _0806DEC0
+ .4byte _0806DED8
+ .4byte _0806DEF8
+ .4byte _0806DF10
+_0806DE88:
+ ldr r1, _0806DE9C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DE9C: .4byte gTasks
+_0806DEA0:
+ ldr r0, _0806DEB8 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ ldr r0, _0806DEBC @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DEB8: .4byte gTasks
+_0806DEBC: .4byte 0xffffff00
+_0806DEC0:
+ ldr r1, _0806DED4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DED4: .4byte gTasks
+_0806DED8:
+ ldr r0, _0806DEF0 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0806DEF4 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DEF0: .4byte gTasks
+_0806DEF4: .4byte 0xffffff00
+_0806DEF8:
+ ldr r1, _0806DF0C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xC]
+ b _0806DF24
+ .align 2, 0
+_0806DF0C: .4byte gTasks
+_0806DF10:
+ ldr r0, _0806DF2C @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ ldr r0, _0806DF30 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xC]
+_0806DF24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DF2C: .4byte gTasks
+_0806DF30: .4byte 0xffffff00
+ thumb_func_end SetMonIconSpriteId_maybe
+
+ thumb_func_start GetHeldItemIconSpriteIdByMon_maybe
+GetHeldItemIconSpriteIdByMon_maybe: @ 806DF34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806DF5C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DF5C: .4byte gSprites
+ thumb_func_end GetHeldItemIconSpriteIdByMon_maybe
+
+ thumb_func_start SetHeldItemIconVisibility
+SetHeldItemIconVisibility: @ 806DF60
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl GetHeldItemIconSpriteIdByMon_maybe
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0806DFA4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ bne _0806DFAC
+ ldr r1, _0806DFA8 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DFF6
+ .align 2, 0
+_0806DFA4: .4byte gPlayerParty
+_0806DFA8: .4byte gSprites
+_0806DFAC:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DFD8
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _0806DFD4 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0806DFE6
+ .align 2, 0
+_0806DFD4: .4byte gSprites
+_0806DFD8:
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r0, _0806DFFC @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+_0806DFE6:
+ bl StartSpriteAnim
+ adds r4, 0x3E
+ ldrb r1, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+_0806DFF6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DFFC: .4byte gSprites
+ thumb_func_end SetHeldItemIconVisibility
+
+ thumb_func_start box_print
+box_print: @ 806E000
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E040 @ =gTileBuffer
+ ldr r2, _0806E044 @ =0x01000100
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E04C @ =0x06014000
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E040: .4byte gTileBuffer
+_0806E044: .4byte 0x01000100
+_0806E048: .4byte gWindowConfig_81E6CAC
+_0806E04C: .4byte 0x06014000
+ thumb_func_end box_print
+
+ thumb_func_start PrintPartyMenuMonNickname
+PrintPartyMenuMonNickname: @ 806E050
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, sp
+ bl GetMonNickname
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl box_print
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PrintPartyMenuMonNickname
+
+ thumb_func_start TryPrintPartyMenuMonNickname
+TryPrintPartyMenuMonNickname: @ 806E07C
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E0BC
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E0AA
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+ b _0806E0BC
+_0806E0AA:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+_0806E0BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end TryPrintPartyMenuMonNickname
+
+ thumb_func_start PrintPartyMenuMonNicknames
+PrintPartyMenuMonNicknames: @ 806E0C4
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E0E8 @ =gPlayerParty
+_0806E0CC:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl TryPrintPartyMenuMonNickname
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E0CC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E0E8: .4byte gPlayerParty
+ thumb_func_end PrintPartyMenuMonNicknames
+
+ thumb_func_start GetMonNickname
+GetMonNickname: @ 806E0EC
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonNickname
+
+ thumb_func_start PartyMenuPutStatusTilemap
+PartyMenuPutStatusTilemap: @ 806E104
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0806E15C @ =gUnknown_08376738
+ lsrs r0, 22
+ lsls r3, r1, 1
+ adds r3, r1
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r4
+ ldrb r1, [r0]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E160 @ =0x0600f000
+ adds r4, r1, r0
+ lsls r2, 26
+ lsrs r2, 24
+ movs r3, 0
+ movs r0, 0xC6
+ lsls r0, 1
+ adds r2, r0
+ ldr r0, _0806E164 @ =0xffffb000
+ adds r5, r0, 0
+_0806E142:
+ lsls r0, r3, 1
+ adds r0, r4
+ adds r1, r2, r3
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E142
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E15C: .4byte gUnknown_08376738
+_0806E160: .4byte 0x0600f000
+_0806E164: .4byte 0xffffb000
+ thumb_func_end PartyMenuPutStatusTilemap
+
+ thumb_func_start PartyMenuClearLevelStatusTilemap
+PartyMenuClearLevelStatusTilemap: @ 806E168
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E17E
+ movs r3, 0x2
+ b _0806E186
+_0806E17E:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0806E186:
+ ldr r1, _0806E1C8 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ ldrb r1, [r2]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E1CC @ =0x0600f000
+ adds r1, r0
+ movs r3, 0
+ movs r2, 0
+_0806E1B0:
+ lsls r0, r3, 1
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E1B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E1C8: .4byte gUnknown_08376738
+_0806E1CC: .4byte 0x0600f000
+ thumb_func_end PartyMenuClearLevelStatusTilemap
+
+ thumb_func_start PartyMenuWriteTilemap
+PartyMenuWriteTilemap: @ 806E1D0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 19
+ adds r1, r2
+ lsls r1, 1
+ ldr r2, _0806E1F0 @ =0x0600f000
+ adds r1, r2
+ movs r2, 0x86
+ lsls r2, 1
+ adds r0, r2
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0806E1F0: .4byte 0x0600f000
+ thumb_func_end PartyMenuWriteTilemap
+
+ thumb_func_start PartyMenuDoPrintLevel
+PartyMenuDoPrintLevel: @ 806E1F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r3, _0806E278 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x40
+ bl PartyMenuWriteTilemap
+ ldr r6, _0806E27C @ =gStringVar1
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x12
+ strb r0, [r6, 0x1]
+ movs r0, 0x8
+ strb r0, [r6, 0x2]
+ adds r0, r6, 0x3
+ adds r1, r5, 0
+ bl ConvertIntToDecimalString
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E280 @ =gUnknown_02039460
+ ldr r2, _0806E284 @ =0x01000020
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E28C @ =0xffffff00
+ adds r1, r5, r2
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E290 @ =0x06014200
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E278: .4byte gUnknown_08376738
+_0806E27C: .4byte gStringVar1
+_0806E280: .4byte gUnknown_02039460
+_0806E284: .4byte 0x01000020
+_0806E288: .4byte gWindowConfig_81E6CAC
+_0806E28C: .4byte 0xffffff00
+_0806E290: .4byte 0x06014200
+ thumb_func_end PartyMenuDoPrintLevel
+
+ thumb_func_start PartyMenuPrintLevel
+PartyMenuPrintLevel: @ 806E294
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x38
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl PartyMenuDoPrintLevel
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintLevel
+
+ thumb_func_start PartyMenuPrintMonLevelOrStatus
+PartyMenuPrintMonLevelOrStatus: @ 806E2C0
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E32E
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E32E
+ adds r0, r5, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E2FA
+ movs r6, 0x2
+ b _0806E302
+_0806E2FA:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0806E302:
+ cmp r4, 0
+ beq _0806E31A
+ cmp r4, 0x6
+ beq _0806E31A
+ subs r2, r4, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuPutStatusTilemap
+ b _0806E324
+_0806E31A:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPrintLevel
+_0806E324:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPutNicknameTilemap
+_0806E32E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintMonLevelOrStatus
+
+ thumb_func_start PartyMenuPrintMonsLevelOrStatus
+PartyMenuPrintMonsLevelOrStatus: @ 806E334
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E358 @ =gPlayerParty
+_0806E33C:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuPrintMonLevelOrStatus
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E33C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E358: .4byte gPlayerParty
+ thumb_func_end PartyMenuPrintMonsLevelOrStatus
+
+ thumb_func_start PartyMenuDoPutNicknameTilemap
+PartyMenuDoPutNicknameTilemap: @ 806E35C
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r1, r4, 0
+ bl sub_8040D8C
+ cmp r0, 0
+ bne _0806E3BA
+ ldr r2, _0806E3A4 @ =gUnknown_08376738
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r7, 0
+ beq _0806E3A8
+ cmp r7, 0xFE
+ beq _0806E3B2
+ b _0806E3BA
+ .align 2, 0
+_0806E3A4: .4byte gUnknown_08376738
+_0806E3A8:
+ movs r0, 0x42
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+ b _0806E3BA
+_0806E3B2:
+ movs r0, 0x44
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+_0806E3BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDoPutNicknameTilemap
+
+ thumb_func_start PartyMenuPutNicknameTilemap
+PartyMenuPutNicknameTilemap: @ 806E3C0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0806E41C @ =gStringVar1
+ mov r9, r0
+ adds r0, r5, 0
+ mov r1, r9
+ bl GetMonNickname
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl GetMonGender
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl PartyMenuDoPutNicknameTilemap
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E41C: .4byte gStringVar1
+ thumb_func_end PartyMenuPutNicknameTilemap
+
+ thumb_func_start PartyMenuDoPrintHP
+PartyMenuDoPrintHP: @ 806E420
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r1, r2, 0
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r2, _0806E48C @ =gStringVar1
+ adds r0, r2, 0
+ movs r2, 0xF
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r5, 0
+ movs r2, 0x23
+ movs r3, 0x1
+ bl sub_8072C14
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E490 @ =gUnknown_02039460
+ ldr r2, _0806E494 @ =0x01000040
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E49C @ =0xffffff00
+ adds r1, r5, r2
+ ldr r2, _0806E48C @ =gStringVar1
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E4A0 @ =0x06014300
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E48C: .4byte gStringVar1
+_0806E490: .4byte gUnknown_02039460
+_0806E494: .4byte 0x01000040
+_0806E498: .4byte gWindowConfig_81E6CAC
+_0806E49C: .4byte 0xffffff00
+_0806E4A0: .4byte 0x06014300
+ thumb_func_end PartyMenuDoPrintHP
+
+ thumb_func_start PartyMenuPrintHP
+PartyMenuPrintHP: @ 806E4A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintHP
+
+ thumb_func_start PartyMenuTryPrintHP
+PartyMenuTryPrintHP: @ 806E4E8
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E534
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E534
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E522
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+ b _0806E534
+_0806E522:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+_0806E534:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryPrintHP
+
+ thumb_func_start PartyMenuTryPrintMonsHP
+PartyMenuTryPrintMonsHP: @ 806E53C
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E560 @ =gPlayerParty
+_0806E544:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryPrintHP
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E544
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E560: .4byte gPlayerParty
+ thumb_func_end PartyMenuTryPrintMonsHP
+
+ thumb_func_start unref_sub_806E564
+unref_sub_806E564: @ 806E564
+ bx lr
+ thumb_func_end unref_sub_806E564
+
+ thumb_func_start unref_sub_806E568
+unref_sub_806E568: @ 806E568
+ bx lr
+ thumb_func_end unref_sub_806E568
+
+ thumb_func_start nullsub_12
+nullsub_12: @ 806E56C
+ bx lr
+ thumb_func_end nullsub_12
+
+ thumb_func_start nullsub_13
+nullsub_13: @ 806E570
+ bx lr
+ thumb_func_end nullsub_13
+
+ thumb_func_start PartyMenuDoDrawHPBar
+PartyMenuDoDrawHPBar: @ 806E574
+ push {r4-r6,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _0806E624 @ =0xffff8000
+ str r0, [sp, 0x14]
+ str r3, [sp]
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r3, 16
+ asrs r3, 16
+ adds r0, r2, 0
+ adds r1, r3, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ cmp r3, 0x2
+ bls _0806E5BE
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5BE:
+ cmp r3, 0x2
+ bne _0806E5D2
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x5
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5D2:
+ cmp r4, 0x1
+ bhi _0806E5E6
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x6
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5E6:
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp, 0x10]
+ ldr r2, _0806E628 @ =gUnknown_08376858
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r4, [r1]
+ add r1, sp, 0x14
+ mov r0, sp
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80460C8
+ subs r4, 0x4
+ ldr r1, _0806E62C @ =0x00003109
+ adds r0, r1, 0
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x10]
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E624: .4byte 0xffff8000
+_0806E628: .4byte gUnknown_08376858
+_0806E62C: .4byte 0x00003109
+ thumb_func_end PartyMenuDoDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBar
+PartyMenuDrawHPBar: @ 806E630
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoDrawHPBar
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDrawHPBar
+
+ thumb_func_start PartyMenuTryDrawHPBar
+PartyMenuTryDrawHPBar: @ 806E674
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E6C0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E6C0
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E6AE
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+ b _0806E6C0
+_0806E6AE:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+_0806E6C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBars
+PartyMenuDrawHPBars: @ 806E6C8
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E6EC @ =gPlayerParty
+_0806E6D0:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryDrawHPBar
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E6D0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E6EC: .4byte gPlayerParty
+ thumb_func_end PartyMenuDrawHPBars
+
+ thumb_func_start sub_806E6F0
+sub_806E6F0: @ 806E6F0
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E6F0
+
+ thumb_func_start sub_806E720
+sub_806E720: @ 806E720
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, r3
+ ldrb r4, [r0]
+ lsls r4, 25
+ movs r3, 0x80
+ lsls r3, 18
+ adds r4, r3
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1E
+ subs r3, r0
+ strb r3, [r1]
+ movs r0, 0x14
+ subs r0, r4
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E720
+
+ thumb_func_start sub_806E750
+sub_806E750: @ 806E750
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r4, r1, 0
+ mov r9, r2
+ adds r6, r3, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x9
+ add r0, sp
+ mov r8, r0
+ adds r0, r5, 0
+ add r1, sp, 0x8
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_806E720
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r5, 3
+ adds r5, r4
+ ldrb r2, [r5, 0x1]
+ ldrb r3, [r5]
+ mov r4, r9
+ str r4, [sp]
+ ldr r4, [r5, 0x4]
+ str r4, [sp, 0x4]
+ bl sub_8089C50
+ add r0, sp, 0x8
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ ldrb r2, [r0]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r5]
+ str r6, [sp]
+ ldrb r0, [r5, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E750
+
+ thumb_func_start sub_806E7D0
+sub_806E7D0: @ 806E7D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ adds r5, 0x1
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_806E720
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ lsls r4, 3
+ adds r4, r6
+ ldrb r2, [r4, 0x1]
+ adds r2, r0, r2
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, r1, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E7D0
+
+ thumb_func_start sub_806E81C
+sub_806E81C: @ 806E81C
+ lsls r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsrs r0, 21
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_806E81C
+
+ thumb_func_start sub_806E834
+sub_806E834: @ 806E834
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r1, _0806E878 @ =gUnknown_0202E8F6
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x4
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r0, _0806E87C @ =sub_806E884
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806E880 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806E878: .4byte gUnknown_0202E8F6
+_0806E87C: .4byte sub_806E884
+_0806E880: .4byte gTasks
+ thumb_func_end sub_806E834
+
+ thumb_func_start sub_806E884
+sub_806E884: @ 806E884
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806E8C0
+ ldr r1, _0806E8C8 @ =gUnknown_0202E8F6
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0806E8CC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0806E8BA
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_0806E8BA:
+ adds r0, r5, 0
+ bl DestroyTask
+_0806E8C0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E8C8: .4byte gUnknown_0202E8F6
+_0806E8CC: .4byte gTasks
+ thumb_func_end sub_806E884
+
+ thumb_func_start sub_806E8D0
+sub_806E8D0: @ 806E8D0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r4, _0806E8FC @ =0x0201c000
+ str r2, [r4, 0x10]
+ strb r0, [r4, 0x4]
+ bl sub_806CA38
+ strb r0, [r4, 0x5]
+ strh r5, [r4, 0x6]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806E900 @ =gPlayerParty
+ adds r0, r1
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E8FC: .4byte 0x0201c000
+_0806E900: .4byte gPlayerParty
+ thumb_func_end sub_806E8D0
+
+ thumb_func_start PartyMenuUpdateMonHeldItem
+PartyMenuUpdateMonHeldItem: @ 806E904
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E93C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2BC4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0806E930
+ movs r0, 0x1
+ b _0806E958
+_0806E930:
+ ldr r1, _0806E938 @ =gUnknown_0202E8F4
+ movs r0, 0x2
+ b _0806E940
+ .align 2, 0
+_0806E938: .4byte gUnknown_0202E8F4
+_0806E93C:
+ ldr r1, _0806E960 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+_0806E940:
+ strb r0, [r1]
+ mov r0, sp
+ strb r4, [r0]
+ mov r1, sp
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x1]
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0
+_0806E958:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806E960: .4byte gUnknown_0202E8F4
+ thumb_func_end PartyMenuUpdateMonHeldItem
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem
+PartyMenuTryGiveMonHeldItem: @ 806E964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ mov r9, r5
+ ldr r2, _0806E9D4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r2
+ ldr r1, _0806E9D8 @ =TaskDummy
+ str r1, [r6]
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_806E8D0
+ ldr r4, _0806E9DC @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r7, r2, 0
+ ldr r1, _0806E9E0 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0806E9E4 @ =gUnknown_0202E8F8
+ mov r10, r0
+ movs r0, 0
+ mov r1, r10
+ strh r0, [r1]
+ cmp r2, 0
+ beq _0806EA44
+ adds r0, r2, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E9F0
+ ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EA78
+ .align 2, 0
+_0806E9D4: .4byte gTasks
+_0806E9D8: .4byte TaskDummy
+_0806E9DC: .4byte 0x0201c000
+_0806E9E0: .4byte gUnknown_0202E8F4
+_0806E9E4: .4byte gUnknown_0202E8F8
+_0806E9E8: .4byte gOtherText_MailMustBeRemoved
+_0806E9EC: .4byte party_menu_link_mon_held_item_object
+_0806E9F0:
+ ldr r0, [r4]
+ ldr r1, _0806EA30 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EA34 @ =gStringVar2
+ adds r0, r7, 0
+ bl CopyItemName
+ ldr r4, _0806EA38 @ =gStringVar4
+ ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EA40 @ =Task_ConfirmGiveHeldItem
+ movs r1, 0x5
+ bl CreateTask
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EA78
+ mov r0, r10
+ strh r7, [r0]
+ b _0806EA78
+ .align 2, 0
+_0806EA30: .4byte gStringVar1
+_0806EA34: .4byte gStringVar2
+_0806EA38: .4byte gStringVar4
+_0806EA3C: .4byte gOtherText_AlreadyHolding
+_0806EA40: .4byte Task_ConfirmGiveHeldItem
+_0806EA44:
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl PartyMenuUpdateMonHeldItem
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EA66
+ mov r1, r8
+ str r1, [r6]
+ b _0806EA78
+_0806EA66:
+ ldrb r0, [r4, 0x5]
+ mov r1, r9
+ movs r2, 0x1
+ bl DisplayGiveHeldItemMessage
+ ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806EA78:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EA88: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem
+
+ thumb_func_start party_menu_link_mon_held_item_object
+party_menu_link_mon_held_item_object: @ 806EA8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806EAC0 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EABA
+ ldr r4, _0806EAC4 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r2, _0806EAC8 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+_0806EABA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EAC0: .4byte gUnknown_0202E8F6
+_0806EAC4: .4byte 0x0201c000
+_0806EAC8: .4byte gTasks
+ thumb_func_end party_menu_link_mon_held_item_object
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem_806EACC
+PartyMenuTryGiveMonHeldItem_806EACC: @ 806EACC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EB74
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806EB30 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EB5C
+ ldr r0, [r4]
+ ldrh r1, [r4, 0x6]
+ bl PartyMenuUpdateMonHeldItem
+ ldrh r0, [r4, 0x6]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EB34
+ ldrb r0, [r4, 0x5]
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl DisplayTakeHeldItemMessage
+ b _0806EB9A
+ .align 2, 0
+_0806EB30: .4byte 0x0201c000
+_0806EB34:
+ ldrh r0, [r4, 0x6]
+ ldr r1, _0806EB50 @ =gStringVar1
+ bl CopyItemName
+ ldr r4, _0806EB54 @ =gStringVar4
+ ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ b _0806EB9A
+ .align 2, 0
+_0806EB50: .4byte gStringVar1
+_0806EB54: .4byte gStringVar4
+_0806EB58: .4byte gOtherText_TakenAndReplaced
+_0806EB5C:
+ ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ b _0806EB9A
+ .align 2, 0
+_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EB74:
+ cmp r1, 0x1
+ beq _0806EB80
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EBA8
+_0806EB80:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EB8E
+ movs r0, 0x5
+ bl PlaySE
+_0806EB8E:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+_0806EB9A:
+ ldr r0, _0806EBB0 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+_0806EBA8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBB0: .4byte gTasks
+_0806EBB4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem_806EACC
+
+ thumb_func_start Task_ConfirmGiveHeldItem
+Task_ConfirmGiveHeldItem: @ 806EBB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EBE4 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EBDE
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EBE8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBEC @ =PartyMenuTryGiveMonHeldItem_806EACC
+ str r0, [r1]
+_0806EBDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBE4: .4byte gUnknown_0202E8F6
+_0806EBE8: .4byte gTasks
+_0806EBEC: .4byte PartyMenuTryGiveMonHeldItem_806EACC
+ thumb_func_end Task_ConfirmGiveHeldItem
+
+ thumb_func_start DisplayGiveHeldItemMessage
+DisplayGiveHeldItemMessage: @ 806EBF0
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EC30 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0806EC34 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EC38 @ =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, _0806EC3C @ =gStringVar4
+ ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EC30: .4byte gPlayerParty
+_0806EC34: .4byte gStringVar1
+_0806EC38: .4byte gStringVar2
+_0806EC3C: .4byte gStringVar4
+_0806EC40: .4byte gOtherText_WasGivenToHold
+ thumb_func_end DisplayGiveHeldItemMessage
+
+ thumb_func_start PartyMenuTryGiveMonMail
+PartyMenuTryGiveMonMail: @ 806EC44
+ push {r4,r5,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ECA0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ECA4 @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ECA8 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ ldr r2, _0806ECAC @ =gUnknown_0202E8F4
+ movs r1, 0
+ strb r1, [r2]
+ movs r1, 0xF8
+ lsls r1, 6
+ adds r2, r5, r1
+ ldrb r1, [r2]
+ adds r1, 0x6
+ ldrb r2, [r2, 0x2]
+ adds r1, r2
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 2
+ ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C
+ adds r4, r2, r1
+ cmp r0, 0
+ beq _0806ECBC
+ ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806ECDA
+ .align 2, 0
+_0806ECA0: .4byte gTasks
+_0806ECA4: .4byte TaskDummy
+_0806ECA8: .4byte 0x0201c000
+_0806ECAC: .4byte gUnknown_0202E8F4
+_0806ECB0: .4byte gSaveBlock1 + 0x2B4C
+_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail
+_0806ECB8: .4byte party_menu_link_mon_held_item_object
+_0806ECBC:
+ ldr r0, [r5]
+ adds r1, r4, 0
+ bl sub_80A2D88
+ adds r0, r4, 0
+ bl sub_80A2B40
+ ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806ECDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806ECE0: .4byte gOtherText_MailTransferredMailbox
+_0806ECE4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonMail
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem_806ECE8
+PartyMenuTryGiveMonHeldItem_806ECE8: @ 806ECE8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ED38 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ED3C @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ED40 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ cmp r4, 0
+ bne _0806ED50
+ ldr r4, _0806ED44 @ =gStringVar4
+ ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EDA2
+ .align 2, 0
+_0806ED38: .4byte gTasks
+_0806ED3C: .4byte TaskDummy
+_0806ED40: .4byte 0x0201c000
+_0806ED44: .4byte gStringVar4
+_0806ED48: .4byte gOtherText_NotHoldingAnything
+_0806ED4C: .4byte party_menu_link_mon_held_item_object
+_0806ED50:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED92
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED7C
+ ldr r0, [r5]
+ bl sub_80A2DF8
+_0806ED7C:
+ ldrb r0, [r5, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl DisplayTakeHeldItemMessage
+ ldr r0, [r5]
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ b _0806ED9A
+_0806ED92:
+ ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+_0806ED9A:
+ ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806EDA2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EDB0: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem_806ECE8
+
+ thumb_func_start DisplayTakeHeldItemMessage
+DisplayTakeHeldItemMessage: @ 806EDB4
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EDF4 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0806EDF8 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EDFC @ =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, _0806EE00 @ =gStringVar4
+ ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDF4: .4byte gPlayerParty
+_0806EDF8: .4byte gStringVar1
+_0806EDFC: .4byte gStringVar2
+_0806EE00: .4byte gStringVar4
+_0806EE04: .4byte gOtherText_ReceivedTheThingFrom
+ thumb_func_end DisplayTakeHeldItemMessage
+
+ thumb_func_start DoTakeMail
+DoTakeMail: @ 806EE08
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806EE48 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806EE4C @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r4, _0806EE50 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EE58 @ =Task_ConfirmTakeHeldMail
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EE48: .4byte gTasks
+_0806EE4C: .4byte TaskDummy
+_0806EE50: .4byte 0x0201c000
+_0806EE54: .4byte gOtherText_SendRemovedMailPrompt
+_0806EE58: .4byte Task_ConfirmTakeHeldMail
+ thumb_func_end DoTakeMail
+
+ thumb_func_start Task_LoseMailMessage
+Task_LoseMailMessage: @ 806EE5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EEB0
+ ldr r5, _0806EE90 @ =0x0201c000
+ ldrh r0, [r5, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EE98
+ ldr r0, [r5]
+ bl sub_80A2DF8
+ ldr r0, _0806EE94 @ =gOtherText_MailTaken
+ movs r1, 0
+ bl sub_806E834
+ b _0806EEA0
+ .align 2, 0
+_0806EE90: .4byte 0x0201c000
+_0806EE94: .4byte gOtherText_MailTaken
+_0806EE98:
+ ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+_0806EEA0:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ b _0806EEDE
+ .align 2, 0
+_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EEB0:
+ cmp r1, 0x1
+ beq _0806EEBC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EEF0
+_0806EEBC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EECA
+ movs r0, 0x5
+ bl PlaySE
+_0806EECA:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+_0806EEDE:
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EEF8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+_0806EEF0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EEF8: .4byte gTasks
+_0806EEFC: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end Task_LoseMailMessage
+
+ thumb_func_start Task_ConfirmLoseMailMessage
+Task_ConfirmLoseMailMessage: @ 806EF00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EF2C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EF26
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EF30 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF34 @ =Task_LoseMailMessage
+ str r0, [r1]
+_0806EF26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EF2C: .4byte gUnknown_0202E8F6
+_0806EF30: .4byte gTasks
+_0806EF34: .4byte Task_LoseMailMessage
+ thumb_func_end Task_ConfirmLoseMailMessage
+
+ thumb_func_start Task_TakeHeldMail
+Task_TakeHeldMail: @ 806EF38
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EF9C
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EF70 @ =0x0201c000
+ ldr r0, [r0]
+ bl sub_80A2E78
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0806EF78
+ ldr r0, _0806EF74 @ =gOtherText_MailWasSent
+ movs r1, 0
+ bl sub_806E834
+ b _0806EF80
+ .align 2, 0
+_0806EF70: .4byte 0x0201c000
+_0806EF74: .4byte gOtherText_MailWasSent
+_0806EF78:
+ ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull
+ movs r1, 0
+ bl sub_806E834
+_0806EF80:
+ ldr r0, _0806EF94 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+ b _0806EFD8
+ .align 2, 0
+_0806EF90: .4byte gOtherText_MailboxIsFull
+_0806EF94: .4byte gTasks
+_0806EF98: .4byte party_menu_link_mon_held_item_object
+_0806EF9C:
+ cmp r1, 0x1
+ beq _0806EFA8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFD8
+_0806EFA8:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFB6
+ movs r0, 0x5
+ bl PlaySE
+_0806EFB6:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806EFE4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806EFE8 @ =Task_ConfirmLoseMailMessage
+ str r1, [r0]
+_0806EFD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
+_0806EFE4: .4byte gTasks
+_0806EFE8: .4byte Task_ConfirmLoseMailMessage
+ thumb_func_end Task_TakeHeldMail
+
+ thumb_func_start Task_ConfirmTakeHeldMail
+Task_ConfirmTakeHeldMail: @ 806EFEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F018 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F012
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F01C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F020 @ =Task_TakeHeldMail
+ str r0, [r1]
+_0806F012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F018: .4byte gUnknown_0202E8F6
+_0806F01C: .4byte gTasks
+_0806F020: .4byte Task_TakeHeldMail
+ thumb_func_end Task_ConfirmTakeHeldMail
+
+ thumb_func_start ItemIdToBattleMoveId
+ItemIdToBattleMoveId: @ 806F024
+ lsls r0, 16
+ ldr r1, _0806F034 @ =0xfedf0000
+ adds r0, r1
+ ldr r1, _0806F038 @ =gUnknown_08376504
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_0806F034: .4byte 0xfedf0000
+_0806F038: .4byte gUnknown_08376504
+ thumb_func_end ItemIdToBattleMoveId
+
+ thumb_func_start pokemon_has_move
+pokemon_has_move: @ 806F03C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+_0806F046:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl GetMonData
+ cmp r0, r5
+ bne _0806F058
+ movs r0, 0x1
+ b _0806F064
+_0806F058:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0806F046
+ movs r0, 0
+_0806F064:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_has_move
+
+ thumb_func_start TeachMonTMMove
+TeachMonTMMove: @ 806F06C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0806F0A8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F0AC @ =TaskDummy
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E8D0
+ ldr r0, _0806F0B0 @ =Task_TeamMonTMMove
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F0A8: .4byte gTasks
+_0806F0AC: .4byte TaskDummy
+_0806F0B0: .4byte Task_TeamMonTMMove
+ thumb_func_end TeachMonTMMove
+
+ thumb_func_start Task_TeamMonTMMove
+Task_TeamMonTMMove: @ 806F0B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r5, _0806F114 @ =0x0201c000
+ ldr r0, [r5]
+ ldr r1, _0806F118 @ =gStringVar1
+ bl GetMonNickname
+ ldrh r0, [r5, 0x6]
+ bl ItemIdToBattleMoveId
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _0806F11C @ =gStringVar2
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F120 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _0806F124 @ =0xfffff282
+ adds r0, r5, r1
+ strh r4, [r0]
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F138
+ ldr r4, _0806F128 @ =gStringVar4
+ ldr r1, _0806F12C @ =gOtherText_AlreadyKnows
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F130 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object
+ b _0806F1B6
+ .align 2, 0
+_0806F114: .4byte 0x0201c000
+_0806F118: .4byte gStringVar1
+_0806F11C: .4byte gStringVar2
+_0806F120: .4byte gMoveNames
+_0806F124: .4byte 0xfffff282
+_0806F128: .4byte gStringVar4
+_0806F12C: .4byte gOtherText_AlreadyKnows
+_0806F130: .4byte gTasks
+_0806F134: .4byte party_menu_link_mon_held_item_object
+_0806F138:
+ ldr r0, [r5]
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x21
+ lsls r1, 24
+ lsrs r1, 24
+ bl CanMonLearnTMHM
+ cmp r0, 0
+ bne _0806F17C
+ ldr r4, _0806F16C @ =gStringVar4
+ ldr r1, _0806F170 @ =gOtherText_NotCompatible
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F174 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object
+ b _0806F1B6
+ .align 2, 0
+_0806F16C: .4byte gStringVar4
+_0806F170: .4byte gOtherText_NotCompatible
+_0806F174: .4byte gTasks
+_0806F178: .4byte party_menu_link_mon_held_item_object
+_0806F17C:
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, _0806F194 @ =0xffff0000
+ cmp r0, r1
+ beq _0806F198
+ adds r0, r6, 0
+ bl Task_TeamMonTMMove2
+ b _0806F1B8
+ .align 2, 0
+_0806F194: .4byte 0xffff0000
+_0806F198:
+ ldr r4, _0806F1C0 @ =gStringVar4
+ ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F1C8 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F1CC @ =sub_806F358
+_0806F1B6:
+ str r1, [r0]
+_0806F1B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F1C0: .4byte gStringVar4
+_0806F1C4: .4byte gOtherText_WantsToLearn
+_0806F1C8: .4byte gTasks
+_0806F1CC: .4byte sub_806F358
+ thumb_func_end Task_TeamMonTMMove
+
+ thumb_func_start Task_TeamMonTMMove2
+Task_TeamMonTMMove2: @ 806F1D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F234 @ =gStringVar2
+ ldr r5, _0806F238 @ =0x0201c000
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F23C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F240 @ =gStringVar4
+ ldr r1, _0806F244 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, [r5]
+ movs r1, 0x4
+ bl AdjustFriendship
+ ldr r1, _0806F248 @ =0xfffff282
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0806F220
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0806F220
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_0806F220:
+ ldr r0, _0806F24C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F250 @ =Task_TeamMonTMMove3
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F234: .4byte gStringVar2
+_0806F238: .4byte 0x0201c000
+_0806F23C: .4byte gMoveNames
+_0806F240: .4byte gStringVar4
+_0806F244: .4byte gOtherText_LearnedMove
+_0806F248: .4byte 0xfffff282
+_0806F24C: .4byte gTasks
+_0806F250: .4byte Task_TeamMonTMMove3
+ thumb_func_end Task_TeamMonTMMove2
+
+ thumb_func_start Task_TeamMonTMMove3
+Task_TeamMonTMMove3: @ 806F254
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F27C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F276
+ ldr r0, _0806F280 @ =0x0000016f
+ bl PlayFanfare
+ ldr r1, _0806F284 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F288 @ =Task_TeamMonTMMove4
+ str r1, [r0]
+_0806F276:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F27C: .4byte gUnknown_0202E8F6
+_0806F280: .4byte 0x0000016f
+_0806F284: .4byte gTasks
+_0806F288: .4byte Task_TeamMonTMMove4
+ thumb_func_end Task_TeamMonTMMove3
+
+ thumb_func_start Task_TeamMonTMMove4
+Task_TeamMonTMMove4: @ 806F28C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F2F2
+ ldr r0, _0806F2D0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F2B2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806F2F2
+_0806F2B2:
+ ldr r4, _0806F2D4 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r1, _0806F2D8 @ =0xfffff282
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F2DC
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F2F2
+ .align 2, 0
+_0806F2D0: .4byte gMain
+_0806F2D4: .4byte 0x0201c000
+_0806F2D8: .4byte 0xfffff282
+_0806F2DC:
+ ldr r2, _0806F2F8 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F2F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F2F8: .4byte gTasks
+ thumb_func_end Task_TeamMonTMMove4
+
+ thumb_func_start sub_806F2FC
+sub_806F2FC: @ 806F2FC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ ldr r0, _0806F32C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F34E
+ ldr r4, _0806F330 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r1, _0806F334 @ =0xfffff282
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F338
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F34E
+ .align 2, 0
+_0806F32C: .4byte gUnknown_0202E8F6
+_0806F330: .4byte 0x0201c000
+_0806F334: .4byte 0xfffff282
+_0806F338:
+ ldr r2, _0806F354 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F34E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F354: .4byte gTasks
+ thumb_func_end sub_806F2FC
+
+ thumb_func_start sub_806F358
+sub_806F358: @ 806F358
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F384 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F37E
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F388 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F38C @ =sub_806F390
+ str r0, [r1]
+_0806F37E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F384: .4byte gUnknown_0202E8F6
+_0806F388: .4byte gTasks
+_0806F38C: .4byte sub_806F390
+ thumb_func_end sub_806F358
+
+ thumb_func_start sub_806F390
+sub_806F390: @ 806F390
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F3D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F3CC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F3D0 @ =sub_806F44C
+ str r1, [r0]
+ b _0806F3F4
+ .align 2, 0
+_0806F3C8: .4byte gOtherText_WhichMoveToForget2
+_0806F3CC: .4byte gTasks
+_0806F3D0: .4byte sub_806F44C
+_0806F3D4:
+ cmp r1, 0x1
+ beq _0806F3E0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3F4
+_0806F3E0:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3EE
+ movs r0, 0x5
+ bl PlaySE
+_0806F3EE:
+ adds r0, r5, 0
+ bl StopTryingToTeachMove_806F614
+_0806F3F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F390
+
+ thumb_func_start sub_806F3FC
+sub_806F3FC: @ 806F3FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806F438 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F430
+ ldr r0, _0806F43C @ =gPlayerParty
+ ldr r4, _0806F440 @ =0x0201c000
+ ldrb r1, [r4, 0x5]
+ ldr r2, _0806F444 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806F448 @ =sub_808B564
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl sub_809D9F0
+ adds r0, r5, 0
+ bl DestroyTask
+_0806F430:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F438: .4byte gPaletteFade
+_0806F43C: .4byte gPlayerParty
+_0806F440: .4byte 0x0201c000
+_0806F444: .4byte gPlayerPartyCount
+_0806F448: .4byte sub_808B564
+ thumb_func_end sub_806F3FC
+
+ thumb_func_start sub_806F44C
+sub_806F44C: @ 806F44C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F484 @ =gUnknown_0202E8F6
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0806F47A
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0806F488 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F48C @ =sub_806F3FC
+ str r1, [r0]
+_0806F47A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F484: .4byte gUnknown_0202E8F6
+_0806F488: .4byte gTasks
+_0806F48C: .4byte sub_806F3FC
+ thumb_func_end sub_806F44C
+
+ thumb_func_start TaughtMove
+TaughtMove: @ 806F490
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F50C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F506
+ ldr r1, _0806F510 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F514 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _0806F518 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0806F51C @ =sub_808B508
+ adds r0, r3, 0
+ bl sub_806E8D0
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r5, _0806F520 @ =0x0201c000
+ ldr r0, [r5]
+ adds r1, 0xD
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, [r5]
+ ldr r1, _0806F524 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F528 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _0806F52C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F530 @ =gStringVar4
+ ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F538 @ =TMMoveUpdateMoveSlot
+ movs r1, 0x5
+ bl CreateTask
+_0806F506:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F50C: .4byte gPaletteFade
+_0806F510: .4byte gTasks
+_0806F514: .4byte TaskDummy
+_0806F518: .4byte gScriptItemId
+_0806F51C: .4byte sub_808B508
+_0806F520: .4byte 0x0201c000
+_0806F524: .4byte gStringVar1
+_0806F528: .4byte gStringVar2
+_0806F52C: .4byte gMoveNames
+_0806F530: .4byte gStringVar4
+_0806F534: .4byte gOtherText_ForgetMove123_2
+_0806F538: .4byte TMMoveUpdateMoveSlot
+ thumb_func_end TaughtMove
+
+ thumb_func_start TMMoveUpdateMoveSlot
+TMMoveUpdateMoveSlot: @ 806F53C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F580 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F57A
+ ldr r4, _0806F584 @ =0x0201c000
+ ldr r5, [r4]
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl RemoveMonPPBonus
+ ldr r5, [r4]
+ ldrh r4, [r4, 0x8]
+ bl sub_809FA30
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl SetMonMoveSlot
+ adds r0, r6, 0
+ bl Task_TeamMonTMMove2
+_0806F57A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F580: .4byte gUnknown_0202E8F6
+_0806F584: .4byte 0x0201c000
+ thumb_func_end TMMoveUpdateMoveSlot
+
+ thumb_func_start StopTryingToTeachMove_806F588
+StopTryingToTeachMove_806F588: @ 806F588
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F5E8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F5E0
+ ldr r1, _0806F5EC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F5F0 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _0806F5F4 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0806F5F8 @ =sub_808B508
+ adds r0, r3, 0
+ bl sub_806E8D0
+ ldr r0, _0806F5FC @ =gStringVar2
+ ldr r1, _0806F600 @ =0x0201c000
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F604 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F608 @ =gStringVar4
+ ldr r1, _0806F60C @ =gOtherText_StopTryingTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F610 @ =StopTryingToTeachMove_806F67C
+ movs r1, 0x5
+ bl CreateTask
+_0806F5E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F5E8: .4byte gPaletteFade
+_0806F5EC: .4byte gTasks
+_0806F5F0: .4byte TaskDummy
+_0806F5F4: .4byte gScriptItemId
+_0806F5F8: .4byte sub_808B508
+_0806F5FC: .4byte gStringVar2
+_0806F600: .4byte 0x0201c000
+_0806F604: .4byte gMoveNames
+_0806F608: .4byte gStringVar4
+_0806F60C: .4byte gOtherText_StopTryingTo
+_0806F610: .4byte StopTryingToTeachMove_806F67C
+ thumb_func_end StopTryingToTeachMove_806F588
+
+ thumb_func_start StopTryingToTeachMove_806F614
+StopTryingToTeachMove_806F614: @ 806F614
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806F660 @ =gStringVar2
+ ldr r1, _0806F664 @ =0x0201c000
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F668 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F66C @ =gStringVar4
+ ldr r1, _0806F670 @ =gOtherText_StopTryingTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F674 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F678 @ =StopTryingToTeachMove_806F67C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F660: .4byte gStringVar2
+_0806F664: .4byte 0x0201c000
+_0806F668: .4byte gMoveNames
+_0806F66C: .4byte gStringVar4
+_0806F670: .4byte gOtherText_StopTryingTo
+_0806F674: .4byte gTasks
+_0806F678: .4byte StopTryingToTeachMove_806F67C
+ thumb_func_end StopTryingToTeachMove_806F614
+
+ thumb_func_start StopTryingToTeachMove_806F67C
+StopTryingToTeachMove_806F67C: @ 806F67C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F6A8 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F6A2
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F6AC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F6B0 @ =StopTryingToTeachMove_806F6B4
+ str r0, [r1]
+_0806F6A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F6A8: .4byte gUnknown_0202E8F6
+_0806F6AC: .4byte gTasks
+_0806F6B0: .4byte StopTryingToTeachMove_806F6B4
+ thumb_func_end StopTryingToTeachMove_806F67C
+
+ thumb_func_start StopTryingToTeachMove_806F6B4
+StopTryingToTeachMove_806F6B4: @ 806F6B4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F730
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806F710 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0806F714 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F718 @ =gStringVar2
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F71C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F720 @ =gStringVar4
+ ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F728 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F72C @ =sub_806F2FC
+ b _0806F78E
+ .align 2, 0
+_0806F710: .4byte 0x0201c000
+_0806F714: .4byte gStringVar1
+_0806F718: .4byte gStringVar2
+_0806F71C: .4byte gMoveNames
+_0806F720: .4byte gStringVar4
+_0806F724: .4byte gOtherText_DidNotLearnMove2
+_0806F728: .4byte gTasks
+_0806F72C: .4byte sub_806F2FC
+_0806F730:
+ cmp r1, 0x1
+ beq _0806F73C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F790
+_0806F73C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F74A
+ movs r0, 0x5
+ bl PlaySE
+_0806F74A:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806F798 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0806F79C @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F7A0 @ =gStringVar2
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F7A4 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F7A8 @ =gStringVar4
+ ldr r1, _0806F7AC @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F7B0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F7B4 @ =sub_806F358
+_0806F78E:
+ str r1, [r0]
+_0806F790:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F798: .4byte 0x0201c000
+_0806F79C: .4byte gStringVar1
+_0806F7A0: .4byte gStringVar2
+_0806F7A4: .4byte gMoveNames
+_0806F7A8: .4byte gStringVar4
+_0806F7AC: .4byte gOtherText_WantsToLearn
+_0806F7B0: .4byte gTasks
+_0806F7B4: .4byte sub_806F358
+ thumb_func_end StopTryingToTeachMove_806F6B4
+
+ thumb_func_start IsHMMove
+IsHMMove: @ 806F7B8
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldr r3, _0806F7D4 @ =gUnknown_08376504
+_0806F7C2:
+ adds r0, r1, 0
+ adds r0, 0x32
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _0806F7D8
+ movs r0, 0x1
+ b _0806F7E4
+ .align 2, 0
+_0806F7D4: .4byte gUnknown_08376504
+_0806F7D8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _0806F7C2
+ movs r0, 0
+_0806F7E4:
+ pop {r1}
+ bx r1
+ thumb_func_end IsHMMove
+
+ thumb_func_start sub_806F7E8
+sub_806F7E8: @ 806F7E8
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ ldr r0, _0806F898 @ =gTasks + 0x8
+ adds r3, r0
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ str r1, [r5]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ str r0, [r5, 0x4]
+ movs r4, 0x18
+ ldrsh r0, [r3, r4]
+ lsls r2, 24
+ asrs r2, 24
+ muls r0, r2
+ str r0, [r5, 0x8]
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [r5, 0x10]
+ ldr r6, _0806F89C @ =0x0201b000
+ ldr r2, _0806F8A0 @ =0x00000282
+ adds r0, r6, r2
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ cmp r2, 0x2
+ bls _0806F83E
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F83E:
+ cmp r2, 0x2
+ bne _0806F850
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x5
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F850:
+ cmp r3, 0x1
+ bhi _0806F862
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x6
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F862:
+ ldr r4, _0806F8A4 @ =gUnknown_08376858
+ bl IsDoubleBattle
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r6, r2
+ ldrb r2, [r1, 0x5]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r4
+ ldr r2, [r2]
+ ldr r4, _0806F8A8 @ =0x0000100c
+ adds r1, r6, r4
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80460C8
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806F898: .4byte gTasks + 0x8
+_0806F89C: .4byte 0x0201b000
+_0806F8A0: .4byte 0x00000282
+_0806F8A4: .4byte gUnknown_08376858
+_0806F8A8: .4byte 0x0000100c
+ thumb_func_end sub_806F7E8
+
+ thumb_func_start sub_806F8AC
+sub_806F8AC: @ 806F8AC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_806F7E8
+ ldr r1, _0806F8F4 @ =0x0201b000
+ ldr r2, _0806F8F8 @ =0x00000282
+ adds r5, r1, r2
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r4
+ beq _0806F8D4
+ b _0806F9F0
+_0806F8D4:
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1, 0xC]
+ ldr r0, [sp, 0x8]
+ negs r3, r0
+ ldr r2, [sp, 0x4]
+ adds r0, r3, r2
+ ldr r1, [sp]
+ cmp r0, r1
+ ble _0806F8FC
+ subs r1, r2
+ add r0, sp, 0x14
+ strh r1, [r0]
+ b _0806F900
+ .align 2, 0
+_0806F8F4: .4byte 0x0201b000
+_0806F8F8: .4byte 0x00000282
+_0806F8FC:
+ add r0, sp, 0x14
+ strh r3, [r0]
+_0806F900:
+ adds r5, r0, 0
+ ldr r1, _0806F940 @ =gUnknown_02024BEC
+ ldrh r0, [r5]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _0806F944 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _0806F948 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F94C @ =gStringVar2
+ ldrh r1, [r5]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r2, _0806F950 @ =gTasks
+ lsls r1, r6, 2
+ adds r0, r1, r6
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _0806F95C
+ ldr r0, _0806F954 @ =gStringVar4
+ ldr r1, _0806F958 @ =gOtherText_HPRestoredBy
+ bl StringExpandPlaceholders
+ b _0806F964
+ .align 2, 0
+_0806F940: .4byte gUnknown_02024BEC
+_0806F944: .4byte 0x0201c000
+_0806F948: .4byte gStringVar1
+_0806F94C: .4byte gStringVar2
+_0806F950: .4byte gTasks
+_0806F954: .4byte gStringVar4
+_0806F958: .4byte gOtherText_HPRestoredBy
+_0806F95C:
+ ldr r0, _0806F9D4 @ =gStringVar4
+ ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth
+ bl StringExpandPlaceholders
+_0806F964:
+ ldr r4, _0806F9DC @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl SetMonIconAnim
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0806F9E0 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _0806F9E4 @ =0xfffff261
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _0806F9D4 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, [sp, 0x4]
+ ldrh r0, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ ldr r0, [r4]
+ movs r1, 0x39
+ adds r2, r5, 0
+ bl SetMonData
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ bl sub_8032638
+ ldr r1, _0806F9E8 @ =gTasks
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F9EC @ =sub_806FB44
+ str r1, [r0]
+ b _0806FA10
+ .align 2, 0
+_0806F9D4: .4byte gStringVar4
+_0806F9D8: .4byte gOtherText_RegainedHealth
+_0806F9DC: .4byte 0x0201c000
+_0806F9E0: .4byte gUnknown_083769A8
+_0806F9E4: .4byte 0xfffff261
+_0806F9E8: .4byte gTasks
+_0806F9EC: .4byte sub_806FB44
+_0806F9F0:
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r1, r2
+ ldrb r4, [r0, 0x5]
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl PartyMenuDoPrintHP
+_0806FA10:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F8AC
+
+ thumb_func_start sub_806FA18
+sub_806FA18: @ 806FA18
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_806F7E8
+ ldr r6, _0806FAC4 @ =0x0201b000
+ ldr r1, _0806FAC8 @ =0x00000282
+ adds r7, r6, r1
+ strh r0, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0806FAE4
+ movs r0, 0x1
+ bl PlaySE
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ movs r0, 0
+ str r0, [r4, 0xC]
+ ldr r2, _0806FACC @ =gTasks
+ lsls r3, r5, 2
+ adds r3, r5
+ lsls r3, 3
+ adds r5, r3, r2
+ ldrh r0, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r0, r1
+ strh r0, [r5, 0x1E]
+ ldr r0, [r4]
+ adds r2, r3
+ adds r2, 0x1E
+ movs r1, 0x39
+ bl SetMonData
+ ldrb r0, [r4, 0x4]
+ ldr r1, _0806FAD0 @ =0xfffe6000
+ adds r6, r1
+ ldrb r1, [r6, 0x1]
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl SetMonIconAnim
+ ldr r2, _0806FAD4 @ =gSprites
+ ldrb r1, [r6, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r4, 0x5]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806FAD8 @ =gPlayerParty
+ adds r0, r1
+ str r0, [r4]
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r5, 0x1C]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5, 0x1E]
+ ldr r0, _0806FADC @ =0xffff8000
+ str r0, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ ldr r0, _0806FAE0 @ =sub_806F8AC
+ str r0, [r5]
+ ldrh r0, [r5, 0x1E]
+ strh r0, [r7]
+ b _0806FB04
+ .align 2, 0
+_0806FAC4: .4byte 0x0201b000
+_0806FAC8: .4byte 0x00000282
+_0806FACC: .4byte gTasks
+_0806FAD0: .4byte 0xfffe6000
+_0806FAD4: .4byte gSprites
+_0806FAD8: .4byte gPlayerParty
+_0806FADC: .4byte 0xffff8000
+_0806FAE0: .4byte sub_806F8AC
+_0806FAE4:
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r4, [r0, 0x5]
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r7]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl PartyMenuDoPrintHP
+_0806FB04:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806FA18
+
+ thumb_func_start sub_806FB0C
+sub_806FB0C: @ 806FB0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB38 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB32
+ ldr r3, _0806FB3C @ =gTasks
+ ldr r2, _0806FB40 @ =0x0201c000
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x10]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB38: .4byte gUnknown_0202E8F6
+_0806FB3C: .4byte gTasks
+_0806FB40: .4byte 0x0201c000
+ thumb_func_end sub_806FB0C
+
+ thumb_func_start sub_806FB44
+sub_806FB44: @ 806FB44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB70 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB6A
+ ldr r3, _0806FB74 @ =gTasks
+ ldr r2, _0806FB78 @ =0x0201c000
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x14]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB70: .4byte gUnknown_0202E8F6
+_0806FB74: .4byte gTasks
+_0806FB78: .4byte 0x0201c000
+ thumb_func_end sub_806FB44
+
+ thumb_func_start IsHPRecoveryItem
+IsHPRecoveryItem: @ 806FB7C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0806FB90
+ ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676
+ b _0806FB9A
+ .align 2, 0
+_0806FB8C: .4byte gSaveBlock1 + 0x3676
+_0806FB90:
+ ldr r1, _0806FBA8 @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0806FB9A:
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FBAC
+ movs r0, 0
+ b _0806FBAE
+ .align 2, 0
+_0806FBA8: .4byte gItemEffectTable
+_0806FBAC:
+ movs r0, 0x1
+_0806FBAE:
+ pop {r1}
+ bx r1
+ thumb_func_end IsHPRecoveryItem
+
+ thumb_func_start PartyMenuUpdateLevelOrStatus
+PartyMenuUpdateLevelOrStatus: @ 806FBB4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl PartyMenuClearLevelStatusTilemap
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl PartyMenuPrintMonLevelOrStatus
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuUpdateLevelOrStatus
+
+ thumb_func_start GetMedicineItemEffectMessage
+GetMedicineItemEffectMessage: @ 806FBD0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0x12
+ bls _0806FBE6
+ b _0806FD7C
+_0806FBE6:
+ lsls r0, 2
+ ldr r1, _0806FBF0 @ =_0806FBF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806FBF0: .4byte _0806FBF4
+ .align 2, 0
+_0806FBF4:
+ .4byte _0806FC40
+ .4byte _0806FC54
+ .4byte _0806FC68
+ .4byte _0806FC7C
+ .4byte _0806FC90
+ .4byte _0806FCA4
+ .4byte _0806FCB8
+ .4byte _0806FD7C
+ .4byte _0806FCCC
+ .4byte _0806FCF0
+ .4byte _0806FCE0
+ .4byte _0806FD20
+ .4byte _0806FD30
+ .4byte _0806FD10
+ .4byte _0806FD00
+ .4byte _0806FD7C
+ .4byte _0806FD54
+ .4byte _0806FD54
+ .4byte _0806FD68
+_0806FC40:
+ ldr r0, _0806FC4C @ =gStringVar4
+ ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC4C: .4byte gStringVar4
+_0806FC50: .4byte gOtherText_CuredPoisoning
+_0806FC54:
+ ldr r0, _0806FC60 @ =gStringVar4
+ ldr r1, _0806FC64 @ =gOtherText_WokeUp
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC60: .4byte gStringVar4
+_0806FC64: .4byte gOtherText_WokeUp
+_0806FC68:
+ ldr r0, _0806FC74 @ =gStringVar4
+ ldr r1, _0806FC78 @ =gOtherText_BurnHealed
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC74: .4byte gStringVar4
+_0806FC78: .4byte gOtherText_BurnHealed
+_0806FC7C:
+ ldr r0, _0806FC88 @ =gStringVar4
+ ldr r1, _0806FC8C @ =gOtherText_ThawedOut
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC88: .4byte gStringVar4
+_0806FC8C: .4byte gOtherText_ThawedOut
+_0806FC90:
+ ldr r0, _0806FC9C @ =gStringVar4
+ ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC9C: .4byte gStringVar4
+_0806FCA0: .4byte gOtherText_CuredParalysis
+_0806FCA4:
+ ldr r0, _0806FCB0 @ =gStringVar4
+ ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCB0: .4byte gStringVar4
+_0806FCB4: .4byte gOtherText_SnapConfusion
+_0806FCB8:
+ ldr r0, _0806FCC4 @ =gStringVar4
+ ldr r1, _0806FCC8 @ =gOtherText_GotOverLove
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCC4: .4byte gStringVar4
+_0806FCC8: .4byte gOtherText_GotOverLove
+_0806FCCC:
+ ldr r0, _0806FCD8 @ =gStringVar4
+ ldr r1, _0806FCDC @ =gOtherText_BecameHealthy
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCD8: .4byte gStringVar4
+_0806FCDC: .4byte gOtherText_BecameHealthy
+_0806FCE0:
+ ldr r0, _0806FCE8 @ =gStringVar2
+ ldr r1, _0806FCEC @ =gOtherText_Hp2
+ b _0806FD34
+ .align 2, 0
+_0806FCE8: .4byte gStringVar2
+_0806FCEC: .4byte gOtherText_Hp2
+_0806FCF0:
+ ldr r0, _0806FCF8 @ =gStringVar2
+ ldr r1, _0806FCFC @ =gOtherText_Attack
+ b _0806FD34
+ .align 2, 0
+_0806FCF8: .4byte gStringVar2
+_0806FCFC: .4byte gOtherText_Attack
+_0806FD00:
+ ldr r0, _0806FD08 @ =gStringVar2
+ ldr r1, _0806FD0C @ =gOtherText_Defense
+ b _0806FD34
+ .align 2, 0
+_0806FD08: .4byte gStringVar2
+_0806FD0C: .4byte gOtherText_Defense
+_0806FD10:
+ ldr r0, _0806FD18 @ =gStringVar2
+ ldr r1, _0806FD1C @ =gOtherText_Speed
+ b _0806FD34
+ .align 2, 0
+_0806FD18: .4byte gStringVar2
+_0806FD1C: .4byte gOtherText_Speed
+_0806FD20:
+ ldr r0, _0806FD28 @ =gStringVar2
+ ldr r1, _0806FD2C @ =gOtherText_SpAtk2
+ b _0806FD34
+ .align 2, 0
+_0806FD28: .4byte gStringVar2
+_0806FD2C: .4byte gOtherText_SpAtk2
+_0806FD30:
+ ldr r0, _0806FD44 @ =gStringVar2
+ ldr r1, _0806FD48 @ =gOtherText_SpDef2
+_0806FD34:
+ bl StringCopy
+ ldr r0, _0806FD4C @ =gStringVar4
+ ldr r1, _0806FD50 @ =gOtherText_WasRaised
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD44: .4byte gStringVar2
+_0806FD48: .4byte gOtherText_SpDef2
+_0806FD4C: .4byte gStringVar4
+_0806FD50: .4byte gOtherText_WasRaised
+_0806FD54:
+ ldr r0, _0806FD60 @ =gStringVar4
+ ldr r1, _0806FD64 @ =gOtherText_PPIncreased
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD60: .4byte gStringVar4
+_0806FD64: .4byte gOtherText_PPIncreased
+_0806FD68:
+ ldr r0, _0806FD74 @ =gStringVar4
+ ldr r1, _0806FD78 @ =gOtherText_PPRestored
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD74: .4byte gStringVar4
+_0806FD78: .4byte gOtherText_PPRestored
+_0806FD7C:
+ ldr r0, _0806FD88 @ =gStringVar4
+ ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect
+ bl StringExpandPlaceholders
+_0806FD84:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FD88: .4byte gStringVar4
+_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
+ thumb_func_end GetMedicineItemEffectMessage
+
+ thumb_func_start IsMedicineIneffective
+IsMedicineIneffective: @ 806FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bne _0806FDBC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0806FDB8 @ =0x0000012f
+ cmp r0, r1
+ bne _0806FDBC
+ movs r0, 0x1
+ b _0806FDBE
+ .align 2, 0
+_0806FDB8: .4byte 0x0000012f
+_0806FDBC:
+ movs r0, 0
+_0806FDBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end IsMedicineIneffective
+
+ thumb_func_start ExecuteTableBasedItemEffect__
+ExecuteTableBasedItemEffect__: @ 806FDC4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _0806FDF0 @ =gMain
+ ldr r1, _0806FDF4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FDFC
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, _0806FDF8 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r3, 0
+ b _0806FE16
+ .align 2, 0
+_0806FDF0: .4byte gMain
+_0806FDF4: .4byte 0x0000043d
+_0806FDF8: .4byte gPlayerParty
+_0806FDFC:
+ movs r0, 0x64
+ adds r4, r3, 0
+ muls r4, r0
+ ldr r0, _0806FE28 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r3, 0
+ bl sub_8094C20
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+_0806FE16:
+ adds r3, r6, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806FE28: .4byte gPlayerParty
+ thumb_func_end ExecuteTableBasedItemEffect__
+
+ thumb_func_start UseMedicine
+UseMedicine: @ 806FE2C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _0806FED4 @ =gTasks
+ mov r10, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r10
+ ldr r0, _0806FED8 @ =TaskDummy
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r5, _0806FEDC @ =0x0201c000
+ ldr r0, [r5]
+ adds r1, r6, 0
+ bl IsMedicineIneffective
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FEE0
+ adds r0, r6, 0
+ bl IsHPRecoveryItem
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0x1
+ bne _0806FEC2
+ ldr r0, [r5]
+ movs r1, 0x3A
+ bl GetMonData
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ mov r2, r10
+ adds r4, r1, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, [r5]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x1E]
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _0806FEC2
+ movs r0, 0
+ mov r9, r0
+ mov r1, r9
+ strh r1, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+_0806FEC2:
+ ldr r0, _0806FEDC @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _0806FEE6
+ .align 2, 0
+_0806FED4: .4byte gTasks
+_0806FED8: .4byte TaskDummy
+_0806FEDC: .4byte 0x0201c000
+_0806FEE0:
+ movs r0, 0x1
+ lsls r2, r7, 2
+ mov r8, r2
+_0806FEE6:
+ cmp r0, 0
+ beq _0806FF14
+ ldr r1, _0806FF08 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806FF10 @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ b _08070002
+ .align 2, 0
+_0806FF08: .4byte gUnknown_0202E8F4
+_0806FF0C: .4byte gOtherText_WontHaveAnyEffect
+_0806FF10: .4byte gTasks
+_0806FF14:
+ ldr r1, _0806FF30 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FF34
+ movs r0, 0x1
+ bl PlaySE
+ b _0806FF3A
+ .align 2, 0
+_0806FF30: .4byte gUnknown_0202E8F4
+_0806FF34:
+ movs r0, 0x75
+ bl PlaySE
+_0806FF3A:
+ ldr r4, _0806FF88 @ =0x0201c000
+ ldr r0, [r4]
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _0806FF4E
+ cmp r0, 0
+ bne _0806FF56
+_0806FF4E:
+ ldr r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl PartyMenuUpdateLevelOrStatus
+_0806FF56:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _0806FFC8
+ ldr r4, _0806FF88 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ ldr r2, _0806FF8C @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0x1E]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ ldr r0, _0806FF90 @ =0xffff8000
+ str r0, [r4, 0xC]
+ movs r1, 0x1E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0806FF94
+ mov r3, r9
+ strh r3, [r2, 0x24]
+ b _0806FF98
+ .align 2, 0
+_0806FF88: .4byte 0x0201c000
+_0806FF8C: .4byte gTasks
+_0806FF90: .4byte 0xffff8000
+_0806FF94:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+_0806FF98:
+ ldr r2, _0806FFB8 @ =0x0201c000
+ ldr r0, [r2, 0x10]
+ str r0, [r2, 0x14]
+ ldr r1, _0806FFBC @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806FFC0 @ =sub_806F8AC
+ str r1, [r0]
+ ldrh r0, [r0, 0x1E]
+ ldr r1, _0806FFC4 @ =0xfffff282
+ adds r2, r1
+ strh r0, [r2]
+ b _0807000A
+ .align 2, 0
+_0806FFB8: .4byte 0x0201c000
+_0806FFBC: .4byte gTasks
+_0806FFC0: .4byte sub_806F8AC
+_0806FFC4: .4byte 0xfffff282
+_0806FFC8:
+ ldr r4, _08070018 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0807001C @ =gStringVar1
+ bl GetMonNickname
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FFE6
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_0806FFE6:
+ adds r0, r6, 0
+ bl GetMedicineItemEffectMessage
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl TryPrintPartyMenuMonNickname
+ ldr r0, _08070020 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070024 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+_08070002:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070028 @ =sub_806FB0C
+ str r1, [r0]
+_0807000A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070018: .4byte 0x0201c000
+_0807001C: .4byte gStringVar1
+_08070020: .4byte gStringVar4
+_08070024: .4byte gTasks
+_08070028: .4byte sub_806FB0C
+ thumb_func_end UseMedicine
+
+ thumb_func_start IsBlueYellowRedFlute
+IsBlueYellowRedFlute: @ 807002C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x27
+ beq _0807003E
+ cmp r0, 0x29
+ beq _0807003E
+ cmp r0, 0x28
+ bne _08070042
+_0807003E:
+ movs r0, 0x1
+ b _08070044
+_08070042:
+ movs r0, 0
+_08070044:
+ pop {r1}
+ bx r1
+ thumb_func_end IsBlueYellowRedFlute
+
+ thumb_func_start sub_8070048
+sub_8070048: @ 8070048
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08070078 @ =0x0201c000
+ str r2, [r3, 0x10]
+ movs r4, 0
+ strb r0, [r3, 0x4]
+ movs r2, 0
+ strh r1, [r3, 0x6]
+ strb r2, [r3, 0x5]
+ ldr r1, _0807007C @ =sub_80701DC
+ str r1, [r3, 0x14]
+ ldr r2, _08070080 @ =0xfffff27e
+ adds r1, r3, r2
+ strh r4, [r1]
+ ldr r1, _08070084 @ =0xfffff280
+ adds r3, r1
+ strh r4, [r3]
+ bl sub_8070088
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070078: .4byte 0x0201c000
+_0807007C: .4byte sub_80701DC
+_08070080: .4byte 0xfffff27e
+_08070084: .4byte 0xfffff280
+ thumb_func_end sub_8070048
+
+ thumb_func_start sub_8070088
+sub_8070088: @ 8070088
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08070120 @ =gTasks
+ mov r10, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ mov r2, r10
+ adds r7, r1, r2
+ ldr r5, _08070124 @ =TaskDummy
+ str r5, [r7]
+ ldr r4, _08070128 @ =0x0201c000
+ ldrb r0, [r4, 0x5]
+ movs r1, 0x64
+ mov r9, r1
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r1, _0807012C @ =gPlayerParty
+ mov r8, r1
+ add r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08070118
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ str r0, [sp]
+ mov r0, r10
+ adds r0, 0x8
+ ldr r2, [sp]
+ adds r6, r2, r0
+ ldrb r0, [r4, 0x5]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ str r0, [r4]
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r6, 0x14]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r6, 0x16]
+ ldrb r0, [r4, 0x5]
+ ldrh r1, [r4, 0x6]
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070134
+ adds r0, r5, 0
+ bl DestroyTask
+_08070118:
+ ldr r0, _08070130 @ =sub_80701DC
+ str r0, [r7]
+ b _080701B0
+ .align 2, 0
+_08070120: .4byte gTasks
+_08070124: .4byte TaskDummy
+_08070128: .4byte 0x0201c000
+_0807012C: .4byte gPlayerParty
+_08070130: .4byte sub_80701DC
+_08070134:
+ ldr r1, _080701C0 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1
+ bl PlaySE
+ ldr r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl PartyMenuUpdateLevelOrStatus
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _080701C4 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x9
+ bl task_pc_turn_off
+ ldr r2, _080701C8 @ =0xfffff261
+ adds r1, r4, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ ldrh r1, [r6, 0x16]
+ subs r0, r1
+ strh r0, [r6, 0x18]
+ movs r0, 0x1
+ strh r0, [r6, 0x1C]
+ ldr r1, _080701CC @ =0xfffff27e
+ adds r0, r4, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r2, _080701D0 @ =0xfffff280
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldrh r1, [r6, 0x16]
+ adds r2, 0x2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _080701D4 @ =0xffff8000
+ str r0, [r4, 0xC]
+ ldr r1, [sp]
+ add r1, r10
+ ldr r0, _080701D8 @ =sub_806F8AC
+ str r0, [r1]
+_080701B0:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080701C0: .4byte gUnknown_0202E8F4
+_080701C4: .4byte gUnknown_083769A8
+_080701C8: .4byte 0xfffff261
+_080701CC: .4byte 0xfffff27e
+_080701D0: .4byte 0xfffff280
+_080701D4: .4byte 0xffff8000
+_080701D8: .4byte sub_806F8AC
+ thumb_func_end sub_8070088
+
+ thumb_func_start sub_80701DC
+sub_80701DC: @ 80701DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _08070280 @ =0x0201b000
+ ldr r0, _08070284 @ =0x0000027e
+ adds r7, r6, r0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _0807023E
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08070288 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0807023A
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0807028C @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x3
+ bl task_pc_turn_off
+ ldr r0, _08070290 @ =0x00000261
+ adds r1, r6, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0807023A:
+ movs r0, 0
+ strh r0, [r7]
+_0807023E:
+ ldr r4, _08070294 @ =0x0201c000
+ ldrb r0, [r4, 0x5]
+ adds r0, 0x1
+ strb r0, [r4, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080702D8
+ ldr r1, _08070298 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0807029C @ =0xfffff280
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080702B0
+ ldr r1, _080702A0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080702A4 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _080702AC @ =sub_806FB0C
+ movs r1, 0x8
+ bl CreateTask
+ b _080702C6
+ .align 2, 0
+_08070280: .4byte 0x0201b000
+_08070284: .4byte 0x0000027e
+_08070288: .4byte gPlayerParty
+_0807028C: .4byte gUnknown_083769A8
+_08070290: .4byte 0x00000261
+_08070294: .4byte 0x0201c000
+_08070298: .4byte gUnknown_0202E8F4
+_0807029C: .4byte 0xfffff280
+_080702A0: .4byte gTasks
+_080702A4: .4byte TaskDummy
+_080702A8: .4byte gOtherText_WontHaveAnyEffect
+_080702AC: .4byte sub_806FB0C
+_080702B0:
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r1, _080702D0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+_080702C6:
+ ldr r1, _080702D4 @ =gUnknown_03005CE0
+ movs r0, 0
+ strb r0, [r1]
+ b _080702DE
+ .align 2, 0
+_080702D0: .4byte gTasks
+_080702D4: .4byte gUnknown_03005CE0
+_080702D8:
+ adds r0, r5, 0
+ bl sub_8070088
+_080702DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80701DC
+
+ thumb_func_start CreateItemUseMoveMenu
+CreateItemUseMoveMenu: @ 80702E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r5, 0
+ movs r0, 0x64
+ adds r7, r4, 0
+ muls r7, r0
+ ldr r0, _0807036C @ =gPlayerParty
+ mov r8, r0
+_0807030C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ mov r2, r8
+ adds r0, r7, r2
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _08070370 @ =gMoveNames
+ adds r0, r1
+ lsls r2, r5, 25
+ movs r1, 0xB0
+ lsls r1, 20
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x14
+ bl MenuPrint
+ cmp r4, 0
+ beq _08070340
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08070340:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0807030C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ movs r2, 0xB
+ adds r3, r6, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807036C: .4byte gPlayerParty
+_08070370: .4byte gMoveNames
+ thumb_func_end CreateItemUseMoveMenu
+
+ thumb_func_start Task_HandleItemUseMoveMenuInput
+Task_HandleItemUseMoveMenuInput: @ 8070374
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r0, _08070398 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807039C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080703E4
+ .align 2, 0
+_08070398: .4byte gMain
+_0807039C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080703B2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080703E4
+_080703B2:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080703CC
+ ldr r0, _080703C8 @ =gUnknown_08376B54
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _080703E4
+ .align 2, 0
+_080703C8: .4byte gUnknown_08376B54
+_080703CC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080703E4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080703EC @ =gUnknown_08376B54
+ ldr r1, [r0, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080703E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080703EC: .4byte gUnknown_08376B54
+ thumb_func_end Task_HandleItemUseMoveMenuInput
+
+ thumb_func_start DoPPRecoveryItemEffect
+DoPPRecoveryItemEffect: @ 80703F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r5, 0xAF
+ bne _08070410
+ ldr r0, _0807040C @ =gSaveBlock1 + 0x3676
+ b _0807041C
+ .align 2, 0
+_0807040C: .4byte gSaveBlock1 + 0x3676
+_08070410:
+ ldr r1, _08070464 @ =gItemEffectTable
+ adds r0, r5, 0
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0807041C:
+ mov r8, r0
+ ldr r7, _08070468 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _0807046C @ =TaskDummy
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r9
+ bl sub_806E8D0
+ mov r0, r8
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08070470
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ strh r1, [r0, 0x1E]
+ adds r0, r4, 0
+ bl DoRecoverPP
+ b _08070498
+ .align 2, 0
+_08070464: .4byte gItemEffectTable
+_08070468: .4byte gTasks
+_0807046C: .4byte TaskDummy
+_08070470:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xA
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _080704A4 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ bl CreateItemUseMoveMenu
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _080704A8 @ =Task_HandleItemUseMoveMenuInput
+ str r1, [r0]
+ ldr r1, _080704AC @ =gMain
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+_08070498:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704A4: .4byte 0x0201c000
+_080704A8: .4byte Task_HandleItemUseMoveMenuInput
+_080704AC: .4byte gMain
+ thumb_func_end DoPPRecoveryItemEffect
+
+ thumb_func_start ItemUseMoveMenu_HandleMoveSelection
+ItemUseMoveMenu_HandleMoveSelection: @ 80704B0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ bl GetMenuCursorPos
+ ldr r2, _080704EC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x1E]
+ adds r0, r4, 0
+ bl DoRecoverPP
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704EC: .4byte gTasks
+ thumb_func_end ItemUseMoveMenu_HandleMoveSelection
+
+ thumb_func_start ItemUseMoveMenu_HandleCancel
+ItemUseMoveMenu_HandleCancel: @ 80704F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _08070528 @ =gMain
+ ldr r1, _0807052C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807053C
+ ldr r2, _08070530 @ =gTasks
+ ldr r0, _08070534 @ =0x0201c000
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08070538 @ =sub_8095118
+ b _0807054C
+ .align 2, 0
+_08070528: .4byte gMain
+_0807052C: .4byte 0x0000043d
+_08070530: .4byte gTasks
+_08070534: .4byte 0x0201c000
+_08070538: .4byte sub_8095118
+_0807053C:
+ ldr r2, _08070564 @ =gTasks
+ ldr r0, _08070568 @ =0x0201c000
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0807056C @ =sub_808B0C0
+_0807054C:
+ str r1, [r0]
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_806D538
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070564: .4byte gTasks
+_08070568: .4byte 0x0201c000
+_0807056C: .4byte sub_808B0C0
+ thumb_func_end ItemUseMoveMenu_HandleCancel
+
+ thumb_func_start DoRecoverPP
+DoRecoverPP: @ 8070570
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r6, _080705A8 @ =0x0201c000
+ ldrb r0, [r6, 0x5]
+ ldrh r1, [r6, 0x6]
+ ldr r3, _080705AC @ =gTasks
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r7, r2, r3
+ ldrb r2, [r7, 0x1E]
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _080705B8
+ ldr r0, _080705B0 @ =gUnknown_0202E8F4
+ strb r5, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ b _080705F8
+ .align 2, 0
+_080705A8: .4byte 0x0201c000
+_080705AC: .4byte gTasks
+_080705B0: .4byte gUnknown_0202E8F4
+_080705B4: .4byte gOtherText_WontHaveAnyEffect
+_080705B8:
+ ldr r1, _0807060C @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ bl PlaySE
+ ldrh r0, [r6, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r0, [r6]
+ movs r2, 0x1E
+ ldrsh r1, [r7, r2]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _08070610 @ =gStringVar1
+ movs r1, 0xD
+ muls r1, r5
+ ldr r2, _08070614 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r6, 0x6]
+ bl GetMedicineItemEffectMessage
+ ldr r0, _08070618 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+_080705F8:
+ ldr r0, _0807061C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070620 @ =sub_806FB0C
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807060C: .4byte gUnknown_0202E8F4
+_08070610: .4byte gStringVar1
+_08070614: .4byte gMoveNames
+_08070618: .4byte gStringVar4
+_0807061C: .4byte gTasks
+_08070620: .4byte sub_806FB0C
+ thumb_func_end DoRecoverPP
+
+ thumb_func_start DoPPUpItemEffect
+DoPPUpItemEffect: @ 8070624
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0807066C @ =gTasks
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r3, r4
+ ldr r4, _08070670 @ =TaskDummy
+ str r4, [r3]
+ bl sub_806E8D0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xB
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _08070674 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ bl CreateItemUseMoveMenu
+ ldr r0, _08070678 @ =Task_HandleItemUseMoveMenuInput
+ movs r1, 0x5
+ bl CreateTask
+ ldr r1, _0807067C @ =gMain
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807066C: .4byte gTasks
+_08070670: .4byte TaskDummy
+_08070674: .4byte 0x0201c000
+_08070678: .4byte Task_HandleItemUseMoveMenuInput
+_0807067C: .4byte gMain
+ thumb_func_end DoPPUpItemEffect
+
+ thumb_func_start DoRareCandyItemEffect
+DoRareCandyItemEffect: @ 8070680
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r3, _080706E0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _080706E4 @ =TaskDummy
+ str r3, [r1]
+ adds r1, r6, 0
+ bl sub_806E8D0
+ ldr r5, _080706E8 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _080706F4
+ movs r4, 0
+ ldr r0, _080706EC @ =0xfffff264
+ adds r7, r5, r0
+_080706B2:
+ ldr r0, [r5]
+ ldr r1, _080706F0 @ =gUnknown_08376D1C
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r7, r1
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _080706B2
+ ldr r0, _080706E8 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _080706F6
+ .align 2, 0
+_080706E0: .4byte gTasks
+_080706E4: .4byte TaskDummy
+_080706E8: .4byte 0x0201c000
+_080706EC: .4byte 0xfffff264
+_080706F0: .4byte gUnknown_08376D1C
+_080706F4:
+ movs r0, 0x1
+_080706F6:
+ cmp r0, 0
+ beq _08070724
+ ldr r1, _08070718 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070720 @ =sub_806FB0C
+ movs r1, 0x5
+ bl CreateTask
+ b _0807077C
+ .align 2, 0
+_08070718: .4byte gUnknown_0202E8F4
+_0807071C: .4byte gOtherText_WontHaveAnyEffect
+_08070720: .4byte sub_806FB0C
+_08070724:
+ ldr r1, _08070784 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ bl PlayFanfareByFanfareNum
+ ldr r4, _08070788 @ =0x0201c000
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl sub_8070A20
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r0, [r4]
+ ldr r1, _0807078C @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, [r4]
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08070790 @ =gStringVar2
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, _08070794 @ =gStringVar4
+ ldr r1, _08070798 @ =gOtherText_ElevatedTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0807079C @ =Task_RareCandy1
+ movs r1, 0x5
+ bl CreateTask
+_0807077C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070784: .4byte gUnknown_0202E8F4
+_08070788: .4byte 0x0201c000
+_0807078C: .4byte gStringVar1
+_08070790: .4byte gStringVar2
+_08070794: .4byte gStringVar4
+_08070798: .4byte gOtherText_ElevatedTo
+_0807079C: .4byte Task_RareCandy1
+ thumb_func_end DoRareCandyItemEffect
+
+ thumb_func_start Task_RareCandy1
+Task_RareCandy1: @ 80707A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _080707E8
+ ldr r0, _080707F0 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080707E8
+ ldr r0, _080707F4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080707CE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080707E8
+_080707CE:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_8070848
+ ldr r0, _080707F8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080707FC @ =Task_RareCandy2
+ str r0, [r1]
+_080707E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080707F0: .4byte gUnknown_0202E8F6
+_080707F4: .4byte gMain
+_080707F8: .4byte gTasks
+_080707FC: .4byte Task_RareCandy2
+ thumb_func_end Task_RareCandy1
+
+ thumb_func_start Task_RareCandy2
+Task_RareCandy2: @ 8070800
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807083C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0807081A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08070834
+_0807081A:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_8070968
+ ldr r0, _08070840 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070844 @ =Task_RareCandy3
+ str r0, [r1]
+_08070834:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807083C: .4byte gMain
+_08070840: .4byte gTasks
+_08070844: .4byte Task_RareCandy3
+ thumb_func_end Task_RareCandy2
+
+ thumb_func_start sub_8070848
+sub_8070848: @ 8070848
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl MenuDrawTextWindow
+ movs r7, 0
+ ldr r0, _080708E4 @ =gStringVar1
+ mov r10, r0
+_08070864:
+ ldr r1, _080708E8 @ =0x0201c000
+ ldr r0, [r1]
+ ldr r1, _080708EC @ =gUnknown_08376D1C
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r1, r7, 0x6
+ lsls r1, 1
+ ldr r2, _080708F0 @ =0x0201b264
+ adds r1, r2
+ strh r0, [r1]
+ lsls r4, r7, 1
+ adds r2, r4, r2
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ adds r1, 0xB
+ lsls r1, 24
+ lsrs r6, r1, 24
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080708F4 @ =gUnknown_08376D04
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ adds r1, r6, 0x1
+ lsls r1, 27
+ lsrs r1, 24
+ mov r2, r9
+ lsls r5, r2, 3
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ mov r8, r4
+ cmp r7, 0x2
+ bne _080708FC
+ adds r4, r6, 0x6
+ lsls r1, r4, 3
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080708F8 @ =gOtherText_TallPlusAndRightArrow
+ adds r2, r5, 0
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ b _08070910
+ .align 2, 0
+_080708E4: .4byte gStringVar1
+_080708E8: .4byte 0x0201c000
+_080708EC: .4byte gUnknown_08376D1C
+_080708F0: .4byte 0x0201b264
+_080708F4: .4byte gUnknown_08376D04
+_080708F8: .4byte gOtherText_TallPlusAndRightArrow
+_080708FC:
+ adds r4, r6, 0x6
+ lsls r1, r4, 3
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08070960 @ =gOtherText_TallPlusAndRightArrow
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+_08070910:
+ movs r0, 0xFC
+ mov r1, r10
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ ldr r0, _08070964 @ =0x0201b264
+ add r0, r8
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r0, r10
+ adds r0, 0x3
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ lsls r1, r4, 27
+ movs r0, 0xC0
+ lsls r0, 20
+ adds r1, r0
+ lsrs r1, 24
+ mov r0, r9
+ lsls r2, r0, 3
+ mov r0, r10
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _08070864
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070960: .4byte gOtherText_TallPlusAndRightArrow
+_08070964: .4byte 0x0201b264
+ thumb_func_end sub_8070848
+
+ thumb_func_start sub_8070968
+sub_8070968: @ 8070968
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r7, 0
+ ldr r0, _08070A10 @ =0x0201c000
+ mov r9, r0
+ ldr r1, _08070A14 @ =0xfffff264
+ add r1, r9
+ mov r10, r1
+ ldr r0, _08070A18 @ =gStringVar1
+ mov r8, r0
+_08070982:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, _08070A1C @ =gUnknown_08376D1C
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r6, r7, 0x6
+ lsls r6, 1
+ add r6, r10
+ strh r0, [r6]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ adds r4, 0xB
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 1
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ mov r0, r8
+ adds r0, 0x3
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, 0x6
+ lsls r4, 3
+ adds r4, 0x6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 3
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _08070982
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070A10: .4byte 0x0201c000
+_08070A14: .4byte 0xfffff264
+_08070A18: .4byte gStringVar1
+_08070A1C: .4byte gUnknown_08376D1C
+ thumb_func_end sub_8070968
+
+ thumb_func_start sub_8070A20
+sub_8070A20: @ 8070A20
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08070A3A
+ cmp r0, 0x6
+ bne _08070A42
+_08070A3A:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl PartyMenuUpdateLevelOrStatus
+_08070A42:
+ bl IsDoubleBattle
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuTryDrawHPBar
+ ldr r4, _08070ABC @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ bl SetMonIconAnim
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ lsls r1, r7, 1
+ adds r0, r1
+ ldr r1, _08070AC0 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _08070AC4 @ =0xfffff261
+ adds r4, r0
+ movs r0, 0x2
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070ABC: .4byte 0x0201c000
+_08070AC0: .4byte gUnknown_083769A8
+_08070AC4: .4byte 0xfffff261
+ thumb_func_end sub_8070A20
+
+ thumb_func_start Task_RareCandy3
+Task_RareCandy3: @ 8070AC8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070ADC
+ b _08070C2C
+_08070ADC:
+ ldr r0, _08070B24 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ b _08070C2C
+_08070AF4:
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl MenuZeroFillWindowRect
+ ldr r7, _08070B28 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _08070B2C @ =0xfffff282
+ adds r0, r7, r1
+ strh r5, [r0]
+ ldr r0, _08070B30 @ =0x0000fffe
+ cmp r4, r0
+ beq _08070BDC
+ cmp r4, r0
+ bgt _08070B34
+ cmp r4, 0
+ beq _08070B40
+ b _08070BF4
+ .align 2, 0
+_08070B24: .4byte gMain
+_08070B28: .4byte 0x0201c000
+_08070B2C: .4byte 0xfffff282
+_08070B30: .4byte 0x0000fffe
+_08070B34:
+ ldr r0, _08070B3C @ =0x0000ffff
+ cmp r4, r0
+ beq _08070B7C
+ b _08070BF4
+ .align 2, 0
+_08070B3C: .4byte 0x0000ffff
+_08070B40:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070B74
+ ldr r1, _08070B6C @ =gUnknown_03005E94
+ ldr r0, _08070B70 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070C2C
+ .align 2, 0
+_08070B6C: .4byte gUnknown_03005E94
+_08070B70: .4byte sub_80A53F8
+_08070B74:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070C2C
+_08070B7C:
+ ldr r0, [r7]
+ ldr r1, _08070BBC @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070BC0 @ =gStringVar2
+ ldr r5, _08070BC4 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070BC8 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070BCC @ =gStringVar4
+ ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070BD4 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070BD8 @ =sub_806F358
+ b _08070C2A
+ .align 2, 0
+_08070BBC: .4byte gStringVar1
+_08070BC0: .4byte gStringVar2
+_08070BC4: .4byte word_2024E82
+_08070BC8: .4byte gMoveNames
+_08070BCC: .4byte gStringVar4
+_08070BD0: .4byte gOtherText_WantsToLearn
+_08070BD4: .4byte gTasks
+_08070BD8: .4byte sub_806F358
+_08070BDC:
+ ldr r0, _08070BEC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070BF0 @ =sub_8070C54
+ str r0, [r1]
+ b _08070C2C
+ .align 2, 0
+_08070BEC: .4byte gTasks
+_08070BF0: .4byte sub_8070C54
+_08070BF4:
+ ldr r0, _08070C34 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070C38 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070C3C @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070C40 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070C44 @ =gStringVar4
+ ldr r1, _08070C48 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070C4C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070C50 @ =Task_TeamMonTMMove3
+_08070C2A:
+ str r1, [r0]
+_08070C2C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070C34: .4byte 0x0201c000
+_08070C38: .4byte gStringVar1
+_08070C3C: .4byte gStringVar2
+_08070C40: .4byte gMoveNames
+_08070C44: .4byte gStringVar4
+_08070C48: .4byte gOtherText_LearnedMove
+_08070C4C: .4byte gTasks
+_08070C50: .4byte Task_TeamMonTMMove3
+ thumb_func_end Task_RareCandy3
+
+ thumb_func_start sub_8070C54
+sub_8070C54: @ 8070C54
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08070C78 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _08070C7C @ =0x0000fffe
+ cmp r4, r0
+ beq _08070D28
+ cmp r4, r0
+ bgt _08070C80
+ cmp r4, 0
+ beq _08070C8C
+ b _08070D30
+ .align 2, 0
+_08070C78: .4byte 0x0201c000
+_08070C7C: .4byte 0x0000fffe
+_08070C80:
+ ldr r0, _08070C88 @ =0x0000ffff
+ cmp r4, r0
+ beq _08070CC8
+ b _08070D30
+ .align 2, 0
+_08070C88: .4byte 0x0000ffff
+_08070C8C:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070CC0
+ ldr r1, _08070CB8 @ =gUnknown_03005E94
+ ldr r0, _08070CBC @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070D68
+ .align 2, 0
+_08070CB8: .4byte gUnknown_03005E94
+_08070CBC: .4byte sub_80A53F8
+_08070CC0:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070D68
+_08070CC8:
+ ldr r0, [r7]
+ ldr r1, _08070D08 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D0C @ =gStringVar2
+ ldr r5, _08070D10 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070D14 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D18 @ =gStringVar4
+ ldr r1, _08070D1C @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070D20 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D24 @ =sub_806F358
+ b _08070D66
+ .align 2, 0
+_08070D08: .4byte gStringVar1
+_08070D0C: .4byte gStringVar2
+_08070D10: .4byte word_2024E82
+_08070D14: .4byte gMoveNames
+_08070D18: .4byte gStringVar4
+_08070D1C: .4byte gOtherText_WantsToLearn
+_08070D20: .4byte gTasks
+_08070D24: .4byte sub_806F358
+_08070D28:
+ adds r0, r6, 0
+ bl sub_8070C54
+ b _08070D68
+_08070D30:
+ ldr r0, _08070D70 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070D74 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D78 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070D7C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D80 @ =gStringVar4
+ ldr r1, _08070D84 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070D88 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D8C @ =Task_TeamMonTMMove3
+_08070D66:
+ str r1, [r0]
+_08070D68:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070D70: .4byte 0x0201c000
+_08070D74: .4byte gStringVar1
+_08070D78: .4byte gStringVar2
+_08070D7C: .4byte gMoveNames
+_08070D80: .4byte gStringVar4
+_08070D84: .4byte gOtherText_LearnedMove
+_08070D88: .4byte gTasks
+_08070D8C: .4byte Task_TeamMonTMMove3
+ thumb_func_end sub_8070C54
+
+ thumb_func_start sub_8070D90
+sub_8070D90: @ 8070D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08070DB4 @ =gTasks
+ ldr r3, _08070DB8 @ =0x0201c000
+ ldrb r2, [r3, 0x4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r4
+ ldr r2, [r3, 0x10]
+ str r2, [r1]
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070DB4: .4byte gTasks
+_08070DB8: .4byte 0x0201c000
+ thumb_func_end sub_8070D90
+
+ thumb_func_start DoEvolutionStoneItemEffect
+DoEvolutionStoneItemEffect: @ 8070DBC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08070E18 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070E1C @ =TaskDummy
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r1, _08070E20 @ =gUnknown_03005E94
+ ldr r0, _08070E24 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, _08070E28 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070E38
+ ldr r1, _08070E2C @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070E34 @ =sub_806FB0C
+ movs r1, 0x5
+ bl CreateTask
+ b _08070E40
+ .align 2, 0
+_08070E18: .4byte gTasks
+_08070E1C: .4byte TaskDummy
+_08070E20: .4byte gUnknown_03005E94
+_08070E24: .4byte sub_80A53F8
+_08070E28: .4byte 0x0201c000
+_08070E2C: .4byte gUnknown_0202E8F4
+_08070E30: .4byte gOtherText_WontHaveAnyEffect
+_08070E34: .4byte sub_806FB0C
+_08070E38:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_08070E40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end DoEvolutionStoneItemEffect
+
+ thumb_func_start GetItemEffectType
+GetItemEffectType: @ 8070E48
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _08070E5C
+ ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
+ b _08070E66
+ .align 2, 0
+_08070E58: .4byte gSaveBlock1 + 0x3676
+_08070E5C:
+ ldr r1, _08070E8C @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+_08070E66:
+ ldrb r1, [r4]
+ movs r5, 0x3F
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r3, [r4, 0x3]
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _08070E90
+_08070E88:
+ movs r0, 0
+ b _08070F8A
+ .align 2, 0
+_08070E8C: .4byte gItemEffectTable
+_08070E90:
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070E9E
+ movs r0, 0xA
+ b _08070F8A
+_08070E9E:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08070EAA
+ movs r0, 0x1
+ b _08070F8A
+_08070EAA:
+ adds r2, r5, 0
+ ands r2, r3
+ cmp r2, 0
+ bne _08070EB8
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EFA
+_08070EB8:
+ cmp r2, 0x20
+ bne _08070EC0
+ movs r0, 0x4
+ b _08070F8A
+_08070EC0:
+ cmp r2, 0x10
+ bne _08070EC8
+ movs r0, 0x3
+ b _08070F8A
+_08070EC8:
+ cmp r2, 0x8
+ bne _08070ED0
+ movs r0, 0x5
+ b _08070F8A
+_08070ED0:
+ cmp r2, 0x4
+ bne _08070ED8
+ movs r0, 0x6
+ b _08070F8A
+_08070ED8:
+ cmp r2, 0x2
+ bne _08070EE0
+ movs r0, 0x7
+ b _08070F8A
+_08070EE0:
+ cmp r2, 0x1
+ bne _08070EE8
+ movs r0, 0x8
+ b _08070F8A
+_08070EE8:
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EF6
+ cmp r2, 0
+ bne _08070EF6
+ movs r0, 0x9
+ b _08070F8A
+_08070EF6:
+ movs r0, 0xB
+ b _08070F8A
+_08070EFA:
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x44
+ ands r0, r1
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08070F0A
+ movs r0, 0x2
+ b _08070F8A
+_08070F0A:
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F18
+ movs r0, 0xC
+ b _08070F8A
+_08070F18:
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F26
+ movs r0, 0xD
+ b _08070F8A
+_08070F26:
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F34
+ movs r0, 0xE
+ b _08070F8A
+_08070F34:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F40
+ movs r0, 0xF
+ b _08070F8A
+_08070F40:
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F4C
+ movs r0, 0x10
+ b _08070F8A
+_08070F4C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F58
+ movs r0, 0x11
+ b _08070F8A
+_08070F58:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F64
+ movs r0, 0x12
+ b _08070F8A
+_08070F64:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F70
+ movs r0, 0x13
+ b _08070F8A
+_08070F70:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F7C
+ movs r0, 0x14
+ b _08070F8A
+_08070F7C:
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _08070F88
+ movs r0, 0x16
+ b _08070F8A
+_08070F88:
+ movs r0, 0x15
+_08070F8A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetItemEffectType
+
+ thumb_func_start unref_sub_8070F90
+unref_sub_8070F90: @ 8070F90
+ push {lr}
+ ldr r0, _08070FAC @ =0x00000801
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 4
+ bl FlagSet
+ ldr r0, _08070FB0 @ =0x00000802
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070FAC: .4byte 0x00000801
+_08070FB0: .4byte 0x00000802
+ thumb_func_end unref_sub_8070F90
+
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s
deleted file mode 100644
index 4d7884ac1..000000000
--- a/asm/rom_806D7F8.s
+++ /dev/null
@@ -1,6917 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetMonIconAnimByHP
-SetMonIconAnimByHP: @ 806D7F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r5, r1, 16
- asrs r1, 16
- lsrs r4, r2, 16
- asrs r2, 16
- adds r0, r1, 0
- adds r1, r2, 0
- bl GetHPBarLevel
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r5, r4
- beq _0806D830
- movs r2, 0x1
- cmp r0, 0x3
- beq _0806D830
- movs r2, 0x2
- cmp r0, 0x2
- beq _0806D830
- movs r2, 0x4
- cmp r0, 0x1
- bne _0806D830
- movs r2, 0x3
-_0806D830:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, _0806D848 @ =gSprites
- adds r0, r1
- adds r1, r2, 0
- bl sub_809D824
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D848: .4byte gSprites
- thumb_func_end SetMonIconAnimByHP
-
- thumb_func_start SetMonIconAnim
-SetMonIconAnim: @ 806D84C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl SetMonIconAnimByHP
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end SetMonIconAnim
-
- thumb_func_start CreatePartyMenuMonIcon
-CreatePartyMenuMonIcon: @ 806D880
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806D904 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- mov r9, r0
- ldrb r1, [r1, 0x1]
- mov r10, r1
- mov r0, r8
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl GetMonData
- ldr r1, _0806D908 @ =sub_809D62C
- movs r2, 0x5
- str r2, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r9
- mov r3, r10
- bl CreateMonIcon
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl SetMonIconSpriteId_maybe
- adds r0, r4, 0
- mov r1, r8
- bl SetMonIconAnim
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D904: .4byte gUnknown_08376678
-_0806D908: .4byte sub_809D62C
- thumb_func_end CreatePartyMenuMonIcon
-
- thumb_func_start TryCreatePartyMenuMonIcon
-TryCreatePartyMenuMonIcon: @ 806D90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806D95A
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806D946
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x2
- adds r3, r4, 0
- bl CreatePartyMenuMonIcon
- b _0806D95A
-_0806D946:
- bl IsDoubleBattle
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r7, 0
- adds r3, r4, 0
- bl CreatePartyMenuMonIcon
-_0806D95A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end TryCreatePartyMenuMonIcon
-
- thumb_func_start unref_sub_806D964
-unref_sub_806D964: @ 806D964
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _0806D986
-_0806D96E:
- movs r0, 0x64
- adds r2, r4, 0
- muls r2, r0
- ldr r0, _0806D994 @ =gPlayerParty
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl TryCreatePartyMenuMonIcon
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0806D986:
- ldr r0, _0806D998 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0806D96E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D994: .4byte gPlayerParty
-_0806D998: .4byte gPlayerPartyCount
- thumb_func_end unref_sub_806D964
-
- thumb_func_start CreateMonIcon_806D99C
-CreateMonIcon_806D99C: @ 806D99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DA04 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, _0806DA08 @ =sub_809D62C
- movs r4, 0x5
- str r4, [sp]
- mov r7, r8
- ldr r4, [r7, 0x18]
- str r4, [sp, 0x4]
- bl CreateMonIcon
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl SetMonIconSpriteId_maybe
- ldrh r1, [r7, 0x10]
- ldrh r2, [r7, 0x12]
- adds r0, r4, 0
- bl SetMonIconAnimByHP
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA04: .4byte gUnknown_08376678
-_0806DA08: .4byte sub_809D62C
- thumb_func_end CreateMonIcon_806D99C
-
- thumb_func_start UpdateMonIconFrame_806DA0C
-UpdateMonIconFrame_806DA0C: @ 806DA0C
- push {r4,lr}
- adds r4, r0, 0
- bl UpdateMonIconFrame
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806DA32
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806DA30
- ldr r0, _0806DA2C @ =0x0000fffd
- strh r0, [r4, 0x26]
- b _0806DA32
- .align 2, 0
-_0806DA2C: .4byte 0x0000fffd
-_0806DA30:
- strh r1, [r4, 0x26]
-_0806DA32:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end UpdateMonIconFrame_806DA0C
-
- thumb_func_start UpdateMonIconFrame_806DA38
-UpdateMonIconFrame_806DA38: @ 806DA38
- push {lr}
- bl UpdateMonIconFrame
- pop {r0}
- bx r0
- thumb_func_end UpdateMonIconFrame_806DA38
-
- thumb_func_start UpdateMonIconFrame_806DA44
-UpdateMonIconFrame_806DA44: @ 806DA44
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r1, 0x5
- bhi _0806DA8E
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806DA7C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r2, r1, 2
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x2E]
- cmp r4, 0
- bne _0806DA84
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38
- b _0806DA8C
- .align 2, 0
-_0806DA7C: .4byte gSprites
-_0806DA80: .4byte UpdateMonIconFrame_806DA38
-_0806DA84:
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C
-_0806DA8C:
- str r1, [r0]
-_0806DA8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA94: .4byte UpdateMonIconFrame_806DA0C
- thumb_func_end UpdateMonIconFrame_806DA44
-
- thumb_func_start LoadHeldItemIconGraphics
-LoadHeldItemIconGraphics: @ 806DA98
- push {lr}
- ldr r0, _0806DAAC @ =gUnknown_083765DC
- bl LoadSpriteSheet
- ldr r0, _0806DAB0 @ =gUnknown_083765E4
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0806DAAC: .4byte gUnknown_083765DC
-_0806DAB0: .4byte gUnknown_083765E4
- thumb_func_end LoadHeldItemIconGraphics
-
- thumb_func_start SpriteCB_HeldItemIcon
-SpriteCB_HeldItemIcon: @ 806DAB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806DAE4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0806DAE8
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DB06
- .align 2, 0
-_0806DAE4: .4byte gSprites
-_0806DAE8:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
-_0806DB06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_HeldItemIcon
-
- thumb_func_start CreateHeldItemIcon
-CreateHeldItemIcon: @ 806DB0C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0806DB84 @ =gSprites
- mov r8, r0
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xFA
- movs r2, 0xAA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r0, r8
- adds r5, r4, r0
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _0806DB8C @ =SpriteCB_HeldItemIcon
- str r0, [r4]
- strh r6, [r5, 0x3C]
- adds r0, r5, 0
- mov r1, r9
- bl StartSpriteAnim
- ldr r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DB84: .4byte gSprites
-_0806DB88: .4byte gSpriteTemplate_837660C
-_0806DB8C: .4byte SpriteCB_HeldItemIcon
- thumb_func_end CreateHeldItemIcon
-
- thumb_func_start CreateHeldItemIcons
-CreateHeldItemIcons: @ 806DB90
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- beq _0806DBA4
- cmp r2, 0x1
- beq _0806DBEC
- b _0806DC28
-_0806DBA4:
- movs r5, 0
- ldrb r0, [r6]
- cmp r5, r0
- bcs _0806DC28
-_0806DBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DBE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DBD8
- adds r0, r7, r5
- ldrb r4, [r0]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl CreateHeldItemIcon
-_0806DBD8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r6]
- cmp r5, r0
- bcc _0806DBAC
- b _0806DC28
- .align 2, 0
-_0806DBE8: .4byte gPlayerParty
-_0806DBEC:
- movs r5, 0
- b _0806DC22
-_0806DBF0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DC30 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DC1C
- adds r0, r5, r7
- ldrb r4, [r0, 0x6]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl CreateHeldItemIcon
-_0806DC1C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0806DC22:
- ldrb r0, [r6, 0x1]
- cmp r5, r0
- bcc _0806DBF0
-_0806DC28:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DC30: .4byte gEnemyParty
- thumb_func_end CreateHeldItemIcons
-
- thumb_func_start CreateHeldItemIcons_806DC34
-CreateHeldItemIcons_806DC34: @ 806DC34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- ldr r0, _0806DCC8 @ =gSprites
- mov r9, r0
- movs r1, 0x1C
- add r1, r9
- mov r10, r1
-_0806DC50:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0806DCCC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806DCB0
- mov r0, r8
- adds r1, r7, 0
- bl GetMonIconSpriteId_maybe
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r1, r9
- adds r6, r4, r1
- movs r1, 0x4
- strh r1, [r6, 0x24]
- movs r1, 0xA
- strh r1, [r6, 0x26]
- strh r5, [r6, 0x3C]
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- add r1, r9
- strh r0, [r1, 0x3C]
- mov r0, r8
- adds r1, r7, 0
- bl SetHeldItemIconVisibility
- add r4, r10
- ldr r1, [r4]
- adds r0, r6, 0
- bl _call_via_r1
-_0806DCB0:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _0806DC50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DCC8: .4byte gSprites
-_0806DCCC: .4byte gPlayerParty
-_0806DCD0: .4byte gSpriteTemplate_837660C
- thumb_func_end CreateHeldItemIcons_806DC34
-
- thumb_func_start CreateHeldItemIcon_806DCD4
-CreateHeldItemIcon_806DCD4: @ 806DCD4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r7, r2, 16
- bl GetMonIconSpriteId_maybe
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806DD30 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- strh r4, [r5, 0x3C]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r6, [r0, 0x3C]
- cmp r7, 0
- bne _0806DD34
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DD5C
- .align 2, 0
-_0806DD2C: .4byte gSpriteTemplate_837660C
-_0806DD30: .4byte gSprites
-_0806DD34:
- adds r0, r7, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DD46
- adds r0, r5, 0
- movs r1, 0x1
- b _0806DD4A
-_0806DD46:
- adds r0, r5, 0
- movs r1, 0
-_0806DD4A:
- bl StartSpriteAnim
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0806DD5C:
- ldr r2, _0806DD78 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DD78: .4byte gSprites
- thumb_func_end CreateHeldItemIcon_806DCD4
-
- thumb_func_start SpriteCB_HeldItemIcon_806DD7C
-SpriteCB_HeldItemIcon_806DD7C: @ 806DD7C
- ldrh r2, [r0, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DD9C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0806DD9C: .4byte gSprites
- thumb_func_end SpriteCB_HeldItemIcon_806DD7C
-
- thumb_func_start GetMonIconSpriteId_maybe
-GetMonIconSpriteId_maybe: @ 806DDA0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x5
- bhi _0806DE38
- lsls r0, 2
- ldr r1, _0806DDB8 @ =_0806DDBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DDB8: .4byte _0806DDBC
- .align 2, 0
-_0806DDBC:
- .4byte _0806DE38
- .4byte _0806DDD4
- .4byte _0806DDE8
- .4byte _0806DDFC
- .4byte _0806DE10
- .4byte _0806DE24
-_0806DDD4:
- ldr r0, _0806DDE4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _0806DE46
- .align 2, 0
-_0806DDE4: .4byte gTasks
-_0806DDE8:
- ldr r0, _0806DDF8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- b _0806DE44
- .align 2, 0
-_0806DDF8: .4byte gTasks
-_0806DDFC:
- ldr r0, _0806DE0C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0806DE46
- .align 2, 0
-_0806DE0C: .4byte gTasks
-_0806DE10:
- ldr r0, _0806DE20 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- b _0806DE44
- .align 2, 0
-_0806DE20: .4byte gTasks
-_0806DE24:
- ldr r0, _0806DE34 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xC]
- b _0806DE46
- .align 2, 0
-_0806DE34: .4byte gTasks
-_0806DE38:
- ldr r0, _0806DE4C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
-_0806DE44:
- lsrs r0, 8
-_0806DE46:
- pop {r1}
- bx r1
- .align 2, 0
-_0806DE4C: .4byte gTasks
- thumb_func_end GetMonIconSpriteId_maybe
-
- thumb_func_start SetMonIconSpriteId_maybe
-SetMonIconSpriteId_maybe: @ 806DE50
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r0, 0x5
- bhi _0806DF24
- lsls r0, 2
- ldr r1, _0806DE6C @ =_0806DE70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DE6C: .4byte _0806DE70
- .align 2, 0
-_0806DE70:
- .4byte _0806DE88
- .4byte _0806DEA0
- .4byte _0806DEC0
- .4byte _0806DED8
- .4byte _0806DEF8
- .4byte _0806DF10
-_0806DE88:
- ldr r1, _0806DE9C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DE9C: .4byte gTasks
-_0806DEA0:
- ldr r0, _0806DEB8 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- ldr r0, _0806DEBC @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DEB8: .4byte gTasks
-_0806DEBC: .4byte 0xffffff00
-_0806DEC0:
- ldr r1, _0806DED4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DED4: .4byte gTasks
-_0806DED8:
- ldr r0, _0806DEF0 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- ldr r0, _0806DEF4 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DEF0: .4byte gTasks
-_0806DEF4: .4byte 0xffffff00
-_0806DEF8:
- ldr r1, _0806DF0C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xC]
- b _0806DF24
- .align 2, 0
-_0806DF0C: .4byte gTasks
-_0806DF10:
- ldr r0, _0806DF2C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- ldr r0, _0806DF30 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xC]
-_0806DF24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DF2C: .4byte gTasks
-_0806DF30: .4byte 0xffffff00
- thumb_func_end SetMonIconSpriteId_maybe
-
- thumb_func_start GetHeldItemIconSpriteIdByMon_maybe
-GetHeldItemIconSpriteIdByMon_maybe: @ 806DF34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806DF5C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806DF5C: .4byte gSprites
- thumb_func_end GetHeldItemIconSpriteIdByMon_maybe
-
- thumb_func_start SetHeldItemIconVisibility
-SetHeldItemIconVisibility: @ 806DF60
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl GetHeldItemIconSpriteIdByMon_maybe
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0806DFA4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- bne _0806DFAC
- ldr r1, _0806DFA8 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DFF6
- .align 2, 0
-_0806DFA4: .4byte gPlayerParty
-_0806DFA8: .4byte gSprites
-_0806DFAC:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DFD8
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _0806DFD4 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x1
- b _0806DFE6
- .align 2, 0
-_0806DFD4: .4byte gSprites
-_0806DFD8:
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r0, _0806DFFC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
-_0806DFE6:
- bl StartSpriteAnim
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
-_0806DFF6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DFFC: .4byte gSprites
- thumb_func_end SetHeldItemIconVisibility
-
- thumb_func_start box_print
-box_print: @ 806E000
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E040 @ =gTileBuffer
- ldr r2, _0806E044 @ =0x01000100
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E04C @ =0x06014000
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x80
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E040: .4byte gTileBuffer
-_0806E044: .4byte 0x01000100
-_0806E048: .4byte gWindowConfig_81E6CAC
-_0806E04C: .4byte 0x06014000
- thumb_func_end box_print
-
- thumb_func_start PrintPartyMenuMonNickname
-PrintPartyMenuMonNickname: @ 806E050
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r1, sp
- bl GetMonNickname
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl box_print
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end PrintPartyMenuMonNickname
-
- thumb_func_start TryPrintPartyMenuMonNickname
-TryPrintPartyMenuMonNickname: @ 806E07C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E0BC
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E0AA
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl PrintPartyMenuMonNickname
- b _0806E0BC
-_0806E0AA:
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl PrintPartyMenuMonNickname
-_0806E0BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end TryPrintPartyMenuMonNickname
-
- thumb_func_start PrintPartyMenuMonNicknames
-PrintPartyMenuMonNicknames: @ 806E0C4
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E0E8 @ =gPlayerParty
-_0806E0CC:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl TryPrintPartyMenuMonNickname
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E0CC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E0E8: .4byte gPlayerParty
- thumb_func_end PrintPartyMenuMonNicknames
-
- thumb_func_start GetMonNickname
-GetMonNickname: @ 806E0EC
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonNickname
-
- thumb_func_start PartyMenuPutStatusTilemap
-PartyMenuPutStatusTilemap: @ 806E104
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0806E15C @ =gUnknown_08376738
- lsrs r0, 22
- lsls r3, r1, 1
- adds r3, r1
- lsls r3, 3
- adds r0, r3
- adds r0, r4
- ldrb r1, [r0]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E160 @ =0x0600f000
- adds r4, r1, r0
- lsls r2, 26
- lsrs r2, 24
- movs r3, 0
- movs r0, 0xC6
- lsls r0, 1
- adds r2, r0
- ldr r0, _0806E164 @ =0xffffb000
- adds r5, r0, 0
-_0806E142:
- lsls r0, r3, 1
- adds r0, r4
- adds r1, r2, r3
- orrs r1, r5
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E142
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E15C: .4byte gUnknown_08376738
-_0806E160: .4byte 0x0600f000
-_0806E164: .4byte 0xffffb000
- thumb_func_end PartyMenuPutStatusTilemap
-
- thumb_func_start PartyMenuClearLevelStatusTilemap
-PartyMenuClearLevelStatusTilemap: @ 806E168
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E17E
- movs r3, 0x2
- b _0806E186
-_0806E17E:
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r3, r0, 24
-_0806E186:
- ldr r1, _0806E1C8 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- ldrb r1, [r2]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E1CC @ =0x0600f000
- adds r1, r0
- movs r3, 0
- movs r2, 0
-_0806E1B0:
- lsls r0, r3, 1
- adds r0, r1
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E1B0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E1C8: .4byte gUnknown_08376738
-_0806E1CC: .4byte 0x0600f000
- thumb_func_end PartyMenuClearLevelStatusTilemap
-
- thumb_func_start PartyMenuWriteTilemap
-PartyMenuWriteTilemap: @ 806E1D0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 19
- adds r1, r2
- lsls r1, 1
- ldr r2, _0806E1F0 @ =0x0600f000
- adds r1, r2
- movs r2, 0x86
- lsls r2, 1
- adds r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0806E1F0: .4byte 0x0600f000
- thumb_func_end PartyMenuWriteTilemap
-
- thumb_func_start PartyMenuDoPrintLevel
-PartyMenuDoPrintLevel: @ 806E1F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r3, _0806E278 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x40
- bl PartyMenuWriteTilemap
- ldr r6, _0806E27C @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x8
- strb r0, [r6, 0x2]
- adds r0, r6, 0x3
- adds r1, r5, 0
- bl ConvertIntToDecimalString
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E280 @ =gUnknown_02039460
- ldr r2, _0806E284 @ =0x01000020
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E28C @ =0xffffff00
- adds r1, r5, r2
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E290 @ =0x06014200
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x20
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E278: .4byte gUnknown_08376738
-_0806E27C: .4byte gStringVar1
-_0806E280: .4byte gUnknown_02039460
-_0806E284: .4byte 0x01000020
-_0806E288: .4byte gWindowConfig_81E6CAC
-_0806E28C: .4byte 0xffffff00
-_0806E290: .4byte 0x06014200
- thumb_func_end PartyMenuDoPrintLevel
-
- thumb_func_start PartyMenuPrintLevel
-PartyMenuPrintLevel: @ 806E294
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x38
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl PartyMenuDoPrintLevel
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuPrintLevel
-
- thumb_func_start PartyMenuPrintMonLevelOrStatus
-PartyMenuPrintMonLevelOrStatus: @ 806E2C0
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E32E
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E32E
- adds r0, r5, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E2FA
- movs r6, 0x2
- b _0806E302
-_0806E2FA:
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r6, r0, 24
-_0806E302:
- cmp r4, 0
- beq _0806E31A
- cmp r4, 0x6
- beq _0806E31A
- subs r2, r4, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl PartyMenuPutStatusTilemap
- b _0806E324
-_0806E31A:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl PartyMenuPrintLevel
-_0806E324:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl PartyMenuPutNicknameTilemap
-_0806E32E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuPrintMonLevelOrStatus
-
- thumb_func_start PartyMenuPrintMonsLevelOrStatus
-PartyMenuPrintMonsLevelOrStatus: @ 806E334
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E358 @ =gPlayerParty
-_0806E33C:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl PartyMenuPrintMonLevelOrStatus
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E33C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E358: .4byte gPlayerParty
- thumb_func_end PartyMenuPrintMonsLevelOrStatus
-
- thumb_func_start PartyMenuDoPutNicknameTilemap
-PartyMenuDoPutNicknameTilemap: @ 806E35C
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r1, r4, 0
- bl sub_8040D8C
- cmp r0, 0
- bne _0806E3BA
- ldr r2, _0806E3A4 @ =gUnknown_08376738
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r7, 0
- beq _0806E3A8
- cmp r7, 0xFE
- beq _0806E3B2
- b _0806E3BA
- .align 2, 0
-_0806E3A4: .4byte gUnknown_08376738
-_0806E3A8:
- movs r0, 0x42
- adds r1, r3, 0
- bl PartyMenuWriteTilemap
- b _0806E3BA
-_0806E3B2:
- movs r0, 0x44
- adds r1, r3, 0
- bl PartyMenuWriteTilemap
-_0806E3BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuDoPutNicknameTilemap
-
- thumb_func_start PartyMenuPutNicknameTilemap
-PartyMenuPutNicknameTilemap: @ 806E3C0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0806E41C @ =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- mov r1, r9
- bl GetMonNickname
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl GetMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r6, 0
- mov r3, r8
- bl PartyMenuDoPutNicknameTilemap
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E41C: .4byte gStringVar1
- thumb_func_end PartyMenuPutNicknameTilemap
-
- thumb_func_start PartyMenuDoPrintHP
-PartyMenuDoPrintHP: @ 806E420
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r1, r2, 0
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, _0806E48C @ =gStringVar1
- adds r0, r2, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r5, 0
- movs r2, 0x23
- movs r3, 0x1
- bl sub_8072C14
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E490 @ =gUnknown_02039460
- ldr r2, _0806E494 @ =0x01000040
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E49C @ =0xffffff00
- adds r1, r5, r2
- ldr r2, _0806E48C @ =gStringVar1
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E4A0 @ =0x06014300
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x40
- bl CpuFastSet
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E48C: .4byte gStringVar1
-_0806E490: .4byte gUnknown_02039460
-_0806E494: .4byte 0x01000040
-_0806E498: .4byte gWindowConfig_81E6CAC
-_0806E49C: .4byte 0xffffff00
-_0806E4A0: .4byte 0x06014300
- thumb_func_end PartyMenuDoPrintHP
-
- thumb_func_start PartyMenuPrintHP
-PartyMenuPrintHP: @ 806E4A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl PartyMenuDoPrintHP
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuPrintHP
-
- thumb_func_start PartyMenuTryPrintHP
-PartyMenuTryPrintHP: @ 806E4E8
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E534
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E534
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E522
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl PartyMenuPrintHP
- b _0806E534
-_0806E522:
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl PartyMenuPrintHP
-_0806E534:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuTryPrintHP
-
- thumb_func_start PartyMenuTryPrintMonsHP
-PartyMenuTryPrintMonsHP: @ 806E53C
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E560 @ =gPlayerParty
-_0806E544:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl PartyMenuTryPrintHP
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E544
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E560: .4byte gPlayerParty
- thumb_func_end PartyMenuTryPrintMonsHP
-
- thumb_func_start unref_sub_806E564
-unref_sub_806E564: @ 806E564
- bx lr
- thumb_func_end unref_sub_806E564
-
- thumb_func_start unref_sub_806E568
-unref_sub_806E568: @ 806E568
- bx lr
- thumb_func_end unref_sub_806E568
-
- thumb_func_start nullsub_12
-nullsub_12: @ 806E56C
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start nullsub_13
-nullsub_13: @ 806E570
- bx lr
- thumb_func_end nullsub_13
-
- thumb_func_start PartyMenuDoDrawHPBar
-PartyMenuDoDrawHPBar: @ 806E574
- push {r4-r6,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0806E624 @ =0xffff8000
- str r0, [sp, 0x14]
- str r3, [sp]
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- adds r0, r2, 0
- adds r1, r3, 0
- bl GetHPBarLevel
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- cmp r3, 0x2
- bls _0806E5BE
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5BE:
- cmp r3, 0x2
- bne _0806E5D2
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x5
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5D2:
- cmp r4, 0x1
- bhi _0806E5E6
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x6
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5E6:
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp, 0x10]
- ldr r2, _0806E628 @ =gUnknown_08376858
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldr r4, [r1]
- add r1, sp, 0x14
- mov r0, sp
- adds r2, r4, 0
- movs r3, 0
- bl sub_80460C8
- subs r4, 0x4
- ldr r1, _0806E62C @ =0x00003109
- adds r0, r1, 0
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x10]
- add sp, 0x18
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E624: .4byte 0xffff8000
-_0806E628: .4byte gUnknown_08376858
-_0806E62C: .4byte 0x00003109
- thumb_func_end PartyMenuDoDrawHPBar
-
- thumb_func_start PartyMenuDrawHPBar
-PartyMenuDrawHPBar: @ 806E630
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl PartyMenuDoDrawHPBar
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuDrawHPBar
-
- thumb_func_start PartyMenuTryDrawHPBar
-PartyMenuTryDrawHPBar: @ 806E674
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E6C0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E6C0
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E6AE
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl PartyMenuDrawHPBar
- b _0806E6C0
-_0806E6AE:
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl PartyMenuDrawHPBar
-_0806E6C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuTryDrawHPBar
-
- thumb_func_start PartyMenuDrawHPBars
-PartyMenuDrawHPBars: @ 806E6C8
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E6EC @ =gPlayerParty
-_0806E6D0:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl PartyMenuTryDrawHPBar
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E6D0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E6EC: .4byte gPlayerParty
- thumb_func_end PartyMenuDrawHPBars
-
- thumb_func_start sub_806E6F0
-sub_806E6F0: @ 806E6F0
- push {r4,r5,lr}
- sub sp, 0x64
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E6F0
-
- thumb_func_start sub_806E720
-sub_806E720: @ 806E720
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 21
- adds r0, r3
- ldrb r4, [r0]
- lsls r4, 25
- movs r3, 0x80
- lsls r3, 18
- adds r4, r3
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1E
- subs r3, r0
- strb r3, [r1]
- movs r0, 0x14
- subs r0, r4
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806E720
-
- thumb_func_start sub_806E750
-sub_806E750: @ 806E750
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- mov r9, r2
- adds r6, r3, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x9
- add r0, sp
- mov r8, r0
- adds r0, r5, 0
- add r1, sp, 0x8
- mov r2, r8
- adds r3, r4, 0
- bl sub_806E720
- add r0, sp, 0x8
- ldrb r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r5, 3
- adds r5, r4
- ldrb r2, [r5, 0x1]
- ldrb r3, [r5]
- mov r4, r9
- str r4, [sp]
- ldr r4, [r5, 0x4]
- str r4, [sp, 0x4]
- bl sub_8089C50
- add r0, sp, 0x8
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- ldrb r2, [r0]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r5]
- str r6, [sp]
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E750
-
- thumb_func_start sub_806E7D0
-sub_806E7D0: @ 806E7D0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- adds r5, 0x1
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_806E720
- mov r0, sp
- ldrb r0, [r0]
- ldrb r1, [r5]
- lsls r4, 3
- adds r4, r6
- ldrb r2, [r4, 0x1]
- adds r2, r0, r2
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, r1, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E7D0
-
- thumb_func_start sub_806E81C
-sub_806E81C: @ 806E81C
- lsls r0, 24
- lsls r3, 24
- lsrs r3, 24
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0, 0x4]
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0, 0x4]
- bx lr
- thumb_func_end sub_806E81C
-
- thumb_func_start sub_806E834
-sub_806E834: @ 806E834
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _0806E878 @ =gUnknown_0202E8F6
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r0, _0806E87C @ =sub_806E884
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806E880 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E878: .4byte gUnknown_0202E8F6
-_0806E87C: .4byte sub_806E884
-_0806E880: .4byte gTasks
- thumb_func_end sub_806E834
-
- thumb_func_start sub_806E884
-sub_806E884: @ 806E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0806E8C0
- ldr r1, _0806E8C8 @ =gUnknown_0202E8F6
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0806E8CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806E8BA
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_0806E8BA:
- adds r0, r5, 0
- bl DestroyTask
-_0806E8C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8C8: .4byte gUnknown_0202E8F6
-_0806E8CC: .4byte gTasks
- thumb_func_end sub_806E884
-
- thumb_func_start sub_806E8D0
-sub_806E8D0: @ 806E8D0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r4, _0806E8FC @ =0x0201c000
- str r2, [r4, 0x10]
- strb r0, [r4, 0x4]
- bl sub_806CA38
- strb r0, [r4, 0x5]
- strh r5, [r4, 0x6]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806E900 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8FC: .4byte 0x0201c000
-_0806E900: .4byte gPlayerParty
- thumb_func_end sub_806E8D0
-
- thumb_func_start PartyMenuUpdateMonHeldItem
-PartyMenuUpdateMonHeldItem: @ 806E904
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E93C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2BC4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0806E930
- movs r0, 0x1
- b _0806E958
-_0806E930:
- ldr r1, _0806E938 @ =gUnknown_0202E8F4
- movs r0, 0x2
- b _0806E940
- .align 2, 0
-_0806E938: .4byte gUnknown_0202E8F4
-_0806E93C:
- ldr r1, _0806E960 @ =gUnknown_0202E8F4
- movs r0, 0x1
-_0806E940:
- strb r0, [r1]
- mov r0, sp
- strb r4, [r0]
- mov r1, sp
- lsrs r0, r4, 8
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- movs r0, 0
-_0806E958:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E960: .4byte gUnknown_0202E8F4
- thumb_func_end PartyMenuUpdateMonHeldItem
-
- thumb_func_start PartyMenuTryGiveMonHeldItem
-PartyMenuTryGiveMonHeldItem: @ 806E964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- mov r9, r5
- ldr r2, _0806E9D4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldr r1, _0806E9D8 @ =TaskDummy
- str r1, [r6]
- adds r1, r5, 0
- mov r2, r8
- bl sub_806E8D0
- ldr r4, _0806E9DC @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r2, r0, 16
- adds r7, r2, 0
- ldr r1, _0806E9E0 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0806E9E4 @ =gUnknown_0202E8F8
- mov r10, r0
- movs r0, 0
- mov r1, r10
- strh r0, [r1]
- cmp r2, 0
- beq _0806EA44
- adds r0, r2, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E9F0
- ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EA78
- .align 2, 0
-_0806E9D4: .4byte gTasks
-_0806E9D8: .4byte TaskDummy
-_0806E9DC: .4byte 0x0201c000
-_0806E9E0: .4byte gUnknown_0202E8F4
-_0806E9E4: .4byte gUnknown_0202E8F8
-_0806E9E8: .4byte gOtherText_MailMustBeRemoved
-_0806E9EC: .4byte party_menu_link_mon_held_item_object
-_0806E9F0:
- ldr r0, [r4]
- ldr r1, _0806EA30 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EA34 @ =gStringVar2
- adds r0, r7, 0
- bl CopyItemName
- ldr r4, _0806EA38 @ =gStringVar4
- ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EA40 @ =Task_ConfirmGiveHeldItem
- movs r1, 0x5
- bl CreateTask
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EA78
- mov r0, r10
- strh r7, [r0]
- b _0806EA78
- .align 2, 0
-_0806EA30: .4byte gStringVar1
-_0806EA34: .4byte gStringVar2
-_0806EA38: .4byte gStringVar4
-_0806EA3C: .4byte gOtherText_AlreadyHolding
-_0806EA40: .4byte Task_ConfirmGiveHeldItem
-_0806EA44:
- ldr r0, [r4]
- adds r1, r5, 0
- bl PartyMenuUpdateMonHeldItem
- adds r0, r5, 0
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EA66
- mov r1, r8
- str r1, [r6]
- b _0806EA78
-_0806EA66:
- ldrb r0, [r4, 0x5]
- mov r1, r9
- movs r2, 0x1
- bl DisplayGiveHeldItemMessage
- ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EA78:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EA88: .4byte party_menu_link_mon_held_item_object
- thumb_func_end PartyMenuTryGiveMonHeldItem
-
- thumb_func_start party_menu_link_mon_held_item_object
-party_menu_link_mon_held_item_object: @ 806EA8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806EAC0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EABA
- ldr r4, _0806EAC4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl SetHeldItemIconVisibility
- ldr r2, _0806EAC8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
-_0806EABA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EAC0: .4byte gUnknown_0202E8F6
-_0806EAC4: .4byte 0x0201c000
-_0806EAC8: .4byte gTasks
- thumb_func_end party_menu_link_mon_held_item_object
-
- thumb_func_start PartyMenuTryGiveMonHeldItem_806EACC
-PartyMenuTryGiveMonHeldItem_806EACC: @ 806EACC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EB74
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806EB30 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EB5C
- ldr r0, [r4]
- ldrh r1, [r4, 0x6]
- bl PartyMenuUpdateMonHeldItem
- ldrh r0, [r4, 0x6]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EB34
- ldrb r0, [r4, 0x5]
- adds r1, r5, 0
- movs r2, 0x1
- bl DisplayTakeHeldItemMessage
- b _0806EB9A
- .align 2, 0
-_0806EB30: .4byte 0x0201c000
-_0806EB34:
- ldrh r0, [r4, 0x6]
- ldr r1, _0806EB50 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0806EB54 @ =gStringVar4
- ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- b _0806EB9A
- .align 2, 0
-_0806EB50: .4byte gStringVar1
-_0806EB54: .4byte gStringVar4
-_0806EB58: .4byte gOtherText_TakenAndReplaced
-_0806EB5C:
- ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- b _0806EB9A
- .align 2, 0
-_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EB74:
- cmp r1, 0x1
- beq _0806EB80
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EBA8
-_0806EB80:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EB8E
- movs r0, 0x5
- bl PlaySE
-_0806EB8E:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
-_0806EB9A:
- ldr r0, _0806EBB0 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EBA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBB0: .4byte gTasks
-_0806EBB4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end PartyMenuTryGiveMonHeldItem_806EACC
-
- thumb_func_start Task_ConfirmGiveHeldItem
-Task_ConfirmGiveHeldItem: @ 806EBB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EBE4 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EBDE
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EBE8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBEC @ =PartyMenuTryGiveMonHeldItem_806EACC
- str r0, [r1]
-_0806EBDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBE4: .4byte gUnknown_0202E8F6
-_0806EBE8: .4byte gTasks
-_0806EBEC: .4byte PartyMenuTryGiveMonHeldItem_806EACC
- thumb_func_end Task_ConfirmGiveHeldItem
-
- thumb_func_start DisplayGiveHeldItemMessage
-DisplayGiveHeldItemMessage: @ 806EBF0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EC30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EC34 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EC38 @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EC3C @ =gStringVar4
- ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EC30: .4byte gPlayerParty
-_0806EC34: .4byte gStringVar1
-_0806EC38: .4byte gStringVar2
-_0806EC3C: .4byte gStringVar4
-_0806EC40: .4byte gOtherText_WasGivenToHold
- thumb_func_end DisplayGiveHeldItemMessage
-
- thumb_func_start PartyMenuTryGiveMonMail
-PartyMenuTryGiveMonMail: @ 806EC44
- push {r4,r5,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ECA0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ECA4 @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ECA8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- ldr r2, _0806ECAC @ =gUnknown_0202E8F4
- movs r1, 0
- strb r1, [r2]
- movs r1, 0xF8
- lsls r1, 6
- adds r2, r5, r1
- ldrb r1, [r2]
- adds r1, 0x6
- ldrb r2, [r2, 0x2]
- adds r1, r2
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C
- adds r4, r2, r1
- cmp r0, 0
- beq _0806ECBC
- ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806ECDA
- .align 2, 0
-_0806ECA0: .4byte gTasks
-_0806ECA4: .4byte TaskDummy
-_0806ECA8: .4byte 0x0201c000
-_0806ECAC: .4byte gUnknown_0202E8F4
-_0806ECB0: .4byte gSaveBlock1 + 0x2B4C
-_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail
-_0806ECB8: .4byte party_menu_link_mon_held_item_object
-_0806ECBC:
- ldr r0, [r5]
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80A2B40
- ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806ECDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806ECE0: .4byte gOtherText_MailTransferredMailbox
-_0806ECE4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end PartyMenuTryGiveMonMail
-
- thumb_func_start PartyMenuTryGiveMonHeldItem_806ECE8
-PartyMenuTryGiveMonHeldItem_806ECE8: @ 806ECE8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ED38 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ED3C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ED40 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- cmp r4, 0
- bne _0806ED50
- ldr r4, _0806ED44 @ =gStringVar4
- ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EDA2
- .align 2, 0
-_0806ED38: .4byte gTasks
-_0806ED3C: .4byte TaskDummy
-_0806ED40: .4byte 0x0201c000
-_0806ED44: .4byte gStringVar4
-_0806ED48: .4byte gOtherText_NotHoldingAnything
-_0806ED4C: .4byte party_menu_link_mon_held_item_object
-_0806ED50:
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED92
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED7C
- ldr r0, [r5]
- bl sub_80A2DF8
-_0806ED7C:
- ldrb r0, [r5, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl DisplayTakeHeldItemMessage
- ldr r0, [r5]
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- b _0806ED9A
-_0806ED92:
- ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806ED9A:
- ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EDA2:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EDB0: .4byte party_menu_link_mon_held_item_object
- thumb_func_end PartyMenuTryGiveMonHeldItem_806ECE8
-
- thumb_func_start DisplayTakeHeldItemMessage
-DisplayTakeHeldItemMessage: @ 806EDB4
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EDF4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EDF8 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EDFC @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EE00 @ =gStringVar4
- ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDF4: .4byte gPlayerParty
-_0806EDF8: .4byte gStringVar1
-_0806EDFC: .4byte gStringVar2
-_0806EE00: .4byte gStringVar4
-_0806EE04: .4byte gOtherText_ReceivedTheThingFrom
- thumb_func_end DisplayTakeHeldItemMessage
-
- thumb_func_start DoTakeMail
-DoTakeMail: @ 806EE08
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806EE48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806EE4C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r4, _0806EE50 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- strh r0, [r4, 0x6]
- ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EE58 @ =Task_ConfirmTakeHeldMail
- movs r1, 0x5
- bl CreateTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EE48: .4byte gTasks
-_0806EE4C: .4byte TaskDummy
-_0806EE50: .4byte 0x0201c000
-_0806EE54: .4byte gOtherText_SendRemovedMailPrompt
-_0806EE58: .4byte Task_ConfirmTakeHeldMail
- thumb_func_end DoTakeMail
-
- thumb_func_start Task_LoseMailMessage
-Task_LoseMailMessage: @ 806EE5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EEB0
- ldr r5, _0806EE90 @ =0x0201c000
- ldrh r0, [r5, 0x6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EE98
- ldr r0, [r5]
- bl sub_80A2DF8
- ldr r0, _0806EE94 @ =gOtherText_MailTaken
- movs r1, 0
- bl sub_806E834
- b _0806EEA0
- .align 2, 0
-_0806EE90: .4byte 0x0201c000
-_0806EE94: .4byte gOtherText_MailTaken
-_0806EE98:
- ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806EEA0:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- b _0806EEDE
- .align 2, 0
-_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EEB0:
- cmp r1, 0x1
- beq _0806EEBC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EEF0
-_0806EEBC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EECA
- movs r0, 0x5
- bl PlaySE
-_0806EECA:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
-_0806EEDE:
- bl MenuZeroFillWindowRect
- ldr r0, _0806EEF8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EEF0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EEF8: .4byte gTasks
-_0806EEFC: .4byte party_menu_link_mon_held_item_object
- thumb_func_end Task_LoseMailMessage
-
- thumb_func_start Task_ConfirmLoseMailMessage
-Task_ConfirmLoseMailMessage: @ 806EF00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EF2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EF26
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EF30 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF34 @ =Task_LoseMailMessage
- str r0, [r1]
-_0806EF26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EF2C: .4byte gUnknown_0202E8F6
-_0806EF30: .4byte gTasks
-_0806EF34: .4byte Task_LoseMailMessage
- thumb_func_end Task_ConfirmLoseMailMessage
-
- thumb_func_start Task_TakeHeldMail
-Task_TakeHeldMail: @ 806EF38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EF9C
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EF70 @ =0x0201c000
- ldr r0, [r0]
- bl sub_80A2E78
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806EF78
- ldr r0, _0806EF74 @ =gOtherText_MailWasSent
- movs r1, 0
- bl sub_806E834
- b _0806EF80
- .align 2, 0
-_0806EF70: .4byte 0x0201c000
-_0806EF74: .4byte gOtherText_MailWasSent
-_0806EF78:
- ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull
- movs r1, 0
- bl sub_806E834
-_0806EF80:
- ldr r0, _0806EF94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
- b _0806EFD8
- .align 2, 0
-_0806EF90: .4byte gOtherText_MailboxIsFull
-_0806EF94: .4byte gTasks
-_0806EF98: .4byte party_menu_link_mon_held_item_object
-_0806EF9C:
- cmp r1, 0x1
- beq _0806EFA8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFD8
-_0806EFA8:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFB6
- movs r0, 0x5
- bl PlaySE
-_0806EFB6:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806EFE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806EFE8 @ =Task_ConfirmLoseMailMessage
- str r1, [r0]
-_0806EFD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
-_0806EFE4: .4byte gTasks
-_0806EFE8: .4byte Task_ConfirmLoseMailMessage
- thumb_func_end Task_TakeHeldMail
-
- thumb_func_start Task_ConfirmTakeHeldMail
-Task_ConfirmTakeHeldMail: @ 806EFEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F018 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F012
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F01C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F020 @ =Task_TakeHeldMail
- str r0, [r1]
-_0806F012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F018: .4byte gUnknown_0202E8F6
-_0806F01C: .4byte gTasks
-_0806F020: .4byte Task_TakeHeldMail
- thumb_func_end Task_ConfirmTakeHeldMail
-
- thumb_func_start ItemIdToBattleMoveId
-ItemIdToBattleMoveId: @ 806F024
- lsls r0, 16
- ldr r1, _0806F034 @ =0xfedf0000
- adds r0, r1
- ldr r1, _0806F038 @ =gUnknown_08376504
- lsrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0806F034: .4byte 0xfedf0000
-_0806F038: .4byte gUnknown_08376504
- thumb_func_end ItemIdToBattleMoveId
-
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 806F03C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
-_0806F046:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- cmp r0, r5
- bne _0806F058
- movs r0, 0x1
- b _0806F064
-_0806F058:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0806F046
- movs r0, 0
-_0806F064:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_has_move
-
- thumb_func_start TeachMonTMMove
-TeachMonTMMove: @ 806F06C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0806F0A8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F0AC @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E8D0
- ldr r0, _0806F0B0 @ =Task_TeamMonTMMove
- movs r1, 0x5
- bl CreateTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F0A8: .4byte gTasks
-_0806F0AC: .4byte TaskDummy
-_0806F0B0: .4byte Task_TeamMonTMMove
- thumb_func_end TeachMonTMMove
-
- thumb_func_start Task_TeamMonTMMove
-Task_TeamMonTMMove: @ 806F0B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r5, _0806F114 @ =0x0201c000
- ldr r0, [r5]
- ldr r1, _0806F118 @ =gStringVar1
- bl GetMonNickname
- ldrh r0, [r5, 0x6]
- bl ItemIdToBattleMoveId
- movs r4, 0
- strh r0, [r5, 0x8]
- ldr r0, _0806F11C @ =gStringVar2
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F120 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r1, _0806F124 @ =0xfffff282
- adds r0, r5, r1
- strh r4, [r0]
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0806F138
- ldr r4, _0806F128 @ =gStringVar4
- ldr r1, _0806F12C @ =gOtherText_AlreadyKnows
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F130 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F114: .4byte 0x0201c000
-_0806F118: .4byte gStringVar1
-_0806F11C: .4byte gStringVar2
-_0806F120: .4byte gMoveNames
-_0806F124: .4byte 0xfffff282
-_0806F128: .4byte gStringVar4
-_0806F12C: .4byte gOtherText_AlreadyKnows
-_0806F130: .4byte gTasks
-_0806F134: .4byte party_menu_link_mon_held_item_object
-_0806F138:
- ldr r0, [r5]
- ldrb r1, [r5, 0x6]
- subs r1, 0x21
- lsls r1, 24
- lsrs r1, 24
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0806F17C
- ldr r4, _0806F16C @ =gStringVar4
- ldr r1, _0806F170 @ =gOtherText_NotCompatible
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F174 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F16C: .4byte gStringVar4
-_0806F170: .4byte gOtherText_NotCompatible
-_0806F174: .4byte gTasks
-_0806F178: .4byte party_menu_link_mon_held_item_object
-_0806F17C:
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _0806F194 @ =0xffff0000
- cmp r0, r1
- beq _0806F198
- adds r0, r6, 0
- bl Task_TeamMonTMMove2
- b _0806F1B8
- .align 2, 0
-_0806F194: .4byte 0xffff0000
-_0806F198:
- ldr r4, _0806F1C0 @ =gStringVar4
- ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F1C8 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F1CC @ =sub_806F358
-_0806F1B6:
- str r1, [r0]
-_0806F1B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F1C0: .4byte gStringVar4
-_0806F1C4: .4byte gOtherText_WantsToLearn
-_0806F1C8: .4byte gTasks
-_0806F1CC: .4byte sub_806F358
- thumb_func_end Task_TeamMonTMMove
-
- thumb_func_start Task_TeamMonTMMove2
-Task_TeamMonTMMove2: @ 806F1D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F234 @ =gStringVar2
- ldr r5, _0806F238 @ =0x0201c000
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F23C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F240 @ =gStringVar4
- ldr r1, _0806F244 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, [r5]
- movs r1, 0x4
- bl AdjustFriendship
- ldr r1, _0806F248 @ =0xfffff282
- adds r0, r5, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806F220
- ldrh r1, [r5, 0x6]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0806F220
- adds r0, r1, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806F220:
- ldr r0, _0806F24C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F250 @ =Task_TeamMonTMMove3
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F234: .4byte gStringVar2
-_0806F238: .4byte 0x0201c000
-_0806F23C: .4byte gMoveNames
-_0806F240: .4byte gStringVar4
-_0806F244: .4byte gOtherText_LearnedMove
-_0806F248: .4byte 0xfffff282
-_0806F24C: .4byte gTasks
-_0806F250: .4byte Task_TeamMonTMMove3
- thumb_func_end Task_TeamMonTMMove2
-
- thumb_func_start Task_TeamMonTMMove3
-Task_TeamMonTMMove3: @ 806F254
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F27C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F276
- ldr r0, _0806F280 @ =0x0000016f
- bl PlayFanfare
- ldr r1, _0806F284 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F288 @ =Task_TeamMonTMMove4
- str r1, [r0]
-_0806F276:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F27C: .4byte gUnknown_0202E8F6
-_0806F280: .4byte 0x0000016f
-_0806F284: .4byte gTasks
-_0806F288: .4byte Task_TeamMonTMMove4
- thumb_func_end Task_TeamMonTMMove3
-
- thumb_func_start Task_TeamMonTMMove4
-Task_TeamMonTMMove4: @ 806F28C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _0806F2F2
- ldr r0, _0806F2D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806F2B2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806F2F2
-_0806F2B2:
- ldr r4, _0806F2D4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl SetHeldItemIconVisibility
- ldr r1, _0806F2D8 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F2DC
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F2F2
- .align 2, 0
-_0806F2D0: .4byte gMain
-_0806F2D4: .4byte 0x0201c000
-_0806F2D8: .4byte 0xfffff282
-_0806F2DC:
- ldr r2, _0806F2F8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F2F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F2F8: .4byte gTasks
- thumb_func_end Task_TeamMonTMMove4
-
- thumb_func_start sub_806F2FC
-sub_806F2FC: @ 806F2FC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, _0806F32C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F34E
- ldr r4, _0806F330 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl SetHeldItemIconVisibility
- ldr r1, _0806F334 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F338
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F34E
- .align 2, 0
-_0806F32C: .4byte gUnknown_0202E8F6
-_0806F330: .4byte 0x0201c000
-_0806F334: .4byte 0xfffff282
-_0806F338:
- ldr r2, _0806F354 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F34E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F354: .4byte gTasks
- thumb_func_end sub_806F2FC
-
- thumb_func_start sub_806F358
-sub_806F358: @ 806F358
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F384 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F37E
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F388 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F38C @ =sub_806F390
- str r0, [r1]
-_0806F37E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F384: .4byte gUnknown_0202E8F6
-_0806F388: .4byte gTasks
-_0806F38C: .4byte sub_806F390
- thumb_func_end sub_806F358
-
- thumb_func_start sub_806F390
-sub_806F390: @ 806F390
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F3D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F3CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F3D0 @ =sub_806F44C
- str r1, [r0]
- b _0806F3F4
- .align 2, 0
-_0806F3C8: .4byte gOtherText_WhichMoveToForget2
-_0806F3CC: .4byte gTasks
-_0806F3D0: .4byte sub_806F44C
-_0806F3D4:
- cmp r1, 0x1
- beq _0806F3E0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3F4
-_0806F3E0:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3EE
- movs r0, 0x5
- bl PlaySE
-_0806F3EE:
- adds r0, r5, 0
- bl StopTryingToTeachMove_806F614
-_0806F3F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806F390
-
- thumb_func_start sub_806F3FC
-sub_806F3FC: @ 806F3FC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806F438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F430
- ldr r0, _0806F43C @ =gPlayerParty
- ldr r4, _0806F440 @ =0x0201c000
- ldrb r1, [r4, 0x5]
- ldr r2, _0806F444 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806F448 @ =sub_808B564
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl sub_809D9F0
- adds r0, r5, 0
- bl DestroyTask
-_0806F430:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F438: .4byte gPaletteFade
-_0806F43C: .4byte gPlayerParty
-_0806F440: .4byte 0x0201c000
-_0806F444: .4byte gPlayerPartyCount
-_0806F448: .4byte sub_808B564
- thumb_func_end sub_806F3FC
-
- thumb_func_start sub_806F44C
-sub_806F44C: @ 806F44C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F484 @ =gUnknown_0202E8F6
- ldrb r1, [r0]
- cmp r1, 0
- bne _0806F47A
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0806F488 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F48C @ =sub_806F3FC
- str r1, [r0]
-_0806F47A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F484: .4byte gUnknown_0202E8F6
-_0806F488: .4byte gTasks
-_0806F48C: .4byte sub_806F3FC
- thumb_func_end sub_806F44C
-
- thumb_func_start TaughtMove
-TaughtMove: @ 806F490
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F50C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F506
- ldr r1, _0806F510 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F514 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F518 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F51C @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r5, _0806F520 @ =0x0201c000
- ldr r0, [r5]
- adds r1, 0xD
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5]
- ldr r1, _0806F524 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F528 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _0806F52C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F530 @ =gStringVar4
- ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F538 @ =TMMoveUpdateMoveSlot
- movs r1, 0x5
- bl CreateTask
-_0806F506:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F50C: .4byte gPaletteFade
-_0806F510: .4byte gTasks
-_0806F514: .4byte TaskDummy
-_0806F518: .4byte gScriptItemId
-_0806F51C: .4byte sub_808B508
-_0806F520: .4byte 0x0201c000
-_0806F524: .4byte gStringVar1
-_0806F528: .4byte gStringVar2
-_0806F52C: .4byte gMoveNames
-_0806F530: .4byte gStringVar4
-_0806F534: .4byte gOtherText_ForgetMove123_2
-_0806F538: .4byte TMMoveUpdateMoveSlot
- thumb_func_end TaughtMove
-
- thumb_func_start TMMoveUpdateMoveSlot
-TMMoveUpdateMoveSlot: @ 806F53C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F580 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F57A
- ldr r4, _0806F584 @ =0x0201c000
- ldr r5, [r4]
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl RemoveMonPPBonus
- ldr r5, [r4]
- ldrh r4, [r4, 0x8]
- bl sub_809FA30
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl SetMonMoveSlot
- adds r0, r6, 0
- bl Task_TeamMonTMMove2
-_0806F57A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F580: .4byte gUnknown_0202E8F6
-_0806F584: .4byte 0x0201c000
- thumb_func_end TMMoveUpdateMoveSlot
-
- thumb_func_start StopTryingToTeachMove_806F588
-StopTryingToTeachMove_806F588: @ 806F588
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F5E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F5E0
- ldr r1, _0806F5EC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F5F0 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F5F4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F5F8 @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- ldr r0, _0806F5FC @ =gStringVar2
- ldr r1, _0806F600 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F604 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F608 @ =gStringVar4
- ldr r1, _0806F60C @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F610 @ =StopTryingToTeachMove_806F67C
- movs r1, 0x5
- bl CreateTask
-_0806F5E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F5E8: .4byte gPaletteFade
-_0806F5EC: .4byte gTasks
-_0806F5F0: .4byte TaskDummy
-_0806F5F4: .4byte gScriptItemId
-_0806F5F8: .4byte sub_808B508
-_0806F5FC: .4byte gStringVar2
-_0806F600: .4byte 0x0201c000
-_0806F604: .4byte gMoveNames
-_0806F608: .4byte gStringVar4
-_0806F60C: .4byte gOtherText_StopTryingTo
-_0806F610: .4byte StopTryingToTeachMove_806F67C
- thumb_func_end StopTryingToTeachMove_806F588
-
- thumb_func_start StopTryingToTeachMove_806F614
-StopTryingToTeachMove_806F614: @ 806F614
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F660 @ =gStringVar2
- ldr r1, _0806F664 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F668 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F66C @ =gStringVar4
- ldr r1, _0806F670 @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F674 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F678 @ =StopTryingToTeachMove_806F67C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F660: .4byte gStringVar2
-_0806F664: .4byte 0x0201c000
-_0806F668: .4byte gMoveNames
-_0806F66C: .4byte gStringVar4
-_0806F670: .4byte gOtherText_StopTryingTo
-_0806F674: .4byte gTasks
-_0806F678: .4byte StopTryingToTeachMove_806F67C
- thumb_func_end StopTryingToTeachMove_806F614
-
- thumb_func_start StopTryingToTeachMove_806F67C
-StopTryingToTeachMove_806F67C: @ 806F67C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F6A8 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F6A2
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F6AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F6B0 @ =StopTryingToTeachMove_806F6B4
- str r0, [r1]
-_0806F6A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F6A8: .4byte gUnknown_0202E8F6
-_0806F6AC: .4byte gTasks
-_0806F6B0: .4byte StopTryingToTeachMove_806F6B4
- thumb_func_end StopTryingToTeachMove_806F67C
-
- thumb_func_start StopTryingToTeachMove_806F6B4
-StopTryingToTeachMove_806F6B4: @ 806F6B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F730
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F710 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F714 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F718 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F71C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F720 @ =gStringVar4
- ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F728 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F72C @ =sub_806F2FC
- b _0806F78E
- .align 2, 0
-_0806F710: .4byte 0x0201c000
-_0806F714: .4byte gStringVar1
-_0806F718: .4byte gStringVar2
-_0806F71C: .4byte gMoveNames
-_0806F720: .4byte gStringVar4
-_0806F724: .4byte gOtherText_DidNotLearnMove2
-_0806F728: .4byte gTasks
-_0806F72C: .4byte sub_806F2FC
-_0806F730:
- cmp r1, 0x1
- beq _0806F73C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F790
-_0806F73C:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F74A
- movs r0, 0x5
- bl PlaySE
-_0806F74A:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F798 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F79C @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F7A0 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F7A4 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F7A8 @ =gStringVar4
- ldr r1, _0806F7AC @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F7B0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F7B4 @ =sub_806F358
-_0806F78E:
- str r1, [r0]
-_0806F790:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F798: .4byte 0x0201c000
-_0806F79C: .4byte gStringVar1
-_0806F7A0: .4byte gStringVar2
-_0806F7A4: .4byte gMoveNames
-_0806F7A8: .4byte gStringVar4
-_0806F7AC: .4byte gOtherText_WantsToLearn
-_0806F7B0: .4byte gTasks
-_0806F7B4: .4byte sub_806F358
- thumb_func_end StopTryingToTeachMove_806F6B4
-
- thumb_func_start IsHMMove
-IsHMMove: @ 806F7B8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, _0806F7D4 @ =gUnknown_08376504
-_0806F7C2:
- adds r0, r1, 0
- adds r0, 0x32
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0806F7D8
- movs r0, 0x1
- b _0806F7E4
- .align 2, 0
-_0806F7D4: .4byte gUnknown_08376504
-_0806F7D8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _0806F7C2
- movs r0, 0
-_0806F7E4:
- pop {r1}
- bx r1
- thumb_func_end IsHMMove
-
- thumb_func_start sub_806F7E8
-sub_806F7E8: @ 806F7E8
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, _0806F898 @ =gTasks + 0x8
- adds r3, r0
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- str r1, [r5]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- str r0, [r5, 0x4]
- movs r4, 0x18
- ldrsh r0, [r3, r4]
- lsls r2, 24
- asrs r2, 24
- muls r0, r2
- str r0, [r5, 0x8]
- movs r0, 0x80
- lsls r0, 1
- str r0, [r5, 0x10]
- ldr r6, _0806F89C @ =0x0201b000
- ldr r2, _0806F8A0 @ =0x00000282
- adds r0, r6, r2
- movs r4, 0
- ldrsh r0, [r0, r4]
- bl GetHPBarLevel
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r2, 0x2
- bls _0806F83E
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F83E:
- cmp r2, 0x2
- bne _0806F850
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x5
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F850:
- cmp r3, 0x1
- bhi _0806F862
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x6
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F862:
- ldr r4, _0806F8A4 @ =gUnknown_08376858
- bl IsDoubleBattle
- movs r2, 0x80
- lsls r2, 5
- adds r1, r6, r2
- ldrb r2, [r1, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r4
- ldr r2, [r2]
- ldr r4, _0806F8A8 @ =0x0000100c
- adds r1, r6, r4
- adds r0, r5, 0
- movs r3, 0
- bl sub_80460C8
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806F898: .4byte gTasks + 0x8
-_0806F89C: .4byte 0x0201b000
-_0806F8A0: .4byte 0x00000282
-_0806F8A4: .4byte gUnknown_08376858
-_0806F8A8: .4byte 0x0000100c
- thumb_func_end sub_806F7E8
-
- thumb_func_start sub_806F8AC
-sub_806F8AC: @ 806F8AC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- adds r0, r6, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_806F7E8
- ldr r1, _0806F8F4 @ =0x0201b000
- ldr r2, _0806F8F8 @ =0x00000282
- adds r5, r1, r2
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r4
- beq _0806F8D4
- b _0806F9F0
-_0806F8D4:
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0
- str r0, [r1, 0xC]
- ldr r0, [sp, 0x8]
- negs r3, r0
- ldr r2, [sp, 0x4]
- adds r0, r3, r2
- ldr r1, [sp]
- cmp r0, r1
- ble _0806F8FC
- subs r1, r2
- add r0, sp, 0x14
- strh r1, [r0]
- b _0806F900
- .align 2, 0
-_0806F8F4: .4byte 0x0201b000
-_0806F8F8: .4byte 0x00000282
-_0806F8FC:
- add r0, sp, 0x14
- strh r3, [r0]
-_0806F900:
- adds r5, r0, 0
- ldr r1, _0806F940 @ =gUnknown_02024BEC
- ldrh r0, [r5]
- negs r0, r0
- str r0, [r1]
- ldr r0, _0806F944 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _0806F948 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F94C @ =gStringVar2
- ldrh r1, [r5]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r2, _0806F950 @ =gTasks
- lsls r1, r6, 2
- adds r0, r1, r6
- lsls r0, 3
- adds r0, r2
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _0806F95C
- ldr r0, _0806F954 @ =gStringVar4
- ldr r1, _0806F958 @ =gOtherText_HPRestoredBy
- bl StringExpandPlaceholders
- b _0806F964
- .align 2, 0
-_0806F940: .4byte gUnknown_02024BEC
-_0806F944: .4byte 0x0201c000
-_0806F948: .4byte gStringVar1
-_0806F94C: .4byte gStringVar2
-_0806F950: .4byte gTasks
-_0806F954: .4byte gStringVar4
-_0806F958: .4byte gOtherText_HPRestoredBy
-_0806F95C:
- ldr r0, _0806F9D4 @ =gStringVar4
- ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth
- bl StringExpandPlaceholders
-_0806F964:
- ldr r4, _0806F9DC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl SetMonIconAnim
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0806F9E0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _0806F9E4 @ =0xfffff261
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _0806F9D4 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, [sp, 0x4]
- ldrh r0, [r5]
- adds r0, r1
- strh r0, [r5]
- ldr r0, [r4]
- movs r1, 0x39
- adds r2, r5, 0
- bl SetMonData
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- bl sub_8032638
- ldr r1, _0806F9E8 @ =gTasks
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F9EC @ =sub_806FB44
- str r1, [r0]
- b _0806FA10
- .align 2, 0
-_0806F9D4: .4byte gStringVar4
-_0806F9D8: .4byte gOtherText_RegainedHealth
-_0806F9DC: .4byte 0x0201c000
-_0806F9E0: .4byte gUnknown_083769A8
-_0806F9E4: .4byte 0xfffff261
-_0806F9E8: .4byte gTasks
-_0806F9EC: .4byte sub_806FB44
-_0806F9F0:
- movs r2, 0x80
- lsls r2, 5
- adds r0, r1, r2
- ldrb r4, [r0, 0x5]
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl PartyMenuDoPrintHP
-_0806FA10:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806F8AC
-
- thumb_func_start sub_806FA18
-sub_806FA18: @ 806FA18
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_806F7E8
- ldr r6, _0806FAC4 @ =0x0201b000
- ldr r1, _0806FAC8 @ =0x00000282
- adds r7, r6, r1
- strh r0, [r7]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0806FAE4
- movs r0, 0x1
- bl PlaySE
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- movs r0, 0
- str r0, [r4, 0xC]
- ldr r2, _0806FACC @ =gTasks
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r5, r3, r2
- ldrh r0, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r0, r1
- strh r0, [r5, 0x1E]
- ldr r0, [r4]
- adds r2, r3
- adds r2, 0x1E
- movs r1, 0x39
- bl SetMonData
- ldrb r0, [r4, 0x4]
- ldr r1, _0806FAD0 @ =0xfffe6000
- adds r6, r1
- ldrb r1, [r6, 0x1]
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl SetMonIconAnim
- ldr r2, _0806FAD4 @ =gSprites
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r4, 0x5]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806FAD8 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5, 0x1C]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5, 0x1E]
- ldr r0, _0806FADC @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r0, [r4, 0x10]
- str r0, [r4, 0x14]
- ldr r0, _0806FAE0 @ =sub_806F8AC
- str r0, [r5]
- ldrh r0, [r5, 0x1E]
- strh r0, [r7]
- b _0806FB04
- .align 2, 0
-_0806FAC4: .4byte 0x0201b000
-_0806FAC8: .4byte 0x00000282
-_0806FACC: .4byte gTasks
-_0806FAD0: .4byte 0xfffe6000
-_0806FAD4: .4byte gSprites
-_0806FAD8: .4byte gPlayerParty
-_0806FADC: .4byte 0xffff8000
-_0806FAE0: .4byte sub_806F8AC
-_0806FAE4:
- movs r1, 0x80
- lsls r1, 5
- adds r0, r6, r1
- ldrb r4, [r0, 0x5]
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r7]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl PartyMenuDoPrintHP
-_0806FB04:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806FA18
-
- thumb_func_start sub_806FB0C
-sub_806FB0C: @ 806FB0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB38 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB32
- ldr r3, _0806FB3C @ =gTasks
- ldr r2, _0806FB40 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x10]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB38: .4byte gUnknown_0202E8F6
-_0806FB3C: .4byte gTasks
-_0806FB40: .4byte 0x0201c000
- thumb_func_end sub_806FB0C
-
- thumb_func_start sub_806FB44
-sub_806FB44: @ 806FB44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB70 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB6A
- ldr r3, _0806FB74 @ =gTasks
- ldr r2, _0806FB78 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x14]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB70: .4byte gUnknown_0202E8F6
-_0806FB74: .4byte gTasks
-_0806FB78: .4byte 0x0201c000
- thumb_func_end sub_806FB44
-
- thumb_func_start IsHPRecoveryItem
-IsHPRecoveryItem: @ 806FB7C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0806FB90
- ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676
- b _0806FB9A
- .align 2, 0
-_0806FB8C: .4byte gSaveBlock1 + 0x3676
-_0806FB90:
- ldr r1, _0806FBA8 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0806FB9A:
- ldrb r1, [r0, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0806FBAC
- movs r0, 0
- b _0806FBAE
- .align 2, 0
-_0806FBA8: .4byte gItemEffectTable
-_0806FBAC:
- movs r0, 0x1
-_0806FBAE:
- pop {r1}
- bx r1
- thumb_func_end IsHPRecoveryItem
-
- thumb_func_start PartyMenuUpdateLevelOrStatus
-PartyMenuUpdateLevelOrStatus: @ 806FBB4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PartyMenuClearLevelStatusTilemap
- adds r0, r4, 0
- adds r1, r5, 0
- bl PartyMenuPrintMonLevelOrStatus
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuUpdateLevelOrStatus
-
- thumb_func_start GetMedicineItemEffectMessage
-GetMedicineItemEffectMessage: @ 806FBD0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0x12
- bls _0806FBE6
- b _0806FD7C
-_0806FBE6:
- lsls r0, 2
- ldr r1, _0806FBF0 @ =_0806FBF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806FBF0: .4byte _0806FBF4
- .align 2, 0
-_0806FBF4:
- .4byte _0806FC40
- .4byte _0806FC54
- .4byte _0806FC68
- .4byte _0806FC7C
- .4byte _0806FC90
- .4byte _0806FCA4
- .4byte _0806FCB8
- .4byte _0806FD7C
- .4byte _0806FCCC
- .4byte _0806FCF0
- .4byte _0806FCE0
- .4byte _0806FD20
- .4byte _0806FD30
- .4byte _0806FD10
- .4byte _0806FD00
- .4byte _0806FD7C
- .4byte _0806FD54
- .4byte _0806FD54
- .4byte _0806FD68
-_0806FC40:
- ldr r0, _0806FC4C @ =gStringVar4
- ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC4C: .4byte gStringVar4
-_0806FC50: .4byte gOtherText_CuredPoisoning
-_0806FC54:
- ldr r0, _0806FC60 @ =gStringVar4
- ldr r1, _0806FC64 @ =gOtherText_WokeUp
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC60: .4byte gStringVar4
-_0806FC64: .4byte gOtherText_WokeUp
-_0806FC68:
- ldr r0, _0806FC74 @ =gStringVar4
- ldr r1, _0806FC78 @ =gOtherText_BurnHealed
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC74: .4byte gStringVar4
-_0806FC78: .4byte gOtherText_BurnHealed
-_0806FC7C:
- ldr r0, _0806FC88 @ =gStringVar4
- ldr r1, _0806FC8C @ =gOtherText_ThawedOut
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC88: .4byte gStringVar4
-_0806FC8C: .4byte gOtherText_ThawedOut
-_0806FC90:
- ldr r0, _0806FC9C @ =gStringVar4
- ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC9C: .4byte gStringVar4
-_0806FCA0: .4byte gOtherText_CuredParalysis
-_0806FCA4:
- ldr r0, _0806FCB0 @ =gStringVar4
- ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCB0: .4byte gStringVar4
-_0806FCB4: .4byte gOtherText_SnapConfusion
-_0806FCB8:
- ldr r0, _0806FCC4 @ =gStringVar4
- ldr r1, _0806FCC8 @ =gOtherText_GotOverLove
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCC4: .4byte gStringVar4
-_0806FCC8: .4byte gOtherText_GotOverLove
-_0806FCCC:
- ldr r0, _0806FCD8 @ =gStringVar4
- ldr r1, _0806FCDC @ =gOtherText_BecameHealthy
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCD8: .4byte gStringVar4
-_0806FCDC: .4byte gOtherText_BecameHealthy
-_0806FCE0:
- ldr r0, _0806FCE8 @ =gStringVar2
- ldr r1, _0806FCEC @ =gOtherText_Hp2
- b _0806FD34
- .align 2, 0
-_0806FCE8: .4byte gStringVar2
-_0806FCEC: .4byte gOtherText_Hp2
-_0806FCF0:
- ldr r0, _0806FCF8 @ =gStringVar2
- ldr r1, _0806FCFC @ =gOtherText_Attack
- b _0806FD34
- .align 2, 0
-_0806FCF8: .4byte gStringVar2
-_0806FCFC: .4byte gOtherText_Attack
-_0806FD00:
- ldr r0, _0806FD08 @ =gStringVar2
- ldr r1, _0806FD0C @ =gOtherText_Defense
- b _0806FD34
- .align 2, 0
-_0806FD08: .4byte gStringVar2
-_0806FD0C: .4byte gOtherText_Defense
-_0806FD10:
- ldr r0, _0806FD18 @ =gStringVar2
- ldr r1, _0806FD1C @ =gOtherText_Speed
- b _0806FD34
- .align 2, 0
-_0806FD18: .4byte gStringVar2
-_0806FD1C: .4byte gOtherText_Speed
-_0806FD20:
- ldr r0, _0806FD28 @ =gStringVar2
- ldr r1, _0806FD2C @ =gOtherText_SpAtk2
- b _0806FD34
- .align 2, 0
-_0806FD28: .4byte gStringVar2
-_0806FD2C: .4byte gOtherText_SpAtk2
-_0806FD30:
- ldr r0, _0806FD44 @ =gStringVar2
- ldr r1, _0806FD48 @ =gOtherText_SpDef2
-_0806FD34:
- bl StringCopy
- ldr r0, _0806FD4C @ =gStringVar4
- ldr r1, _0806FD50 @ =gOtherText_WasRaised
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD44: .4byte gStringVar2
-_0806FD48: .4byte gOtherText_SpDef2
-_0806FD4C: .4byte gStringVar4
-_0806FD50: .4byte gOtherText_WasRaised
-_0806FD54:
- ldr r0, _0806FD60 @ =gStringVar4
- ldr r1, _0806FD64 @ =gOtherText_PPIncreased
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD60: .4byte gStringVar4
-_0806FD64: .4byte gOtherText_PPIncreased
-_0806FD68:
- ldr r0, _0806FD74 @ =gStringVar4
- ldr r1, _0806FD78 @ =gOtherText_PPRestored
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD74: .4byte gStringVar4
-_0806FD78: .4byte gOtherText_PPRestored
-_0806FD7C:
- ldr r0, _0806FD88 @ =gStringVar4
- ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect
- bl StringExpandPlaceholders
-_0806FD84:
- pop {r0}
- bx r0
- .align 2, 0
-_0806FD88: .4byte gStringVar4
-_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
- thumb_func_end GetMedicineItemEffectMessage
-
- thumb_func_start IsMedicineIneffective
-IsMedicineIneffective: @ 806FD90
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bne _0806FDBC
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0806FDB8 @ =0x0000012f
- cmp r0, r1
- bne _0806FDBC
- movs r0, 0x1
- b _0806FDBE
- .align 2, 0
-_0806FDB8: .4byte 0x0000012f
-_0806FDBC:
- movs r0, 0
-_0806FDBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsMedicineIneffective
-
- thumb_func_start ExecuteTableBasedItemEffect__
-ExecuteTableBasedItemEffect__: @ 806FDC4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _0806FDF0 @ =gMain
- ldr r1, _0806FDF4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806FDFC
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806FDF8 @ =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- adds r2, r3, 0
- b _0806FE16
- .align 2, 0
-_0806FDF0: .4byte gMain
-_0806FDF4: .4byte 0x0000043d
-_0806FDF8: .4byte gPlayerParty
-_0806FDFC:
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r0, _0806FE28 @ =gPlayerParty
- adds r4, r0
- adds r0, r3, 0
- bl sub_8094C20
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
-_0806FE16:
- adds r3, r6, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806FE28: .4byte gPlayerParty
- thumb_func_end ExecuteTableBasedItemEffect__
-
- thumb_func_start UseMedicine
-UseMedicine: @ 806FE2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0
- mov r9, r0
- ldr r1, _0806FED4 @ =gTasks
- mov r10, r1
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r10
- ldr r0, _0806FED8 @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r5, _0806FEDC @ =0x0201c000
- ldr r0, [r5]
- adds r1, r6, 0
- bl IsMedicineIneffective
- lsls r0, 24
- cmp r0, 0
- bne _0806FEE0
- adds r0, r6, 0
- bl IsHPRecoveryItem
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0x1
- bne _0806FEC2
- ldr r0, [r5]
- movs r1, 0x3A
- bl GetMonData
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- mov r2, r10
- adds r4, r1, r2
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x1E]
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _0806FEC2
- movs r0, 0
- mov r9, r0
- mov r1, r9
- strh r1, [r4, 0x1C]
- strh r1, [r4, 0x1E]
-_0806FEC2:
- ldr r0, _0806FEDC @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _0806FEE6
- .align 2, 0
-_0806FED4: .4byte gTasks
-_0806FED8: .4byte TaskDummy
-_0806FEDC: .4byte 0x0201c000
-_0806FEE0:
- movs r0, 0x1
- lsls r2, r7, 2
- mov r8, r2
-_0806FEE6:
- cmp r0, 0
- beq _0806FF14
- ldr r1, _0806FF08 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806FF10 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- b _08070002
- .align 2, 0
-_0806FF08: .4byte gUnknown_0202E8F4
-_0806FF0C: .4byte gOtherText_WontHaveAnyEffect
-_0806FF10: .4byte gTasks
-_0806FF14:
- ldr r1, _0806FF30 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FF34
- movs r0, 0x1
- bl PlaySE
- b _0806FF3A
- .align 2, 0
-_0806FF30: .4byte gUnknown_0202E8F4
-_0806FF34:
- movs r0, 0x75
- bl PlaySE
-_0806FF3A:
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- bl GetMonStatusAndPokerus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0806FF4E
- cmp r0, 0
- bne _0806FF56
-_0806FF4E:
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl PartyMenuUpdateLevelOrStatus
-_0806FF56:
- mov r0, r9
- cmp r0, 0x1
- bne _0806FFC8
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldr r2, _0806FF8C @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0x1E]
- subs r0, r1
- strh r0, [r2, 0x20]
- ldr r0, _0806FF90 @ =0xffff8000
- str r0, [r4, 0xC]
- movs r1, 0x1E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0806FF94
- mov r3, r9
- strh r3, [r2, 0x24]
- b _0806FF98
- .align 2, 0
-_0806FF88: .4byte 0x0201c000
-_0806FF8C: .4byte gTasks
-_0806FF90: .4byte 0xffff8000
-_0806FF94:
- movs r0, 0
- strh r0, [r2, 0x24]
-_0806FF98:
- ldr r2, _0806FFB8 @ =0x0201c000
- ldr r0, [r2, 0x10]
- str r0, [r2, 0x14]
- ldr r1, _0806FFBC @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806FFC0 @ =sub_806F8AC
- str r1, [r0]
- ldrh r0, [r0, 0x1E]
- ldr r1, _0806FFC4 @ =0xfffff282
- adds r2, r1
- strh r0, [r2]
- b _0807000A
- .align 2, 0
-_0806FFB8: .4byte 0x0201c000
-_0806FFBC: .4byte gTasks
-_0806FFC0: .4byte sub_806F8AC
-_0806FFC4: .4byte 0xfffff282
-_0806FFC8:
- ldr r4, _08070018 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0807001C @ =gStringVar1
- bl GetMonNickname
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FFE6
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806FFE6:
- adds r0, r6, 0
- bl GetMedicineItemEffectMessage
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl TryPrintPartyMenuMonNickname
- ldr r0, _08070020 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070024 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
-_08070002:
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070028 @ =sub_806FB0C
- str r1, [r0]
-_0807000A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070018: .4byte 0x0201c000
-_0807001C: .4byte gStringVar1
-_08070020: .4byte gStringVar4
-_08070024: .4byte gTasks
-_08070028: .4byte sub_806FB0C
- thumb_func_end UseMedicine
-
- thumb_func_start IsBlueYellowRedFlute
-IsBlueYellowRedFlute: @ 807002C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- beq _0807003E
- cmp r0, 0x29
- beq _0807003E
- cmp r0, 0x28
- bne _08070042
-_0807003E:
- movs r0, 0x1
- b _08070044
-_08070042:
- movs r0, 0
-_08070044:
- pop {r1}
- bx r1
- thumb_func_end IsBlueYellowRedFlute
-
- thumb_func_start sub_8070048
-sub_8070048: @ 8070048
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08070078 @ =0x0201c000
- str r2, [r3, 0x10]
- movs r4, 0
- strb r0, [r3, 0x4]
- movs r2, 0
- strh r1, [r3, 0x6]
- strb r2, [r3, 0x5]
- ldr r1, _0807007C @ =sub_80701DC
- str r1, [r3, 0x14]
- ldr r2, _08070080 @ =0xfffff27e
- adds r1, r3, r2
- strh r4, [r1]
- ldr r1, _08070084 @ =0xfffff280
- adds r3, r1
- strh r4, [r3]
- bl sub_8070088
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070078: .4byte 0x0201c000
-_0807007C: .4byte sub_80701DC
-_08070080: .4byte 0xfffff27e
-_08070084: .4byte 0xfffff280
- thumb_func_end sub_8070048
-
- thumb_func_start sub_8070088
-sub_8070088: @ 8070088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08070120 @ =gTasks
- mov r10, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r2, r10
- adds r7, r1, r2
- ldr r5, _08070124 @ =TaskDummy
- str r5, [r7]
- ldr r4, _08070128 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- movs r1, 0x64
- mov r9, r1
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _0807012C @ =gPlayerParty
- mov r8, r1
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08070118
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- str r0, [sp]
- mov r0, r10
- adds r0, 0x8
- ldr r2, [sp]
- adds r6, r2, r0
- ldrb r0, [r4, 0x5]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x14]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x16]
- ldrb r0, [r4, 0x5]
- ldrh r1, [r4, 0x6]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070134
- adds r0, r5, 0
- bl DestroyTask
-_08070118:
- ldr r0, _08070130 @ =sub_80701DC
- str r0, [r7]
- b _080701B0
- .align 2, 0
-_08070120: .4byte gTasks
-_08070124: .4byte TaskDummy
-_08070128: .4byte 0x0201c000
-_0807012C: .4byte gPlayerParty
-_08070130: .4byte sub_80701DC
-_08070134:
- ldr r1, _080701C0 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl PlaySE
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl PartyMenuUpdateLevelOrStatus
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _080701C4 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x9
- bl task_pc_turn_off
- ldr r2, _080701C8 @ =0xfffff261
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldrh r1, [r6, 0x16]
- subs r0, r1
- strh r0, [r6, 0x18]
- movs r0, 0x1
- strh r0, [r6, 0x1C]
- ldr r1, _080701CC @ =0xfffff27e
- adds r0, r4, r1
- movs r1, 0x1
- strh r1, [r0]
- ldr r2, _080701D0 @ =0xfffff280
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r6, 0x16]
- adds r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080701D4 @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r1, [sp]
- add r1, r10
- ldr r0, _080701D8 @ =sub_806F8AC
- str r0, [r1]
-_080701B0:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080701C0: .4byte gUnknown_0202E8F4
-_080701C4: .4byte gUnknown_083769A8
-_080701C8: .4byte 0xfffff261
-_080701CC: .4byte 0xfffff27e
-_080701D0: .4byte 0xfffff280
-_080701D4: .4byte 0xffff8000
-_080701D8: .4byte sub_806F8AC
- thumb_func_end sub_8070088
-
- thumb_func_start sub_80701DC
-sub_80701DC: @ 80701DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08070280 @ =0x0201b000
- ldr r0, _08070284 @ =0x0000027e
- adds r7, r6, r0
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _0807023E
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070288 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0807023A
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0807028C @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x3
- bl task_pc_turn_off
- ldr r0, _08070290 @ =0x00000261
- adds r1, r6, r0
- movs r0, 0x2
- strb r0, [r1]
-_0807023A:
- movs r0, 0
- strh r0, [r7]
-_0807023E:
- ldr r4, _08070294 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- adds r0, 0x1
- strb r0, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080702D8
- ldr r1, _08070298 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0807029C @ =0xfffff280
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080702B0
- ldr r1, _080702A0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080702A4 @ =TaskDummy
- str r1, [r0]
- ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _080702AC @ =sub_806FB0C
- movs r1, 0x8
- bl CreateTask
- b _080702C6
- .align 2, 0
-_08070280: .4byte 0x0201b000
-_08070284: .4byte 0x0000027e
-_08070288: .4byte gPlayerParty
-_0807028C: .4byte gUnknown_083769A8
-_08070290: .4byte 0x00000261
-_08070294: .4byte 0x0201c000
-_08070298: .4byte gUnknown_0202E8F4
-_0807029C: .4byte 0xfffff280
-_080702A0: .4byte gTasks
-_080702A4: .4byte TaskDummy
-_080702A8: .4byte gOtherText_WontHaveAnyEffect
-_080702AC: .4byte sub_806FB0C
-_080702B0:
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, _080702D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, [r4, 0x10]
- str r1, [r0]
-_080702C6:
- ldr r1, _080702D4 @ =gUnknown_03005CE0
- movs r0, 0
- strb r0, [r1]
- b _080702DE
- .align 2, 0
-_080702D0: .4byte gTasks
-_080702D4: .4byte gUnknown_03005CE0
-_080702D8:
- adds r0, r5, 0
- bl sub_8070088
-_080702DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80701DC
-
- thumb_func_start CreateItemUseMoveMenu
-CreateItemUseMoveMenu: @ 80702E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- movs r0, 0x64
- adds r7, r4, 0
- muls r7, r0
- ldr r0, _0807036C @ =gPlayerParty
- mov r8, r0
-_0807030C:
- adds r1, r5, 0
- adds r1, 0xD
- mov r2, r8
- adds r0, r7, r2
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xD
- muls r0, r4
- ldr r1, _08070370 @ =gMoveNames
- adds r0, r1
- lsls r2, r5, 25
- movs r1, 0xB0
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x14
- bl MenuPrint
- cmp r4, 0
- beq _08070340
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08070340:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0807030C
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- movs r2, 0xB
- adds r3, r6, 0
- bl InitMenu
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807036C: .4byte gPlayerParty
-_08070370: .4byte gMoveNames
- thumb_func_end CreateItemUseMoveMenu
-
- thumb_func_start Task_HandleItemUseMoveMenuInput
-Task_HandleItemUseMoveMenuInput: @ 8070374
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _08070398 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807039C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080703E4
- .align 2, 0
-_08070398: .4byte gMain
-_0807039C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080703B2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080703E4
-_080703B2:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080703CC
- ldr r0, _080703C8 @ =gUnknown_08376B54
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- b _080703E4
- .align 2, 0
-_080703C8: .4byte gUnknown_08376B54
-_080703CC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080703E4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080703EC @ =gUnknown_08376B54
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_080703E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080703EC: .4byte gUnknown_08376B54
- thumb_func_end Task_HandleItemUseMoveMenuInput
-
- thumb_func_start DoPPRecoveryItemEffect
-DoPPRecoveryItemEffect: @ 80703F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r5, 0xAF
- bne _08070410
- ldr r0, _0807040C @ =gSaveBlock1 + 0x3676
- b _0807041C
- .align 2, 0
-_0807040C: .4byte gSaveBlock1 + 0x3676
-_08070410:
- ldr r1, _08070464 @ =gItemEffectTable
- adds r0, r5, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0807041C:
- mov r8, r0
- ldr r7, _08070468 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r7
- ldr r0, _0807046C @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r9
- bl sub_806E8D0
- mov r0, r8
- ldrb r1, [r0, 0x4]
- movs r0, 0x10
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08070470
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- strh r1, [r0, 0x1E]
- adds r0, r4, 0
- bl DoRecoverPP
- b _08070498
- .align 2, 0
-_08070464: .4byte gItemEffectTable
-_08070468: .4byte gTasks
-_0807046C: .4byte TaskDummy
-_08070470:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _080704A4 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl CreateItemUseMoveMenu
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- ldr r1, _080704A8 @ =Task_HandleItemUseMoveMenuInput
- str r1, [r0]
- ldr r1, _080704AC @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
-_08070498:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080704A4: .4byte 0x0201c000
-_080704A8: .4byte Task_HandleItemUseMoveMenuInput
-_080704AC: .4byte gMain
- thumb_func_end DoPPRecoveryItemEffect
-
- thumb_func_start ItemUseMoveMenu_HandleMoveSelection
-ItemUseMoveMenu_HandleMoveSelection: @ 80704B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- bl GetMenuCursorPos
- ldr r2, _080704EC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x1E]
- adds r0, r4, 0
- bl DoRecoverPP
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080704EC: .4byte gTasks
- thumb_func_end ItemUseMoveMenu_HandleMoveSelection
-
- thumb_func_start ItemUseMoveMenu_HandleCancel
-ItemUseMoveMenu_HandleCancel: @ 80704F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08070528 @ =gMain
- ldr r1, _0807052C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0807053C
- ldr r2, _08070530 @ =gTasks
- ldr r0, _08070534 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08070538 @ =sub_8095118
- b _0807054C
- .align 2, 0
-_08070528: .4byte gMain
-_0807052C: .4byte 0x0000043d
-_08070530: .4byte gTasks
-_08070534: .4byte 0x0201c000
-_08070538: .4byte sub_8095118
-_0807053C:
- ldr r2, _08070564 @ =gTasks
- ldr r0, _08070568 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0807056C @ =sub_808B0C0
-_0807054C:
- str r1, [r0]
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070564: .4byte gTasks
-_08070568: .4byte 0x0201c000
-_0807056C: .4byte sub_808B0C0
- thumb_func_end ItemUseMoveMenu_HandleCancel
-
- thumb_func_start DoRecoverPP
-DoRecoverPP: @ 8070570
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r6, _080705A8 @ =0x0201c000
- ldrb r0, [r6, 0x5]
- ldrh r1, [r6, 0x6]
- ldr r3, _080705AC @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r7, r2, r3
- ldrb r2, [r7, 0x1E]
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _080705B8
- ldr r0, _080705B0 @ =gUnknown_0202E8F4
- strb r5, [r0]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- b _080705F8
- .align 2, 0
-_080705A8: .4byte 0x0201c000
-_080705AC: .4byte gTasks
-_080705B0: .4byte gUnknown_0202E8F4
-_080705B4: .4byte gOtherText_WontHaveAnyEffect
-_080705B8:
- ldr r1, _0807060C @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl PlaySE
- ldrh r0, [r6, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r6]
- movs r2, 0x1E
- ldrsh r1, [r7, r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08070610 @ =gStringVar1
- movs r1, 0xD
- muls r1, r5
- ldr r2, _08070614 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldrh r0, [r6, 0x6]
- bl GetMedicineItemEffectMessage
- ldr r0, _08070618 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
-_080705F8:
- ldr r0, _0807061C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070620 @ =sub_806FB0C
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807060C: .4byte gUnknown_0202E8F4
-_08070610: .4byte gStringVar1
-_08070614: .4byte gMoveNames
-_08070618: .4byte gStringVar4
-_0807061C: .4byte gTasks
-_08070620: .4byte sub_806FB0C
- thumb_func_end DoRecoverPP
-
- thumb_func_start DoPPUpItemEffect
-DoPPUpItemEffect: @ 8070624
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0807066C @ =gTasks
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r4
- ldr r4, _08070670 @ =TaskDummy
- str r4, [r3]
- bl sub_806E8D0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _08070674 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl CreateItemUseMoveMenu
- ldr r0, _08070678 @ =Task_HandleItemUseMoveMenuInput
- movs r1, 0x5
- bl CreateTask
- ldr r1, _0807067C @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807066C: .4byte gTasks
-_08070670: .4byte TaskDummy
-_08070674: .4byte 0x0201c000
-_08070678: .4byte Task_HandleItemUseMoveMenuInput
-_0807067C: .4byte gMain
- thumb_func_end DoPPUpItemEffect
-
- thumb_func_start DoRareCandyItemEffect
-DoRareCandyItemEffect: @ 8070680
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r3, _080706E0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _080706E4 @ =TaskDummy
- str r3, [r1]
- adds r1, r6, 0
- bl sub_806E8D0
- ldr r5, _080706E8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080706F4
- movs r4, 0
- ldr r0, _080706EC @ =0xfffff264
- adds r7, r5, r0
-_080706B2:
- ldr r0, [r5]
- ldr r1, _080706F0 @ =gUnknown_08376D1C
- adds r1, r4, r1
- ldrb r1, [r1]
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r7, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _080706B2
- ldr r0, _080706E8 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _080706F6
- .align 2, 0
-_080706E0: .4byte gTasks
-_080706E4: .4byte TaskDummy
-_080706E8: .4byte 0x0201c000
-_080706EC: .4byte 0xfffff264
-_080706F0: .4byte gUnknown_08376D1C
-_080706F4:
- movs r0, 0x1
-_080706F6:
- cmp r0, 0
- beq _08070724
- ldr r1, _08070718 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070720 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _0807077C
- .align 2, 0
-_08070718: .4byte gUnknown_0202E8F4
-_0807071C: .4byte gOtherText_WontHaveAnyEffect
-_08070720: .4byte sub_806FB0C
-_08070724:
- ldr r1, _08070784 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl PlayFanfareByFanfareNum
- ldr r4, _08070788 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_8070A20
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r4]
- ldr r1, _0807078C @ =gStringVar1
- bl GetMonNickname
- ldr r0, [r4]
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070790 @ =gStringVar2
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08070794 @ =gStringVar4
- ldr r1, _08070798 @ =gOtherText_ElevatedTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0807079C @ =Task_RareCandy1
- movs r1, 0x5
- bl CreateTask
-_0807077C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070784: .4byte gUnknown_0202E8F4
-_08070788: .4byte 0x0201c000
-_0807078C: .4byte gStringVar1
-_08070790: .4byte gStringVar2
-_08070794: .4byte gStringVar4
-_08070798: .4byte gOtherText_ElevatedTo
-_0807079C: .4byte Task_RareCandy1
- thumb_func_end DoRareCandyItemEffect
-
- thumb_func_start Task_RareCandy1
-Task_RareCandy1: @ 80707A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _080707E8
- ldr r0, _080707F0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080707E8
- ldr r0, _080707F4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080707CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080707E8
-_080707CE:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070848
- ldr r0, _080707F8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080707FC @ =Task_RareCandy2
- str r0, [r1]
-_080707E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080707F0: .4byte gUnknown_0202E8F6
-_080707F4: .4byte gMain
-_080707F8: .4byte gTasks
-_080707FC: .4byte Task_RareCandy2
- thumb_func_end Task_RareCandy1
-
- thumb_func_start Task_RareCandy2
-Task_RareCandy2: @ 8070800
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807083C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807081A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08070834
-_0807081A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070968
- ldr r0, _08070840 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070844 @ =Task_RareCandy3
- str r0, [r1]
-_08070834:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807083C: .4byte gMain
-_08070840: .4byte gTasks
-_08070844: .4byte Task_RareCandy3
- thumb_func_end Task_RareCandy2
-
- thumb_func_start sub_8070848
-sub_8070848: @ 8070848
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuDrawTextWindow
- movs r7, 0
- ldr r0, _080708E4 @ =gStringVar1
- mov r10, r0
-_08070864:
- ldr r1, _080708E8 @ =0x0201c000
- ldr r0, [r1]
- ldr r1, _080708EC @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r7, 0x6
- lsls r1, 1
- ldr r2, _080708F0 @ =0x0201b264
- adds r1, r2
- strh r0, [r1]
- lsls r4, r7, 1
- adds r2, r4, r2
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- adds r1, 0xB
- lsls r1, 24
- lsrs r6, r1, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080708F4 @ =gUnknown_08376D04
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- adds r1, r6, 0x1
- lsls r1, 27
- lsrs r1, 24
- mov r2, r9
- lsls r5, r2, 3
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- mov r8, r4
- cmp r7, 0x2
- bne _080708FC
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080708F8 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- b _08070910
- .align 2, 0
-_080708E4: .4byte gStringVar1
-_080708E8: .4byte 0x0201c000
-_080708EC: .4byte gUnknown_08376D1C
-_080708F0: .4byte 0x0201b264
-_080708F4: .4byte gUnknown_08376D04
-_080708F8: .4byte gOtherText_TallPlusAndRightArrow
-_080708FC:
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070960 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_08070910:
- movs r0, 0xFC
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- ldr r0, _08070964 @ =0x0201b264
- add r0, r8
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r0, r10
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r1, r4, 27
- movs r0, 0xC0
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- mov r0, r9
- lsls r2, r0, 3
- mov r0, r10
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070864
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070960: .4byte gOtherText_TallPlusAndRightArrow
-_08070964: .4byte 0x0201b264
- thumb_func_end sub_8070848
-
- thumb_func_start sub_8070968
-sub_8070968: @ 8070968
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- ldr r0, _08070A10 @ =0x0201c000
- mov r9, r0
- ldr r1, _08070A14 @ =0xfffff264
- add r1, r9
- mov r10, r1
- ldr r0, _08070A18 @ =gStringVar1
- mov r8, r0
-_08070982:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, _08070A1C @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r6, r7, 0x6
- lsls r6, 1
- add r6, r10
- strh r0, [r6]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- adds r4, 0xB
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 1
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- movs r0, 0
- ldrsh r1, [r6, r0]
- mov r0, r8
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, 0x6
- lsls r4, 3
- adds r4, 0x6
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 3
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070982
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070A10: .4byte 0x0201c000
-_08070A14: .4byte 0xfffff264
-_08070A18: .4byte gStringVar1
-_08070A1C: .4byte gUnknown_08376D1C
- thumb_func_end sub_8070968
-
- thumb_func_start sub_8070A20
-sub_8070A20: @ 8070A20
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08070A3A
- cmp r0, 0x6
- bne _08070A42
-_08070A3A:
- adds r0, r6, 0
- adds r1, r7, 0
- bl PartyMenuUpdateLevelOrStatus
-_08070A42:
- bl IsDoubleBattle
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl PartyMenuDoPrintHP
- adds r0, r7, 0
- adds r1, r6, 0
- bl PartyMenuTryDrawHPBar
- ldr r4, _08070ABC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- adds r1, r7, 0
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- bl SetMonIconAnim
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- lsls r1, r7, 1
- adds r0, r1
- ldr r1, _08070AC0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _08070AC4 @ =0xfffff261
- adds r4, r0
- movs r0, 0x2
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070ABC: .4byte 0x0201c000
-_08070AC0: .4byte gUnknown_083769A8
-_08070AC4: .4byte 0xfffff261
- thumb_func_end sub_8070A20
-
- thumb_func_start Task_RareCandy3
-Task_RareCandy3: @ 8070AC8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- bne _08070ADC
- b _08070C2C
-_08070ADC:
- ldr r0, _08070B24 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- b _08070C2C
-_08070AF4:
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuZeroFillWindowRect
- ldr r7, _08070B28 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08070B2C @ =0xfffff282
- adds r0, r7, r1
- strh r5, [r0]
- ldr r0, _08070B30 @ =0x0000fffe
- cmp r4, r0
- beq _08070BDC
- cmp r4, r0
- bgt _08070B34
- cmp r4, 0
- beq _08070B40
- b _08070BF4
- .align 2, 0
-_08070B24: .4byte gMain
-_08070B28: .4byte 0x0201c000
-_08070B2C: .4byte 0xfffff282
-_08070B30: .4byte 0x0000fffe
-_08070B34:
- ldr r0, _08070B3C @ =0x0000ffff
- cmp r4, r0
- beq _08070B7C
- b _08070BF4
- .align 2, 0
-_08070B3C: .4byte 0x0000ffff
-_08070B40:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070B74
- ldr r1, _08070B6C @ =gUnknown_03005E94
- ldr r0, _08070B70 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070C2C
- .align 2, 0
-_08070B6C: .4byte gUnknown_03005E94
-_08070B70: .4byte sub_80A53F8
-_08070B74:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070C2C
-_08070B7C:
- ldr r0, [r7]
- ldr r1, _08070BBC @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070BC0 @ =gStringVar2
- ldr r5, _08070BC4 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070BC8 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070BCC @ =gStringVar4
- ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070BD4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070BD8 @ =sub_806F358
- b _08070C2A
- .align 2, 0
-_08070BBC: .4byte gStringVar1
-_08070BC0: .4byte gStringVar2
-_08070BC4: .4byte word_2024E82
-_08070BC8: .4byte gMoveNames
-_08070BCC: .4byte gStringVar4
-_08070BD0: .4byte gOtherText_WantsToLearn
-_08070BD4: .4byte gTasks
-_08070BD8: .4byte sub_806F358
-_08070BDC:
- ldr r0, _08070BEC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070BF0 @ =sub_8070C54
- str r0, [r1]
- b _08070C2C
- .align 2, 0
-_08070BEC: .4byte gTasks
-_08070BF0: .4byte sub_8070C54
-_08070BF4:
- ldr r0, _08070C34 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070C38 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070C3C @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070C40 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070C44 @ =gStringVar4
- ldr r1, _08070C48 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070C4C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070C50 @ =Task_TeamMonTMMove3
-_08070C2A:
- str r1, [r0]
-_08070C2C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070C34: .4byte 0x0201c000
-_08070C38: .4byte gStringVar1
-_08070C3C: .4byte gStringVar2
-_08070C40: .4byte gMoveNames
-_08070C44: .4byte gStringVar4
-_08070C48: .4byte gOtherText_LearnedMove
-_08070C4C: .4byte gTasks
-_08070C50: .4byte Task_TeamMonTMMove3
- thumb_func_end Task_RareCandy3
-
- thumb_func_start sub_8070C54
-sub_8070C54: @ 8070C54
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08070C78 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08070C7C @ =0x0000fffe
- cmp r4, r0
- beq _08070D28
- cmp r4, r0
- bgt _08070C80
- cmp r4, 0
- beq _08070C8C
- b _08070D30
- .align 2, 0
-_08070C78: .4byte 0x0201c000
-_08070C7C: .4byte 0x0000fffe
-_08070C80:
- ldr r0, _08070C88 @ =0x0000ffff
- cmp r4, r0
- beq _08070CC8
- b _08070D30
- .align 2, 0
-_08070C88: .4byte 0x0000ffff
-_08070C8C:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070CC0
- ldr r1, _08070CB8 @ =gUnknown_03005E94
- ldr r0, _08070CBC @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070D68
- .align 2, 0
-_08070CB8: .4byte gUnknown_03005E94
-_08070CBC: .4byte sub_80A53F8
-_08070CC0:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070D68
-_08070CC8:
- ldr r0, [r7]
- ldr r1, _08070D08 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D0C @ =gStringVar2
- ldr r5, _08070D10 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070D14 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D18 @ =gStringVar4
- ldr r1, _08070D1C @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070D20 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D24 @ =sub_806F358
- b _08070D66
- .align 2, 0
-_08070D08: .4byte gStringVar1
-_08070D0C: .4byte gStringVar2
-_08070D10: .4byte word_2024E82
-_08070D14: .4byte gMoveNames
-_08070D18: .4byte gStringVar4
-_08070D1C: .4byte gOtherText_WantsToLearn
-_08070D20: .4byte gTasks
-_08070D24: .4byte sub_806F358
-_08070D28:
- adds r0, r6, 0
- bl sub_8070C54
- b _08070D68
-_08070D30:
- ldr r0, _08070D70 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070D74 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D78 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070D7C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D80 @ =gStringVar4
- ldr r1, _08070D84 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070D88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D8C @ =Task_TeamMonTMMove3
-_08070D66:
- str r1, [r0]
-_08070D68:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070D70: .4byte 0x0201c000
-_08070D74: .4byte gStringVar1
-_08070D78: .4byte gStringVar2
-_08070D7C: .4byte gMoveNames
-_08070D80: .4byte gStringVar4
-_08070D84: .4byte gOtherText_LearnedMove
-_08070D88: .4byte gTasks
-_08070D8C: .4byte Task_TeamMonTMMove3
- thumb_func_end sub_8070C54
-
- thumb_func_start sub_8070D90
-sub_8070D90: @ 8070D90
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08070DB4 @ =gTasks
- ldr r3, _08070DB8 @ =0x0201c000
- ldrb r2, [r3, 0x4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r4
- ldr r2, [r3, 0x10]
- str r2, [r1]
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070DB4: .4byte gTasks
-_08070DB8: .4byte 0x0201c000
- thumb_func_end sub_8070D90
-
- thumb_func_start DoEvolutionStoneItemEffect
-DoEvolutionStoneItemEffect: @ 8070DBC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08070E18 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070E1C @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r1, _08070E20 @ =gUnknown_03005E94
- ldr r0, _08070E24 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, _08070E28 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070E38
- ldr r1, _08070E2C @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070E34 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _08070E40
- .align 2, 0
-_08070E18: .4byte gTasks
-_08070E1C: .4byte TaskDummy
-_08070E20: .4byte gUnknown_03005E94
-_08070E24: .4byte sub_80A53F8
-_08070E28: .4byte 0x0201c000
-_08070E2C: .4byte gUnknown_0202E8F4
-_08070E30: .4byte gOtherText_WontHaveAnyEffect
-_08070E34: .4byte sub_806FB0C
-_08070E38:
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_08070E40:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end DoEvolutionStoneItemEffect
-
- thumb_func_start GetItemEffectType
-GetItemEffectType: @ 8070E48
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08070E5C
- ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
- b _08070E66
- .align 2, 0
-_08070E58: .4byte gSaveBlock1 + 0x3676
-_08070E5C:
- ldr r1, _08070E8C @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
-_08070E66:
- ldrb r1, [r4]
- movs r5, 0x3F
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _08070E88
- ldrb r3, [r4, 0x3]
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _08070E90
-_08070E88:
- movs r0, 0
- b _08070F8A
- .align 2, 0
-_08070E8C: .4byte gItemEffectTable
-_08070E90:
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08070E9E
- movs r0, 0xA
- b _08070F8A
-_08070E9E:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08070EAA
- movs r0, 0x1
- b _08070F8A
-_08070EAA:
- adds r2, r5, 0
- ands r2, r3
- cmp r2, 0
- bne _08070EB8
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EFA
-_08070EB8:
- cmp r2, 0x20
- bne _08070EC0
- movs r0, 0x4
- b _08070F8A
-_08070EC0:
- cmp r2, 0x10
- bne _08070EC8
- movs r0, 0x3
- b _08070F8A
-_08070EC8:
- cmp r2, 0x8
- bne _08070ED0
- movs r0, 0x5
- b _08070F8A
-_08070ED0:
- cmp r2, 0x4
- bne _08070ED8
- movs r0, 0x6
- b _08070F8A
-_08070ED8:
- cmp r2, 0x2
- bne _08070EE0
- movs r0, 0x7
- b _08070F8A
-_08070EE0:
- cmp r2, 0x1
- bne _08070EE8
- movs r0, 0x8
- b _08070F8A
-_08070EE8:
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EF6
- cmp r2, 0
- bne _08070EF6
- movs r0, 0x9
- b _08070F8A
-_08070EF6:
- movs r0, 0xB
- b _08070F8A
-_08070EFA:
- ldrb r1, [r4, 0x4]
- movs r0, 0x44
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- beq _08070F0A
- movs r0, 0x2
- b _08070F8A
-_08070F0A:
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F18
- movs r0, 0xC
- b _08070F8A
-_08070F18:
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F26
- movs r0, 0xD
- b _08070F8A
-_08070F26:
- ldrb r1, [r4, 0x5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08070F34
- movs r0, 0xE
- b _08070F8A
-_08070F34:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08070F40
- movs r0, 0xF
- b _08070F8A
-_08070F40:
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F4C
- movs r0, 0x10
- b _08070F8A
-_08070F4C:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F58
- movs r0, 0x11
- b _08070F8A
-_08070F58:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08070F64
- movs r0, 0x12
- b _08070F8A
-_08070F64:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08070F70
- movs r0, 0x13
- b _08070F8A
-_08070F70:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08070F7C
- movs r0, 0x14
- b _08070F8A
-_08070F7C:
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _08070F88
- movs r0, 0x16
- b _08070F8A
-_08070F88:
- movs r0, 0x15
-_08070F8A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetItemEffectType
-
- thumb_func_start unref_sub_8070F90
-unref_sub_8070F90: @ 8070F90
- push {lr}
- ldr r0, _08070FAC @ =0x00000801
- bl FlagSet
- movs r0, 0x80
- lsls r0, 4
- bl FlagSet
- ldr r0, _08070FB0 @ =0x00000802
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08070FAC: .4byte 0x00000801
-_08070FB0: .4byte 0x00000802
- thumb_func_end unref_sub_8070F90
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 2d2489b74..d4576388d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -90,7 +90,6 @@ SECTIONS {
asm/rom_806936C.o(.text);
asm/reset_rtc_screen.o(.text);
asm/party_menu.o(.text);
- asm/rom_806D7F8.o(.text);
src/start_menu.o(.text);
src/menu.o(.text);
src/tileset_anim.o(.text);