summaryrefslogtreecommitdiff
path: root/asm/party_menu.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/party_menu.s')
-rw-r--r--asm/party_menu.s3064
1 files changed, 2994 insertions, 70 deletions
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 8f1d9d5b7..8a7c153b9 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -71,7 +71,7 @@ sub_806AF4C: @ 806AF4C
lsrs r3, 24
cmp r1, 0xFF
beq _0806AF64
- ldr r0, _0806AF84 @ =gUnknown_020239F8
+ ldr r0, _0806AF84 @ =gBattleTypeFlags
strh r1, [r0]
_0806AF64:
ldr r0, _0806AF88 @ =0x0201b000
@@ -90,7 +90,7 @@ _0806AF64:
pop {r0}
bx r0
.align 2, 0
-_0806AF84: .4byte gUnknown_020239F8
+_0806AF84: .4byte gBattleTypeFlags
_0806AF88: .4byte 0x0201b000
thumb_func_end sub_806AF4C
@@ -185,7 +185,7 @@ _0806B020:
muls r2, r3
ldr r3, _0806B050 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _0806B114
.align 2, 0
_0806B048: .4byte 0x00000266
@@ -199,14 +199,14 @@ _0806B054:
adds r1, r4, r0
b _0806B0E0
_0806B060:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _0806B0D8
_0806B066:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -233,10 +233,10 @@ _0806B07A:
.align 2, 0
_0806B0A0: .4byte 0x00000266
_0806B0A4:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _0806B0D8
_0806B0AA:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _0806B0B8 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -245,7 +245,7 @@ _0806B0AA:
.align 2, 0
_0806B0B8: .4byte 0x0201b000
_0806B0BC:
- bl sub_806E53C
+ bl PartyMenuTryPrintMonsHP
b _0806B0D8
_0806B0C2:
bl nullsub_13
@@ -257,7 +257,7 @@ _0806B0C2:
.align 2, 0
_0806B0D0: .4byte 0x0201b000
_0806B0D4:
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
_0806B0D8:
ldr r1, _0806B0E8 @ =0x0201b000
movs r2, 0x99
@@ -774,10 +774,10 @@ _0806B520: .4byte REG_BG3VOFS
_0806B524: .4byte 0x0000ffff
thumb_func_end sub_806B4A8
- thumb_func_start sub_806B528
-sub_806B528: @ 806B528
+ thumb_func_start IsLinkDoubleBattle
+IsLinkDoubleBattle: @ 806B528
push {lr}
- ldr r0, _0806B53C @ =gUnknown_020239F8
+ ldr r0, _0806B53C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x4B
ands r0, r1
@@ -786,13 +786,13 @@ sub_806B528: @ 806B528
movs r0, 0
b _0806B542
.align 2, 0
-_0806B53C: .4byte gUnknown_020239F8
+_0806B53C: .4byte gBattleTypeFlags
_0806B540:
movs r0, 0x1
_0806B542:
pop {r1}
bx r1
- thumb_func_end sub_806B528
+ thumb_func_end IsLinkDoubleBattle
thumb_func_start sub_806B548
sub_806B548: @ 806B548
@@ -833,7 +833,7 @@ sub_806B58C: @ 806B58C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -844,7 +844,7 @@ sub_806B58C: @ 806B58C
.align 2, 0
_0806B5A4: .4byte gUnknown_0202E8FA
_0806B5A8:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -909,7 +909,7 @@ _0806B628:
movs r1, 0
b _0806B8A8
_0806B638:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B666
@@ -932,7 +932,7 @@ _0806B660:
ldrb r1, [r4, 0x3]
b _0806B8BC
_0806B666:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -954,7 +954,7 @@ _0806B684:
movs r1, 0x1
b _0806B8A8
_0806B694:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B6C2
@@ -977,7 +977,7 @@ _0806B6BC:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B6C2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1021,7 +1021,7 @@ _0806B714:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B71A:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B74A
@@ -1044,7 +1044,7 @@ _0806B744:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B74A:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1088,7 +1088,7 @@ _0806B79C:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B7A2:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B7D2
@@ -1112,7 +1112,7 @@ _0806B7CC:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B7D2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1159,7 +1159,7 @@ _0806B82C:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B832:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B84C
@@ -1171,7 +1171,7 @@ _0806B832:
.align 2, 0
_0806B848: .4byte gPlayerPartyCount
_0806B84C:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1714,7 +1714,7 @@ sub_806BC3C: @ 806BC3C
lsls r5, 24
lsrs r5, 24
ldr r6, _0806BCB0 @ =gUnknown_08376918
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, 2
lsls r0, 24
lsrs r0, 24
@@ -1861,7 +1861,7 @@ sub_806BD58: @ 806BD58
lsls r4, 24
lsrs r4, 24
ldr r0, _0806BD7C @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2176,8 +2176,8 @@ sub_806BF74: @ 806BF74
mov r0, r9
adds r1, r5, 0
movs r2, 0
- bl sub_806DA44
- bl sub_806B528
+ bl UpdateMonIconFrame_806DA44
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2328,7 +2328,7 @@ _0806C0CC: .4byte 0x0201b000
_0806C0D0: .4byte 0x00000261
_0806C0D4: .4byte gUnknown_083768B8
_0806C0D8:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r7, r0, 24
cmp r5, 0x5
@@ -2436,7 +2436,7 @@ _0806C1A4:
lsrs r1, 24
mov r0, r9
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r5, r0
@@ -3082,7 +3082,7 @@ sub_806C658: @ 806C658
mov r0, r8
adds r1, r6, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r6, 0x5
bhi _0806C6A8
lsls r0, r6, 1
@@ -3321,7 +3321,7 @@ _0806C84A:
lsrs r1, 24
mov r0, r8
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r3, 0x2E
ldrsh r0, [r4, r3]
cmp r6, r0
@@ -3362,7 +3362,7 @@ sub_806C890: @ 806C890
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r4, 0x5
bhi _0806C8DC
lsls r0, r4, 1
@@ -3430,7 +3430,7 @@ sub_806C92C: @ 806C92C
ldrh r0, [r1, 0x30]
lsls r0, 24
lsrs r4, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806C96A
@@ -3606,7 +3606,7 @@ sub_806CA60: @ 806CA60
movs r1, 0
bl CreateTask
ldr r0, _0806CAE8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
strb r0, [r5, 0x1]
ldrb r1, [r5, 0x1]
adds r0, r4, 0
@@ -4020,11 +4020,11 @@ _0806CDCC:
ldr r4, _0806CE1C @ =0x02001000
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x3]
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x4]
ldrb r3, [r4, 0x5]
cmp r3, 0
@@ -4515,12 +4515,12 @@ sub_806D198: @ 806D198
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
ldrb r2, [r4, 0x4]
- bl sub_806DE50
+ bl SetMonIconSpriteId_maybe
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
ldrb r2, [r4, 0x3]
- bl sub_806DE50
- bl battle_type_is_double
+ bl SetMonIconSpriteId_maybe
+ bl IsDoubleBattle
ldr r5, _0806D368 @ =gSprites
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
@@ -4541,7 +4541,7 @@ sub_806D198: @ 806D198
movs r1, 0
mov r8, r1
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
adds r3, r1
@@ -4580,9 +4580,9 @@ sub_806D198: @ 806D198
adds r1, r5
mov r9, r1
add r0, r9
- ldr r7, _0806D370 @ =sub_806DA38
+ ldr r7, _0806D370 @ =UpdateMonIconFrame_806DA38
str r7, [r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4599,7 +4599,7 @@ sub_806D198: @ 806D198
adds r2, r6
ldrb r0, [r2]
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4645,14 +4645,14 @@ sub_806D198: @ 806D198
ldrh r1, [r1, 0x2E]
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r9
- ldr r0, _0806D374 @ =sub_806DA0C
+ ldr r0, _0806D374 @ =UpdateMonIconFrame_806DA0C
str r0, [r1]
ldrb r0, [r4, 0x5]
movs r6, 0x64
@@ -4667,17 +4667,17 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
@@ -4687,23 +4687,23 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
bl nullsub_12
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
mov r0, r10
bl sub_806CC74
pop {r3-r5}
@@ -4717,8 +4717,8 @@ sub_806D198: @ 806D198
_0806D364: .4byte 0x02001000
_0806D368: .4byte gSprites
_0806D36C: .4byte gUnknown_08376678
-_0806D370: .4byte sub_806DA38
-_0806D374: .4byte sub_806DA0C
+_0806D370: .4byte UpdateMonIconFrame_806DA38
+_0806D374: .4byte UpdateMonIconFrame_806DA0C
_0806D378: .4byte gPlayerParty
thumb_func_end sub_806D198
@@ -4726,7 +4726,7 @@ _0806D378: .4byte gPlayerParty
sub_806D37C: @ 806D37C
push {r4,lr}
adds r4, r0, 0
- bl sub_809D638
+ bl UpdateMonIconFrame
ldrh r2, [r4, 0x24]
movs r0, 0x24
ldrsh r1, [r4, r0]
@@ -4740,11 +4740,11 @@ sub_806D37C: @ 806D37C
movs r1, 0
strh r0, [r4, 0x2E]
strh r1, [r4, 0x32]
- ldr r0, _0806D3A4 @ =sub_806DA38
+ ldr r0, _0806D3A4 @ =UpdateMonIconFrame_806DA38
str r0, [r4, 0x1C]
b _0806D3AE
.align 2, 0
-_0806D3A4: .4byte sub_806DA38
+_0806D3A4: .4byte UpdateMonIconFrame_806DA38
_0806D3A8:
ldrh r0, [r4, 0x2E]
adds r0, r2, r0
@@ -4890,7 +4890,7 @@ sub_806D4AC: @ 806D4AC
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
ldr r2, _0806D4FC @ =gSprites
@@ -4932,7 +4932,7 @@ sub_806D50C: @ 806D50C
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
ldr r2, _0806D534 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -5036,7 +5036,7 @@ sub_806D5B8: @ 806D5B8
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D658 @ =gUnknown_08376948
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5047,7 +5047,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5057,7 +5057,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5067,7 +5067,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5118,7 +5118,7 @@ sub_806D668: @ 806D668
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D708 @ =gUnknown_08376978
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5129,7 +5129,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5139,7 +5139,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5149,7 +5149,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5298,4 +5298,2928 @@ _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 ItemIsMail
+ 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 ItemIsMail
+ 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 ItemIsMail
+ 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 ItemIsMail
+ 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 HandleDestroyMenuCursors
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E7D0
+
+ thumb_func_start PartyMenuGetPopupMenuFunc
+PartyMenuGetPopupMenuFunc: @ 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 PartyMenuGetPopupMenuFunc
+
+ .section .text_8070968
+
+ 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.