summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-17 16:21:15 -0700
committerYamaArashi <shadow962@live.com>2016-10-17 16:21:15 -0700
commit1842cb4c1919378907cdefbeb0053a098354aa05 (patch)
tree773f0ddd0d7589f85a4124292e8e64ecfe247d8f
parentea1aa775fdb2171067e447f15ce8f42faca72e11 (diff)
split out party_menu.s
-rw-r--r--Makefile3
-rw-r--r--asm/party_menu.s5301
-rw-r--r--asm/rom_8065394.s12200
-rw-r--r--asm/rom_806D7F8.s6917
-rw-r--r--ld_script.txt2
5 files changed, 12222 insertions, 12201 deletions
diff --git a/Makefile b/Makefile
index 2f91b7ff7..08d283a99 100644
--- a/Makefile
+++ b/Makefile
@@ -50,7 +50,8 @@ ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom_8040EB4.o asm/rom4.o asm/rom_8074BAC.o
asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o \
asm/rom_8072DF8.o asm/rom_8065394.o asm/rom_803D1FC.o asm/rom_803BA2C.o \
asm/rom_813BA94.o asm/rom_81258BC.o asm/mystery_event_script.o \
-asm/field_effect_helpers.o asm/contest_ai.o asm/berry.o asm/rom_80B5054.o
+asm/field_effect_helpers.o asm/contest_ai.o asm/berry.o asm/rom_80B5054.o \
+asm/party_menu.o asm/rom_806D7F8.o
DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
data/event_scripts.o data/battle_anim_scripts.o \
diff --git a/asm/party_menu.s b/asm/party_menu.s
new file mode 100644
index 000000000..61d109a7b
--- /dev/null
+++ b/asm/party_menu.s
@@ -0,0 +1,5301 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_806AEDC
+sub_806AEDC: @ 806AEDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0806AF2C
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 4
+ ldr r1, _0806AF30
+ adds r5, r0, r1
+ movs r6, 0
+_0806AEF8:
+ ldrb r0, [r5]
+ lsls r0, 3
+ ldrb r1, [r5, 0x1]
+ lsls r1, 3
+ ldr r2, [r5, 0x4]
+ lsls r3, r6, 5
+ movs r4, 0x80
+ lsls r4, 2
+ orrs r3, r4
+ str r3, [sp]
+ movs r3, 0
+ bl sub_800142C
+ adds r5, 0x8
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0806AEF8
+ bl RunTasks
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AF2C: .4byte gUnknown_0202E8FA
+_0806AF30: .4byte gUnknown_08376BB4
+ thumb_func_end sub_806AEDC
+
+ thumb_func_start sub_806AF34
+sub_806AF34: @ 806AF34
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_806B548
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806AF34
+
+ thumb_func_start sub_806AF4C
+sub_806AF4C: @ 806AF4C
+ push {r4,r5,lr}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ cmp r1, 0xFF
+ beq _0806AF64
+ ldr r0, _0806AF84
+ strh r1, [r0]
+_0806AF64:
+ ldr r0, _0806AF88
+ movs r5, 0x96
+ lsls r5, 2
+ adds r1, r0, r5
+ strb r2, [r1]
+ movs r2, 0x97
+ lsls r2, 2
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r5, 0x1
+ adds r0, r5
+ strb r3, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AF84: .4byte gUnknown_020239F8
+_0806AF88: .4byte 0x0201b000
+ thumb_func_end sub_806AF4C
+
+ thumb_func_start sub_806AF8C
+sub_806AF8C: @ 806AF8C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ bl sub_806AF4C
+ ldr r0, _0806AFA8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AFA8: .4byte sub_806B460
+ thumb_func_end sub_806AF8C
+
+ thumb_func_start sub_806AFAC
+sub_806AFAC: @ 806AFAC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806AFCC
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r2
+ ldr r2, [r3]
+ ldrb r3, [r3, 0x8]
+ bl sub_806AF8C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AFCC: .4byte gUnknown_08376C74
+ thumb_func_end sub_806AFAC
+
+ thumb_func_start sub_806AFD0
+sub_806AFD0: @ 806AFD0
+ push {r4,r5,lr}
+ ldr r1, _0806AFF0
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x9
+ bls _0806AFE6
+ b _0806B11A
+_0806AFE6:
+ lsls r0, 2
+ ldr r1, _0806AFF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806AFF0: .4byte 0x0201b000
+_0806AFF4: .4byte _0806AFF8
+ .align 2, 0
+_0806AFF8:
+ .4byte _0806B020
+ .4byte _0806B060
+ .4byte _0806B066
+ .4byte _0806B07A
+ .4byte _0806B0A4
+ .4byte _0806B0AA
+ .4byte _0806B0BC
+ .4byte _0806B0C2
+ .4byte _0806B0D4
+ .4byte _0806B0EC
+_0806B020:
+ ldr r0, _0806B048
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _0806B04C
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _0806B054
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _0806B050
+ adds r2, r3
+ bl sub_806D90C
+ b _0806B114
+ .align 2, 0
+_0806B048: .4byte 0x00000266
+_0806B04C: .4byte gPlayerPartyCount
+_0806B050: .4byte gPlayerParty
+_0806B054:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _0806B0E0
+_0806B060:
+ bl sub_806DA98
+ b _0806B0D8
+_0806B066:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _0806B0E0
+_0806B07A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _0806B0A0
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B114
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _0806B0E0
+ .align 2, 0
+_0806B0A0: .4byte 0x00000266
+_0806B0A4:
+ bl sub_806E334
+ b _0806B0D8
+_0806B0AA:
+ bl sub_806E0C4
+ ldr r1, _0806B0B8
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _0806B0E0
+ .align 2, 0
+_0806B0B8: .4byte 0x0201b000
+_0806B0BC:
+ bl sub_806E53C
+ b _0806B0D8
+_0806B0C2:
+ bl nullsub_13
+ ldr r1, _0806B0D0
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _0806B0E0
+ .align 2, 0
+_0806B0D0: .4byte 0x0201b000
+_0806B0D4:
+ bl sub_806E6C8
+_0806B0D8:
+ ldr r1, _0806B0E8
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_0806B0E0:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0806B11A
+ .align 2, 0
+_0806B0E8: .4byte 0x0201b000
+_0806B0EC:
+ ldr r0, _0806B110
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B114
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _0806B11C
+ .align 2, 0
+_0806B110: .4byte 0x00000266
+_0806B114:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0806B11A:
+ movs r0, 0
+_0806B11C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806AFD0
+
+ thumb_func_start sub_806B124
+sub_806B124: @ 806B124
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r0, _0806B144
+ ldr r1, _0806B148
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bls _0806B13A
+ b _0806B450
+_0806B13A:
+ lsls r0, 2
+ ldr r1, _0806B14C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806B144: .4byte gMain
+_0806B148: .4byte 0x0000043c
+_0806B14C: .4byte _0806B150
+ .align 2, 0
+_0806B150:
+ .4byte _0806B198
+ .4byte _0806B240
+ .4byte _0806B246
+ .4byte _0806B27C
+ .4byte _0806B282
+ .4byte _0806B2AC
+ .4byte _0806B2B2
+ .4byte _0806B2D0
+ .4byte _0806B2EC
+ .4byte _0806B318
+ .4byte _0806B344
+ .4byte _0806B37C
+ .4byte _0806B382
+ .4byte _0806B3C0
+ .4byte _0806B3CC
+ .4byte _0806B3E4
+ .4byte _0806B40C
+ .4byte _0806B440
+_0806B198:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r2, sp, 0x8
+ mov r8, r2
+ add r2, sp, 0x4
+ movs r6, 0
+ ldr r1, _0806B22C
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _0806B230
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0806B1BC:
+ strh r6, [r2]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _0806B1BC
+ strh r6, [r2]
+ add r2, sp, 0x4
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r3, r12
+ orrs r0, r3
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x8]
+ ldr r2, _0806B22C
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r2, _0806B234
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _0806B238
+ ldr r2, _0806B23C
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B22C: .4byte 0x040000d4
+_0806B230: .4byte 0x81000800
+_0806B234: .4byte gPaletteFade
+_0806B238: .4byte gMain
+_0806B23C: .4byte 0x0000043c
+_0806B240:
+ bl remove_some_task
+ b _0806B426
+_0806B246:
+ bl sub_806B4A8
+ ldr r1, _0806B26C
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ strh r2, [r0]
+ ldr r3, _0806B270
+ adds r0, r1, r3
+ strh r2, [r0]
+ movs r0, 0x9A
+ lsls r0, 2
+ adds r1, r0
+ strh r2, [r1]
+ ldr r1, _0806B274
+ ldr r2, _0806B278
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B26C: .4byte 0x0201b000
+_0806B270: .4byte 0x00000266
+_0806B274: .4byte gMain
+_0806B278: .4byte 0x0000043c
+_0806B27C:
+ bl ResetSpriteData
+ b _0806B426
+_0806B282:
+ ldr r0, _0806B2A0
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0806B298
+ cmp r0, 0x5
+ beq _0806B298
+ bl ResetTasks
+_0806B298:
+ ldr r1, _0806B2A4
+ ldr r2, _0806B2A8
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B2A0: .4byte 0x0201b000
+_0806B2A4: .4byte gMain
+_0806B2A8: .4byte 0x0000043c
+_0806B2AC:
+ bl FreeAllSpritePalettes
+ b _0806B426
+_0806B2B2:
+ ldr r4, _0806B2CC
+ movs r1, 0x97
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl CreateTask
+ movs r2, 0x98
+ lsls r2, 2
+ adds r1, r4, r2
+ strb r0, [r1]
+ b _0806B426
+ .align 2, 0
+_0806B2CC: .4byte 0x0201b000
+_0806B2D0:
+ ldr r0, _0806B2E0
+ bl SetUpWindowConfig
+ ldr r1, _0806B2E4
+ ldr r0, _0806B2E8
+ adds r1, r0
+ b _0806B42C
+ .align 2, 0
+_0806B2E0: .4byte gWindowConfig_81E6C90
+_0806B2E4: .4byte gMain
+_0806B2E8: .4byte 0x0000043c
+_0806B2EC:
+ ldr r4, _0806B308
+ ldr r1, _0806B30C
+ adds r0, r4, 0
+ bl InitWindowFromConfig
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl MultistepInitWindowTileData
+ ldr r1, _0806B310
+ ldr r2, _0806B314
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B308: .4byte gUnknown_03004210
+_0806B30C: .4byte gWindowConfig_81E6C90
+_0806B310: .4byte gMain
+_0806B314: .4byte 0x0000043c
+_0806B318:
+ bl MultistepLoadFont
+ cmp r0, 0
+ bne _0806B322
+ b _0806B450
+_0806B322:
+ ldr r0, _0806B338
+ movs r3, 0x99
+ lsls r3, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r1, _0806B33C
+ ldr r0, _0806B340
+ adds r1, r0
+ b _0806B42C
+ .align 2, 0
+_0806B338: .4byte 0x0201b000
+_0806B33C: .4byte gMain
+_0806B340: .4byte 0x0000043c
+_0806B344:
+ ldr r0, _0806B368
+ movs r1, 0x99
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ bl sub_806D718
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B374
+ movs r0, 0
+ strh r0, [r4]
+ ldr r1, _0806B36C
+ ldr r2, _0806B370
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B368: .4byte 0x0201b000
+_0806B36C: .4byte gMain
+_0806B370: .4byte 0x0000043c
+_0806B374:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0806B450
+_0806B37C:
+ bl sub_809D51C
+ b _0806B426
+_0806B382:
+ ldr r2, _0806B3B0
+ ldr r0, _0806B3B4
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B450
+ ldr r1, _0806B3B8
+ ldr r2, _0806B3BC
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B3B0: .4byte gUnknown_08376C74
+_0806B3B4: .4byte 0x0201b000
+_0806B3B8: .4byte gMain
+_0806B3BC: .4byte 0x0000043c
+_0806B3C0:
+ ldr r0, _0806B3C8
+ bl MultistepInitMenuWindowBegin
+ b _0806B426
+ .align 2, 0
+_0806B3C8: .4byte gWindowConfig_81E6CC8
+_0806B3CC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _0806B450
+ ldr r1, _0806B3DC
+ ldr r0, _0806B3E0
+ adds r1, r0
+ b _0806B42C
+ .align 2, 0
+_0806B3DC: .4byte gMain
+_0806B3E0: .4byte 0x0000043c
+_0806B3E4:
+ ldr r0, _0806B3FC
+ ldr r1, _0806B400
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0806B404
+ ldr r2, _0806B408
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B3FC: .4byte 0x0201b000
+_0806B400: .4byte 0x00000259
+_0806B404: .4byte gMain
+_0806B408: .4byte 0x0000043c
+_0806B40C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _0806B434
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+_0806B426:
+ ldr r1, _0806B438
+ ldr r3, _0806B43C
+ adds r1, r3
+_0806B42C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0806B450
+ .align 2, 0
+_0806B434: .4byte gPaletteFade
+_0806B438: .4byte gMain
+_0806B43C: .4byte 0x0000043c
+_0806B440:
+ ldr r0, _0806B44C
+ bl SetVBlankCallback
+ movs r0, 0x1
+ b _0806B452
+ .align 2, 0
+_0806B44C: .4byte sub_806AF34
+_0806B450:
+ movs r0, 0
+_0806B452:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806B124
+
+ thumb_func_start sub_806B460
+sub_806B460: @ 806B460
+ push {lr}
+ b _0806B470
+_0806B464:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806B49C
+_0806B470:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B464
+ ldr r1, _0806B4A0
+ movs r2, 0x96
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _0806B496
+ adds r2, 0x8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_806BF74
+_0806B496:
+ ldr r0, _0806B4A4
+ bl SetMainCallback2
+_0806B49C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B4A0: .4byte 0x0201b000
+_0806B4A4: .4byte sub_806AEDC
+ thumb_func_end sub_806B460
+
+ thumb_func_start sub_806B4A8
+sub_806B4A8: @ 806B4A8
+ push {lr}
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x8
+ ldr r2, _0806B50C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0806B510
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0806B514
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0806B518
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0806B51C
+ movs r1, 0
+ strh r1, [r0]
+ subs r0, 0x40
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _0806B520
+ strh r1, [r2]
+ ldr r1, _0806B524
+ adds r0, r1, 0
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B50C: .4byte 0x00001e05
+_0806B510: .4byte 0x00000703
+_0806B514: .4byte 0x00000f08
+_0806B518: .4byte 0x00000602
+_0806B51C: .4byte REG_BLDCNT
+_0806B520: .4byte REG_BG3VOFS
+_0806B524: .4byte 0x0000ffff
+ thumb_func_end sub_806B4A8
+
+ thumb_func_start sub_806B528
+sub_806B528: @ 806B528
+ push {lr}
+ ldr r0, _0806B53C
+ ldrh r1, [r0]
+ movs r0, 0x4B
+ ands r0, r1
+ cmp r0, 0x4B
+ beq _0806B540
+ movs r0, 0
+ b _0806B542
+ .align 2, 0
+_0806B53C: .4byte gUnknown_020239F8
+_0806B540:
+ movs r0, 0x1
+_0806B542:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806B528
+
+ thumb_func_start sub_806B548
+sub_806B548: @ 806B548
+ push {r4,lr}
+ ldr r0, _0806B574
+ ldr r1, _0806B578
+ adds r4, r0, r1
+ ldrb r3, [r4]
+ cmp r3, 0
+ beq _0806B56E
+ ldr r1, _0806B57C
+ ldr r2, _0806B580
+ ldr r0, _0806B584
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0806B588
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ cmp r3, 0x2
+ bne _0806B56E
+ movs r0, 0
+ strb r0, [r4]
+_0806B56E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B574: .4byte 0x0201b000
+_0806B578: .4byte 0x00000261
+_0806B57C: .4byte gBG2TilemapBuffer
+_0806B580: .4byte 0x06003000
+_0806B584: .4byte 0x040000d4
+_0806B588: .4byte 0x80000400
+ thumb_func_end sub_806B548
+
+ thumb_func_start sub_806B58C
+sub_806B58C: @ 806B58C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0806B5A8
+ ldr r0, _0806B5A4
+ strb r2, [r0]
+ b _0806B5C8
+ .align 2, 0
+_0806B5A4: .4byte gUnknown_0202E8FA
+_0806B5A8:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B5C0
+ ldr r1, _0806B5BC
+ movs r0, 0x2
+ b _0806B5C4
+ .align 2, 0
+_0806B5BC: .4byte gUnknown_0202E8FA
+_0806B5C0:
+ ldr r1, _0806B5E4
+ movs r0, 0x1
+_0806B5C4:
+ strb r0, [r1]
+ adds r0, r1, 0
+_0806B5C8:
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0806B5E8
+ adds r4, r1, r0
+ cmp r5, 0x8
+ bls _0806B5DA
+ b _0806B900
+_0806B5DA:
+ lsls r0, r5, 2
+ ldr r1, _0806B5EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806B5E4: .4byte gUnknown_0202E8FA
+_0806B5E8: .4byte gUnknown_083769A8
+_0806B5EC: .4byte _0806B5F0
+ .align 2, 0
+_0806B5F0:
+ .4byte _0806B614
+ .4byte _0806B628
+ .4byte _0806B638
+ .4byte _0806B694
+ .4byte _0806B71A
+ .4byte _0806B7A2
+ .4byte _0806B832
+ .4byte _0806B8C6
+ .4byte _0806B8E8
+_0806B614:
+ ldr r0, _0806B624
+ movs r2, 0x80
+ lsls r2, 4
+ movs r1, 0
+ bl memset
+ b _0806B900
+ .align 2, 0
+_0806B624: .4byte gBG2TilemapBuffer
+_0806B628:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r2, 0x3
+ bl sub_806B9A4
+ adds r0, r4, 0
+ movs r1, 0
+ b _0806B8A8
+_0806B638:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B666
+ ldr r0, _0806B65C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0806B660
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ b _0806B8A8
+ .align 2, 0
+_0806B65C: .4byte gPlayerPartyCount
+_0806B660:
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ b _0806B8BC
+_0806B666:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B684
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ movs r2, 0x4
+ bl sub_806B9A4
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ movs r2, 0x4
+ b _0806B8AA
+_0806B684:
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ movs r2, 0x3
+ bl sub_806B9A4
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ b _0806B8A8
+_0806B694:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B6C2
+ ldr r0, _0806B6B8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _0806B6BC
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x4
+ movs r1, 0x2
+ b _0806B8A8
+ .align 2, 0
+_0806B6B8: .4byte gPlayerPartyCount
+_0806B6BC:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ b _0806B8BC
+_0806B6C2:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B6F6
+ ldr r0, _0806B6EC
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806B6F0
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x4
+ movs r1, 0x2
+ b _0806B8A8
+ .align 2, 0
+_0806B6EC: .4byte gUnknown_03004428
+_0806B6F0:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ b _0806B8BC
+_0806B6F6:
+ ldr r0, _0806B710
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _0806B714
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x4
+ movs r1, 0x2
+ b _0806B8A8
+ .align 2, 0
+_0806B710: .4byte gPlayerPartyCount
+_0806B714:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ b _0806B8BC
+_0806B71A:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B74A
+ ldr r0, _0806B740
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _0806B744
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x6
+ movs r1, 0x3
+ b _0806B8A8
+ .align 2, 0
+_0806B740: .4byte gPlayerPartyCount
+_0806B744:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ b _0806B8BC
+_0806B74A:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B77E
+ ldr r0, _0806B774
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806B778
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x6
+ movs r1, 0x3
+ b _0806B8A8
+ .align 2, 0
+_0806B774: .4byte gUnknown_0300448C
+_0806B778:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ b _0806B8BC
+_0806B77E:
+ ldr r0, _0806B798
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _0806B79C
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x6
+ movs r1, 0x3
+ b _0806B8A8
+ .align 2, 0
+_0806B798: .4byte gPlayerPartyCount
+_0806B79C:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ b _0806B8BC
+_0806B7A2:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B7D2
+ ldr r0, _0806B7C8
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0806B7CC
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0x4
+ b _0806B8A8
+ .align 2, 0
+_0806B7C8: .4byte gPlayerPartyCount
+_0806B7CC:
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ b _0806B8BC
+_0806B7D2:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B80A
+ ldr r0, _0806B800
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806B804
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0x4
+ movs r2, 0x4
+ b _0806B8AA
+ .align 2, 0
+_0806B800: .4byte gUnknown_030044F0
+_0806B804:
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ b _0806B884
+_0806B80A:
+ ldr r0, _0806B828
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0806B82C
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0x4
+ b _0806B8A8
+ .align 2, 0
+_0806B828: .4byte gPlayerPartyCount
+_0806B82C:
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ b _0806B8BC
+_0806B832:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B84C
+ ldr r0, _0806B848
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _0806B896
+ b _0806B8B8
+ .align 2, 0
+_0806B848: .4byte gPlayerPartyCount
+_0806B84C:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B88E
+ ldr r0, _0806B87C
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806B880
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0xA
+ movs r1, 0x5
+ movs r2, 0x4
+ b _0806B8AA
+ .align 2, 0
+_0806B87C: .4byte gUnknown_03004554
+_0806B880:
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+_0806B884:
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_806BA94
+ b _0806B900
+_0806B88E:
+ ldr r0, _0806B8B4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bls _0806B8B8
+_0806B896:
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0xA
+ movs r1, 0x5
+_0806B8A8:
+ movs r2, 0x3
+_0806B8AA:
+ movs r3, 0
+ bl sub_806BF24
+ b _0806B900
+ .align 2, 0
+_0806B8B4: .4byte gPlayerPartyCount
+_0806B8B8:
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+_0806B8BC:
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_806BA94
+ b _0806B900
+_0806B8C6:
+ ldr r0, _0806B8E4
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0806B8DA
+ movs r0, 0x1
+ bl sub_806BB9C
+_0806B8DA:
+ movs r0, 0x1
+ bl sub_806BBEC
+ b _0806B900
+ .align 2, 0
+_0806B8E4: .4byte 0x0201b000
+_0806B8E8:
+ ldr r0, _0806B8F8
+ ldr r1, _0806B8FC
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0806B902
+ .align 2, 0
+_0806B8F8: .4byte 0x0201b000
+_0806B8FC: .4byte 0x00000261
+_0806B900:
+ movs r0, 0
+_0806B902:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806B58C
+
+ thumb_func_start sub_806B908
+sub_806B908: @ 806B908
+ push {r4,r5,lr}
+ ldr r0, _0806B948
+ movs r2, 0x80
+ lsls r2, 4
+ movs r1, 0
+ bl memset
+ ldr r1, _0806B94C
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, _0806B950
+ adds r4, r0, 0
+ adds r4, 0x24
+ ldr r5, _0806B954
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r2, 0x3
+ bl sub_806B9A4
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806B958
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ b _0806B964
+ .align 2, 0
+_0806B948: .4byte gBG2TilemapBuffer
+_0806B94C: .4byte gUnknown_0202E8FA
+_0806B950: .4byte gUnknown_083769A8
+_0806B954: .4byte gUnknown_030043C4
+_0806B958:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_806BA94
+_0806B964:
+ adds r0, r5, 0
+ adds r0, 0x64
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806B980
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ b _0806B98C
+_0806B980:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_806BA94
+_0806B98C:
+ ldr r0, _0806B99C
+ ldr r1, _0806B9A0
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B99C: .4byte 0x0201b000
+_0806B9A0: .4byte 0x00000261
+ thumb_func_end sub_806B908
+
+ thumb_func_start sub_806B9A4
+sub_806B9A4: @ 806B9A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r1, 21
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ movs r1, 0
+ lsls r0, 16
+ mov r8, r0
+ asrs r0, 16
+ mov r10, r0
+ ldr r4, _0806BA2C
+ mov r9, r4
+_0806B9CA:
+ movs r3, 0
+ adds r7, r1, 0x1
+ mov r0, r10
+ cmp r0, 0x1F
+ bgt _0806BA12
+ mov r4, r8
+ asrs r2, r4, 16
+ lsls r0, r1, 5
+ ldr r4, [sp, 0x4]
+ adds r6, r4, r0
+ ldr r0, _0806BA30
+ mov r12, r0
+ ldr r4, [sp]
+ lsls r5, r4, 12
+ movs r0, 0xB
+ adds r4, r1, 0
+ muls r4, r0
+_0806B9EC:
+ adds r0, r2, r3
+ cmp r0, 0
+ blt _0806BA02
+ adds r0, r6, r0
+ lsls r0, 1
+ add r0, r12
+ adds r1, r4, r3
+ add r1, r9
+ ldrb r1, [r1]
+ orrs r1, r5
+ strh r1, [r0]
+_0806BA02:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xA
+ bhi _0806BA12
+ adds r0, r2, r3
+ cmp r0, 0x1F
+ ble _0806B9EC
+_0806BA12:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _0806B9CA
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BA2C: .4byte gUnknown_083769D8
+_0806BA30: .4byte gBG2TilemapBuffer
+ thumb_func_end sub_806B9A4
+
+ thumb_func_start sub_806BA34
+sub_806BA34: @ 806BA34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 21
+ lsrs r1, 16
+ mov r8, r1
+ movs r1, 0
+ lsls r7, r0, 16
+ asrs r0, r7, 16
+ mov r12, r0
+_0806BA48:
+ movs r2, 0
+ adds r4, r1, 0x1
+ mov r5, r12
+ cmp r5, 0x1F
+ bgt _0806BA7C
+ asrs r3, r7, 16
+ lsls r0, r1, 5
+ mov r5, r8
+ adds r1, r5, r0
+ ldr r6, _0806BA90
+ movs r5, 0
+_0806BA5E:
+ adds r0, r3, r2
+ cmp r0, 0
+ blt _0806BA6C
+ adds r0, r1, r0
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_0806BA6C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bhi _0806BA7C
+ adds r0, r3, r2
+ cmp r0, 0x1F
+ ble _0806BA5E
+_0806BA7C:
+ lsls r0, r4, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _0806BA48
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BA90: .4byte gBG2TilemapBuffer
+ thumb_func_end sub_806BA34
+
+ thumb_func_start sub_806BA94
+sub_806BA94: @ 806BA94
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r0, r1, 16
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ ldr r1, _0806BB30
+ mov r9, r1
+ cmp r2, 0
+ bne _0806BABC
+ ldr r1, _0806BB34
+ mov r9, r1
+_0806BABC:
+ lsls r0, 21
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ movs r1, 0
+ lsls r4, 16
+ mov r12, r4
+ asrs r4, 16
+ mov r10, r4
+_0806BACC:
+ movs r2, 0
+ adds r7, r1, 0x1
+ mov r0, r10
+ cmp r0, 0x1F
+ bgt _0806BB16
+ mov r4, r12
+ asrs r3, r4, 16
+ lsls r0, r1, 5
+ ldr r4, [sp, 0x4]
+ adds r6, r4, r0
+ ldr r0, _0806BB38
+ mov r8, r0
+ ldr r4, [sp]
+ lsls r5, r4, 12
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ subs r4, r0, r1
+_0806BAF0:
+ adds r0, r3, r2
+ cmp r0, 0
+ blt _0806BB06
+ adds r0, r6, r0
+ lsls r0, 1
+ add r0, r8
+ adds r1, r4, r2
+ add r1, r9
+ ldrb r1, [r1]
+ orrs r1, r5
+ strh r1, [r0]
+_0806BB06:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bhi _0806BB16
+ adds r0, r3, r2
+ cmp r0, 0x1F
+ ble _0806BAF0
+_0806BB16:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _0806BACC
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BB30: .4byte gUnknown_08376A5E
+_0806BB34: .4byte gUnknown_08376A25
+_0806BB38: .4byte gBG2TilemapBuffer
+ thumb_func_end sub_806BA94
+
+ thumb_func_start sub_806BB3C
+sub_806BB3C: @ 806BB3C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 21
+ lsrs r1, 16
+ mov r8, r1
+ movs r1, 0
+ lsls r7, r0, 16
+ asrs r0, r7, 16
+ mov r12, r0
+_0806BB50:
+ movs r2, 0
+ adds r4, r1, 0x1
+ mov r5, r12
+ cmp r5, 0x1F
+ bgt _0806BB84
+ asrs r3, r7, 16
+ lsls r0, r1, 5
+ mov r5, r8
+ adds r1, r5, r0
+ ldr r6, _0806BB98
+ movs r5, 0
+_0806BB66:
+ adds r0, r3, r2
+ cmp r0, 0
+ blt _0806BB74
+ adds r0, r1, r0
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_0806BB74:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bhi _0806BB84
+ adds r0, r3, r2
+ cmp r0, 0x1F
+ ble _0806BB66
+_0806BB84:
+ lsls r0, r4, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _0806BB50
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BB98: .4byte gBG2TilemapBuffer
+ thumb_func_end sub_806BB3C
+
+ thumb_func_start sub_806BB9C
+sub_806BB9C: @ 806BB9C
+ push {r4,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0806BBE4
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldr r3, _0806BBE8
+ movs r2, 0
+ lsls r4, 12
+_0806BBB6:
+ lsls r0, r2, 1
+ adds r1, r0, r3
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r1, 0x40
+ adds r0, r2, 0x6
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0806BBB6
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BBE4: .4byte gUnknown_08376CD4
+_0806BBE8: .4byte 0x06003c30
+ thumb_func_end sub_806BB9C
+
+ thumb_func_start sub_806BBEC
+sub_806BBEC: @ 806BBEC
+ push {r4,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0806BC34
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldr r3, _0806BC38
+ movs r2, 0
+ lsls r4, 12
+_0806BC06:
+ lsls r0, r2, 1
+ adds r1, r0, r3
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r1, 0x40
+ adds r0, r2, 0x6
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0806BC06
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BC34: .4byte gUnknown_08376CEC
+_0806BC38: .4byte 0x06003cb0
+ thumb_func_end sub_806BBEC
+
+ thumb_func_start sub_806BC3C
+sub_806BC3C: @ 806BC3C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0806BCB0
+ bl battle_type_is_double
+ lsls r4, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1
+ adds r4, r6
+ ldr r7, [r4]
+ movs r6, 0
+ adds r0, r5, 0
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 19
+ ldr r5, _0806BCB4
+ movs r0, 0x86
+ lsls r0, 1
+ adds r3, r0, 0
+_0806BC7C:
+ adds r1, r6, r4
+ lsls r2, r6, 1
+ adds r2, r7
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ strh r0, [r2]
+ adds r2, 0x40
+ adds r1, 0x20
+ lsls r1, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ adds r0, r3, r1
+ strh r0, [r2]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x6
+ bls _0806BC7C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BCB0: .4byte gUnknown_08376918
+_0806BCB4: .4byte gUnknown_08E9A300
+ thumb_func_end sub_806BC3C
+
+ thumb_func_start unref_sub_806BCB8
+unref_sub_806BCB8: @ 806BCB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _0806BCE4
+ ldrb r1, [r0]
+ cmp r4, r1
+ bcs _0806BCDE
+ adds r6, r0, 0
+_0806BCCA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806BC3C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ cmp r4, r0
+ bcc _0806BCCA
+_0806BCDE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BCE4: .4byte gPlayerPartyCount
+ thumb_func_end unref_sub_806BCB8
+
+ thumb_func_start sub_806BCE8
+sub_806BCE8: @ 806BCE8
+ push {r4,r5,lr}
+ movs r5, 0
+ b _0806BD46
+_0806BCEE:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0806BD20
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806BD38
+ adds r0, r4, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806BD24
+ cmp r0, 0xFE
+ beq _0806BD2E
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl sub_806BC3C
+ b _0806BD40
+ .align 2, 0
+_0806BD20: .4byte gPlayerParty
+_0806BD24:
+ adds r0, r5, 0
+ movs r1, 0x54
+ bl sub_806BC3C
+ b _0806BD40
+_0806BD2E:
+ adds r0, r5, 0
+ movs r1, 0x62
+ bl sub_806BC3C
+ b _0806BD40
+_0806BD38:
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl sub_806BC3C
+_0806BD40:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0806BD46:
+ ldr r0, _0806BD54
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _0806BCEE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BD54: .4byte gPlayerPartyCount
+ thumb_func_end sub_806BCE8
+
+ thumb_func_start sub_806BD58
+sub_806BD58: @ 806BD58
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806BD7C
+ bl object_new_hidden_with_callback
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_806CA18
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806BD7C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_806BD58
+
+ thumb_func_start sub_806BD80
+sub_806BD80: @ 806BD80
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _0806BD9C
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x20
+ beq _0806BDB2
+ cmp r0, 0x20
+ bgt _0806BDA0
+ cmp r0, 0x10
+ beq _0806BDB6
+ b _0806BDB8
+ .align 2, 0
+_0806BD9C: .4byte gMain
+_0806BDA0:
+ cmp r0, 0x40
+ beq _0806BDAA
+ cmp r0, 0x80
+ beq _0806BDAE
+ b _0806BDB8
+_0806BDAA:
+ movs r4, 0xFF
+ b _0806BDB8
+_0806BDAE:
+ movs r4, 0x1
+ b _0806BDB8
+_0806BDB2:
+ movs r4, 0xFE
+ b _0806BDB8
+_0806BDB6:
+ movs r4, 0x2
+_0806BDB8:
+ lsls r0, r4, 24
+ cmp r0, 0
+ bne _0806BDDC
+ bl sub_80F92BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806BDD0
+ cmp r0, 0x2
+ beq _0806BDD4
+ b _0806BDD6
+_0806BDD0:
+ movs r4, 0xFF
+ b _0806BDD6
+_0806BDD4:
+ movs r4, 0x1
+_0806BDD6:
+ lsls r0, r4, 24
+ cmp r0, 0
+ beq _0806BDF0
+_0806BDDC:
+ asrs r1, r0, 24
+ adds r0, r5, 0
+ bl sub_806BF74
+ ldr r0, _0806BDEC
+ ldrh r0, [r0, 0x30]
+ b _0806BE2C
+ .align 2, 0
+_0806BDEC: .4byte gMain
+_0806BDF0:
+ ldr r0, _0806BE1C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806BE24
+ ldr r4, _0806BE20
+ adds r0, r5, 0
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x7
+ bne _0806BE24
+ movs r0, 0x2
+ b _0806BE2C
+ .align 2, 0
+_0806BE1C: .4byte gMain
+_0806BE20: .4byte gSprites
+_0806BE24:
+ ldr r0, _0806BE34
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+_0806BE2C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806BE34: .4byte gMain
+ thumb_func_end sub_806BD80
+
+ thumb_func_start sub_806BE38
+sub_806BE38: @ 806BE38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _0806BE54
+ ldrh r1, [r0, 0x30]
+ adds r6, r0, 0
+ cmp r1, 0x20
+ beq _0806BE6A
+ cmp r1, 0x20
+ bgt _0806BE58
+ cmp r1, 0x10
+ beq _0806BE6E
+ b _0806BE70
+ .align 2, 0
+_0806BE54: .4byte gMain
+_0806BE58:
+ cmp r1, 0x40
+ beq _0806BE62
+ cmp r1, 0x80
+ beq _0806BE66
+ b _0806BE70
+_0806BE62:
+ movs r4, 0xFF
+ b _0806BE8E
+_0806BE66:
+ movs r4, 0x1
+ b _0806BE8E
+_0806BE6A:
+ movs r4, 0xFE
+ b _0806BE8E
+_0806BE6E:
+ movs r4, 0x2
+_0806BE70:
+ cmp r4, 0
+ bne _0806BE8E
+ bl sub_80F92BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806BE86
+ cmp r0, 0x2
+ beq _0806BE8A
+ b _0806BE8C
+_0806BE86:
+ movs r4, 0xFF
+ b _0806BE8C
+_0806BE8A:
+ movs r4, 0x1
+_0806BE8C:
+ ldr r6, _0806BEA4
+_0806BE8E:
+ ldrh r2, [r6, 0x2E]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0806BEA8
+ adds r0, r5, 0
+ bl sub_806C890
+ movs r0, 0x8
+ b _0806BEF0
+ .align 2, 0
+_0806BEA4: .4byte gMain
+_0806BEA8:
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0806BEBA
+ adds r0, r5, 0
+ bl sub_806C658
+ ldrh r0, [r6, 0x30]
+ b _0806BEF0
+_0806BEBA:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0806BEE8
+ ldr r4, _0806BEE4
+ adds r0, r5, 0
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x7
+ bne _0806BEE8
+ movs r0, 0x2
+ b _0806BEF0
+ .align 2, 0
+_0806BEE4: .4byte gSprites
+_0806BEE8:
+ ldr r0, _0806BEF8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+_0806BEF0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806BEF8: .4byte gMain
+ thumb_func_end sub_806BE38
+
+ thumb_func_start task_pc_turn_off
+task_pc_turn_off: @ 806BEFC
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0806BF14
+ ldrb r1, [r2, 0x1]
+ movs r2, 0
+ bl sub_806BA94
+ b _0806BF1E
+_0806BF14:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ adds r2, r3, 0
+ bl sub_806B9A4
+_0806BF1E:
+ pop {r0}
+ bx r0
+ thumb_func_end task_pc_turn_off
+
+ thumb_func_start sub_806BF24
+sub_806BF24: @ 806BF24
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0806BF70
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806BF56
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _0806BF56
+ movs r4, 0x5
+_0806BF56:
+ cmp r6, 0x1
+ bne _0806BF60
+ adds r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806BF60:
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl task_pc_turn_off
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BF70: .4byte gPlayerParty
+ thumb_func_end sub_806BF24
+
+ thumb_func_start sub_806BF74
+sub_806BF74: @ 806BF74
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806C0C4
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r9
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_806DA44
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806BFB6
+ b _0806C0D8
+_0806BFB6:
+ cmp r5, 0
+ beq _0806BFC2
+ cmp r5, 0x2
+ beq _0806BFC2
+ cmp r5, 0x3
+ bne _0806BFD2
+_0806BFC2:
+ lsls r0, r5, 1
+ ldr r1, _0806C0C8
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+_0806BFD2:
+ cmp r5, 0x1
+ beq _0806BFDE
+ cmp r5, 0x4
+ beq _0806BFDE
+ cmp r5, 0x5
+ bne _0806BFEE
+_0806BFDE:
+ lsls r0, r5, 1
+ ldr r1, _0806C0C8
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x4
+ movs r3, 0
+ bl sub_806BF24
+_0806BFEE:
+ cmp r5, 0x7
+ bne _0806BFF8
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806BFF8:
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806C490
+ ldr r2, _0806C0C4
+ lsls r1, r6, 4
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0
+ beq _0806C020
+ cmp r0, 0x2
+ beq _0806C020
+ cmp r0, 0x3
+ bne _0806C042
+_0806C020:
+ ldr r0, _0806C0C4
+ mov r4, r8
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r7, 0x2E
+ ldrsh r0, [r1, r7]
+ lsls r0, 1
+ ldr r2, _0806C0C8
+ adds r0, r2
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+_0806C042:
+ ldr r1, _0806C0C4
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r0, r1
+ movs r4, 0x2E
+ ldrsh r0, [r0, r4]
+ cmp r0, 0x1
+ beq _0806C05C
+ cmp r0, 0x4
+ beq _0806C05C
+ cmp r0, 0x5
+ bne _0806C07E
+_0806C05C:
+ ldr r0, _0806C0C4
+ mov r7, r8
+ adds r1, r7, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ ldr r2, _0806C0C8
+ adds r0, r2
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x4
+ movs r3, 0x1
+ bl sub_806BF24
+_0806C07E:
+ ldr r7, _0806C0C4
+ mov r4, r8
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r4, r0, r7
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bne _0806C096
+ movs r0, 0x2
+ bl sub_806BBEC
+_0806C096:
+ ldr r0, _0806C0CC
+ ldr r2, _0806C0D0
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r1, _0806C0D4
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x40
+ ldrb r0, [r0]
+ strh r0, [r4, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x41
+ ldrb r0, [r0]
+ strh r0, [r4, 0x22]
+ adds r0, r7, 0
+ b _0806C1A4
+ .align 2, 0
+_0806C0C4: .4byte gSprites
+_0806C0C8: .4byte gUnknown_083769C0
+_0806C0CC: .4byte 0x0201b000
+_0806C0D0: .4byte 0x00000261
+_0806C0D4: .4byte gUnknown_083768B8
+_0806C0D8:
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r5, 0x5
+ bhi _0806C104
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ lsls r1, r5, 1
+ adds r0, r1
+ ldr r1, _0806C100
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ b _0806C10A
+ .align 2, 0
+_0806C100: .4byte gUnknown_083769A8
+_0806C104:
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806C10A:
+ cmp r7, 0
+ bne _0806C11C
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806C1E4
+ b _0806C128
+_0806C11C:
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806C310
+_0806C128:
+ ldr r1, _0806C160
+ lsls r2, r6, 4
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrh r3, [r1, 0x2E]
+ movs r4, 0x2E
+ ldrsh r0, [r1, r4]
+ mov r8, r2
+ cmp r0, 0x5
+ bgt _0806C168
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ movs r2, 0x2E
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0806C164
+ adds r0, r1
+ lsls r1, r3, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+ b _0806C16E
+ .align 2, 0
+_0806C160: .4byte gSprites
+_0806C164: .4byte gUnknown_083769A8
+_0806C168:
+ movs r0, 0x2
+ bl sub_806BBEC
+_0806C16E:
+ ldr r0, _0806C1D4
+ ldr r4, _0806C1D8
+ adds r0, r4
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r4, _0806C1DC
+ mov r0, r8
+ adds r1, r0, r6
+ lsls r1, 2
+ adds r1, r4
+ ldr r3, _0806C1E0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 2
+ lsls r2, r7, 5
+ adds r0, r2
+ adds r0, r3
+ ldrb r0, [r0]
+ strh r0, [r1, 0x20]
+ movs r7, 0x2E
+ ldrsh r0, [r1, r7]
+ lsls r0, 2
+ adds r0, r2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x22]
+ adds r0, r4, 0
+_0806C1A4:
+ mov r1, r8
+ adds r4, r1, r6
+ lsls r4, 2
+ adds r4, r0
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ movs r2, 0x1
+ bl sub_806DA44
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r5, r0
+ beq _0806C1C8
+ movs r0, 0x5
+ bl PlaySE
+_0806C1C8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C1D4: .4byte 0x0201b000
+_0806C1D8: .4byte 0x00000261
+_0806C1DC: .4byte gSprites
+_0806C1E0: .4byte gUnknown_083768B8
+ thumb_func_end sub_806BF74
+
+ thumb_func_start sub_806C1E4
+sub_806C1E4: @ 806C1E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ asrs r0, r2, 24
+ cmp r0, 0x4
+ bls _0806C200
+ b _0806C306
+_0806C200:
+ lsls r0, 2
+ ldr r1, _0806C20C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C20C: .4byte _0806C210
+ .align 2, 0
+_0806C210:
+ .4byte _0806C2EC
+ .4byte _0806C238
+ .4byte _0806C224
+ .4byte _0806C25C
+ .4byte _0806C2BC
+_0806C224:
+ ldr r0, _0806C234
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ b _0806C306
+ .align 2, 0
+_0806C234: .4byte gSprites
+_0806C238:
+ cmp r3, 0
+ beq _0806C266
+ cmp r3, 0x7
+ bne _0806C298
+ ldr r2, _0806C254
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _0806C258
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _0806C2AA
+ .align 2, 0
+_0806C254: .4byte gSprites
+_0806C258: .4byte gPlayerPartyCount
+_0806C25C:
+ ldr r0, _0806C278
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r3, r0
+ bne _0806C280
+_0806C266:
+ ldr r2, _0806C27C
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x7
+ strh r1, [r0, 0x2E]
+ b _0806C2AC
+ .align 2, 0
+_0806C278: .4byte gPlayerPartyCount
+_0806C27C: .4byte gSprites
+_0806C280:
+ cmp r3, 0x7
+ bne _0806C298
+ ldr r2, _0806C294
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _0806C2AC
+ .align 2, 0
+_0806C294: .4byte gSprites
+_0806C298:
+ ldr r2, _0806C2B8
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldrh r5, [r1, 0x2E]
+ adds r0, r5
+_0806C2AA:
+ strh r0, [r1, 0x2E]
+_0806C2AC:
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C306
+ .align 2, 0
+_0806C2B8: .4byte gSprites
+_0806C2BC:
+ ldr r0, _0806C2E4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0806C306
+ cmp r3, 0
+ bne _0806C306
+ ldr r0, _0806C2E8
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0806C2DE
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+_0806C2DE:
+ ldrh r0, [r1, 0x30]
+ strh r0, [r1, 0x2E]
+ b _0806C306
+ .align 2, 0
+_0806C2E4: .4byte gPlayerPartyCount
+_0806C2E8: .4byte gSprites
+_0806C2EC:
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _0806C306
+ ldr r0, _0806C30C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+_0806C306:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C30C: .4byte gSprites
+ thumb_func_end sub_806C1E4
+
+ thumb_func_start sub_806C310
+sub_806C310: @ 806C310
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ asrs r0, r2, 24
+ cmp r0, 0x4
+ bls _0806C32C
+ b _0806C486
+_0806C32C:
+ lsls r0, 2
+ ldr r1, _0806C338
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C338: .4byte _0806C33C
+ .align 2, 0
+_0806C33C:
+ .4byte _0806C44E
+ .4byte _0806C38C
+ .4byte _0806C350
+ .4byte _0806C364
+ .4byte _0806C3E8
+_0806C350:
+ ldr r0, _0806C360
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ b _0806C486
+ .align 2, 0
+_0806C360: .4byte gSprites
+_0806C364:
+ cmp r3, 0x7
+ bne _0806C37C
+ ldr r2, _0806C378
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _0806C3D8
+ .align 2, 0
+_0806C378: .4byte gSprites
+_0806C37C:
+ ldr r0, _0806C388
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r3, r0
+ beq _0806C390
+ b _0806C3C4
+ .align 2, 0
+_0806C388: .4byte gPlayerPartyCount
+_0806C38C:
+ cmp r3, 0
+ bne _0806C3A4
+_0806C390:
+ ldr r2, _0806C3A0
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x7
+ strh r1, [r0, 0x2E]
+ b _0806C3D8
+ .align 2, 0
+_0806C3A0: .4byte gSprites
+_0806C3A4:
+ cmp r3, 0x7
+ bne _0806C3C4
+ ldr r2, _0806C3BC
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _0806C3C0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _0806C3D6
+ .align 2, 0
+_0806C3BC: .4byte gSprites
+_0806C3C0: .4byte gPlayerPartyCount
+_0806C3C4:
+ ldr r2, _0806C3E4
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldrh r5, [r1, 0x2E]
+ adds r0, r5
+_0806C3D6:
+ strh r0, [r1, 0x2E]
+_0806C3D8:
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C486
+ .align 2, 0
+_0806C3E4: .4byte gSprites
+_0806C3E8:
+ cmp r3, 0
+ bne _0806C418
+ ldr r0, _0806C410
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _0806C486
+ ldr r0, _0806C414
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x30]
+ subs r0, r2, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0806C43A
+ movs r0, 0x2
+ strh r0, [r1, 0x2E]
+ b _0806C486
+ .align 2, 0
+_0806C410: .4byte gPlayerPartyCount
+_0806C414: .4byte gSprites
+_0806C418:
+ cmp r3, 0x1
+ bne _0806C486
+ ldr r0, _0806C440
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0806C486
+ ldr r0, _0806C444
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x30]
+ subs r0, r2, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0806C448
+_0806C43A:
+ strh r2, [r1, 0x2E]
+ b _0806C486
+ .align 2, 0
+_0806C440: .4byte gPlayerPartyCount
+_0806C444: .4byte gSprites
+_0806C448:
+ movs r0, 0x4
+ strh r0, [r1, 0x2E]
+ b _0806C486
+_0806C44E:
+ subs r0, r3, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C46C
+ ldr r0, _0806C468
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ b _0806C482
+ .align 2, 0
+_0806C468: .4byte gSprites
+_0806C46C:
+ subs r0, r3, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C486
+ ldr r0, _0806C48C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+_0806C482:
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+_0806C486:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C48C: .4byte gSprites
+ thumb_func_end sub_806C310
+
+ thumb_func_start sub_806C490
+sub_806C490: @ 806C490
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ asrs r0, r2, 24
+ cmp r0, 0x4
+ bls _0806C4AA
+ b _0806C64E
+_0806C4AA:
+ lsls r0, 2
+ ldr r1, _0806C4B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C4B4: .4byte _0806C4B8
+ .align 2, 0
+_0806C4B8:
+ .4byte _0806C618
+ .4byte _0806C524
+ .4byte _0806C4CC
+ .4byte _0806C4E0
+ .4byte _0806C57C
+_0806C4CC:
+ ldr r0, _0806C4DC
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ b _0806C64E
+ .align 2, 0
+_0806C4DC: .4byte gSprites
+_0806C4E0:
+ cmp r4, 0x7
+ bne _0806C4FC
+ ldr r2, _0806C4F8
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ adds r1, r2, 0
+ adds r6, r3, 0
+ b _0806C566
+ .align 2, 0
+_0806C4F8: .4byte gSprites
+_0806C4FC:
+ lsls r6, r5, 4
+ b _0806C518
+_0806C500:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0806C520
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _0806C528
+_0806C518:
+ cmp r4, 0x5
+ bne _0806C500
+ b _0806C558
+ .align 2, 0
+_0806C520: .4byte gPlayerParty
+_0806C524:
+ lsls r6, r5, 4
+ b _0806C554
+_0806C528:
+ ldr r1, _0806C534
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x2E]
+ b _0806C566
+ .align 2, 0
+_0806C534: .4byte gSprites
+_0806C538:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0806C554
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0806C574
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _0806C528
+_0806C554:
+ cmp r4, 0
+ bne _0806C538
+_0806C558:
+ ldr r0, _0806C578
+ adds r1, r6, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x7
+ strh r2, [r1, 0x2E]
+ adds r1, r0, 0
+_0806C566:
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C64E
+ .align 2, 0
+_0806C574: .4byte gPlayerParty
+_0806C578: .4byte gSprites
+_0806C57C:
+ cmp r4, 0
+ bne _0806C5C8
+ ldr r0, _0806C5AC
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x30]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0806C5E2
+ ldr r5, _0806C5B0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806C5B4
+ movs r0, 0x2
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+ .align 2, 0
+_0806C5AC: .4byte gSprites
+_0806C5B0: .4byte gUnknown_03004428
+_0806C5B4:
+ adds r0, r5, 0
+ adds r0, 0x64
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806C64E
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+_0806C5C8:
+ cmp r4, 0x1
+ bne _0806C64E
+ ldr r0, _0806C5E8
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x30]
+ subs r0, r1, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0806C5EC
+_0806C5E2:
+ strh r1, [r4, 0x2E]
+ b _0806C64E
+ .align 2, 0
+_0806C5E8: .4byte gSprites
+_0806C5EC:
+ ldr r5, _0806C600
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806C604
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+ .align 2, 0
+_0806C600: .4byte gUnknown_030044F0
+_0806C604:
+ adds r0, r5, 0
+ adds r0, 0x64
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806C64E
+ movs r0, 0x5
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+_0806C618:
+ subs r0, r4, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C634
+ ldr r0, _0806C630
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ b _0806C64A
+ .align 2, 0
+_0806C630: .4byte gSprites
+_0806C634:
+ subs r0, r4, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C64E
+ ldr r0, _0806C654
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+_0806C64A:
+ strh r0, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+_0806C64E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C654: .4byte gSprites
+ thumb_func_end sub_806C490
+
+ thumb_func_start sub_806C658
+sub_806C658: @ 806C658
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0806C6A0
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_806DA44
+ cmp r6, 0x5
+ bhi _0806C6A8
+ lsls r0, r6, 1
+ ldr r1, _0806C6A4
+ adds r0, r1
+ adds r1, r6, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ b _0806C6BA
+ .align 2, 0
+_0806C6A0: .4byte gSprites
+_0806C6A4: .4byte gUnknown_083769A8
+_0806C6A8:
+ cmp r6, 0x6
+ bne _0806C6B4
+ movs r0, 0x1
+ bl sub_806BB9C
+ b _0806C6BA
+_0806C6B4:
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806C6BA:
+ lsls r1, r4, 24
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r1, r2
+ asrs r0, 24
+ lsls r4, r5, 4
+ adds r7, r1, 0
+ cmp r0, 0x4
+ bls _0806C6CE
+ b _0806C7EA
+_0806C6CE:
+ lsls r0, 2
+ ldr r1, _0806C6D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C6D8: .4byte _0806C6DC
+ .align 2, 0
+_0806C6DC:
+ .4byte _0806C7D0
+ .4byte _0806C708
+ .4byte _0806C6F0
+ .4byte _0806C740
+ .4byte _0806C7A0
+_0806C6F0:
+ ldr r1, _0806C704
+ lsls r2, r5, 4
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ adds r4, r2, 0
+ b _0806C7EA
+ .align 2, 0
+_0806C704: .4byte gSprites
+_0806C708:
+ cmp r6, 0
+ bne _0806C720
+ ldr r2, _0806C71C
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x7
+ strh r1, [r0, 0x2E]
+ b _0806C78E
+ .align 2, 0
+_0806C71C: .4byte gSprites
+_0806C720:
+ cmp r6, 0x6
+ bne _0806C77C
+ ldr r2, _0806C738
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _0806C73C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _0806C78C
+ .align 2, 0
+_0806C738: .4byte gSprites
+_0806C73C: .4byte gPlayerPartyCount
+_0806C740:
+ ldr r0, _0806C75C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ bne _0806C764
+ ldr r2, _0806C760
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ b _0806C78E
+ .align 2, 0
+_0806C75C: .4byte gPlayerPartyCount
+_0806C760: .4byte gSprites
+_0806C764:
+ cmp r6, 0x7
+ bne _0806C77C
+ ldr r2, _0806C778
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _0806C78E
+ .align 2, 0
+_0806C778: .4byte gSprites
+_0806C77C:
+ ldr r2, _0806C79C
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ asrs r0, r7, 24
+ ldrh r4, [r1, 0x2E]
+ adds r0, r4
+_0806C78C:
+ strh r0, [r1, 0x2E]
+_0806C78E:
+ adds r4, r3, 0
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C7EA
+ .align 2, 0
+_0806C79C: .4byte gSprites
+_0806C7A0:
+ ldr r0, _0806C7C8
+ ldrb r0, [r0]
+ lsls r4, r5, 4
+ cmp r0, 0x1
+ bls _0806C7EA
+ cmp r6, 0
+ bne _0806C7EA
+ ldr r0, _0806C7CC
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0806C7C2
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+_0806C7C2:
+ ldrh r0, [r1, 0x30]
+ strh r0, [r1, 0x2E]
+ b _0806C7EA
+ .align 2, 0
+_0806C7C8: .4byte gPlayerPartyCount
+_0806C7CC: .4byte gSprites
+_0806C7D0:
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r5, 4
+ cmp r0, 0x4
+ bhi _0806C7EA
+ ldr r0, _0806C82C
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r6, [r1, 0x30]
+_0806C7EA:
+ ldr r1, _0806C82C
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, _0806C830
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2, 0x20]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ strh r0, [r2, 0x22]
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x5
+ bgt _0806C838
+ lsls r0, 1
+ ldr r1, _0806C834
+ adds r0, r1
+ lsls r1, r3, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+ b _0806C84A
+ .align 2, 0
+_0806C82C: .4byte gSprites
+_0806C830: .4byte gUnknown_083768B8
+_0806C834: .4byte gUnknown_083769A8
+_0806C838:
+ cmp r0, 0x6
+ bne _0806C844
+ movs r0, 0x2
+ bl sub_806BB9C
+ b _0806C84A
+_0806C844:
+ movs r0, 0x2
+ bl sub_806BBEC
+_0806C84A:
+ ldr r0, _0806C884
+ ldr r2, _0806C888
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, _0806C88C
+ adds r4, r5
+ lsls r4, 2
+ adds r4, r0
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ movs r2, 0x1
+ bl sub_806DA44
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r6, r0
+ beq _0806C878
+ movs r0, 0x5
+ bl PlaySE
+_0806C878:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C884: .4byte 0x0201b000
+_0806C888: .4byte 0x00000261
+_0806C88C: .4byte gSprites
+ thumb_func_end sub_806C658
+
+ thumb_func_start sub_806C890
+sub_806C890: @ 806C890
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0806C8D4
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0806C914
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_806DA44
+ cmp r4, 0x5
+ bhi _0806C8DC
+ lsls r0, r4, 1
+ ldr r1, _0806C8D8
+ adds r0, r1
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ b _0806C8E2
+ .align 2, 0
+_0806C8D4: .4byte gSprites
+_0806C8D8: .4byte gUnknown_083769A8
+_0806C8DC:
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806C8E2:
+ ldr r1, _0806C91C
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ ldr r2, _0806C920
+ ldrb r1, [r2, 0x18]
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2, 0x19]
+ strh r1, [r0, 0x22]
+ movs r0, 0x2
+ bl sub_806BB9C
+ ldr r0, _0806C924
+ ldr r1, _0806C928
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x5
+ bl PlaySE
+_0806C914:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C91C: .4byte gSprites
+_0806C920: .4byte gUnknown_083768B8
+_0806C924: .4byte 0x0201b000
+_0806C928: .4byte 0x00000261
+ thumb_func_end sub_806C890
+
+ thumb_func_start sub_806C92C
+sub_806C92C: @ 806C92C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806C960
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r1, 0x30]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806C96A
+ cmp r6, 0
+ bne _0806C964
+ cmp r4, 0
+ bne _0806C97C
+ movs r4, 0x1
+ b _0806C97C
+ .align 2, 0
+_0806C960: .4byte gSprites
+_0806C964:
+ cmp r4, 0
+ beq _0806C97C
+ b _0806C97A
+_0806C96A:
+ cmp r6, 0x1
+ bhi _0806C976
+ cmp r4, 0x1
+ bhi _0806C97C
+ movs r4, 0x2
+ b _0806C97C
+_0806C976:
+ cmp r4, 0x1
+ bls _0806C97C
+_0806C97A:
+ movs r4, 0
+_0806C97C:
+ ldr r1, _0806C990
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C990: .4byte gSprites
+ thumb_func_end sub_806C92C
+
+ thumb_func_start sub_806C994
+sub_806C994: @ 806C994
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806C9C0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r4, [r1, 0x2E]
+ bl sub_806C92C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C9C0: .4byte gSprites
+ thumb_func_end sub_806C994
+
+ thumb_func_start sub_806C9C4
+sub_806C9C4: @ 806C9C4
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806C9FC
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r2, r3
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r1, 0x20]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r1, 0x22]
+ strh r0, [r2, 0x22]
+ ldrh r0, [r1, 0x2E]
+ strh r0, [r2, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C9FC: .4byte gSprites
+ thumb_func_end sub_806C9C4
+
+ thumb_func_start sub_806CA00
+sub_806CA00: @ 806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806CA14
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0xE]
+ lsrs r0, 8
+ bx lr
+ .align 2, 0
+_0806CA14: .4byte gTasks
+ thumb_func_end sub_806CA00
+
+ thumb_func_start sub_806CA18
+sub_806CA18: @ 806CA18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _0806CA34
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r0, [r2, 0xE]
+ lsrs r1, 16
+ orrs r0, r1
+ strh r0, [r2, 0xE]
+ bx lr
+ .align 2, 0
+_0806CA34: .4byte gTasks
+ thumb_func_end sub_806CA18
+
+ thumb_func_start sub_806CA38
+sub_806CA38: @ 806CA38
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806CA5C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806CA5C: .4byte gSprites
+ thumb_func_end sub_806CA38
+
+ thumb_func_start sub_806CA60
+sub_806CA60: @ 806CA60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0806CAD8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CADC
+ str r1, [r0]
+ ldr r5, _0806CAE0
+ strb r4, [r5]
+ ldr r0, _0806CAE4
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _0806CAE8
+ bl object_new_hidden_with_callback
+ strb r0, [r5, 0x1]
+ ldrb r1, [r5, 0x1]
+ adds r0, r4, 0
+ bl sub_806C9C4
+ adds r0, r4, 0
+ bl sub_806CA00
+ strb r0, [r5, 0x2]
+ ldr r1, _0806CAEC
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_806D538
+ ldr r2, _0806CAF0
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ ldr r2, _0806CAF4
+ adds r0, r2
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x6
+ movs r3, 0
+ bl sub_806BF24
+ ldr r0, _0806CAF8
+ adds r5, r0
+ movs r0, 0x2
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CAD8: .4byte gTasks
+_0806CADC: .4byte TaskDummy
+_0806CAE0: .4byte 0x02001000
+_0806CAE4: .4byte sub_806CB74
+_0806CAE8: .4byte SpriteCallbackDummy
+_0806CAEC: .4byte 0x0001a272
+_0806CAF0: .4byte gSprites
+_0806CAF4: .4byte gUnknown_083769A8
+_0806CAF8: .4byte 0x0001a261
+ thumb_func_end sub_806CA60
+
+ thumb_func_start sub_806CAFC
+sub_806CAFC: @ 806CAFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0806CB48
+ ldrb r3, [r4, 0x1]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _0806CB4C
+ adds r5, r2, r3
+ ldrb r2, [r4, 0x2]
+ lsls r4, r2, 4
+ adds r4, r2
+ lsls r4, 2
+ adds r4, r3
+ lsls r1, 24
+ asrs r1, 24
+ bl sub_806BF74
+ ldrh r2, [r5, 0x2E]
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _0806CB54
+ adds r0, r1, 0
+ lsls r0, 1
+ ldr r1, _0806CB50
+ adds r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r2, 0x6
+ movs r3, 0x1
+ bl sub_806BF24
+ b _0806CB6A
+ .align 2, 0
+_0806CB48: .4byte 0x02001000
+_0806CB4C: .4byte gSprites
+_0806CB50: .4byte gUnknown_083769A8
+_0806CB54:
+ movs r3, 0x2E
+ ldrsh r0, [r5, r3]
+ lsls r0, 1
+ ldr r1, _0806CB70
+ adds r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r2, 0x6
+ movs r3, 0
+ bl sub_806BF24
+_0806CB6A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CB70: .4byte gUnknown_083769A8
+ thumb_func_end sub_806CAFC
+
+ thumb_func_start sub_806CB74
+sub_806CB74: @ 806CB74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806CB8C
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x20
+ beq _0806CBBC
+ cmp r0, 0x20
+ bgt _0806CB90
+ cmp r0, 0x10
+ beq _0806CBD0
+ b _0806CBDA
+ .align 2, 0
+_0806CB8C: .4byte gMain
+_0806CB90:
+ cmp r0, 0x40
+ beq _0806CB9A
+ cmp r0, 0x80
+ beq _0806CBAC
+ b _0806CBDA
+_0806CB9A:
+ ldr r0, _0806CBA8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ bl sub_806CAFC
+ b _0806CBDA
+ .align 2, 0
+_0806CBA8: .4byte 0x02001000
+_0806CBAC:
+ ldr r0, _0806CBB8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_806CAFC
+ b _0806CBDA
+ .align 2, 0
+_0806CBB8: .4byte 0x02001000
+_0806CBBC:
+ ldr r0, _0806CBCC
+ ldrb r0, [r0]
+ movs r1, 0x2
+ negs r1, r1
+ bl sub_806CAFC
+ b _0806CBDA
+ .align 2, 0
+_0806CBCC: .4byte 0x02001000
+_0806CBD0:
+ ldr r0, _0806CC04
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_806CAFC
+_0806CBDA:
+ ldr r0, _0806CC08
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CC10
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0806CC0C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CC04
+ ldr r1, [r1, 0xC]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _0806CC24
+ .align 2, 0
+_0806CC04: .4byte 0x02001000
+_0806CC08: .4byte gMain
+_0806CC0C: .4byte gTasks
+_0806CC10:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0806CC24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CD44
+_0806CC24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CB74
+
+ thumb_func_start sub_806CC2C
+sub_806CC2C: @ 806CC2C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _0806CC68
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0806CC6C
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _0806CC70
+ adds r1, r5, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r0, [r5]
+ bl SwitchTaskToFollowupFunc
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CC68: .4byte 0x02001000
+_0806CC6C: .4byte gSprites
+_0806CC70: .4byte 0x0001a261
+ thumb_func_end sub_806CC2C
+
+ thumb_func_start sub_806CC74
+sub_806CC74: @ 806CC74
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806CCD8
+ mov r8, r0
+ ldr r6, _0806CCDC
+ ldrb r0, [r6, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ ldr r5, _0806CCE0
+ adds r0, r5
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+ ldrb r0, [r6, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ adds r0, r4, 0
+ bl sub_806CC2C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CCD8: .4byte gSprites
+_0806CCDC: .4byte 0x02001000
+_0806CCE0: .4byte gUnknown_083769A8
+ thumb_func_end sub_806CC74
+
+ thumb_func_start sub_806CCE4
+sub_806CCE4: @ 806CCE4
+ push {r4,r5,lr}
+ ldr r3, _0806CD38
+ ldr r2, _0806CD3C
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r4, 0x5
+ bhi _0806CD1E
+ lsls r0, r4, 1
+ ldr r1, _0806CD40
+ adds r0, r1
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+_0806CD1E:
+ cmp r5, 0x5
+ bhi _0806CD32
+ lsls r0, r5, 1
+ ldr r1, _0806CD40
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+_0806CD32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CD38: .4byte gSprites
+_0806CD3C: .4byte 0x02001000
+_0806CD40: .4byte gUnknown_083769A8
+ thumb_func_end sub_806CCE4
+
+ thumb_func_start sub_806CD44
+sub_806CD44: @ 806CD44
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_806CCE4
+ adds r0, r4, 0
+ bl sub_806CC2C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CD44
+
+ thumb_func_start sub_806CD5C
+sub_806CD5C: @ 806CD5C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _0806CDA8
+ ldr r6, _0806CDAC
+ ldrb r1, [r6, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r9, r5
+ ldrb r1, [r6, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ cmp r5, r4
+ beq _0806CD9E
+ cmp r5, 0x7
+ beq _0806CD9E
+ cmp r4, 0x7
+ bne _0806CDB0
+_0806CD9E:
+ mov r0, r8
+ bl sub_806CD44
+ b _0806CED2
+ .align 2, 0
+_0806CDA8: .4byte gSprites
+_0806CDAC: .4byte 0x02001000
+_0806CDB0:
+ adds r0, r5, 0
+ bl sub_806D5B8
+ adds r0, r4, 0
+ bl sub_806D5B8
+ cmp r5, r4
+ bls _0806CDC6
+ strb r4, [r6, 0x5]
+ strb r5, [r6, 0x6]
+ b _0806CDCC
+_0806CDC6:
+ mov r0, r9
+ strb r0, [r6, 0x5]
+ strb r7, [r6, 0x6]
+_0806CDCC:
+ ldr r4, _0806CE1C
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DDA0
+ strb r0, [r4, 0x3]
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x6]
+ bl sub_806DDA0
+ strb r0, [r4, 0x4]
+ ldrb r3, [r4, 0x5]
+ cmp r3, 0
+ bne _0806CE34
+ ldr r2, _0806CE20
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0806CE24
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0806CE28
+ strh r1, [r0, 0x32]
+ strh r3, [r4, 0x8]
+ movs r0, 0xB
+ strh r0, [r4, 0xA]
+ ldr r1, _0806CE2C
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CE30
+ b _0806CE66
+ .align 2, 0
+_0806CE1C: .4byte 0x02001000
+_0806CE20: .4byte gSprites
+_0806CE24: .4byte 0x0000fff8
+_0806CE28: .4byte 0x0000ff58
+_0806CE2C: .4byte gTasks
+_0806CE30: .4byte sub_806D014
+_0806CE34:
+ ldr r2, _0806CEE0
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0xA8
+ strh r1, [r0, 0x32]
+ movs r0, 0xB
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r1, _0806CEE4
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CEE8
+_0806CE66:
+ str r1, [r0]
+ ldr r0, _0806CEEC
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r6, r2, 0
+ ldr r4, _0806CEF0
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r2, _0806CEF4
+ str r2, [r0]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0xA8
+ strh r1, [r0, 0x32]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r2, [r0]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ adds r0, r6
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r5
+ adds r0, r6
+ ldr r1, [r5]
+ bl _call_via_r1
+_0806CED2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CEE0: .4byte gSprites
+_0806CEE4: .4byte gTasks
+_0806CEE8: .4byte sub_806D118
+_0806CEEC: .4byte 0x0001a261
+_0806CEF0: .4byte 0x02001000
+_0806CEF4: .4byte sub_806D37C
+ thumb_func_end sub_806CD5C
+
+ thumb_func_start sub_806CEF8
+sub_806CEF8: @ 806CEF8
+ ldrh r3, [r0]
+ ldrh r2, [r1]
+ strh r2, [r0]
+ strh r3, [r1]
+ bx lr
+ thumb_func_end sub_806CEF8
+
+ thumb_func_start sub_806CF04
+sub_806CF04: @ 806CF04
+ push {r4,r5,lr}
+ ldr r4, _0806CF94
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _0806CF98
+ adds r0, r5
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r5, 0x2
+ adds r0, r3
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r5, 0x4
+ adds r0, r3
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r5, 0
+ adds r3, 0xE
+ adds r0, r3
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ subs r5, 0x4
+ adds r0, r5
+ ldr r2, _0806CF9C
+ str r2, [r0]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CF94: .4byte 0x02001000
+_0806CF98: .4byte gSprites + 0x20
+_0806CF9C: .4byte sub_806D37C
+ thumb_func_end sub_806CF04
+
+ thumb_func_start sub_806CFA0
+sub_806CFA0: @ 806CFA0
+ push {r4-r6,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r5, _0806CFDC
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ movs r1, 0x3
+ bl sub_806BA34
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ adds r1, r6, 0
+ bl sub_806BB3C
+ cmp r4, 0
+ bne _0806CFE0
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ b _0806CFEA
+ .align 2, 0
+_0806CFDC: .4byte 0x02001000
+_0806CFE0:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x1
+_0806CFEA:
+ strh r0, [r5, 0xA]
+ ldr r4, _0806D010
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ movs r2, 0xA
+ bl sub_806B9A4
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_806BA94
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D010: .4byte 0x02001000
+ thumb_func_end sub_806CFA0
+
+ thumb_func_start sub_806D014
+sub_806D014: @ 806D014
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806CFA0
+ ldr r2, _0806D050
+ movs r0, 0x8
+ ldrsh r1, [r2, r0]
+ movs r0, 0xD
+ negs r0, r0
+ cmp r1, r0
+ bge _0806D04A
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x20
+ ble _0806D04A
+ bl sub_806CF04
+ ldr r0, _0806D054
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D058
+ str r0, [r1]
+_0806D04A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D050: .4byte 0x02001000
+_0806D054: .4byte gTasks
+_0806D058: .4byte sub_806D05C
+ thumb_func_end sub_806D014
+
+ thumb_func_start sub_806D05C
+sub_806D05C: @ 806D05C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806CFA0
+ ldr r0, _0806D08C
+ ldr r1, [r0, 0x8]
+ movs r0, 0xB0
+ lsls r0, 12
+ cmp r1, r0
+ bne _0806D084
+ ldr r0, _0806D090
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D094
+ str r0, [r1]
+_0806D084:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D08C: .4byte 0x02001000
+_0806D090: .4byte gTasks
+_0806D094: .4byte sub_806D198
+ thumb_func_end sub_806D05C
+
+ thumb_func_start sub_806D098
+sub_806D098: @ 806D098
+ push {r4-r7,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r5, _0806D0E0
+ ldrb r1, [r5, 0x5]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ adds r1, r7, 0
+ bl sub_806BB3C
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ adds r1, r6, 0
+ bl sub_806BB3C
+ cmp r4, 0
+ bne _0806D0E4
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ b _0806D0EE
+ .align 2, 0
+_0806D0E0: .4byte 0x02001000
+_0806D0E4:
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x1
+_0806D0EE:
+ strh r0, [r5, 0xA]
+ ldr r4, _0806D114
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_806BA94
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_806BA94
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D114: .4byte 0x02001000
+ thumb_func_end sub_806D098
+
+ thumb_func_start sub_806D118
+sub_806D118: @ 806D118
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806D098
+ ldr r1, _0806D150
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _0806D14A
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _0806D14A
+ bl sub_806CF04
+ ldr r0, _0806D154
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D158
+ str r0, [r1]
+_0806D14A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D150: .4byte 0x02001000
+_0806D154: .4byte gTasks
+_0806D158: .4byte sub_806D15C
+ thumb_func_end sub_806D118
+
+ thumb_func_start sub_806D15C
+sub_806D15C: @ 806D15C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806D098
+ ldr r0, _0806D188
+ ldr r1, [r0, 0x8]
+ ldr r0, _0806D18C
+ cmp r1, r0
+ bne _0806D182
+ ldr r0, _0806D190
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D194
+ str r0, [r1]
+_0806D182:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D188: .4byte 0x02001000
+_0806D18C: .4byte 0x000b000b
+_0806D190: .4byte gTasks
+_0806D194: .4byte sub_806D198
+ thumb_func_end sub_806D15C
+
+ thumb_func_start sub_806D198
+sub_806D198: @ 806D198
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r4, _0806D364
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ bl sub_806DE50
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x6]
+ ldrb r2, [r4, 0x3]
+ bl sub_806DE50
+ bl battle_type_is_double
+ ldr r5, _0806D368
+ ldrb r1, [r4, 0x3]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldr r6, _0806D36C
+ ldrb r2, [r4, 0x6]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r6
+ ldrb r0, [r2]
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r3, 0x20]
+ bl battle_type_is_double
+ ldrb r1, [r4, 0x3]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldrb r2, [r4, 0x6]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r6
+ ldrb r0, [r2, 0x1]
+ strh r0, [r3, 0x22]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x24]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x26]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1C
+ adds r1, r5
+ mov r9, r1
+ add r0, r9
+ ldr r7, _0806D370
+ str r7, [r0]
+ bl battle_type_is_double
+ ldrb r1, [r4, 0x4]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldrb r2, [r4, 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, r6
+ ldrb r0, [r2]
+ strh r0, [r3, 0x20]
+ bl battle_type_is_double
+ ldrb r1, [r4, 0x4]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldrb r2, [r4, 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, r6
+ ldrb r0, [r2, 0x1]
+ strh r0, [r3, 0x22]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x24]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x26]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ str r7, [r0]
+ ldrb r0, [r4]
+ ldrb r2, [r4, 0x2]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldr r0, _0806D374
+ str r0, [r1]
+ ldrb r0, [r4, 0x5]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0806D378
+ adds r0, r5
+ ldrb r1, [r4, 0x6]
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E6F0
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E2C0
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E07C
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E4E8
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl nullsub_12
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E2C0
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E07C
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E4E8
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl nullsub_12
+ bl sub_806E6C8
+ mov r0, r10
+ bl sub_806CC74
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D364: .4byte 0x02001000
+_0806D368: .4byte gSprites
+_0806D36C: .4byte gUnknown_08376678
+_0806D370: .4byte sub_806DA38
+_0806D374: .4byte sub_806DA0C
+_0806D378: .4byte gPlayerParty
+ thumb_func_end sub_806D198
+
+ thumb_func_start sub_806D37C
+sub_806D37C: @ 806D37C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809D638
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _0806D3A8
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ movs r1, 0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ ldr r0, _0806D3A4
+ str r0, [r4, 0x1C]
+ b _0806D3AE
+ .align 2, 0
+_0806D3A4: .4byte sub_806DA38
+_0806D3A8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, r2, r0
+ strh r0, [r4, 0x24]
+_0806D3AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D37C
+
+ thumb_func_start sub_806D3B4
+sub_806D3B4: @ 806D3B4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r6, _0806D438
+ ldr r1, _0806D43C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x3]
+ bl sub_806BA34
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x9]
+ bl sub_806BB3C
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0xB]
+ bl sub_806BB3C
+ ldrh r1, [r5, 0x8]
+ subs r1, 0x1
+ strh r1, [r5, 0x8]
+ ldrb r0, [r6, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x3]
+ movs r2, 0x4
+ bl sub_806B9A4
+ cmp r4, 0
+ beq _0806D440
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x9]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ b _0806D454
+ .align 2, 0
+_0806D438: .4byte gUnknown_083769C0
+_0806D43C: .4byte gTasks
+_0806D440:
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x9]
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_806BA94
+_0806D454:
+ mov r0, r8
+ cmp r0, 0
+ beq _0806D480
+ ldr r1, _0806D47C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ ldrb r1, [r6, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0xB]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ b _0806D49E
+ .align 2, 0
+_0806D47C: .4byte gTasks
+_0806D480:
+ ldr r1, _0806D4A8
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ ldrb r1, [r6, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0xB]
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_806BA94
+_0806D49E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D4A8: .4byte gTasks
+ thumb_func_end sub_806D3B4
+
+ thumb_func_start sub_806D4AC
+sub_806D4AC: @ 806D4AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r1, 0
+ beq _0806D4F6
+ adds r1, r2, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806D4FC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r2
+ ldr r0, _0806D500
+ strh r0, [r4, 0x2E]
+ ldr r3, _0806D504
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r3
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ lsls r0, 3
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r2, 0x1C
+ adds r1, r2
+ ldr r0, _0806D508
+ str r0, [r1]
+_0806D4F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D4FC: .4byte gSprites
+_0806D500: .4byte 0x0000fff8
+_0806D504: .4byte gTasks
+_0806D508: .4byte sub_806D37C
+ thumb_func_end sub_806D4AC
+
+ thumb_func_start sub_806D50C
+sub_806D50C: @ 806D50C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806DDA0
+ ldr r2, _0806D534
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0xF0
+ strh r0, [r1, 0x20]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D534: .4byte gSprites
+ thumb_func_end sub_806D50C
+
+ thumb_func_start sub_806D538
+sub_806D538: @ 806D538
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1, 0
+ cmp r4, 0xFF
+ beq _0806D59A
+ cmp r1, 0x1
+ beq _0806D568
+ cmp r1, 0x1
+ bgt _0806D556
+ cmp r1, 0
+ beq _0806D560
+ b _0806D58A
+_0806D556:
+ cmp r0, 0x2
+ beq _0806D570
+ cmp r0, 0x3
+ beq _0806D57E
+ b _0806D58A
+_0806D560:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x17
+ b _0806D576
+_0806D568:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x13
+ b _0806D576
+_0806D570:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x16
+_0806D576:
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ b _0806D58A
+_0806D57E:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x12
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_0806D58A:
+ ldr r0, _0806D5A0
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+_0806D59A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D5A0: .4byte gUnknown_08376624
+ thumb_func_end sub_806D538
+
+ thumb_func_start sub_806D5A4
+sub_806D5A4: @ 806D5A4
+ push {lr}
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D5A4
+
+ thumb_func_start sub_806D5B8
+sub_806D5B8: @ 806D5B8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0806D658
+ bl battle_type_is_double
+ lsls r4, r5, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1]
+ mov r10, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x1]
+ mov r9, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x2]
+ mov r8, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1
+ adds r4, r6
+ ldrb r1, [r4, 0x3]
+ ldr r0, _0806D65C
+ str r1, [sp]
+ mov r1, r10
+ mov r2, r9
+ mov r3, r8
+ bl ZeroFillWindowRect
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r5, 10
+ ldr r0, _0806D660
+ adds r5, r0
+ ldr r2, _0806D664
+ add r0, sp, 0x4
+ adds r1, r5, 0
+ bl CpuFastSet
+ 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
+_0806D658: .4byte gUnknown_08376948
+_0806D65C: .4byte gUnknown_03004210
+_0806D660: .4byte 0x06014000
+_0806D664: .4byte 0x01000100
+ thumb_func_end sub_806D5B8
+
+ thumb_func_start sub_806D668
+sub_806D668: @ 806D668
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0806D708
+ bl battle_type_is_double
+ lsls r4, r5, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1]
+ mov r10, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x1]
+ mov r9, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x2]
+ mov r8, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1
+ adds r4, r6
+ ldrb r1, [r4, 0x3]
+ ldr r0, _0806D70C
+ str r1, [sp]
+ mov r1, r10
+ mov r2, r9
+ mov r3, r8
+ bl ZeroFillWindowRect
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r5, 10
+ ldr r0, _0806D710
+ adds r5, r0
+ ldr r2, _0806D714
+ add r0, sp, 0x4
+ adds r1, r5, 0
+ bl CpuFastSet
+ 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
+_0806D708: .4byte gUnknown_08376978
+_0806D70C: .4byte gUnknown_03004210
+_0806D710: .4byte 0x06014300
+_0806D714: .4byte 0x01000040
+ thumb_func_end sub_806D668
+
+ thumb_func_start sub_806D718
+sub_806D718: @ 806D718
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0806D7C4
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0
+ cmp r4, 0x1
+ bhi _0806D736
+ ldr r0, _0806D7C8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+_0806D736:
+ cmp r4, 0x2
+ beq _0806D73E
+ cmp r4, 0
+ bne _0806D746
+_0806D73E:
+ ldr r0, _0806D7CC
+ ldr r1, _0806D7D0
+ bl LZDecompressVram
+_0806D746:
+ cmp r4, 0x3
+ beq _0806D74E
+ cmp r4, 0
+ bne _0806D75A
+_0806D74E:
+ ldr r0, _0806D7D4
+ movs r2, 0xB0
+ lsls r2, 1
+ movs r1, 0
+ bl LoadCompressedPalette
+_0806D75A:
+ cmp r4, 0x4
+ beq _0806D762
+ cmp r4, 0
+ bne _0806D776
+_0806D762:
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _0806D7D8
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+_0806D776:
+ cmp r4, 0x5
+ beq _0806D77E
+ cmp r4, 0
+ bne _0806D786
+_0806D77E:
+ ldr r0, _0806D7DC
+ ldr r1, _0806D7E0
+ bl LZDecompressVram
+_0806D786:
+ cmp r4, 0x6
+ beq _0806D78E
+ cmp r4, 0
+ bne _0806D796
+_0806D78E:
+ ldr r0, _0806D7E4
+ ldr r1, _0806D7E8
+ bl LZDecompressVram
+_0806D796:
+ cmp r4, 0x7
+ beq _0806D79E
+ cmp r4, 0
+ bne _0806D7A6
+_0806D79E:
+ ldr r0, _0806D7EC
+ ldr r1, _0806D7F0
+ bl LZDecompressVram
+_0806D7A6:
+ cmp r4, 0x8
+ beq _0806D7AE
+ cmp r4, 0
+ bne _0806D7BA
+_0806D7AE:
+ ldr r0, _0806D7F4
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ movs r5, 0x1
+_0806D7BA:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806D7C4: .4byte 0x00007fff
+_0806D7C8: .4byte gPartyMenuMisc_Gfx
+_0806D7CC: .4byte gPartyMenuMisc_Tilemap
+_0806D7D0: .4byte 0x06003800
+_0806D7D4: .4byte gPartyMenuMisc_Pal
+_0806D7D8: .4byte gFontDefaultPalette
+_0806D7DC: .4byte gPartyMenuHpBar_Gfx
+_0806D7E0: .4byte 0x06006000
+_0806D7E4: .4byte gPartyMenuOrderText_Gfx
+_0806D7E8: .4byte 0x06006180
+_0806D7EC: .4byte gStatusGfx_Icons
+_0806D7F0: .4byte 0x06007180
+_0806D7F4: .4byte gStatusPal_Icons
+ thumb_func_end sub_806D718
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s
index 2a08416e2..50e95eeab 100644
--- a/asm/rom_8065394.s
+++ b/asm/rom_8065394.s
@@ -6294,12204 +6294,4 @@ _0806AED4: .4byte 0x0000ffff
_0806AED8: .4byte gPaletteFade
thumb_func_end sub_806ACCC
- thumb_func_start sub_806AEDC
-sub_806AEDC: @ 806AEDC
- push {r4-r6,lr}
- sub sp, 0x4
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0806AF2C
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 4
- ldr r1, _0806AF30
- adds r5, r0, r1
- movs r6, 0
-_0806AEF8:
- ldrb r0, [r5]
- lsls r0, 3
- ldrb r1, [r5, 0x1]
- lsls r1, 3
- ldr r2, [r5, 0x4]
- lsls r3, r6, 5
- movs r4, 0x80
- lsls r4, 2
- orrs r3, r4
- str r3, [sp]
- movs r3, 0
- bl sub_800142C
- adds r5, 0x8
- adds r6, 0x1
- cmp r6, 0x5
- ble _0806AEF8
- bl RunTasks
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AF2C: .4byte gUnknown_0202E8FA
-_0806AF30: .4byte gUnknown_08376BB4
- thumb_func_end sub_806AEDC
-
- thumb_func_start sub_806AF34
-sub_806AF34: @ 806AF34
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_806B548
- pop {r0}
- bx r0
- thumb_func_end sub_806AF34
-
- thumb_func_start sub_806AF4C
-sub_806AF4C: @ 806AF4C
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r3, 24
- lsrs r3, 24
- cmp r1, 0xFF
- beq _0806AF64
- ldr r0, _0806AF84
- strh r1, [r0]
-_0806AF64:
- ldr r0, _0806AF88
- movs r5, 0x96
- lsls r5, 2
- adds r1, r0, r5
- strb r2, [r1]
- movs r2, 0x97
- lsls r2, 2
- adds r1, r0, r2
- str r4, [r1]
- adds r5, 0x1
- adds r0, r5
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AF84: .4byte gUnknown_020239F8
-_0806AF88: .4byte 0x0201b000
- thumb_func_end sub_806AF4C
-
- thumb_func_start sub_806AF8C
-sub_806AF8C: @ 806AF8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_806AF4C
- ldr r0, _0806AFA8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0806AFA8: .4byte sub_806B460
- thumb_func_end sub_806AF8C
-
- thumb_func_start sub_806AFAC
-sub_806AFAC: @ 806AFAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806AFCC
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 2
- adds r3, r2
- ldr r2, [r3]
- ldrb r3, [r3, 0x8]
- bl sub_806AF8C
- pop {r0}
- bx r0
- .align 2, 0
-_0806AFCC: .4byte gUnknown_08376C74
- thumb_func_end sub_806AFAC
-
- thumb_func_start sub_806AFD0
-sub_806AFD0: @ 806AFD0
- push {r4,r5,lr}
- ldr r1, _0806AFF0
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x9
- bls _0806AFE6
- b _0806B11A
-_0806AFE6:
- lsls r0, 2
- ldr r1, _0806AFF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806AFF0: .4byte 0x0201b000
-_0806AFF4: .4byte _0806AFF8
- .align 2, 0
-_0806AFF8:
- .4byte _0806B020
- .4byte _0806B060
- .4byte _0806B066
- .4byte _0806B07A
- .4byte _0806B0A4
- .4byte _0806B0AA
- .4byte _0806B0BC
- .4byte _0806B0C2
- .4byte _0806B0D4
- .4byte _0806B0EC
-_0806B020:
- ldr r0, _0806B048
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _0806B04C
- ldrb r0, [r0]
- cmp r3, r0
- bge _0806B054
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _0806B050
- adds r2, r3
- bl sub_806D90C
- b _0806B114
- .align 2, 0
-_0806B048: .4byte 0x00000266
-_0806B04C: .4byte gPlayerPartyCount
-_0806B050: .4byte gPlayerParty
-_0806B054:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _0806B0E0
-_0806B060:
- bl sub_806DA98
- b _0806B0D8
-_0806B066:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _0806B0E0
-_0806B07A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _0806B0A0
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B114
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _0806B0E0
- .align 2, 0
-_0806B0A0: .4byte 0x00000266
-_0806B0A4:
- bl sub_806E334
- b _0806B0D8
-_0806B0AA:
- bl sub_806E0C4
- ldr r1, _0806B0B8
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _0806B0E0
- .align 2, 0
-_0806B0B8: .4byte 0x0201b000
-_0806B0BC:
- bl sub_806E53C
- b _0806B0D8
-_0806B0C2:
- bl nullsub_13
- ldr r1, _0806B0D0
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _0806B0E0
- .align 2, 0
-_0806B0D0: .4byte 0x0201b000
-_0806B0D4:
- bl sub_806E6C8
-_0806B0D8:
- ldr r1, _0806B0E8
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_0806B0E0:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0806B11A
- .align 2, 0
-_0806B0E8: .4byte 0x0201b000
-_0806B0EC:
- ldr r0, _0806B110
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B114
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _0806B11C
- .align 2, 0
-_0806B110: .4byte 0x00000266
-_0806B114:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0806B11A:
- movs r0, 0
-_0806B11C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806AFD0
-
- thumb_func_start sub_806B124
-sub_806B124: @ 806B124
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r0, _0806B144
- ldr r1, _0806B148
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _0806B13A
- b _0806B450
-_0806B13A:
- lsls r0, 2
- ldr r1, _0806B14C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806B144: .4byte gMain
-_0806B148: .4byte 0x0000043c
-_0806B14C: .4byte _0806B150
- .align 2, 0
-_0806B150:
- .4byte _0806B198
- .4byte _0806B240
- .4byte _0806B246
- .4byte _0806B27C
- .4byte _0806B282
- .4byte _0806B2AC
- .4byte _0806B2B2
- .4byte _0806B2D0
- .4byte _0806B2EC
- .4byte _0806B318
- .4byte _0806B344
- .4byte _0806B37C
- .4byte _0806B382
- .4byte _0806B3C0
- .4byte _0806B3CC
- .4byte _0806B3E4
- .4byte _0806B40C
- .4byte _0806B440
-_0806B198:
- movs r0, 0
- bl SetVBlankCallback
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r2, sp, 0x8
- mov r8, r2
- add r2, sp, 0x4
- movs r6, 0
- ldr r1, _0806B22C
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0806B230
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0806B1BC:
- strh r6, [r2]
- add r0, sp, 0x4
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _0806B1BC
- strh r6, [r2]
- add r2, sp, 0x4
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r3, r12
- orrs r0, r3
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x8]
- ldr r2, _0806B22C
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r2, _0806B234
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _0806B238
- ldr r2, _0806B23C
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B22C: .4byte 0x040000d4
-_0806B230: .4byte 0x81000800
-_0806B234: .4byte gPaletteFade
-_0806B238: .4byte gMain
-_0806B23C: .4byte 0x0000043c
-_0806B240:
- bl remove_some_task
- b _0806B426
-_0806B246:
- bl sub_806B4A8
- ldr r1, _0806B26C
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- ldr r3, _0806B270
- adds r0, r1, r3
- strh r2, [r0]
- movs r0, 0x9A
- lsls r0, 2
- adds r1, r0
- strh r2, [r1]
- ldr r1, _0806B274
- ldr r2, _0806B278
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B26C: .4byte 0x0201b000
-_0806B270: .4byte 0x00000266
-_0806B274: .4byte gMain
-_0806B278: .4byte 0x0000043c
-_0806B27C:
- bl ResetSpriteData
- b _0806B426
-_0806B282:
- ldr r0, _0806B2A0
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0806B298
- cmp r0, 0x5
- beq _0806B298
- bl ResetTasks
-_0806B298:
- ldr r1, _0806B2A4
- ldr r2, _0806B2A8
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B2A0: .4byte 0x0201b000
-_0806B2A4: .4byte gMain
-_0806B2A8: .4byte 0x0000043c
-_0806B2AC:
- bl FreeAllSpritePalettes
- b _0806B426
-_0806B2B2:
- ldr r4, _0806B2CC
- movs r1, 0x97
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- movs r2, 0x98
- lsls r2, 2
- adds r1, r4, r2
- strb r0, [r1]
- b _0806B426
- .align 2, 0
-_0806B2CC: .4byte 0x0201b000
-_0806B2D0:
- ldr r0, _0806B2E0
- bl SetUpWindowConfig
- ldr r1, _0806B2E4
- ldr r0, _0806B2E8
- adds r1, r0
- b _0806B42C
- .align 2, 0
-_0806B2E0: .4byte gWindowConfig_81E6C90
-_0806B2E4: .4byte gMain
-_0806B2E8: .4byte 0x0000043c
-_0806B2EC:
- ldr r4, _0806B308
- ldr r1, _0806B30C
- adds r0, r4, 0
- bl InitWindowFromConfig
- adds r0, r4, 0
- movs r1, 0x1
- bl MultistepInitWindowTileData
- ldr r1, _0806B310
- ldr r2, _0806B314
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B308: .4byte gUnknown_03004210
-_0806B30C: .4byte gWindowConfig_81E6C90
-_0806B310: .4byte gMain
-_0806B314: .4byte 0x0000043c
-_0806B318:
- bl MultistepLoadFont
- cmp r0, 0
- bne _0806B322
- b _0806B450
-_0806B322:
- ldr r0, _0806B338
- movs r3, 0x99
- lsls r3, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _0806B33C
- ldr r0, _0806B340
- adds r1, r0
- b _0806B42C
- .align 2, 0
-_0806B338: .4byte 0x0201b000
-_0806B33C: .4byte gMain
-_0806B340: .4byte 0x0000043c
-_0806B344:
- ldr r0, _0806B368
- movs r1, 0x99
- lsls r1, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- bl sub_806D718
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B374
- movs r0, 0
- strh r0, [r4]
- ldr r1, _0806B36C
- ldr r2, _0806B370
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B368: .4byte 0x0201b000
-_0806B36C: .4byte gMain
-_0806B370: .4byte 0x0000043c
-_0806B374:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0806B450
-_0806B37C:
- bl sub_809D51C
- b _0806B426
-_0806B382:
- ldr r2, _0806B3B0
- ldr r0, _0806B3B4
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B450
- ldr r1, _0806B3B8
- ldr r2, _0806B3BC
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B3B0: .4byte gUnknown_08376C74
-_0806B3B4: .4byte 0x0201b000
-_0806B3B8: .4byte gMain
-_0806B3BC: .4byte 0x0000043c
-_0806B3C0:
- ldr r0, _0806B3C8
- bl MultistepInitMenuWindowBegin
- b _0806B426
- .align 2, 0
-_0806B3C8: .4byte gWindowConfig_81E6CC8
-_0806B3CC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _0806B450
- ldr r1, _0806B3DC
- ldr r0, _0806B3E0
- adds r1, r0
- b _0806B42C
- .align 2, 0
-_0806B3DC: .4byte gMain
-_0806B3E0: .4byte 0x0000043c
-_0806B3E4:
- ldr r0, _0806B3FC
- ldr r1, _0806B400
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_806D538
- ldr r1, _0806B404
- ldr r2, _0806B408
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B3FC: .4byte 0x0201b000
-_0806B400: .4byte 0x00000259
-_0806B404: .4byte gMain
-_0806B408: .4byte 0x0000043c
-_0806B40C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0806B434
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
-_0806B426:
- ldr r1, _0806B438
- ldr r3, _0806B43C
- adds r1, r3
-_0806B42C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0806B450
- .align 2, 0
-_0806B434: .4byte gPaletteFade
-_0806B438: .4byte gMain
-_0806B43C: .4byte 0x0000043c
-_0806B440:
- ldr r0, _0806B44C
- bl SetVBlankCallback
- movs r0, 0x1
- b _0806B452
- .align 2, 0
-_0806B44C: .4byte sub_806AF34
-_0806B450:
- movs r0, 0
-_0806B452:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806B124
-
- thumb_func_start sub_806B460
-sub_806B460: @ 806B460
- push {lr}
- b _0806B470
-_0806B464:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806B49C
-_0806B470:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B464
- ldr r1, _0806B4A0
- movs r2, 0x96
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _0806B496
- adds r2, 0x8
- adds r0, r1, r2
- ldrb r0, [r0]
- movs r1, 0
- bl sub_806BF74
-_0806B496:
- ldr r0, _0806B4A4
- bl SetMainCallback2
-_0806B49C:
- pop {r0}
- bx r0
- .align 2, 0
-_0806B4A0: .4byte 0x0201b000
-_0806B4A4: .4byte sub_806AEDC
- thumb_func_end sub_806B460
-
- thumb_func_start sub_806B4A8
-sub_806B4A8: @ 806B4A8
- push {lr}
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x8
- ldr r2, _0806B50C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0806B510
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0806B514
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0806B518
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0806B51C
- movs r1, 0
- strh r1, [r0]
- subs r0, 0x40
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _0806B520
- strh r1, [r2]
- ldr r1, _0806B524
- adds r0, r1, 0
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0806B50C: .4byte 0x00001e05
-_0806B510: .4byte 0x00000703
-_0806B514: .4byte 0x00000f08
-_0806B518: .4byte 0x00000602
-_0806B51C: .4byte REG_BLDCNT
-_0806B520: .4byte REG_BG3VOFS
-_0806B524: .4byte 0x0000ffff
- thumb_func_end sub_806B4A8
-
- thumb_func_start sub_806B528
-sub_806B528: @ 806B528
- push {lr}
- ldr r0, _0806B53C
- ldrh r1, [r0]
- movs r0, 0x4B
- ands r0, r1
- cmp r0, 0x4B
- beq _0806B540
- movs r0, 0
- b _0806B542
- .align 2, 0
-_0806B53C: .4byte gUnknown_020239F8
-_0806B540:
- movs r0, 0x1
-_0806B542:
- pop {r1}
- bx r1
- thumb_func_end sub_806B528
-
- thumb_func_start sub_806B548
-sub_806B548: @ 806B548
- push {r4,lr}
- ldr r0, _0806B574
- ldr r1, _0806B578
- adds r4, r0, r1
- ldrb r3, [r4]
- cmp r3, 0
- beq _0806B56E
- ldr r1, _0806B57C
- ldr r2, _0806B580
- ldr r0, _0806B584
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0806B588
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- cmp r3, 0x2
- bne _0806B56E
- movs r0, 0
- strb r0, [r4]
-_0806B56E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806B574: .4byte 0x0201b000
-_0806B578: .4byte 0x00000261
-_0806B57C: .4byte gBG2TilemapBuffer
-_0806B580: .4byte 0x06003000
-_0806B584: .4byte 0x040000d4
-_0806B588: .4byte 0x80000400
- thumb_func_end sub_806B548
-
- thumb_func_start sub_806B58C
-sub_806B58C: @ 806B58C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0806B5A8
- ldr r0, _0806B5A4
- strb r2, [r0]
- b _0806B5C8
- .align 2, 0
-_0806B5A4: .4byte gUnknown_0202E8FA
-_0806B5A8:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B5C0
- ldr r1, _0806B5BC
- movs r0, 0x2
- b _0806B5C4
- .align 2, 0
-_0806B5BC: .4byte gUnknown_0202E8FA
-_0806B5C0:
- ldr r1, _0806B5E4
- movs r0, 0x1
-_0806B5C4:
- strb r0, [r1]
- adds r0, r1, 0
-_0806B5C8:
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0806B5E8
- adds r4, r1, r0
- cmp r5, 0x8
- bls _0806B5DA
- b _0806B900
-_0806B5DA:
- lsls r0, r5, 2
- ldr r1, _0806B5EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806B5E4: .4byte gUnknown_0202E8FA
-_0806B5E8: .4byte gUnknown_083769A8
-_0806B5EC: .4byte _0806B5F0
- .align 2, 0
-_0806B5F0:
- .4byte _0806B614
- .4byte _0806B628
- .4byte _0806B638
- .4byte _0806B694
- .4byte _0806B71A
- .4byte _0806B7A2
- .4byte _0806B832
- .4byte _0806B8C6
- .4byte _0806B8E8
-_0806B614:
- ldr r0, _0806B624
- movs r2, 0x80
- lsls r2, 4
- movs r1, 0
- bl memset
- b _0806B900
- .align 2, 0
-_0806B624: .4byte gBG2TilemapBuffer
-_0806B628:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r2, 0x3
- bl sub_806B9A4
- adds r0, r4, 0
- movs r1, 0
- b _0806B8A8
-_0806B638:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B666
- ldr r0, _0806B65C
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0806B660
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x2
- movs r1, 0x1
- b _0806B8A8
- .align 2, 0
-_0806B65C: .4byte gPlayerPartyCount
-_0806B660:
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- b _0806B8BC
-_0806B666:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B684
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- movs r2, 0x4
- bl sub_806B9A4
- adds r0, r4, 0x2
- movs r1, 0x1
- movs r2, 0x4
- b _0806B8AA
-_0806B684:
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- movs r2, 0x3
- bl sub_806B9A4
- adds r0, r4, 0x2
- movs r1, 0x1
- b _0806B8A8
-_0806B694:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B6C2
- ldr r0, _0806B6B8
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _0806B6BC
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x4
- movs r1, 0x2
- b _0806B8A8
- .align 2, 0
-_0806B6B8: .4byte gPlayerPartyCount
-_0806B6BC:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- b _0806B8BC
-_0806B6C2:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B6F6
- ldr r0, _0806B6EC
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806B6F0
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x4
- movs r1, 0x2
- b _0806B8A8
- .align 2, 0
-_0806B6EC: .4byte gUnknown_03004428
-_0806B6F0:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- b _0806B8BC
-_0806B6F6:
- ldr r0, _0806B710
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _0806B714
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x4
- movs r1, 0x2
- b _0806B8A8
- .align 2, 0
-_0806B710: .4byte gPlayerPartyCount
-_0806B714:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- b _0806B8BC
-_0806B71A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B74A
- ldr r0, _0806B740
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _0806B744
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x6
- movs r1, 0x3
- b _0806B8A8
- .align 2, 0
-_0806B740: .4byte gPlayerPartyCount
-_0806B744:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- b _0806B8BC
-_0806B74A:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B77E
- ldr r0, _0806B774
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806B778
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x6
- movs r1, 0x3
- b _0806B8A8
- .align 2, 0
-_0806B774: .4byte gUnknown_0300448C
-_0806B778:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- b _0806B8BC
-_0806B77E:
- ldr r0, _0806B798
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _0806B79C
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x6
- movs r1, 0x3
- b _0806B8A8
- .align 2, 0
-_0806B798: .4byte gPlayerPartyCount
-_0806B79C:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- b _0806B8BC
-_0806B7A2:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B7D2
- ldr r0, _0806B7C8
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0806B7CC
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0x4
- b _0806B8A8
- .align 2, 0
-_0806B7C8: .4byte gPlayerPartyCount
-_0806B7CC:
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- b _0806B8BC
-_0806B7D2:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B80A
- ldr r0, _0806B800
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806B804
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0x4
- movs r2, 0x4
- b _0806B8AA
- .align 2, 0
-_0806B800: .4byte gUnknown_030044F0
-_0806B804:
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- b _0806B884
-_0806B80A:
- ldr r0, _0806B828
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0806B82C
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0x4
- b _0806B8A8
- .align 2, 0
-_0806B828: .4byte gPlayerPartyCount
-_0806B82C:
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- b _0806B8BC
-_0806B832:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B84C
- ldr r0, _0806B848
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _0806B896
- b _0806B8B8
- .align 2, 0
-_0806B848: .4byte gPlayerPartyCount
-_0806B84C:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B88E
- ldr r0, _0806B87C
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806B880
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0xA
- movs r1, 0x5
- movs r2, 0x4
- b _0806B8AA
- .align 2, 0
-_0806B87C: .4byte gUnknown_03004554
-_0806B880:
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
-_0806B884:
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
- b _0806B900
-_0806B88E:
- ldr r0, _0806B8B4
- ldrb r0, [r0]
- cmp r0, 0x5
- bls _0806B8B8
-_0806B896:
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0xA
- movs r1, 0x5
-_0806B8A8:
- movs r2, 0x3
-_0806B8AA:
- movs r3, 0
- bl sub_806BF24
- b _0806B900
- .align 2, 0
-_0806B8B4: .4byte gPlayerPartyCount
-_0806B8B8:
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
-_0806B8BC:
- movs r2, 0x1
- movs r3, 0x3
- bl sub_806BA94
- b _0806B900
-_0806B8C6:
- ldr r0, _0806B8E4
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0806B8DA
- movs r0, 0x1
- bl sub_806BB9C
-_0806B8DA:
- movs r0, 0x1
- bl sub_806BBEC
- b _0806B900
- .align 2, 0
-_0806B8E4: .4byte 0x0201b000
-_0806B8E8:
- ldr r0, _0806B8F8
- ldr r1, _0806B8FC
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x1
- b _0806B902
- .align 2, 0
-_0806B8F8: .4byte 0x0201b000
-_0806B8FC: .4byte 0x00000261
-_0806B900:
- movs r0, 0
-_0806B902:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806B58C
-
- thumb_func_start sub_806B908
-sub_806B908: @ 806B908
- push {r4,r5,lr}
- ldr r0, _0806B948
- movs r2, 0x80
- lsls r2, 4
- movs r1, 0
- bl memset
- ldr r1, _0806B94C
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _0806B950
- adds r4, r0, 0
- adds r4, 0x24
- ldr r5, _0806B954
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r2, 0x3
- bl sub_806B9A4
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806B958
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- b _0806B964
- .align 2, 0
-_0806B948: .4byte gBG2TilemapBuffer
-_0806B94C: .4byte gUnknown_0202E8FA
-_0806B950: .4byte gUnknown_083769A8
-_0806B954: .4byte gUnknown_030043C4
-_0806B958:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0x1
- movs r3, 0x3
- bl sub_806BA94
-_0806B964:
- adds r0, r5, 0
- adds r0, 0x64
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806B980
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- b _0806B98C
-_0806B980:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0x1
- movs r3, 0x3
- bl sub_806BA94
-_0806B98C:
- ldr r0, _0806B99C
- ldr r1, _0806B9A0
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806B99C: .4byte 0x0201b000
-_0806B9A0: .4byte 0x00000261
- thumb_func_end sub_806B908
-
- thumb_func_start sub_806B9A4
-sub_806B9A4: @ 806B9A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r1, 21
- lsrs r1, 16
- str r1, [sp, 0x4]
- movs r1, 0
- lsls r0, 16
- mov r8, r0
- asrs r0, 16
- mov r10, r0
- ldr r4, _0806BA2C
- mov r9, r4
-_0806B9CA:
- movs r3, 0
- adds r7, r1, 0x1
- mov r0, r10
- cmp r0, 0x1F
- bgt _0806BA12
- mov r4, r8
- asrs r2, r4, 16
- lsls r0, r1, 5
- ldr r4, [sp, 0x4]
- adds r6, r4, r0
- ldr r0, _0806BA30
- mov r12, r0
- ldr r4, [sp]
- lsls r5, r4, 12
- movs r0, 0xB
- adds r4, r1, 0
- muls r4, r0
-_0806B9EC:
- adds r0, r2, r3
- cmp r0, 0
- blt _0806BA02
- adds r0, r6, r0
- lsls r0, 1
- add r0, r12
- adds r1, r4, r3
- add r1, r9
- ldrb r1, [r1]
- orrs r1, r5
- strh r1, [r0]
-_0806BA02:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bhi _0806BA12
- adds r0, r2, r3
- cmp r0, 0x1F
- ble _0806B9EC
-_0806BA12:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _0806B9CA
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BA2C: .4byte gUnknown_083769D8
-_0806BA30: .4byte gBG2TilemapBuffer
- thumb_func_end sub_806B9A4
-
- thumb_func_start sub_806BA34
-sub_806BA34: @ 806BA34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 21
- lsrs r1, 16
- mov r8, r1
- movs r1, 0
- lsls r7, r0, 16
- asrs r0, r7, 16
- mov r12, r0
-_0806BA48:
- movs r2, 0
- adds r4, r1, 0x1
- mov r5, r12
- cmp r5, 0x1F
- bgt _0806BA7C
- asrs r3, r7, 16
- lsls r0, r1, 5
- mov r5, r8
- adds r1, r5, r0
- ldr r6, _0806BA90
- movs r5, 0
-_0806BA5E:
- adds r0, r3, r2
- cmp r0, 0
- blt _0806BA6C
- adds r0, r1, r0
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_0806BA6C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bhi _0806BA7C
- adds r0, r3, r2
- cmp r0, 0x1F
- ble _0806BA5E
-_0806BA7C:
- lsls r0, r4, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _0806BA48
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BA90: .4byte gBG2TilemapBuffer
- thumb_func_end sub_806BA34
-
- thumb_func_start sub_806BA94
-sub_806BA94: @ 806BA94
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- ldr r1, _0806BB30
- mov r9, r1
- cmp r2, 0
- bne _0806BABC
- ldr r1, _0806BB34
- mov r9, r1
-_0806BABC:
- lsls r0, 21
- lsrs r0, 16
- str r0, [sp, 0x4]
- movs r1, 0
- lsls r4, 16
- mov r12, r4
- asrs r4, 16
- mov r10, r4
-_0806BACC:
- movs r2, 0
- adds r7, r1, 0x1
- mov r0, r10
- cmp r0, 0x1F
- bgt _0806BB16
- mov r4, r12
- asrs r3, r4, 16
- lsls r0, r1, 5
- ldr r4, [sp, 0x4]
- adds r6, r4, r0
- ldr r0, _0806BB38
- mov r8, r0
- ldr r4, [sp]
- lsls r5, r4, 12
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- subs r4, r0, r1
-_0806BAF0:
- adds r0, r3, r2
- cmp r0, 0
- blt _0806BB06
- adds r0, r6, r0
- lsls r0, 1
- add r0, r8
- adds r1, r4, r2
- add r1, r9
- ldrb r1, [r1]
- orrs r1, r5
- strh r1, [r0]
-_0806BB06:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bhi _0806BB16
- adds r0, r3, r2
- cmp r0, 0x1F
- ble _0806BAF0
-_0806BB16:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _0806BACC
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BB30: .4byte gUnknown_08376A5E
-_0806BB34: .4byte gUnknown_08376A25
-_0806BB38: .4byte gBG2TilemapBuffer
- thumb_func_end sub_806BA94
-
- thumb_func_start sub_806BB3C
-sub_806BB3C: @ 806BB3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 21
- lsrs r1, 16
- mov r8, r1
- movs r1, 0
- lsls r7, r0, 16
- asrs r0, r7, 16
- mov r12, r0
-_0806BB50:
- movs r2, 0
- adds r4, r1, 0x1
- mov r5, r12
- cmp r5, 0x1F
- bgt _0806BB84
- asrs r3, r7, 16
- lsls r0, r1, 5
- mov r5, r8
- adds r1, r5, r0
- ldr r6, _0806BB98
- movs r5, 0
-_0806BB66:
- adds r0, r3, r2
- cmp r0, 0
- blt _0806BB74
- adds r0, r1, r0
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_0806BB74:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bhi _0806BB84
- adds r0, r3, r2
- cmp r0, 0x1F
- ble _0806BB66
-_0806BB84:
- lsls r0, r4, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _0806BB50
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BB98: .4byte gBG2TilemapBuffer
- thumb_func_end sub_806BB3C
-
- thumb_func_start sub_806BB9C
-sub_806BB9C: @ 806BB9C
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0806BBE4
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldr r3, _0806BBE8
- movs r2, 0
- lsls r4, 12
-_0806BBB6:
- lsls r0, r2, 1
- adds r1, r0, r3
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r1, 0x40
- adds r0, r2, 0x6
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0806BBB6
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BBE4: .4byte gUnknown_08376CD4
-_0806BBE8: .4byte 0x06003c30
- thumb_func_end sub_806BB9C
-
- thumb_func_start sub_806BBEC
-sub_806BBEC: @ 806BBEC
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0806BC34
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldr r3, _0806BC38
- movs r2, 0
- lsls r4, 12
-_0806BC06:
- lsls r0, r2, 1
- adds r1, r0, r3
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r1, 0x40
- adds r0, r2, 0x6
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0806BC06
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BC34: .4byte gUnknown_08376CEC
-_0806BC38: .4byte 0x06003cb0
- thumb_func_end sub_806BBEC
-
- thumb_func_start sub_806BC3C
-sub_806BC3C: @ 806BC3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806BCB0
- bl battle_type_is_double
- lsls r4, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldr r7, [r4]
- movs r6, 0
- adds r0, r5, 0
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 19
- ldr r5, _0806BCB4
- movs r0, 0x86
- lsls r0, 1
- adds r3, r0, 0
-_0806BC7C:
- adds r1, r6, r4
- lsls r2, r6, 1
- adds r2, r7
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- adds r0, r3, r0
- strh r0, [r2]
- adds r2, 0x40
- adds r1, 0x20
- lsls r1, 1
- adds r1, r5
- ldrh r1, [r1]
- adds r0, r3, r1
- strh r0, [r2]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x6
- bls _0806BC7C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BCB0: .4byte gUnknown_08376918
-_0806BCB4: .4byte gUnknown_08E9A300
- thumb_func_end sub_806BC3C
-
- thumb_func_start unref_sub_806BCB8
-unref_sub_806BCB8: @ 806BCB8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _0806BCE4
- ldrb r1, [r0]
- cmp r4, r1
- bcs _0806BCDE
- adds r6, r0, 0
-_0806BCCA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806BC3C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0806BCCA
-_0806BCDE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BCE4: .4byte gPlayerPartyCount
- thumb_func_end unref_sub_806BCB8
-
- thumb_func_start sub_806BCE8
-sub_806BCE8: @ 806BCE8
- push {r4,r5,lr}
- movs r5, 0
- b _0806BD46
-_0806BCEE:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0806BD20
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806BD38
- adds r0, r4, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806BD24
- cmp r0, 0xFE
- beq _0806BD2E
- adds r0, r5, 0
- movs r1, 0x46
- bl sub_806BC3C
- b _0806BD40
- .align 2, 0
-_0806BD20: .4byte gPlayerParty
-_0806BD24:
- adds r0, r5, 0
- movs r1, 0x54
- bl sub_806BC3C
- b _0806BD40
-_0806BD2E:
- adds r0, r5, 0
- movs r1, 0x62
- bl sub_806BC3C
- b _0806BD40
-_0806BD38:
- adds r0, r5, 0
- movs r1, 0x46
- bl sub_806BC3C
-_0806BD40:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0806BD46:
- ldr r0, _0806BD54
- ldrb r0, [r0]
- cmp r5, r0
- bcc _0806BCEE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BD54: .4byte gPlayerPartyCount
- thumb_func_end sub_806BCE8
-
- thumb_func_start sub_806BD58
-sub_806BD58: @ 806BD58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806BD7C
- bl object_new_hidden_with_callback
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806CA18
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD7C: .4byte SpriteCallbackDummy
- thumb_func_end sub_806BD58
-
- thumb_func_start sub_806BD80
-sub_806BD80: @ 806BD80
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _0806BD9C
- ldrh r0, [r0, 0x30]
- cmp r0, 0x20
- beq _0806BDB2
- cmp r0, 0x20
- bgt _0806BDA0
- cmp r0, 0x10
- beq _0806BDB6
- b _0806BDB8
- .align 2, 0
-_0806BD9C: .4byte gMain
-_0806BDA0:
- cmp r0, 0x40
- beq _0806BDAA
- cmp r0, 0x80
- beq _0806BDAE
- b _0806BDB8
-_0806BDAA:
- movs r4, 0xFF
- b _0806BDB8
-_0806BDAE:
- movs r4, 0x1
- b _0806BDB8
-_0806BDB2:
- movs r4, 0xFE
- b _0806BDB8
-_0806BDB6:
- movs r4, 0x2
-_0806BDB8:
- lsls r0, r4, 24
- cmp r0, 0
- bne _0806BDDC
- bl sub_80F92BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BDD0
- cmp r0, 0x2
- beq _0806BDD4
- b _0806BDD6
-_0806BDD0:
- movs r4, 0xFF
- b _0806BDD6
-_0806BDD4:
- movs r4, 0x1
-_0806BDD6:
- lsls r0, r4, 24
- cmp r0, 0
- beq _0806BDF0
-_0806BDDC:
- asrs r1, r0, 24
- adds r0, r5, 0
- bl sub_806BF74
- ldr r0, _0806BDEC
- ldrh r0, [r0, 0x30]
- b _0806BE2C
- .align 2, 0
-_0806BDEC: .4byte gMain
-_0806BDF0:
- ldr r0, _0806BE1C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806BE24
- ldr r4, _0806BE20
- adds r0, r5, 0
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x7
- bne _0806BE24
- movs r0, 0x2
- b _0806BE2C
- .align 2, 0
-_0806BE1C: .4byte gMain
-_0806BE20: .4byte gSprites
-_0806BE24:
- ldr r0, _0806BE34
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
-_0806BE2C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BE34: .4byte gMain
- thumb_func_end sub_806BD80
-
- thumb_func_start sub_806BE38
-sub_806BE38: @ 806BE38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _0806BE54
- ldrh r1, [r0, 0x30]
- adds r6, r0, 0
- cmp r1, 0x20
- beq _0806BE6A
- cmp r1, 0x20
- bgt _0806BE58
- cmp r1, 0x10
- beq _0806BE6E
- b _0806BE70
- .align 2, 0
-_0806BE54: .4byte gMain
-_0806BE58:
- cmp r1, 0x40
- beq _0806BE62
- cmp r1, 0x80
- beq _0806BE66
- b _0806BE70
-_0806BE62:
- movs r4, 0xFF
- b _0806BE8E
-_0806BE66:
- movs r4, 0x1
- b _0806BE8E
-_0806BE6A:
- movs r4, 0xFE
- b _0806BE8E
-_0806BE6E:
- movs r4, 0x2
-_0806BE70:
- cmp r4, 0
- bne _0806BE8E
- bl sub_80F92BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BE86
- cmp r0, 0x2
- beq _0806BE8A
- b _0806BE8C
-_0806BE86:
- movs r4, 0xFF
- b _0806BE8C
-_0806BE8A:
- movs r4, 0x1
-_0806BE8C:
- ldr r6, _0806BEA4
-_0806BE8E:
- ldrh r2, [r6, 0x2E]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0806BEA8
- adds r0, r5, 0
- bl sub_806C890
- movs r0, 0x8
- b _0806BEF0
- .align 2, 0
-_0806BEA4: .4byte gMain
-_0806BEA8:
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0806BEBA
- adds r0, r5, 0
- bl sub_806C658
- ldrh r0, [r6, 0x30]
- b _0806BEF0
-_0806BEBA:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0806BEE8
- ldr r4, _0806BEE4
- adds r0, r5, 0
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x7
- bne _0806BEE8
- movs r0, 0x2
- b _0806BEF0
- .align 2, 0
-_0806BEE4: .4byte gSprites
-_0806BEE8:
- ldr r0, _0806BEF8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
-_0806BEF0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BEF8: .4byte gMain
- thumb_func_end sub_806BE38
-
- thumb_func_start task_pc_turn_off
-task_pc_turn_off: @ 806BEFC
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- ldrb r0, [r2]
- cmp r0, 0
- beq _0806BF14
- ldrb r1, [r2, 0x1]
- movs r2, 0
- bl sub_806BA94
- b _0806BF1E
-_0806BF14:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- adds r2, r3, 0
- bl sub_806B9A4
-_0806BF1E:
- pop {r0}
- bx r0
- thumb_func_end task_pc_turn_off
-
- thumb_func_start sub_806BF24
-sub_806BF24: @ 806BF24
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0806BF70
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806BF56
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0806BF56
- movs r4, 0x5
-_0806BF56:
- cmp r6, 0x1
- bne _0806BF60
- adds r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
-_0806BF60:
- adds r0, r7, 0
- adds r1, r4, 0
- bl task_pc_turn_off
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BF70: .4byte gPlayerParty
- thumb_func_end sub_806BF24
-
- thumb_func_start sub_806BF74
-sub_806BF74: @ 806BF74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806C0C4
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r9
- adds r1, r5, 0
- movs r2, 0
- bl sub_806DA44
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BFB6
- b _0806C0D8
-_0806BFB6:
- cmp r5, 0
- beq _0806BFC2
- cmp r5, 0x2
- beq _0806BFC2
- cmp r5, 0x3
- bne _0806BFD2
-_0806BFC2:
- lsls r0, r5, 1
- ldr r1, _0806C0C8
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
-_0806BFD2:
- cmp r5, 0x1
- beq _0806BFDE
- cmp r5, 0x4
- beq _0806BFDE
- cmp r5, 0x5
- bne _0806BFEE
-_0806BFDE:
- lsls r0, r5, 1
- ldr r1, _0806C0C8
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x4
- movs r3, 0
- bl sub_806BF24
-_0806BFEE:
- cmp r5, 0x7
- bne _0806BFF8
- movs r0, 0x1
- bl sub_806BBEC
-_0806BFF8:
- lsls r2, r4, 24
- asrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806C490
- ldr r2, _0806C0C4
- lsls r1, r6, 4
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0
- beq _0806C020
- cmp r0, 0x2
- beq _0806C020
- cmp r0, 0x3
- bne _0806C042
-_0806C020:
- ldr r0, _0806C0C4
- mov r4, r8
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r7, 0x2E
- ldrsh r0, [r1, r7]
- lsls r0, 1
- ldr r2, _0806C0C8
- adds r0, r2
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
-_0806C042:
- ldr r1, _0806C0C4
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- movs r4, 0x2E
- ldrsh r0, [r0, r4]
- cmp r0, 0x1
- beq _0806C05C
- cmp r0, 0x4
- beq _0806C05C
- cmp r0, 0x5
- bne _0806C07E
-_0806C05C:
- ldr r0, _0806C0C4
- mov r7, r8
- adds r1, r7, r6
- lsls r1, 2
- adds r1, r0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r2, _0806C0C8
- adds r0, r2
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x4
- movs r3, 0x1
- bl sub_806BF24
-_0806C07E:
- ldr r7, _0806C0C4
- mov r4, r8
- adds r0, r4, r6
- lsls r0, 2
- adds r4, r0, r7
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _0806C096
- movs r0, 0x2
- bl sub_806BBEC
-_0806C096:
- ldr r0, _0806C0CC
- ldr r2, _0806C0D0
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- ldr r1, _0806C0D4
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- adds r0, 0x40
- ldrb r0, [r0]
- strh r0, [r4, 0x20]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- adds r0, 0x41
- ldrb r0, [r0]
- strh r0, [r4, 0x22]
- adds r0, r7, 0
- b _0806C1A4
- .align 2, 0
-_0806C0C4: .4byte gSprites
-_0806C0C8: .4byte gUnknown_083769C0
-_0806C0CC: .4byte 0x0201b000
-_0806C0D0: .4byte 0x00000261
-_0806C0D4: .4byte gUnknown_083768B8
-_0806C0D8:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r5, 0x5
- bhi _0806C104
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- lsls r1, r5, 1
- adds r0, r1
- ldr r1, _0806C100
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- b _0806C10A
- .align 2, 0
-_0806C100: .4byte gUnknown_083769A8
-_0806C104:
- movs r0, 0x1
- bl sub_806BBEC
-_0806C10A:
- cmp r7, 0
- bne _0806C11C
- lsls r2, r4, 24
- asrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806C1E4
- b _0806C128
-_0806C11C:
- lsls r2, r4, 24
- asrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806C310
-_0806C128:
- ldr r1, _0806C160
- lsls r2, r6, 4
- adds r0, r2, r6
- lsls r0, 2
- adds r1, r0, r1
- ldrh r3, [r1, 0x2E]
- movs r4, 0x2E
- ldrsh r0, [r1, r4]
- mov r8, r2
- cmp r0, 0x5
- bgt _0806C168
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- movs r2, 0x2E
- ldrsh r1, [r1, r2]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0806C164
- adds r0, r1
- lsls r1, r3, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
- b _0806C16E
- .align 2, 0
-_0806C160: .4byte gSprites
-_0806C164: .4byte gUnknown_083769A8
-_0806C168:
- movs r0, 0x2
- bl sub_806BBEC
-_0806C16E:
- ldr r0, _0806C1D4
- ldr r4, _0806C1D8
- adds r0, r4
- movs r1, 0x2
- strb r1, [r0]
- ldr r4, _0806C1DC
- mov r0, r8
- adds r1, r0, r6
- lsls r1, 2
- adds r1, r4
- ldr r3, _0806C1E0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 2
- lsls r2, r7, 5
- adds r0, r2
- adds r0, r3
- ldrb r0, [r0]
- strh r0, [r1, 0x20]
- movs r7, 0x2E
- ldrsh r0, [r1, r7]
- lsls r0, 2
- adds r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x22]
- adds r0, r4, 0
-_0806C1A4:
- mov r1, r8
- adds r4, r1, r6
- lsls r4, 2
- adds r4, r0
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- movs r2, 0x1
- bl sub_806DA44
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r5, r0
- beq _0806C1C8
- movs r0, 0x5
- bl PlaySE
-_0806C1C8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C1D4: .4byte 0x0201b000
-_0806C1D8: .4byte 0x00000261
-_0806C1DC: .4byte gSprites
-_0806C1E0: .4byte gUnknown_083768B8
- thumb_func_end sub_806BF74
-
- thumb_func_start sub_806C1E4
-sub_806C1E4: @ 806C1E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- asrs r0, r2, 24
- cmp r0, 0x4
- bls _0806C200
- b _0806C306
-_0806C200:
- lsls r0, 2
- ldr r1, _0806C20C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C20C: .4byte _0806C210
- .align 2, 0
-_0806C210:
- .4byte _0806C2EC
- .4byte _0806C238
- .4byte _0806C224
- .4byte _0806C25C
- .4byte _0806C2BC
-_0806C224:
- ldr r0, _0806C234
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x30]
- b _0806C306
- .align 2, 0
-_0806C234: .4byte gSprites
-_0806C238:
- cmp r3, 0
- beq _0806C266
- cmp r3, 0x7
- bne _0806C298
- ldr r2, _0806C254
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- ldr r0, _0806C258
- ldrb r0, [r0]
- subs r0, 0x1
- b _0806C2AA
- .align 2, 0
-_0806C254: .4byte gSprites
-_0806C258: .4byte gPlayerPartyCount
-_0806C25C:
- ldr r0, _0806C278
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- bne _0806C280
-_0806C266:
- ldr r2, _0806C27C
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0x7
- strh r1, [r0, 0x2E]
- b _0806C2AC
- .align 2, 0
-_0806C278: .4byte gPlayerPartyCount
-_0806C27C: .4byte gSprites
-_0806C280:
- cmp r3, 0x7
- bne _0806C298
- ldr r2, _0806C294
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _0806C2AC
- .align 2, 0
-_0806C294: .4byte gSprites
-_0806C298:
- ldr r2, _0806C2B8
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- lsls r0, r5, 24
- asrs r0, 24
- ldrh r5, [r1, 0x2E]
- adds r0, r5
-_0806C2AA:
- strh r0, [r1, 0x2E]
-_0806C2AC:
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C306
- .align 2, 0
-_0806C2B8: .4byte gSprites
-_0806C2BC:
- ldr r0, _0806C2E4
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0806C306
- cmp r3, 0
- bne _0806C306
- ldr r0, _0806C2E8
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0806C2DE
- movs r0, 0x1
- strh r0, [r1, 0x30]
-_0806C2DE:
- ldrh r0, [r1, 0x30]
- strh r0, [r1, 0x2E]
- b _0806C306
- .align 2, 0
-_0806C2E4: .4byte gPlayerPartyCount
-_0806C2E8: .4byte gSprites
-_0806C2EC:
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _0806C306
- ldr r0, _0806C30C
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
-_0806C306:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C30C: .4byte gSprites
- thumb_func_end sub_806C1E4
-
- thumb_func_start sub_806C310
-sub_806C310: @ 806C310
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- asrs r0, r2, 24
- cmp r0, 0x4
- bls _0806C32C
- b _0806C486
-_0806C32C:
- lsls r0, 2
- ldr r1, _0806C338
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C338: .4byte _0806C33C
- .align 2, 0
-_0806C33C:
- .4byte _0806C44E
- .4byte _0806C38C
- .4byte _0806C350
- .4byte _0806C364
- .4byte _0806C3E8
-_0806C350:
- ldr r0, _0806C360
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x30]
- b _0806C486
- .align 2, 0
-_0806C360: .4byte gSprites
-_0806C364:
- cmp r3, 0x7
- bne _0806C37C
- ldr r2, _0806C378
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _0806C3D8
- .align 2, 0
-_0806C378: .4byte gSprites
-_0806C37C:
- ldr r0, _0806C388
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- beq _0806C390
- b _0806C3C4
- .align 2, 0
-_0806C388: .4byte gPlayerPartyCount
-_0806C38C:
- cmp r3, 0
- bne _0806C3A4
-_0806C390:
- ldr r2, _0806C3A0
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0x7
- strh r1, [r0, 0x2E]
- b _0806C3D8
- .align 2, 0
-_0806C3A0: .4byte gSprites
-_0806C3A4:
- cmp r3, 0x7
- bne _0806C3C4
- ldr r2, _0806C3BC
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- ldr r0, _0806C3C0
- ldrb r0, [r0]
- subs r0, 0x1
- b _0806C3D6
- .align 2, 0
-_0806C3BC: .4byte gSprites
-_0806C3C0: .4byte gPlayerPartyCount
-_0806C3C4:
- ldr r2, _0806C3E4
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- lsls r0, r5, 24
- asrs r0, 24
- ldrh r5, [r1, 0x2E]
- adds r0, r5
-_0806C3D6:
- strh r0, [r1, 0x2E]
-_0806C3D8:
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C486
- .align 2, 0
-_0806C3E4: .4byte gSprites
-_0806C3E8:
- cmp r3, 0
- bne _0806C418
- ldr r0, _0806C410
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _0806C486
- ldr r0, _0806C414
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x30]
- subs r0, r2, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0806C43A
- movs r0, 0x2
- strh r0, [r1, 0x2E]
- b _0806C486
- .align 2, 0
-_0806C410: .4byte gPlayerPartyCount
-_0806C414: .4byte gSprites
-_0806C418:
- cmp r3, 0x1
- bne _0806C486
- ldr r0, _0806C440
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0806C486
- ldr r0, _0806C444
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x30]
- subs r0, r2, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0806C448
-_0806C43A:
- strh r2, [r1, 0x2E]
- b _0806C486
- .align 2, 0
-_0806C440: .4byte gPlayerPartyCount
-_0806C444: .4byte gSprites
-_0806C448:
- movs r0, 0x4
- strh r0, [r1, 0x2E]
- b _0806C486
-_0806C44E:
- subs r0, r3, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C46C
- ldr r0, _0806C468
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- b _0806C482
- .align 2, 0
-_0806C468: .4byte gSprites
-_0806C46C:
- subs r0, r3, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C486
- ldr r0, _0806C48C
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
-_0806C482:
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
-_0806C486:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C48C: .4byte gSprites
- thumb_func_end sub_806C310
-
- thumb_func_start sub_806C490
-sub_806C490: @ 806C490
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- asrs r0, r2, 24
- cmp r0, 0x4
- bls _0806C4AA
- b _0806C64E
-_0806C4AA:
- lsls r0, 2
- ldr r1, _0806C4B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C4B4: .4byte _0806C4B8
- .align 2, 0
-_0806C4B8:
- .4byte _0806C618
- .4byte _0806C524
- .4byte _0806C4CC
- .4byte _0806C4E0
- .4byte _0806C57C
-_0806C4CC:
- ldr r0, _0806C4DC
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x30]
- b _0806C64E
- .align 2, 0
-_0806C4DC: .4byte gSprites
-_0806C4E0:
- cmp r4, 0x7
- bne _0806C4FC
- ldr r2, _0806C4F8
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- adds r1, r2, 0
- adds r6, r3, 0
- b _0806C566
- .align 2, 0
-_0806C4F8: .4byte gSprites
-_0806C4FC:
- lsls r6, r5, 4
- b _0806C518
-_0806C500:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0806C520
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0806C528
-_0806C518:
- cmp r4, 0x5
- bne _0806C500
- b _0806C558
- .align 2, 0
-_0806C520: .4byte gPlayerParty
-_0806C524:
- lsls r6, r5, 4
- b _0806C554
-_0806C528:
- ldr r1, _0806C534
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x2E]
- b _0806C566
- .align 2, 0
-_0806C534: .4byte gSprites
-_0806C538:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0806C554
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0806C574
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0806C528
-_0806C554:
- cmp r4, 0
- bne _0806C538
-_0806C558:
- ldr r0, _0806C578
- adds r1, r6, r5
- lsls r1, 2
- adds r1, r0
- movs r2, 0x7
- strh r2, [r1, 0x2E]
- adds r1, r0, 0
-_0806C566:
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C64E
- .align 2, 0
-_0806C574: .4byte gPlayerParty
-_0806C578: .4byte gSprites
-_0806C57C:
- cmp r4, 0
- bne _0806C5C8
- ldr r0, _0806C5AC
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r4, r1, r0
- ldrh r1, [r4, 0x30]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0806C5E2
- ldr r5, _0806C5B0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806C5B4
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- b _0806C64E
- .align 2, 0
-_0806C5AC: .4byte gSprites
-_0806C5B0: .4byte gUnknown_03004428
-_0806C5B4:
- adds r0, r5, 0
- adds r0, 0x64
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806C64E
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- b _0806C64E
-_0806C5C8:
- cmp r4, 0x1
- bne _0806C64E
- ldr r0, _0806C5E8
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r4, r1, r0
- ldrh r1, [r4, 0x30]
- subs r0, r1, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0806C5EC
-_0806C5E2:
- strh r1, [r4, 0x2E]
- b _0806C64E
- .align 2, 0
-_0806C5E8: .4byte gSprites
-_0806C5EC:
- ldr r5, _0806C600
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806C604
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- b _0806C64E
- .align 2, 0
-_0806C600: .4byte gUnknown_030044F0
-_0806C604:
- adds r0, r5, 0
- adds r0, 0x64
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806C64E
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- b _0806C64E
-_0806C618:
- subs r0, r4, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C634
- ldr r0, _0806C630
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- b _0806C64A
- .align 2, 0
-_0806C630: .4byte gSprites
-_0806C634:
- subs r0, r4, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C64E
- ldr r0, _0806C654
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
-_0806C64A:
- strh r0, [r1, 0x2E]
- strh r4, [r1, 0x30]
-_0806C64E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C654: .4byte gSprites
- thumb_func_end sub_806C490
-
- thumb_func_start sub_806C658
-sub_806C658: @ 806C658
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0806C6A0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl sub_806DA44
- cmp r6, 0x5
- bhi _0806C6A8
- lsls r0, r6, 1
- ldr r1, _0806C6A4
- adds r0, r1
- adds r1, r6, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- b _0806C6BA
- .align 2, 0
-_0806C6A0: .4byte gSprites
-_0806C6A4: .4byte gUnknown_083769A8
-_0806C6A8:
- cmp r6, 0x6
- bne _0806C6B4
- movs r0, 0x1
- bl sub_806BB9C
- b _0806C6BA
-_0806C6B4:
- movs r0, 0x1
- bl sub_806BBEC
-_0806C6BA:
- lsls r1, r4, 24
- movs r2, 0x80
- lsls r2, 18
- adds r0, r1, r2
- asrs r0, 24
- lsls r4, r5, 4
- adds r7, r1, 0
- cmp r0, 0x4
- bls _0806C6CE
- b _0806C7EA
-_0806C6CE:
- lsls r0, 2
- ldr r1, _0806C6D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C6D8: .4byte _0806C6DC
- .align 2, 0
-_0806C6DC:
- .4byte _0806C7D0
- .4byte _0806C708
- .4byte _0806C6F0
- .4byte _0806C740
- .4byte _0806C7A0
-_0806C6F0:
- ldr r1, _0806C704
- lsls r2, r5, 4
- adds r0, r2, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x30]
- adds r4, r2, 0
- b _0806C7EA
- .align 2, 0
-_0806C704: .4byte gSprites
-_0806C708:
- cmp r6, 0
- bne _0806C720
- ldr r2, _0806C71C
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x7
- strh r1, [r0, 0x2E]
- b _0806C78E
- .align 2, 0
-_0806C71C: .4byte gSprites
-_0806C720:
- cmp r6, 0x6
- bne _0806C77C
- ldr r2, _0806C738
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldr r0, _0806C73C
- ldrb r0, [r0]
- subs r0, 0x1
- b _0806C78C
- .align 2, 0
-_0806C738: .4byte gSprites
-_0806C73C: .4byte gPlayerPartyCount
-_0806C740:
- ldr r0, _0806C75C
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- bne _0806C764
- ldr r2, _0806C760
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- b _0806C78E
- .align 2, 0
-_0806C75C: .4byte gPlayerPartyCount
-_0806C760: .4byte gSprites
-_0806C764:
- cmp r6, 0x7
- bne _0806C77C
- ldr r2, _0806C778
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _0806C78E
- .align 2, 0
-_0806C778: .4byte gSprites
-_0806C77C:
- ldr r2, _0806C79C
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- asrs r0, r7, 24
- ldrh r4, [r1, 0x2E]
- adds r0, r4
-_0806C78C:
- strh r0, [r1, 0x2E]
-_0806C78E:
- adds r4, r3, 0
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C7EA
- .align 2, 0
-_0806C79C: .4byte gSprites
-_0806C7A0:
- ldr r0, _0806C7C8
- ldrb r0, [r0]
- lsls r4, r5, 4
- cmp r0, 0x1
- bls _0806C7EA
- cmp r6, 0
- bne _0806C7EA
- ldr r0, _0806C7CC
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0806C7C2
- movs r0, 0x1
- strh r0, [r1, 0x30]
-_0806C7C2:
- ldrh r0, [r1, 0x30]
- strh r0, [r1, 0x2E]
- b _0806C7EA
- .align 2, 0
-_0806C7C8: .4byte gPlayerPartyCount
-_0806C7CC: .4byte gSprites
-_0806C7D0:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r5, 4
- cmp r0, 0x4
- bhi _0806C7EA
- ldr r0, _0806C82C
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r6, [r1, 0x30]
-_0806C7EA:
- ldr r1, _0806C82C
- adds r0, r4, r5
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, _0806C830
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2, 0x20]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2, 0x22]
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x5
- bgt _0806C838
- lsls r0, 1
- ldr r1, _0806C834
- adds r0, r1
- lsls r1, r3, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
- b _0806C84A
- .align 2, 0
-_0806C82C: .4byte gSprites
-_0806C830: .4byte gUnknown_083768B8
-_0806C834: .4byte gUnknown_083769A8
-_0806C838:
- cmp r0, 0x6
- bne _0806C844
- movs r0, 0x2
- bl sub_806BB9C
- b _0806C84A
-_0806C844:
- movs r0, 0x2
- bl sub_806BBEC
-_0806C84A:
- ldr r0, _0806C884
- ldr r2, _0806C888
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _0806C88C
- adds r4, r5
- lsls r4, 2
- adds r4, r0
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- movs r2, 0x1
- bl sub_806DA44
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r6, r0
- beq _0806C878
- movs r0, 0x5
- bl PlaySE
-_0806C878:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C884: .4byte 0x0201b000
-_0806C888: .4byte 0x00000261
-_0806C88C: .4byte gSprites
- thumb_func_end sub_806C658
-
- thumb_func_start sub_806C890
-sub_806C890: @ 806C890
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_806CA00
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0806C8D4
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0806C914
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- bl sub_806DA44
- cmp r4, 0x5
- bhi _0806C8DC
- lsls r0, r4, 1
- ldr r1, _0806C8D8
- adds r0, r1
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- b _0806C8E2
- .align 2, 0
-_0806C8D4: .4byte gSprites
-_0806C8D8: .4byte gUnknown_083769A8
-_0806C8DC:
- movs r0, 0x1
- bl sub_806BBEC
-_0806C8E2:
- ldr r1, _0806C91C
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x30]
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldr r2, _0806C920
- ldrb r1, [r2, 0x18]
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x19]
- strh r1, [r0, 0x22]
- movs r0, 0x2
- bl sub_806BB9C
- ldr r0, _0806C924
- ldr r1, _0806C928
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x5
- bl PlaySE
-_0806C914:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C91C: .4byte gSprites
-_0806C920: .4byte gUnknown_083768B8
-_0806C924: .4byte 0x0201b000
-_0806C928: .4byte 0x00000261
- thumb_func_end sub_806C890
-
- thumb_func_start sub_806C92C
-sub_806C92C: @ 806C92C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806C960
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r1, 0x30]
- lsls r0, 24
- lsrs r4, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806C96A
- cmp r6, 0
- bne _0806C964
- cmp r4, 0
- bne _0806C97C
- movs r4, 0x1
- b _0806C97C
- .align 2, 0
-_0806C960: .4byte gSprites
-_0806C964:
- cmp r4, 0
- beq _0806C97C
- b _0806C97A
-_0806C96A:
- cmp r6, 0x1
- bhi _0806C976
- cmp r4, 0x1
- bhi _0806C97C
- movs r4, 0x2
- b _0806C97C
-_0806C976:
- cmp r4, 0x1
- bls _0806C97C
-_0806C97A:
- movs r4, 0
-_0806C97C:
- ldr r1, _0806C990
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C990: .4byte gSprites
- thumb_func_end sub_806C92C
-
- thumb_func_start sub_806C994
-sub_806C994: @ 806C994
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806C9C0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r4, [r1, 0x2E]
- bl sub_806C92C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C9C0: .4byte gSprites
- thumb_func_end sub_806C994
-
- thumb_func_start sub_806C9C4
-sub_806C9C4: @ 806C9C4
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806C9FC
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r2, r3
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r1, 0x20]
- strh r0, [r2, 0x20]
- ldrh r0, [r1, 0x22]
- strh r0, [r2, 0x22]
- ldrh r0, [r1, 0x2E]
- strh r0, [r2, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C9FC: .4byte gSprites
- thumb_func_end sub_806C9C4
-
- thumb_func_start sub_806CA00
-sub_806CA00: @ 806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806CA14
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0xE]
- lsrs r0, 8
- bx lr
- .align 2, 0
-_0806CA14: .4byte gTasks
- thumb_func_end sub_806CA00
-
- thumb_func_start sub_806CA18
-sub_806CA18: @ 806CA18
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _0806CA34
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r0, [r2, 0xE]
- lsrs r1, 16
- orrs r0, r1
- strh r0, [r2, 0xE]
- bx lr
- .align 2, 0
-_0806CA34: .4byte gTasks
- thumb_func_end sub_806CA18
-
- thumb_func_start sub_806CA38
-sub_806CA38: @ 806CA38
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806CA5C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806CA5C: .4byte gSprites
- thumb_func_end sub_806CA38
-
- thumb_func_start sub_806CA60
-sub_806CA60: @ 806CA60
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0806CAD8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CADC
- str r1, [r0]
- ldr r5, _0806CAE0
- strb r4, [r5]
- ldr r0, _0806CAE4
- movs r1, 0
- bl CreateTask
- ldr r0, _0806CAE8
- bl object_new_hidden_with_callback
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x1]
- adds r0, r4, 0
- bl sub_806C9C4
- adds r0, r4, 0
- bl sub_806CA00
- strb r0, [r5, 0x2]
- ldr r1, _0806CAEC
- adds r0, r5, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_806D538
- ldr r2, _0806CAF0
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r2, _0806CAF4
- adds r0, r2
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0
- bl sub_806BF24
- ldr r0, _0806CAF8
- adds r5, r0
- movs r0, 0x2
- strb r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CAD8: .4byte gTasks
-_0806CADC: .4byte TaskDummy
-_0806CAE0: .4byte 0x02001000
-_0806CAE4: .4byte sub_806CB74
-_0806CAE8: .4byte SpriteCallbackDummy
-_0806CAEC: .4byte 0x0001a272
-_0806CAF0: .4byte gSprites
-_0806CAF4: .4byte gUnknown_083769A8
-_0806CAF8: .4byte 0x0001a261
- thumb_func_end sub_806CA60
-
- thumb_func_start sub_806CAFC
-sub_806CAFC: @ 806CAFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0806CB48
- ldrb r3, [r4, 0x1]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- ldr r3, _0806CB4C
- adds r5, r2, r3
- ldrb r2, [r4, 0x2]
- lsls r4, r2, 4
- adds r4, r2
- lsls r4, 2
- adds r4, r3
- lsls r1, 24
- asrs r1, 24
- bl sub_806BF74
- ldrh r2, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _0806CB54
- adds r0, r1, 0
- lsls r0, 1
- ldr r1, _0806CB50
- adds r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0x1
- bl sub_806BF24
- b _0806CB6A
- .align 2, 0
-_0806CB48: .4byte 0x02001000
-_0806CB4C: .4byte gSprites
-_0806CB50: .4byte gUnknown_083769A8
-_0806CB54:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- lsls r0, 1
- ldr r1, _0806CB70
- adds r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0
- bl sub_806BF24
-_0806CB6A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CB70: .4byte gUnknown_083769A8
- thumb_func_end sub_806CAFC
-
- thumb_func_start sub_806CB74
-sub_806CB74: @ 806CB74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806CB8C
- ldrh r0, [r0, 0x30]
- cmp r0, 0x20
- beq _0806CBBC
- cmp r0, 0x20
- bgt _0806CB90
- cmp r0, 0x10
- beq _0806CBD0
- b _0806CBDA
- .align 2, 0
-_0806CB8C: .4byte gMain
-_0806CB90:
- cmp r0, 0x40
- beq _0806CB9A
- cmp r0, 0x80
- beq _0806CBAC
- b _0806CBDA
-_0806CB9A:
- ldr r0, _0806CBA8
- ldrb r0, [r0]
- movs r1, 0x1
- negs r1, r1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBA8: .4byte 0x02001000
-_0806CBAC:
- ldr r0, _0806CBB8
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBB8: .4byte 0x02001000
-_0806CBBC:
- ldr r0, _0806CBCC
- ldrb r0, [r0]
- movs r1, 0x2
- negs r1, r1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBCC: .4byte 0x02001000
-_0806CBD0:
- ldr r0, _0806CC04
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_806CAFC
-_0806CBDA:
- ldr r0, _0806CC08
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806CC10
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0806CC0C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CC04
- ldr r1, [r1, 0xC]
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _0806CC24
- .align 2, 0
-_0806CC04: .4byte 0x02001000
-_0806CC08: .4byte gMain
-_0806CC0C: .4byte gTasks
-_0806CC10:
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0806CC24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CD44
-_0806CC24:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806CB74
-
- thumb_func_start sub_806CC2C
-sub_806CC2C: @ 806CC2C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0806CC68
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0806CC6C
- adds r0, r1
- bl DestroySprite
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0806CC70
- adds r1, r5, r0
- movs r0, 0x2
- strb r0, [r1]
- ldrb r0, [r5]
- bl SwitchTaskToFollowupFunc
- adds r0, r4, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CC68: .4byte 0x02001000
-_0806CC6C: .4byte gSprites
-_0806CC70: .4byte 0x0001a261
- thumb_func_end sub_806CC2C
-
- thumb_func_start sub_806CC74
-sub_806CC74: @ 806CC74
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806CCD8
- mov r8, r0
- ldr r6, _0806CCDC
- ldrb r0, [r6, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r5, _0806CCE0
- adds r0, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
- ldrb r0, [r6, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- adds r0, r4, 0
- bl sub_806CC2C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CCD8: .4byte gSprites
-_0806CCDC: .4byte 0x02001000
-_0806CCE0: .4byte gUnknown_083769A8
- thumb_func_end sub_806CC74
-
- thumb_func_start sub_806CCE4
-sub_806CCE4: @ 806CCE4
- push {r4,r5,lr}
- ldr r3, _0806CD38
- ldr r2, _0806CD3C
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r4, 0x5
- bhi _0806CD1E
- lsls r0, r4, 1
- ldr r1, _0806CD40
- adds r0, r1
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
-_0806CD1E:
- cmp r5, 0x5
- bhi _0806CD32
- lsls r0, r5, 1
- ldr r1, _0806CD40
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
-_0806CD32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CD38: .4byte gSprites
-_0806CD3C: .4byte 0x02001000
-_0806CD40: .4byte gUnknown_083769A8
- thumb_func_end sub_806CCE4
-
- thumb_func_start sub_806CD44
-sub_806CD44: @ 806CD44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_806CCE4
- adds r0, r4, 0
- bl sub_806CC2C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806CD44
-
- thumb_func_start sub_806CD5C
-sub_806CD5C: @ 806CD5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _0806CDA8
- ldr r6, _0806CDAC
- ldrb r1, [r6, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- mov r9, r5
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- cmp r5, r4
- beq _0806CD9E
- cmp r5, 0x7
- beq _0806CD9E
- cmp r4, 0x7
- bne _0806CDB0
-_0806CD9E:
- mov r0, r8
- bl sub_806CD44
- b _0806CED2
- .align 2, 0
-_0806CDA8: .4byte gSprites
-_0806CDAC: .4byte 0x02001000
-_0806CDB0:
- adds r0, r5, 0
- bl sub_806D5B8
- adds r0, r4, 0
- bl sub_806D5B8
- cmp r5, r4
- bls _0806CDC6
- strb r4, [r6, 0x5]
- strb r5, [r6, 0x6]
- b _0806CDCC
-_0806CDC6:
- mov r0, r9
- strb r0, [r6, 0x5]
- strb r7, [r6, 0x6]
-_0806CDCC:
- ldr r4, _0806CE1C
- ldrb r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806DDA0
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- ldrb r1, [r4, 0x6]
- bl sub_806DDA0
- strb r0, [r4, 0x4]
- ldrb r3, [r4, 0x5]
- cmp r3, 0
- bne _0806CE34
- ldr r2, _0806CE20
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0806CE24
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0806CE28
- strh r1, [r0, 0x32]
- strh r3, [r4, 0x8]
- movs r0, 0xB
- strh r0, [r4, 0xA]
- ldr r1, _0806CE2C
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CE30
- b _0806CE66
- .align 2, 0
-_0806CE1C: .4byte 0x02001000
-_0806CE20: .4byte gSprites
-_0806CE24: .4byte 0x0000fff8
-_0806CE28: .4byte 0x0000ff58
-_0806CE2C: .4byte gTasks
-_0806CE30: .4byte sub_806D014
-_0806CE34:
- ldr r2, _0806CEE0
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0xA8
- strh r1, [r0, 0x32]
- movs r0, 0xB
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r1, _0806CEE4
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CEE8
-_0806CE66:
- str r1, [r0]
- ldr r0, _0806CEEC
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- adds r6, r2, 0
- ldr r4, _0806CEF0
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r0, r5
- ldr r2, _0806CEF4
- str r2, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0xA8
- strh r1, [r0, 0x32]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r2, [r0]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- adds r0, r6
- ldr r1, [r1]
- bl _call_via_r1
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r5
- adds r0, r6
- ldr r1, [r5]
- bl _call_via_r1
-_0806CED2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CEE0: .4byte gSprites
-_0806CEE4: .4byte gTasks
-_0806CEE8: .4byte sub_806D118
-_0806CEEC: .4byte 0x0001a261
-_0806CEF0: .4byte 0x02001000
-_0806CEF4: .4byte sub_806D37C
- thumb_func_end sub_806CD5C
-
- thumb_func_start sub_806CEF8
-sub_806CEF8: @ 806CEF8
- ldrh r3, [r0]
- ldrh r2, [r1]
- strh r2, [r0]
- strh r3, [r1]
- bx lr
- thumb_func_end sub_806CEF8
-
- thumb_func_start sub_806CF04
-sub_806CF04: @ 806CF04
- push {r4,r5,lr}
- ldr r4, _0806CF94
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0806CF98
- adds r0, r5
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0x2
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0x4
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0
- adds r3, 0xE
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- subs r5, 0x4
- adds r0, r5
- ldr r2, _0806CF9C
- str r2, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CF94: .4byte 0x02001000
-_0806CF98: .4byte gSprites + 0x20
-_0806CF9C: .4byte sub_806D37C
- thumb_func_end sub_806CF04
-
- thumb_func_start sub_806CFA0
-sub_806CFA0: @ 806CFA0
- push {r4-r6,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r5, _0806CFDC
- ldrb r1, [r5, 0x6]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- movs r1, 0x3
- bl sub_806BA34
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- adds r1, r6, 0
- bl sub_806BB3C
- cmp r4, 0
- bne _0806CFE0
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- b _0806CFEA
- .align 2, 0
-_0806CFDC: .4byte 0x02001000
-_0806CFE0:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
-_0806CFEA:
- strh r0, [r5, 0xA]
- ldr r4, _0806D010
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- movs r2, 0xA
- bl sub_806B9A4
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D010: .4byte 0x02001000
- thumb_func_end sub_806CFA0
-
- thumb_func_start sub_806D014
-sub_806D014: @ 806D014
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_806CFA0
- ldr r2, _0806D050
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- movs r0, 0xD
- negs r0, r0
- cmp r1, r0
- bge _0806D04A
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x20
- ble _0806D04A
- bl sub_806CF04
- ldr r0, _0806D054
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D058
- str r0, [r1]
-_0806D04A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D050: .4byte 0x02001000
-_0806D054: .4byte gTasks
-_0806D058: .4byte sub_806D05C
- thumb_func_end sub_806D014
-
- thumb_func_start sub_806D05C
-sub_806D05C: @ 806D05C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806CFA0
- ldr r0, _0806D08C
- ldr r1, [r0, 0x8]
- movs r0, 0xB0
- lsls r0, 12
- cmp r1, r0
- bne _0806D084
- ldr r0, _0806D090
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D094
- str r0, [r1]
-_0806D084:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D08C: .4byte 0x02001000
-_0806D090: .4byte gTasks
-_0806D094: .4byte sub_806D198
- thumb_func_end sub_806D05C
-
- thumb_func_start sub_806D098
-sub_806D098: @ 806D098
- push {r4-r7,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r5, _0806D0E0
- ldrb r1, [r5, 0x5]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r1, [r5, 0x6]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- adds r1, r7, 0
- bl sub_806BB3C
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- adds r1, r6, 0
- bl sub_806BB3C
- cmp r4, 0
- bne _0806D0E4
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- b _0806D0EE
- .align 2, 0
-_0806D0E0: .4byte 0x02001000
-_0806D0E4:
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
-_0806D0EE:
- strh r0, [r5, 0xA]
- ldr r4, _0806D114
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- adds r1, r7, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D114: .4byte 0x02001000
- thumb_func_end sub_806D098
-
- thumb_func_start sub_806D118
-sub_806D118: @ 806D118
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_806D098
- ldr r1, _0806D150
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _0806D14A
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _0806D14A
- bl sub_806CF04
- ldr r0, _0806D154
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D158
- str r0, [r1]
-_0806D14A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D150: .4byte 0x02001000
-_0806D154: .4byte gTasks
-_0806D158: .4byte sub_806D15C
- thumb_func_end sub_806D118
-
- thumb_func_start sub_806D15C
-sub_806D15C: @ 806D15C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806D098
- ldr r0, _0806D188
- ldr r1, [r0, 0x8]
- ldr r0, _0806D18C
- cmp r1, r0
- bne _0806D182
- ldr r0, _0806D190
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D194
- str r0, [r1]
-_0806D182:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D188: .4byte 0x02001000
-_0806D18C: .4byte 0x000b000b
-_0806D190: .4byte gTasks
-_0806D194: .4byte sub_806D198
- thumb_func_end sub_806D15C
-
- thumb_func_start sub_806D198
-sub_806D198: @ 806D198
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r4, _0806D364
- ldrb r0, [r4]
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- bl sub_806DE50
- ldrb r0, [r4]
- ldrb r1, [r4, 0x6]
- ldrb r2, [r4, 0x3]
- bl sub_806DE50
- bl battle_type_is_double
- ldr r5, _0806D368
- ldrb r1, [r4, 0x3]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldr r6, _0806D36C
- ldrb r2, [r4, 0x6]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2]
- movs r1, 0
- mov r8, r1
- strh r0, [r3, 0x20]
- bl battle_type_is_double
- ldrb r1, [r4, 0x3]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 0x6]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2, 0x1]
- strh r0, [r3, 0x22]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x26]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1C
- adds r1, r5
- mov r9, r1
- add r0, r9
- ldr r7, _0806D370
- str r7, [r0]
- bl battle_type_is_double
- ldrb r1, [r4, 0x4]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 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, r6
- ldrb r0, [r2]
- strh r0, [r3, 0x20]
- bl battle_type_is_double
- ldrb r1, [r4, 0x4]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 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, r6
- ldrb r0, [r2, 0x1]
- strh r0, [r3, 0x22]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x26]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- str r7, [r0]
- ldrb r0, [r4]
- ldrb r2, [r4, 0x2]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _0806D374
- str r0, [r1]
- ldrb r0, [r4, 0x5]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0806D378
- adds r0, r5
- ldrb r1, [r4, 0x6]
- muls r1, r6
- adds r1, r5
- bl sub_806E6F0
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E2C0
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E07C
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E4E8
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl nullsub_12
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E2C0
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E07C
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E4E8
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl nullsub_12
- bl sub_806E6C8
- mov r0, r10
- bl sub_806CC74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D364: .4byte 0x02001000
-_0806D368: .4byte gSprites
-_0806D36C: .4byte gUnknown_08376678
-_0806D370: .4byte sub_806DA38
-_0806D374: .4byte sub_806DA0C
-_0806D378: .4byte gPlayerParty
- thumb_func_end sub_806D198
-
- thumb_func_start sub_806D37C
-sub_806D37C: @ 806D37C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D638
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0806D3A8
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- negs r0, r0
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- ldr r0, _0806D3A4
- str r0, [r4, 0x1C]
- b _0806D3AE
- .align 2, 0
-_0806D3A4: .4byte sub_806DA38
-_0806D3A8:
- ldrh r0, [r4, 0x2E]
- adds r0, r2, r0
- strh r0, [r4, 0x24]
-_0806D3AE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806D37C
-
- thumb_func_start sub_806D3B4
-sub_806D3B4: @ 806D3B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r6, _0806D438
- ldr r1, _0806D43C
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x3]
- bl sub_806BA34
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- bl sub_806BB3C
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- bl sub_806BB3C
- ldrh r1, [r5, 0x8]
- subs r1, 0x1
- strh r1, [r5, 0x8]
- ldrb r0, [r6, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x3]
- movs r2, 0x4
- bl sub_806B9A4
- cmp r4, 0
- beq _0806D440
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- b _0806D454
- .align 2, 0
-_0806D438: .4byte gUnknown_083769C0
-_0806D43C: .4byte gTasks
-_0806D440:
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
-_0806D454:
- mov r0, r8
- cmp r0, 0
- beq _0806D480
- ldr r1, _0806D47C
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- b _0806D49E
- .align 2, 0
-_0806D47C: .4byte gTasks
-_0806D480:
- ldr r1, _0806D4A8
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
-_0806D49E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D4A8: .4byte gTasks
- thumb_func_end sub_806D3B4
-
- thumb_func_start sub_806D4AC
-sub_806D4AC: @ 806D4AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- beq _0806D4F6
- adds r1, r2, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806D4FC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- ldr r0, _0806D500
- strh r0, [r4, 0x2E]
- ldr r3, _0806D504
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r3
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- lsls r0, 3
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r2, 0x1C
- adds r1, r2
- ldr r0, _0806D508
- str r0, [r1]
-_0806D4F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D4FC: .4byte gSprites
-_0806D500: .4byte 0x0000fff8
-_0806D504: .4byte gTasks
-_0806D508: .4byte sub_806D37C
- thumb_func_end sub_806D4AC
-
- thumb_func_start sub_806D50C
-sub_806D50C: @ 806D50C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- ldr r2, _0806D534
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0xF0
- strh r0, [r1, 0x20]
- pop {r0}
- bx r0
- .align 2, 0
-_0806D534: .4byte gSprites
- thumb_func_end sub_806D50C
-
- thumb_func_start sub_806D538
-sub_806D538: @ 806D538
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- cmp r4, 0xFF
- beq _0806D59A
- cmp r1, 0x1
- beq _0806D568
- cmp r1, 0x1
- bgt _0806D556
- cmp r1, 0
- beq _0806D560
- b _0806D58A
-_0806D556:
- cmp r0, 0x2
- beq _0806D570
- cmp r0, 0x3
- beq _0806D57E
- b _0806D58A
-_0806D560:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x17
- b _0806D576
-_0806D568:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x13
- b _0806D576
-_0806D570:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x16
-_0806D576:
- movs r3, 0x13
- bl MenuDrawTextWindow
- b _0806D58A
-_0806D57E:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x12
- movs r3, 0x13
- bl MenuDrawTextWindow
-_0806D58A:
- ldr r0, _0806D5A0
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
-_0806D59A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D5A0: .4byte gUnknown_08376624
- thumb_func_end sub_806D538
-
- thumb_func_start sub_806D5A4
-sub_806D5A4: @ 806D5A4
- push {lr}
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_806D5A4
-
- thumb_func_start sub_806D5B8
-sub_806D5B8: @ 806D5B8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806D658
- bl battle_type_is_double
- lsls r4, r5, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1]
- mov r10, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x1]
- mov r9, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x2]
- mov r8, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldrb r1, [r4, 0x3]
- ldr r0, _0806D65C
- str r1, [sp]
- mov r1, r10
- mov r2, r9
- mov r3, r8
- bl ZeroFillWindowRect
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r5, 10
- ldr r0, _0806D660
- adds r5, r0
- ldr r2, _0806D664
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuFastSet
- 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
-_0806D658: .4byte gUnknown_08376948
-_0806D65C: .4byte gUnknown_03004210
-_0806D660: .4byte 0x06014000
-_0806D664: .4byte 0x01000100
- thumb_func_end sub_806D5B8
-
- thumb_func_start sub_806D668
-sub_806D668: @ 806D668
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806D708
- bl battle_type_is_double
- lsls r4, r5, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1]
- mov r10, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x1]
- mov r9, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x2]
- mov r8, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldrb r1, [r4, 0x3]
- ldr r0, _0806D70C
- str r1, [sp]
- mov r1, r10
- mov r2, r9
- mov r3, r8
- bl ZeroFillWindowRect
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r5, 10
- ldr r0, _0806D710
- adds r5, r0
- ldr r2, _0806D714
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuFastSet
- 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
-_0806D708: .4byte gUnknown_08376978
-_0806D70C: .4byte gUnknown_03004210
-_0806D710: .4byte 0x06014300
-_0806D714: .4byte 0x01000040
- thumb_func_end sub_806D668
-
- thumb_func_start sub_806D718
-sub_806D718: @ 806D718
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0806D7C4
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- cmp r4, 0x1
- bhi _0806D736
- ldr r0, _0806D7C8
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
-_0806D736:
- cmp r4, 0x2
- beq _0806D73E
- cmp r4, 0
- bne _0806D746
-_0806D73E:
- ldr r0, _0806D7CC
- ldr r1, _0806D7D0
- bl LZDecompressVram
-_0806D746:
- cmp r4, 0x3
- beq _0806D74E
- cmp r4, 0
- bne _0806D75A
-_0806D74E:
- ldr r0, _0806D7D4
- movs r2, 0xB0
- lsls r2, 1
- movs r1, 0
- bl LoadCompressedPalette
-_0806D75A:
- cmp r4, 0x4
- beq _0806D762
- cmp r4, 0
- bne _0806D776
-_0806D762:
- mov r0, sp
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0806D7D8
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
-_0806D776:
- cmp r4, 0x5
- beq _0806D77E
- cmp r4, 0
- bne _0806D786
-_0806D77E:
- ldr r0, _0806D7DC
- ldr r1, _0806D7E0
- bl LZDecompressVram
-_0806D786:
- cmp r4, 0x6
- beq _0806D78E
- cmp r4, 0
- bne _0806D796
-_0806D78E:
- ldr r0, _0806D7E4
- ldr r1, _0806D7E8
- bl LZDecompressVram
-_0806D796:
- cmp r4, 0x7
- beq _0806D79E
- cmp r4, 0
- bne _0806D7A6
-_0806D79E:
- ldr r0, _0806D7EC
- ldr r1, _0806D7F0
- bl LZDecompressVram
-_0806D7A6:
- cmp r4, 0x8
- beq _0806D7AE
- cmp r4, 0
- bne _0806D7BA
-_0806D7AE:
- ldr r0, _0806D7F4
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadCompressedPalette
- movs r5, 0x1
-_0806D7BA:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806D7C4: .4byte 0x00007fff
-_0806D7C8: .4byte gPartyMenuMisc_Gfx
-_0806D7CC: .4byte gPartyMenuMisc_Tilemap
-_0806D7D0: .4byte 0x06003800
-_0806D7D4: .4byte gPartyMenuMisc_Pal
-_0806D7D8: .4byte gFontDefaultPalette
-_0806D7DC: .4byte gPartyMenuHpBar_Gfx
-_0806D7E0: .4byte 0x06006000
-_0806D7E4: .4byte gPartyMenuOrderText_Gfx
-_0806D7E8: .4byte 0x06006180
-_0806D7EC: .4byte gStatusGfx_Icons
-_0806D7F0: .4byte 0x06007180
-_0806D7F4: .4byte gStatusPal_Icons
- thumb_func_end sub_806D718
-
- thumb_func_start sub_806D7F8
-sub_806D7F8: @ 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 sub_8046200
- 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
- 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 sub_806D7F8
-
- thumb_func_start sub_806D84C
-sub_806D84C: @ 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 sub_806D7F8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806D84C
-
- thumb_func_start sub_806D880
-sub_806D880: @ 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
- 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
- movs r2, 0x5
- str r2, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r9
- mov r3, r10
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- adds r0, r4, 0
- mov r1, r8
- bl sub_806D84C
- 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 sub_806D880
-
- thumb_func_start sub_806D90C
-sub_806D90C: @ 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 sub_806B528
- 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 sub_806D880
- b _0806D95A
-_0806D946:
- bl battle_type_is_double
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r7, 0
- adds r3, r4, 0
- bl sub_806D880
-_0806D95A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806D90C
-
- 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
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D90C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0806D986:
- ldr r0, _0806D998
- 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 sub_806D99C
-sub_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
- 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
- movs r4, 0x5
- str r4, [sp]
- mov r7, r8
- ldr r4, [r7, 0x18]
- str r4, [sp, 0x4]
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- ldrh r1, [r7, 0x10]
- ldrh r2, [r7, 0x12]
- adds r0, r4, 0
- bl sub_806D7F8
- 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 sub_806D99C
-
- thumb_func_start sub_806DA0C
-sub_806DA0C: @ 806DA0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D638
- 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
- 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 sub_806DA0C
-
- thumb_func_start sub_806DA38
-sub_806DA38: @ 806DA38
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_806DA38
-
- thumb_func_start sub_806DA44
-sub_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 sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806DA7C
- 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
- b _0806DA8C
- .align 2, 0
-_0806DA7C: .4byte gSprites
-_0806DA80: .4byte sub_806DA38
-_0806DA84:
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA94
-_0806DA8C:
- str r1, [r0]
-_0806DA8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA94: .4byte sub_806DA0C
- thumb_func_end sub_806DA44
-
- thumb_func_start sub_806DA98
-sub_806DA98: @ 806DA98
- push {lr}
- ldr r0, _0806DAAC
- bl LoadSpriteSheet
- ldr r0, _0806DAB0
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0806DAAC: .4byte gUnknown_083765DC
-_0806DAB0: .4byte gUnknown_083765E4
- thumb_func_end sub_806DA98
-
- thumb_func_start sub_806DAB4
-sub_806DAB4: @ 806DAB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806DAE4
- 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 sub_806DAB4
-
- thumb_func_start sub_806DB0C
-sub_806DB0C: @ 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
- 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
- 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
- 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 sub_806DAB4
- thumb_func_end sub_806DB0C
-
- thumb_func_start sub_806DB90
-sub_806DB90: @ 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
- 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 sub_806DB0C
-_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
- 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 sub_806DB0C
-_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 sub_806DB90
-
- thumb_func_start sub_806DC34
-sub_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
- mov r9, r0
- movs r1, 0x1C
- add r1, r9
- mov r10, r1
-_0806DC50:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0806DCCC
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806DCB0
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DDA0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806DCD0
- 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 sub_806DF60
- 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 sub_806DC34
-
- thumb_func_start sub_806DCD4
-sub_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 sub_806DDA0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806DD2C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806DD30
- 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
- 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 sub_806DCD4
-
- thumb_func_start sub_806DD7C
-sub_806DD7C: @ 806DD7C
- ldrh r2, [r0, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DD9C
- 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 sub_806DD7C
-
- thumb_func_start sub_806DDA0
-sub_806DDA0: @ 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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 sub_806DDA0
-
- thumb_func_start sub_806DE50
-sub_806DE50: @ 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
- 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
- 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
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- ldr r0, _0806DEBC
- 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
- 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
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- ldr r0, _0806DEF4
- 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
- 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
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- ldr r0, _0806DF30
- 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 sub_806DE50
-
- thumb_func_start sub_806DF34
-sub_806DF34: @ 806DF34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806DF5C
- 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 sub_806DF34
-
- thumb_func_start sub_806DF60
-sub_806DF60: @ 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 sub_806DF34
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0806DFA4
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- bne _0806DFAC
- ldr r1, _0806DFA8
- 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
- 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
- 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 sub_806DF60
-
- 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
- ldr r2, _0806E044
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E048
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E04C
- 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 sub_806E050
-sub_806E050: @ 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 sub_806E050
-
- thumb_func_start sub_806E07C
-sub_806E07C: @ 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 sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E0AA
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E050
- b _0806E0BC
-_0806E0AA:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E050
-_0806E0BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E07C
-
- thumb_func_start sub_806E0C4
-sub_806E0C4: @ 806E0C4
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E0E8
-_0806E0CC:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E07C
- 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 sub_806E0C4
-
- 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 sub_806E104
-sub_806E104: @ 806E104
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0806E15C
- 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
- 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
- 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 sub_806E104
-
- thumb_func_start sub_806E168
-sub_806E168: @ 806E168
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E17E
- movs r3, 0x2
- b _0806E186
-_0806E17E:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r3, r0, 24
-_0806E186:
- ldr r1, _0806E1C8
- 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
- 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 sub_806E168
-
- thumb_func_start sub_806E1D0
-sub_806E1D0: @ 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
- 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 sub_806E1D0
-
- thumb_func_start sub_806E1F4
-sub_806E1F4: @ 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
- 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 sub_806E1D0
- ldr r6, _0806E27C
- 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
- ldr r2, _0806E284
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E288
- ldr r2, _0806E28C
- adds r1, r5, r2
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E290
- 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 sub_806E1F4
-
- thumb_func_start sub_806E294
-sub_806E294: @ 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 sub_806E1F4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E294
-
- thumb_func_start sub_806E2C0
-sub_806E2C0: @ 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 sub_80A1CD8
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E2FA
- movs r6, 0x2
- b _0806E302
-_0806E2FA:
- bl battle_type_is_double
- 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 sub_806E104
- b _0806E324
-_0806E31A:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E294
-_0806E324:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E3C0
-_0806E32E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E2C0
-
- thumb_func_start sub_806E334
-sub_806E334: @ 806E334
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E358
-_0806E33C:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E2C0
- 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 sub_806E334
-
- thumb_func_start sub_806E35C
-sub_806E35C: @ 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
- 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 sub_806E1D0
- b _0806E3BA
-_0806E3B2:
- movs r0, 0x44
- adds r1, r3, 0
- bl sub_806E1D0
-_0806E3BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E35C
-
- thumb_func_start sub_806E3C0
-sub_806E3C0: @ 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
- 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 sub_806E35C
- 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 sub_806E3C0
-
- thumb_func_start sub_806E420
-sub_806E420: @ 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
- 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
- ldr r2, _0806E494
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E498
- ldr r2, _0806E49C
- adds r1, r5, r2
- ldr r2, _0806E48C
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E4A0
- 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 sub_806E420
-
- thumb_func_start sub_806E4A4
-sub_806E4A4: @ 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 sub_806E420
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4A4
-
- thumb_func_start sub_806E4E8
-sub_806E4E8: @ 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 sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E522
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E4A4
- b _0806E534
-_0806E522:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E4A4
-_0806E534:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4E8
-
- thumb_func_start sub_806E53C
-sub_806E53C: @ 806E53C
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E560
-_0806E544:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E4E8
- 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 sub_806E53C
-
- 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 sub_806E574
-sub_806E574: @ 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
- 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 sub_8046200
- 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
- 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
- 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 sub_806E574
-
- thumb_func_start sub_806E630
-sub_806E630: @ 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 sub_806E574
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E630
-
- thumb_func_start sub_806E674
-sub_806E674: @ 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 sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E6AE
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E630
- b _0806E6C0
-_0806E6AE:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E630
-_0806E6C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E674
-
- thumb_func_start sub_806E6C8
-sub_806E6C8: @ 806E6C8
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E6EC
-_0806E6D0:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E674
- 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 sub_806E6C8
-
- 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
- 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
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806E880
- 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
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0806E8CC
- 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
- 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
- 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 sub_806E904
-sub_806E904: @ 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
- movs r0, 0x2
- b _0806E940
- .align 2, 0
-_0806E938: .4byte gUnknown_0202E8F4
-_0806E93C:
- ldr r1, _0806E960
- 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 sub_806E904
-
- thumb_func_start sub_806E964
-sub_806E964: @ 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
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldr r1, _0806E9D8
- str r1, [r6]
- adds r1, r5, 0
- mov r2, r8
- bl sub_806E8D0
- ldr r4, _0806E9DC
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r2, r0, 16
- adds r7, r2, 0
- ldr r1, _0806E9E0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0806E9E4
- 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
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806E9EC
- 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
- bl GetMonNickname
- ldr r1, _0806EA34
- adds r0, r7, 0
- bl itemid_copy_name
- ldr r4, _0806EA38
- ldr r1, _0806EA3C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EA40
- 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 sub_806EBB8
-_0806EA44:
- ldr r0, [r4]
- adds r1, r5, 0
- bl sub_806E904
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A9538
- 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 sub_806EBF0
- ldr r0, _0806EA88
- 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 sub_806E964
-
- 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
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EABA
- ldr r4, _0806EAC4
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r2, _0806EAC8
- 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 sub_806EACC
-sub_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
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl sub_80A9538
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EB5C
- ldr r0, [r4]
- ldrh r1, [r4, 0x6]
- bl sub_806E904
- 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 sub_806EDB4
- b _0806EB9A
- .align 2, 0
-_0806EB30: .4byte 0x0201c000
-_0806EB34:
- ldrh r0, [r4, 0x6]
- ldr r1, _0806EB50
- bl itemid_copy_name
- ldr r4, _0806EB54
- ldr r1, _0806EB58
- 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
- movs r1, 0
- bl sub_806E834
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl sub_80A9424
- 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
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBB4
- 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 sub_806EACC
-
- thumb_func_start sub_806EBB8
-sub_806EBB8: @ 806EBB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EBE4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EBDE
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EBE8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBEC
- str r0, [r1]
-_0806EBDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBE4: .4byte gUnknown_0202E8F6
-_0806EBE8: .4byte gTasks
-_0806EBEC: .4byte sub_806EACC
- thumb_func_end sub_806EBB8
-
- thumb_func_start sub_806EBF0
-sub_806EBF0: @ 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
- adds r0, r1
- ldr r1, _0806EC34
- bl GetMonNickname
- ldr r1, _0806EC38
- adds r0, r4, 0
- bl itemid_copy_name
- ldr r4, _0806EC3C
- ldr r1, _0806EC40
- 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 sub_806EBF0
-
- thumb_func_start sub_806EC44
-sub_806EC44: @ 806EC44
- push {r4,r5,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ECA0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ECA4
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ECA8
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- ldr r2, _0806ECAC
- 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
- adds r4, r2, r1
- cmp r0, 0
- beq _0806ECBC
- ldr r0, _0806ECB4
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECB8
- 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
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECE4
- 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 sub_806EC44
-
- thumb_func_start sub_806ECE8
-sub_806ECE8: @ 806ECE8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ED38
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ED3C
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ED40
- 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
- ldr r1, _0806ED48
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r0, _0806ED4C
- 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 sub_80A9424
- 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 sub_806EDB4
- ldr r0, [r5]
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- b _0806ED9A
-_0806ED92:
- ldr r0, _0806EDAC
- movs r1, 0
- bl sub_806E834
-_0806ED9A:
- ldr r0, _0806EDB0
- 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 sub_806ECE8
-
- thumb_func_start sub_806EDB4
-sub_806EDB4: @ 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
- adds r0, r1
- ldr r1, _0806EDF8
- bl GetMonNickname
- ldr r1, _0806EDFC
- adds r0, r4, 0
- bl itemid_copy_name
- ldr r4, _0806EE00
- ldr r1, _0806EE04
- 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 sub_806EDB4
-
- thumb_func_start sub_806EE08
-sub_806EE08: @ 806EE08
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806EE48
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806EE4C
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r4, _0806EE50
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- strh r0, [r4, 0x6]
- ldr r0, _0806EE54
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EE58
- 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 sub_806EFEC
- thumb_func_end sub_806EE08
-
- thumb_func_start sub_806EE5C
-sub_806EE5C: @ 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
- ldrh r0, [r5, 0x6]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EE98
- ldr r0, [r5]
- bl sub_80A2DF8
- ldr r0, _0806EE94
- movs r1, 0
- bl sub_806E834
- b _0806EEA0
- .align 2, 0
-_0806EE90: .4byte 0x0201c000
-_0806EE94: .4byte gOtherText_MailTaken
-_0806EE98:
- ldr r0, _0806EEAC
- 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
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EEFC
- 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 sub_806EE5C
-
- thumb_func_start sub_806EF00
-sub_806EF00: @ 806EF00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EF2C
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EF26
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EF30
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF34
- str r0, [r1]
-_0806EF26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EF2C: .4byte gUnknown_0202E8F6
-_0806EF30: .4byte gTasks
-_0806EF34: .4byte sub_806EE5C
- thumb_func_end sub_806EF00
-
- thumb_func_start sub_806EF38
-sub_806EF38: @ 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
- ldr r0, [r0]
- bl sub_80A2E78
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806EF78
- ldr r0, _0806EF74
- movs r1, 0
- bl sub_806E834
- b _0806EF80
- .align 2, 0
-_0806EF70: .4byte 0x0201c000
-_0806EF74: .4byte gOtherText_MailWasSent
-_0806EF78:
- ldr r0, _0806EF90
- movs r1, 0
- bl sub_806E834
-_0806EF80:
- ldr r0, _0806EF94
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF98
- 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
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806EFE4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806EFE8
- str r1, [r0]
-_0806EFD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
-_0806EFE4: .4byte gTasks
-_0806EFE8: .4byte sub_806EF00
- thumb_func_end sub_806EF38
-
- thumb_func_start sub_806EFEC
-sub_806EFEC: @ 806EFEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F018
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F012
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F01C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F020
- str r0, [r1]
-_0806F012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F018: .4byte gUnknown_0202E8F6
-_0806F01C: .4byte gTasks
-_0806F020: .4byte sub_806EF38
- thumb_func_end sub_806EFEC
-
- thumb_func_start ItemIdToBattleMoveId
-ItemIdToBattleMoveId: @ 806F024
- lsls r0, 16
- ldr r1, _0806F034
- adds r0, r1
- ldr r1, _0806F038
- 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 sub_806F06C
-sub_806F06C: @ 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
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F0AC
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E8D0
- ldr r0, _0806F0B0
- movs r1, 0x5
- bl CreateTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F0A8: .4byte gTasks
-_0806F0AC: .4byte TaskDummy
-_0806F0B0: .4byte sub_806F0B4
- thumb_func_end sub_806F06C
-
- thumb_func_start sub_806F0B4
-sub_806F0B4: @ 806F0B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r5, _0806F114
- ldr r0, [r5]
- ldr r1, _0806F118
- bl GetMonNickname
- ldrh r0, [r5, 0x6]
- bl ItemIdToBattleMoveId
- movs r4, 0
- strh r0, [r5, 0x8]
- ldr r0, _0806F11C
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F120
- adds r1, r2
- bl StringCopy
- ldr r1, _0806F124
- 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
- ldr r1, _0806F12C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F130
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F134
- 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 sub_8040374
- cmp r0, 0
- bne _0806F17C
- ldr r4, _0806F16C
- ldr r1, _0806F170
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F174
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F178
- 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
- cmp r0, r1
- beq _0806F198
- adds r0, r6, 0
- bl sub_806F1D0
- b _0806F1B8
- .align 2, 0
-_0806F194: .4byte 0xffff0000
-_0806F198:
- ldr r4, _0806F1C0
- ldr r1, _0806F1C4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F1C8
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F1CC
-_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 sub_806F0B4
-
- thumb_func_start sub_806F1D0
-sub_806F1D0: @ 806F1D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F234
- ldr r5, _0806F238
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F23C
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F240
- ldr r1, _0806F244
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, [r5]
- movs r1, 0x4
- bl sub_803FCD4
- ldr r1, _0806F248
- 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 sub_80A9538
-_0806F220:
- ldr r0, _0806F24C
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F250
- 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 sub_806F254
- thumb_func_end sub_806F1D0
-
- thumb_func_start sub_806F254
-sub_806F254: @ 806F254
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F27C
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F276
- ldr r0, _0806F280
- bl PlayFanfare
- ldr r1, _0806F284
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F288
- 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 sub_806F28C
- thumb_func_end sub_806F254
-
- thumb_func_start sub_806F28C
-sub_806F28C: @ 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
- 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
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F2D8
- 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
- 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 sub_806F28C
-
- 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
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F34E
- ldr r4, _0806F330
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F334
- 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
- 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
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F37E
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F388
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F38C
- 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
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F3CC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F3D0
- 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 sub_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
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F430
- ldr r0, _0806F43C
- ldr r4, _0806F440
- ldrb r1, [r4, 0x5]
- ldr r2, _0806F444
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806F448
- 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
- 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
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F48C
- 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 sub_806F490
-sub_806F490: @ 806F490
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F50C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F506
- ldr r1, _0806F510
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F514
- str r1, [r0]
- ldr r0, _0806F518
- ldrh r1, [r0]
- ldr r2, _0806F51C
- adds r0, r3, 0
- bl sub_806E8D0
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r5, _0806F520
- ldr r0, [r5]
- adds r1, 0xD
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5]
- ldr r1, _0806F524
- bl GetMonNickname
- ldr r0, _0806F528
- movs r1, 0xD
- muls r1, r4
- ldr r2, _0806F52C
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F530
- ldr r1, _0806F534
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F538
- 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 word_203855E
-_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 sub_806F53C
- thumb_func_end sub_806F490
-
- thumb_func_start sub_806F53C
-sub_806F53C: @ 806F53C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F580
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F57A
- ldr r4, _0806F584
- 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 sub_806F1D0
-_0806F57A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F580: .4byte gUnknown_0202E8F6
-_0806F584: .4byte 0x0201c000
- thumb_func_end sub_806F53C
-
- thumb_func_start sub_806F588
-sub_806F588: @ 806F588
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F5E8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F5E0
- ldr r1, _0806F5EC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F5F0
- str r1, [r0]
- ldr r0, _0806F5F4
- ldrh r1, [r0]
- ldr r2, _0806F5F8
- adds r0, r3, 0
- bl sub_806E8D0
- ldr r0, _0806F5FC
- ldr r1, _0806F600
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F604
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F608
- ldr r1, _0806F60C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F610
- 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 word_203855E
-_0806F5F8: .4byte sub_808B508
-_0806F5FC: .4byte gStringVar2
-_0806F600: .4byte 0x0201c000
-_0806F604: .4byte gMoveNames
-_0806F608: .4byte gStringVar4
-_0806F60C: .4byte gOtherText_StopTryingTo
-_0806F610: .4byte sub_806F67C
- thumb_func_end sub_806F588
-
- thumb_func_start sub_806F614
-sub_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
- ldr r1, _0806F664
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F668
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F66C
- ldr r1, _0806F670
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F674
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F678
- 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 sub_806F67C
- thumb_func_end sub_806F614
-
- thumb_func_start sub_806F67C
-sub_806F67C: @ 806F67C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F6A8
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F6A2
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F6AC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F6B0
- str r0, [r1]
-_0806F6A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F6A8: .4byte gUnknown_0202E8F6
-_0806F6AC: .4byte gTasks
-_0806F6B0: .4byte sub_806F6B4
- thumb_func_end sub_806F67C
-
- thumb_func_start sub_806F6B4
-sub_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
- ldr r0, [r4]
- ldr r1, _0806F714
- bl GetMonNickname
- ldr r0, _0806F718
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F71C
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F720
- ldr r1, _0806F724
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F728
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F72C
- 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
- ldr r0, [r4]
- ldr r1, _0806F79C
- bl GetMonNickname
- ldr r0, _0806F7A0
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F7A4
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F7A8
- ldr r1, _0806F7AC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F7B0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F7B4
-_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 sub_806F6B4
-
- thumb_func_start sub_806F7B8
-sub_806F7B8: @ 806F7B8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, _0806F7D4
-_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 sub_806F7B8
-
- 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
- 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
- ldr r2, _0806F8A0
- adds r0, r6, r2
- movs r4, 0
- ldrsh r0, [r0, r4]
- bl sub_8046200
- 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
- bl battle_type_is_double
- 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
- 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 gUnknown_03004B28
-_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
- ldr r2, _0806F8F8
- 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
- ldrh r0, [r5]
- negs r0, r0
- str r0, [r1]
- ldr r0, _0806F944
- ldr r0, [r0]
- ldr r1, _0806F948
- bl GetMonNickname
- ldr r0, _0806F94C
- ldrh r1, [r5]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r2, _0806F950
- 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
- ldr r1, _0806F958
- 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
- ldr r1, _0806F9D8
- bl StringExpandPlaceholders
-_0806F964:
- ldr r4, _0806F9DC
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- bl battle_type_is_double
- 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
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _0806F9E4
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _0806F9D4
- 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 sub_80A9538
- bl sub_8032638
- ldr r1, _0806F9E8
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F9EC
- 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 battle_type_is_double
- 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 sub_806E420
-_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
- ldr r1, _0806FAC8
- 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
- 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
- adds r6, r1
- ldrb r1, [r6, 0x1]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- ldr r2, _0806FAD4
- 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
- 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
- str r0, [r4, 0xC]
- ldr r0, [r4, 0x10]
- str r0, [r4, 0x14]
- ldr r0, _0806FAE0
- 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 battle_type_is_double
- 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 sub_806E420
-_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
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB32
- ldr r3, _0806FB3C
- ldr r2, _0806FB40
- 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
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB6A
- ldr r3, _0806FB74
- ldr r2, _0806FB78
- 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 sub_806FB7C
-sub_806FB7C: @ 806FB7C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0806FB90
- ldr r0, _0806FB8C
- b _0806FB9A
- .align 2, 0
-_0806FB8C: .4byte gSaveBlock1 + 0x3676
-_0806FB90:
- ldr r1, _0806FBA8
- 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 sub_806FB7C
-
- thumb_func_start sub_806FBB4
-sub_806FBB4: @ 806FBB4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806E168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E2C0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806FBB4
-
- thumb_func_start GetMedicineItemEffectMessage
-GetMedicineItemEffectMessage: @ 806FBD0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0x12
- bls _0806FBE6
- b _0806FD7C
-_0806FBE6:
- lsls r0, 2
- ldr r1, _0806FBF0
- 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
- ldr r1, _0806FC50
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC4C: .4byte gStringVar4
-_0806FC50: .4byte gOtherText_CuredPoisoning
-_0806FC54:
- ldr r0, _0806FC60
- ldr r1, _0806FC64
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC60: .4byte gStringVar4
-_0806FC64: .4byte gOtherText_WokeUp
-_0806FC68:
- ldr r0, _0806FC74
- ldr r1, _0806FC78
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC74: .4byte gStringVar4
-_0806FC78: .4byte gOtherText_BurnHealed
-_0806FC7C:
- ldr r0, _0806FC88
- ldr r1, _0806FC8C
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC88: .4byte gStringVar4
-_0806FC8C: .4byte gOtherText_ThawedOut
-_0806FC90:
- ldr r0, _0806FC9C
- ldr r1, _0806FCA0
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC9C: .4byte gStringVar4
-_0806FCA0: .4byte gOtherText_CuredParalysis
-_0806FCA4:
- ldr r0, _0806FCB0
- ldr r1, _0806FCB4
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCB0: .4byte gStringVar4
-_0806FCB4: .4byte gOtherText_SnapConfusion
-_0806FCB8:
- ldr r0, _0806FCC4
- ldr r1, _0806FCC8
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCC4: .4byte gStringVar4
-_0806FCC8: .4byte gOtherText_GotOverLove
-_0806FCCC:
- ldr r0, _0806FCD8
- ldr r1, _0806FCDC
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCD8: .4byte gStringVar4
-_0806FCDC: .4byte gOtherText_BecameHealthy
-_0806FCE0:
- ldr r0, _0806FCE8
- ldr r1, _0806FCEC
- b _0806FD34
- .align 2, 0
-_0806FCE8: .4byte gStringVar2
-_0806FCEC: .4byte gOtherText_Hp2
-_0806FCF0:
- ldr r0, _0806FCF8
- ldr r1, _0806FCFC
- b _0806FD34
- .align 2, 0
-_0806FCF8: .4byte gStringVar2
-_0806FCFC: .4byte gOtherText_Attack
-_0806FD00:
- ldr r0, _0806FD08
- ldr r1, _0806FD0C
- b _0806FD34
- .align 2, 0
-_0806FD08: .4byte gStringVar2
-_0806FD0C: .4byte gOtherText_Defense
-_0806FD10:
- ldr r0, _0806FD18
- ldr r1, _0806FD1C
- b _0806FD34
- .align 2, 0
-_0806FD18: .4byte gStringVar2
-_0806FD1C: .4byte gOtherText_Speed
-_0806FD20:
- ldr r0, _0806FD28
- ldr r1, _0806FD2C
- b _0806FD34
- .align 2, 0
-_0806FD28: .4byte gStringVar2
-_0806FD2C: .4byte gOtherText_SpAtk2
-_0806FD30:
- ldr r0, _0806FD44
- ldr r1, _0806FD48
-_0806FD34:
- bl StringCopy
- ldr r0, _0806FD4C
- ldr r1, _0806FD50
- 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
- ldr r1, _0806FD64
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD60: .4byte gStringVar4
-_0806FD64: .4byte gOtherText_PPIncreased
-_0806FD68:
- ldr r0, _0806FD74
- ldr r1, _0806FD78
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD74: .4byte gStringVar4
-_0806FD78: .4byte gOtherText_PPRestored
-_0806FD7C:
- ldr r0, _0806FD88
- ldr r1, _0806FD8C
- bl StringExpandPlaceholders
-_0806FD84:
- pop {r0}
- bx r0
- .align 2, 0
-_0806FD88: .4byte gStringVar4
-_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
- thumb_func_end GetMedicineItemEffectMessage
-
- thumb_func_start sub_806FD90
-sub_806FD90: @ 806FD90
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bne _0806FDBC
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0806FDB8
- 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 sub_806FD90
-
- 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
- ldr r1, _0806FDF4
- 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
- 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
- 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 sub_806FE2C
-sub_806FE2C: @ 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
- mov r10, r1
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r10
- ldr r0, _0806FED8
- 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
- ldr r0, [r5]
- adds r1, r6, 0
- bl sub_806FD90
- lsls r0, 24
- cmp r0, 0
- bne _0806FEE0
- adds r0, r6, 0
- bl sub_806FB7C
- 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
- 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
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0806FF0C
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806FF10
- 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
- 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
- ldr r0, [r4]
- bl sub_80A1CD8
- 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 sub_806FBB4
-_0806FF56:
- mov r0, r9
- cmp r0, 0x1
- bne _0806FFC8
- ldr r4, _0806FF88
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldr r2, _0806FF8C
- 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
- 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
- ldr r0, [r2, 0x10]
- str r0, [r2, 0x14]
- ldr r1, _0806FFBC
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806FFC0
- str r1, [r0]
- ldrh r0, [r0, 0x1E]
- ldr r1, _0806FFC4
- 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
- ldr r0, [r4]
- ldr r1, _0807001C
- bl GetMonNickname
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FFE6
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80A9538
-_0806FFE6:
- adds r0, r6, 0
- bl GetMedicineItemEffectMessage
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_806E07C
- ldr r0, _08070020
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070024
- mov r2, r8
- adds r0, r2, r7
-_08070002:
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070028
- 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 sub_806FE2C
-
- 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
- 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
- str r1, [r3, 0x14]
- ldr r2, _08070080
- adds r1, r3, r2
- strh r4, [r1]
- ldr r1, _08070084
- 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
- mov r10, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r2, r10
- adds r7, r1, r2
- ldr r5, _08070124
- str r5, [r7]
- ldr r4, _08070128
- ldrb r0, [r4, 0x5]
- movs r1, 0x64
- mov r9, r1
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _0807012C
- 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
- 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
- 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 sub_806FBB4
- bl battle_type_is_double
- 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
- adds r0, r1
- movs r1, 0x9
- bl task_pc_turn_off
- ldr r2, _080701C8
- 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
- adds r0, r4, r1
- movs r1, 0x1
- strh r1, [r0]
- ldr r2, _080701D0
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r6, 0x16]
- adds r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080701D4
- str r0, [r4, 0xC]
- ldr r1, [sp]
- add r1, r10
- ldr r0, _080701D8
- 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
- ldr r0, _08070284
- 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 sub_80A9424
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070288
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0807023A
- bl battle_type_is_double
- 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
- adds r0, r1
- movs r1, 0x3
- bl task_pc_turn_off
- ldr r0, _08070290
- adds r1, r6, r0
- movs r0, 0x2
- strb r0, [r1]
-_0807023A:
- movs r0, 0
- strh r0, [r7]
-_0807023E:
- ldr r4, _08070294
- 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
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0807029C
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080702B0
- ldr r1, _080702A0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080702A4
- str r1, [r0]
- ldr r0, _080702A8
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _080702AC
- 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 sub_80A9538
- ldr r1, _080702D0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, [r4, 0x10]
- str r1, [r0]
-_080702C6:
- ldr r1, _080702D4
- 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 sub_80702E4
-sub_80702E4: @ 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
- 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
- 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 sub_80702E4
-
- thumb_func_start sub_8070374
-sub_8070374: @ 8070374
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _08070398
- 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
- 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
- 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 sub_8070374
-
- thumb_func_start dp05_ether
-dp05_ether: @ 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
- b _0807041C
- .align 2, 0
-_0807040C: .4byte gSaveBlock1 + 0x3676
-_08070410:
- ldr r1, _08070464
- adds r0, r5, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0807041C:
- mov r8, r0
- ldr r7, _08070468
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r7
- ldr r0, _0807046C
- 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 ether_effect_related
- 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
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- ldr r1, _080704A8
- str r1, [r0]
- ldr r1, _080704AC
- 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 sub_8070374
-_080704AC: .4byte gMain
- thumb_func_end dp05_ether
-
- thumb_func_start ether_effect_related_2
-ether_effect_related_2: @ 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
- 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 ether_effect_related
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080704EC: .4byte gTasks
- thumb_func_end ether_effect_related_2
-
- thumb_func_start sub_80704F0
-sub_80704F0: @ 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
- ldr r1, _0807052C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0807053C
- ldr r2, _08070530
- ldr r0, _08070534
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08070538
- 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
- ldr r0, _08070568
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0807056C
-_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 sub_80704F0
-
- thumb_func_start ether_effect_related
-ether_effect_related: @ 8070570
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r6, _080705A8
- ldrb r0, [r6, 0x5]
- ldrh r1, [r6, 0x6]
- ldr r3, _080705AC
- 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
- strb r5, [r0]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080705B4
- 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
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl PlaySE
- ldrh r0, [r6, 0x6]
- movs r1, 0x1
- bl sub_80A9538
- 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
- movs r1, 0xD
- muls r1, r5
- ldr r2, _08070614
- adds r1, r2
- bl StringCopy
- ldrh r0, [r6, 0x6]
- bl GetMedicineItemEffectMessage
- ldr r0, _08070618
- movs r1, 0x1
- bl sub_806E834
-_080705F8:
- ldr r0, _0807061C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070620
- 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 ether_effect_related
-
- thumb_func_start dp05_pp_up
-dp05_pp_up: @ 8070624
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0807066C
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r4
- ldr r4, _08070670
- str r4, [r3]
- bl sub_806E8D0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _08070674
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- ldr r0, _08070678
- movs r1, 0x5
- bl CreateTask
- ldr r1, _0807067C
- 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 sub_8070374
-_0807067C: .4byte gMain
- thumb_func_end dp05_pp_up
-
- thumb_func_start sub_8070680
-sub_8070680: @ 8070680
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r3, _080706E0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _080706E4
- str r3, [r1]
- adds r1, r6, 0
- bl sub_806E8D0
- ldr r5, _080706E8
- ldr r0, [r5]
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080706F4
- movs r4, 0
- ldr r0, _080706EC
- adds r7, r5, r0
-_080706B2:
- ldr r0, [r5]
- ldr r1, _080706F0
- 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
- 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
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0807071C
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070720
- 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
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl PlayFanfareByFanfareNum
- ldr r4, _08070788
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_8070A20
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80A9538
- ldr r0, [r4]
- ldr r1, _0807078C
- bl GetMonNickname
- ldr r0, [r4]
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070790
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08070794
- ldr r1, _08070798
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0807079C
- 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 sub_80707A0
- thumb_func_end sub_8070680
-
- thumb_func_start sub_80707A0
-sub_80707A0: @ 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
- ldrb r0, [r0]
- cmp r0, 0
- bne _080707E8
- ldr r0, _080707F4
- 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
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080707FC
- 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 sub_8070800
- thumb_func_end sub_80707A0
-
- thumb_func_start sub_8070800
-sub_8070800: @ 8070800
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807083C
- 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
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070844
- str r0, [r1]
-_08070834:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807083C: .4byte gMain
-_08070840: .4byte gTasks
-_08070844: .4byte sub_8070AC8
- thumb_func_end sub_8070800
-
- 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
- mov r10, r0
-_08070864:
- ldr r1, _080708E8
- ldr r0, [r1]
- ldr r1, _080708EC
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r7, 0x6
- lsls r1, 1
- ldr r2, _080708F0
- 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
- 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 sub_80729D8
- 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
- adds r2, r5, 0
- movs r3, 0
- bl sub_80729D8
- 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
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_80729D8
-_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
- 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 sub_80729D8
- 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
- mov r9, r0
- ldr r1, _08070A14
- add r1, r9
- mov r10, r1
- ldr r0, _08070A18
- mov r8, r0
-_08070982:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, _08070A1C
- 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 sub_80729D8
- 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 sub_80A1CD8
- 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 sub_806FBB4
-_08070A42:
- bl battle_type_is_double
- 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 sub_806E420
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E674
- ldr r4, _08070ABC
- ldrb r0, [r4, 0x4]
- adds r1, r7, 0
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- bl sub_806D84C
- bl battle_type_is_double
- 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
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _08070AC4
- 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 sub_8070AC8
-sub_8070AC8: @ 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
- 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
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08070B2C
- adds r0, r7, r1
- strh r5, [r0]
- ldr r0, _08070B30
- 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
- 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
- ldr r0, _08070B70
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl sub_8111924
- 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
- bl GetMonNickname
- ldr r0, _08070BC0
- ldr r5, _08070BC4
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070BC8
- adds r1, r2
- bl StringCopy
- ldr r4, _08070BCC
- ldr r1, _08070BD0
- 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
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070BD8
- 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
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070BF0
- str r0, [r1]
- b _08070C2C
- .align 2, 0
-_08070BEC: .4byte gTasks
-_08070BF0: .4byte sub_8070C54
-_08070BF4:
- ldr r0, _08070C34
- ldr r0, [r0]
- ldr r1, _08070C38
- bl GetMonNickname
- ldr r0, _08070C3C
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070C40
- adds r1, r2
- bl StringCopy
- ldr r4, _08070C44
- ldr r1, _08070C48
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070C4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070C50
-_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 sub_806F254
- thumb_func_end sub_8070AC8
-
- thumb_func_start sub_8070C54
-sub_8070C54: @ 8070C54
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08070C78
- ldr r0, [r7]
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08070C7C
- 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
- 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
- ldr r0, _08070CBC
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl sub_8111924
- 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
- bl GetMonNickname
- ldr r0, _08070D0C
- ldr r5, _08070D10
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070D14
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D18
- ldr r1, _08070D1C
- 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
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D24
- 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
- ldr r0, [r0]
- ldr r1, _08070D74
- bl GetMonNickname
- ldr r0, _08070D78
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070D7C
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D80
- ldr r1, _08070D84
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070D88
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D8C
-_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 sub_806F254
- 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
- ldr r3, _08070DB8
- 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 sub_8070DBC
-sub_8070DBC: @ 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
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070E1C
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r1, _08070E20
- ldr r0, _08070E24
- str r0, [r1]
- ldr r0, _08070E28
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070E38
- ldr r1, _08070E2C
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08070E30
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070E34
- 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 sub_80A9538
-_08070E40:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8070DBC
-
- thumb_func_start sub_8070E48
-sub_8070E48: @ 8070E48
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08070E5C
- ldr r4, _08070E58
- b _08070E66
- .align 2, 0
-_08070E58: .4byte gSaveBlock1 + 0x3676
-_08070E5C:
- ldr r1, _08070E8C
- 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 sub_8070E48
-
- thumb_func_start unref_sub_8070F90
-unref_sub_8070F90: @ 8070F90
- push {lr}
- ldr r0, _08070FAC
- bl FlagSet
- movs r0, 0x80
- lsls r0, 4
- bl FlagSet
- ldr r0, _08070FB0
- 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
new file mode 100644
index 000000000..374b2f0da
--- /dev/null
+++ b/asm/rom_806D7F8.s
@@ -0,0 +1,6917 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_806D7F8
+sub_806D7F8: @ 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 sub_8046200
+ 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
+ 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 sub_806D7F8
+
+ thumb_func_start sub_806D84C
+sub_806D84C: @ 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 sub_806D7F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D84C
+
+ thumb_func_start sub_806D880
+sub_806D880: @ 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
+ 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
+ movs r2, 0x5
+ str r2, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl sub_809D2FC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806DE50
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_806D84C
+ 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 sub_806D880
+
+ thumb_func_start sub_806D90C
+sub_806D90C: @ 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 sub_806B528
+ 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 sub_806D880
+ b _0806D95A
+_0806D946:
+ bl battle_type_is_double
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r4, 0
+ bl sub_806D880
+_0806D95A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D90C
+
+ 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
+ adds r2, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_806D90C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806D986:
+ ldr r0, _0806D998
+ 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 sub_806D99C
+sub_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
+ 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
+ movs r4, 0x5
+ str r4, [sp]
+ mov r7, r8
+ ldr r4, [r7, 0x18]
+ str r4, [sp, 0x4]
+ bl sub_809D2FC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806DE50
+ ldrh r1, [r7, 0x10]
+ ldrh r2, [r7, 0x12]
+ adds r0, r4, 0
+ bl sub_806D7F8
+ 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 sub_806D99C
+
+ thumb_func_start sub_806DA0C
+sub_806DA0C: @ 806DA0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809D638
+ 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
+ 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 sub_806DA0C
+
+ thumb_func_start sub_806DA38
+sub_806DA38: @ 806DA38
+ push {lr}
+ bl sub_809D638
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806DA38
+
+ thumb_func_start sub_806DA44
+sub_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 sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806DA7C
+ 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
+ b _0806DA8C
+ .align 2, 0
+_0806DA7C: .4byte gSprites
+_0806DA80: .4byte sub_806DA38
+_0806DA84:
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA94
+_0806DA8C:
+ str r1, [r0]
+_0806DA8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA94: .4byte sub_806DA0C
+ thumb_func_end sub_806DA44
+
+ thumb_func_start sub_806DA98
+sub_806DA98: @ 806DA98
+ push {lr}
+ ldr r0, _0806DAAC
+ bl LoadSpriteSheet
+ ldr r0, _0806DAB0
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DAAC: .4byte gUnknown_083765DC
+_0806DAB0: .4byte gUnknown_083765E4
+ thumb_func_end sub_806DA98
+
+ thumb_func_start sub_806DAB4
+sub_806DAB4: @ 806DAB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806DAE4
+ 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 sub_806DAB4
+
+ thumb_func_start sub_806DB0C
+sub_806DB0C: @ 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
+ 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
+ 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
+ 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 sub_806DAB4
+ thumb_func_end sub_806DB0C
+
+ thumb_func_start sub_806DB90
+sub_806DB90: @ 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
+ 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 sub_806DB0C
+_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
+ 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 sub_806DB0C
+_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 sub_806DB90
+
+ thumb_func_start sub_806DC34
+sub_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
+ mov r9, r0
+ movs r1, 0x1C
+ add r1, r9
+ mov r10, r1
+_0806DC50:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0806DCCC
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806DCB0
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_806DDA0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806DCD0
+ 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 sub_806DF60
+ 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 sub_806DC34
+
+ thumb_func_start sub_806DCD4
+sub_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 sub_806DDA0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806DD2C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806DD30
+ 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
+ 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 sub_806DCD4
+
+ thumb_func_start sub_806DD7C
+sub_806DD7C: @ 806DD7C
+ ldrh r2, [r0, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DD9C
+ 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 sub_806DD7C
+
+ thumb_func_start sub_806DDA0
+sub_806DDA0: @ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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 sub_806DDA0
+
+ thumb_func_start sub_806DE50
+sub_806DE50: @ 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
+ 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
+ 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
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ ldr r0, _0806DEBC
+ 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
+ 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
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0806DEF4
+ 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
+ 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
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ ldr r0, _0806DF30
+ 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 sub_806DE50
+
+ thumb_func_start sub_806DF34
+sub_806DF34: @ 806DF34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806DF5C
+ 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 sub_806DF34
+
+ thumb_func_start sub_806DF60
+sub_806DF60: @ 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 sub_806DF34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0806DFA4
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ bne _0806DFAC
+ ldr r1, _0806DFA8
+ 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
+ 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
+ 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 sub_806DF60
+
+ 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
+ ldr r2, _0806E044
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E048
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E04C
+ 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 sub_806E050
+sub_806E050: @ 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 sub_806E050
+
+ thumb_func_start sub_806E07C
+sub_806E07C: @ 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 sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E0AA
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_806E050
+ b _0806E0BC
+_0806E0AA:
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_806E050
+_0806E0BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E07C
+
+ thumb_func_start sub_806E0C4
+sub_806E0C4: @ 806E0C4
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E0E8
+_0806E0CC:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E07C
+ 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 sub_806E0C4
+
+ 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 sub_806E104
+sub_806E104: @ 806E104
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0806E15C
+ 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
+ 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
+ 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 sub_806E104
+
+ thumb_func_start sub_806E168
+sub_806E168: @ 806E168
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E17E
+ movs r3, 0x2
+ b _0806E186
+_0806E17E:
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0806E186:
+ ldr r1, _0806E1C8
+ 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
+ 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 sub_806E168
+
+ thumb_func_start sub_806E1D0
+sub_806E1D0: @ 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
+ 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 sub_806E1D0
+
+ thumb_func_start sub_806E1F4
+sub_806E1F4: @ 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
+ 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 sub_806E1D0
+ ldr r6, _0806E27C
+ 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
+ ldr r2, _0806E284
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E288
+ ldr r2, _0806E28C
+ adds r1, r5, r2
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E290
+ 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 sub_806E1F4
+
+ thumb_func_start sub_806E294
+sub_806E294: @ 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 sub_806E1F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E294
+
+ thumb_func_start sub_806E2C0
+sub_806E2C0: @ 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 sub_80A1CD8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E2FA
+ movs r6, 0x2
+ b _0806E302
+_0806E2FA:
+ bl battle_type_is_double
+ 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 sub_806E104
+ b _0806E324
+_0806E31A:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E294
+_0806E324:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E3C0
+_0806E32E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E2C0
+
+ thumb_func_start sub_806E334
+sub_806E334: @ 806E334
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E358
+_0806E33C:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E2C0
+ 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 sub_806E334
+
+ thumb_func_start sub_806E35C
+sub_806E35C: @ 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
+ 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 sub_806E1D0
+ b _0806E3BA
+_0806E3B2:
+ movs r0, 0x44
+ adds r1, r3, 0
+ bl sub_806E1D0
+_0806E3BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E35C
+
+ thumb_func_start sub_806E3C0
+sub_806E3C0: @ 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
+ 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 sub_806E35C
+ 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 sub_806E3C0
+
+ thumb_func_start sub_806E420
+sub_806E420: @ 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
+ 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
+ ldr r2, _0806E494
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E498
+ ldr r2, _0806E49C
+ adds r1, r5, r2
+ ldr r2, _0806E48C
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E4A0
+ 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 sub_806E420
+
+ thumb_func_start sub_806E4A4
+sub_806E4A4: @ 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 sub_806E420
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E4A4
+
+ thumb_func_start sub_806E4E8
+sub_806E4E8: @ 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 sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E522
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_806E4A4
+ b _0806E534
+_0806E522:
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_806E4A4
+_0806E534:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E4E8
+
+ thumb_func_start sub_806E53C
+sub_806E53C: @ 806E53C
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E560
+_0806E544:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E4E8
+ 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 sub_806E53C
+
+ 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 sub_806E574
+sub_806E574: @ 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
+ 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 sub_8046200
+ 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
+ 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
+ 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 sub_806E574
+
+ thumb_func_start sub_806E630
+sub_806E630: @ 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 sub_806E574
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E630
+
+ thumb_func_start sub_806E674
+sub_806E674: @ 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 sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E6AE
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_806E630
+ b _0806E6C0
+_0806E6AE:
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_806E630
+_0806E6C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E674
+
+ thumb_func_start sub_806E6C8
+sub_806E6C8: @ 806E6C8
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E6EC
+_0806E6D0:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E674
+ 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 sub_806E6C8
+
+ 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
+ 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
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806E880
+ 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
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0806E8CC
+ 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
+ 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
+ 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 sub_806E904
+sub_806E904: @ 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
+ movs r0, 0x2
+ b _0806E940
+ .align 2, 0
+_0806E938: .4byte gUnknown_0202E8F4
+_0806E93C:
+ ldr r1, _0806E960
+ 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 sub_806E904
+
+ thumb_func_start sub_806E964
+sub_806E964: @ 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
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r2
+ ldr r1, _0806E9D8
+ str r1, [r6]
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_806E8D0
+ ldr r4, _0806E9DC
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r7, r2, 0
+ ldr r1, _0806E9E0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0806E9E4
+ 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
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806E9EC
+ 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
+ bl GetMonNickname
+ ldr r1, _0806EA34
+ adds r0, r7, 0
+ bl itemid_copy_name
+ ldr r4, _0806EA38
+ ldr r1, _0806EA3C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EA40
+ 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 sub_806EBB8
+_0806EA44:
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl sub_806E904
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A9538
+ 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 sub_806EBF0
+ ldr r0, _0806EA88
+ 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 sub_806E964
+
+ 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
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EABA
+ ldr r4, _0806EAC4
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DF60
+ ldr r2, _0806EAC8
+ 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 sub_806EACC
+sub_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
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EB5C
+ ldr r0, [r4]
+ ldrh r1, [r4, 0x6]
+ bl sub_806E904
+ 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 sub_806EDB4
+ b _0806EB9A
+ .align 2, 0
+_0806EB30: .4byte 0x0201c000
+_0806EB34:
+ ldrh r0, [r4, 0x6]
+ ldr r1, _0806EB50
+ bl itemid_copy_name
+ ldr r4, _0806EB54
+ ldr r1, _0806EB58
+ 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
+ movs r1, 0
+ bl sub_806E834
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl sub_80A9424
+ 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
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBB4
+ 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 sub_806EACC
+
+ thumb_func_start sub_806EBB8
+sub_806EBB8: @ 806EBB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EBE4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EBDE
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EBE8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBEC
+ str r0, [r1]
+_0806EBDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBE4: .4byte gUnknown_0202E8F6
+_0806EBE8: .4byte gTasks
+_0806EBEC: .4byte sub_806EACC
+ thumb_func_end sub_806EBB8
+
+ thumb_func_start sub_806EBF0
+sub_806EBF0: @ 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
+ adds r0, r1
+ ldr r1, _0806EC34
+ bl GetMonNickname
+ ldr r1, _0806EC38
+ adds r0, r4, 0
+ bl itemid_copy_name
+ ldr r4, _0806EC3C
+ ldr r1, _0806EC40
+ 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 sub_806EBF0
+
+ thumb_func_start sub_806EC44
+sub_806EC44: @ 806EC44
+ push {r4,r5,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ECA0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ECA4
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ECA8
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ ldr r2, _0806ECAC
+ 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
+ adds r4, r2, r1
+ cmp r0, 0
+ beq _0806ECBC
+ ldr r0, _0806ECB4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECB8
+ 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
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECE4
+ 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 sub_806EC44
+
+ thumb_func_start sub_806ECE8
+sub_806ECE8: @ 806ECE8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ED38
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ED3C
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ED40
+ 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
+ ldr r1, _0806ED48
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r0, _0806ED4C
+ 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 sub_80A9424
+ 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 sub_806EDB4
+ ldr r0, [r5]
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ b _0806ED9A
+_0806ED92:
+ ldr r0, _0806EDAC
+ movs r1, 0
+ bl sub_806E834
+_0806ED9A:
+ ldr r0, _0806EDB0
+ 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 sub_806ECE8
+
+ thumb_func_start sub_806EDB4
+sub_806EDB4: @ 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
+ adds r0, r1
+ ldr r1, _0806EDF8
+ bl GetMonNickname
+ ldr r1, _0806EDFC
+ adds r0, r4, 0
+ bl itemid_copy_name
+ ldr r4, _0806EE00
+ ldr r1, _0806EE04
+ 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 sub_806EDB4
+
+ thumb_func_start sub_806EE08
+sub_806EE08: @ 806EE08
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806EE48
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806EE4C
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r4, _0806EE50
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldr r0, _0806EE54
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EE58
+ 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 sub_806EFEC
+ thumb_func_end sub_806EE08
+
+ thumb_func_start sub_806EE5C
+sub_806EE5C: @ 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
+ ldrh r0, [r5, 0x6]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EE98
+ ldr r0, [r5]
+ bl sub_80A2DF8
+ ldr r0, _0806EE94
+ movs r1, 0
+ bl sub_806E834
+ b _0806EEA0
+ .align 2, 0
+_0806EE90: .4byte 0x0201c000
+_0806EE94: .4byte gOtherText_MailTaken
+_0806EE98:
+ ldr r0, _0806EEAC
+ 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
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EEFC
+ 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 sub_806EE5C
+
+ thumb_func_start sub_806EF00
+sub_806EF00: @ 806EF00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EF2C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EF26
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EF30
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF34
+ str r0, [r1]
+_0806EF26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EF2C: .4byte gUnknown_0202E8F6
+_0806EF30: .4byte gTasks
+_0806EF34: .4byte sub_806EE5C
+ thumb_func_end sub_806EF00
+
+ thumb_func_start sub_806EF38
+sub_806EF38: @ 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
+ ldr r0, [r0]
+ bl sub_80A2E78
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0806EF78
+ ldr r0, _0806EF74
+ movs r1, 0
+ bl sub_806E834
+ b _0806EF80
+ .align 2, 0
+_0806EF70: .4byte 0x0201c000
+_0806EF74: .4byte gOtherText_MailWasSent
+_0806EF78:
+ ldr r0, _0806EF90
+ movs r1, 0
+ bl sub_806E834
+_0806EF80:
+ ldr r0, _0806EF94
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF98
+ 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
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806EFE4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806EFE8
+ str r1, [r0]
+_0806EFD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
+_0806EFE4: .4byte gTasks
+_0806EFE8: .4byte sub_806EF00
+ thumb_func_end sub_806EF38
+
+ thumb_func_start sub_806EFEC
+sub_806EFEC: @ 806EFEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F018
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F012
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F01C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F020
+ str r0, [r1]
+_0806F012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F018: .4byte gUnknown_0202E8F6
+_0806F01C: .4byte gTasks
+_0806F020: .4byte sub_806EF38
+ thumb_func_end sub_806EFEC
+
+ thumb_func_start ItemIdToBattleMoveId
+ItemIdToBattleMoveId: @ 806F024
+ lsls r0, 16
+ ldr r1, _0806F034
+ adds r0, r1
+ ldr r1, _0806F038
+ 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 sub_806F06C
+sub_806F06C: @ 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
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F0AC
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E8D0
+ ldr r0, _0806F0B0
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F0A8: .4byte gTasks
+_0806F0AC: .4byte TaskDummy
+_0806F0B0: .4byte sub_806F0B4
+ thumb_func_end sub_806F06C
+
+ thumb_func_start sub_806F0B4
+sub_806F0B4: @ 806F0B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r5, _0806F114
+ ldr r0, [r5]
+ ldr r1, _0806F118
+ bl GetMonNickname
+ ldrh r0, [r5, 0x6]
+ bl ItemIdToBattleMoveId
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _0806F11C
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F120
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _0806F124
+ 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
+ ldr r1, _0806F12C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F130
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F134
+ 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 sub_8040374
+ cmp r0, 0
+ bne _0806F17C
+ ldr r4, _0806F16C
+ ldr r1, _0806F170
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F174
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F178
+ 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
+ cmp r0, r1
+ beq _0806F198
+ adds r0, r6, 0
+ bl sub_806F1D0
+ b _0806F1B8
+ .align 2, 0
+_0806F194: .4byte 0xffff0000
+_0806F198:
+ ldr r4, _0806F1C0
+ ldr r1, _0806F1C4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F1C8
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F1CC
+_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 sub_806F0B4
+
+ thumb_func_start sub_806F1D0
+sub_806F1D0: @ 806F1D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F234
+ ldr r5, _0806F238
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F23C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F240
+ ldr r1, _0806F244
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, [r5]
+ movs r1, 0x4
+ bl sub_803FCD4
+ ldr r1, _0806F248
+ 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 sub_80A9538
+_0806F220:
+ ldr r0, _0806F24C
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F250
+ 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 sub_806F254
+ thumb_func_end sub_806F1D0
+
+ thumb_func_start sub_806F254
+sub_806F254: @ 806F254
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F27C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F276
+ ldr r0, _0806F280
+ bl PlayFanfare
+ ldr r1, _0806F284
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F288
+ 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 sub_806F28C
+ thumb_func_end sub_806F254
+
+ thumb_func_start sub_806F28C
+sub_806F28C: @ 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
+ 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
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DF60
+ ldr r1, _0806F2D8
+ 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
+ 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 sub_806F28C
+
+ 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
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F34E
+ ldr r4, _0806F330
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DF60
+ ldr r1, _0806F334
+ 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
+ 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
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F37E
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F388
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F38C
+ 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
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F3CC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F3D0
+ 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 sub_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
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F430
+ ldr r0, _0806F43C
+ ldr r4, _0806F440
+ ldrb r1, [r4, 0x5]
+ ldr r2, _0806F444
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806F448
+ 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
+ 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
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F48C
+ 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 sub_806F490
+sub_806F490: @ 806F490
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F50C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F506
+ ldr r1, _0806F510
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F514
+ str r1, [r0]
+ ldr r0, _0806F518
+ ldrh r1, [r0]
+ ldr r2, _0806F51C
+ adds r0, r3, 0
+ bl sub_806E8D0
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r5, _0806F520
+ ldr r0, [r5]
+ adds r1, 0xD
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, [r5]
+ ldr r1, _0806F524
+ bl GetMonNickname
+ ldr r0, _0806F528
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _0806F52C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F530
+ ldr r1, _0806F534
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F538
+ 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 word_203855E
+_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 sub_806F53C
+ thumb_func_end sub_806F490
+
+ thumb_func_start sub_806F53C
+sub_806F53C: @ 806F53C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F580
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F57A
+ ldr r4, _0806F584
+ 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 sub_806F1D0
+_0806F57A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F580: .4byte gUnknown_0202E8F6
+_0806F584: .4byte 0x0201c000
+ thumb_func_end sub_806F53C
+
+ thumb_func_start sub_806F588
+sub_806F588: @ 806F588
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F5E8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F5E0
+ ldr r1, _0806F5EC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F5F0
+ str r1, [r0]
+ ldr r0, _0806F5F4
+ ldrh r1, [r0]
+ ldr r2, _0806F5F8
+ adds r0, r3, 0
+ bl sub_806E8D0
+ ldr r0, _0806F5FC
+ ldr r1, _0806F600
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F604
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F608
+ ldr r1, _0806F60C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F610
+ 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 word_203855E
+_0806F5F8: .4byte sub_808B508
+_0806F5FC: .4byte gStringVar2
+_0806F600: .4byte 0x0201c000
+_0806F604: .4byte gMoveNames
+_0806F608: .4byte gStringVar4
+_0806F60C: .4byte gOtherText_StopTryingTo
+_0806F610: .4byte sub_806F67C
+ thumb_func_end sub_806F588
+
+ thumb_func_start sub_806F614
+sub_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
+ ldr r1, _0806F664
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F668
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F66C
+ ldr r1, _0806F670
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F674
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F678
+ 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 sub_806F67C
+ thumb_func_end sub_806F614
+
+ thumb_func_start sub_806F67C
+sub_806F67C: @ 806F67C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F6A8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F6A2
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F6AC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F6B0
+ str r0, [r1]
+_0806F6A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F6A8: .4byte gUnknown_0202E8F6
+_0806F6AC: .4byte gTasks
+_0806F6B0: .4byte sub_806F6B4
+ thumb_func_end sub_806F67C
+
+ thumb_func_start sub_806F6B4
+sub_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
+ ldr r0, [r4]
+ ldr r1, _0806F714
+ bl GetMonNickname
+ ldr r0, _0806F718
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F71C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F720
+ ldr r1, _0806F724
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F728
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F72C
+ 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
+ ldr r0, [r4]
+ ldr r1, _0806F79C
+ bl GetMonNickname
+ ldr r0, _0806F7A0
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F7A4
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F7A8
+ ldr r1, _0806F7AC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F7B0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F7B4
+_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 sub_806F6B4
+
+ thumb_func_start sub_806F7B8
+sub_806F7B8: @ 806F7B8
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldr r3, _0806F7D4
+_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 sub_806F7B8
+
+ 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
+ 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
+ ldr r2, _0806F8A0
+ adds r0, r6, r2
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ bl sub_8046200
+ 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
+ bl battle_type_is_double
+ 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
+ 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 gUnknown_03004B28
+_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
+ ldr r2, _0806F8F8
+ 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
+ ldrh r0, [r5]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _0806F944
+ ldr r0, [r0]
+ ldr r1, _0806F948
+ bl GetMonNickname
+ ldr r0, _0806F94C
+ ldrh r1, [r5]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r2, _0806F950
+ 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
+ ldr r1, _0806F958
+ 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
+ ldr r1, _0806F9D8
+ bl StringExpandPlaceholders
+_0806F964:
+ ldr r4, _0806F9DC
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl sub_806D84C
+ bl battle_type_is_double
+ 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
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _0806F9E4
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _0806F9D4
+ 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 sub_80A9538
+ bl sub_8032638
+ ldr r1, _0806F9E8
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F9EC
+ 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 battle_type_is_double
+ 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 sub_806E420
+_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
+ ldr r1, _0806FAC8
+ 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
+ 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
+ adds r6, r1
+ ldrb r1, [r6, 0x1]
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl sub_806D84C
+ ldr r2, _0806FAD4
+ 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
+ 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
+ str r0, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ ldr r0, _0806FAE0
+ 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 battle_type_is_double
+ 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 sub_806E420
+_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
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB32
+ ldr r3, _0806FB3C
+ ldr r2, _0806FB40
+ 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
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB6A
+ ldr r3, _0806FB74
+ ldr r2, _0806FB78
+ 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 sub_806FB7C
+sub_806FB7C: @ 806FB7C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0806FB90
+ ldr r0, _0806FB8C
+ b _0806FB9A
+ .align 2, 0
+_0806FB8C: .4byte gSaveBlock1 + 0x3676
+_0806FB90:
+ ldr r1, _0806FBA8
+ 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 sub_806FB7C
+
+ thumb_func_start sub_806FBB4
+sub_806FBB4: @ 806FBB4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806E168
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E2C0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806FBB4
+
+ thumb_func_start GetMedicineItemEffectMessage
+GetMedicineItemEffectMessage: @ 806FBD0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0x12
+ bls _0806FBE6
+ b _0806FD7C
+_0806FBE6:
+ lsls r0, 2
+ ldr r1, _0806FBF0
+ 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
+ ldr r1, _0806FC50
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC4C: .4byte gStringVar4
+_0806FC50: .4byte gOtherText_CuredPoisoning
+_0806FC54:
+ ldr r0, _0806FC60
+ ldr r1, _0806FC64
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC60: .4byte gStringVar4
+_0806FC64: .4byte gOtherText_WokeUp
+_0806FC68:
+ ldr r0, _0806FC74
+ ldr r1, _0806FC78
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC74: .4byte gStringVar4
+_0806FC78: .4byte gOtherText_BurnHealed
+_0806FC7C:
+ ldr r0, _0806FC88
+ ldr r1, _0806FC8C
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC88: .4byte gStringVar4
+_0806FC8C: .4byte gOtherText_ThawedOut
+_0806FC90:
+ ldr r0, _0806FC9C
+ ldr r1, _0806FCA0
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC9C: .4byte gStringVar4
+_0806FCA0: .4byte gOtherText_CuredParalysis
+_0806FCA4:
+ ldr r0, _0806FCB0
+ ldr r1, _0806FCB4
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCB0: .4byte gStringVar4
+_0806FCB4: .4byte gOtherText_SnapConfusion
+_0806FCB8:
+ ldr r0, _0806FCC4
+ ldr r1, _0806FCC8
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCC4: .4byte gStringVar4
+_0806FCC8: .4byte gOtherText_GotOverLove
+_0806FCCC:
+ ldr r0, _0806FCD8
+ ldr r1, _0806FCDC
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCD8: .4byte gStringVar4
+_0806FCDC: .4byte gOtherText_BecameHealthy
+_0806FCE0:
+ ldr r0, _0806FCE8
+ ldr r1, _0806FCEC
+ b _0806FD34
+ .align 2, 0
+_0806FCE8: .4byte gStringVar2
+_0806FCEC: .4byte gOtherText_Hp2
+_0806FCF0:
+ ldr r0, _0806FCF8
+ ldr r1, _0806FCFC
+ b _0806FD34
+ .align 2, 0
+_0806FCF8: .4byte gStringVar2
+_0806FCFC: .4byte gOtherText_Attack
+_0806FD00:
+ ldr r0, _0806FD08
+ ldr r1, _0806FD0C
+ b _0806FD34
+ .align 2, 0
+_0806FD08: .4byte gStringVar2
+_0806FD0C: .4byte gOtherText_Defense
+_0806FD10:
+ ldr r0, _0806FD18
+ ldr r1, _0806FD1C
+ b _0806FD34
+ .align 2, 0
+_0806FD18: .4byte gStringVar2
+_0806FD1C: .4byte gOtherText_Speed
+_0806FD20:
+ ldr r0, _0806FD28
+ ldr r1, _0806FD2C
+ b _0806FD34
+ .align 2, 0
+_0806FD28: .4byte gStringVar2
+_0806FD2C: .4byte gOtherText_SpAtk2
+_0806FD30:
+ ldr r0, _0806FD44
+ ldr r1, _0806FD48
+_0806FD34:
+ bl StringCopy
+ ldr r0, _0806FD4C
+ ldr r1, _0806FD50
+ 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
+ ldr r1, _0806FD64
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD60: .4byte gStringVar4
+_0806FD64: .4byte gOtherText_PPIncreased
+_0806FD68:
+ ldr r0, _0806FD74
+ ldr r1, _0806FD78
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD74: .4byte gStringVar4
+_0806FD78: .4byte gOtherText_PPRestored
+_0806FD7C:
+ ldr r0, _0806FD88
+ ldr r1, _0806FD8C
+ bl StringExpandPlaceholders
+_0806FD84:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FD88: .4byte gStringVar4
+_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
+ thumb_func_end GetMedicineItemEffectMessage
+
+ thumb_func_start sub_806FD90
+sub_806FD90: @ 806FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bne _0806FDBC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0806FDB8
+ 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 sub_806FD90
+
+ 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
+ ldr r1, _0806FDF4
+ 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
+ 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
+ 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 sub_806FE2C
+sub_806FE2C: @ 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
+ mov r10, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r10
+ ldr r0, _0806FED8
+ 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
+ ldr r0, [r5]
+ adds r1, r6, 0
+ bl sub_806FD90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FEE0
+ adds r0, r6, 0
+ bl sub_806FB7C
+ 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
+ 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
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0806FF0C
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806FF10
+ 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
+ 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
+ ldr r0, [r4]
+ bl sub_80A1CD8
+ 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 sub_806FBB4
+_0806FF56:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _0806FFC8
+ ldr r4, _0806FF88
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ ldr r2, _0806FF8C
+ 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
+ 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
+ ldr r0, [r2, 0x10]
+ str r0, [r2, 0x14]
+ ldr r1, _0806FFBC
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806FFC0
+ str r1, [r0]
+ ldrh r0, [r0, 0x1E]
+ ldr r1, _0806FFC4
+ 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
+ ldr r0, [r4]
+ ldr r1, _0807001C
+ bl GetMonNickname
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FFE6
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80A9538
+_0806FFE6:
+ adds r0, r6, 0
+ bl GetMedicineItemEffectMessage
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl sub_806E07C
+ ldr r0, _08070020
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070024
+ mov r2, r8
+ adds r0, r2, r7
+_08070002:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070028
+ 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 sub_806FE2C
+
+ 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
+ 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
+ str r1, [r3, 0x14]
+ ldr r2, _08070080
+ adds r1, r3, r2
+ strh r4, [r1]
+ ldr r1, _08070084
+ 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
+ mov r10, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ mov r2, r10
+ adds r7, r1, r2
+ ldr r5, _08070124
+ str r5, [r7]
+ ldr r4, _08070128
+ ldrb r0, [r4, 0x5]
+ movs r1, 0x64
+ mov r9, r1
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r1, _0807012C
+ 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
+ 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
+ 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 sub_806FBB4
+ bl battle_type_is_double
+ 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
+ adds r0, r1
+ movs r1, 0x9
+ bl task_pc_turn_off
+ ldr r2, _080701C8
+ 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
+ adds r0, r4, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r2, _080701D0
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldrh r1, [r6, 0x16]
+ adds r2, 0x2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _080701D4
+ str r0, [r4, 0xC]
+ ldr r1, [sp]
+ add r1, r10
+ ldr r0, _080701D8
+ 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
+ ldr r0, _08070284
+ 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 sub_80A9424
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08070288
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0807023A
+ bl battle_type_is_double
+ 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
+ adds r0, r1
+ movs r1, 0x3
+ bl task_pc_turn_off
+ ldr r0, _08070290
+ adds r1, r6, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0807023A:
+ movs r0, 0
+ strh r0, [r7]
+_0807023E:
+ ldr r4, _08070294
+ 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
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0807029C
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080702B0
+ ldr r1, _080702A0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080702A4
+ str r1, [r0]
+ ldr r0, _080702A8
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _080702AC
+ 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 sub_80A9538
+ ldr r1, _080702D0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+_080702C6:
+ ldr r1, _080702D4
+ 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 sub_80702E4
+sub_80702E4: @ 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
+ 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
+ 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 sub_80702E4
+
+ thumb_func_start sub_8070374
+sub_8070374: @ 8070374
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r0, _08070398
+ 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
+ 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
+ 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 sub_8070374
+
+ thumb_func_start dp05_ether
+dp05_ether: @ 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
+ b _0807041C
+ .align 2, 0
+_0807040C: .4byte gSaveBlock1 + 0x3676
+_08070410:
+ ldr r1, _08070464
+ adds r0, r5, 0
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0807041C:
+ mov r8, r0
+ ldr r7, _08070468
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _0807046C
+ 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 ether_effect_related
+ 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
+ ldrb r0, [r0, 0x5]
+ bl sub_80702E4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _080704A8
+ str r1, [r0]
+ ldr r1, _080704AC
+ 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 sub_8070374
+_080704AC: .4byte gMain
+ thumb_func_end dp05_ether
+
+ thumb_func_start ether_effect_related_2
+ether_effect_related_2: @ 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
+ 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 ether_effect_related
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704EC: .4byte gTasks
+ thumb_func_end ether_effect_related_2
+
+ thumb_func_start sub_80704F0
+sub_80704F0: @ 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
+ ldr r1, _0807052C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807053C
+ ldr r2, _08070530
+ ldr r0, _08070534
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08070538
+ 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
+ ldr r0, _08070568
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0807056C
+_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 sub_80704F0
+
+ thumb_func_start ether_effect_related
+ether_effect_related: @ 8070570
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r6, _080705A8
+ ldrb r0, [r6, 0x5]
+ ldrh r1, [r6, 0x6]
+ ldr r3, _080705AC
+ 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
+ strb r5, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080705B4
+ 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
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ bl PlaySE
+ ldrh r0, [r6, 0x6]
+ movs r1, 0x1
+ bl sub_80A9538
+ 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
+ movs r1, 0xD
+ muls r1, r5
+ ldr r2, _08070614
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r6, 0x6]
+ bl GetMedicineItemEffectMessage
+ ldr r0, _08070618
+ movs r1, 0x1
+ bl sub_806E834
+_080705F8:
+ ldr r0, _0807061C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070620
+ 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 ether_effect_related
+
+ thumb_func_start dp05_pp_up
+dp05_pp_up: @ 8070624
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0807066C
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r3, r4
+ ldr r4, _08070670
+ str r4, [r3]
+ bl sub_806E8D0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xB
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _08070674
+ ldrb r0, [r0, 0x5]
+ bl sub_80702E4
+ ldr r0, _08070678
+ movs r1, 0x5
+ bl CreateTask
+ ldr r1, _0807067C
+ 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 sub_8070374
+_0807067C: .4byte gMain
+ thumb_func_end dp05_pp_up
+
+ thumb_func_start sub_8070680
+sub_8070680: @ 8070680
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r3, _080706E0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _080706E4
+ str r3, [r1]
+ adds r1, r6, 0
+ bl sub_806E8D0
+ ldr r5, _080706E8
+ ldr r0, [r5]
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _080706F4
+ movs r4, 0
+ ldr r0, _080706EC
+ adds r7, r5, r0
+_080706B2:
+ ldr r0, [r5]
+ ldr r1, _080706F0
+ 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
+ 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
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0807071C
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070720
+ 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
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ bl PlayFanfareByFanfareNum
+ ldr r4, _08070788
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl sub_8070A20
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r0, [r4]
+ ldr r1, _0807078C
+ bl GetMonNickname
+ ldr r0, [r4]
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08070790
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, _08070794
+ ldr r1, _08070798
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0807079C
+ 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 sub_80707A0
+ thumb_func_end sub_8070680
+
+ thumb_func_start sub_80707A0
+sub_80707A0: @ 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
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080707E8
+ ldr r0, _080707F4
+ 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
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080707FC
+ 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 sub_8070800
+ thumb_func_end sub_80707A0
+
+ thumb_func_start sub_8070800
+sub_8070800: @ 8070800
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807083C
+ 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
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070844
+ str r0, [r1]
+_08070834:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807083C: .4byte gMain
+_08070840: .4byte gTasks
+_08070844: .4byte sub_8070AC8
+ thumb_func_end sub_8070800
+
+ 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
+ mov r10, r0
+_08070864:
+ ldr r1, _080708E8
+ ldr r0, [r1]
+ ldr r1, _080708EC
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r1, r7, 0x6
+ lsls r1, 1
+ ldr r2, _080708F0
+ 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
+ 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 sub_80729D8
+ 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
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80729D8
+ 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
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_80729D8
+_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
+ 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 sub_80729D8
+ 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
+ mov r9, r0
+ ldr r1, _08070A14
+ add r1, r9
+ mov r10, r1
+ ldr r0, _08070A18
+ mov r8, r0
+_08070982:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, _08070A1C
+ 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 sub_80729D8
+ 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 sub_80A1CD8
+ 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 sub_806FBB4
+_08070A42:
+ bl battle_type_is_double
+ 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 sub_806E420
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_806E674
+ ldr r4, _08070ABC
+ ldrb r0, [r4, 0x4]
+ adds r1, r7, 0
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ bl sub_806D84C
+ bl battle_type_is_double
+ 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
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _08070AC4
+ 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 sub_8070AC8
+sub_8070AC8: @ 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
+ 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
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _08070B2C
+ adds r0, r7, r1
+ strh r5, [r0]
+ ldr r0, _08070B30
+ 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
+ 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
+ ldr r0, _08070B70
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl sub_8111924
+ 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
+ bl GetMonNickname
+ ldr r0, _08070BC0
+ ldr r5, _08070BC4
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070BC8
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070BCC
+ ldr r1, _08070BD0
+ 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
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070BD8
+ 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
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070BF0
+ str r0, [r1]
+ b _08070C2C
+ .align 2, 0
+_08070BEC: .4byte gTasks
+_08070BF0: .4byte sub_8070C54
+_08070BF4:
+ ldr r0, _08070C34
+ ldr r0, [r0]
+ ldr r1, _08070C38
+ bl GetMonNickname
+ ldr r0, _08070C3C
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070C40
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070C44
+ ldr r1, _08070C48
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070C4C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070C50
+_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 sub_806F254
+ thumb_func_end sub_8070AC8
+
+ thumb_func_start sub_8070C54
+sub_8070C54: @ 8070C54
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08070C78
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _08070C7C
+ 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
+ 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
+ ldr r0, _08070CBC
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl sub_8111924
+ 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
+ bl GetMonNickname
+ ldr r0, _08070D0C
+ ldr r5, _08070D10
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070D14
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D18
+ ldr r1, _08070D1C
+ 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
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D24
+ 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
+ ldr r0, [r0]
+ ldr r1, _08070D74
+ bl GetMonNickname
+ ldr r0, _08070D78
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070D7C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D80
+ ldr r1, _08070D84
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070D88
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D8C
+_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 sub_806F254
+ 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
+ ldr r3, _08070DB8
+ 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 sub_8070DBC
+sub_8070DBC: @ 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
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070E1C
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r1, _08070E20
+ ldr r0, _08070E24
+ str r0, [r1]
+ ldr r0, _08070E28
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070E38
+ ldr r1, _08070E2C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08070E30
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070E34
+ 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 sub_80A9538
+_08070E40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8070DBC
+
+ thumb_func_start sub_8070E48
+sub_8070E48: @ 8070E48
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _08070E5C
+ ldr r4, _08070E58
+ b _08070E66
+ .align 2, 0
+_08070E58: .4byte gSaveBlock1 + 0x3676
+_08070E5C:
+ ldr r1, _08070E8C
+ 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 sub_8070E48
+
+ thumb_func_start unref_sub_8070F90
+unref_sub_8070F90: @ 8070F90
+ push {lr}
+ ldr r0, _08070FAC
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 4
+ bl FlagSet
+ ldr r0, _08070FB0
+ 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 de60569bf..0caccfded 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -65,6 +65,8 @@ SECTIONS {
src/script.o(.text);
src/scrcmd.o(.text);
asm/rom_8065394.o(.text);
+ asm/party_menu.o(.text);
+ asm/rom_806D7F8.o(.text);
src/start_menu.o(.text);
src/menu.o(.text);
asm/rom_8072DF8.o(.text);