summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-17 20:03:41 -0700
committerYamaArashi <shadow962@live.com>2016-10-17 20:03:41 -0700
commit96e00863053cb45ea1466095f07f41540ce6ea25 (patch)
treeb424abdb744dc38461c946a394e585eccc355b8d
parent8703c1edc9d324ef8fb0e939299d08e86cbe734b (diff)
split out wild_encounter.s
-rw-r--r--Makefile2
-rw-r--r--asm/rom5.s14013
-rw-r--r--asm/rom_8085668.s12285
-rw-r--r--asm/wild_encounter.s1746
-rw-r--r--ld_script.txt2
5 files changed, 14034 insertions, 14014 deletions
diff --git a/Makefile b/Makefile
index 80ecf8dac..a97a135ef 100644
--- a/Makefile
+++ b/Makefile
@@ -51,7 +51,7 @@ asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o \
asm/tileset.o asm/rom_8065394.o asm/rom_803D1FC.o asm/calculate_base_damage.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/party_menu.o asm/rom_806D7F8.o
+asm/party_menu.o asm/rom_806D7F8.o asm/wild_encounter.o asm/rom_8085668.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/rom5.s b/asm/rom5.s
index a8dce88ea..aa6f0f486 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -20201,14017 +20201,4 @@ _0808496E:
bx r0
thumb_func_end objc_exclamation_mark_probably
- thumb_func_start unref_sub_8084978
-unref_sub_8084978: @ 8084978
- ldr r1, _08084980
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08084980: .4byte gUnknown_0202FF7C
- thumb_func_end unref_sub_8084978
-
- thumb_func_start sub_8084984
-sub_8084984: @ 8084984
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08084A0C
- lsls r1, r2, 1
- adds r1, r2
- lsls r2, r1, 1
- adds r2, r3
- adds r0, r1, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- mov r9, r0
- adds r1, 0x2
- lsls r1, 1
- adds r1, r3
- ldrh r6, [r1]
- ldrh r5, [r2]
- cmp r5, r9
- bhi _08084A2E
- ldr r0, _08084A10
- mov r10, r0
-_080849C6:
- movs r4, 0
- mov r1, r10
- ldr r0, [r1]
- ldr r0, [r0]
- cmp r4, r0
- bge _08084A24
- ldr r1, [sp]
- lsls r0, r1, 16
- asrs r0, 16
- mov r8, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r7, r0, 16
-_080849E0:
- adds r0, r4, 0x7
- adds r1, r5, 0x7
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_805759C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08084A14
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r8, r4
- bne _08084A14
- cmp r7, r5
- bne _08084A14
- adds r0, r6, 0
- b _08084A34
- .align 2, 0
-_08084A0C: .4byte gUnknown_0839DC00
-_08084A10: .4byte gMapHeader
-_08084A14:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- mov r1, r10
- ldr r0, [r1]
- ldr r0, [r0]
- cmp r4, r0
- blt _080849E0
-_08084A24:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r9
- bls _080849C6
-_08084A2E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r0, 16
-_08084A34:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8084984
-
- thumb_func_start check_feebas
-check_feebas: @ 8084A44
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- movs r7, 0
- ldr r0, _08084ABC
- ldrh r1, [r0, 0x4]
- movs r0, 0x88
- lsls r0, 6
- cmp r1, r0
- bne _08084B38
- add r5, sp, 0xC
- mov r4, sp
- adds r4, 0xE
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldrh r0, [r5]
- subs r0, 0x7
- strh r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x7
- strh r0, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r0, _08084AC0
- mov r9, r5
- mov r8, r4
- ldrh r2, [r0, 0x6]
- cmp r1, r2
- blt _08084A8E
- ldrh r3, [r0, 0x8]
- cmp r1, r3
- bgt _08084A8E
- movs r7, 0x1
-_08084A8E:
- mov r2, r8
- movs r3, 0
- ldrsh r1, [r2, r3]
- ldrh r2, [r0, 0xC]
- cmp r1, r2
- blt _08084AA2
- ldrh r0, [r0, 0xE]
- cmp r1, r0
- bgt _08084AA2
- movs r7, 0x2
-_08084AA2:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bls _08084AC8
- b _08084B38
- .align 2, 0
-_08084ABC: .4byte gSaveBlock1
-_08084AC0: .4byte gUnknown_0839DC00
-_08084AC4:
- movs r0, 0x1
- b _08084B3A
-_08084AC8:
- ldr r0, _08084B48
- ldr r3, _08084B4C
- adds r0, r3
- ldrh r0, [r0]
- bl sub_8084B74
- movs r5, 0
- ldr r6, _08084B50
-_08084AD8:
- bl sub_8084B54
- lsls r1, r5, 1
- mov r2, sp
- adds r4, r2, r1
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __umodsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _08084AF6
- strh r6, [r4]
-_08084AF6:
- ldrh r0, [r4]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _08084B08
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08084B08:
- cmp r5, 0x6
- bne _08084AD8
- mov r3, r9
- movs r1, 0
- ldrsh r0, [r3, r1]
- mov r2, r8
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r2, r7, 0
- bl sub_8084984
- lsls r0, 16
- lsrs r1, r0, 16
- movs r5, 0
-_08084B24:
- lsls r0, r5, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r1, r0
- beq _08084AC4
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08084B24
-_08084B38:
- movs r0, 0
-_08084B3A:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08084B48: .4byte gSaveBlock1
-_08084B4C: .4byte 0x00002dd6
-_08084B50: .4byte 0x000001bf
- thumb_func_end check_feebas
-
- thumb_func_start sub_8084B54
-sub_8084B54: @ 8084B54
- ldr r2, _08084B68
- ldr r1, [r2]
- ldr r0, _08084B6C
- muls r0, r1
- ldr r1, _08084B70
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- bx lr
- .align 2, 0
-_08084B68: .4byte gUnknown_0202FF80
-_08084B6C: .4byte 0x41c64e6d
-_08084B70: .4byte 0x00003039
- thumb_func_end sub_8084B54
-
- thumb_func_start sub_8084B74
-sub_8084B74: @ 8084B74
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08084B80
- str r0, [r1]
- bx lr
- .align 2, 0
-_08084B80: .4byte gUnknown_0202FF80
- thumb_func_end sub_8084B74
-
- thumb_func_start wild_pokemon_rand_grass
-wild_pokemon_rand_grass: @ 8084B84
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _08084BA0
- movs r0, 0
- b _08084C3A
-_08084BA0:
- adds r0, r1, 0
- subs r0, 0x14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08084BB0
- movs r0, 0x1
- b _08084C3A
-_08084BB0:
- adds r0, r1, 0
- subs r0, 0x28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08084BC0
- movs r0, 0x2
- b _08084C3A
-_08084BC0:
- adds r0, r1, 0
- subs r0, 0x32
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08084BD0
- movs r0, 0x3
- b _08084C3A
-_08084BD0:
- adds r0, r1, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08084BE0
- movs r0, 0x4
- b _08084C3A
-_08084BE0:
- adds r0, r1, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08084BF0
- movs r0, 0x5
- b _08084C3A
-_08084BF0:
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08084C00
- movs r0, 0x6
- b _08084C3A
-_08084C00:
- adds r0, r1, 0
- subs r0, 0x55
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08084C10
- movs r0, 0x7
- b _08084C3A
-_08084C10:
- adds r0, r1, 0
- subs r0, 0x5A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08084C20
- movs r0, 0x8
- b _08084C3A
-_08084C20:
- adds r0, r1, 0
- subs r0, 0x5E
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08084C30
- movs r0, 0x9
- b _08084C3A
-_08084C30:
- cmp r1, 0x62
- beq _08084C38
- movs r0, 0xB
- b _08084C3A
-_08084C38:
- movs r0, 0xA
-_08084C3A:
- pop {r1}
- bx r1
- thumb_func_end wild_pokemon_rand_grass
-
- thumb_func_start wild_pokemon_rand_water
-wild_pokemon_rand_water: @ 8084C40
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- cmp r1, 0x3B
- bhi _08084C5E
- movs r0, 0
- b _08084C90
-_08084C5E:
- adds r0, r1, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1D
- bhi _08084C6E
- movs r0, 0x1
- b _08084C90
-_08084C6E:
- adds r0, r1, 0
- subs r0, 0x5A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08084C7E
- movs r0, 0x2
- b _08084C90
-_08084C7E:
- adds r0, r2, 0
- subs r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08084C8E
- movs r0, 0x4
- b _08084C90
-_08084C8E:
- movs r0, 0x3
-_08084C90:
- pop {r1}
- bx r1
- thumb_func_end wild_pokemon_rand_water
-
- thumb_func_start sub_8084C94
-sub_8084C94: @ 8084C94
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- movs r5, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0x1
- beq _08084CCE
- cmp r4, 0x1
- bgt _08084CBE
- cmp r4, 0
- beq _08084CC4
- b _08084D28
-_08084CBE:
- cmp r6, 0x2
- beq _08084CF2
- b _08084D28
-_08084CC4:
- movs r5, 0x1
- cmp r1, 0x45
- bhi _08084D28
- movs r5, 0
- b _08084D28
-_08084CCE:
- cmp r1, 0x3B
- bhi _08084CD4
- movs r5, 0x2
-_08084CD4:
- adds r0, r1, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08084CE2
- movs r5, 0x3
-_08084CE2:
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08084D28
- movs r5, 0x4
- b _08084D28
-_08084CF2:
- cmp r1, 0x27
- bhi _08084CF8
- movs r5, 0x5
-_08084CF8:
- adds r0, r1, 0
- subs r0, 0x28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x27
- bhi _08084D06
- movs r5, 0x6
-_08084D06:
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE
- bhi _08084D14
- movs r5, 0x7
-_08084D14:
- adds r0, r1, 0
- subs r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08084D22
- movs r5, 0x8
-_08084D22:
- cmp r1, 0x63
- bne _08084D28
- movs r5, 0x9
-_08084D28:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8084C94
-
- thumb_func_start random_number_in_range
-random_number_in_range: @ 8084D30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- cmp r0, r1
- bcc _08084D40
- ldrb r5, [r4]
- b _08084D44
-_08084D40:
- ldrb r5, [r4, 0x1]
- ldrb r0, [r4]
-_08084D44:
- subs r4, r0, r5
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5, r0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end random_number_in_range
-
- thumb_func_start sub_8084D6C
-sub_8084D6C: @ 8084D6C
- push {r4-r6,lr}
- movs r3, 0
- ldr r5, _08084D9C
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _08084DB8
- adds r6, r5, 0
- ldr r4, _08084DA0
-_08084D7C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r6
- ldrb r1, [r2]
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r1, r0
- bne _08084DA4
- ldrb r1, [r2, 0x1]
- movs r0, 0x5
- ldrsb r0, [r4, r0]
- cmp r1, r0
- bne _08084DA4
- adds r0, r3, 0
- b _08084DBA
- .align 2, 0
-_08084D9C: .4byte gWildMonHeaders
-_08084DA0: .4byte gSaveBlock1
-_08084DA4:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08084D7C
-_08084DB8:
- ldr r0, _08084DC0
-_08084DBA:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08084DC0: .4byte 0x0000ffff
- thumb_func_end sub_8084D6C
-
- thumb_func_start sub_8084DC4
-sub_8084DC4: @ 8084DC4
- push {r4-r7,lr}
- sub sp, 0x1C
- bl GetSafariZoneFlag
- cmp r0, 0x1
- bne _08084E5E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4F
- bhi _08084E5E
- bl sub_80C8448
- adds r7, r0, 0
- cmp r7, 0
- beq _08084E5E
- movs r5, 0
-_08084DF2:
- mov r1, sp
- adds r0, r1, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x18
- bls _08084DF2
- movs r5, 0
-_08084E04:
- adds r1, r5, 0x1
- lsls r0, r1, 24
- lsrs r4, r0, 24
- adds r6, r1, 0
- cmp r4, 0x18
- bhi _08084E34
- add r5, sp
-_08084E12:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08084E2A
- ldrb r2, [r5]
- mov r0, sp
- adds r1, r0, r4
- ldrb r0, [r1]
- strb r0, [r5]
- strb r2, [r1]
-_08084E2A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x18
- bls _08084E12
-_08084E34:
- lsls r0, r6, 24
- lsrs r5, r0, 24
- cmp r5, 0x17
- bls _08084E04
- movs r5, 0
-_08084E3E:
- mov r1, sp
- adds r4, r1, r5
- ldrb r0, [r4]
- adds r1, r7, 0
- bl sub_810CAE4
- lsls r0, 16
- cmp r0, 0
- ble _08084E54
- ldrb r0, [r4]
- b _08084E70
-_08084E54:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x18
- bls _08084E3E
-_08084E5E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
-_08084E70:
- add sp, 0x1C
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8084DC4
-
- thumb_func_start sub_8084E78
-sub_8084E78: @ 8084E78
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- bl ZeroEnemyPartyMons
- bl sub_8084DC4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08084EAC
- str r0, [sp]
- adds r0, r1, 0
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x20
- bl CreateMonWithNature
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08084EAC: .4byte gEnemyParty
- thumb_func_end sub_8084E78
-
- thumb_func_start sub_8084EB0
-sub_8084EB0: @ 8084EB0
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0
- cmp r1, 0x1
- beq _08084EDA
- cmp r1, 0x1
- bgt _08084ECE
- cmp r1, 0
- beq _08084ED4
- b _08084EE2
-_08084ECE:
- cmp r3, 0x2
- beq _08084EDA
- b _08084EE2
-_08084ED4:
- bl wild_pokemon_rand_grass
- b _08084EDE
-_08084EDA:
- bl wild_pokemon_rand_water
-_08084EDE:
- lsls r0, 24
- lsrs r0, 24
-_08084EE2:
- lsls r4, r0, 2
- ldr r0, [r6, 0x4]
- adds r0, r4
- bl random_number_in_range
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r7, 0x1
- bne _08084F04
- adds r0, r5, 0
- bl sub_8085598
- lsls r0, 24
- cmp r0, 0
- bne _08084F04
- movs r0, 0
- b _08084F12
-_08084F04:
- ldr r0, [r6, 0x4]
- adds r0, r4, r0
- ldrh r0, [r0, 0x2]
- adds r1, r5, 0
- bl sub_8084E78
- movs r0, 0x1
-_08084F12:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8084EB0
-
- thumb_func_start sub_8084F18
-sub_8084F18: @ 8084F18
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_8084C94
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- ldr r0, [r5, 0x4]
- adds r0, r4
- bl random_number_in_range
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [r5, 0x4]
- adds r0, r4, r0
- ldrh r0, [r0, 0x2]
- bl sub_8084E78
- ldr r0, [r5, 0x4]
- adds r4, r0
- ldrh r0, [r4, 0x2]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8084F18
-
- thumb_func_start SetUpMassOutbreakEncounter
-SetUpMassOutbreakEncounter: @ 8084F50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08084F78
- ldr r0, _08084F74
- movs r1, 0xAC
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8085598
- lsls r0, 24
- cmp r0, 0
- bne _08084F78
- movs r0, 0
- b _08084FAC
- .align 2, 0
-_08084F74: .4byte gSaveBlock1
-_08084F78:
- ldr r4, _08084FB4
- ldr r2, _08084FB8
- adds r0, r4, r2
- ldrh r0, [r0]
- adds r2, 0x4
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_8084E78
- movs r5, 0
- ldr r0, _08084FBC
- adds r4, r0
-_08084F90:
- lsls r0, r5, 1
- adds r0, r4
- ldrh r1, [r0]
- lsls r2, r5, 24
- lsrs r2, 24
- ldr r0, _08084FC0
- bl SetMonMoveSlot
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _08084F90
- movs r0, 0x1
-_08084FAC:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08084FB4: .4byte gSaveBlock1
-_08084FB8: .4byte 0x00002afc
-_08084FBC: .4byte 0x00002b04
-_08084FC0: .4byte gEnemyParty
- thumb_func_end SetUpMassOutbreakEncounter
-
- thumb_func_start DoMassOutbreakEncounterTest
-DoMassOutbreakEncounterTest: @ 8084FC4
- push {r4,lr}
- ldr r4, _08085010
- ldr r1, _08085014
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _08085020
- movs r1, 0x5
- ldrsb r1, [r4, r1]
- ldr r2, _08085018
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r1, r0
- bne _08085020
- movs r1, 0x4
- ldrsb r1, [r4, r1]
- adds r2, 0x1
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r1, r0
- bne _08085020
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- ldr r2, _0808501C
- adds r1, r4, r2
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08085020
- movs r0, 0x1
- b _08085022
- .align 2, 0
-_08085010: .4byte gSaveBlock1
-_08085014: .4byte 0x00002afc
-_08085018: .4byte 0x00002afe
-_0808501C: .4byte 0x00002b0d
-_08085020:
- movs r0, 0
-_08085022:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end DoMassOutbreakEncounterTest
-
- thumb_func_start DoWildEncounterRateDiceRoll
-DoWildEncounterRateDiceRoll: @ 8085028
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- lsls r1, 4
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcc _0808504C
- movs r0, 0
- b _0808504E
-_0808504C:
- movs r0, 0x1
-_0808504E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end DoWildEncounterRateDiceRoll
-
- thumb_func_start sub_8085054
-sub_8085054: @ 8085054
- push {r4,lr}
- sub sp, 0x4
- str r0, [sp]
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r0, 4
- str r0, [sp]
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808507E
- ldr r1, [sp]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- movs r1, 0x64
- bl __udivsi3
- str r0, [sp]
-_0808507E:
- mov r0, sp
- bl affects_encounter_rate_based_on_flags
- mov r0, sp
- bl ApplyCleanseTagWildEncounterRateReduction
- cmp r4, 0
- bne _080850BA
- ldr r4, _080850DC
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _080850BA
- adds r0, r4, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080850B0
- ldr r0, [sp]
- lsrs r0, 1
- str r0, [sp]
-_080850B0:
- cmp r1, 0x23
- bne _080850BA
- ldr r0, [sp]
- lsls r0, 1
- str r0, [sp]
-_080850BA:
- ldr r0, [sp]
- movs r1, 0xB4
- lsls r1, 4
- cmp r0, r1
- bls _080850C6
- str r1, [sp]
-_080850C6:
- ldr r0, [sp]
- lsls r0, 16
- lsrs r0, 16
- bl DoWildEncounterRateDiceRoll
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080850DC: .4byte gPlayerParty
- thumb_func_end sub_8085054
-
- thumb_func_start DoGlobalWildEncounterDiceRoll
-DoGlobalWildEncounterDiceRoll: @ 80850E0
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3B
- bhi _080850FC
- movs r0, 0x1
- b _080850FE
-_080850FC:
- movs r0, 0
-_080850FE:
- pop {r1}
- bx r1
- thumb_func_end DoGlobalWildEncounterDiceRoll
-
- thumb_func_start sub_8085104
-sub_8085104: @ 8085104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r6, r0, 16
- mov r9, r6
- lsls r1, 16
- lsrs r7, r1, 16
- mov r8, r7
- ldr r0, _080851CC
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08085122
- b _08085282
-_08085122:
- bl sub_8084D6C
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080851D0
- cmp r5, r0
- bne _08085132
- b _08085282
-_08085132:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057468
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080851D8
- ldr r1, _080851D4
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 2
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- adds r4, r2, 0
- cmp r0, 0
- bne _0808515A
- b _08085282
-_0808515A:
- cmp r7, r6
- beq _0808516A
- bl DoGlobalWildEncounterDiceRoll
- lsls r0, 24
- cmp r0, 0
- bne _0808516A
- b _08085282
-_0808516A:
- ldr r1, _080851D4
- adds r0, r4, r5
- lsls r0, 2
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8085054
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08085188
- b _08085282
-_08085188:
- bl sub_81344CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808524A
- bl DoMassOutbreakEncounterTest
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080851AE
- movs r0, 0x1
- bl SetUpMassOutbreakEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808527A
-_080851AE:
- ldr r1, _080851D4
- adds r0, r4, r5
- lsls r0, 2
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x1
- bl sub_8084EB0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808527A
- b _08085282
- .align 2, 0
-_080851CC: .4byte gUnknown_0202FF7C
-_080851D0: .4byte 0x0000ffff
-_080851D4: .4byte gWildMonHeaders
-_080851D8:
- adds r0, r4, 0
- bl sub_8057494
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08085200
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08085282
- adds r0, r4, 0
- bl sub_8057434
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085282
-_08085200:
- ldr r1, _08085260
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- adds r4, r2, 0
- cmp r0, 0
- beq _08085282
- cmp r8, r9
- beq _08085222
- bl DoGlobalWildEncounterDiceRoll
- lsls r0, 24
- cmp r0, 0
- beq _08085282
-_08085222:
- ldr r1, _08085260
- adds r0, r4, r5
- lsls r0, 2
- adds r1, 0x8
- adds r4, r0, r1
- ldr r0, [r4]
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8085054
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085282
- bl sub_81344CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085268
-_0808524A:
- ldr r0, _08085264
- ldrb r0, [r0, 0xC]
- bl sub_8085598
- lsls r0, 24
- cmp r0, 0
- beq _08085282
- bl sub_8081A5C
- movs r0, 0x1
- b _08085284
- .align 2, 0
-_08085260: .4byte gWildMonHeaders
-_08085264: .4byte gSaveBlock1 + 0x3144
-_08085268:
- ldr r0, [r4]
- movs r1, 0x1
- movs r2, 0x1
- bl sub_8084EB0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085282
-_0808527A:
- bl sub_8081A00
- movs r0, 0x1
- b _08085284
-_08085282:
- movs r0, 0
-_08085284:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8085104
-
- thumb_func_start rock_smash_wild_pokemon_encounter
-rock_smash_wild_pokemon_encounter: @ 8085290
- push {r4,lr}
- bl sub_8084D6C
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080852E0
- cmp r2, r0
- beq _080852EC
- ldr r1, _080852E4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r1, 0xC
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- beq _080852D8
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8085054
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080852EC
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x1
- bl sub_8084EB0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _080852EC
- bl sub_8081A00
-_080852D8:
- ldr r0, _080852E8
- strh r4, [r0]
- b _080852F2
- .align 2, 0
-_080852E0: .4byte 0x0000ffff
-_080852E4: .4byte gWildMonHeaders
-_080852E8: .4byte gScriptResult
-_080852EC:
- ldr r1, _080852F8
- movs r0, 0
- strh r0, [r1]
-_080852F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080852F8: .4byte gScriptResult
- thumb_func_end rock_smash_wild_pokemon_encounter
-
- thumb_func_start sub_80852FC
-sub_80852FC: @ 80852FC
- push {r4,r5,lr}
- sub sp, 0x4
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- bl sub_8084D6C
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0808536C
- cmp r4, r0
- beq _080853DA
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8057468
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085380
- ldr r1, _08085370
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- adds r1, 0x4
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- beq _080853DA
- bl sub_81344CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080853BC
- bl DoMassOutbreakEncounterTest
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085374
- movs r0, 0
- bl SetUpMassOutbreakEncounter
- b _080853D2
- .align 2, 0
-_0808536C: .4byte 0x0000ffff
-_08085370: .4byte gWildMonHeaders
-_08085374:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl sub_8084EB0
- b _080853D2
-_08085380:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8057494
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080853DA
- ldr r1, _080853C4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- beq _080853DA
- bl sub_81344CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080853C8
-_080853BC:
- bl sub_8081A5C
- movs r0, 0x1
- b _080853DC
- .align 2, 0
-_080853C4: .4byte gWildMonHeaders
-_080853C8:
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_8084EB0
-_080853D2:
- bl sub_8081A00
- movs r0, 0x1
- b _080853DC
-_080853DA:
- movs r0, 0
-_080853DC:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80852FC
-
- thumb_func_start GetFishingWildMonListHeader
-GetFishingWildMonListHeader: @ 80853E4
- push {lr}
- bl sub_8084D6C
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _0808540C
- cmp r2, r0
- beq _08085414
- ldr r0, _08085410
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x10
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- beq _08085414
- movs r0, 0x1
- b _08085416
- .align 2, 0
-_0808540C: .4byte 0x0000ffff
-_08085410: .4byte gWildMonHeaders
-_08085414:
- movs r0, 0
-_08085416:
- pop {r1}
- bx r1
- thumb_func_end GetFishingWildMonListHeader
-
- thumb_func_start sub_808541C
-sub_808541C: @ 808541C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl check_feebas
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808544C
- ldr r4, _08085448
- adds r0, r4, 0
- bl random_number_in_range
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4, 0
- bl sub_8084E78
- b _0808546C
- .align 2, 0
-_08085448: .4byte gWildFeebasRoute119Data
-_0808544C:
- ldr r4, _08085484
- bl sub_8084D6C
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r4, 0x10
- adds r1, r4
- ldr r0, [r1]
- adds r1, r5, 0
- bl sub_8084F18
- lsls r0, 16
- lsrs r4, r0, 16
-_0808546C:
- movs r0, 0xC
- bl sav12_xor_increment
- adds r0, r4, 0
- bl sub_80BEA50
- bl sub_8081A00
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08085484: .4byte gWildMonHeaders
- thumb_func_end sub_808541C
-
- thumb_func_start wild_pokemon_rand_for_map
-wild_pokemon_rand_for_map: @ 8085488
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0
- strb r0, [r6]
- bl sub_8084D6C
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080854C0
- cmp r3, r0
- beq _080854BA
- ldr r2, _080854C4
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r5, [r0]
- adds r2, 0x8
- adds r1, r2
- ldr r4, [r1]
- cmp r5, 0
- bne _080854C8
- cmp r4, 0
- bne _080854CE
-_080854BA:
- movs r0, 0
- b _0808550E
- .align 2, 0
-_080854C0: .4byte 0x0000ffff
-_080854C4: .4byte gWildMonHeaders
-_080854C8:
- cmp r4, 0
- bne _080854DC
- b _08085500
-_080854CE:
- movs r0, 0x1
- strb r0, [r6]
- bl wild_pokemon_rand_water
- lsls r0, 24
- ldr r1, [r4, 0x4]
- b _08085508
-_080854DC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4F
- bls _08085500
- movs r0, 0x1
- strb r0, [r6]
- bl wild_pokemon_rand_water
- lsls r0, 24
- ldr r1, [r4, 0x4]
- b _08085508
-_08085500:
- bl wild_pokemon_rand_grass
- lsls r0, 24
- ldr r1, [r5, 0x4]
-_08085508:
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
-_0808550E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end wild_pokemon_rand_for_map
-
- thumb_func_start sub_8085514
-sub_8085514: @ 8085514
- push {r4,lr}
- bl sub_8084D6C
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08085548
- cmp r2, r0
- beq _08085550
- ldr r1, _0808554C
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- beq _08085550
- bl wild_pokemon_rand_water
- lsls r0, 24
- ldr r1, [r4, 0x4]
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _08085552
- .align 2, 0
-_08085548: .4byte 0x0000ffff
-_0808554C: .4byte gWildMonHeaders
-_08085550:
- movs r0, 0
-_08085552:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8085514
-
- thumb_func_start sub_8085558
-sub_8085558: @ 8085558
- push {r4,r5,lr}
- ldr r5, _08085588
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08085590
- subs r4, r0, 0x1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl VarSet
- cmp r4, 0
- bne _08085590
- ldr r0, _0808558C
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _08085592
- .align 2, 0
-_08085588: .4byte 0x00004021
-_0808558C: .4byte Event_RepelWoreOff
-_08085590:
- movs r0, 0
-_08085592:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8085558
-
- thumb_func_start sub_8085598
-sub_8085598: @ 8085598
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080855E4
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080855DE
- movs r5, 0
-_080855AC:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080855E8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080855EC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080855EC
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bcc _080855F6
-_080855DE:
- movs r0, 0x1
- b _080855F8
- .align 2, 0
-_080855E4: .4byte 0x00004021
-_080855E8: .4byte gPlayerParty
-_080855EC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080855AC
-_080855F6:
- movs r0, 0
-_080855F8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8085598
-
- thumb_func_start affects_encounter_rate_based_on_flags
-affects_encounter_rate_based_on_flags: @ 8085600
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0808561C
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085620
- ldr r0, [r4]
- lsrs r1, r0, 1
- adds r0, r1
- b _08085632
- .align 2, 0
-_0808561C: .4byte 0x0000084d
-_08085620:
- ldr r0, _0808563C
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08085634
- ldr r0, [r4]
- lsrs r0, 1
-_08085632:
- str r0, [r4]
-_08085634:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808563C: .4byte 0x0000084e
- thumb_func_end affects_encounter_rate_based_on_flags
-
- thumb_func_start ApplyCleanseTagWildEncounterRateReduction
-ApplyCleanseTagWildEncounterRateReduction: @ 8085640
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08085664
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0xBE
- bne _0808565C
- ldr r0, [r4]
- lsls r0, 1
- movs r1, 0x3
- bl __udivsi3
- str r0, [r4]
-_0808565C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085664: .4byte gPlayerParty
- thumb_func_end ApplyCleanseTagWildEncounterRateReduction
-
- thumb_func_start FieldEffectStart
-FieldEffectStart: @ 8085668
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl FieldEffectActiveListAdd
- ldr r0, _080856A8
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- str r0, [sp]
- add r4, sp, 0x4
- ldr r5, _080856AC
-_08085686:
- ldr r0, [sp]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r5
- ldr r2, [r0]
- mov r0, sp
- adds r1, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08085686
- ldr r0, [sp, 0x4]
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080856A8: .4byte gFieldEffectScriptPointers
-_080856AC: .4byte gUnknown_0839F0D4
- thumb_func_end FieldEffectStart
-
- thumb_func_start FieldEffectCmd_loadtiles
-FieldEffectCmd_loadtiles: @ 80856B0
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadTiles
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadtiles
-
- thumb_func_start FieldEffectCmd_loadfadedpal
-FieldEffectCmd_loadfadedpal: @ 80856C4
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadFadedPalette
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadfadedpal
-
- thumb_func_start FieldEffectCmd_loadpal
-FieldEffectCmd_loadpal: @ 80856D8
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadPalette
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadpal
-
- thumb_func_start FieldEffectCmd_callnative
-FieldEffectCmd_callnative: @ 80856EC
- push {lr}
- ldr r2, [r0]
- adds r2, 0x1
- str r2, [r0]
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_callnative
-
- thumb_func_start sub_8085700
-sub_8085700: @ 8085700
- movs r0, 0
- bx lr
- thumb_func_end sub_8085700
-
- thumb_func_start FieldEffectCmd_loadgfx_callnative
-FieldEffectCmd_loadgfx_callnative: @ 8085704
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadTiles
- adds r0, r4, 0
- bl FieldEffectScript_LoadFadedPalette
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadgfx_callnative
-
- thumb_func_start FieldEffectCmd_loadtiles_callnative
-FieldEffectCmd_loadtiles_callnative: @ 808572C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadTiles
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadtiles_callnative
-
- thumb_func_start FieldEffectCmd_loadfadedpal_callnative
-FieldEffectCmd_loadfadedpal_callnative: @ 8085750
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadFadedPalette
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadfadedpal_callnative
-
- thumb_func_start FieldEffectScript_ReadWord
-FieldEffectScript_ReadWord: @ 8085774
- ldr r2, [r0]
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- adds r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- adds r0, r1
- bx lr
- thumb_func_end FieldEffectScript_ReadWord
-
- thumb_func_start FieldEffectScript_LoadTiles
-FieldEffectScript_LoadTiles: @ 808578C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl FieldEffectScript_ReadWord
- adds r5, r0, 0
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _080857B8
- cmp r0, r1
- bne _080857AA
- adds r0, r5, 0
- bl LoadSpriteSheet
-_080857AA:
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080857B8: .4byte 0xffff0000
- thumb_func_end FieldEffectScript_LoadTiles
-
- thumb_func_start FieldEffectScript_LoadFadedPalette
-FieldEffectScript_LoadFadedPalette: @ 80857BC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl FieldEffectScript_ReadWord
- adds r4, r0, 0
- bl LoadSpritePalette
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- bl sub_807D78C
- ldr r0, [r5]
- adds r0, 0x4
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_LoadFadedPalette
-
- thumb_func_start FieldEffectScript_LoadPalette
-FieldEffectScript_LoadPalette: @ 80857E4
- push {r4,lr}
- adds r4, r0, 0
- bl FieldEffectScript_ReadWord
- bl LoadSpritePalette
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_LoadPalette
-
- thumb_func_start FieldEffectScript_CallNative
-FieldEffectScript_CallNative: @ 80857FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldEffectScript_ReadWord
- bl _call_via_r0
- str r0, [r5]
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_CallNative
-
- thumb_func_start FieldEffectFreeGraphicsResources
-FieldEffectFreeGraphicsResources: @ 8085818
- push {r4,r5,lr}
- adds r1, r0, 0
- adds r1, 0x40
- ldrh r5, [r1]
- ldrb r4, [r0, 0x5]
- lsrs r4, 4
- bl DestroySprite
- adds r0, r5, 0
- bl FieldEffectFreeTilesIfUnused
- adds r0, r4, 0
- bl FieldEffectFreePaletteIfUnused
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectFreeGraphicsResources
-
- thumb_func_start FieldEffectStop
-FieldEffectStop: @ 808583C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl FieldEffectFreeGraphicsResources
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectStop
-
- thumb_func_start FieldEffectFreeTilesIfUnused
-FieldEffectFreeTilesIfUnused: @ 8085854
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetSpriteTileTagByTileStart
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080858B0
- cmp r3, r0
- beq _080858A8
- movs r2, 0
- ldr r5, _080858B4
-_0808586E:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r5
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08085898
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _08085898
- adds r0, r1, 0
- adds r0, 0x40
- ldrh r0, [r0]
- cmp r4, r0
- beq _080858A8
-_08085898:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _0808586E
- adds r0, r3, 0
- bl FreeSpriteTilesByTag
-_080858A8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080858B0: .4byte 0x0000ffff
-_080858B4: .4byte gSprites
- thumb_func_end FieldEffectFreeTilesIfUnused
-
- thumb_func_start FieldEffectFreePaletteIfUnused
-FieldEffectFreePaletteIfUnused: @ 80858B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08085908
- cmp r5, r0
- beq _08085900
- movs r2, 0
- ldr r6, _0808590C
- adds r3, r4, 0
-_080858D4:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _080858F0
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- cmp r0, r3
- beq _08085900
-_080858F0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080858D4
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
-_08085900:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08085908: .4byte 0x0000ffff
-_0808590C: .4byte gSprites
- thumb_func_end FieldEffectFreePaletteIfUnused
-
- thumb_func_start FieldEffectActiveListClear
-FieldEffectActiveListClear: @ 8085910
- push {r4,lr}
- movs r2, 0
- ldr r4, _08085930
- movs r3, 0xFF
-_08085918:
- adds r0, r2, r4
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _08085918
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085930: .4byte gUnknown_030006E0
- thumb_func_end FieldEffectActiveListClear
-
- thumb_func_start FieldEffectActiveListAdd
-FieldEffectActiveListAdd: @ 8085934
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, _0808594C
-_0808593E:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08085950
- strb r3, [r1]
- b _0808595A
- .align 2, 0
-_0808594C: .4byte gUnknown_030006E0
-_08085950:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _0808593E
-_0808595A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectActiveListAdd
-
- thumb_func_start FieldEffectActiveListRemove
-FieldEffectActiveListRemove: @ 8085960
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, _0808597C
- movs r5, 0xFF
-_0808596C:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, r3
- bne _08085980
- orrs r0, r5
- strb r0, [r1]
- b _0808598A
- .align 2, 0
-_0808597C: .4byte gUnknown_030006E0
-_08085980:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _0808596C
-_0808598A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectActiveListRemove
-
- thumb_func_start FieldEffectActiveListContains
-FieldEffectActiveListContains: @ 8085990
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _080859A8
-_0808599A:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080859AC
- movs r0, 0x1
- b _080859B8
- .align 2, 0
-_080859A8: .4byte gUnknown_030006E0
-_080859AC:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _0808599A
- movs r0, 0
-_080859B8:
- pop {r1}
- bx r1
- thumb_func_end FieldEffectActiveListContains
-
- thumb_func_start sub_80859BC
-sub_80859BC: @ 80859BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r9, r3
- ldr r7, [sp, 0x34]
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsrs r4, 21
- ldr r3, _08085A44
- mov r8, r3
- add r8, r4
- mov r0, r8
- adds r1, r7, 0
- bl LoadCompressedObjectPaletteOverrideBuffer
- ldr r0, _08085A48
- adds r4, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl LoadCompressedObjectPicOverrideBuffer
- mov r1, sp
- ldrh r0, [r4, 0x6]
- movs r2, 0
- strh r0, [r1]
- mov r3, r8
- ldrh r0, [r3, 0x4]
- strh r0, [r1, 0x2]
- ldr r0, _08085A4C
- str r0, [sp, 0x4]
- ldr r0, _08085A50
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r0, _08085A54
- str r0, [sp, 0x10]
- ldr r0, _08085A58
- str r0, [sp, 0x14]
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08085A44: .4byte gTrainerFrontPicPaletteTable
-_08085A48: .4byte gTrainerFrontPicTable
-_08085A4C: .4byte gOamData_839F0F4
-_08085A50: .4byte gDummySpriteAnimTable
-_08085A54: .4byte gDummySpriteAffineAnimTable
-_08085A58: .4byte SpriteCallbackDummy
- thumb_func_end sub_80859BC
-
- thumb_func_start sub_8085A5C
-sub_8085A5C: @ 8085A5C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r1, r2, 0
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08085A8C
- lsrs r4, 21
- adds r0, r4, r0
- ldr r0, [r0]
- bl LZDecompressVram
- ldr r0, _08085A90
- adds r4, r0
- ldr r0, [r4]
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08085A8C: .4byte gTrainerFrontPicTable
-_08085A90: .4byte gTrainerFrontPicPaletteTable
- thumb_func_end sub_8085A5C
-
- thumb_func_start AddNewGameBirchObject
-AddNewGameBirchObject: @ 8085A94
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08085ACC
- bl LoadSpritePalette
- ldr r0, _08085AD0
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08085ACC: .4byte gUnknown_0839F114
-_08085AD0: .4byte gSpriteTemplate_839F128
- thumb_func_end AddNewGameBirchObject
-
- thumb_func_start sub_8085AD4
-sub_8085AD4: @ 8085AD4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r1, 0
- mov r8, r2
- mov r10, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, r4, 3
- mov r9, r0
- ldr r0, _08085B74
- add r0, r9
- ldr r1, _08085B78
- lsls r2, r4, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _08085B7C
- ldr r3, [r3, 0xC]
- str r3, [sp]
- str r4, [sp, 0x4]
- bl DecompressPicFromTable_2
- ldr r5, _08085B80
- add r9, r5
- mov r0, r9
- bl LoadCompressedObjectPalette
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r4, _08085B84
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x4]
- bl IndexOfSpritePaletteTag
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl sub_807DE38
- lsls r6, 16
- asrs r6, 16
- mov r0, r8
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08085B74: .4byte gMonFrontPicTable
-_08085B78: .4byte gMonFrontPicCoords
-_08085B7C: .4byte gUnknown_081FAF4C
-_08085B80: .4byte gMonPaletteTable
-_08085B84: .4byte gUnknown_02024E8C
- thumb_func_end sub_8085AD4
-
- thumb_func_start sub_8085B88
-sub_8085B88: @ 8085B88
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0xC
- adds r5, r0, 0
- mov r10, r1
- adds r4, r2, 0
- adds r6, r3, 0
- ldr r0, [sp, 0x28]
- mov r8, r0
- ldr r0, [sp, 0x2C]
- mov r9, r0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, r5, 3
- ldr r1, _08085C34
- adds r0, r1
- ldr r1, _08085C38
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _08085C3C
- ldr r3, [r3, 0xC]
- str r3, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- bl sub_800D334
- adds r0, r5, 0
- mov r1, r10
- adds r2, r4, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r5, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r5, _08085C40
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2]
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl sub_807DE38
- lsls r6, 16
- asrs r6, 16
- mov r0, r8
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08085C34: .4byte gMonFrontPicTable
-_08085C38: .4byte gMonFrontPicCoords
-_08085C3C: .4byte gUnknown_081FAF4C
-_08085C40: .4byte gUnknown_02024E8C
- thumb_func_end sub_8085B88
-
- thumb_func_start sub_8085C44
-sub_8085C44: @ 8085C44
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807DE68
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- cmp r0, 0
- beq _08085C6E
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_08085C6E:
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8085C44
-
- thumb_func_start sub_8085C7C
-sub_8085C7C: @ 8085C7C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, _08085D00
- lsrs r0, 15
- adds r4, r0, r4
- ldrh r4, [r4]
- movs r5, 0x1F
- mov r9, r5
- mov r8, r4
- mov r6, r8
- ands r6, r5
- mov r8, r6
- movs r6, 0xF8
- lsls r6, 2
- ands r6, r4
- lsrs r6, 5
- movs r5, 0xF8
- lsls r5, 7
- ands r4, r5
- lsrs r4, 10
- mov r7, r9
- mov r5, r8
- subs r7, r5
- mov r12, r7
- mov r7, r12
- muls r7, r1
- adds r1, r7, 0
- asrs r1, 4
- add r8, r1
- mov r5, r9
- subs r1, r5, r6
- muls r1, r2
- asrs r1, 4
- adds r6, r1
- subs r5, r4
- mov r9, r5
- mov r1, r9
- muls r1, r3
- asrs r1, 4
- adds r4, r1
- mov r7, r8
- lsls r7, 16
- lsls r6, 21
- orrs r6, r7
- lsls r4, 26
- orrs r4, r6
- lsrs r4, 16
- ldr r1, _08085D04
- adds r0, r1
- strh r4, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08085D00: .4byte gPlttBufferUnfaded
-_08085D04: .4byte gPlttBufferFaded
- thumb_func_end sub_8085C7C
-
- thumb_func_start sub_8085D08
-sub_8085D08: @ 8085D08
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, _08085D78
- lsrs r0, 15
- adds r4, r0, r4
- ldrh r4, [r4]
- movs r5, 0x1F
- mov r8, r5
- mov r6, r8
- ands r6, r4
- mov r8, r6
- movs r5, 0xF8
- lsls r5, 2
- ands r5, r4
- lsrs r5, 5
- movs r6, 0xF8
- lsls r6, 7
- ands r4, r6
- lsrs r4, 10
- mov r6, r8
- muls r6, r1
- adds r1, r6, 0
- asrs r1, 4
- mov r6, r8
- subs r6, r1
- adds r1, r5, 0
- muls r1, r2
- asrs r1, 4
- subs r5, r1
- adds r1, r4, 0
- muls r1, r3
- asrs r1, 4
- subs r4, r1
- lsls r6, 16
- lsls r5, 21
- orrs r5, r6
- lsls r4, 26
- orrs r4, r5
- lsrs r4, 16
- ldr r1, _08085D7C
- adds r0, r1
- strh r4, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08085D78: .4byte gPlttBufferUnfaded
-_08085D7C: .4byte gPlttBufferFaded
- thumb_func_end sub_8085D08
-
- thumb_func_start sub_8085D80
-sub_8085D80: @ 8085D80
- push {r4,lr}
- bl CalculatePlayerPartyCount
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08085DBC
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085DC0
- adds r1, r0
- strh r4, [r1, 0xA]
- movs r0, 0x5D
- strh r0, [r1, 0xC]
- movs r0, 0x24
- strh r0, [r1, 0xE]
- movs r0, 0x7C
- strh r0, [r1, 0x10]
- movs r0, 0x18
- strh r0, [r1, 0x12]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08085DBC: .4byte sub_8085DC4
-_08085DC0: .4byte gTasks
- thumb_func_end sub_8085D80
-
- thumb_func_start sub_8085DC4
-sub_8085DC4: @ 8085DC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085DEC
- adds r1, r0
- ldr r2, _08085DF0
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_08085DEC: .4byte gTasks
-_08085DF0: .4byte gUnknown_0839F268
- thumb_func_end sub_8085DC4
-
- thumb_func_start sub_8085DF4
-sub_8085DF4: @ 8085DF4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r3, 0xE
- ldrsh r2, [r4, r3]
- movs r3, 0x1
- bl sub_808604C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl sub_8086430
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8085DF4
-
- thumb_func_start sub_8085E30
-sub_8085E30: @ 8085E30
- push {r4,lr}
- adds r2, r0, 0
- ldr r3, _08085E68
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r4, 0x2E
- ldrsh r0, [r1, r4]
- cmp r0, 0x1
- ble _08085E62
- movs r0, 0x16
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08085E62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085E68: .4byte gSprites
- thumb_func_end sub_8085E30
-
- thumb_func_start sub_8085E6C
-sub_8085E6C: @ 8085E6C
- push {lr}
- adds r3, r0, 0
- ldr r2, _08085E90
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _08085E8C
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08085E8C:
- pop {r0}
- bx r0
- .align 2, 0
-_08085E90: .4byte gSprites
- thumb_func_end sub_8085E6C
-
- thumb_func_start sub_8085E94
-sub_8085E94: @ 8085E94
- push {lr}
- ldr r2, _08085ECC
- movs r3, 0x14
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x6
- ble _08085EC6
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x19
- bl FieldEffectActiveListRemove
- ldr r0, _08085ED0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08085EC6:
- pop {r0}
- bx r0
- .align 2, 0
-_08085ECC: .4byte gSprites
-_08085ED0: .4byte sub_8085DC4
- thumb_func_end sub_8085E94
-
- thumb_func_start sub_8085ED4
-sub_8085ED4: @ 8085ED4
- push {r4,lr}
- bl CalculatePlayerPartyCount
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08085F08
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085F0C
- adds r1, r0
- strh r4, [r1, 0xA]
- movs r0, 0x75
- strh r0, [r1, 0xC]
- movs r0, 0x34
- strh r0, [r1, 0xE]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08085F08: .4byte sub_8085F10
-_08085F0C: .4byte gTasks
- thumb_func_end sub_8085ED4
-
- thumb_func_start sub_8085F10
-sub_8085F10: @ 8085F10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085F38
- adds r1, r0
- ldr r2, _08085F3C
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_08085F38: .4byte gTasks
-_08085F3C: .4byte gUnknown_0839F278
- thumb_func_end sub_8085F10
-
- thumb_func_start sub_8085F40
-sub_8085F40: @ 8085F40
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r3, 0xE
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl sub_808604C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- ldr r0, _08085FB0
- bl FindTaskIdByFunc
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x18
- movs r3, 0
- bl sub_80864CC
- adds r0, r4, 0
- movs r1, 0x28
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80864CC
- adds r0, r4, 0
- movs r1, 0x48
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80864CC
- adds r0, r4, 0
- movs r1, 0xA8
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80864CC
- adds r0, r4, 0
- movs r1, 0xC8
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80864CC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085FB0: .4byte sub_8085F10
- thumb_func_end sub_8085F40
-
- thumb_func_start sub_8085FB4
-sub_8085FB4: @ 8085FB4
- push {lr}
- adds r3, r0, 0
- ldr r2, _08085FE0
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- ble _08085FDA
- ldrh r0, [r3, 0x26]
- adds r0, 0x1
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08085FDA:
- pop {r0}
- bx r0
- .align 2, 0
-_08085FE0: .4byte gSprites
- thumb_func_end sub_8085FB4
-
- thumb_func_start sub_8085FE4
-sub_8085FE4: @ 8085FE4
- push {lr}
- adds r3, r0, 0
- ldr r2, _08086008
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _08086004
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08086004:
- pop {r0}
- bx r0
- .align 2, 0
-_08086008: .4byte gSprites
- thumb_func_end sub_8085FE4
-
- thumb_func_start sub_808600C
-sub_808600C: @ 808600C
- push {lr}
- ldr r2, _08086044
- movs r3, 0x14
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x6
- ble _0808603E
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x3E
- bl FieldEffectActiveListRemove
- ldr r0, _08086048
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808603E:
- pop {r0}
- bx r0
- .align 2, 0
-_08086044: .4byte gSprites
-_08086048: .4byte sub_8085F10
- thumb_func_end sub_808600C
-
- thumb_func_start sub_808604C
-sub_808604C: @ 808604C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _08086098
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _0808609C
- adds r1, r2
- strh r4, [r1, 0x24]
- strh r5, [r1, 0x26]
- strh r6, [r1, 0x38]
- mov r2, r8
- strh r2, [r1, 0x3A]
- strh r0, [r1, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08086098: .4byte sub_80860A0
-_0808609C: .4byte gSprites
- thumb_func_end sub_808604C
-
- thumb_func_start sub_80860A0
-sub_80860A0: @ 80860A0
- push {lr}
- ldr r2, _080860B8
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080860B8: .4byte gUnknown_0839F288
- thumb_func_end sub_80860A0
-
- thumb_func_start sub_80860BC
-sub_80860BC: @ 80860BC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080860D4
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _08086130
-_080860D4:
- movs r0, 0x19
- strh r0, [r4, 0x30]
- ldr r0, _08086148
- ldr r1, _0808614C
- movs r2, 0x32
- ldrsh r3, [r4, r2]
- lsls r3, 2
- adds r3, r1
- ldrh r1, [r4, 0x24]
- ldrh r2, [r3]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x26]
- ldrh r3, [r3, 0x2]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08086150
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldrh r0, [r4, 0x3C]
- strh r0, [r1, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- subs r0, 0x1
- strh r0, [r4, 0x3A]
- movs r0, 0x17
- bl PlaySE
-_08086130:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086142
- movs r0, 0x20
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08086142:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086148: .4byte gSpriteTemplate_839F208
-_0808614C: .4byte gUnknown_0839F2A8
-_08086150: .4byte gSprites
- thumb_func_end sub_80860BC
-
- thumb_func_start sub_8086154
-sub_8086154: @ 8086154
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08086184
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- movs r0, 0x8
- strh r0, [r1, 0x30]
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x34]
- movs r2, 0x38
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08086184
- movs r0, 0xB8
- lsls r0, 1
- bl PlayFanfare
-_08086184:
- pop {r0}
- bx r0
- thumb_func_end sub_8086154
-
- thumb_func_start sub_8086188
-sub_8086188: @ 8086188
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldrh r0, [r7, 0x30]
- subs r0, 0x1
- strh r0, [r7, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080861B8
- movs r0, 0x8
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r7, 0x32]
- cmp r0, 0
- bne _080861B8
- ldrh r0, [r7, 0x34]
- adds r0, 0x1
- strh r0, [r7, 0x34]
-_080861B8:
- ldrh r4, [r7, 0x32]
- adds r4, 0x3
- movs r0, 0x3
- mov r8, r0
- mov r1, r8
- ands r4, r1
- ldr r3, _080862B0
- mov r10, r3
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x84
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r6, _080862B4
- adds r1, r4, r6
- ldrb r1, [r1]
- ldr r5, _080862B8
- adds r2, r4, r5
- ldrb r2, [r2]
- ldr r3, _080862BC
- mov r9, r3
- add r4, r9
- ldrb r3, [r4]
- bl sub_8085C7C
- ldrh r4, [r7, 0x32]
- adds r4, 0x2
- mov r0, r8
- ands r4, r0
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x83
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r4, r6
- ldrb r1, [r1]
- adds r2, r4, r5
- ldrb r2, [r2]
- add r4, r9
- ldrb r3, [r4]
- bl sub_8085C7C
- ldrh r4, [r7, 0x32]
- adds r4, 0x1
- mov r3, r8
- ands r4, r3
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x81
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r4, r6
- ldrb r1, [r1]
- adds r2, r4, r5
- ldrb r2, [r2]
- add r4, r9
- ldrb r3, [r4]
- bl sub_8085C7C
- ldrh r4, [r7, 0x32]
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r3, _080862C0
- adds r0, r3
- lsrs r0, 16
- adds r6, r4, r6
- ldrb r6, [r6]
- adds r5, r4, r5
- ldrb r5, [r5]
- add r4, r9
- ldrb r4, [r4]
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8085C7C
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _080862C4
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8085C7C
- movs r3, 0x34
- ldrsh r0, [r7, r3]
- cmp r0, 0x2
- ble _080862A2
- ldrh r0, [r7, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r7, 0x2E]
- movs r0, 0x8
- strh r0, [r7, 0x30]
- strh r1, [r7, 0x32]
-_080862A2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080862B0: .4byte 0x00001007
-_080862B4: .4byte gUnknown_0839F2C0
-_080862B8: .4byte gUnknown_0839F2C4
-_080862BC: .4byte gUnknown_0839F2C8
-_080862C0: .4byte 0x01050000
-_080862C4: .4byte 0x01030000
- thumb_func_end sub_8086188
-
- thumb_func_start sub_80862C8
-sub_80862C8: @ 80862C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080862F8
- movs r0, 0x8
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r2, 0x32]
- cmp r0, 0x3
- bne _080862F8
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- movs r0, 0x1E
- strh r0, [r2, 0x30]
-_080862F8:
- ldrh r4, [r2, 0x32]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080863A4
- mov r8, r0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x84
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080863A8
- adds r1, r4, r1
- ldrb r6, [r1]
- ldr r1, _080863AC
- adds r1, r4, r1
- ldrb r5, [r1]
- ldr r1, _080863B0
- adds r4, r1
- ldrb r4, [r4]
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8085C7C
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x83
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8085C7C
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x81
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8085C7C
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _080863B4
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8085C7C
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _080863B8
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8085C7C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080863A4: .4byte 0x00001007
-_080863A8: .4byte gUnknown_0839F2C0
-_080863AC: .4byte gUnknown_0839F2C4
-_080863B0: .4byte gUnknown_0839F2C8
-_080863B4: .4byte 0x01050000
-_080863B8: .4byte 0x01030000
- thumb_func_end sub_80862C8
-
- thumb_func_start sub_80863BC
-sub_80863BC: @ 80863BC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080863D2
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_080863D2:
- pop {r0}
- bx r0
- thumb_func_end sub_80863BC
-
- thumb_func_start sub_80863D8
-sub_80863D8: @ 80863D8
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
- bx lr
- thumb_func_end sub_80863D8
-
- thumb_func_start sub_80863E0
-sub_80863E0: @ 80863E0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080863F6
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _080863FC
-_080863F6:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080863FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80863E0
-
- thumb_func_start nullsub_57
-nullsub_57: @ 8086404
- bx lr
- thumb_func_end nullsub_57
-
- thumb_func_start sub_8086408
-sub_8086408: @ 8086408
- push {lr}
- adds r3, r0, 0
- ldr r2, _0808642C
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _08086428
- adds r0, r3, 0
- bl FieldEffectFreeGraphicsResources
-_08086428:
- pop {r0}
- bx r0
- .align 2, 0
-_0808642C: .4byte gSprites
- thumb_func_end sub_8086408
-
- thumb_func_start sub_8086430
-sub_8086430: @ 8086430
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _08086480
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08086484
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08086488
- bl SetSubspriteTables
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086480: .4byte gSpriteTemplate_839F220
-_08086484: .4byte gSprites
-_08086488: .4byte gUnknown_0839F1A0
- thumb_func_end sub_8086430
-
- thumb_func_start sub_808648C
-sub_808648C: @ 808648C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080864B0
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080864B0:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080864C4
- adds r0, r4, 0
- bl FieldEffectFreeGraphicsResources
-_080864C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808648C
-
- thumb_func_start sub_80864CC
-sub_80864CC: @ 80864CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- cmp r3, 0
- bne _08086514
- ldr r0, _08086508
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0808650C
- adds r0, r1
- ldr r1, _08086510
- bl SetSubspriteTables
- b _08086528
- .align 2, 0
-_08086508: .4byte gSpriteTemplate_839F238
-_0808650C: .4byte gSprites
-_08086510: .4byte gUnknown_0839F1C8
-_08086514:
- ldr r0, _08086548
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
-_08086528:
- ldr r1, _0808654C
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- strh r5, [r0, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086548: .4byte gSpriteTemplate_839F250
-_0808654C: .4byte gSprites
- thumb_func_end sub_80864CC
-
- thumb_func_start sub_8086550
-sub_8086550: @ 8086550
- push {lr}
- adds r3, r0, 0
- ldr r2, _080865B8
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080865A6
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0808657E
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080865A0
-_0808657E:
- movs r0, 0x10
- strh r0, [r3, 0x30]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080865A0:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
-_080865A6:
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0x7F
- ble _080865B4
- adds r0, r3, 0
- bl FieldEffectFreeGraphicsResources
-_080865B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080865B8: .4byte gTasks
- thumb_func_end sub_8086550
-
- thumb_func_start sub_80865BC
-sub_80865BC: @ 80865BC
- push {lr}
- ldr r0, _080865D0
- bl SetMainCallback2
- ldr r1, _080865D4
- ldr r0, _080865D8
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080865D0: .4byte c2_exit_to_overworld_2_switch
-_080865D4: .4byte gUnknown_0300485C
-_080865D8: .4byte mapldr_080842E8
- thumb_func_end sub_80865BC
-
- thumb_func_start mapldr_080842E8
-mapldr_080842E8: @ 80865DC
- push {lr}
- bl pal_fill_black
- ldr r0, _080865FC
- movs r1, 0
- bl CreateTask
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _08086600
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080865FC: .4byte task00_8084310
-_08086600: .4byte gUnknown_0300485C
- thumb_func_end mapldr_080842E8
-
- thumb_func_start task00_8084310
-task00_8084310: @ 8086604
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0808666C
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08086640
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08086666
- ldr r1, _08086670
- ldr r0, _08086674
- ldrb r0, [r0]
- str r0, [r1]
- cmp r0, 0x5
- ble _08086634
- str r5, [r1]
-_08086634:
- movs r0, 0x1F
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086640:
- movs r0, 0x1F
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08086666
- bl flag_var_implications_of_teleport_
- bl warp_in
- ldr r0, _08086678
- bl SetMainCallback2
- ldr r1, _0808667C
- ldr r0, _08086680
- str r0, [r1]
- adds r0, r6, 0
- bl DestroyTask
-_08086666:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808666C: .4byte gTasks
-_08086670: .4byte gUnknown_0202FF84
-_08086674: .4byte gUnknown_03005CE0
-_08086678: .4byte CB2_LoadMap
-_0808667C: .4byte gUnknown_0300485C
-_08086680: .4byte mapldr_08084390
- thumb_func_end task00_8084310
-
- thumb_func_start mapldr_08084390
-mapldr_08084390: @ 8086684
- push {r4,lr}
- bl sub_8053E90
- bl pal_fill_black
- ldr r0, _080866DC
- movs r1, 0
- bl CreateTask
- ldr r4, _080866E0
- ldr r3, _080866E4
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080866C6
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x3
- bl FieldObjectTurn
-_080866C6:
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _080866E8
- movs r0, 0
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080866DC: .4byte c3_080843F8
-_080866E0: .4byte gMapObjects
-_080866E4: .4byte gPlayerAvatar
-_080866E8: .4byte gUnknown_0300485C
- thumb_func_end mapldr_08084390
-
- thumb_func_start c3_080843F8
-c3_080843F8: @ 80866EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08086740
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0808671E
- ldr r0, _08086744
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08086738
- movs r0, 0x20
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808671E:
- movs r0, 0x20
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08086738
- bl ScriptContext2_Disable
- bl sub_806451C
- adds r0, r5, 0
- bl DestroyTask
-_08086738:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086740: .4byte gTasks
-_08086744: .4byte gPaletteFade
- thumb_func_end c3_080843F8
-
- thumb_func_start sub_8086748
-sub_8086748: @ 8086748
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r0, _0808676C
- movs r1, 0
- bl CreateTask
- ldr r1, _08086770
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0808676C: .4byte sub_8086774
-_08086770: .4byte gUnknown_0300485C
- thumb_func_end sub_8086748
-
- thumb_func_start sub_8086774
-sub_8086774: @ 8086774
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080867A4
- adds r4, r1, r0
- ldr r5, _080867A8
-_08086786:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08086786
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080867A4: .4byte gTasks
-_080867A8: .4byte gUnknown_0839F2CC
- thumb_func_end sub_8086774
-
- thumb_func_start sub_80867AC
-sub_80867AC: @ 80867AC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- ldr r6, _08086848
- ldrb r0, [r6, 0x5]
- lsls r5, r0, 3
- adds r5, r0
- lsls r5, 2
- ldr r0, _0808684C
- mov r8, r0
- add r5, r8
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086850
- adds r4, r0
- bl CameraObjectReset2
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- adds r3, r4, 0
- adds r3, 0x42
- ldrb r0, [r3]
- lsrs r0, 6
- mov r1, r9
- strh r0, [r1, 0x10]
- ldrb r0, [r5, 0x3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x3]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r1, [r3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08086848: .4byte gPlayerAvatar
-_0808684C: .4byte gMapObjects
-_08086850: .4byte gSprites
- thumb_func_end sub_80867AC
-
- thumb_func_start sub_8086854
-sub_8086854: @ 8086854
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08086868
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086868:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086854
-
- thumb_func_start sub_8086870
-sub_8086870: @ 8086870
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080868D4
- ldrb r0, [r6, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080868D8
- adds r2, r0
- adds r0, r2, 0
- adds r0, 0x29
- movs r4, 0
- ldrsb r4, [r0, r4]
- lsls r0, r4, 17
- negs r0, r0
- ldrh r1, [r2, 0x22]
- ldr r3, _080868DC
- adds r1, r4
- ldrh r3, [r3]
- adds r1, r3
- asrs r0, 16
- adds r0, r1
- negs r0, r0
- movs r1, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- ldr r2, _080868E0
- ldrb r0, [r6, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x2B
- bl PlaySE
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080868D4: .4byte gPlayerAvatar
-_080868D8: .4byte gSprites
-_080868DC: .4byte gSpriteCoordOffsetY
-_080868E0: .4byte gMapObjects
- thumb_func_end sub_8086870
-
- thumb_func_start sub_80868E4
-sub_80868E4: @ 80868E4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r2, _08086990
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086994
- adds r6, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086998
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bgt _08086926
- ldrh r1, [r4, 0xC]
- adds r0, r2, r1
- strh r0, [r4, 0xC]
- movs r1, 0xF
- ands r0, r1
- cmp r0, 0
- beq _08086926
- lsls r0, r2, 1
- strh r0, [r4, 0xA]
-_08086926:
- ldrh r2, [r4, 0xE]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086964
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _08086964
- adds r0, r2, 0x1
- strh r0, [r4, 0xE]
- ldrb r1, [r6, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x3]
- ldrb r1, [r4, 0x10]
- adds r3, r5, 0
- adds r3, 0x42
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x3F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
-_08086964:
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _08086988
- movs r0, 0xD6
- bl PlaySE
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086988:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08086990: .4byte gPlayerAvatar
-_08086994: .4byte gMapObjects
-_08086998: .4byte gSprites
- thumb_func_end sub_80868E4
-
- thumb_func_start sub_808699C
-sub_808699C: @ 808699C
- push {lr}
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r0, 0x8]
- movs r1, 0x4
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_808699C
-
- thumb_func_start sub_80869B8
-sub_80869B8: @ 80869B8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r2, r0
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080869E0
- lsls r0, r2, 16
- asrs r0, 17
- strh r0, [r4, 0xA]
-_080869E0:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080869EE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080869EE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80869B8
-
- thumb_func_start sub_80869F8
-sub_80869F8: @ 80869F8
- push {lr}
- ldr r1, _08086A24
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl CameraObjectReset1
- bl sub_806451C
- bl InstallCameraPanAheadCallback
- ldr r0, _08086A28
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08086A24: .4byte gPlayerAvatar
-_08086A28: .4byte sub_8086774
- thumb_func_end sub_80869F8
-
- thumb_func_start sub_8086A2C
-sub_8086A2C: @ 8086A2C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08086A60
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08086A64
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- cmp r4, 0x6A
- bne _08086A58
- movs r0, 0x1
- strh r0, [r1, 0xA]
-_08086A58:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086A60: .4byte sub_8086A68
-_08086A64: .4byte gTasks
- thumb_func_end sub_8086A2C
-
- thumb_func_start sub_8086A68
-sub_8086A68: @ 8086A68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08086A98
- adds r4, r1, r0
- ldr r5, _08086A9C
-_08086A7A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08086A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086A98: .4byte gTasks
-_08086A9C: .4byte gUnknown_0839F2E8
- thumb_func_end sub_8086A68
-
- thumb_func_start sub_8086AA0
-sub_8086AA0: @ 8086AA0
- push {r4,lr}
- adds r4, r0, 0
- bl player_bitmagic
- bl CameraObjectReset2
- ldrb r0, [r4, 0xA]
- bl sub_80B4824
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086AA0
-
- thumb_func_start sub_8086AC0
-sub_8086AC0: @ 8086AC0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086B28
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086B2C
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08086AEA
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08086B1E
-_08086AEA:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _08086B18
- movs r0, 0x4
- strh r0, [r5, 0x8]
-_08086B18:
- movs r0, 0x50
- bl PlaySE
-_08086B1E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086B28: .4byte gPlayerAvatar
-_08086B2C: .4byte gMapObjects
- thumb_func_end sub_8086AC0
-
- thumb_func_start sub_8086B30
-sub_8086B30: @ 8086B30
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8086B98
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _08086B4A
- bl sub_8086C30
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086B4A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086B30
-
- thumb_func_start sub_8086B54
-sub_8086B54: @ 8086B54
- push {lr}
- bl sub_8086B98
- bl sub_8086C40
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8086B54
-
- thumb_func_start sub_8086B64
-sub_8086B64: @ 8086B64
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8086BE4
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _08086B7E
- bl sub_8086C30
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086B7E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086B64
-
- thumb_func_start sub_8086B88
-sub_8086B88: @ 8086B88
- push {lr}
- bl sub_8086BE4
- bl sub_8086C40
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8086B88
-
- thumb_func_start sub_8086B98
-sub_8086B98: @ 8086B98
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086BDC
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086BE0
- adds r4, r0
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086BD6
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
-_08086BD6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086BDC: .4byte gPlayerAvatar
-_08086BE0: .4byte gSprites
- thumb_func_end sub_8086B98
-
- thumb_func_start sub_8086BE4
-sub_8086BE4: @ 8086BE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086C28
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086C2C
- adds r4, r0
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086C22
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
-_08086C22:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086C28: .4byte gPlayerAvatar
-_08086C2C: .4byte gSprites
- thumb_func_end sub_8086BE4
-
- thumb_func_start sub_8086C30
-sub_8086C30: @ 8086C30
- push {lr}
- bl sub_8053FF8
- bl sub_8080918
- pop {r0}
- bx r0
- thumb_func_end sub_8086C30
-
- thumb_func_start sub_8086C40
-sub_8086C40: @ 8086C40
- push {lr}
- ldr r0, _08086C80
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08086C7C
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08086C7C
- bl sub_80B483C
- bl warp_in
- ldr r1, _08086C84
- ldr r0, _08086C88
- str r0, [r1]
- ldr r0, _08086C8C
- bl SetMainCallback2
- ldr r0, _08086C90
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08086C7C:
- pop {r0}
- bx r0
- .align 2, 0
-_08086C80: .4byte gPaletteFade
-_08086C84: .4byte gUnknown_0300485C
-_08086C88: .4byte sub_8086C94
-_08086C8C: .4byte CB2_LoadMap
-_08086C90: .4byte sub_8086A68
- thumb_func_end sub_8086C40
-
- thumb_func_start sub_8086C94
-sub_8086C94: @ 8086C94
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- ldr r0, _08086CB4
- movs r1, 0
- bl CreateTask
- ldr r1, _08086CB8
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08086CB4: .4byte sub_8086CBC
-_08086CB8: .4byte gUnknown_0300485C
- thumb_func_end sub_8086C94
-
- thumb_func_start sub_8086CBC
-sub_8086CBC: @ 8086CBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08086CEC
- adds r4, r1, r0
- ldr r5, _08086CF0
-_08086CCE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08086CCE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086CEC: .4byte gTasks
-_08086CF0: .4byte gUnknown_0839F300
- thumb_func_end sub_8086CBC
-
- thumb_func_start sub_8086CF4
-sub_8086CF4: @ 8086CF4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl CameraObjectReset2
- ldr r0, _08086D54
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086D58
- adds r4, r0
- movs r0, 0x4
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x10
- strh r0, [r5, 0xA]
- cmp r1, 0x6B
- bne _08086D5C
- movs r1, 0x1
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08086D5E
- .align 2, 0
-_08086D54: .4byte gPlayerAvatar
-_08086D58: .4byte gMapObjects
-_08086D5C:
- movs r1, 0
-_08086D5E:
- adds r0, r1, 0
- bl sub_80B4824
- movs r0, 0x1
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8086CF4
-
- thumb_func_start sub_8086D70
-sub_8086D70: @ 8086D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086DA8
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086DAC
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086DA8: .4byte gPlayerAvatar
-_08086DAC: .4byte gSprites
- thumb_func_end sub_8086D70
-
- thumb_func_start sub_8086DB0
-sub_8086DB0: @ 8086DB0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _08086E08
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086E0C
- adds r5, r0, r1
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r5, 0x24]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086DEE
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
-_08086DEE:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086DFE
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_08086DFE:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086E08: .4byte gPlayerAvatar
-_08086E0C: .4byte gSprites
- thumb_func_end sub_8086DB0
-
- thumb_func_start sub_8086E10
-sub_8086E10: @ 8086E10
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086E48
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086E4C
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086E48: .4byte gPlayerAvatar
-_08086E4C: .4byte gSprites
- thumb_func_end sub_8086E10
-
- thumb_func_start sub_8086E50
-sub_8086E50: @ 8086E50
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _08086EA8
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086EAC
- adds r5, r0, r1
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r5, 0x24]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086E8E
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
-_08086E8E:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086EA0
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086EA0:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086EA8: .4byte gPlayerAvatar
-_08086EAC: .4byte gSprites
- thumb_func_end sub_8086E50
-
- thumb_func_start sub_8086EB0
-sub_8086EB0: @ 8086EB0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B4850
- lsls r0, 24
- cmp r0, 0
- bne _08086ECC
- bl sub_80B483C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _08086ECE
-_08086ECC:
- movs r0, 0
-_08086ECE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086EB0
-
- thumb_func_start sub_8086ED4
-sub_8086ED4: @ 8086ED4
- push {r4,lr}
- ldr r0, _08086F20
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086F24
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08086F18
- bl CameraObjectReset1
- bl ScriptContext2_Disable
- movs r0, 0x4
- bl GetGoSpeed0AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r0, _08086F28
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08086F18:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086F20: .4byte gPlayerAvatar
-_08086F24: .4byte gMapObjects
-_08086F28: .4byte sub_8086CBC
- thumb_func_end sub_8086ED4
-
- thumb_func_start sub_8086F2C
-sub_8086F2C: @ 8086F2C
- push {r4,lr}
- ldr r4, _08086F58
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08086F5C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08086F60
- ldr r2, [r2]
- strh r2, [r1, 0xA]
- bl _call_via_r4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086F58: .4byte sub_8086F64
-_08086F5C: .4byte gTasks
-_08086F60: .4byte gUnknown_0202FF84
- thumb_func_end sub_8086F2C
-
- thumb_func_start sub_8086F64
-sub_8086F64: @ 8086F64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08086FA0
- ldr r2, _08086FA4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08086F76:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _08086FA8
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08086FAC
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08086F76
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086FA0: .4byte gUnknown_0839F31C
-_08086FA4: .4byte gTasks
-_08086FA8: .4byte gPlayerAvatar
-_08086FAC: .4byte gMapObjects
- thumb_func_end sub_8086F64
-
- thumb_func_start sub_8086FB0
-sub_8086FB0: @ 8086FB0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _08086FCC
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086FCC: .4byte gPlayerAvatar
- thumb_func_end sub_8086FB0
-
- thumb_func_start waterfall_1_do_anim_probably
-waterfall_1_do_anim_probably: @ 8086FD0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl ScriptContext2_Enable
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08087000
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, _08087008
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08087000:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08087008: .4byte gUnknown_0202FF84
- thumb_func_end waterfall_1_do_anim_probably
-
- thumb_func_start waterfall_2_wait_anim_finish_probably
-waterfall_2_wait_anim_finish_probably: @ 808700C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08087026
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _08087028
-_08087026:
- movs r0, 0
-_08087028:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end waterfall_2_wait_anim_finish_probably
-
- thumb_func_start sub_8087030
-sub_8087030: @ 8087030
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0x2
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8087030
-
- thumb_func_start sub_8087058
-sub_8087058: @ 8087058
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- bne _0808706E
- movs r0, 0
- b _080870AA
-_0808706E:
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080870A4
- bl ScriptContext2_Disable
- ldr r0, _0808709C
- strb r4, [r0, 0x6]
- ldr r0, _080870A0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x2B
- bl FieldEffectActiveListRemove
- movs r0, 0
- b _080870AA
- .align 2, 0
-_0808709C: .4byte gPlayerAvatar
-_080870A0: .4byte sub_8086F64
-_080870A4:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- movs r0, 0x1
-_080870AA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8087058
-
- thumb_func_start sub_80870B0
-sub_80870B0: @ 80870B0
- push {r4,lr}
- ldr r4, _080870E0
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080870E4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080870E8
- ldr r2, [r3]
- strh r2, [r1, 0x26]
- ldr r2, [r3, 0x4]
- strh r2, [r1, 0x24]
- bl _call_via_r4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080870E0: .4byte sub_80870EC
-_080870E4: .4byte gTasks
-_080870E8: .4byte gUnknown_0202FF84
- thumb_func_end sub_80870B0
-
- thumb_func_start sub_80870EC
-sub_80870EC: @ 80870EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0808711C
- ldr r2, _08087120
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080870FE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080870FE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808711C: .4byte gUnknown_0839F330
-_08087120: .4byte gTasks
- thumb_func_end sub_80870EC
-
- thumb_func_start sub_8087124
-sub_8087124: @ 8087124
- ldr r2, _08087134
- movs r1, 0x1
- strb r1, [r2, 0x6]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0
- bx lr
- .align 2, 0
-_08087134: .4byte gPlayerAvatar
- thumb_func_end sub_8087124
-
- thumb_func_start dive_2_unknown
-dive_2_unknown: @ 8087138
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _0808715C
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808715C: .4byte gUnknown_0202FF84
- thumb_func_end dive_2_unknown
-
- thumb_func_start dive_3_unknown
-dive_3_unknown: @ 8087160
- push {lr}
- sub sp, 0x8
- mov r1, sp
- adds r1, 0x2
- mov r0, sp
- bl PlayerGetDestCoords
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080871A4
- ldr r2, _080871AC
- ldr r0, _080871B0
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1E]
- mov r0, sp
- bl dive_warp
- ldr r0, _080871B4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x2C
- bl FieldEffectActiveListRemove
-_080871A4:
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_080871AC: .4byte gMapObjects
-_080871B0: .4byte gPlayerAvatar
-_080871B4: .4byte sub_80870EC
- thumb_func_end dive_3_unknown
-
- thumb_func_start sub_80871B8
-sub_80871B8: @ 80871B8
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080871CC
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080871CC: .4byte sub_80871D0
- thumb_func_end sub_80871B8
-
- thumb_func_start sub_80871D0
-sub_80871D0: @ 80871D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08087218
- ldr r2, _0808721C
- ldr r5, _08087220
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080871E4:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08087224
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08087228
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _080871E4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087218: .4byte gUnknown_0839F33C
-_0808721C: .4byte gTasks
-_08087220: .4byte gPlayerAvatar
-_08087224: .4byte gMapObjects
-_08087228: .4byte gSprites
- thumb_func_end sub_80871D0
-
- thumb_func_start sub_808722C
-sub_808722C: @ 808722C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl player_bitmagic
- bl CameraObjectReset2
- movs r0, 0
- bl SetCameraPanningCallback
- ldr r0, _08087260
- movs r2, 0x1
- strb r2, [r0, 0x6]
- ldrb r0, [r5, 0x3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x3]
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08087260: .4byte gPlayerAvatar
- thumb_func_end sub_808722C
-
- thumb_func_start sub_8087264
-sub_8087264: @ 8087264
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r0, r0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08087290
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08087290:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8087264
-
- thumb_func_start sub_8087298
-sub_8087298: @ 8087298
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- ldr r3, _080872E0
- movs r5, 0x10
- ldrsh r0, [r1, r5]
- str r0, [r3]
- movs r5, 0x12
- ldrsh r0, [r1, r5]
- str r0, [r3, 0x4]
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r3, 0x8]
- ldrb r0, [r2, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0x32
- bl FieldEffectStart
- movs r0, 0xB2
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080872E0: .4byte gUnknown_0202FF84
- thumb_func_end sub_8087298
-
- thumb_func_start sub_80872E4
-sub_80872E4: @ 80872E4
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r2, r0
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x11
- bgt _0808731E
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _08087330
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _08087330
- lsls r0, r2, 1
- b _0808732E
-_0808731E:
- movs r0, 0x4
- ands r1, r0
- cmp r1, 0
- bne _08087330
- lsls r0, r2, 16
- cmp r0, 0
- ble _08087330
- asrs r0, 17
-_0808732E:
- strh r0, [r4, 0xA]
-_08087330:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _0808737C
- adds r0, r5, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r2, r1, 17
- negs r2, r2
- movs r7, 0x26
- ldrsh r3, [r5, r7]
- movs r7, 0x22
- ldrsh r0, [r5, r7]
- adds r0, r1
- ldr r1, _08087374
- movs r7, 0
- ldrsh r1, [r1, r7]
- adds r0, r1
- asrs r2, 16
- adds r0, r2
- cmn r3, r0
- ble _08087378
- ldrh r0, [r5, 0x26]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r5, 0x26]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _0808737C
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0808737C
- .align 2, 0
-_08087374: .4byte gSpriteCoordOffsetY
-_08087378:
- movs r0, 0x1
- strh r0, [r4, 0x10]
-_0808737C:
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080873BA
- movs r7, 0x26
- ldrsh r1, [r5, r7]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080873BA
- adds r0, r2, 0x1
- strh r0, [r4, 0x12]
- ldrb r0, [r6, 0x3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r6, 0x3]
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_080873BA:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080873D0
- movs r7, 0x10
- ldrsh r0, [r4, r7]
- cmp r0, 0
- beq _080873D0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080873D0:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80872E4
-
- thumb_func_start sub_80873D8
-sub_80873D8: @ 80873D8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8053FF8
- bl sub_8080918
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80873D8
-
- thumb_func_start sub_80873F4
-sub_80873F4: @ 80873F4
- push {lr}
- ldr r0, _08087434
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808742C
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808742C
- bl warp_in
- ldr r1, _08087438
- ldr r0, _0808743C
- str r0, [r1]
- ldr r0, _08087440
- bl SetMainCallback2
- ldr r0, _08087444
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808742C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08087434: .4byte gPaletteFade
-_08087438: .4byte gUnknown_0300485C
-_0808743C: .4byte mapldr_080851BC
-_08087440: .4byte CB2_LoadMap
-_08087444: .4byte sub_80871D0
- thumb_func_end sub_80873F4
-
- thumb_func_start mapldr_080851BC
-mapldr_080851BC: @ 8087448
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- ldr r0, _08087468
- movs r1, 0
- str r1, [r0]
- ldr r0, _0808746C
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087468: .4byte gUnknown_0300485C
-_0808746C: .4byte sub_8087470
- thumb_func_end mapldr_080851BC
-
- thumb_func_start sub_8087470
-sub_8087470: @ 8087470
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080874B8
- ldr r2, _080874BC
- ldr r5, _080874C0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08087484:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080874C4
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080874C8
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _08087484
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080874B8: .4byte gUnknown_0839F354
-_080874BC: .4byte gTasks
-_080874C0: .4byte gPlayerAvatar
-_080874C4: .4byte gMapObjects
-_080874C8: .4byte gSprites
- thumb_func_end sub_8087470
-
- thumb_func_start sub_80874CC
-sub_80874CC: @ 80874CC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl CameraObjectReset2
- bl player_bitmagic
- ldr r1, _080874F8
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080874F8: .4byte gPlayerAvatar
- thumb_func_end sub_80874CC
-
- thumb_func_start sub_80874FC
-sub_80874FC: @ 80874FC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _0808753C
- ldr r1, _08087544
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r5, r2]
- str r0, [r1, 0x4]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r6, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808753C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08087544: .4byte gUnknown_0202FF84
- thumb_func_end sub_80874FC
-
- thumb_func_start sub_8087548
-sub_8087548: @ 8087548
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087598
- adds r0, r1
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _08087590
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- bl CameraObjectReset1
- movs r0, 0xAF
- bl PlaySE
- movs r0, 0x4
- bl sub_80608A4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
-_08087590:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08087598: .4byte gSprites
- thumb_func_end sub_8087548
-
- thumb_func_start sub_808759C
-sub_808759C: @ 808759C
- push {lr}
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080875C6
- ldr r1, _080875CC
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl sub_806451C
- ldr r0, _080875D0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080875C6:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080875CC: .4byte gPlayerAvatar
-_080875D0: .4byte sub_8087470
- thumb_func_end sub_808759C
-
- thumb_func_start sub_80875D4
-sub_80875D4: @ 80875D4
- push {r4,lr}
- ldr r4, _0808762C
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08087630
- adds r0, 0x84
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08087634
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3
- ldrb r3, [r4, 0xC]
- ands r3, r1
- lsls r3, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808762C: .4byte gUnknown_0202FF84
-_08087630: .4byte gFieldEffectObjectTemplatePointers
-_08087634: .4byte gSprites
- thumb_func_end sub_80875D4
-
- thumb_func_start sub_8087638
-sub_8087638: @ 8087638
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08087650
- adds r0, r2, 0
- movs r1, 0x32
- bl FieldEffectStop
-_08087650:
- pop {r0}
- bx r0
- thumb_func_end sub_8087638
-
- thumb_func_start sub_8087654
-sub_8087654: @ 8087654
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08087668
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087668: .4byte sub_808766C
- thumb_func_end sub_8087654
-
- thumb_func_start sub_808766C
-sub_808766C: @ 808766C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080876B4
- ldr r2, _080876B8
- ldr r5, _080876BC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08087680:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080876C0
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080876C4
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _08087680
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080876B4: .4byte gUnknown_0839F364
-_080876B8: .4byte gTasks
-_080876BC: .4byte gPlayerAvatar
-_080876C0: .4byte gMapObjects
-_080876C4: .4byte gSprites
- thumb_func_end sub_808766C
-
- thumb_func_start sub_80876C8
-sub_80876C8: @ 80876C8
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl player_bitmagic
- bl CameraObjectReset2
- ldr r1, _080876F4
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r0, [r4, 0x3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080876F4: .4byte gPlayerAvatar
- thumb_func_end sub_80876C8
-
- thumb_func_start sub_80876F8
-sub_80876F8: @ 80876F8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808776C
- ldrh r1, [r5, 0xA]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- cmp r0, 0x3
- ble _0808774C
- ldr r1, _08087748
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r6, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r5, 0xA]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0808776C
- .align 2, 0
-_08087748: .4byte gUnknown_0202FF84
-_0808774C:
- adds r0, r1, 0x1
- strh r0, [r5, 0xA]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay4AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x27
- bl PlaySE
-_0808776C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80876F8
-
- thumb_func_start sub_8087774
-sub_8087774: @ 8087774
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldr r2, _080877A8
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808779E
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0808779E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080877A8: .4byte gSprites
- thumb_func_end sub_8087774
-
- thumb_func_start sub_80877AC
-sub_80877AC: @ 80877AC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x31
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080877CA
- bl sub_8053FF8
- bl sub_8080918
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080877CA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80877AC
-
- thumb_func_start sub_80877D4
-sub_80877D4: @ 80877D4
- push {lr}
- ldr r0, _08087814
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808780C
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808780C
- bl warp_in
- ldr r1, _08087818
- ldr r0, _0808781C
- str r0, [r1]
- ldr r0, _08087820
- bl SetMainCallback2
- ldr r0, _08087824
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808780C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08087814: .4byte gPaletteFade
-_08087818: .4byte gUnknown_0300485C
-_0808781C: .4byte sub_8086748
-_08087820: .4byte CB2_LoadMap
-_08087824: .4byte sub_808766C
- thumb_func_end sub_80877D4
-
- thumb_func_start sub_8087828
-sub_8087828: @ 8087828
- push {r4,lr}
- ldr r4, _08087880
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08087884
- adds r0, 0x80
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08087888
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3
- ldrb r3, [r4, 0xC]
- ands r3, r1
- lsls r3, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08087880: .4byte gUnknown_0202FF84
-_08087884: .4byte gFieldEffectObjectTemplatePointers
-_08087888: .4byte gSprites
- thumb_func_end sub_8087828
-
- thumb_func_start sub_808788C
-sub_808788C: @ 808788C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080878A4
- adds r0, r2, 0
- movs r1, 0x31
- bl FieldEffectStop
-_080878A4:
- pop {r0}
- bx r0
- thumb_func_end sub_808788C
-
- thumb_func_start sub_80878A8
-sub_80878A8: @ 80878A8
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r0, _080878C0
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080878C0: .4byte sub_80878C4
- thumb_func_end sub_80878A8
-
- thumb_func_start sub_80878C4
-sub_80878C4: @ 80878C4
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080878EC
- ldr r2, _080878F0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080878EC: .4byte gUnknown_0839F378
-_080878F0: .4byte gTasks
- thumb_func_end sub_80878C4
-
- thumb_func_start sub_80878F4
-sub_80878F4: @ 80878F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x40
- strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80878F4
-
- thumb_func_start sub_8087914
-sub_8087914: @ 8087914
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _080879B8
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08087940
- subs r0, r1, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _08087940
- bl sub_8053FF8
- bl sub_8080918
-_08087940:
- ldr r0, _080879BC
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080879C0
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08087966
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08087A20
-_08087966:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080879D8
- ldr r0, _080879C4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080879D8
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080879D8
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetDirection
- bl sub_8053678
- bl warp_in
- ldr r1, _080879C8
- ldr r0, _080879CC
- str r0, [r1]
- ldr r0, _080879D0
- bl SetMainCallback2
- ldr r0, _080879D4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _08087A20
- .align 2, 0
-_080879B8: .4byte gUnknown_0839F380
-_080879BC: .4byte gPlayerAvatar
-_080879C0: .4byte gMapObjects
-_080879C4: .4byte gPaletteFade
-_080879C8: .4byte gUnknown_0300485C
-_080879CC: .4byte mapldr_080859D4
-_080879D0: .4byte CB2_LoadMap
-_080879D4: .4byte sub_80878C4
-_080879D8:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080879EC
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08087A20
-_080879EC:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r0, [r0]
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0xB
- bgt _08087A14
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_08087A14:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 18
- movs r0, 0x8
- asrs r0, r1
- strh r0, [r4, 0xA]
-_08087A20:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8087914
-
- thumb_func_start mapldr_080859D4
-mapldr_080859D4: @ 8087A28
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _08087A64
- movs r0, 0
- str r0, [r1]
- ldr r2, _08087A68
- ldr r0, _08087A6C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, _08087A70
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087A64: .4byte gUnknown_0300485C
-_08087A68: .4byte gMapObjects
-_08087A6C: .4byte gPlayerAvatar
-_08087A70: .4byte sub_8087A74
- thumb_func_end mapldr_080859D4
-
- thumb_func_start sub_8087A74
-sub_8087A74: @ 8087A74
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08087A9C
- ldr r2, _08087AA0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08087A9C: .4byte gUnknown_0839F388
-_08087AA0: .4byte gTasks
- thumb_func_end sub_8087A74
-
- thumb_func_start sub_8087AA4
-sub_8087AA4: @ 8087AA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08087AC2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
-_08087AC2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8087AA4
-
- thumb_func_start sub_8087AC8
-sub_8087AC8: @ 8087AC8
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, _08087B4C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, _08087B50
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087B54
- adds r6, r0, r1
- ldrh r1, [r5, 0xA]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08087AFA
- subs r0, r1, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08087B8C
-_08087AFA:
- adds r0, r6, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08087B12
- adds r0, r6, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08087BA0
-_08087B12:
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _08087B5C
- movs r2, 0x26
- ldrsh r4, [r5, r2]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08087B5C
- ldrb r1, [r6, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x1]
- bl ScriptContext2_Disable
- bl sub_806451C
- ldr r0, _08087B58
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _08087BA0
- .align 2, 0
-_08087B4C: .4byte gUnknown_0839F380
-_08087B50: .4byte gPlayerAvatar
-_08087B54: .4byte gMapObjects
-_08087B58: .4byte sub_8087A74
-_08087B5C:
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r0, [r0]
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0x1F
- bgt _08087B84
- adds r0, r1, 0x1
- strh r0, [r5, 0xC]
-_08087B84:
- ldrh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 18
- strh r0, [r5, 0xA]
-_08087B8C:
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
-_08087BA0:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8087AC8
-
- thumb_func_start sub_8087BA8
-sub_8087BA8: @ 8087BA8
- push {lr}
- ldr r0, _08087BB8
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087BB8: .4byte sub_8087BBC
- thumb_func_end sub_8087BA8
-
- thumb_func_start sub_8087BBC
-sub_8087BBC: @ 8087BBC
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08087BE4
- ldr r2, _08087BE8
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08087BE4: .4byte gUnknown_0839F390
-_08087BE8: .4byte gTasks
- thumb_func_end sub_8087BBC
-
- thumb_func_start sub_8087BEC
-sub_8087BEC: @ 8087BEC
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl CameraObjectReset2
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8087BEC
-
- thumb_func_start sub_8087C14
-sub_8087C14: @ 8087C14
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08087C98
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, _08087C9C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087CA0
- adds r5, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08087C46
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08087C60
-_08087C46:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r5, 0
- bl FieldObjectTurn
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_08087C60:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- ble _08087C8E
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r1, r0
- bne _08087C8E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x4
- strh r0, [r4, 0xA]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- movs r0, 0x2D
- bl PlaySE
-_08087C8E:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087C98: .4byte gUnknown_0839F380
-_08087C9C: .4byte gPlayerAvatar
-_08087CA0: .4byte gMapObjects
- thumb_func_end sub_8087C14
-
- thumb_func_start sub_8087CA4
-sub_8087CA4: @ 8087CA4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08087D68
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r2, _08087D6C
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087D70
- adds r3, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087D74
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _08087CEE
- movs r0, 0x4
- strh r0, [r4, 0xA]
- ldrb r0, [r3, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r3, 0
- bl FieldObjectTurn
-_08087CEE:
- ldrh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- adds r0, r1, r2
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _08087D1A
- movs r0, 0x4
- strh r0, [r4, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _08087D1A
- lsls r0, r1, 1
- strh r0, [r4, 0xE]
-_08087D1A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08087D48
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _08087D48
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_08087D48:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xA7
- ble _08087D5E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8053FF8
- bl sub_8080918
-_08087D5E:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087D68: .4byte gUnknown_0839F380
-_08087D6C: .4byte gPlayerAvatar
-_08087D70: .4byte gMapObjects
-_08087D74: .4byte gSprites
- thumb_func_end sub_8087CA4
-
- thumb_func_start sub_8087D78
-sub_8087D78: @ 8087D78
- push {lr}
- ldr r0, _08087DB8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08087DB4
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08087DB4
- bl sub_8053570
- bl warp_in
- ldr r0, _08087DBC
- bl SetMainCallback2
- ldr r1, _08087DC0
- ldr r0, _08087DC4
- str r0, [r1]
- ldr r0, _08087DC8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08087DB4:
- pop {r0}
- bx r0
- .align 2, 0
-_08087DB8: .4byte gPaletteFade
-_08087DBC: .4byte CB2_LoadMap
-_08087DC0: .4byte gUnknown_0300485C
-_08087DC4: .4byte mapldr_08085D88
-_08087DC8: .4byte sub_8087BBC
- thumb_func_end sub_8087D78
-
- thumb_func_start mapldr_08085D88
-mapldr_08085D88: @ 8087DCC
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _08087E0C
- movs r0, 0
- str r0, [r1]
- ldr r2, _08087E10
- ldr r0, _08087E14
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl CameraObjectReset2
- ldr r0, _08087E18
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087E0C: .4byte gUnknown_0300485C
-_08087E10: .4byte gMapObjects
-_08087E14: .4byte gPlayerAvatar
-_08087E18: .4byte sub_8087E1C
- thumb_func_end mapldr_08085D88
-
- thumb_func_start sub_8087E1C
-sub_8087E1C: @ 8087E1C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08087E44
- ldr r2, _08087E48
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08087E44: .4byte gUnknown_0839F3A0
-_08087E48: .4byte gTasks
- thumb_func_end sub_8087E1C
-
- thumb_func_start sub_8087E4C
-sub_8087E4C: @ 8087E4C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08087EC2
- ldr r5, _08087EC8
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08087ECC
- adds r2, r0
- adds r0, r2, 0
- adds r0, 0x29
- movs r4, 0
- ldrsb r4, [r0, r4]
- lsls r0, r4, 17
- negs r0, r0
- ldrh r1, [r2, 0x22]
- ldr r3, _08087ED0
- adds r1, r4
- ldrh r3, [r3]
- adds r1, r3
- asrs r0, 16
- adds r0, r1
- negs r0, r0
- strh r0, [r2, 0x26]
- ldr r3, _08087ED4
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- strb r0, [r1, 0x1]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0x8
- strh r0, [r6, 0xA]
- movs r0, 0x1
- strh r0, [r6, 0xC]
- adds r2, 0x42
- ldrb r0, [r2]
- lsrs r0, 6
- strh r0, [r6, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- movs r0, 0x2D
- bl PlaySE
-_08087EC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087EC8: .4byte gPlayerAvatar
-_08087ECC: .4byte gSprites
-_08087ED0: .4byte gSpriteCoordOffsetY
-_08087ED4: .4byte gMapObjects
- thumb_func_end sub_8087E4C
-
- thumb_func_start sub_8087ED8
-sub_8087ED8: @ 8087ED8
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08087F40
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r2, _08087F44
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087F48
- adds r6, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087F4C
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- blt _08087F50
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08087F76
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- ldrh r1, [r4, 0x24]
- adds r3, r5, 0
- adds r3, 0x42
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x3F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _08087F76
- .align 2, 0
-_08087F40: .4byte gUnknown_0839F380
-_08087F44: .4byte gPlayerAvatar
-_08087F48: .4byte gMapObjects
-_08087F4C: .4byte gSprites
-_08087F50:
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _08087F76
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_08087F76:
- ldrh r2, [r5, 0x26]
- movs r3, 0x26
- ldrsh r1, [r5, r3]
- movs r0, 0x30
- negs r0, r0
- cmp r1, r0
- blt _08087F9A
- ldrh r1, [r4, 0xA]
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- ble _08087F9A
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08087F9A
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
-_08087F9A:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- movs r7, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _08087FBC
- movs r0, 0x4
- strh r0, [r4, 0xC]
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r6, 0
- bl FieldObjectTurn
-_08087FBC:
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _08087FD2
- strh r7, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- strh r0, [r4, 0xA]
- strh r7, [r4, 0xC]
-_08087FD2:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8087ED8
-
- thumb_func_start sub_8087FDC
-sub_8087FDC: @ 8087FDC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08088058
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, _0808805C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088060
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08088050
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r5, 0
- bl FieldObjectTurn
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08088050
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r1, r0
- bne _08088050
- bl ScriptContext2_Disable
- bl CameraObjectReset1
- bl sub_806451C
- ldr r0, _08088064
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08088050:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088058: .4byte gUnknown_0839F380
-_0808805C: .4byte gPlayerAvatar
-_08088060: .4byte gMapObjects
-_08088064: .4byte sub_8087E1C
- thumb_func_end sub_8087FDC
-
- thumb_func_start sub_8088068
-sub_8088068: @ 8088068
- push {r4,lr}
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08088088
- ldr r0, _08088084
- b _0808808A
- .align 2, 0
-_08088084: .4byte sub_8088120
-_08088088:
- ldr r0, _080880B8
-_0808808A:
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080880BC
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_8088830
- ldr r2, _080880C0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x26]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080880B8: .4byte sub_808847C
-_080880BC: .4byte gUnknown_0202FF84
-_080880C0: .4byte gTasks
- thumb_func_end sub_8088068
-
- thumb_func_start sub_80880C4
-sub_80880C4: @ 80880C4
- push {r4-r6,lr}
- ldr r5, _08088118
- ldr r0, [r5]
- movs r6, 0x80
- lsls r6, 24
- ands r6, r0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _0808811C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- str r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5, 0x4]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x8]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- movs r0, 0x6
- bl FieldEffectStart
- movs r0, 0x3B
- bl FieldEffectActiveListRemove
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08088118: .4byte gUnknown_0202FF84
-_0808811C: .4byte gPlayerParty
- thumb_func_end sub_80880C4
-
- thumb_func_start sub_8088120
-sub_8088120: @ 8088120
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08088148
- ldr r2, _0808814C
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08088148: .4byte gUnknown_0839F3AC
-_0808814C: .4byte gTasks
- thumb_func_end sub_8088120
-
- thumb_func_start sub_8088150
-sub_8088150: @ 8088150
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080881A0
- ldrh r0, [r6]
- strh r0, [r4, 0x1E]
- ldr r5, _080881A4
- ldrh r0, [r5]
- strh r0, [r4, 0x20]
- adds r0, r4, 0
- adds r0, 0x22
- ldr r1, _080881A8
- ldr r1, [r1, 0xC]
- bl StoreWordInTwoHalfwords
- ldr r1, _080881AC
- strh r1, [r4, 0xA]
- ldr r0, _080881B0
- strh r0, [r4, 0xC]
- movs r0, 0x3F
- strh r0, [r4, 0xE]
- movs r0, 0x3E
- strh r0, [r4, 0x10]
- ldr r0, _080881B4
- strh r1, [r0]
- ldr r1, _080881B8
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r0, [r4, 0xE]
- strh r0, [r6]
- ldrh r0, [r4, 0x10]
- strh r0, [r5]
- ldr r0, _080881BC
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080881A0: .4byte REG_WININ
-_080881A4: .4byte REG_WINOUT
-_080881A8: .4byte gMain
-_080881AC: .4byte 0x0000f0f1
-_080881B0: .4byte 0x00005051
-_080881B4: .4byte REG_WIN0H
-_080881B8: .4byte REG_WIN0V
-_080881BC: .4byte sub_80883DC
- thumb_func_end sub_8088150
-
- thumb_func_start sub_80881C0
-sub_80881C0: @ 80881C0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _08088218
- ldrh r1, [r0]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- ldrh r4, [r0]
- lsrs r4, 8
- lsls r4, 27
- lsrs r4, 16
- ldr r0, _0808821C
- movs r5, 0xC0
- lsls r5, 19
- adds r1, r5
- movs r2, 0x80
- lsls r2, 1
- bl CpuSet
- movs r0, 0
- str r0, [sp]
- adds r5, r4, r5
- ldr r2, _08088220
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
- ldr r0, _08088224
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- bl sub_808843C
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088218: .4byte REG_BG0CNT
-_0808821C: .4byte gFieldMoveStreaksTiles
-_08088220: .4byte 0x05000200
-_08088224: .4byte gFieldMoveStreaksPalette
- thumb_func_end sub_80881C0
-
- thumb_func_start sub_8088228
-sub_8088228: @ 8088228
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldrh r6, [r3, 0xA]
- ldrh r2, [r3, 0xC]
- movs r7, 0xFF
- lsrs r1, r6, 8
- subs r1, 0x10
- lsls r1, 16
- lsrs r0, r2, 8
- subs r0, 0x2
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r7, 0
- ands r0, r2
- adds r5, r0, 0x2
- lsrs r2, r1, 16
- cmp r1, 0
- bge _08088254
- movs r2, 0
-_08088254:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _0808825E
- movs r4, 0x28
-_0808825E:
- cmp r5, 0x78
- ble _08088264
- movs r5, 0x78
-_08088264:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 8
- adds r0, r7, 0
- ands r0, r6
- orrs r1, r0
- strh r1, [r3, 0xA]
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r4, 8
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r3, 0xC]
- cmp r2, 0
- bne _080882A4
- cmp r4, 0x28
- bne _080882A4
- cmp r1, 0x78
- bne _080882A4
- ldr r2, _080882AC
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080882B0
- str r1, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080882A4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080882AC: .4byte gSprites
-_080882B0: .4byte sub_8088890
- thumb_func_end sub_8088228
-
- thumb_func_start sub_80882B4
-sub_80882B4: @ 80882B4
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldr r2, _080882E0
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080882DA
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080882DA:
- pop {r0}
- bx r0
- .align 2, 0
-_080882E0: .4byte gSprites
- thumb_func_end sub_80882B4
-
- thumb_func_start sub_80882E4
-sub_80882E4: @ 80882E4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldrh r2, [r3, 0xC]
- lsls r1, r2, 16
- movs r0, 0xFF
- asrs r1, 24
- adds r1, 0x6
- lsls r1, 16
- ands r0, r2
- subs r0, 0x6
- lsls r0, 16
- lsrs r2, r0, 16
- lsrs r4, r1, 16
- asrs r1, 16
- cmp r1, 0x50
- ble _0808830C
- movs r4, 0x50
-_0808830C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x50
- bgt _08088316
- movs r2, 0x51
-_08088316:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r0, 8
- lsls r2, 16
- asrs r2, 16
- orrs r1, r2
- strh r1, [r3, 0xC]
- cmp r0, 0x50
- bne _08088332
- cmp r2, 0x51
- bne _08088332
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08088332:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80882E4
-
- thumb_func_start sub_8088338
-sub_8088338: @ 8088338
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _08088378
- ldrh r1, [r0]
- lsrs r1, 8
- lsls r1, 27
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r0
- ldr r2, _0808837C
- mov r0, sp
- bl CpuSet
- movs r0, 0xF1
- strh r0, [r4, 0xA]
- movs r0, 0xA1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1E]
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088378: .4byte REG_BG0CNT
-_0808837C: .4byte 0x05000200
- thumb_func_end sub_8088338
-
- thumb_func_start sub_8088380
-sub_8088380: @ 8088380
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl SetVBlankCallback
- ldr r4, _080883D0
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080883D4
- adds r0, r1
- bl sub_8085C44
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r0, _080883D8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080883D0: .4byte gWindowConfig_81E6CE4
-_080883D4: .4byte gSprites
-_080883D8: .4byte sub_8088120
- thumb_func_end sub_8088380
-
- thumb_func_start sub_80883DC
-sub_80883DC: @ 80883DC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08088430
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08088434
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl _call_via_r0
- ldr r1, _08088438
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r4, 0xE]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x10]
- strh r0, [r1]
- subs r1, 0x3A
- ldrh r0, [r4, 0x12]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x14]
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088430: .4byte sub_8088120
-_08088434: .4byte gTasks
-_08088438: .4byte REG_WIN0H
- thumb_func_end sub_80883DC
-
- thumb_func_start sub_808843C
-sub_808843C: @ 808843C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08088470
- adds r2, r0, r1
- movs r1, 0
- ldr r5, _08088474
- movs r0, 0xF0
- lsls r0, 8
- adds r4, r0, 0
- ldr r3, _08088478
-_08088452:
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- orrs r0, r4
- strh r0, [r2]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, 0x2
- cmp r1, r3
- bls _08088452
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088470: .4byte 0x06000140
-_08088474: .4byte gFieldMoveStreaksTilemap
-_08088478: .4byte 0x0000013f
- thumb_func_end sub_808843C
-
- thumb_func_start sub_808847C
-sub_808847C: @ 808847C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080884A4
- ldr r2, _080884A8
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080884A4: .4byte gUnknown_0839F3C8
-_080884A8: .4byte gTasks
- thumb_func_end sub_808847C
-
- thumb_func_start sub_80884AC
-sub_80884AC: @ 80884AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080884DC
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r0, r4, 0
- adds r0, 0x22
- ldr r1, _080884E0
- ldr r1, [r1, 0xC]
- bl StoreWordInTwoHalfwords
- ldr r0, _080884E4
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080884DC: .4byte REG_BG0HOFS
-_080884E0: .4byte gMain
-_080884E4: .4byte sub_80886B0
- thumb_func_end sub_80884AC
-
- thumb_func_start sub_80884E8
-sub_80884E8: @ 80884E8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _08088544
- ldrh r1, [r0]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- ldrh r4, [r0]
- lsrs r4, 8
- lsls r4, 27
- lsrs r4, 16
- movs r0, 0
- mov r8, r0
- strh r4, [r6, 0x20]
- ldr r0, _08088548
- movs r5, 0xC0
- lsls r5, 19
- adds r1, r5
- movs r2, 0x40
- bl CpuSet
- mov r0, r8
- str r0, [sp]
- adds r4, r5
- ldr r2, _0808854C
- mov r0, sp
- adds r1, r4, 0
- bl CpuSet
- ldr r0, _08088550
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088544: .4byte REG_BG0CNT
-_08088548: .4byte gDarknessFieldMoveStreaksTiles
-_0808854C: .4byte 0x05000200
-_08088550: .4byte gDarknessFieldMoveStreaksPalette
- thumb_func_end sub_80884E8
-
- thumb_func_start sub_8088554
-sub_8088554: @ 8088554
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8088708
- lsls r0, 24
- cmp r0, 0
- beq _0808858A
- ldr r1, _08088598
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _0808859C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080885A0
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080885A4
- str r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808858A:
- adds r0, r4, 0
- bl sub_80886F8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088598: .4byte REG_WIN1H
-_0808859C: .4byte 0x00002878
-_080885A0: .4byte gSprites
-_080885A4: .4byte sub_8088890
- thumb_func_end sub_8088554
-
- thumb_func_start sub_80885A8
-sub_80885A8: @ 80885A8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80886F8
- ldr r2, _080885D4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080885CC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080885CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080885D4: .4byte gSprites
- thumb_func_end sub_80885A8
-
- thumb_func_start sub_80885D8
-sub_80885D8: @ 80885D8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80886F8
- ldrh r1, [r4, 0xA]
- movs r0, 0x7
- ands r0, r1
- movs r1, 0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- ldr r0, _08088604
- ldr r2, _08088608
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088604: .4byte REG_WIN1H
-_08088608: .4byte 0x0000ffff
- thumb_func_end sub_80885D8
-
- thumb_func_start sub_808860C
-sub_808860C: @ 808860C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80886F8
- adds r0, r4, 0
- bl sub_80887C0
- lsls r0, 24
- cmp r0, 0
- beq _08088626
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088626:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808860C
-
- thumb_func_start sub_808862C
-sub_808862C: @ 808862C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, _0808869C
- ldrh r1, [r0]
- lsrs r1, 8
- lsls r1, 27
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r0
- ldr r2, _080886A0
- mov r0, sp
- bl CpuSet
- adds r0, r5, 0
- adds r0, 0x22
- add r1, sp, 0x4
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp, 0x4]
- bl SetVBlankCallback
- ldr r4, _080886A4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080886A8
- adds r0, r1
- bl sub_8085C44
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r0, _080886AC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808869C: .4byte REG_BG0CNT
-_080886A0: .4byte 0x05000200
-_080886A4: .4byte gWindowConfig_81E6CE4
-_080886A8: .4byte gSprites
-_080886AC: .4byte sub_808847C
- thumb_func_end sub_808862C
-
- thumb_func_start sub_80886B0
-sub_80886B0: @ 80886B0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080886EC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080886F0
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl _call_via_r0
- ldr r1, _080886F4
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080886EC: .4byte sub_808847C
-_080886F0: .4byte gTasks
-_080886F4: .4byte REG_BG0HOFS
- thumb_func_end sub_80886B0
-
- thumb_func_start sub_80886F8
-sub_80886F8: @ 80886F8
- ldrh r1, [r0, 0xA]
- subs r1, 0x10
- strh r1, [r0, 0xA]
- ldrh r1, [r0, 0xE]
- adds r1, 0x10
- strh r1, [r0, 0xE]
- bx lr
- thumb_func_end sub_80886F8
-
- thumb_func_start sub_8088708
-sub_8088708: @ 8088708
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x10]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _08088724
- movs r0, 0x1
- b _080887A8
-_08088724:
- ldrh r0, [r5, 0xE]
- lsls r0, 16
- asrs r3, r0, 19
- movs r1, 0x1F
- ands r3, r1
- movs r4, 0x10
- ldrsh r0, [r5, r4]
- cmp r3, r0
- blt _080887A6
- movs r0, 0x20
- subs r3, r0, r3
- ands r3, r1
- subs r0, r2
- mov r12, r0
- mov r7, r12
- ands r7, r1
- mov r12, r7
- ldrh r0, [r5, 0x20]
- ldr r1, _080887B8
- adds r1, r0
- mov r8, r1
- movs r4, 0
- ldr r7, _080887BC
- mov r10, r7
- movs r0, 0xF0
- lsls r0, 8
- mov r9, r0
- adds r1, r3, 0x1
- movs r0, 0x1F
- ands r1, r0
- str r1, [sp]
- mov r6, r12
- adds r6, 0x1
- ands r6, r0
-_08088768:
- lsls r1, r4, 5
- adds r2, r1, r3
- lsls r2, 1
- add r2, r8
- mov r7, r12
- adds r0, r7, r1
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r7, r9
- orrs r0, r7
- strh r0, [r2]
- ldr r0, [sp]
- adds r2, r1, r0
- lsls r2, 1
- add r2, r8
- adds r1, r6, r1
- lsls r1, 1
- add r1, r10
- ldrh r0, [r1]
- mov r1, r9
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x9
- bls _08088768
- ldrh r0, [r5, 0x10]
- adds r0, 0x2
- strh r0, [r5, 0x10]
-_080887A6:
- movs r0, 0
-_080887A8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080887B8: .4byte 0x06000140
-_080887BC: .4byte gDarknessFieldMoveStreaksTilemap
- thumb_func_end sub_8088708
-
- thumb_func_start sub_80887C0
-sub_80887C0: @ 80887C0
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _080887D0
- movs r0, 0x1
- b _08088824
-_080887D0:
- ldrh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r2, r0
- blt _08088822
- ldrh r0, [r5, 0xA]
- lsls r0, 16
- asrs r2, r0, 19
- movs r0, 0x1F
- ands r2, r0
- ldrh r0, [r5, 0x20]
- ldr r1, _0808882C
- adds r6, r0, r1
- movs r3, 0
- movs r0, 0xF0
- lsls r0, 8
- adds r7, r0, 0
- adds r4, r2, 0x1
- movs r0, 0x1F
- ands r4, r0
-_08088800:
- lsls r0, r3, 5
- adds r1, r0, r2
- lsls r1, 1
- adds r1, r6
- strh r7, [r1]
- adds r0, r4
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bls _08088800
- ldrh r0, [r5, 0x10]
- adds r0, 0x2
- strh r0, [r5, 0x10]
-_08088822:
- movs r0, 0
-_08088824:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808882C: .4byte 0x06000140
- thumb_func_end sub_80887C0
-
- thumb_func_start sub_8088830
-sub_8088830: @ 8088830
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- movs r5, 0x80
- lsls r5, 24
- ands r5, r6
- lsrs r5, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08088884
- ands r6, r0
- lsls r0, r6, 16
- lsrs r0, 16
- movs r3, 0xA0
- lsls r3, 1
- movs r4, 0x50
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl sub_8085B88
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _08088888
- adds r2, r1
- ldr r1, _0808888C
- str r1, [r2, 0x1C]
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- strb r1, [r2, 0x5]
- strh r6, [r2, 0x2E]
- strh r5, [r2, 0x3A]
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08088884: .4byte 0x7fffffff
-_08088888: .4byte gSprites
-_0808888C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8088830
-
- thumb_func_start sub_8088890
-sub_8088890: @ 8088890
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x20]
- subs r0, 0x14
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- bgt _080888D0
- movs r0, 0x78
- strh r0, [r1, 0x20]
- movs r0, 0x1E
- strh r0, [r1, 0x30]
- ldr r0, _080888C4
- str r0, [r1, 0x1C]
- movs r2, 0x3A
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080888C8
- ldrh r0, [r1, 0x2E]
- movs r1, 0
- movs r2, 0x7D
- movs r3, 0xA
- bl PlayCry2
- b _080888D0
- .align 2, 0
-_080888C4: .4byte sub_80888D4
-_080888C8:
- ldrh r0, [r1, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080888D0:
- pop {r0}
- bx r0
- thumb_func_end sub_8088890
-
- thumb_func_start sub_80888D4
-sub_80888D4: @ 80888D4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080888E8
- ldr r0, _080888EC
- str r0, [r1, 0x1C]
-_080888E8:
- pop {r0}
- bx r0
- .align 2, 0
-_080888EC: .4byte sub_80888F0
- thumb_func_end sub_80888D4
-
- thumb_func_start sub_80888F0
-sub_80888F0: @ 80888F0
- push {lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x20]
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- bge _08088908
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- b _0808890E
-_08088908:
- adds r0, r3, 0
- subs r0, 0x14
- strh r0, [r2, 0x20]
-_0808890E:
- pop {r0}
- bx r0
- thumb_func_end sub_80888F0
-
- thumb_func_start sub_8088914
-sub_8088914: @ 8088914
- push {lr}
- ldr r0, _08088944
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08088948
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0808894C
- ldr r0, [r0]
- strh r0, [r1, 0x26]
- bl sav1_reset_battle_music_maybe
- ldr r0, _08088950
- bl sub_8053FB0
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08088944: .4byte sub_8088954
-_08088948: .4byte gTasks
-_0808894C: .4byte gUnknown_0202FF84
-_08088950: .4byte 0x0000016d
- thumb_func_end sub_8088914
-
- thumb_func_start sub_8088954
-sub_8088954: @ 8088954
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0808897C
- ldr r2, _08088980
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_0808897C: .4byte gUnknown_0839F3E4
-_08088980: .4byte gTasks
- thumb_func_end sub_8088954
-
- thumb_func_start sub_8088984
-sub_8088984: @ 8088984
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r5, _080889DC
- movs r0, 0x1
- strb r0, [r5, 0x6]
- movs r0, 0x8
- bl SetPlayerAvatarStateMask
- adds r6, r4, 0
- adds r6, 0xA
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- mov r1, r8
- bl PlayerGetDestCoords
- ldr r2, _080889E0
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- adds r1, r6, 0
- mov r2, r8
- bl MoveCoords
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080889DC: .4byte gPlayerAvatar
-_080889E0: .4byte gMapObjects
- thumb_func_end sub_8088984
-
- thumb_func_start sub_80889E4
-sub_80889E4: @ 80889E4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08088A28
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088A2C
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08088A0E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088A20
-_08088A0E:
- bl sub_8059BF4
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08088A20:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088A28: .4byte gPlayerAvatar
-_08088A2C: .4byte gMapObjects
- thumb_func_end sub_80889E4
-
- thumb_func_start sub_8088A30
-sub_8088A30: @ 8088A30
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08088A6C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088A70
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08088A66
- ldr r2, _08088A74
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088A66:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088A6C: .4byte gPlayerAvatar
-_08088A70: .4byte gMapObjects
-_08088A74: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088A30
-
- thumb_func_start sub_8088A78
-sub_8088A78: @ 8088A78
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08088AE2
- ldr r5, _08088AE8
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08088AEC
- adds r4, r0
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80608D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r1, _08088AF0
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- str r0, [r1]
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- str r0, [r1, 0x4]
- ldrb r0, [r5, 0x5]
- str r0, [r1, 0x8]
- movs r0, 0x8
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08088AE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088AE8: .4byte gPlayerAvatar
-_08088AEC: .4byte gMapObjects
-_08088AF0: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088A78
-
- thumb_func_start sub_8088AF4
-sub_8088AF4: @ 8088AF4
- push {r4,r5,lr}
- ldr r5, _08088B5C
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088B60
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088B54
- movs r0, 0
- strb r0, [r5, 0x6]
- ldrb r1, [r5]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r5]
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_8127ED0
- bl sub_806451C
- bl ScriptContext2_Disable
- movs r0, 0x9
- bl FieldEffectActiveListRemove
- ldr r0, _08088B64
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08088B54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088B5C: .4byte gPlayerAvatar
-_08088B60: .4byte gMapObjects
-_08088B64: .4byte sub_8088954
- thumb_func_end sub_8088AF4
-
- thumb_func_start sub_8088B68
-sub_8088B68: @ 8088B68
- push {r4,lr}
- ldr r0, _08088BB4
- ldr r0, [r0, 0x68]
- movs r1, 0x78
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- ldr r0, _08088BB8
- adds r2, r0
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, _08088BBC
- str r0, [r2, 0x1C]
- ldr r0, _08088BC0
- ldr r0, [r0]
- strh r0, [r2, 0x30]
- movs r0, 0x9E
- bl PlaySE
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08088BB4: .4byte gFieldEffectObjectTemplatePointers
-_08088BB8: .4byte gSprites
-_08088BBC: .4byte sub_8088BC4
-_08088BC0: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088B68
-
- thumb_func_start sub_8088BC4
-sub_8088BC4: @ 8088BC4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08088C26
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08088C3C
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_08088C26:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _08088C36
- adds r0, r4, 0
- movs r1, 0x1E
- bl FieldEffectStop
-_08088C36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088C3C: .4byte gSprites
- thumb_func_end sub_8088BC4
-
- thumb_func_start sub_8088C40
-sub_8088C40: @ 8088C40
- push {lr}
- ldr r0, _08088C64
- movs r1, 0xFE
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08088C68
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08088C6C
- ldr r0, [r0]
- strh r0, [r1, 0xA]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08088C64: .4byte sub_8088C70
-_08088C68: .4byte gTasks
-_08088C6C: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088C40
-
- thumb_func_start sub_8088C70
-sub_8088C70: @ 8088C70
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08088C98
- ldr r2, _08088C9C
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08088C98: .4byte gUnknown_0839F3F8
-_08088C9C: .4byte gTasks
- thumb_func_end sub_8088C70
-
- thumb_func_start sub_8088CA0
-sub_8088CA0: @ 8088CA0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _08088CF0
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088CF4
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08088CCA
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088CE8
-_08088CCA:
- ldrb r0, [r6]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl SetPlayerAvatarStateMask
- bl sub_8059BF4
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08088CE8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088CF0: .4byte gPlayerAvatar
-_08088CF4: .4byte gMapObjects
- thumb_func_end sub_8088CA0
-
- thumb_func_start sub_8088CF8
-sub_8088CF8: @ 8088CF8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08088D30
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088D34
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088D28
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r1, _08088D38
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
-_08088D28:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088D30: .4byte gPlayerAvatar
-_08088D34: .4byte gMapObjects
-_08088D38: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088CF8
-
- thumb_func_start sub_8088D3C
-sub_8088D3C: @ 8088D3C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08088D84
- ldr r0, _08088D8C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088D90
- adds r5, r0, r1
- ldrh r1, [r4, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08088D74
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_8127ED0
- ldrb r0, [r5, 0x1A]
- movs r1, 0
- bl sub_8127EFC
-_08088D74:
- bl sub_8088F60
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088D84:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088D8C: .4byte gPlayerAvatar
-_08088D90: .4byte gMapObjects
- thumb_func_end sub_8088D3C
-
- thumb_func_start sub_8088D94
-sub_8088D94: @ 8088D94
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _08088DC8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- ldr r0, _08088DD0
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088DD4
- adds r0, r1
- movs r1, 0x2
- bl FieldObjectSetSpecialAnim
-_08088DC8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088DD0: .4byte gPlayerAvatar
-_08088DD4: .4byte gMapObjects
- thumb_func_end sub_8088D94
-
- thumb_func_start sub_8088DD8
-sub_8088DD8: @ 8088DD8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08088E24
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088E28
- adds r2, r0, r1
- ldrh r1, [r4, 0xC]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08088DFE
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _08088E1C
-_08088DFE:
- adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088E1C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x9E
- bl PlaySE
- ldrb r0, [r4, 0xA]
- bl sub_8088FC0
-_08088E1C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088E24: .4byte gPlayerAvatar
-_08088E28: .4byte gMapObjects
- thumb_func_end sub_8088DD8
-
- thumb_func_start sub_8088E2C
-sub_8088E2C: @ 8088E2C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08088EA2
- ldr r0, _08088EA8
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088EAC
- adds r4, r0, r1
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _08088EB0
- adds r0, r6
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- movs r1, 0x48
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08088E98
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
-_08088E98:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0xC]
-_08088EA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088EA8: .4byte gPlayerAvatar
-_08088EAC: .4byte gMapObjects
-_08088EB0: .4byte gSprites
- thumb_func_end sub_8088E2C
-
- thumb_func_start sub_8088EB4
-sub_8088EB4: @ 8088EB4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08088F00
- ldr r0, _08088F08
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08088F0C
- adds r4, r0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
- ldrb r1, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
- ldrb r0, [r5, 0xA]
- ldrb r1, [r4, 0x4]
- bl sub_8088FFC
- bl CameraObjectReset2
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08088F00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088F08: .4byte gPlayerAvatar
-_08088F0C: .4byte gMapObjects
- thumb_func_end sub_8088EB4
-
- thumb_func_start sub_8088F10
-sub_8088F10: @ 8088F10
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _08088F2A
- bl sub_8080918
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088F2A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8088F10
-
- thumb_func_start sub_8088F30
-sub_8088F30: @ 8088F30
- push {lr}
- ldr r0, _08088F58
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08088F52
- movs r0, 0x1F
- bl FieldEffectActiveListRemove
- ldr r0, _08088F5C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08088F52:
- pop {r0}
- bx r0
- .align 2, 0
-_08088F58: .4byte gPaletteFade
-_08088F5C: .4byte sub_8088C70
- thumb_func_end sub_8088F30
-
- thumb_func_start sub_8088F60
-sub_8088F60: @ 8088F60
- push {lr}
- ldr r0, _08088F98
- ldr r0, [r0, 0x68]
- movs r1, 0xFF
- movs r2, 0xB4
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _08088F9C
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- ldr r1, _08088FA0
- str r1, [r2, 0x1C]
- pop {r1}
- bx r1
- .align 2, 0
-_08088F98: .4byte gFieldEffectObjectTemplatePointers
-_08088F9C: .4byte gSprites
-_08088FA0: .4byte sub_8089018
- thumb_func_end sub_8088F60
-
- thumb_func_start sub_8088FA4
-sub_8088FA4: @ 8088FA4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08088FBC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08088FBC: .4byte gSprites
- thumb_func_end sub_8088FA4
-
- thumb_func_start sub_8088FC0
-sub_8088FC0: @ 8088FC0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08088FF4
- adds r4, r0
- ldr r0, _08088FF8
- str r0, [r4, 0x1C]
- movs r1, 0
- movs r0, 0x78
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x2E
- movs r2, 0x10
- bl memset
- movs r0, 0x40
- strh r0, [r4, 0x3A]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088FF4: .4byte gSprites
-_08088FF8: .4byte sub_80890D8
- thumb_func_end sub_8088FC0
-
- thumb_func_start sub_8088FFC
-sub_8088FFC: @ 8088FFC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08089014
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- strh r1, [r2, 0x3A]
- bx lr
- .align 2, 0
-_08089014: .4byte gSprites
- thumb_func_end sub_8088FFC
-
- thumb_func_start sub_8089018
-sub_8089018: @ 8089018
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080890C4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0808905C
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080890CC
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r0, 0x76
- strh r0, [r4, 0x20]
- ldr r0, _080890D0
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x40
- strh r0, [r4, 0x30]
- adds r0, 0xC0
- strh r0, [r4, 0x32]
-_0808905C:
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- ldr r0, _080890D4
- cmp r1, r0
- bgt _08089092
- adds r0, r2, 0
- adds r0, 0x60
- strh r0, [r4, 0x32]
-_08089092:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x81
- ble _080890C4
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
-_080890C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080890CC: .4byte gUnknown_0839F44C
-_080890D0: .4byte 0x0000ffd0
-_080890D4: .4byte 0x000007ff
- thumb_func_end sub_8089018
-
- thumb_func_start sub_80890D8
-sub_80890D8: @ 80890D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _08089136
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08089148
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_08089136:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _08089142
- movs r0, 0x1
- strh r0, [r4, 0x3C]
-_08089142:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089148: .4byte gSprites
- thumb_func_end sub_80890D8
-
- thumb_func_start sub_808914C
-sub_808914C: @ 808914C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08089220
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08089196
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _08089228
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0x5E
- strh r0, [r4, 0x20]
- ldr r0, _0808922C
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0xF0
- strh r0, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x32]
- movs r0, 0x80
- strh r0, [r4, 0x36]
-_08089196:
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r2, r1
- ldrh r0, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x30]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _080891D8
- ldrh r0, [r4, 0x36]
- subs r0, r1, r0
- strh r0, [r4, 0x32]
-_080891D8:
- ldrh r1, [r4, 0x36]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0xFF
- bgt _080891E8
- adds r0, r1, 0
- adds r0, 0x18
- strh r0, [r4, 0x36]
-_080891E8:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- bgt _080891F2
- strh r2, [r4, 0x32]
-_080891F2:
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- ble _08089220
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08089220:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089228: .4byte gUnknown_0839F44C
-_0808922C: .4byte 0x0000ffe0
- thumb_func_end sub_808914C
-
- thumb_func_start sub_8089230
-sub_8089230: @ 8089230
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8088FC0
- ldr r1, _08089254
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08089258
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089254: .4byte gSprites
-_08089258: .4byte sub_808914C
- thumb_func_end sub_8089230
-
- thumb_func_start sub_808925C
-sub_808925C: @ 808925C
- push {lr}
- ldr r0, _0808926C
- movs r1, 0xFE
- bl CreateTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0808926C: .4byte sub_8089270
- thumb_func_end sub_808925C
-
- thumb_func_start sub_8089270
-sub_8089270: @ 8089270
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08089298
- ldr r2, _0808929C
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08089298: .4byte gUnknown_0839F454
-_0808929C: .4byte gTasks
- thumb_func_end sub_8089270
-
- thumb_func_start sub_80892A0
-sub_80892A0: @ 80892A0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _08089348
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0808934C
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080892CA
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08089342
-_080892CA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x11
- strh r0, [r5, 0xC]
- ldrb r0, [r6]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl SetPlayerAvatarStateMask
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080892F2
- ldrb r0, [r4, 0x1A]
- movs r1, 0
- bl sub_8127ED0
-_080892F2:
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- bl CameraObjectReset2
- adds r0, r4, 0
- movs r1, 0x3
- bl FieldObjectTurn
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08089350
- adds r0, r1
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8088F60
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- bl sub_8088FC0
- ldrb r0, [r5, 0xA]
- ldrb r1, [r4, 0x4]
- bl sub_8088FFC
-_08089342:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089348: .4byte gPlayerAvatar
-_0808934C: .4byte gMapObjects
-_08089350: .4byte gSprites
- thumb_func_end sub_80892A0
-
- thumb_func_start sub_8089354
-sub_8089354: @ 8089354
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0808936C
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080893AC
-_0808936C:
- ldr r0, _080893B4
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080893B8
- adds r0, r1
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080893BC
- adds r4, r0
- ldrb r0, [r5, 0xA]
- movs r1, 0x40
- bl sub_8088FFC
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
-_080893AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080893B4: .4byte gPlayerAvatar
-_080893B8: .4byte gMapObjects
-_080893BC: .4byte gSprites
- thumb_func_end sub_8089354
-
- thumb_func_start sub_80893C0
-sub_80893C0: @ 80893C0
- push {r4,lr}
- sub sp, 0x24
- adds r4, r0, 0
- ldr r1, _08089408
- mov r0, sp
- movs r2, 0x24
- bl memcpy
- ldr r0, _0808940C
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08089410
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _080893FE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080893FE:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089408: .4byte gUnknown_0839F470
-_0808940C: .4byte gPlayerAvatar
-_08089410: .4byte gSprites
- thumb_func_end sub_80893C0
-
- thumb_func_start sub_8089414
-sub_8089414: @ 8089414
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrb r0, [r6, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _08089478
- ldr r0, _08089480
- ldrb r0, [r0, 0x5]
- lsls r5, r0, 3
- adds r5, r0
- lsls r5, 2
- ldr r0, _08089484
- adds r5, r0
- ldrb r0, [r5, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08089488
- adds r4, r0
- ldrb r1, [r5, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- movs r0, 0x12
- ldrsh r2, [r5, r0]
- adds r0, r5, 0
- bl sub_805C058
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- bl sub_8059BF4
- adds r0, r5, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08089478:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089480: .4byte gPlayerAvatar
-_08089484: .4byte gMapObjects
-_08089488: .4byte gSprites
- thumb_func_end sub_8089414
-
- thumb_func_start sub_808948C
-sub_808948C: @ 808948C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080894BC
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080894C0
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080894B4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrb r0, [r4, 0xA]
- bl sub_8089230
-_080894B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080894BC: .4byte gPlayerAvatar
-_080894C0: .4byte gMapObjects
- thumb_func_end sub_808948C
-
- thumb_func_start sub_80894C4
-sub_80894C4: @ 80894C4
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _080894F0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080894F8
- adds r0, r1
- bl DestroySprite
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_080894F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080894F8: .4byte gSprites
- thumb_func_end sub_80894C4
-
- thumb_func_start fishE
-fishE: @ 80894FC
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08089566
- ldr r6, _0808956C
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08089570
- adds r4, r0, r1
- movs r7, 0
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08089530
- movs r7, 0x3
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_8127ED0
-_08089530:
- adds r0, r7, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- adds r0, r4, 0
- movs r1, 0x1
- bl FieldObjectTurn
- ldrh r0, [r5, 0x26]
- strb r0, [r6]
- movs r0, 0
- strb r0, [r6, 0x6]
- movs r0, 0x20
- bl FieldEffectActiveListRemove
- ldr r0, _08089574
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08089566:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808956C: .4byte gPlayerAvatar
-_08089570: .4byte gMapObjects
-_08089574: .4byte sub_8089270
- thumb_func_end fishE
-
- thumb_func_start remove_some_task
-remove_some_task: @ 8089578
- push {r4,lr}
- ldr r4, _080895A8
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _080895AC
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B0
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B4
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x18]
- cmp r0, 0xFF
- beq _080895A2
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r4, 0x18]
-_080895A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895A8: .4byte gUnknown_03004DC0
-_080895AC: .4byte 0x040000b0
-_080895B0: .4byte 0x0000c5ff
-_080895B4: .4byte 0x00007fff
- thumb_func_end remove_some_task
-
- thumb_func_start dp12_8087EA4
-dp12_8087EA4: @ 80895B8
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r1, _080895EC
- ldr r2, _080895F0
- bl CpuSet
- ldr r0, _080895F4
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- strb r4, [r0, 0x14]
- strb r4, [r0, 0x15]
- strb r4, [r0, 0x16]
- strb r4, [r0, 0x17]
- movs r1, 0xFF
- strb r1, [r0, 0x18]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895EC: .4byte gUnknown_03004DE0
-_080895F0: .4byte 0x01000780
-_080895F4: .4byte gUnknown_03004DC0
- thumb_func_end dp12_8087EA4
-
- thumb_func_start sub_80895F8
-sub_80895F8: @ 80895F8
- push {lr}
- sub sp, 0xC
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, _0808961C
- cmp r1, r0
- bne _0808962C
- ldr r0, _08089620
- ldr r1, _08089624
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089628
- b _0808963C
- .align 2, 0
-_0808961C: .4byte 0xa2600001
-_08089620: .4byte gUnknown_03004DC0
-_08089624: .4byte gUnknown_03004DE2
-_08089628: .4byte sub_80896F4
-_0808962C:
- ldr r0, _0808965C
- ldr r1, _08089660
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089664
-_0808963C:
- str r1, [r0, 0x10]
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r1, 0xC]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x8]
- strb r0, [r1, 0x15]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0808965C: .4byte gUnknown_03004DC0
-_08089660: .4byte gUnknown_03004DE4
-_08089664: .4byte sub_8089714
- thumb_func_end sub_80895F8
-
- thumb_func_start sub_8089668
-sub_8089668: @ 8089668
- push {r4,lr}
- ldr r4, _08089698
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _080896E2
- cmp r0, 0x3
- bne _080896AC
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _0808969C
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A0
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A4
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r1, _080896A8
- movs r0, 0x1
- strb r0, [r1]
- b _080896E2
- .align 2, 0
-_08089698: .4byte gUnknown_03004DC0
-_0808969C: .4byte 0x040000b0
-_080896A0: .4byte 0x0000c5ff
-_080896A4: .4byte 0x00007fff
-_080896A8: .4byte gUnknown_0202FFA4
-_080896AC:
- ldr r1, _080896E8
- ldrh r2, [r1, 0xA]
- ldr r0, _080896EC
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896F0
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x14]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r4, 0x8]
- str r0, [r1, 0x4]
- ldr r0, [r4, 0xC]
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, [r4, 0x10]
- bl _call_via_r0
- ldrb r0, [r4, 0x14]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4, 0x14]
-_080896E2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080896E8: .4byte 0x040000b0
-_080896EC: .4byte 0x0000c5ff
-_080896F0: .4byte 0x00007fff
- thumb_func_end sub_8089668
-
- thumb_func_start sub_80896F4
-sub_80896F4: @ 80896F4
- ldr r0, _0808970C
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089710
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0808970C: .4byte gUnknown_03004DC0
-_08089710: .4byte gUnknown_03004DE0
- thumb_func_end sub_80896F4
-
- thumb_func_start sub_8089714
-sub_8089714: @ 8089714
- ldr r0, _0808972C
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089730
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .align 2, 0
-_0808972C: .4byte gUnknown_03004DC0
-_08089730: .4byte gUnknown_03004DE0
- thumb_func_end sub_8089714
-
- thumb_func_start task00_for_dp12
-task00_for_dp12: @ 8089734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- ldr r0, _0808975C
- ldrb r0, [r0]
- cmp r0, 0
- beq _08089764
- mov r0, r12
- bl DestroyTask
- ldr r1, _08089760
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- b _080898E4
- .align 2, 0
-_0808975C: .4byte gUnknown_0202FFA4
-_08089760: .4byte gUnknown_03004DC0
-_08089764:
- ldr r1, _08089790
- mov r0, r12
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- mov r10, r1
- mov r9, r2
- cmp r0, 0
- beq _08089810
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- bhi _08089810
- lsls r0, 2
- ldr r1, _08089794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08089790: .4byte gTasks
-_08089794: .4byte _08089798
- .align 2, 0
-_08089798:
- .4byte _080897D4
- .4byte _08089810
- .4byte _080897DC
- .4byte _08089810
- .4byte _080897E4
- .4byte _08089810
- .4byte _080897EC
- .4byte _08089810
- .4byte _080897F4
- .4byte _08089810
- .4byte _080897FC
- .4byte _08089810
- .4byte _08089804
- .4byte _08089810
- .4byte _0808980C
-_080897D4:
- ldr r0, _080897D8
- b _0808980E
- .align 2, 0
-_080897D8: .4byte gUnknown_030042A4
-_080897DC:
- ldr r0, _080897E0
- b _0808980E
- .align 2, 0
-_080897E0: .4byte gUnknown_030042A0
-_080897E4:
- ldr r0, _080897E8
- b _0808980E
- .align 2, 0
-_080897E8: .4byte gUnknown_030042C0
-_080897EC:
- ldr r0, _080897F0
- b _0808980E
- .align 2, 0
-_080897F0: .4byte gUnknown_030041B4
-_080897F4:
- ldr r0, _080897F8
- b _0808980E
- .align 2, 0
-_080897F8: .4byte gUnknown_03004288
-_080897FC:
- ldr r0, _08089800
- b _0808980E
- .align 2, 0
-_08089800: .4byte gUnknown_03004280
-_08089804:
- ldr r0, _08089808
- b _0808980E
- .align 2, 0
-_08089808: .4byte gUnknown_030041B0
-_0808980C:
- ldr r0, _08089870
-_0808980E:
- ldrh r6, [r0]
-_08089810:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r2, r10
- adds r1, r0, r2
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0808987C
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898E4
- ldr r5, _08089874
- ldr r0, _08089878
- mov r8, r0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
-_0808984A:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _0808984A
- b _080898E4
- .align 2, 0
-_08089870: .4byte gUnknown_030041B8
-_08089874: .4byte gUnknown_03004DE0
-_08089878: .4byte gUnknown_03004DC0
-_0808987C:
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x10]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898C4
- ldr r5, _080898F4
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
- ldr r0, _080898F8
- mov r8, r0
-_080898A2:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _080898A2
-_080898C4:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r3, r10
- adds r2, r0, r3
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bne _080898E4
- movs r0, 0
- strh r0, [r2, 0xE]
-_080898E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080898F4: .4byte gUnknown_03004DE0
-_080898F8: .4byte gUnknown_03004DC0
- thumb_func_end task00_for_dp12
-
- thumb_func_start sub_80898FC
-sub_80898FC: @ 80898FC
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0
- movs r2, 0
- ldr r0, _08089940
- mov r12, r0
-_08089910:
- lsls r0, r1, 1
- adds r3, r0, r6
- lsls r0, r2, 1
- add r0, r12
- movs r7, 0
- ldrsh r0, [r0, r7]
- muls r0, r4
- cmp r0, 0
- bge _08089924
- adds r0, 0xFF
-_08089924:
- asrs r0, 8
- strh r0, [r3]
- adds r0, r2, r5
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _08089910
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089940: .4byte gSineTable
- thumb_func_end sub_80898FC
-
- thumb_func_start sub_8089944
-sub_8089944: @ 8089944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x40]
- mov r8, r0
- ldr r1, [sp, 0x44]
- mov r9, r1
- ldr r0, [sp, 0x48]
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [sp, 0x10]
- lsls r1, 24
- str r1, [sp, 0x14]
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, r3, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl dp12_8087EA4
- ldr r0, _08089A50
- add r0, r9
- str r0, [sp]
- ldr r0, _08089A54
- str r0, [sp, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _08089A58
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08089A5C
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x18]
- bl __divsi3
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4, 0xE]
- mov r1, r8
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- mov r3, r9
- strh r3, [r4, 0x14]
- mov r0, r10
- strh r0, [r4, 0x16]
- ldr r0, _08089A60
- strb r7, [r0, 0x18]
- ldr r0, _08089A64
- movs r1, 0
- strb r1, [r0]
- ldr r4, _08089A68
- ldr r3, [sp, 0xC]
- subs r6, r3, r5
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r4, 0
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- bl sub_80898FC
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _08089A3E
- ldr r1, _08089A6C
- adds r2, r4, r1
- lsls r1, r5, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r1, r3
- adds r3, r0, r2
- adds r1, r2
- adds r2, r4, 0
- adds r5, r6, 0
-_08089A2A:
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _08089A2A
-_08089A3E:
- adds r0, r7, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08089A50: .4byte REG_BG0HOFS
-_08089A54: .4byte 0xa2600001
-_08089A58: .4byte task00_for_dp12
-_08089A5C: .4byte gTasks
-_08089A60: .4byte gUnknown_03004DC0
-_08089A64: .4byte gUnknown_0202FFA4
-_08089A68: .4byte gUnknown_03005060
-_08089A6C: .4byte 0xfffffd80
- thumb_func_end sub_8089944
-
- thumb_func_start sub_8089A70
-sub_8089A70: @ 8089A70
- push {lr}
- ldr r0, _08089A88
- ldrb r1, [r0, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x8]
- movs r0, 0
- movs r1, 0
- bl sub_806AFAC
- pop {r0}
- bx r0
- .align 2, 0
-_08089A88: .4byte gPaletteFade
- thumb_func_end sub_8089A70
-
- thumb_func_start sub_8089A8C
-sub_8089A8C: @ 8089A8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _08089AD0
- movs r0, 0
- strb r0, [r5]
- ldr r0, _08089AD4
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089AD8
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08089AE0
- ldr r4, _08089ADC
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl AppendToList
- b _08089BC8
- .align 2, 0
-_08089AD0: .4byte gUnknown_0202FFA9
-_08089AD4: .4byte gUnknown_03005CE0
-_08089AD8: .4byte gPlayerParty
-_08089ADC: .4byte gUnknown_0202FFAA
-_08089AE0:
- movs r6, 0
- ldr r0, _08089B24
- ldrh r0, [r0]
- mov r8, r0
-_08089AE8:
- movs r4, 0
- adds r7, r6, 0x1
- mov r0, r8
- cmp r0, 0xFF
- beq _08089B48
- ldr r5, _08089B24
-_08089AF4:
- ldr r0, _08089B28
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089B2C
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- cmp r0, r1
- bne _08089B38
- adds r2, r4, 0
- adds r2, 0xA
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08089B30
- ldr r1, _08089B34
- bl AppendToList
- b _08089B48
- .align 2, 0
-_08089B24: .4byte gUnknown_0839F554
-_08089B28: .4byte gUnknown_03005CE0
-_08089B2C: .4byte gPlayerParty
-_08089B30: .4byte gUnknown_0202FFAA
-_08089B34: .4byte gUnknown_0202FFA9
-_08089B38:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0xFF
- bne _08089AF4
-_08089B48:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08089AE8
- ldr r4, _08089BA4
- ldr r5, _08089BA8
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- ldr r6, _08089BAC
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08089B76
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
-_08089B76:
- ldr r0, _08089BB0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r6, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08089BB4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl AppendToList
- b _08089BBE
- .align 2, 0
-_08089BA4: .4byte gUnknown_0202FFAA
-_08089BA8: .4byte gUnknown_0202FFA9
-_08089BAC: .4byte gUnknown_030043C4
-_08089BB0: .4byte gUnknown_03005CE0
-_08089BB4:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl AppendToList
-_08089BBE:
- ldr r0, _08089BD4
- ldr r1, _08089BD8
- movs r2, 0x3
- bl AppendToList
-_08089BC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089BD4: .4byte gUnknown_0202FFAA
-_08089BD8: .4byte gUnknown_0202FFA9
- thumb_func_end sub_8089A8C
-
- thumb_func_start sub_8089BDC
-sub_8089BDC: @ 8089BDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x20]
- ldr r1, [sp, 0x24]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl sub_806D538
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r3, r0, 1
- adds r3, r6, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- str r7, [sp]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- ldr r3, [sp, 0x1C]
- bl PrintMenuItemsReordered
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8089BDC
-
- thumb_func_start sub_8089C50
-sub_8089C50: @ 8089C50
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_8089BDC
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089C50
-
- thumb_func_start sub_8089C7C
-sub_8089C7C: @ 8089C7C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08089CC8
- ldrb r0, [r6]
- lsls r0, 1
- movs r4, 0x12
- subs r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r6]
- ldr r0, _08089CCC
- str r0, [sp]
- ldr r0, _08089CD0
- str r0, [sp, 0x4]
- movs r0, 0x3
- str r0, [sp, 0x8]
- movs r0, 0x13
- adds r1, r4, 0
- movs r2, 0xA
- bl sub_8089BDC
- movs r2, 0x1
- orrs r2, r4
- ldrb r3, [r6]
- str r5, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- bl InitMenu
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089CC8: .4byte gUnknown_0202FFA9
-_08089CCC: .4byte gUnknown_0839F494
-_08089CD0: .4byte gUnknown_0202FFAA
- thumb_func_end sub_8089C7C
-
- thumb_func_start sub_8089CD4
-sub_8089CD4: @ 8089CD4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089D00
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089D84
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08089D04
- cmp r0, 0x2
- beq _08089D60
- b _08089D84
- .align 2, 0
-_08089D00: .4byte gPaletteFade
-_08089D04:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08089D48
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089D4C
- adds r0, r1
- ldr r1, _08089D50
- bl GetMonNickname
- bl sub_8089A8C
- ldr r0, _08089D54
- strb r5, [r0]
- movs r0, 0
- bl sub_8089C7C
- ldr r1, _08089D58
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D5C
- str r1, [r0]
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089D84
- .align 2, 0
-_08089D48: .4byte gUnknown_03005CE0
-_08089D4C: .4byte gPlayerParty
-_08089D50: .4byte gStringVar1
-_08089D54: .4byte gUnknown_0202FFA8
-_08089D58: .4byte gTasks
-_08089D5C: .4byte sub_8089D94
-_08089D60:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08089D8C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D90
- str r1, [r0]
-_08089D84:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089D8C: .4byte gTasks
-_08089D90: .4byte sub_8089E4C
- thumb_func_end sub_8089CD4
-
- thumb_func_start sub_8089D94
-sub_8089D94: @ 8089D94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08089DC8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08089E44
- ldr r2, _08089DCC
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _08089DD4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _08089DD0
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DC8: .4byte gPaletteFade
-_08089DCC: .4byte gMain
-_08089DD0: .4byte gUnknown_0202FFA8
-_08089DD4:
- cmp r1, 0x80
- bne _08089DF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _08089DEC
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DEC: .4byte gUnknown_0202FFA8
-_08089DF0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08089E30
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08089E24
- ldr r2, _08089E28
- ldr r0, _08089E2C
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08089E1A:
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089E44
- .align 2, 0
-_08089E24: .4byte gUnknown_0839F494
-_08089E28: .4byte gUnknown_0202FFAA
-_08089E2C: .4byte gUnknown_0202FFA8
-_08089E30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08089E44
- adds r0, r5, 0
- bl sub_808A918
- adds r0, r5, 0
- bl sub_808B5B4
-_08089E44:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089D94
-
- thumb_func_start sub_8089E4C
-sub_8089E4C: @ 8089E4C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089E78
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08089E72
- ldr r0, _08089E7C
- strb r1, [r0]
- ldr r0, _08089E80
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08089E72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089E78: .4byte gPaletteFade
-_08089E7C: .4byte gUnknown_03005CE0
-_08089E80: .4byte sub_805469C
- thumb_func_end sub_8089E4C
-
- thumb_func_start sub_8089E84
-sub_8089E84: @ 8089E84
- push {lr}
- ldr r0, _08089EAC
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089EB0
- adds r0, r1
- ldr r1, _08089EB4
- bl GetMonNickname
- bl sub_8089A8C
- ldr r1, _08089EB8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0
- bl sub_8089C7C
- pop {r0}
- bx r0
- .align 2, 0
-_08089EAC: .4byte gUnknown_03005CE0
-_08089EB0: .4byte gPlayerParty
-_08089EB4: .4byte gStringVar1
-_08089EB8: .4byte gUnknown_0202FFA8
- thumb_func_end sub_8089E84
-
- thumb_func_start sub_8089EBC
-sub_8089EBC: @ 8089EBC
- push {r4,r5,lr}
- ldr r4, _08089EC4
- ldr r5, _08089EC8
- b _08089ED8
- .align 2, 0
-_08089EC4: .4byte 0x0201b260
-_08089EC8: .4byte gUnknown_020384F0
-_08089ECC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08089F04
-_08089ED8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08089ECC
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r1, _08089F0C
- ldrb r0, [r5]
- strb r0, [r1]
- bl sub_8089E84
- ldr r0, _08089F10
- bl SetMainCallback2
-_08089F04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089F0C: .4byte gUnknown_03005CE0
-_08089F10: .4byte sub_806AEDC
- thumb_func_end sub_8089EBC
-
- thumb_func_start sub_8089F14
-sub_8089F14: @ 8089F14
- push {lr}
- ldr r2, _08089F38
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08089F3C
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08089F40
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08089F38: .4byte gPaletteFade
-_08089F3C: .4byte sub_8089D94
-_08089F40: .4byte sub_8089EBC
- thumb_func_end sub_8089F14
-
- thumb_func_start sub_8089F44
-sub_8089F44: @ 8089F44
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08089FAC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089FA2
- ldr r2, _08089FB0
- ldr r1, _08089FB4
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08089FB8
- ldr r1, _08089FBC
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08089FC0
- ldr r1, _08089FC4
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08089FC8
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08089FA2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FAC: .4byte gPaletteFade
-_08089FB0: .4byte gSprites
-_08089FB4: .4byte gTasks
-_08089FB8: .4byte 0x0201b000
-_08089FBC: .4byte 0x00000262
-_08089FC0: .4byte gPlayerParty
-_08089FC4: .4byte gPlayerPartyCount
-_08089FC8: .4byte sub_8089F14
- thumb_func_end sub_8089F44
-
- thumb_func_start sub_8089FCC
-sub_8089FCC: @ 8089FCC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08089FFC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A000
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FFC: .4byte gTasks
-_0808A000: .4byte sub_8089F44
- thumb_func_end sub_8089FCC
-
- thumb_func_start sub_808A004
-sub_808A004: @ 808A004
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A024
- ldr r2, _0808A028
- bl SetTaskFuncWithFollowupFunc
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_0808A024: .4byte sub_806CA60
-_0808A028: .4byte sub_8089CD4
- thumb_func_end sub_808A004
-
- thumb_func_start sub_808A02C
-sub_808A02C: @ 808A02C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r0, _0808A054
- ldr r1, _0808A058
- str r1, [r0, 0xC]
- ldr r1, _0808A05C
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_808A004
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A054: .4byte 0x02001000
-_0808A058: .4byte sub_806CD5C
-_0808A05C: .4byte 0x0001a272
- thumb_func_end sub_808A02C
-
- thumb_func_start sub_808A060
-sub_808A060: @ 808A060
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A0D0
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0808A086
- ldr r4, _0808A0D4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0808A086
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A086:
- ldr r0, _0808A0D0
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0808A0A4
- ldr r4, _0808A0D4
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _0808A0A4
- movs r0, 0x1
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A0A4:
- ldr r0, _0808A0D0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A0E0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A0D8
- ldr r2, _0808A0DC
- ldr r0, _0808A0D4
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A0F6
- .align 2, 0
-_0808A0D0: .4byte gMain
-_0808A0D4: .4byte gUnknown_0202FFA8
-_0808A0D8: .4byte gUnknown_0839F578
-_0808A0DC: .4byte gUnknown_0839F494
-_0808A0E0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A0F6
- ldr r1, _0808A0FC
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl sub_808A938
-_0808A0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A0FC: .4byte gUnknown_0839F578
- thumb_func_end sub_808A060
-
- thumb_func_start sub_808A100
-sub_808A100: @ 808A100
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A130
- ldr r2, _0808A134
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- movs r0, 0xD
- movs r1, 0x2
- bl sub_806D538
- ldr r1, _0808A138
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A13C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A130: .4byte gUnknown_0839F578
-_0808A134: .4byte gUnknown_0839F494
-_0808A138: .4byte gTasks
-_0808A13C: .4byte sub_808A060
- thumb_func_end sub_808A100
-
- thumb_func_start sub_808A140
-sub_808A140: @ 808A140
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A174
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A178
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A17C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A174: .4byte gUnknown_0202FFA8
-_0808A178: .4byte gTasks
-_0808A17C: .4byte sub_808A100
- thumb_func_end sub_808A140
-
- thumb_func_start sub_808A180
-sub_808A180: @ 808A180
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A1D0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A1CA
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A1D4
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A1D8
- adds r1, r0
- ldr r2, _0808A1DC
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808A1CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A1D0: .4byte gPaletteFade
-_0808A1D4: .4byte gPlayerParty
-_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
-_0808A1DC: .4byte sub_808A520
- thumb_func_end sub_808A180
-
- thumb_func_start sub_808A1E0
-sub_808A1E0: @ 808A1E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A21C
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808A216
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DF60
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A220
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A224
- str r1, [r0]
-_0808A216:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A21C: .4byte gUnknown_0202E8F6
-_0808A220: .4byte gTasks
-_0808A224: .4byte sub_8089CD4
- thumb_func_end sub_808A1E0
-
- thumb_func_start sub_808A228
-sub_808A228: @ 808A228
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A268
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A278
- ldr r0, _0808A26C
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808A278
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A270
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A274
- str r1, [r0]
- b _0808A29A
- .align 2, 0
-_0808A268: .4byte word_203855E
-_0808A26C: .4byte gUnknown_0202E8F4
-_0808A270: .4byte gTasks
-_0808A274: .4byte sub_808A180
-_0808A278:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0808A2A4
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808A2A8
- str r0, [r1]
-_0808A29A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2A4: .4byte gTasks
-_0808A2A8: .4byte sub_8089CD4
- thumb_func_end sub_808A228
-
- thumb_func_start sub_808A2AC
-sub_808A2AC: @ 808A2AC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0808A2D0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A2CA
- ldr r0, _0808A2D4
- ldrh r1, [r0]
- ldr r2, _0808A2D8
- adds r0, r3, 0
- bl sub_806E964
-_0808A2CA:
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2D0: .4byte gPaletteFade
-_0808A2D4: .4byte word_203855E
-_0808A2D8: .4byte sub_808A228
- thumb_func_end sub_808A2AC
-
- thumb_func_start sub_808A2DC
-sub_808A2DC: @ 808A2DC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A324
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A328
- adds r1, r0
- ldr r2, _0808A32C
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A324: .4byte gPlayerParty
-_0808A328: .4byte gSaveBlock1 + 0x2B4C
-_0808A32C: .4byte sub_808A520
- thumb_func_end sub_808A2DC
-
- thumb_func_start sub_808A330
-sub_808A330: @ 808A330
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A344
- ldrh r1, [r1]
- ldr r2, _0808A348
- bl sub_806E964
- pop {r0}
- bx r0
- .align 2, 0
-_0808A344: .4byte word_203855E
-_0808A348: .4byte sub_808A2DC
- thumb_func_end sub_808A330
-
- thumb_func_start sub_808A34C
-sub_808A34C: @ 808A34C
- push {lr}
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_808A34C
-
- thumb_func_start sub_808A358
-sub_808A358: @ 808A358
- push {r4,lr}
- ldr r4, _0808A360
- b _0808A370
- .align 2, 0
-_0808A360: .4byte 0x0201b260
-_0808A364:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A394
-_0808A370:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A364
- ldrb r0, [r4]
- ldr r1, _0808A39C
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A3A0
- bl SetMainCallback2
-_0808A394:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A39C: .4byte gUnknown_03005CE0
-_0808A3A0: .4byte sub_806AEDC
- thumb_func_end sub_808A358
-
- thumb_func_start sub_808A3A4
-sub_808A3A4: @ 808A3A4
- push {r4,r5,lr}
- ldr r4, _0808A3D8
- adds r5, r4, 0x2
-_0808A3AA:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3E4
- ldrb r0, [r4]
- ldr r1, _0808A3DC
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- movs r0, 0x3
- strb r0, [r5]
- bl sub_8089E84
- ldr r0, _0808A3E0
- bl SetMainCallback2
- b _0808A3F0
- .align 2, 0
-_0808A3D8: .4byte 0x0201b260
-_0808A3DC: .4byte gUnknown_03005CE0
-_0808A3E0: .4byte sub_806AEDC
-_0808A3E4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3AA
-_0808A3F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808A3A4
-
- thumb_func_start sub_808A3F8
-sub_808A3F8: @ 808A3F8
- push {r4,lr}
- ldr r0, _0808A460
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A47E
- ldr r0, _0808A464
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0808A468
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BD58
- ldr r0, _0808A46C
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_806C994
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BF74
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A470
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 24
- cmp r0, 0
- bne _0808A478
- ldr r0, _0808A474
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A460: .4byte word_203855E
-_0808A464: .4byte sub_808A330
-_0808A468: .4byte gPaletteFade
-_0808A46C: .4byte gUnknown_03005CE0
-_0808A470: .4byte gPlayerParty
-_0808A474: .4byte sub_808A34C
-_0808A478:
- adds r0, r4, 0
- bl DestroyTask
-_0808A47E:
- ldr r2, _0808A4A4
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A4A8
- ldrh r0, [r0]
- cmp r0, 0
- beq _0808A4B4
- ldr r2, _0808A4AC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808A4B0
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A4A4: .4byte gPaletteFade
-_0808A4A8: .4byte word_203855E
-_0808A4AC: .4byte sub_808A2AC
-_0808A4B0: .4byte sub_808A358
-_0808A4B4:
- ldr r2, _0808A4CC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _0808A4D0
- bl SetMainCallback2
-_0808A4C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A4CC: .4byte sub_8089D94
-_0808A4D0: .4byte sub_808A3A4
- thumb_func_end sub_808A3F8
-
- thumb_func_start sub_808A4D4
-sub_808A4D4: @ 808A4D4
- push {r4,lr}
- ldr r4, _0808A4DC
- b _0808A4EC
- .align 2, 0
-_0808A4DC: .4byte 0x0201b260
-_0808A4E0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A510
-_0808A4EC:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A4E0
- ldrb r0, [r4]
- ldr r1, _0808A518
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A51C
- bl SetMainCallback2
-_0808A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A518: .4byte gUnknown_03005CE0
-_0808A51C: .4byte sub_806AEDC
- thumb_func_end sub_808A4D4
-
- thumb_func_start sub_808A520
-sub_808A520: @ 808A520
- push {r4-r7,lr}
- ldr r2, _0808A584
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A588
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808A59C
- ldr r7, _0808A58C
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808A542
- movs r1, 0x1
- bl sub_80A9538
-_0808A542:
- ldr r6, _0808A590
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808A594
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_80A9424
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r2, _0808A598
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- b _0808A5A8
- .align 2, 0
-_0808A584: .4byte gPaletteFade
-_0808A588: .4byte gScriptResult
-_0808A58C: .4byte gUnknown_0202E8F8
-_0808A590: .4byte gUnknown_03005CE0
-_0808A594: .4byte gPlayerParty
-_0808A598: .4byte sub_8089CD4
-_0808A59C:
- ldr r2, _0808A5B4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
-_0808A5A8:
- ldr r0, _0808A5B8
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5B4: .4byte sub_808A5BC
-_0808A5B8: .4byte sub_808A4D4
- thumb_func_end sub_808A520
-
- thumb_func_start sub_808A5BC
-sub_808A5BC: @ 808A5BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A5F0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A5EA
- ldr r0, _0808A5F4
- ldrb r0, [r0]
- ldr r1, _0808A5F8
- ldrh r1, [r1]
- movs r2, 0
- bl sub_806EBF0
- ldr r1, _0808A5FC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A600
- str r1, [r0]
-_0808A5EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5F0: .4byte gPaletteFade
-_0808A5F4: .4byte gUnknown_03005CE0
-_0808A5F8: .4byte word_203855E
-_0808A5FC: .4byte gTasks
-_0808A600: .4byte sub_808A1E0
- thumb_func_end sub_808A5BC
-
- thumb_func_start sub_808A604
-sub_808A604: @ 808A604
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A628
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A622
- ldr r0, _0808A62C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808A622:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A628: .4byte gPaletteFade
-_0808A62C: .4byte sub_80A61D0
- thumb_func_end sub_808A604
-
- thumb_func_start sub_808A630
-sub_808A630: @ 808A630
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808A66C
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A670
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A674
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A66C: .4byte gUnknown_0202E8F5
-_0808A670: .4byte gTasks
-_0808A674: .4byte sub_808A604
- thumb_func_end sub_808A630
-
- thumb_func_start sub_808A678
-sub_808A678: @ 808A678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808A8D4
- pop {r0}
- bx r0
- thumb_func_end sub_808A678
-
- thumb_func_start sub_808A688
-sub_808A688: @ 808A688
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6B4
- adds r0, r4, 0
- bl sub_806ECE8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6B4: .4byte sub_808A678
- thumb_func_end sub_808A688
-
- thumb_func_start sub_808A6B8
-sub_808A6B8: @ 808A6B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6E4
- adds r0, r4, 0
- bl sub_806EE08
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6E4: .4byte sub_808A678
- thumb_func_end sub_808A6B8
-
- thumb_func_start sub_808A6E8
-sub_808A6E8: @ 808A6E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A728
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A72C
- ldr r2, _0808A730
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- ldr r1, _0808A734
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A738
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A728: .4byte gUnknown_0202FFA8
-_0808A72C: .4byte gUnknown_0839F584
-_0808A730: .4byte gUnknown_0839F494
-_0808A734: .4byte gTasks
-_0808A738: .4byte sub_808A73C
- thumb_func_end sub_808A6E8
-
- thumb_func_start sub_808A73C
-sub_808A73C: @ 808A73C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A764
- ldrh r0, [r0, 0x30]
- cmp r0, 0x40
- bne _0808A77A
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A768
- ldrb r0, [r4]
- cmp r0, 0
- bne _0808A770
- ldr r0, _0808A76C
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- b _0808A774
- .align 2, 0
-_0808A764: .4byte gMain
-_0808A768: .4byte gUnknown_0202FFA8
-_0808A76C: .4byte gUnknown_0839F584
-_0808A770:
- movs r0, 0x1
- negs r0, r0
-_0808A774:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A77A:
- ldr r0, _0808A7A0
- ldrh r0, [r0, 0x30]
- cmp r0, 0x80
- bne _0808A7B4
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A7A4
- ldrb r0, [r4]
- ldr r1, _0808A7A8
- ldrb r2, [r1]
- subs r1, r2, 0x1
- cmp r0, r1
- bne _0808A7AC
- movs r0, 0x1
- subs r0, r2
- lsls r0, 24
- asrs r0, 24
- b _0808A7AE
- .align 2, 0
-_0808A7A0: .4byte gMain
-_0808A7A4: .4byte gUnknown_0202FFA8
-_0808A7A8: .4byte gUnknown_0839F584
-_0808A7AC:
- movs r0, 0x1
-_0808A7AE:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A7B4:
- ldr r0, _0808A7E0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A7F0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A7E4
- ldr r2, _0808A7E8
- ldr r0, _0808A7EC
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A806
- .align 2, 0
-_0808A7E0: .4byte gMain
-_0808A7E4: .4byte gUnknown_0839F584
-_0808A7E8: .4byte gUnknown_0839F494
-_0808A7EC: .4byte gUnknown_0202FFA8
-_0808A7F0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A806
- ldr r1, _0808A80C
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl sub_808A918
-_0808A806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A80C: .4byte gUnknown_0839F584
- thumb_func_end sub_808A73C
-
- thumb_func_start sub_808A810
-sub_808A810: @ 808A810
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A840
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A844
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A840: .4byte gTasks
-_0808A844: .4byte sub_808A848
- thumb_func_end sub_808A810
-
- thumb_func_start sub_808A848
-sub_808A848: @ 808A848
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A898
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A890
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A89C
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _0808A8A0
- adds r0, r1
- ldr r1, _0808A8A4
- movs r2, 0x1
- bl sub_80F890C
-_0808A890:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A898: .4byte gPaletteFade
-_0808A89C: .4byte gPlayerParty
-_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
-_0808A8A4: .4byte sub_808A8A8
- thumb_func_end sub_808A848
-
- thumb_func_start sub_808A8A8
-sub_808A8A8: @ 808A8A8
- push {lr}
- ldr r1, _0808A8C4
- ldr r0, _0808A8C8
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0808A8CC
- ldr r1, _0808A8D0
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- bl sub_8089F14
- pop {r0}
- bx r0
- .align 2, 0
-_0808A8C4: .4byte gUnknown_020384F0
-_0808A8C8: .4byte gUnknown_03005CE0
-_0808A8CC: .4byte 0x0201b000
-_0808A8D0: .4byte 0x00000262
- thumb_func_end sub_808A8A8
-
- thumb_func_start sub_808A8D4
-sub_808A8D4: @ 808A8D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A90C
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A910
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A914
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A90C: .4byte gUnknown_0202FFA8
-_0808A910: .4byte gTasks
-_0808A914: .4byte sub_8089CD4
- thumb_func_end sub_808A8D4
-
- thumb_func_start sub_808A918
-sub_808A918: @ 808A918
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_808A8D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808A918
-
- thumb_func_start sub_808A938
-sub_808A938: @ 808A938
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808A978
- ldrb r0, [r0]
- bl sub_8089C7C
- ldr r1, _0808A97C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A980
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A978: .4byte gUnknown_0202FFA8
-_0808A97C: .4byte gTasks
-_0808A980: .4byte sub_8089D94
- thumb_func_end sub_808A938
-
- thumb_func_start sub_808A984
-sub_808A984: @ 808A984
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0808A9D0
- adds r4, r6, r7
- bl sub_8072DEC
- ldr r1, _0808A9D4
- ldr r0, _0808A9D8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0xA
- strh r0, [r4, 0x16]
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A9DC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0808AABA
- movs r0, 0x9
- b _0808AAB2
- .align 2, 0
-_0808A9D0: .4byte gUnknown_03004B28
-_0808A9D4: .4byte gUnknown_0202FFAA
-_0808A9D8: .4byte gUnknown_0202FFA8
-_0808A9DC:
- ldrh r1, [r4, 0x16]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- bgt _0808AA2C
- ldr r2, _0808AA20
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AA2C
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808AA24
- movs r1, 0x1
- bl sub_806E834
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0808AA28
- str r1, [r0]
- b _0808AADA
- .align 2, 0
-_0808AA20: .4byte 0x00000807
-_0808AA24: .4byte gOtherText_CantBeUsedBadge
-_0808AA28: .4byte sub_808AAF0
-_0808AA2C:
- ldr r1, _0808AA78
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AA90
- ldr r1, _0808AA7C
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0808AA88
- ldr r1, _0808AA80
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808AA84
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0808AADA
- .align 2, 0
-_0808AA78: .4byte gUnknown_0839F58C
-_0808AA7C: .4byte gUnknown_0202FFA8
-_0808AA80: .4byte gTasks
-_0808AA84: .4byte sub_808AB34
-_0808AA88:
- adds r0, r5, 0
- bl unref_sub_8133D28
- b _0808AADA
-_0808AA90:
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0808AABA
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808AABA
- movs r0, 0x8
-_0808AAB2:
- movs r1, 0
- bl sub_806D538
- b _0808AACC
-_0808AABA:
- ldr r0, _0808AAE4
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x4]
- movs r1, 0
- bl sub_806D538
-_0808AACC:
- ldr r0, _0808AAE8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808AAEC
- str r0, [r1]
-_0808AADA:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AAE4: .4byte gUnknown_0839F58C
-_0808AAE8: .4byte gTasks
-_0808AAEC: .4byte sub_808ABF4
- thumb_func_end sub_808A984
-
- thumb_func_start sub_808AAF0
-sub_808AAF0: @ 808AAF0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB2C
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808AB24
- ldr r0, _0808AB30
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AB12
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AB24
-_0808AB12:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_808A918
-_0808AB24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB2C: .4byte gUnknown_0202E8F6
-_0808AB30: .4byte gMain
- thumb_func_end sub_808AAF0
-
- thumb_func_start sub_808AB34
-sub_808AB34: @ 808AB34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB6C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808AB84
- ldr r0, _0808AB70
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bne _0808AB62
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808AB78
-_0808AB62:
- ldr r0, _0808AB74
- bl SetMainCallback2
- b _0808AB7E
- .align 2, 0
-_0808AB6C: .4byte gPaletteFade
-_0808AB70: .4byte gTasks
-_0808AB74: .4byte c2_exit_to_overworld_2_switch
-_0808AB78:
- ldr r0, _0808AB8C
- bl SetMainCallback2
-_0808AB7E:
- adds r0, r4, 0
- bl DestroyTask
-_0808AB84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB8C: .4byte sub_80FC074
- thumb_func_end sub_808AB34
-
- thumb_func_start sub_808AB90
-sub_808AB90: @ 808AB90
- push {lr}
- bl pal_fill_black
- ldr r0, _0808ABA4
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABA4: .4byte sub_808ABA8
- thumb_func_end sub_808AB90
-
- thumb_func_start sub_808ABA8
-sub_808ABA8: @ 808ABA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808ABDE
- ldr r0, _0808ABE4
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ABE8
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0808ABEC
- str r0, [r1]
- ldr r0, _0808ABF0
- ldr r0, [r0]
- bl _call_via_r0
- adds r0, r4, 0
- bl DestroyTask
-_0808ABDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABE4: .4byte gUnknown_03005CE0
-_0808ABE8: .4byte gPlayerParty
-_0808ABEC: .4byte gUnknown_0202FF84
-_0808ABF0: .4byte gUnknown_03005CE4
- thumb_func_end sub_808ABA8
-
- thumb_func_start sub_808ABF4
-sub_808ABF4: @ 808ABF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AC28
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AC0E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AC20
-_0808AC0E:
- movs r0, 0x1
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_808A918
-_0808AC20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC28: .4byte gMain
- thumb_func_end sub_808ABF4
-
- thumb_func_start sub_808AC2C
-sub_808AC2C: @ 808AC2C
- push {lr}
- ldr r0, _0808AC40
- ldr r1, _0808AC44
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x9
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC40: .4byte gUnknown_0202FF84
-_0808AC44: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC2C
-
- thumb_func_start sub_808AC48
-sub_808AC48: @ 808AC48
- push {lr}
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- ldr r1, _0808AC74
- ldr r0, _0808AC78
- str r0, [r1]
- ldr r1, _0808AC7C
- ldr r0, _0808AC80
- str r0, [r1]
- movs r0, 0x1
- b _0808AC86
- .align 2, 0
-_0808AC74: .4byte gUnknown_0300485C
-_0808AC78: .4byte sub_808AB90
-_0808AC7C: .4byte gUnknown_03005CE4
-_0808AC80: .4byte sub_808AC2C
-_0808AC84:
- movs r0, 0
-_0808AC86:
- pop {r1}
- bx r1
- thumb_func_end sub_808AC48
-
- thumb_func_start sub_808AC8C
-sub_808AC8C: @ 808AC8C
- push {lr}
- ldr r0, _0808ACA0
- ldr r1, _0808ACA4
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x1F
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ACA0: .4byte gUnknown_0202FF84
-_0808ACA4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC8C
-
- thumb_func_start sub_808ACA8
-sub_808ACA8: @ 808ACA8
- push {lr}
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808ACD0
- ldr r1, _0808ACC0
- ldr r0, _0808ACC4
- str r0, [r1]
- ldr r1, _0808ACC8
- ldr r0, _0808ACCC
- b _0808ACF2
- .align 2, 0
-_0808ACC0: .4byte gUnknown_0300485C
-_0808ACC4: .4byte sub_808AB90
-_0808ACC8: .4byte gUnknown_03005CE4
-_0808ACCC: .4byte sub_81475C4
-_0808ACD0:
- ldr r0, _0808ACE4
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808ACE8
- movs r0, 0
- b _0808ACF6
- .align 2, 0
-_0808ACE4: .4byte gMapHeader
-_0808ACE8:
- ldr r1, _0808ACFC
- ldr r0, _0808AD00
- str r0, [r1]
- ldr r1, _0808AD04
- ldr r0, _0808AD08
-_0808ACF2:
- str r0, [r1]
- movs r0, 0x1
-_0808ACF6:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ACFC: .4byte gUnknown_0300485C
-_0808AD00: .4byte sub_808AB90
-_0808AD04: .4byte gUnknown_03005CE4
-_0808AD08: .4byte sub_808AC8C
- thumb_func_end sub_808ACA8
-
- thumb_func_start sub_808AD0C
-sub_808AD0C: @ 808AD0C
- push {r4,lr}
- ldr r4, _0808AD14
- b _0808AD24
- .align 2, 0
-_0808AD14: .4byte 0x0201b260
-_0808AD18:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AD48
-_0808AD24:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AD18
- ldrb r0, [r4]
- ldr r1, _0808AD50
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808AD54
- bl SetMainCallback2
-_0808AD48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD50: .4byte gUnknown_03005CE0
-_0808AD54: .4byte sub_806AEDC
- thumb_func_end sub_808AD0C
-
- thumb_func_start sub_808AD58
-sub_808AD58: @ 808AD58
- push {lr}
- ldr r2, _0808AD7C
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0808AD80
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- ldr r0, _0808AD84
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD7C: .4byte gPaletteFade
-_0808AD80: .4byte sub_8089CD4
-_0808AD84: .4byte sub_808AD0C
- thumb_func_end sub_808AD58
-
- thumb_func_start unref_sub_808AD88
-unref_sub_808AD88: @ 808AD88
- push {lr}
- ldr r0, _0808ADA4
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ADA8
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADA4: .4byte gUnknown_03005CE0
-_0808ADA8: .4byte gPlayerParty
- thumb_func_end unref_sub_808AD88
-
- thumb_func_start sub_808ADAC
-sub_808ADAC: @ 808ADAC
- push {lr}
- ldr r0, _0808ADC0
- ldr r1, _0808ADC4
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ADC0: .4byte gUnknown_0202FF84
-_0808ADC4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808ADAC
-
- thumb_func_start sub_808ADC8
-sub_808ADC8: @ 808ADC8
- push {lr}
- bl sub_8068F18
- ldr r1, _0808ADE0
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _0808ADE4
- movs r0, 0
- b _0808ADF2
- .align 2, 0
-_0808ADE0: .4byte gUnknown_0202FF84
-_0808ADE4:
- ldr r1, _0808ADF8
- ldr r0, _0808ADFC
- str r0, [r1]
- ldr r1, _0808AE00
- ldr r0, _0808AE04
- str r0, [r1]
- movs r0, 0x1
-_0808ADF2:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADF8: .4byte gUnknown_0300485C
-_0808ADFC: .4byte sub_808AB90
-_0808AE00: .4byte gUnknown_03005CE4
-_0808AE04: .4byte sub_808ADAC
- thumb_func_end sub_808ADC8
-
- thumb_func_start sub_808AE08
-sub_808AE08: @ 808AE08
- push {lr}
- ldr r0, _0808AE1C
- ldr r1, _0808AE20
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2B
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AE1C: .4byte gUnknown_0202FF84
-_0808AE20: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AE08
-
- thumb_func_start hm_prepare_waterfall
-hm_prepare_waterfall: @ 808AE24
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- ldr r1, _0808AE70
- ldr r0, _0808AE74
- str r0, [r1]
- ldr r1, _0808AE78
- ldr r0, _0808AE7C
- str r0, [r1]
- movs r0, 0x1
- b _0808AE82
- .align 2, 0
-_0808AE70: .4byte gUnknown_0300485C
-_0808AE74: .4byte sub_808AB90
-_0808AE78: .4byte gUnknown_03005CE4
-_0808AE7C: .4byte sub_808AE08
-_0808AE80:
- movs r0, 0
-_0808AE82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end hm_prepare_waterfall
-
- thumb_func_start sub_808AE8C
-sub_808AE8C: @ 808AE8C
- push {r4-r6,lr}
- ldr r0, _0808AED8
- ldrb r0, [r0]
- subs r0, 0x21
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_0808AE9A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AEDC
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF10
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AECE
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8040374
- cmp r0, 0
- bne _0808AEE0
-_0808AECE:
- adds r0, r5, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AED8: .4byte word_203855E
-_0808AEDC: .4byte gPlayerParty
-_0808AEE0:
- ldr r0, _0808AF04
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0808AF08
- adds r0, r5, 0
- movs r1, 0xA8
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AF04: .4byte word_203855E
-_0808AF08:
- adds r0, r5, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_0808AF10:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AE9A
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_808AE8C
-
- thumb_func_start sub_808AF20
-sub_808AF20: @ 808AF20
- push {r4,r5,lr}
- movs r5, 0
-_0808AF24:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AF78
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF66
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AF58
- ldr r0, _0808AF7C
- ldrh r2, [r0]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- cmp r0, 0
- bne _0808AF66
-_0808AF58:
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r5, 0
- movs r1, 0
- bl sub_806BC3C
-_0808AF66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AF24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AF78: .4byte gPlayerParty
-_0808AF7C: .4byte word_203855E
- thumb_func_end sub_808AF20
-
- thumb_func_start sub_808AF80
-sub_808AF80: @ 808AF80
- push {r4,r5,lr}
- ldr r5, _0808AFB0
-_0808AF84:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B00C
- ldr r0, _0808AFB4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808AFC6
- ldr r0, _0808AFB8
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AFBC
- cmp r0, 0x2
- beq _0808AFC2
- b _0808AFC6
- .align 2, 0
-_0808AFB0: .4byte 0x0201b260
-_0808AFB4: .4byte gUnknown_02038561
-_0808AFB8: .4byte word_203855E
-_0808AFBC:
- bl sub_808AE8C
- b _0808AFC6
-_0808AFC2:
- bl sub_808AF20
-_0808AFC6:
- ldr r4, _0808B000
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0808AFE2
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B004
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0808AFE6
-_0808AFE2:
- movs r0, 0
- strb r0, [r4]
-_0808AFE6:
- ldrb r0, [r5]
- ldr r1, _0808B000
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B008
- bl SetMainCallback2
- b _0808B018
- .align 2, 0
-_0808B000: .4byte gUnknown_03005CE0
-_0808B004: .4byte gPlayerParty
-_0808B008: .4byte sub_806AEDC
-_0808B00C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AF84
-_0808B018:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808AF80
-
- thumb_func_start sub_808B020
-sub_808B020: @ 808B020
- push {lr}
- ldr r2, _0808B040
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808B044
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B0A0
- cmp r0, 0x1
- bgt _0808B048
- cmp r0, 0
- beq _0808B052
- b _0808B0AC
- .align 2, 0
-_0808B040: .4byte gPaletteFade
-_0808B044: .4byte gUnknown_02038561
-_0808B048:
- cmp r0, 0x3
- beq _0808B0A0
- cmp r0, 0x4
- beq _0808B08C
- b _0808B0AC
-_0808B052:
- ldr r0, _0808B070
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B078
- ldr r2, _0808B074
- movs r0, 0
- movs r1, 0
- movs r3, 0x14
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B070: .4byte word_203855E
-_0808B074: .4byte sub_808B0C0
-_0808B078:
- ldr r2, _0808B088
- movs r0, 0
- movs r1, 0
- movs r3, 0x3
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B088: .4byte sub_808B0C0
-_0808B08C:
- ldr r2, _0808B09C
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B09C: .4byte sub_808B1EC
-_0808B0A0:
- ldr r2, _0808B0B8
- movs r0, 0
- movs r1, 0
- movs r3, 0x4
- bl sub_806AF4C
-_0808B0AC:
- ldr r0, _0808B0BC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B0B8: .4byte sub_808B0C0
-_0808B0BC: .4byte sub_808AF80
- thumb_func_end sub_808B020
-
- thumb_func_start sub_808B0C0
-sub_808B0C0: @ 808B0C0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B0EC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0808B1CE
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _0808B0F0
- cmp r0, 0x2
- beq _0808B184
- b _0808B1CE
- .align 2, 0
-_0808B0EC: .4byte gPaletteFade
-_0808B0F0:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B118
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B11C
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0808B120
- movs r0, 0x20
- bl PlaySE
- b _0808B1CE
- .align 2, 0
-_0808B118: .4byte gUnknown_03005CE0
-_0808B11C: .4byte gPlayerParty
-_0808B120:
- bl sub_806D5A4
- ldr r5, _0808B16C
- ldrb r0, [r5]
- cmp r0, 0
- bne _0808B13C
- ldr r3, _0808B170
- ldr r0, _0808B174
- ldrh r1, [r0]
- ldr r2, _0808B178
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B13C:
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _0808B154
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0808B174
- ldrh r1, [r0]
- ldr r2, _0808B17C
- adds r0, r4, 0
- bl sub_806E964
-_0808B154:
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _0808B1CE
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808B180
- adds r0, r4, 0
- bl sub_806EC44
- b _0808B1CE
- .align 2, 0
-_0808B16C: .4byte gUnknown_02038561
-_0808B170: .4byte gUnknown_03004AE4
-_0808B174: .4byte word_203855E
-_0808B178: .4byte sub_808B224
-_0808B17C: .4byte sub_808B2EC
-_0808B180: .4byte sub_808B2B4
-_0808B184:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B1D8
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _0808B1DC
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _0808B1BA
- ldr r0, _0808B1E0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E4
- str r0, [r1]
-_0808B1BA:
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0808B1CE
- ldr r0, _0808B1E0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E8
- str r0, [r1]
-_0808B1CE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B1D8: .4byte gUnknown_03005CE0
-_0808B1DC: .4byte gUnknown_02038561
-_0808B1E0: .4byte gTasks
-_0808B1E4: .4byte sub_808B25C
-_0808B1E8: .4byte sub_808B2B4
- thumb_func_end sub_808B0C0
-
- thumb_func_start sub_808B1EC
-sub_808B1EC: @ 808B1EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B214
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B20E
- ldr r3, _0808B218
- ldr r0, _0808B21C
- ldrh r1, [r0]
- ldr r2, _0808B220
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B214: .4byte gPaletteFade
-_0808B218: .4byte gUnknown_03004AE4
-_0808B21C: .4byte word_203855E
-_0808B220: .4byte sub_808B224
- thumb_func_end sub_808B1EC
-
- thumb_func_start sub_808B224
-sub_808B224: @ 808B224
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B254
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B258
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B254: .4byte gTasks
-_0808B258: .4byte sub_808B25C
- thumb_func_end sub_808B224
-
- thumb_func_start sub_808B25C
-sub_808B25C: @ 808B25C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B280
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B27A
- ldr r0, _0808B284
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B27A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B280: .4byte gPaletteFade
-_0808B284: .4byte sub_80A5B40
- thumb_func_end sub_808B25C
-
- thumb_func_start sub_808B288
-sub_808B288: @ 808B288
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B2AC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B2A6
- ldr r0, _0808B2B0
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B2A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2AC: .4byte gPaletteFade
-_0808B2B0: .4byte sub_813B6F8
- thumb_func_end sub_808B288
-
- thumb_func_start sub_808B2B4
-sub_808B2B4: @ 808B2B4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B2E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B2E8
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2E4: .4byte gTasks
-_0808B2E8: .4byte sub_808B288
- thumb_func_end sub_808B2B4
-
- thumb_func_start sub_808B2EC
-sub_808B2EC: @ 808B2EC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B31C
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808B328
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B320
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B324
- str r1, [r0]
- b _0808B32E
- .align 2, 0
-_0808B31C: .4byte gUnknown_0202E8F4
-_0808B320: .4byte gTasks
-_0808B324: .4byte sub_808B338
-_0808B328:
- adds r0, r4, 0
- bl sub_808B224
-_0808B32E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808B2EC
-
- thumb_func_start sub_808B338
-sub_808B338: @ 808B338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808B38C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B384
- adds r0, r5, 0
- bl sub_806CA38
- ldr r1, _0808B390
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B394
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808B398
- adds r1, r0
- ldr r2, _0808B39C
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808B384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B38C: .4byte gPaletteFade
-_0808B390: .4byte gUnknown_03005CE0
-_0808B394: .4byte gPlayerParty
-_0808B398: .4byte gSaveBlock1 + 0x2B4C
-_0808B39C: .4byte sub_808B3EC
- thumb_func_end sub_808B338
-
- thumb_func_start sub_808B3A0
-sub_808B3A0: @ 808B3A0
- push {r4,lr}
- ldr r4, _0808B3A8
- b _0808B3B8
- .align 2, 0
-_0808B3A8: .4byte 0x0201b260
-_0808B3AC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B3DC
-_0808B3B8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B3AC
- ldrb r0, [r4]
- ldr r1, _0808B3E4
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B3E8
- bl SetMainCallback2
-_0808B3DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B3E4: .4byte gUnknown_03005CE0
-_0808B3E8: .4byte sub_806AEDC
- thumb_func_end sub_808B3A0
-
- thumb_func_start sub_808B3EC
-sub_808B3EC: @ 808B3EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0808B464
- mov r8, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x80
- orrs r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B468
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808B480
- ldr r7, _0808B46C
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808B416
- movs r1, 0x1
- bl sub_80A9538
-_0808B416:
- ldr r6, _0808B470
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808B474
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_80A9424
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r0, _0808B478
- movs r1, 0x5
- bl CreateTask
- mov r0, r8
- ldrb r1, [r0, 0x8]
- movs r0, 0x7F
- ands r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B47C
- b _0808B48E
- .align 2, 0
-_0808B464: .4byte gPaletteFade
-_0808B468: .4byte gScriptResult
-_0808B46C: .4byte gUnknown_0202E8F8
-_0808B470: .4byte gUnknown_03005CE0
-_0808B474: .4byte gPlayerParty
-_0808B478: .4byte sub_808B25C
-_0808B47C: .4byte sub_806AEDC
-_0808B480:
- ldr r2, _0808B49C
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808B4A0
-_0808B48E:
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B49C: .4byte sub_808B4A4
-_0808B4A0: .4byte sub_808B3A0
- thumb_func_end sub_808B3EC
-
- thumb_func_start sub_808B4A4
-sub_808B4A4: @ 808B4A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B4D8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B4D2
- ldr r0, _0808B4DC
- ldrb r0, [r0]
- ldr r1, _0808B4E0
- ldrh r1, [r1]
- movs r2, 0x1
- bl sub_806EBF0
- ldr r1, _0808B4E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B4E8
- str r1, [r0]
-_0808B4D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B4D8: .4byte gPaletteFade
-_0808B4DC: .4byte gUnknown_03005CE0
-_0808B4E0: .4byte word_203855E
-_0808B4E4: .4byte gTasks
-_0808B4E8: .4byte sub_808B4EC
- thumb_func_end sub_808B4A4
-
- thumb_func_start sub_808B4EC
-sub_808B4EC: @ 808B4EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0808B504
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B500
- adds r0, r1, 0
- bl sub_808B224
-_0808B500:
- pop {r0}
- bx r0
- .align 2, 0
-_0808B504: .4byte gUnknown_0202E8F6
- thumb_func_end sub_808B4EC
-
- thumb_func_start sub_808B508
-sub_808B508: @ 808B508
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808B224
- pop {r0}
- bx r0
- thumb_func_end sub_808B508
-
- thumb_func_start sub_808B518
-sub_808B518: @ 808B518
- push {r4,lr}
- ldr r4, _0808B520
- b _0808B530
- .align 2, 0
-_0808B520: .4byte 0x0201b260
-_0808B524:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B554
-_0808B530:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B524
- ldrb r0, [r4]
- ldr r1, _0808B55C
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B560
- bl SetMainCallback2
-_0808B554:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B55C: .4byte gUnknown_020384F0
-_0808B560: .4byte sub_806AEDC
- thumb_func_end sub_808B518
-
- thumb_func_start sub_808B564
-sub_808B564: @ 808B564
- push {lr}
- ldr r2, _0808B58C
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl sub_809FA30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _0808B594
- ldr r2, _0808B590
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B5A0
- .align 2, 0
-_0808B58C: .4byte gPaletteFade
-_0808B590: .4byte sub_806F490
-_0808B594:
- ldr r2, _0808B5AC
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
-_0808B5A0:
- ldr r0, _0808B5B0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5AC: .4byte sub_806F588
-_0808B5B0: .4byte sub_808B518
- thumb_func_end sub_808B564
-
- thumb_func_start sub_808B5B4
-sub_808B5B4: @ 808B5B4
- push {lr}
- ldr r3, _0808B5D8
- ldr r2, _0808B5DC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _0808B5E0
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5D8: .4byte gUnknown_03005CF0
-_0808B5DC: .4byte gTasks
-_0808B5E0: .4byte sub_808B5E4
- thumb_func_end sub_808B5B4
-
- thumb_func_start sub_808B5E4
-sub_808B5E4: @ 808B5E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0808B602
- ldr r1, _0808B608
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B60C
- ldr r1, [r1]
- str r1, [r0]
-_0808B602:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B608: .4byte gTasks
-_0808B60C: .4byte gUnknown_03005CF0
- thumb_func_end sub_808B5E4
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8085668.s b/asm/rom_8085668.s
new file mode 100644
index 000000000..d638e1991
--- /dev/null
+++ b/asm/rom_8085668.s
@@ -0,0 +1,12285 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start FieldEffectStart
+FieldEffectStart: @ 8085668
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl FieldEffectActiveListAdd
+ ldr r0, _080856A8
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ str r0, [sp]
+ add r4, sp, 0x4
+ ldr r5, _080856AC
+_08085686:
+ ldr r0, [sp]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r5
+ ldr r2, [r0]
+ mov r0, sp
+ adds r1, r4, 0
+ bl _call_via_r2
+ lsls r0, 24
+ cmp r0, 0
+ bne _08085686
+ ldr r0, [sp, 0x4]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080856A8: .4byte gFieldEffectScriptPointers
+_080856AC: .4byte gUnknown_0839F0D4
+ thumb_func_end FieldEffectStart
+
+ thumb_func_start FieldEffectCmd_loadtiles
+FieldEffectCmd_loadtiles: @ 80856B0
+ push {lr}
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ bl FieldEffectScript_LoadTiles
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectCmd_loadtiles
+
+ thumb_func_start FieldEffectCmd_loadfadedpal
+FieldEffectCmd_loadfadedpal: @ 80856C4
+ push {lr}
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ bl FieldEffectScript_LoadFadedPalette
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectCmd_loadfadedpal
+
+ thumb_func_start FieldEffectCmd_loadpal
+FieldEffectCmd_loadpal: @ 80856D8
+ push {lr}
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ bl FieldEffectScript_LoadPalette
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectCmd_loadpal
+
+ thumb_func_start FieldEffectCmd_callnative
+FieldEffectCmd_callnative: @ 80856EC
+ push {lr}
+ ldr r2, [r0]
+ adds r2, 0x1
+ str r2, [r0]
+ bl FieldEffectScript_CallNative
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectCmd_callnative
+
+ thumb_func_start sub_8085700
+sub_8085700: @ 8085700
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8085700
+
+ thumb_func_start FieldEffectCmd_loadgfx_callnative
+FieldEffectCmd_loadgfx_callnative: @ 8085704
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ adds r0, r4, 0
+ bl FieldEffectScript_LoadTiles
+ adds r0, r4, 0
+ bl FieldEffectScript_LoadFadedPalette
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl FieldEffectScript_CallNative
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectCmd_loadgfx_callnative
+
+ thumb_func_start FieldEffectCmd_loadtiles_callnative
+FieldEffectCmd_loadtiles_callnative: @ 808572C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ adds r0, r4, 0
+ bl FieldEffectScript_LoadTiles
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl FieldEffectScript_CallNative
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectCmd_loadtiles_callnative
+
+ thumb_func_start FieldEffectCmd_loadfadedpal_callnative
+FieldEffectCmd_loadfadedpal_callnative: @ 8085750
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ adds r0, r4, 0
+ bl FieldEffectScript_LoadFadedPalette
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl FieldEffectScript_CallNative
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectCmd_loadfadedpal_callnative
+
+ thumb_func_start FieldEffectScript_ReadWord
+FieldEffectScript_ReadWord: @ 8085774
+ ldr r2, [r0]
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ ldrb r1, [r2, 0x2]
+ lsls r1, 16
+ adds r0, r1
+ ldrb r1, [r2, 0x3]
+ lsls r1, 24
+ adds r0, r1
+ bx lr
+ thumb_func_end FieldEffectScript_ReadWord
+
+ thumb_func_start FieldEffectScript_LoadTiles
+FieldEffectScript_LoadTiles: @ 808578C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl FieldEffectScript_ReadWord
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _080857B8
+ cmp r0, r1
+ bne _080857AA
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+_080857AA:
+ ldr r0, [r4]
+ adds r0, 0x4
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080857B8: .4byte 0xffff0000
+ thumb_func_end FieldEffectScript_LoadTiles
+
+ thumb_func_start FieldEffectScript_LoadFadedPalette
+FieldEffectScript_LoadFadedPalette: @ 80857BC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl FieldEffectScript_ReadWord
+ adds r4, r0, 0
+ bl LoadSpritePalette
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_807D78C
+ ldr r0, [r5]
+ adds r0, 0x4
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end FieldEffectScript_LoadFadedPalette
+
+ thumb_func_start FieldEffectScript_LoadPalette
+FieldEffectScript_LoadPalette: @ 80857E4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl FieldEffectScript_ReadWord
+ bl LoadSpritePalette
+ ldr r0, [r4]
+ adds r0, 0x4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end FieldEffectScript_LoadPalette
+
+ thumb_func_start FieldEffectScript_CallNative
+FieldEffectScript_CallNative: @ 80857FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl FieldEffectScript_ReadWord
+ bl _call_via_r0
+ str r0, [r5]
+ ldr r0, [r4]
+ adds r0, 0x4
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end FieldEffectScript_CallNative
+
+ thumb_func_start FieldEffectFreeGraphicsResources
+FieldEffectFreeGraphicsResources: @ 8085818
+ push {r4,r5,lr}
+ adds r1, r0, 0
+ adds r1, 0x40
+ ldrh r5, [r1]
+ ldrb r4, [r0, 0x5]
+ lsrs r4, 4
+ bl DestroySprite
+ adds r0, r5, 0
+ bl FieldEffectFreeTilesIfUnused
+ adds r0, r4, 0
+ bl FieldEffectFreePaletteIfUnused
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end FieldEffectFreeGraphicsResources
+
+ thumb_func_start FieldEffectStop
+FieldEffectStop: @ 808583C
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl FieldEffectFreeGraphicsResources
+ adds r0, r4, 0
+ bl FieldEffectActiveListRemove
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end FieldEffectStop
+
+ thumb_func_start FieldEffectFreeTilesIfUnused
+FieldEffectFreeTilesIfUnused: @ 8085854
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl GetSpriteTileTagByTileStart
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080858B0
+ cmp r3, r0
+ beq _080858A8
+ movs r2, 0
+ ldr r5, _080858B4
+_0808586E:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r5
+ adds r0, r1, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08085898
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ bge _08085898
+ adds r0, r1, 0
+ adds r0, 0x40
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _080858A8
+_08085898:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _0808586E
+ adds r0, r3, 0
+ bl FreeSpriteTilesByTag
+_080858A8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080858B0: .4byte 0x0000ffff
+_080858B4: .4byte gSprites
+ thumb_func_end FieldEffectFreeTilesIfUnused
+
+ thumb_func_start FieldEffectFreePaletteIfUnused
+FieldEffectFreePaletteIfUnused: @ 80858B8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _08085908
+ cmp r5, r0
+ beq _08085900
+ movs r2, 0
+ ldr r6, _0808590C
+ adds r3, r4, 0
+_080858D4:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _080858F0
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ cmp r0, r3
+ beq _08085900
+_080858F0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _080858D4
+ adds r0, r5, 0
+ bl FreeSpritePaletteByTag
+_08085900:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085908: .4byte 0x0000ffff
+_0808590C: .4byte gSprites
+ thumb_func_end FieldEffectFreePaletteIfUnused
+
+ thumb_func_start FieldEffectActiveListClear
+FieldEffectActiveListClear: @ 8085910
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _08085930
+ movs r3, 0xFF
+_08085918:
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _08085918
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085930: .4byte gUnknown_030006E0
+ thumb_func_end FieldEffectActiveListClear
+
+ thumb_func_start FieldEffectActiveListAdd
+FieldEffectActiveListAdd: @ 8085934
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r4, _0808594C
+_0808593E:
+ adds r1, r2, r4
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _08085950
+ strb r3, [r1]
+ b _0808595A
+ .align 2, 0
+_0808594C: .4byte gUnknown_030006E0
+_08085950:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _0808593E
+_0808595A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end FieldEffectActiveListAdd
+
+ thumb_func_start FieldEffectActiveListRemove
+FieldEffectActiveListRemove: @ 8085960
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r4, _0808597C
+ movs r5, 0xFF
+_0808596C:
+ adds r1, r2, r4
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _08085980
+ orrs r0, r5
+ strb r0, [r1]
+ b _0808598A
+ .align 2, 0
+_0808597C: .4byte gUnknown_030006E0
+_08085980:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _0808596C
+_0808598A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end FieldEffectActiveListRemove
+
+ thumb_func_start FieldEffectActiveListContains
+FieldEffectActiveListContains: @ 8085990
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _080859A8
+_0808599A:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080859AC
+ movs r0, 0x1
+ b _080859B8
+ .align 2, 0
+_080859A8: .4byte gUnknown_030006E0
+_080859AC:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1F
+ bls _0808599A
+ movs r0, 0
+_080859B8:
+ pop {r1}
+ bx r1
+ thumb_func_end FieldEffectActiveListContains
+
+ thumb_func_start sub_80859BC
+sub_80859BC: @ 80859BC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r9, r3
+ ldr r7, [sp, 0x34]
+ lsls r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsrs r4, 21
+ ldr r3, _08085A44
+ mov r8, r3
+ add r8, r4
+ mov r0, r8
+ adds r1, r7, 0
+ bl LoadCompressedObjectPaletteOverrideBuffer
+ ldr r0, _08085A48
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl LoadCompressedObjectPicOverrideBuffer
+ mov r1, sp
+ ldrh r0, [r4, 0x6]
+ movs r2, 0
+ strh r0, [r1]
+ mov r3, r8
+ ldrh r0, [r3, 0x4]
+ strh r0, [r1, 0x2]
+ ldr r0, _08085A4C
+ str r0, [sp, 0x4]
+ ldr r0, _08085A50
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _08085A54
+ str r0, [sp, 0x10]
+ ldr r0, _08085A58
+ str r0, [sp, 0x14]
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, r9
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085A44: .4byte gTrainerFrontPicPaletteTable
+_08085A48: .4byte gTrainerFrontPicTable
+_08085A4C: .4byte gOamData_839F0F4
+_08085A50: .4byte gDummySpriteAnimTable
+_08085A54: .4byte gDummySpriteAffineAnimTable
+_08085A58: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80859BC
+
+ thumb_func_start sub_8085A5C
+sub_8085A5C: @ 8085A5C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r1, r2, 0
+ lsls r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _08085A8C
+ lsrs r4, 21
+ adds r0, r4, r0
+ ldr r0, [r0]
+ bl LZDecompressVram
+ ldr r0, _08085A90
+ adds r4, r0
+ ldr r0, [r4]
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085A8C: .4byte gTrainerFrontPicTable
+_08085A90: .4byte gTrainerFrontPicPaletteTable
+ thumb_func_end sub_8085A5C
+
+ thumb_func_start AddNewGameBirchObject
+AddNewGameBirchObject: @ 8085A94
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08085ACC
+ bl LoadSpritePalette
+ ldr r0, _08085AD0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085ACC: .4byte gUnknown_0839F114
+_08085AD0: .4byte gSpriteTemplate_839F128
+ thumb_func_end AddNewGameBirchObject
+
+ thumb_func_start sub_8085AD4
+sub_8085AD4: @ 8085AD4
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ mov r10, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, r4, 3
+ mov r9, r0
+ ldr r0, _08085B74
+ add r0, r9
+ ldr r1, _08085B78
+ lsls r2, r4, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r3, _08085B7C
+ ldr r3, [r3, 0xC]
+ str r3, [sp]
+ str r4, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ ldr r5, _08085B80
+ add r9, r5
+ mov r0, r9
+ bl LoadCompressedObjectPalette
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r4, _08085B84
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2]
+ ldrh r0, [r5, 0x4]
+ bl IndexOfSpritePaletteTag
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_807DE38
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ mov r2, r8
+ mov r3, r10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085B74: .4byte gMonFrontPicTable
+_08085B78: .4byte gMonFrontPicCoords
+_08085B7C: .4byte gUnknown_081FAF4C
+_08085B80: .4byte gMonPaletteTable
+_08085B84: .4byte gUnknown_02024E8C
+ thumb_func_end sub_8085AD4
+
+ thumb_func_start sub_8085B88
+sub_8085B88: @ 8085B88
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0xC
+ adds r5, r0, 0
+ mov r10, r1
+ adds r4, r2, 0
+ adds r6, r3, 0
+ ldr r0, [sp, 0x28]
+ mov r8, r0
+ ldr r0, [sp, 0x2C]
+ mov r9, r0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r0, r5, 3
+ ldr r1, _08085C34
+ adds r0, r1
+ ldr r1, _08085C38
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r3, _08085C3C
+ ldr r3, [r3, 0xC]
+ str r3, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r5, 0
+ mov r1, r10
+ adds r2, r4, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r5, _08085C40
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2]
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_807DE38
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, r8
+ mov r3, r9
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085C34: .4byte gMonFrontPicTable
+_08085C38: .4byte gMonFrontPicCoords
+_08085C3C: .4byte gUnknown_081FAF4C
+_08085C40: .4byte gUnknown_02024E8C
+ thumb_func_end sub_8085B88
+
+ thumb_func_start sub_8085C44
+sub_8085C44: @ 8085C44
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807DE68
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ cmp r0, 0
+ beq _08085C6E
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+_08085C6E:
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8085C44
+
+ thumb_func_start sub_8085C7C
+sub_8085C7C: @ 8085C7C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r4, _08085D00
+ lsrs r0, 15
+ adds r4, r0, r4
+ ldrh r4, [r4]
+ movs r5, 0x1F
+ mov r9, r5
+ mov r8, r4
+ mov r6, r8
+ ands r6, r5
+ mov r8, r6
+ movs r6, 0xF8
+ lsls r6, 2
+ ands r6, r4
+ lsrs r6, 5
+ movs r5, 0xF8
+ lsls r5, 7
+ ands r4, r5
+ lsrs r4, 10
+ mov r7, r9
+ mov r5, r8
+ subs r7, r5
+ mov r12, r7
+ mov r7, r12
+ muls r7, r1
+ adds r1, r7, 0
+ asrs r1, 4
+ add r8, r1
+ mov r5, r9
+ subs r1, r5, r6
+ muls r1, r2
+ asrs r1, 4
+ adds r6, r1
+ subs r5, r4
+ mov r9, r5
+ mov r1, r9
+ muls r1, r3
+ asrs r1, 4
+ adds r4, r1
+ mov r7, r8
+ lsls r7, 16
+ lsls r6, 21
+ orrs r6, r7
+ lsls r4, 26
+ orrs r4, r6
+ lsrs r4, 16
+ ldr r1, _08085D04
+ adds r0, r1
+ strh r4, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085D00: .4byte gPlttBufferUnfaded
+_08085D04: .4byte gPlttBufferFaded
+ thumb_func_end sub_8085C7C
+
+ thumb_func_start sub_8085D08
+sub_8085D08: @ 8085D08
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r4, _08085D78
+ lsrs r0, 15
+ adds r4, r0, r4
+ ldrh r4, [r4]
+ movs r5, 0x1F
+ mov r8, r5
+ mov r6, r8
+ ands r6, r4
+ mov r8, r6
+ movs r5, 0xF8
+ lsls r5, 2
+ ands r5, r4
+ lsrs r5, 5
+ movs r6, 0xF8
+ lsls r6, 7
+ ands r4, r6
+ lsrs r4, 10
+ mov r6, r8
+ muls r6, r1
+ adds r1, r6, 0
+ asrs r1, 4
+ mov r6, r8
+ subs r6, r1
+ adds r1, r5, 0
+ muls r1, r2
+ asrs r1, 4
+ subs r5, r1
+ adds r1, r4, 0
+ muls r1, r3
+ asrs r1, 4
+ subs r4, r1
+ lsls r6, 16
+ lsls r5, 21
+ orrs r5, r6
+ lsls r4, 26
+ orrs r4, r5
+ lsrs r4, 16
+ ldr r1, _08085D7C
+ adds r0, r1
+ strh r4, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085D78: .4byte gPlttBufferUnfaded
+_08085D7C: .4byte gPlttBufferFaded
+ thumb_func_end sub_8085D08
+
+ thumb_func_start sub_8085D80
+sub_8085D80: @ 8085D80
+ push {r4,lr}
+ bl CalculatePlayerPartyCount
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08085DBC
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08085DC0
+ adds r1, r0
+ strh r4, [r1, 0xA]
+ movs r0, 0x5D
+ strh r0, [r1, 0xC]
+ movs r0, 0x24
+ strh r0, [r1, 0xE]
+ movs r0, 0x7C
+ strh r0, [r1, 0x10]
+ movs r0, 0x18
+ strh r0, [r1, 0x12]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085DBC: .4byte sub_8085DC4
+_08085DC0: .4byte gTasks
+ thumb_func_end sub_8085D80
+
+ thumb_func_start sub_8085DC4
+sub_8085DC4: @ 8085DC4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08085DEC
+ adds r1, r0
+ ldr r2, _08085DF0
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085DEC: .4byte gTasks
+_08085DF0: .4byte gUnknown_0839F268
+ thumb_func_end sub_8085DC4
+
+ thumb_func_start sub_8085DF4
+sub_8085DF4: @ 8085DF4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ movs r3, 0xE
+ ldrsh r2, [r4, r3]
+ movs r3, 0x1
+ bl sub_808604C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl sub_8086430
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8085DF4
+
+ thumb_func_start sub_8085E30
+sub_8085E30: @ 8085E30
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r3, _08085E68
+ movs r1, 0x14
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r4, 0x2E
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x1
+ ble _08085E62
+ movs r0, 0x16
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_08085E62:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085E68: .4byte gSprites
+ thumb_func_end sub_8085E30
+
+ thumb_func_start sub_8085E6C
+sub_8085E6C: @ 8085E6C
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _08085E90
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ ble _08085E8C
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_08085E8C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085E90: .4byte gSprites
+ thumb_func_end sub_8085E6C
+
+ thumb_func_start sub_8085E94
+sub_8085E94: @ 8085E94
+ push {lr}
+ ldr r2, _08085ECC
+ movs r3, 0x14
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x6
+ ble _08085EC6
+ adds r0, r1, 0
+ bl DestroySprite
+ movs r0, 0x19
+ bl FieldEffectActiveListRemove
+ ldr r0, _08085ED0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08085EC6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085ECC: .4byte gSprites
+_08085ED0: .4byte sub_8085DC4
+ thumb_func_end sub_8085E94
+
+ thumb_func_start sub_8085ED4
+sub_8085ED4: @ 8085ED4
+ push {r4,lr}
+ bl CalculatePlayerPartyCount
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08085F08
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08085F0C
+ adds r1, r0
+ strh r4, [r1, 0xA]
+ movs r0, 0x75
+ strh r0, [r1, 0xC]
+ movs r0, 0x34
+ strh r0, [r1, 0xE]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085F08: .4byte sub_8085F10
+_08085F0C: .4byte gTasks
+ thumb_func_end sub_8085ED4
+
+ thumb_func_start sub_8085F10
+sub_8085F10: @ 8085F10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08085F38
+ adds r1, r0
+ ldr r2, _08085F3C
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085F38: .4byte gTasks
+_08085F3C: .4byte gUnknown_0839F278
+ thumb_func_end sub_8085F10
+
+ thumb_func_start sub_8085F40
+sub_8085F40: @ 8085F40
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ movs r3, 0xE
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl sub_808604C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ ldr r0, _08085FB0
+ bl FindTaskIdByFunc
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x18
+ movs r3, 0
+ bl sub_80864CC
+ adds r0, r4, 0
+ movs r1, 0x28
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80864CC
+ adds r0, r4, 0
+ movs r1, 0x48
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80864CC
+ adds r0, r4, 0
+ movs r1, 0xA8
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80864CC
+ adds r0, r4, 0
+ movs r1, 0xC8
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80864CC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085FB0: .4byte sub_8085F10
+ thumb_func_end sub_8085F40
+
+ thumb_func_start sub_8085FB4
+sub_8085FB4: @ 8085FB4
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _08085FE0
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ ble _08085FDA
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x1
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_08085FDA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085FE0: .4byte gSprites
+ thumb_func_end sub_8085FB4
+
+ thumb_func_start sub_8085FE4
+sub_8085FE4: @ 8085FE4
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _08086008
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ ble _08086004
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_08086004:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086008: .4byte gSprites
+ thumb_func_end sub_8085FE4
+
+ thumb_func_start sub_808600C
+sub_808600C: @ 808600C
+ push {lr}
+ ldr r2, _08086044
+ movs r3, 0x14
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x6
+ ble _0808603E
+ adds r0, r1, 0
+ bl DestroySprite
+ movs r0, 0x3E
+ bl FieldEffectActiveListRemove
+ ldr r0, _08086048
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0808603E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086044: .4byte gSprites
+_08086048: .4byte sub_8085F10
+ thumb_func_end sub_808600C
+
+ thumb_func_start sub_808604C
+sub_808604C: @ 808604C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _08086098
+ bl CreateInvisibleSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0808609C
+ adds r1, r2
+ strh r4, [r1, 0x24]
+ strh r5, [r1, 0x26]
+ strh r6, [r1, 0x38]
+ mov r2, r8
+ strh r2, [r1, 0x3A]
+ strh r0, [r1, 0x3C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086098: .4byte sub_80860A0
+_0808609C: .4byte gSprites
+ thumb_func_end sub_808604C
+
+ thumb_func_start sub_80860A0
+sub_80860A0: @ 80860A0
+ push {lr}
+ ldr r2, _080860B8
+ movs r3, 0x2E
+ ldrsh r1, [r0, r3]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080860B8: .4byte gUnknown_0839F288
+ thumb_func_end sub_80860A0
+
+ thumb_func_start sub_80860BC
+sub_80860BC: @ 80860BC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080860D4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08086130
+_080860D4:
+ movs r0, 0x19
+ strh r0, [r4, 0x30]
+ ldr r0, _08086148
+ ldr r1, _0808614C
+ movs r2, 0x32
+ ldrsh r3, [r4, r2]
+ lsls r3, 2
+ adds r3, r1
+ ldrh r1, [r4, 0x24]
+ ldrh r2, [r3]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r3, 0x2]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08086150
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldrh r0, [r4, 0x3C]
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3A]
+ subs r0, 0x1
+ strh r0, [r4, 0x3A]
+ movs r0, 0x17
+ bl PlaySE
+_08086130:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08086142
+ movs r0, 0x20
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08086142:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086148: .4byte gSpriteTemplate_839F208
+_0808614C: .4byte gUnknown_0839F2A8
+_08086150: .4byte gSprites
+ thumb_func_end sub_80860BC
+
+ thumb_func_start sub_8086154
+sub_8086154: @ 8086154
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bne _08086184
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ movs r0, 0x8
+ strh r0, [r1, 0x30]
+ strh r2, [r1, 0x32]
+ strh r2, [r1, 0x34]
+ movs r2, 0x38
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08086184
+ movs r0, 0xB8
+ lsls r0, 1
+ bl PlayFanfare
+_08086184:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8086154
+
+ thumb_func_start sub_8086188
+sub_8086188: @ 8086188
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldrh r0, [r7, 0x30]
+ subs r0, 0x1
+ strh r0, [r7, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080861B8
+ movs r0, 0x8
+ strh r0, [r7, 0x30]
+ ldrh r0, [r7, 0x32]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r7, 0x32]
+ cmp r0, 0
+ bne _080861B8
+ ldrh r0, [r7, 0x34]
+ adds r0, 0x1
+ strh r0, [r7, 0x34]
+_080861B8:
+ ldrh r4, [r7, 0x32]
+ adds r4, 0x3
+ movs r0, 0x3
+ mov r8, r0
+ mov r1, r8
+ ands r4, r1
+ ldr r3, _080862B0
+ mov r10, r3
+ mov r0, r10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ movs r1, 0x84
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldr r6, _080862B4
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ ldr r5, _080862B8
+ adds r2, r4, r5
+ ldrb r2, [r2]
+ ldr r3, _080862BC
+ mov r9, r3
+ add r4, r9
+ ldrb r3, [r4]
+ bl sub_8085C7C
+ ldrh r4, [r7, 0x32]
+ adds r4, 0x2
+ mov r0, r8
+ ands r4, r0
+ mov r0, r10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ movs r1, 0x83
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ adds r2, r4, r5
+ ldrb r2, [r2]
+ add r4, r9
+ ldrb r3, [r4]
+ bl sub_8085C7C
+ ldrh r4, [r7, 0x32]
+ adds r4, 0x1
+ mov r3, r8
+ ands r4, r3
+ mov r0, r10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ movs r1, 0x81
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ adds r2, r4, r5
+ ldrb r2, [r2]
+ add r4, r9
+ ldrb r3, [r4]
+ bl sub_8085C7C
+ ldrh r4, [r7, 0x32]
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r3, _080862C0
+ adds r0, r3
+ lsrs r0, 16
+ adds r6, r4, r6
+ ldrb r6, [r6]
+ adds r5, r4, r5
+ ldrb r5, [r5]
+ add r4, r9
+ ldrb r4, [r4]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8085C7C
+ mov r0, r10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r1, _080862C4
+ adds r0, r1
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8085C7C
+ movs r3, 0x34
+ ldrsh r0, [r7, r3]
+ cmp r0, 0x2
+ ble _080862A2
+ ldrh r0, [r7, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r7, 0x2E]
+ movs r0, 0x8
+ strh r0, [r7, 0x30]
+ strh r1, [r7, 0x32]
+_080862A2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080862B0: .4byte 0x00001007
+_080862B4: .4byte gUnknown_0839F2C0
+_080862B8: .4byte gUnknown_0839F2C4
+_080862BC: .4byte gUnknown_0839F2C8
+_080862C0: .4byte 0x01050000
+_080862C4: .4byte 0x01030000
+ thumb_func_end sub_8086188
+
+ thumb_func_start sub_80862C8
+sub_80862C8: @ 80862C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080862F8
+ movs r0, 0x8
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r2, 0x32]
+ cmp r0, 0x3
+ bne _080862F8
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ movs r0, 0x1E
+ strh r0, [r2, 0x30]
+_080862F8:
+ ldrh r4, [r2, 0x32]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080863A4
+ mov r8, r0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ movs r1, 0x84
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldr r1, _080863A8
+ adds r1, r4, r1
+ ldrb r6, [r1]
+ ldr r1, _080863AC
+ adds r1, r4, r1
+ ldrb r5, [r1]
+ ldr r1, _080863B0
+ adds r4, r1
+ ldrb r4, [r4]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8085C7C
+ mov r0, r8
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ movs r1, 0x83
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8085C7C
+ mov r0, r8
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ movs r1, 0x81
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8085C7C
+ mov r0, r8
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r1, _080863B4
+ adds r0, r1
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8085C7C
+ mov r0, r8
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r1, _080863B8
+ adds r0, r1
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8085C7C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080863A4: .4byte 0x00001007
+_080863A8: .4byte gUnknown_0839F2C0
+_080863AC: .4byte gUnknown_0839F2C4
+_080863B0: .4byte gUnknown_0839F2C8
+_080863B4: .4byte 0x01050000
+_080863B8: .4byte 0x01030000
+ thumb_func_end sub_80862C8
+
+ thumb_func_start sub_80863BC
+sub_80863BC: @ 80863BC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080863D2
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+_080863D2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80863BC
+
+ thumb_func_start sub_80863D8
+sub_80863D8: @ 80863D8
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ strh r1, [r0, 0x2E]
+ bx lr
+ thumb_func_end sub_80863D8
+
+ thumb_func_start sub_80863E0
+sub_80863E0: @ 80863E0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080863F6
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080863FC
+_080863F6:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080863FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80863E0
+
+ thumb_func_start nullsub_57
+nullsub_57: @ 8086404
+ bx lr
+ thumb_func_end nullsub_57
+
+ thumb_func_start sub_8086408
+sub_8086408: @ 8086408
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0808642C
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ ble _08086428
+ adds r0, r3, 0
+ bl FieldEffectFreeGraphicsResources
+_08086428:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808642C: .4byte gSprites
+ thumb_func_end sub_8086408
+
+ thumb_func_start sub_8086430
+sub_8086430: @ 8086430
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _08086480
+ lsls r3, 16
+ asrs r3, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r3, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08086484
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08086488
+ bl SetSubspriteTables
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086480: .4byte gSpriteTemplate_839F220
+_08086484: .4byte gSprites
+_08086488: .4byte gUnknown_0839F1A0
+ thumb_func_end sub_8086430
+
+ thumb_func_start sub_808648C
+sub_808648C: @ 808648C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080864B0
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080864B0:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080864C4
+ adds r0, r4, 0
+ bl FieldEffectFreeGraphicsResources
+_080864C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808648C
+
+ thumb_func_start sub_80864CC
+sub_80864CC: @ 80864CC
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 24
+ cmp r3, 0
+ bne _08086514
+ ldr r0, _08086508
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0808650C
+ adds r0, r1
+ ldr r1, _08086510
+ bl SetSubspriteTables
+ b _08086528
+ .align 2, 0
+_08086508: .4byte gSpriteTemplate_839F238
+_0808650C: .4byte gSprites
+_08086510: .4byte gUnknown_0839F1C8
+_08086514:
+ ldr r0, _08086548
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08086528:
+ ldr r1, _0808654C
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ strh r5, [r0, 0x2E]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086548: .4byte gSpriteTemplate_839F250
+_0808654C: .4byte gSprites
+ thumb_func_end sub_80864CC
+
+ thumb_func_start sub_8086550
+sub_8086550: @ 8086550
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _080865B8
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080865A6
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _0808657E
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080865A0
+_0808657E:
+ movs r0, 0x10
+ strh r0, [r3, 0x30]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080865A0:
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+_080865A6:
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x7F
+ ble _080865B4
+ adds r0, r3, 0
+ bl FieldEffectFreeGraphicsResources
+_080865B4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080865B8: .4byte gTasks
+ thumb_func_end sub_8086550
+
+ thumb_func_start sub_80865BC
+sub_80865BC: @ 80865BC
+ push {lr}
+ ldr r0, _080865D0
+ bl SetMainCallback2
+ ldr r1, _080865D4
+ ldr r0, _080865D8
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080865D0: .4byte c2_exit_to_overworld_2_switch
+_080865D4: .4byte gUnknown_0300485C
+_080865D8: .4byte mapldr_080842E8
+ thumb_func_end sub_80865BC
+
+ thumb_func_start mapldr_080842E8
+mapldr_080842E8: @ 80865DC
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _080865FC
+ movs r1, 0
+ bl CreateTask
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ ldr r1, _08086600
+ movs r0, 0
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080865FC: .4byte task00_8084310
+_08086600: .4byte gUnknown_0300485C
+ thumb_func_end mapldr_080842E8
+
+ thumb_func_start task00_8084310
+task00_8084310: @ 8086604
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _0808666C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _08086640
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ beq _08086666
+ ldr r1, _08086670
+ ldr r0, _08086674
+ ldrb r0, [r0]
+ str r0, [r1]
+ cmp r0, 0x5
+ ble _08086634
+ str r5, [r1]
+_08086634:
+ movs r0, 0x1F
+ bl FieldEffectStart
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08086640:
+ movs r0, 0x1F
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086666
+ bl flag_var_implications_of_teleport_
+ bl warp_in
+ ldr r0, _08086678
+ bl SetMainCallback2
+ ldr r1, _0808667C
+ ldr r0, _08086680
+ str r0, [r1]
+ adds r0, r6, 0
+ bl DestroyTask
+_08086666:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808666C: .4byte gTasks
+_08086670: .4byte gUnknown_0202FF84
+_08086674: .4byte gUnknown_03005CE0
+_08086678: .4byte CB2_LoadMap
+_0808667C: .4byte gUnknown_0300485C
+_08086680: .4byte mapldr_08084390
+ thumb_func_end task00_8084310
+
+ thumb_func_start mapldr_08084390
+mapldr_08084390: @ 8086684
+ push {r4,lr}
+ bl sub_8053E90
+ bl pal_fill_black
+ ldr r0, _080866DC
+ movs r1, 0
+ bl CreateTask
+ ldr r4, _080866E0
+ ldr r3, _080866E4
+ ldrb r1, [r3, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldrb r1, [r3]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080866C6
+ ldrb r1, [r3, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x3
+ bl FieldObjectTurn
+_080866C6:
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ ldr r1, _080866E8
+ movs r0, 0
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080866DC: .4byte c3_080843F8
+_080866E0: .4byte gMapObjects
+_080866E4: .4byte gPlayerAvatar
+_080866E8: .4byte gUnknown_0300485C
+ thumb_func_end mapldr_08084390
+
+ thumb_func_start c3_080843F8
+c3_080843F8: @ 80866EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08086740
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0808671E
+ ldr r0, _08086744
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08086738
+ movs r0, 0x20
+ bl FieldEffectStart
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0808671E:
+ movs r0, 0x20
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086738
+ bl ScriptContext2_Disable
+ bl sub_806451C
+ adds r0, r5, 0
+ bl DestroyTask
+_08086738:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086740: .4byte gTasks
+_08086744: .4byte gPaletteFade
+ thumb_func_end c3_080843F8
+
+ thumb_func_start sub_8086748
+sub_8086748: @ 8086748
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_for_maplights
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ ldr r0, _0808676C
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _08086770
+ movs r0, 0
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808676C: .4byte sub_8086774
+_08086770: .4byte gUnknown_0300485C
+ thumb_func_end sub_8086748
+
+ thumb_func_start sub_8086774
+sub_8086774: @ 8086774
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080867A4
+ adds r4, r1, r0
+ ldr r5, _080867A8
+_08086786:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086786
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080867A4: .4byte gTasks
+_080867A8: .4byte gUnknown_0839F2CC
+ thumb_func_end sub_8086774
+
+ thumb_func_start sub_80867AC
+sub_80867AC: @ 80867AC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r9, r0
+ ldr r6, _08086848
+ ldrb r0, [r6, 0x5]
+ lsls r5, r0, 3
+ adds r5, r0
+ lsls r5, 2
+ ldr r0, _0808684C
+ mov r8, r0
+ add r5, r8
+ ldrb r0, [r6, 0x4]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08086850
+ adds r4, r0
+ bl CameraObjectReset2
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r0, 0x1
+ strb r0, [r6, 0x6]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldObjectSetSpecialAnim
+ adds r3, r4, 0
+ adds r3, 0x42
+ ldrb r0, [r3]
+ lsrs r0, 6
+ mov r1, r9
+ strh r0, [r1, 0x10]
+ ldrb r0, [r5, 0x3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r5, 0x3]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldrb r1, [r3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3]
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086848: .4byte gPlayerAvatar
+_0808684C: .4byte gMapObjects
+_08086850: .4byte gSprites
+ thumb_func_end sub_80867AC
+
+ thumb_func_start sub_8086854
+sub_8086854: @ 8086854
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ beq _08086868
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08086868:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086854
+
+ thumb_func_start sub_8086870
+sub_8086870: @ 8086870
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080868D4
+ ldrb r0, [r6, 0x4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _080868D8
+ adds r2, r0
+ adds r0, r2, 0
+ adds r0, 0x29
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ lsls r0, r4, 17
+ negs r0, r0
+ ldrh r1, [r2, 0x22]
+ ldr r3, _080868DC
+ adds r1, r4
+ ldrh r3, [r3]
+ adds r1, r3
+ asrs r0, 16
+ adds r0, r1
+ negs r0, r0
+ movs r1, 0
+ strh r0, [r2, 0x26]
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ ldr r2, _080868E0
+ ldrb r0, [r6, 0x5]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ movs r0, 0x2B
+ bl PlaySE
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080868D4: .4byte gPlayerAvatar
+_080868D8: .4byte gSprites
+_080868DC: .4byte gSpriteCoordOffsetY
+_080868E0: .4byte gMapObjects
+ thumb_func_end sub_8086870
+
+ thumb_func_start sub_80868E4
+sub_80868E4: @ 80868E4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r2, _08086990
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08086994
+ adds r6, r0, r1
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08086998
+ adds r5, r0, r1
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bgt _08086926
+ ldrh r1, [r4, 0xC]
+ adds r0, r2, r1
+ strh r0, [r4, 0xC]
+ movs r1, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _08086926
+ lsls r0, r2, 1
+ strh r0, [r4, 0xA]
+_08086926:
+ ldrh r2, [r4, 0xE]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08086964
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _08086964
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xE]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r6, 0x3]
+ ldrb r1, [r4, 0x10]
+ adds r3, r5, 0
+ adds r3, 0x42
+ lsls r1, 6
+ ldrb r2, [r3]
+ movs r0, 0x3F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrb r0, [r6]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r6]
+_08086964:
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ blt _08086988
+ movs r0, 0xD6
+ bl PlaySE
+ ldrb r0, [r6]
+ movs r1, 0x8
+ orrs r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r6]
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08086988:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086990: .4byte gPlayerAvatar
+_08086994: .4byte gMapObjects
+_08086998: .4byte gSprites
+ thumb_func_end sub_80868E4
+
+ thumb_func_start sub_808699C
+sub_808699C: @ 808699C
+ push {lr}
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ movs r2, 0
+ strh r1, [r0, 0x8]
+ movs r1, 0x4
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808699C
+
+ thumb_func_start sub_80869B8
+sub_80869B8: @ 80869B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl SetCameraPanning
+ ldrh r0, [r4, 0xA]
+ negs r2, r0
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080869E0
+ lsls r0, r2, 16
+ asrs r0, 17
+ strh r0, [r4, 0xA]
+_080869E0:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080869EE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080869EE:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80869B8
+
+ thumb_func_start sub_80869F8
+sub_80869F8: @ 80869F8
+ push {lr}
+ ldr r1, _08086A24
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ bl ScriptContext2_Disable
+ bl CameraObjectReset1
+ bl sub_806451C
+ bl InstallCameraPanAheadCallback
+ ldr r0, _08086A28
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086A24: .4byte gPlayerAvatar
+_08086A28: .4byte sub_8086774
+ thumb_func_end sub_80869F8
+
+ thumb_func_start sub_8086A2C
+sub_8086A2C: @ 8086A2C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08086A60
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08086A64
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ cmp r4, 0x6A
+ bne _08086A58
+ movs r0, 0x1
+ strh r0, [r1, 0xA]
+_08086A58:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086A60: .4byte sub_8086A68
+_08086A64: .4byte gTasks
+ thumb_func_end sub_8086A2C
+
+ thumb_func_start sub_8086A68
+sub_8086A68: @ 8086A68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08086A98
+ adds r4, r1, r0
+ ldr r5, _08086A9C
+_08086A7A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086A7A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086A98: .4byte gTasks
+_08086A9C: .4byte gUnknown_0839F2E8
+ thumb_func_end sub_8086A68
+
+ thumb_func_start sub_8086AA0
+sub_8086AA0: @ 8086AA0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl player_bitmagic
+ bl CameraObjectReset2
+ ldrb r0, [r4, 0xA]
+ bl sub_80B4824
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086AA0
+
+ thumb_func_start sub_8086AC0
+sub_8086AC0: @ 8086AC0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08086B28
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08086B2C
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08086AEA
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08086B1E
+_08086AEA:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xC]
+ strh r1, [r5, 0xE]
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _08086B18
+ movs r0, 0x4
+ strh r0, [r5, 0x8]
+_08086B18:
+ movs r0, 0x50
+ bl PlaySE
+_08086B1E:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086B28: .4byte gPlayerAvatar
+_08086B2C: .4byte gMapObjects
+ thumb_func_end sub_8086AC0
+
+ thumb_func_start sub_8086B30
+sub_8086B30: @ 8086B30
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8086B98
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _08086B4A
+ bl sub_8086C30
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08086B4A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086B30
+
+ thumb_func_start sub_8086B54
+sub_8086B54: @ 8086B54
+ push {lr}
+ bl sub_8086B98
+ bl sub_8086C40
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086B54
+
+ thumb_func_start sub_8086B64
+sub_8086B64: @ 8086B64
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8086BE4
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _08086B7E
+ bl sub_8086C30
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08086B7E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086B64
+
+ thumb_func_start sub_8086B88
+sub_8086B88: @ 8086B88
+ push {lr}
+ bl sub_8086BE4
+ bl sub_8086C40
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086B88
+
+ thumb_func_start sub_8086B98
+sub_8086B98: @ 8086B98
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08086BDC
+ ldrb r0, [r0, 0x4]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08086BE0
+ adds r4, r0
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ movs r0, 0x84
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ movs r0, 0x94
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08086BD6
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+_08086BD6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086BDC: .4byte gPlayerAvatar
+_08086BE0: .4byte gSprites
+ thumb_func_end sub_8086B98
+
+ thumb_func_start sub_8086BE4
+sub_8086BE4: @ 8086BE4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08086C28
+ ldrb r0, [r0, 0x4]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08086C2C
+ adds r4, r0
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ movs r0, 0x7C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ movs r0, 0x76
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08086C22
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+_08086C22:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086C28: .4byte gPlayerAvatar
+_08086C2C: .4byte gSprites
+ thumb_func_end sub_8086BE4
+
+ thumb_func_start sub_8086C30
+sub_8086C30: @ 8086C30
+ push {lr}
+ bl sub_8053FF8
+ bl sub_8080918
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8086C30
+
+ thumb_func_start sub_8086C40
+sub_8086C40: @ 8086C40
+ push {lr}
+ ldr r0, _08086C80
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08086C7C
+ bl sub_8054034
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08086C7C
+ bl sub_80B483C
+ bl warp_in
+ ldr r1, _08086C84
+ ldr r0, _08086C88
+ str r0, [r1]
+ ldr r0, _08086C8C
+ bl SetMainCallback2
+ ldr r0, _08086C90
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08086C7C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086C80: .4byte gPaletteFade
+_08086C84: .4byte gUnknown_0300485C
+_08086C88: .4byte sub_8086C94
+_08086C8C: .4byte CB2_LoadMap
+_08086C90: .4byte sub_8086A68
+ thumb_func_end sub_8086C40
+
+ thumb_func_start sub_8086C94
+sub_8086C94: @ 8086C94
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_for_maplights
+ bl ScriptContext2_Enable
+ ldr r0, _08086CB4
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _08086CB8
+ movs r0, 0
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086CB4: .4byte sub_8086CBC
+_08086CB8: .4byte gUnknown_0300485C
+ thumb_func_end sub_8086C94
+
+ thumb_func_start sub_8086CBC
+sub_8086CBC: @ 8086CBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08086CEC
+ adds r4, r1, r0
+ ldr r5, _08086CF0
+_08086CCE:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086CCE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086CEC: .4byte gTasks
+_08086CF0: .4byte gUnknown_0839F300
+ thumb_func_end sub_8086CBC
+
+ thumb_func_start sub_8086CF4
+sub_8086CF4: @ 8086CF4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl CameraObjectReset2
+ ldr r0, _08086D54
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08086D58
+ adds r4, r0
+ movs r0, 0x4
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x10
+ strh r0, [r5, 0xA]
+ cmp r1, 0x6B
+ bne _08086D5C
+ movs r1, 0x1
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _08086D5E
+ .align 2, 0
+_08086D54: .4byte gPlayerAvatar
+_08086D58: .4byte gMapObjects
+_08086D5C:
+ movs r1, 0
+_08086D5E:
+ adds r0, r1, 0
+ bl sub_80B4824
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086CF4
+
+ thumb_func_start sub_8086D70
+sub_8086D70: @ 8086D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08086DA8
+ ldrb r0, [r0, 0x4]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08086DAC
+ adds r4, r0
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ movs r0, 0x84
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ movs r0, 0x94
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086DA8: .4byte gPlayerAvatar
+_08086DAC: .4byte gSprites
+ thumb_func_end sub_8086D70
+
+ thumb_func_start sub_8086DB0
+sub_8086DB0: @ 8086DB0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _08086E08
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08086E0C
+ adds r5, r0, r1
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0x84
+ bl Cos
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0x94
+ bl Sin
+ strh r0, [r5, 0x26]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08086DEE
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+_08086DEE:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08086DFE
+ strh r0, [r5, 0x24]
+ strh r0, [r5, 0x26]
+ movs r0, 0x5
+ strh r0, [r4, 0x8]
+_08086DFE:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086E08: .4byte gPlayerAvatar
+_08086E0C: .4byte gSprites
+ thumb_func_end sub_8086DB0
+
+ thumb_func_start sub_8086E10
+sub_8086E10: @ 8086E10
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08086E48
+ ldrb r0, [r0, 0x4]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08086E4C
+ adds r4, r0
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ movs r0, 0x7C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ movs r0, 0x76
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086E48: .4byte gPlayerAvatar
+_08086E4C: .4byte gSprites
+ thumb_func_end sub_8086E10
+
+ thumb_func_start sub_8086E50
+sub_8086E50: @ 8086E50
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _08086EA8
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08086EAC
+ adds r5, r0, r1
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0x7C
+ bl Cos
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0x76
+ bl Sin
+ strh r0, [r5, 0x26]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08086E8E
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+_08086E8E:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08086EA0
+ strh r0, [r5, 0x24]
+ strh r0, [r5, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08086EA0:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086EA8: .4byte gPlayerAvatar
+_08086EAC: .4byte gSprites
+ thumb_func_end sub_8086E50
+
+ thumb_func_start sub_8086EB0
+sub_8086EB0: @ 8086EB0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80B4850
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086ECC
+ bl sub_80B483C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _08086ECE
+_08086ECC:
+ movs r0, 0
+_08086ECE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086EB0
+
+ thumb_func_start sub_8086ED4
+sub_8086ED4: @ 8086ED4
+ push {r4,lr}
+ ldr r0, _08086F20
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08086F24
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08086F18
+ bl CameraObjectReset1
+ bl ScriptContext2_Disable
+ movs r0, 0x4
+ bl GetGoSpeed0AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldr r0, _08086F28
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08086F18:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086F20: .4byte gPlayerAvatar
+_08086F24: .4byte gMapObjects
+_08086F28: .4byte sub_8086CBC
+ thumb_func_end sub_8086ED4
+
+ thumb_func_start sub_8086F2C
+sub_8086F2C: @ 8086F2C
+ push {r4,lr}
+ ldr r4, _08086F58
+ adds r0, r4, 0
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08086F5C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _08086F60
+ ldr r2, [r2]
+ strh r2, [r1, 0xA]
+ bl _call_via_r4
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086F58: .4byte sub_8086F64
+_08086F5C: .4byte gTasks
+_08086F60: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8086F2C
+
+ thumb_func_start sub_8086F64
+sub_8086F64: @ 8086F64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08086FA0
+ ldr r2, _08086FA4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08086F76:
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ lsls r2, 2
+ adds r2, r5
+ ldr r0, _08086FA8
+ ldrb r0, [r0, 0x5]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08086FAC
+ adds r1, r0
+ ldr r2, [r2]
+ adds r0, r4, 0
+ bl _call_via_r2
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086F76
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086FA0: .4byte gUnknown_0839F31C
+_08086FA4: .4byte gTasks
+_08086FA8: .4byte gPlayerAvatar
+_08086FAC: .4byte gMapObjects
+ thumb_func_end sub_8086F64
+
+ thumb_func_start sub_8086FB0
+sub_8086FB0: @ 8086FB0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl ScriptContext2_Enable
+ ldr r1, _08086FCC
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08086FCC: .4byte gPlayerAvatar
+ thumb_func_end sub_8086FB0
+
+ thumb_func_start waterfall_1_do_anim_probably
+waterfall_1_do_anim_probably: @ 8086FD0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl ScriptContext2_Enable
+ adds r0, r5, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ bne _08087000
+ adds r0, r5, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ ldr r1, _08087008
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ movs r0, 0x3B
+ bl FieldEffectStart
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08087000:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08087008: .4byte gUnknown_0202FF84
+ thumb_func_end waterfall_1_do_anim_probably
+
+ thumb_func_start waterfall_2_wait_anim_finish_probably
+waterfall_2_wait_anim_finish_probably: @ 808700C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _08087026
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _08087028
+_08087026:
+ movs r0, 0
+_08087028:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end waterfall_2_wait_anim_finish_probably
+
+ thumb_func_start sub_8087030
+sub_8087030: @ 8087030
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0x2
+ bl GetSimpleGoAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8087030
+
+ thumb_func_start sub_8087058
+sub_8087058: @ 8087058
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808706E
+ movs r0, 0
+ b _080870AA
+_0808706E:
+ ldrb r0, [r4, 0x1E]
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080870A4
+ bl ScriptContext2_Disable
+ ldr r0, _0808709C
+ strb r4, [r0, 0x6]
+ ldr r0, _080870A0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0x2B
+ bl FieldEffectActiveListRemove
+ movs r0, 0
+ b _080870AA
+ .align 2, 0
+_0808709C: .4byte gPlayerAvatar
+_080870A0: .4byte sub_8086F64
+_080870A4:
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+_080870AA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8087058
+
+ thumb_func_start sub_80870B0
+sub_80870B0: @ 80870B0
+ push {r4,lr}
+ ldr r4, _080870E0
+ adds r0, r4, 0
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080870E4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080870E8
+ ldr r2, [r3]
+ strh r2, [r1, 0x26]
+ ldr r2, [r3, 0x4]
+ strh r2, [r1, 0x24]
+ bl _call_via_r4
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080870E0: .4byte sub_80870EC
+_080870E4: .4byte gTasks
+_080870E8: .4byte gUnknown_0202FF84
+ thumb_func_end sub_80870B0
+
+ thumb_func_start sub_80870EC
+sub_80870EC: @ 80870EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0808711C
+ ldr r2, _08087120
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080870FE:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080870FE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808711C: .4byte gUnknown_0839F330
+_08087120: .4byte gTasks
+ thumb_func_end sub_80870EC
+
+ thumb_func_start sub_8087124
+sub_8087124: @ 8087124
+ ldr r2, _08087134
+ movs r1, 0x1
+ strb r1, [r2, 0x6]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r0, 0
+ bx lr
+ .align 2, 0
+_08087134: .4byte gPlayerAvatar
+ thumb_func_end sub_8087124
+
+ thumb_func_start dive_2_unknown
+dive_2_unknown: @ 8087138
+ push {r4,lr}
+ adds r4, r0, 0
+ bl ScriptContext2_Enable
+ ldr r1, _0808715C
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ movs r0, 0x3B
+ bl FieldEffectStart
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808715C: .4byte gUnknown_0202FF84
+ thumb_func_end dive_2_unknown
+
+ thumb_func_start dive_3_unknown
+dive_3_unknown: @ 8087160
+ push {lr}
+ sub sp, 0x8
+ mov r1, sp
+ adds r1, 0x2
+ mov r0, sp
+ bl PlayerGetDestCoords
+ movs r0, 0x6
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _080871A4
+ ldr r2, _080871AC
+ ldr r0, _080871B0
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1E]
+ mov r0, sp
+ bl dive_warp
+ ldr r0, _080871B4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0x2C
+ bl FieldEffectActiveListRemove
+_080871A4:
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080871AC: .4byte gMapObjects
+_080871B0: .4byte gPlayerAvatar
+_080871B4: .4byte sub_80870EC
+ thumb_func_end dive_3_unknown
+
+ thumb_func_start sub_80871B8
+sub_80871B8: @ 80871B8
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080871CC
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080871CC: .4byte sub_80871D0
+ thumb_func_end sub_80871B8
+
+ thumb_func_start sub_80871D0
+sub_80871D0: @ 80871D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _08087218
+ ldr r2, _0808721C
+ ldr r5, _08087220
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080871E4:
+ movs r0, 0x8
+ ldrsh r3, [r4, r0]
+ lsls r3, 2
+ adds r3, r6
+ ldrb r0, [r5, 0x5]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08087224
+ adds r1, r0
+ ldrb r0, [r5, 0x4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08087228
+ adds r2, r0
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+ lsls r0, 24
+ cmp r0, 0
+ bne _080871E4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087218: .4byte gUnknown_0839F33C
+_0808721C: .4byte gTasks
+_08087220: .4byte gPlayerAvatar
+_08087224: .4byte gMapObjects
+_08087228: .4byte gSprites
+ thumb_func_end sub_80871D0
+
+ thumb_func_start sub_808722C
+sub_808722C: @ 808722C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl player_bitmagic
+ bl CameraObjectReset2
+ movs r0, 0
+ bl SetCameraPanningCallback
+ ldr r0, _08087260
+ movs r2, 0x1
+ strb r2, [r0, 0x6]
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08087260: .4byte gPlayerAvatar
+ thumb_func_end sub_808722C
+
+ thumb_func_start sub_8087264
+sub_8087264: @ 8087264
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl SetCameraPanning
+ ldrh r0, [r4, 0xA]
+ negs r0, r0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08087290
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08087290:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8087264
+
+ thumb_func_start sub_8087298
+sub_8087298: @ 8087298
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0x26]
+ movs r0, 0x1
+ strh r0, [r4, 0xE]
+ ldr r3, _080872E0
+ movs r5, 0x10
+ ldrsh r0, [r1, r5]
+ str r0, [r3]
+ movs r5, 0x12
+ ldrsh r0, [r1, r5]
+ str r0, [r3, 0x4]
+ adds r0, r2, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+ str r0, [r3, 0x8]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 28
+ lsrs r0, 30
+ str r0, [r3, 0xC]
+ movs r0, 0x32
+ bl FieldEffectStart
+ movs r0, 0xB2
+ bl PlaySE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080872E0: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8087298
+
+ thumb_func_start sub_80872E4
+sub_80872E4: @ 80872E4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl SetCameraPanning
+ ldrh r0, [r4, 0xA]
+ negs r2, r0
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ bgt _0808731E
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _08087330
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bgt _08087330
+ lsls r0, r2, 1
+ b _0808732E
+_0808731E:
+ movs r0, 0x4
+ ands r1, r0
+ cmp r1, 0
+ bne _08087330
+ lsls r0, r2, 16
+ cmp r0, 0
+ ble _08087330
+ asrs r0, 17
+_0808732E:
+ strh r0, [r4, 0xA]
+_08087330:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ ble _0808737C
+ adds r0, r5, 0
+ adds r0, 0x29
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r2, r1, 17
+ negs r2, r2
+ movs r7, 0x26
+ ldrsh r3, [r5, r7]
+ movs r7, 0x22
+ ldrsh r0, [r5, r7]
+ adds r0, r1
+ ldr r1, _08087374
+ movs r7, 0
+ ldrsh r1, [r1, r7]
+ adds r0, r1
+ asrs r2, 16
+ adds r0, r2
+ cmn r3, r0
+ ble _08087378
+ ldrh r0, [r5, 0x26]
+ ldrh r1, [r4, 0xE]
+ subs r0, r1
+ strh r0, [r5, 0x26]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bgt _0808737C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _0808737C
+ .align 2, 0
+_08087374: .4byte gSpriteCoordOffsetY
+_08087378:
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+_0808737C:
+ ldrh r2, [r4, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080873BA
+ movs r7, 0x26
+ ldrsh r1, [r5, r7]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080873BA
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x12]
+ ldrb r0, [r6, 0x3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r6, 0x3]
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+ adds r2, r5, 0
+ adds r2, 0x42
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+_080873BA:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080873D0
+ movs r7, 0x10
+ ldrsh r0, [r4, r7]
+ cmp r0, 0
+ beq _080873D0
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080873D0:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80872E4
+
+ thumb_func_start sub_80873D8
+sub_80873D8: @ 80873D8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8053FF8
+ bl sub_8080918
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80873D8
+
+ thumb_func_start sub_80873F4
+sub_80873F4: @ 80873F4
+ push {lr}
+ ldr r0, _08087434
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808742C
+ bl sub_8054034
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808742C
+ bl warp_in
+ ldr r1, _08087438
+ ldr r0, _0808743C
+ str r0, [r1]
+ ldr r0, _08087440
+ bl SetMainCallback2
+ ldr r0, _08087444
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0808742C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08087434: .4byte gPaletteFade
+_08087438: .4byte gUnknown_0300485C
+_0808743C: .4byte mapldr_080851BC
+_08087440: .4byte CB2_LoadMap
+_08087444: .4byte sub_80871D0
+ thumb_func_end sub_80873F4
+
+ thumb_func_start mapldr_080851BC
+mapldr_080851BC: @ 8087448
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_for_maplights
+ bl ScriptContext2_Enable
+ ldr r0, _08087468
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _0808746C
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087468: .4byte gUnknown_0300485C
+_0808746C: .4byte sub_8087470
+ thumb_func_end mapldr_080851BC
+
+ thumb_func_start sub_8087470
+sub_8087470: @ 8087470
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _080874B8
+ ldr r2, _080874BC
+ ldr r5, _080874C0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08087484:
+ movs r0, 0x8
+ ldrsh r3, [r4, r0]
+ lsls r3, 2
+ adds r3, r6
+ ldrb r0, [r5, 0x5]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080874C4
+ adds r1, r0
+ ldrb r0, [r5, 0x4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _080874C8
+ adds r2, r0
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+ lsls r0, 24
+ cmp r0, 0
+ bne _08087484
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080874B8: .4byte gUnknown_0839F354
+_080874BC: .4byte gTasks
+_080874C0: .4byte gPlayerAvatar
+_080874C4: .4byte gMapObjects
+_080874C8: .4byte gSprites
+ thumb_func_end sub_8087470
+
+ thumb_func_start sub_80874CC
+sub_80874CC: @ 80874CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl CameraObjectReset2
+ bl player_bitmagic
+ ldr r1, _080874F8
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080874F8: .4byte gPlayerAvatar
+ thumb_func_end sub_80874CC
+
+ thumb_func_start sub_80874FC
+sub_80874FC: @ 80874FC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808753C
+ ldr r1, _08087544
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ str r0, [r1]
+ movs r2, 0x12
+ ldrsh r0, [r5, r2]
+ str r0, [r1, 0x4]
+ adds r0, r6, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+ str r0, [r1, 0x8]
+ ldrb r0, [r6, 0x5]
+ lsls r0, 28
+ lsrs r0, 30
+ str r0, [r1, 0xC]
+ movs r0, 0x31
+ bl FieldEffectStart
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0808753C:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08087544: .4byte gUnknown_0202FF84
+ thumb_func_end sub_80874FC
+
+ thumb_func_start sub_8087548
+sub_8087548: @ 8087548
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08087598
+ adds r0, r1
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08087590
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl CameraObjectReset1
+ movs r0, 0xAF
+ bl PlaySE
+ movs r0, 0x4
+ bl sub_80608A4
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+_08087590:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08087598: .4byte gSprites
+ thumb_func_end sub_8087548
+
+ thumb_func_start sub_808759C
+sub_808759C: @ 808759C
+ push {lr}
+ adds r0, r1, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080875C6
+ ldr r1, _080875CC
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ bl ScriptContext2_Disable
+ bl sub_806451C
+ ldr r0, _080875D0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_080875C6:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080875CC: .4byte gPlayerAvatar
+_080875D0: .4byte sub_8087470
+ thumb_func_end sub_808759C
+
+ thumb_func_start sub_80875D4
+sub_80875D4: @ 80875D4
+ push {r4,lr}
+ ldr r4, _0808762C
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08087630
+ adds r0, 0x84
+ ldr r0, [r0]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08087634
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ movs r1, 0x3
+ ldrb r3, [r4, 0xC]
+ ands r3, r1
+ lsls r3, 2
+ ldrb r4, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r3, 0x2
+ orrs r1, r3
+ strb r1, [r2]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808762C: .4byte gUnknown_0202FF84
+_08087630: .4byte gFieldEffectObjectTemplatePointers
+_08087634: .4byte gSprites
+ thumb_func_end sub_80875D4
+
+ thumb_func_start sub_8087638
+sub_8087638: @ 8087638
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08087650
+ adds r0, r2, 0
+ movs r1, 0x32
+ bl FieldEffectStop
+_08087650:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8087638
+
+ thumb_func_start sub_8087654
+sub_8087654: @ 8087654
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08087668
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087668: .4byte sub_808766C
+ thumb_func_end sub_8087654
+
+ thumb_func_start sub_808766C
+sub_808766C: @ 808766C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _080876B4
+ ldr r2, _080876B8
+ ldr r5, _080876BC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08087680:
+ movs r0, 0x8
+ ldrsh r3, [r4, r0]
+ lsls r3, 2
+ adds r3, r6
+ ldrb r0, [r5, 0x5]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080876C0
+ adds r1, r0
+ ldrb r0, [r5, 0x4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _080876C4
+ adds r2, r0
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+ lsls r0, 24
+ cmp r0, 0
+ bne _08087680
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080876B4: .4byte gUnknown_0839F364
+_080876B8: .4byte gTasks
+_080876BC: .4byte gPlayerAvatar
+_080876C0: .4byte gMapObjects
+_080876C4: .4byte gSprites
+ thumb_func_end sub_808766C
+
+ thumb_func_start sub_80876C8
+sub_80876C8: @ 80876C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl player_bitmagic
+ bl CameraObjectReset2
+ ldr r1, _080876F4
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080876F4: .4byte gPlayerAvatar
+ thumb_func_end sub_80876C8
+
+ thumb_func_start sub_80876F8
+sub_80876F8: @ 80876F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808776C
+ ldrh r1, [r5, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x3
+ ble _0808774C
+ ldr r1, _08087748
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ str r0, [r1, 0x4]
+ adds r0, r6, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+ str r0, [r1, 0x8]
+ ldrb r0, [r6, 0x5]
+ lsls r0, 28
+ lsrs r0, 30
+ str r0, [r1, 0xC]
+ movs r0, 0x31
+ bl FieldEffectStart
+ strh r0, [r5, 0xA]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _0808776C
+ .align 2, 0
+_08087748: .4byte gUnknown_0202FF84
+_0808774C:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0xA]
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl GetStepInPlaceDelay4AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ movs r0, 0x27
+ bl PlaySE
+_0808776C:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80876F8
+
+ thumb_func_start sub_8087774
+sub_8087774: @ 8087774
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ ldr r2, _080877A8
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0808779E
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_0808779E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080877A8: .4byte gSprites
+ thumb_func_end sub_8087774
+
+ thumb_func_start sub_80877AC
+sub_80877AC: @ 80877AC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x31
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _080877CA
+ bl sub_8053FF8
+ bl sub_8080918
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080877CA:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80877AC
+
+ thumb_func_start sub_80877D4
+sub_80877D4: @ 80877D4
+ push {lr}
+ ldr r0, _08087814
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808780C
+ bl sub_8054034
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808780C
+ bl warp_in
+ ldr r1, _08087818
+ ldr r0, _0808781C
+ str r0, [r1]
+ ldr r0, _08087820
+ bl SetMainCallback2
+ ldr r0, _08087824
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0808780C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08087814: .4byte gPaletteFade
+_08087818: .4byte gUnknown_0300485C
+_0808781C: .4byte sub_8086748
+_08087820: .4byte CB2_LoadMap
+_08087824: .4byte sub_808766C
+ thumb_func_end sub_80877D4
+
+ thumb_func_start sub_8087828
+sub_8087828: @ 8087828
+ push {r4,lr}
+ ldr r4, _08087880
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08087884
+ adds r0, 0x80
+ ldr r0, [r0]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08087888
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ movs r1, 0x3
+ ldrb r3, [r4, 0xC]
+ ands r3, r1
+ lsls r3, 2
+ ldrb r4, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r3, 0x2
+ orrs r1, r3
+ strb r1, [r2]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08087880: .4byte gUnknown_0202FF84
+_08087884: .4byte gFieldEffectObjectTemplatePointers
+_08087888: .4byte gSprites
+ thumb_func_end sub_8087828
+
+ thumb_func_start sub_808788C
+sub_808788C: @ 808788C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080878A4
+ adds r0, r2, 0
+ movs r1, 0x31
+ bl FieldEffectStop
+_080878A4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808788C
+
+ thumb_func_start sub_80878A8
+sub_80878A8: @ 80878A8
+ push {lr}
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ ldr r0, _080878C0
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080878C0: .4byte sub_80878C4
+ thumb_func_end sub_80878A8
+
+ thumb_func_start sub_80878C4
+sub_80878C4: @ 80878C4
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080878EC
+ ldr r2, _080878F0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080878EC: .4byte gUnknown_0839F378
+_080878F0: .4byte gTasks
+ thumb_func_end sub_80878C4
+
+ thumb_func_start sub_80878F4
+sub_80878F4: @ 80878F4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x40
+ strh r0, [r4, 0x24]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80878F4
+
+ thumb_func_start sub_8087914
+sub_8087914: @ 8087914
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _080879B8
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ ldrh r1, [r4, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08087940
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08087940
+ bl sub_8053FF8
+ bl sub_8080918
+_08087940:
+ ldr r0, _080879BC
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080879C0
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08087966
+ adds r0, r5, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08087A20
+_08087966:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080879D8
+ ldr r0, _080879C4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080879D8
+ bl sub_8054034
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080879D8
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldObjectSetDirection
+ bl sub_8053678
+ bl warp_in
+ ldr r1, _080879C8
+ ldr r0, _080879CC
+ str r0, [r1]
+ ldr r0, _080879D0
+ bl SetMainCallback2
+ ldr r0, _080879D4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _08087A20
+ .align 2, 0
+_080879B8: .4byte gUnknown_0839F380
+_080879BC: .4byte gPlayerAvatar
+_080879C0: .4byte gMapObjects
+_080879C4: .4byte gPaletteFade
+_080879C8: .4byte gUnknown_0300485C
+_080879CC: .4byte mapldr_080859D4
+_080879D0: .4byte CB2_LoadMap
+_080879D4: .4byte sub_80878C4
+_080879D8:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080879EC
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08087A20
+_080879EC:
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ add r0, sp
+ ldrb r0, [r0]
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB
+ bgt _08087A14
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_08087A14:
+ ldrh r1, [r4, 0xC]
+ lsls r1, 16
+ asrs r1, 18
+ movs r0, 0x8
+ asrs r0, r1
+ strh r0, [r4, 0xA]
+_08087A20:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8087914
+
+ thumb_func_start mapldr_080859D4
+mapldr_080859D4: @ 8087A28
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_for_maplights
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ ldr r1, _08087A64
+ movs r0, 0
+ str r0, [r1]
+ ldr r2, _08087A68
+ ldr r0, _08087A6C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldr r0, _08087A70
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087A64: .4byte gUnknown_0300485C
+_08087A68: .4byte gMapObjects
+_08087A6C: .4byte gPlayerAvatar
+_08087A70: .4byte sub_8087A74
+ thumb_func_end mapldr_080859D4
+
+ thumb_func_start sub_8087A74
+sub_8087A74: @ 8087A74
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08087A9C
+ ldr r2, _08087AA0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087A9C: .4byte gUnknown_0839F388
+_08087AA0: .4byte gTasks
+ thumb_func_end sub_8087A74
+
+ thumb_func_start sub_8087AA4
+sub_8087AA4: @ 8087AA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ beq _08087AC2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+_08087AC2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8087AA4
+
+ thumb_func_start sub_8087AC8
+sub_8087AC8: @ 8087AC8
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r1, _08087B4C
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ ldr r0, _08087B50
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08087B54
+ adds r6, r0, r1
+ ldrh r1, [r5, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08087AFA
+ subs r0, r1, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08087B8C
+_08087AFA:
+ adds r0, r6, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08087B12
+ adds r0, r6, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08087BA0
+_08087B12:
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1F
+ ble _08087B5C
+ movs r2, 0x26
+ ldrsh r4, [r5, r2]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _08087B5C
+ ldrb r1, [r6, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r6, 0x1]
+ bl ScriptContext2_Disable
+ bl sub_806451C
+ ldr r0, _08087B58
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _08087BA0
+ .align 2, 0
+_08087B4C: .4byte gUnknown_0839F380
+_08087B50: .4byte gPlayerAvatar
+_08087B54: .4byte gMapObjects
+_08087B58: .4byte sub_8087A74
+_08087B5C:
+ ldrb r0, [r6, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ add r0, sp
+ ldrb r0, [r0]
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r1, [r5, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1F
+ bgt _08087B84
+ adds r0, r1, 0x1
+ strh r0, [r5, 0xC]
+_08087B84:
+ ldrh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 18
+ strh r0, [r5, 0xA]
+_08087B8C:
+ ldrb r2, [r6, 0x1]
+ lsls r1, r2, 26
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 5
+ subs r0, 0x22
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+_08087BA0:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8087AC8
+
+ thumb_func_start sub_8087BA8
+sub_8087BA8: @ 8087BA8
+ push {lr}
+ ldr r0, _08087BB8
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087BB8: .4byte sub_8087BBC
+ thumb_func_end sub_8087BA8
+
+ thumb_func_start sub_8087BBC
+sub_8087BBC: @ 8087BBC
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08087BE4
+ ldr r2, _08087BE8
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087BE4: .4byte gUnknown_0839F390
+_08087BE8: .4byte gTasks
+ thumb_func_end sub_8087BBC
+
+ thumb_func_start sub_8087BEC
+sub_8087BEC: @ 8087BEC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ bl CameraObjectReset2
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8087BEC
+
+ thumb_func_start sub_8087C14
+sub_8087C14: @ 8087C14
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _08087C98
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ ldr r0, _08087C9C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08087CA0
+ adds r5, r0, r1
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08087C46
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08087C60
+_08087C46:
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ add r0, sp
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl FieldObjectTurn
+ movs r0, 0x8
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_08087C60:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ ble _08087C8E
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r1, r0
+ bne _08087C8E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+ movs r0, 0x1
+ strh r0, [r4, 0xE]
+ movs r0, 0x2D
+ bl PlaySE
+_08087C8E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087C98: .4byte gUnknown_0839F380
+_08087C9C: .4byte gPlayerAvatar
+_08087CA0: .4byte gMapObjects
+ thumb_func_end sub_8087C14
+
+ thumb_func_start sub_8087CA4
+sub_8087CA4: @ 8087CA4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _08087D68
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ ldr r2, _08087D6C
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08087D70
+ adds r3, r0, r1
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08087D74
+ adds r5, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08087CEE
+ movs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldrb r0, [r3, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ add r0, sp
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ bl FieldObjectTurn
+_08087CEE:
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ adds r0, r1, r2
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08087D1A
+ movs r0, 0x4
+ strh r0, [r4, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bgt _08087D1A
+ lsls r0, r1, 1
+ strh r0, [r4, 0xE]
+_08087D1A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ ble _08087D48
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ adds r2, r5, 0
+ adds r2, 0x42
+ ldrb r1, [r2]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _08087D48
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+_08087D48:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xA7
+ ble _08087D5E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl sub_8053FF8
+ bl sub_8080918
+_08087D5E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087D68: .4byte gUnknown_0839F380
+_08087D6C: .4byte gPlayerAvatar
+_08087D70: .4byte gMapObjects
+_08087D74: .4byte gSprites
+ thumb_func_end sub_8087CA4
+
+ thumb_func_start sub_8087D78
+sub_8087D78: @ 8087D78
+ push {lr}
+ ldr r0, _08087DB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08087DB4
+ bl sub_8054034
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08087DB4
+ bl sub_8053570
+ bl warp_in
+ ldr r0, _08087DBC
+ bl SetMainCallback2
+ ldr r1, _08087DC0
+ ldr r0, _08087DC4
+ str r0, [r1]
+ ldr r0, _08087DC8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08087DB4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087DB8: .4byte gPaletteFade
+_08087DBC: .4byte CB2_LoadMap
+_08087DC0: .4byte gUnknown_0300485C
+_08087DC4: .4byte mapldr_08085D88
+_08087DC8: .4byte sub_8087BBC
+ thumb_func_end sub_8087D78
+
+ thumb_func_start mapldr_08085D88
+mapldr_08085D88: @ 8087DCC
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_for_maplights
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ ldr r1, _08087E0C
+ movs r0, 0
+ str r0, [r1]
+ ldr r2, _08087E10
+ ldr r0, _08087E14
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl CameraObjectReset2
+ ldr r0, _08087E18
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087E0C: .4byte gUnknown_0300485C
+_08087E10: .4byte gMapObjects
+_08087E14: .4byte gPlayerAvatar
+_08087E18: .4byte sub_8087E1C
+ thumb_func_end mapldr_08085D88
+
+ thumb_func_start sub_8087E1C
+sub_8087E1C: @ 8087E1C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08087E44
+ ldr r2, _08087E48
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087E44: .4byte gUnknown_0839F3A0
+_08087E48: .4byte gTasks
+ thumb_func_end sub_8087E1C
+
+ thumb_func_start sub_8087E4C
+sub_8087E4C: @ 8087E4C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ beq _08087EC2
+ ldr r5, _08087EC8
+ ldrb r0, [r5, 0x4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08087ECC
+ adds r2, r0
+ adds r0, r2, 0
+ adds r0, 0x29
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ lsls r0, r4, 17
+ negs r0, r0
+ ldrh r1, [r2, 0x22]
+ ldr r3, _08087ED0
+ adds r1, r4
+ ldrh r3, [r3]
+ adds r1, r3
+ asrs r0, 16
+ adds r0, r1
+ negs r0, r0
+ strh r0, [r2, 0x26]
+ ldr r3, _08087ED4
+ ldrb r0, [r5, 0x5]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r3, [r1, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r3
+ strb r0, [r1, 0x1]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ movs r0, 0x8
+ strh r0, [r6, 0xA]
+ movs r0, 0x1
+ strh r0, [r6, 0xC]
+ adds r2, 0x42
+ ldrb r0, [r2]
+ lsrs r0, 6
+ strh r0, [r6, 0x24]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ movs r0, 0x2D
+ bl PlaySE
+_08087EC2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087EC8: .4byte gPlayerAvatar
+_08087ECC: .4byte gSprites
+_08087ED0: .4byte gSpriteCoordOffsetY
+_08087ED4: .4byte gMapObjects
+ thumb_func_end sub_8087E4C
+
+ thumb_func_start sub_8087ED8
+sub_8087ED8: @ 8087ED8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _08087F40
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ ldr r2, _08087F44
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08087F48
+ adds r6, r0, r1
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08087F4C
+ adds r5, r0, r1
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ blt _08087F50
+ ldrh r1, [r4, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08087F76
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x22]
+ ldrb r0, [r6]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r6]
+ ldrh r1, [r4, 0x24]
+ adds r3, r5, 0
+ adds r3, 0x42
+ lsls r1, 6
+ ldrb r2, [r3]
+ movs r0, 0x3F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _08087F76
+ .align 2, 0
+_08087F40: .4byte gUnknown_0839F380
+_08087F44: .4byte gPlayerAvatar
+_08087F48: .4byte gMapObjects
+_08087F4C: .4byte gSprites
+_08087F50:
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ adds r2, r5, 0
+ adds r2, 0x42
+ ldrb r1, [r2]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _08087F76
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+_08087F76:
+ ldrh r2, [r5, 0x26]
+ movs r3, 0x26
+ ldrsh r1, [r5, r3]
+ movs r0, 0x30
+ negs r0, r0
+ cmp r1, r0
+ blt _08087F9A
+ ldrh r1, [r4, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ ble _08087F9A
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _08087F9A
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+_08087F9A:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ movs r7, 0
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08087FBC
+ movs r0, 0x4
+ strh r0, [r4, 0xC]
+ ldrb r0, [r6, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ add r0, sp
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl FieldObjectTurn
+_08087FBC:
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ blt _08087FD2
+ strh r7, [r5, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+ strh r7, [r4, 0xC]
+_08087FD2:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8087ED8
+
+ thumb_func_start sub_8087FDC
+sub_8087FDC: @ 8087FDC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _08088058
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ ldr r0, _0808805C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088060
+ adds r5, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08088050
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ add r0, sp
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl FieldObjectTurn
+ movs r0, 0x8
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08088050
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r1, r0
+ bne _08088050
+ bl ScriptContext2_Disable
+ bl CameraObjectReset1
+ bl sub_806451C
+ ldr r0, _08088064
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08088050:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088058: .4byte gUnknown_0839F380
+_0808805C: .4byte gPlayerAvatar
+_08088060: .4byte gMapObjects
+_08088064: .4byte sub_8087E1C
+ thumb_func_end sub_8087FDC
+
+ thumb_func_start sub_8088068
+sub_8088068: @ 8088068
+ push {r4,lr}
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08088088
+ ldr r0, _08088084
+ b _0808808A
+ .align 2, 0
+_08088084: .4byte sub_8088120
+_08088088:
+ ldr r0, _080880B8
+_0808808A:
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080880BC
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_8088830
+ ldr r2, _080880C0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x26]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080880B8: .4byte sub_808847C
+_080880BC: .4byte gUnknown_0202FF84
+_080880C0: .4byte gTasks
+ thumb_func_end sub_8088068
+
+ thumb_func_start sub_80880C4
+sub_80880C4: @ 80880C4
+ push {r4-r6,lr}
+ ldr r5, _08088118
+ ldr r0, [r5]
+ movs r6, 0x80
+ lsls r6, 24
+ ands r6, r0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, _0808811C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ str r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [r5, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r5, 0x8]
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ movs r0, 0x6
+ bl FieldEffectStart
+ movs r0, 0x3B
+ bl FieldEffectActiveListRemove
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08088118: .4byte gUnknown_0202FF84
+_0808811C: .4byte gPlayerParty
+ thumb_func_end sub_80880C4
+
+ thumb_func_start sub_8088120
+sub_8088120: @ 8088120
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08088148
+ ldr r2, _0808814C
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088148: .4byte gUnknown_0839F3AC
+_0808814C: .4byte gTasks
+ thumb_func_end sub_8088120
+
+ thumb_func_start sub_8088150
+sub_8088150: @ 8088150
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080881A0
+ ldrh r0, [r6]
+ strh r0, [r4, 0x1E]
+ ldr r5, _080881A4
+ ldrh r0, [r5]
+ strh r0, [r4, 0x20]
+ adds r0, r4, 0
+ adds r0, 0x22
+ ldr r1, _080881A8
+ ldr r1, [r1, 0xC]
+ bl StoreWordInTwoHalfwords
+ ldr r1, _080881AC
+ strh r1, [r4, 0xA]
+ ldr r0, _080881B0
+ strh r0, [r4, 0xC]
+ movs r0, 0x3F
+ strh r0, [r4, 0xE]
+ movs r0, 0x3E
+ strh r0, [r4, 0x10]
+ ldr r0, _080881B4
+ strh r1, [r0]
+ ldr r1, _080881B8
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xE]
+ strh r0, [r6]
+ ldrh r0, [r4, 0x10]
+ strh r0, [r5]
+ ldr r0, _080881BC
+ bl SetVBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080881A0: .4byte REG_WININ
+_080881A4: .4byte REG_WINOUT
+_080881A8: .4byte gMain
+_080881AC: .4byte 0x0000f0f1
+_080881B0: .4byte 0x00005051
+_080881B4: .4byte REG_WIN0H
+_080881B8: .4byte REG_WIN0V
+_080881BC: .4byte sub_80883DC
+ thumb_func_end sub_8088150
+
+ thumb_func_start sub_80881C0
+sub_80881C0: @ 80881C0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r0, _08088218
+ ldrh r1, [r0]
+ lsrs r1, 2
+ lsls r1, 30
+ lsrs r1, 16
+ ldrh r4, [r0]
+ lsrs r4, 8
+ lsls r4, 27
+ lsrs r4, 16
+ ldr r0, _0808821C
+ movs r5, 0xC0
+ lsls r5, 19
+ adds r1, r5
+ movs r2, 0x80
+ lsls r2, 1
+ bl CpuSet
+ movs r0, 0
+ str r0, [sp]
+ adds r5, r4, r5
+ ldr r2, _08088220
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuSet
+ ldr r0, _08088224
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r4, 0
+ bl sub_808843C
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088218: .4byte REG_BG0CNT
+_0808821C: .4byte gFieldMoveStreaksTiles
+_08088220: .4byte 0x05000200
+_08088224: .4byte gFieldMoveStreaksPalette
+ thumb_func_end sub_80881C0
+
+ thumb_func_start sub_8088228
+sub_8088228: @ 8088228
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x12]
+ subs r0, 0x10
+ strh r0, [r3, 0x12]
+ ldrh r6, [r3, 0xA]
+ ldrh r2, [r3, 0xC]
+ movs r7, 0xFF
+ lsrs r1, r6, 8
+ subs r1, 0x10
+ lsls r1, 16
+ lsrs r0, r2, 8
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r7, 0
+ ands r0, r2
+ adds r5, r0, 0x2
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _08088254
+ movs r2, 0
+_08088254:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ bgt _0808825E
+ movs r4, 0x28
+_0808825E:
+ cmp r5, 0x78
+ ble _08088264
+ movs r5, 0x78
+_08088264:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 8
+ adds r0, r7, 0
+ ands r0, r6
+ orrs r1, r0
+ strh r1, [r3, 0xA]
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ lsls r0, r4, 8
+ adds r1, r5, 0
+ orrs r0, r1
+ strh r0, [r3, 0xC]
+ cmp r2, 0
+ bne _080882A4
+ cmp r4, 0x28
+ bne _080882A4
+ cmp r1, 0x78
+ bne _080882A4
+ ldr r2, _080882AC
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080882B0
+ str r1, [r0]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_080882A4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080882AC: .4byte gSprites
+_080882B0: .4byte sub_8088890
+ thumb_func_end sub_8088228
+
+ thumb_func_start sub_80882B4
+sub_80882B4: @ 80882B4
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x12]
+ subs r0, 0x10
+ strh r0, [r3, 0x12]
+ ldr r2, _080882E0
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3C
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080882DA
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_080882DA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080882E0: .4byte gSprites
+ thumb_func_end sub_80882B4
+
+ thumb_func_start sub_80882E4
+sub_80882E4: @ 80882E4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x12]
+ subs r0, 0x10
+ strh r0, [r3, 0x12]
+ ldrh r2, [r3, 0xC]
+ lsls r1, r2, 16
+ movs r0, 0xFF
+ asrs r1, 24
+ adds r1, 0x6
+ lsls r1, 16
+ ands r0, r2
+ subs r0, 0x6
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsrs r4, r1, 16
+ asrs r1, 16
+ cmp r1, 0x50
+ ble _0808830C
+ movs r4, 0x50
+_0808830C:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x50
+ bgt _08088316
+ movs r2, 0x51
+_08088316:
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r0, 8
+ lsls r2, 16
+ asrs r2, 16
+ orrs r1, r2
+ strh r1, [r3, 0xC]
+ cmp r0, 0x50
+ bne _08088332
+ cmp r2, 0x51
+ bne _08088332
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_08088332:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80882E4
+
+ thumb_func_start sub_8088338
+sub_8088338: @ 8088338
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, _08088378
+ ldrh r1, [r0]
+ lsrs r1, 8
+ lsls r1, 27
+ lsrs r1, 16
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r1, r0
+ ldr r2, _0808837C
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0xF1
+ strh r0, [r4, 0xA]
+ movs r0, 0xA1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088378: .4byte REG_BG0CNT
+_0808837C: .4byte 0x05000200
+ thumb_func_end sub_8088338
+
+ thumb_func_start sub_8088380
+sub_8088380: @ 8088380
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r0, 0x22
+ mov r1, sp
+ bl LoadWordFromTwoHalfwords
+ ldr r0, [sp]
+ bl SetVBlankCallback
+ ldr r4, _080883D0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080883D4
+ adds r0, r1
+ bl sub_8085C44
+ movs r0, 0x6
+ bl FieldEffectActiveListRemove
+ ldr r0, _080883D8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080883D0: .4byte gWindowConfig_81E6CE4
+_080883D4: .4byte gSprites
+_080883D8: .4byte sub_8088120
+ thumb_func_end sub_8088380
+
+ thumb_func_start sub_80883DC
+sub_80883DC: @ 80883DC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08088430
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _08088434
+ adds r4, r0
+ adds r0, r4, 0
+ adds r0, 0x22
+ mov r1, sp
+ bl LoadWordFromTwoHalfwords
+ ldr r0, [sp]
+ bl _call_via_r0
+ ldr r1, _08088438
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldrh r0, [r4, 0xE]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x10]
+ strh r0, [r1]
+ subs r1, 0x3A
+ ldrh r0, [r4, 0x12]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x14]
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088430: .4byte sub_8088120
+_08088434: .4byte gTasks
+_08088438: .4byte REG_WIN0H
+ thumb_func_end sub_80883DC
+
+ thumb_func_start sub_808843C
+sub_808843C: @ 808843C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08088470
+ adds r2, r0, r1
+ movs r1, 0
+ ldr r5, _08088474
+ movs r0, 0xF0
+ lsls r0, 8
+ adds r4, r0, 0
+ ldr r3, _08088478
+_08088452:
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ orrs r0, r4
+ strh r0, [r2]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, 0x2
+ cmp r1, r3
+ bls _08088452
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088470: .4byte 0x06000140
+_08088474: .4byte gFieldMoveStreaksTilemap
+_08088478: .4byte 0x0000013f
+ thumb_func_end sub_808843C
+
+ thumb_func_start sub_808847C
+sub_808847C: @ 808847C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080884A4
+ ldr r2, _080884A8
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080884A4: .4byte gUnknown_0839F3C8
+_080884A8: .4byte gTasks
+ thumb_func_end sub_808847C
+
+ thumb_func_start sub_80884AC
+sub_80884AC: @ 80884AC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080884DC
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x22
+ ldr r1, _080884E0
+ ldr r1, [r1, 0xC]
+ bl StoreWordInTwoHalfwords
+ ldr r0, _080884E4
+ bl SetVBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080884DC: .4byte REG_BG0HOFS
+_080884E0: .4byte gMain
+_080884E4: .4byte sub_80886B0
+ thumb_func_end sub_80884AC
+
+ thumb_func_start sub_80884E8
+sub_80884E8: @ 80884E8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r0, _08088544
+ ldrh r1, [r0]
+ lsrs r1, 2
+ lsls r1, 30
+ lsrs r1, 16
+ ldrh r4, [r0]
+ lsrs r4, 8
+ lsls r4, 27
+ lsrs r4, 16
+ movs r0, 0
+ mov r8, r0
+ strh r4, [r6, 0x20]
+ ldr r0, _08088548
+ movs r5, 0xC0
+ lsls r5, 19
+ adds r1, r5
+ movs r2, 0x40
+ bl CpuSet
+ mov r0, r8
+ str r0, [sp]
+ adds r4, r5
+ ldr r2, _0808854C
+ mov r0, sp
+ adds r1, r4, 0
+ bl CpuSet
+ ldr r0, _08088550
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088544: .4byte REG_BG0CNT
+_08088548: .4byte gDarknessFieldMoveStreaksTiles
+_0808854C: .4byte 0x05000200
+_08088550: .4byte gDarknessFieldMoveStreaksPalette
+ thumb_func_end sub_80884E8
+
+ thumb_func_start sub_8088554
+sub_8088554: @ 8088554
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8088708
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808858A
+ ldr r1, _08088598
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _0808859C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080885A0
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080885A4
+ str r1, [r0]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0808858A:
+ adds r0, r4, 0
+ bl sub_80886F8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088598: .4byte REG_WIN1H
+_0808859C: .4byte 0x00002878
+_080885A0: .4byte gSprites
+_080885A4: .4byte sub_8088890
+ thumb_func_end sub_8088554
+
+ thumb_func_start sub_80885A8
+sub_80885A8: @ 80885A8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80886F8
+ ldr r2, _080885D4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3C
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080885CC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080885CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080885D4: .4byte gSprites
+ thumb_func_end sub_80885A8
+
+ thumb_func_start sub_80885D8
+sub_80885D8: @ 80885D8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80886F8
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x7
+ ands r0, r1
+ movs r1, 0
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ ldr r0, _08088604
+ ldr r2, _08088608
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088604: .4byte REG_WIN1H
+_08088608: .4byte 0x0000ffff
+ thumb_func_end sub_80885D8
+
+ thumb_func_start sub_808860C
+sub_808860C: @ 808860C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80886F8
+ adds r0, r4, 0
+ bl sub_80887C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088626
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08088626:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808860C
+
+ thumb_func_start sub_808862C
+sub_808862C: @ 808862C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r0, _0808869C
+ ldrh r1, [r0]
+ lsrs r1, 8
+ lsls r1, 27
+ lsrs r1, 16
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r1, r0
+ ldr r2, _080886A0
+ mov r0, sp
+ bl CpuSet
+ adds r0, r5, 0
+ adds r0, 0x22
+ add r1, sp, 0x4
+ bl LoadWordFromTwoHalfwords
+ ldr r0, [sp, 0x4]
+ bl SetVBlankCallback
+ ldr r4, _080886A4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080886A8
+ adds r0, r1
+ bl sub_8085C44
+ movs r0, 0x6
+ bl FieldEffectActiveListRemove
+ ldr r0, _080886AC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808869C: .4byte REG_BG0CNT
+_080886A0: .4byte 0x05000200
+_080886A4: .4byte gWindowConfig_81E6CE4
+_080886A8: .4byte gSprites
+_080886AC: .4byte sub_808847C
+ thumb_func_end sub_808862C
+
+ thumb_func_start sub_80886B0
+sub_80886B0: @ 80886B0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080886EC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080886F0
+ adds r4, r0
+ adds r0, r4, 0
+ adds r0, 0x22
+ mov r1, sp
+ bl LoadWordFromTwoHalfwords
+ ldr r0, [sp]
+ bl _call_via_r0
+ ldr r1, _080886F4
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080886EC: .4byte sub_808847C
+_080886F0: .4byte gTasks
+_080886F4: .4byte REG_BG0HOFS
+ thumb_func_end sub_80886B0
+
+ thumb_func_start sub_80886F8
+sub_80886F8: @ 80886F8
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x10
+ strh r1, [r0, 0xA]
+ ldrh r1, [r0, 0xE]
+ adds r1, 0x10
+ strh r1, [r0, 0xE]
+ bx lr
+ thumb_func_end sub_80886F8
+
+ thumb_func_start sub_8088708
+sub_8088708: @ 8088708
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x10]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1F
+ ble _08088724
+ movs r0, 0x1
+ b _080887A8
+_08088724:
+ ldrh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r3, r0, 19
+ movs r1, 0x1F
+ ands r3, r1
+ movs r4, 0x10
+ ldrsh r0, [r5, r4]
+ cmp r3, r0
+ blt _080887A6
+ movs r0, 0x20
+ subs r3, r0, r3
+ ands r3, r1
+ subs r0, r2
+ mov r12, r0
+ mov r7, r12
+ ands r7, r1
+ mov r12, r7
+ ldrh r0, [r5, 0x20]
+ ldr r1, _080887B8
+ adds r1, r0
+ mov r8, r1
+ movs r4, 0
+ ldr r7, _080887BC
+ mov r10, r7
+ movs r0, 0xF0
+ lsls r0, 8
+ mov r9, r0
+ adds r1, r3, 0x1
+ movs r0, 0x1F
+ ands r1, r0
+ str r1, [sp]
+ mov r6, r12
+ adds r6, 0x1
+ ands r6, r0
+_08088768:
+ lsls r1, r4, 5
+ adds r2, r1, r3
+ lsls r2, 1
+ add r2, r8
+ mov r7, r12
+ adds r0, r7, r1
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r7, r9
+ orrs r0, r7
+ strh r0, [r2]
+ ldr r0, [sp]
+ adds r2, r1, r0
+ lsls r2, 1
+ add r2, r8
+ adds r1, r6, r1
+ lsls r1, 1
+ add r1, r10
+ ldrh r0, [r1]
+ mov r1, r9
+ orrs r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x9
+ bls _08088768
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x2
+ strh r0, [r5, 0x10]
+_080887A6:
+ movs r0, 0
+_080887A8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080887B8: .4byte 0x06000140
+_080887BC: .4byte gDarknessFieldMoveStreaksTilemap
+ thumb_func_end sub_8088708
+
+ thumb_func_start sub_80887C0
+sub_80887C0: @ 80887C0
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1F
+ ble _080887D0
+ movs r0, 0x1
+ b _08088824
+_080887D0:
+ ldrh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r0, 19
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r2, r0
+ blt _08088822
+ ldrh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r2, r0, 19
+ movs r0, 0x1F
+ ands r2, r0
+ ldrh r0, [r5, 0x20]
+ ldr r1, _0808882C
+ adds r6, r0, r1
+ movs r3, 0
+ movs r0, 0xF0
+ lsls r0, 8
+ adds r7, r0, 0
+ adds r4, r2, 0x1
+ movs r0, 0x1F
+ ands r4, r0
+_08088800:
+ lsls r0, r3, 5
+ adds r1, r0, r2
+ lsls r1, 1
+ adds r1, r6
+ strh r7, [r1]
+ adds r0, r4
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bls _08088800
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x2
+ strh r0, [r5, 0x10]
+_08088822:
+ movs r0, 0
+_08088824:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808882C: .4byte 0x06000140
+ thumb_func_end sub_80887C0
+
+ thumb_func_start sub_8088830
+sub_8088830: @ 8088830
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ movs r5, 0x80
+ lsls r5, 24
+ ands r5, r6
+ lsrs r5, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _08088884
+ ands r6, r0
+ lsls r0, r6, 16
+ lsrs r0, 16
+ movs r3, 0xA0
+ lsls r3, 1
+ movs r4, 0x50
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ bl sub_8085B88
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r1, _08088888
+ adds r2, r1
+ ldr r1, _0808888C
+ str r1, [r2, 0x1C]
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ strb r1, [r2, 0x5]
+ strh r6, [r2, 0x2E]
+ strh r5, [r2, 0x3A]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08088884: .4byte 0x7fffffff
+_08088888: .4byte gSprites
+_0808888C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8088830
+
+ thumb_func_start sub_8088890
+sub_8088890: @ 8088890
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x14
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ bgt _080888D0
+ movs r0, 0x78
+ strh r0, [r1, 0x20]
+ movs r0, 0x1E
+ strh r0, [r1, 0x30]
+ ldr r0, _080888C4
+ str r0, [r1, 0x1C]
+ movs r2, 0x3A
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080888C8
+ ldrh r0, [r1, 0x2E]
+ movs r1, 0
+ movs r2, 0x7D
+ movs r3, 0xA
+ bl PlayCry2
+ b _080888D0
+ .align 2, 0
+_080888C4: .4byte sub_80888D4
+_080888C8:
+ ldrh r0, [r1, 0x2E]
+ movs r1, 0
+ bl PlayCry1
+_080888D0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8088890
+
+ thumb_func_start sub_80888D4
+sub_80888D4: @ 80888D4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080888E8
+ ldr r0, _080888EC
+ str r0, [r1, 0x1C]
+_080888E8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080888EC: .4byte sub_80888F0
+ thumb_func_end sub_80888D4
+
+ thumb_func_start sub_80888F0
+sub_80888F0: @ 80888F0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ bge _08088908
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ b _0808890E
+_08088908:
+ adds r0, r3, 0
+ subs r0, 0x14
+ strh r0, [r2, 0x20]
+_0808890E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80888F0
+
+ thumb_func_start sub_8088914
+sub_8088914: @ 8088914
+ push {lr}
+ ldr r0, _08088944
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08088948
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0808894C
+ ldr r0, [r0]
+ strh r0, [r1, 0x26]
+ bl sav1_reset_battle_music_maybe
+ ldr r0, _08088950
+ bl sub_8053FB0
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08088944: .4byte sub_8088954
+_08088948: .4byte gTasks
+_0808894C: .4byte gUnknown_0202FF84
+_08088950: .4byte 0x0000016d
+ thumb_func_end sub_8088914
+
+ thumb_func_start sub_8088954
+sub_8088954: @ 8088954
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0808897C
+ ldr r2, _08088980
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808897C: .4byte gUnknown_0839F3E4
+_08088980: .4byte gTasks
+ thumb_func_end sub_8088954
+
+ thumb_func_start sub_8088984
+sub_8088984: @ 8088984
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ ldr r5, _080889DC
+ movs r0, 0x1
+ strb r0, [r5, 0x6]
+ movs r0, 0x8
+ bl SetPlayerAvatarStateMask
+ adds r6, r4, 0
+ adds r6, 0xA
+ movs r0, 0xC
+ adds r0, r4
+ mov r8, r0
+ adds r0, r6, 0
+ mov r1, r8
+ bl PlayerGetDestCoords
+ ldr r2, _080889E0
+ ldrb r1, [r5, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x18]
+ lsrs r0, 4
+ adds r1, r6, 0
+ mov r2, r8
+ bl MoveCoords
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080889DC: .4byte gPlayerAvatar
+_080889E0: .4byte gMapObjects
+ thumb_func_end sub_8088984
+
+ thumb_func_start sub_80889E4
+sub_80889E4: @ 80889E4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08088A28
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088A2C
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088A0E
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088A20
+_08088A0E:
+ bl sub_8059BF4
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_08088A20:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088A28: .4byte gPlayerAvatar
+_08088A2C: .4byte gMapObjects
+ thumb_func_end sub_80889E4
+
+ thumb_func_start sub_8088A30
+sub_8088A30: @ 8088A30
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08088A6C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088A70
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088A66
+ ldr r2, _08088A74
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x3B
+ bl FieldEffectStart
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08088A66:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088A6C: .4byte gPlayerAvatar
+_08088A70: .4byte gMapObjects
+_08088A74: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8088A30
+
+ thumb_func_start sub_8088A78
+sub_8088A78: @ 8088A78
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r0, 0x6
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _08088AE2
+ ldr r5, _08088AE8
+ ldrb r0, [r5, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08088AEC
+ adds r4, r0
+ movs r0, 0x3
+ bl GetPlayerAvatarGraphicsIdByStateId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_805B980
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl sub_80608D0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldr r1, _08088AF0
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ str r0, [r1]
+ movs r2, 0xC
+ ldrsh r0, [r6, r2]
+ str r0, [r1, 0x4]
+ ldrb r0, [r5, 0x5]
+ str r0, [r1, 0x8]
+ movs r0, 0x8
+ bl FieldEffectStart
+ strb r0, [r4, 0x1A]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_08088AE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088AE8: .4byte gPlayerAvatar
+_08088AEC: .4byte gMapObjects
+_08088AF0: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8088A78
+
+ thumb_func_start sub_8088AF4
+sub_8088AF4: @ 8088AF4
+ push {r4,r5,lr}
+ ldr r5, _08088B5C
+ ldrb r1, [r5, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088B60
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088B54
+ movs r0, 0
+ strb r0, [r5, 0x6]
+ ldrb r1, [r5]
+ movs r0, 0xDF
+ ands r0, r1
+ strb r0, [r5]
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldrb r0, [r4, 0x1A]
+ movs r1, 0x1
+ bl sub_8127ED0
+ bl sub_806451C
+ bl ScriptContext2_Disable
+ movs r0, 0x9
+ bl FieldEffectActiveListRemove
+ ldr r0, _08088B64
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08088B54:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088B5C: .4byte gPlayerAvatar
+_08088B60: .4byte gMapObjects
+_08088B64: .4byte sub_8088954
+ thumb_func_end sub_8088AF4
+
+ thumb_func_start sub_8088B68
+sub_8088B68: @ 8088B68
+ push {r4,lr}
+ ldr r0, _08088BB4
+ ldr r0, [r0, 0x68]
+ movs r1, 0x78
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ ldr r0, _08088BB8
+ adds r2, r0
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, _08088BBC
+ str r0, [r2, 0x1C]
+ ldr r0, _08088BC0
+ ldr r0, [r0]
+ strh r0, [r2, 0x30]
+ movs r0, 0x9E
+ bl PlaySE
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08088BB4: .4byte gFieldEffectObjectTemplatePointers
+_08088BB8: .4byte gSprites
+_08088BBC: .4byte sub_8088BC4
+_08088BC0: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8088B68
+
+ thumb_func_start sub_8088BC4
+sub_8088BC4: @ 8088BC4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8C
+ bl Cos
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r1, 0x48
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08088C26
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08088C3C
+ adds r1, r0
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3]
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ subs r0, 0x8
+ strh r0, [r1, 0x22]
+ strh r5, [r1, 0x24]
+ strh r5, [r1, 0x26]
+_08088C26:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _08088C36
+ adds r0, r4, 0
+ movs r1, 0x1E
+ bl FieldEffectStop
+_08088C36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088C3C: .4byte gSprites
+ thumb_func_end sub_8088BC4
+
+ thumb_func_start sub_8088C40
+sub_8088C40: @ 8088C40
+ push {lr}
+ ldr r0, _08088C64
+ movs r1, 0xFE
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08088C68
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _08088C6C
+ ldr r0, [r0]
+ strh r0, [r1, 0xA]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08088C64: .4byte sub_8088C70
+_08088C68: .4byte gTasks
+_08088C6C: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8088C40
+
+ thumb_func_start sub_8088C70
+sub_8088C70: @ 8088C70
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08088C98
+ ldr r2, _08088C9C
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088C98: .4byte gUnknown_0839F3F8
+_08088C9C: .4byte gTasks
+ thumb_func_end sub_8088C70
+
+ thumb_func_start sub_8088CA0
+sub_8088CA0: @ 8088CA0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _08088CF0
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088CF4
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088CCA
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088CE8
+_08088CCA:
+ ldrb r0, [r6]
+ strh r0, [r5, 0x26]
+ movs r0, 0x1
+ strb r0, [r6, 0x6]
+ bl SetPlayerAvatarStateMask
+ bl sub_8059BF4
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_08088CE8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088CF0: .4byte gPlayerAvatar
+_08088CF4: .4byte gMapObjects
+ thumb_func_end sub_8088CA0
+
+ thumb_func_start sub_8088CF8
+sub_8088CF8: @ 8088CF8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08088D30
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088D34
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088D28
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r1, _08088D38
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ str r0, [r1]
+ movs r0, 0x3B
+ bl FieldEffectStart
+_08088D28:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088D30: .4byte gPlayerAvatar
+_08088D34: .4byte gMapObjects
+_08088D38: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8088CF8
+
+ thumb_func_start sub_8088D3C
+sub_8088D3C: @ 8088D3C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _08088D84
+ ldr r0, _08088D8C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088D90
+ adds r5, r0, r1
+ ldrh r1, [r4, 0x26]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08088D74
+ ldrb r0, [r5, 0x1A]
+ movs r1, 0x2
+ bl sub_8127ED0
+ ldrb r0, [r5, 0x1A]
+ movs r1, 0
+ bl sub_8127EFC
+_08088D74:
+ bl sub_8088F60
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08088D84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088D8C: .4byte gPlayerAvatar
+_08088D90: .4byte gMapObjects
+ thumb_func_end sub_8088D3C
+
+ thumb_func_start sub_8088D94
+sub_8088D94: @ 8088D94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xA]
+ bl sub_8088FA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088DC8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+ ldr r0, _08088DD0
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088DD4
+ adds r0, r1
+ movs r1, 0x2
+ bl FieldObjectSetSpecialAnim
+_08088DC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088DD0: .4byte gPlayerAvatar
+_08088DD4: .4byte gMapObjects
+ thumb_func_end sub_8088D94
+
+ thumb_func_start sub_8088DD8
+sub_8088DD8: @ 8088DD8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08088E24
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088E28
+ adds r2, r0, r1
+ ldrh r1, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _08088DFE
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08088E1C
+_08088DFE:
+ adds r0, r2, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088E1C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x9E
+ bl PlaySE
+ ldrb r0, [r4, 0xA]
+ bl sub_8088FC0
+_08088E1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088E24: .4byte gPlayerAvatar
+_08088E28: .4byte gMapObjects
+ thumb_func_end sub_8088DD8
+
+ thumb_func_start sub_8088E2C
+sub_8088E2C: @ 8088E2C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08088EA2
+ ldr r0, _08088EA8
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08088EAC
+ adds r4, r0, r1
+ movs r0, 0x3
+ bl GetPlayerAvatarGraphicsIdByStateId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_805B980
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _08088EB0
+ adds r0, r6
+ movs r1, 0x16
+ bl StartSpriteAnim
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x48
+ bl FieldObjectSetSpecialAnim
+ ldrh r1, [r5, 0x26]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08088E98
+ ldrb r1, [r4, 0x1A]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+_08088E98:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ strh r0, [r5, 0xC]
+_08088EA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088EA8: .4byte gPlayerAvatar
+_08088EAC: .4byte gMapObjects
+_08088EB0: .4byte gSprites
+ thumb_func_end sub_8088E2C
+
+ thumb_func_start sub_8088EB4
+sub_8088EB4: @ 8088EB4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _08088F00
+ ldr r0, _08088F08
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08088F0C
+ adds r4, r0
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimActive
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x2]
+ ldrb r0, [r5, 0xA]
+ ldrb r1, [r4, 0x4]
+ bl sub_8088FFC
+ bl CameraObjectReset2
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_08088F00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088F08: .4byte gPlayerAvatar
+_08088F0C: .4byte gMapObjects
+ thumb_func_end sub_8088EB4
+
+ thumb_func_start sub_8088F10
+sub_8088F10: @ 8088F10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xA]
+ bl sub_8088FA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08088F2A
+ bl sub_8080918
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08088F2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8088F10
+
+ thumb_func_start sub_8088F30
+sub_8088F30: @ 8088F30
+ push {lr}
+ ldr r0, _08088F58
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08088F52
+ movs r0, 0x1F
+ bl FieldEffectActiveListRemove
+ ldr r0, _08088F5C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08088F52:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088F58: .4byte gPaletteFade
+_08088F5C: .4byte sub_8088C70
+ thumb_func_end sub_8088F30
+
+ thumb_func_start sub_8088F60
+sub_8088F60: @ 8088F60
+ push {lr}
+ ldr r0, _08088F98
+ ldr r0, [r0, 0x68]
+ movs r1, 0xFF
+ movs r2, 0xB4
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r1, _08088F9C
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ movs r3, 0xD
+ negs r3, r3
+ ands r1, r3
+ movs r3, 0x4
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ ldr r1, _08088FA0
+ str r1, [r2, 0x1C]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08088F98: .4byte gFieldEffectObjectTemplatePointers
+_08088F9C: .4byte gSprites
+_08088FA0: .4byte sub_8089018
+ thumb_func_end sub_8088F60
+
+ thumb_func_start sub_8088FA4
+sub_8088FA4: @ 8088FA4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08088FBC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_08088FBC: .4byte gSprites
+ thumb_func_end sub_8088FA4
+
+ thumb_func_start sub_8088FC0
+sub_8088FC0: @ 8088FC0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08088FF4
+ adds r4, r0
+ ldr r0, _08088FF8
+ str r0, [r4, 0x1C]
+ movs r1, 0
+ movs r0, 0x78
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x22]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x2E
+ movs r2, 0x10
+ bl memset
+ movs r0, 0x40
+ strh r0, [r4, 0x3A]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08088FF4: .4byte gSprites
+_08088FF8: .4byte sub_80890D8
+ thumb_func_end sub_8088FC0
+
+ thumb_func_start sub_8088FFC
+sub_8088FFC: @ 8088FFC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08089014
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ strh r1, [r2, 0x3A]
+ bx lr
+ .align 2, 0
+_08089014: .4byte gSprites
+ thumb_func_end sub_8088FFC
+
+ thumb_func_start sub_8089018
+sub_8089018: @ 8089018
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080890C4
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0808905C
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080890CC
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r0, 0x76
+ strh r0, [r4, 0x20]
+ ldr r0, _080890D0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x40
+ strh r0, [r4, 0x30]
+ adds r0, 0xC0
+ strh r0, [r4, 0x32]
+_0808905C:
+ ldrh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x78
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x78
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x32]
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ ldr r0, _080890D4
+ cmp r1, r0
+ bgt _08089092
+ adds r0, r2, 0
+ adds r0, 0x60
+ strh r0, [r4, 0x32]
+_08089092:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x81
+ ble _080890C4
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ lsrs r1, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ adds r0, r4, 0
+ movs r3, 0
+ bl CalcCenterToCornerVec
+_080890C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080890CC: .4byte gUnknown_0839F44C
+_080890D0: .4byte 0x0000ffd0
+_080890D4: .4byte 0x000007ff
+ thumb_func_end sub_8089018
+
+ thumb_func_start sub_80890D8
+sub_80890D8: @ 80890D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8C
+ bl Cos
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r1, 0x48
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ beq _08089136
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08089148
+ adds r1, r0
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3]
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ subs r0, 0x8
+ strh r0, [r1, 0x22]
+ strh r5, [r1, 0x24]
+ strh r5, [r1, 0x26]
+_08089136:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _08089142
+ movs r0, 0x1
+ strh r0, [r4, 0x3C]
+_08089142:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089148: .4byte gSprites
+ thumb_func_end sub_80890D8
+
+ thumb_func_start sub_808914C
+sub_808914C: @ 808914C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08089220
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08089196
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _08089228
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0x5E
+ strh r0, [r4, 0x20]
+ ldr r0, _0808922C
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0xF0
+ strh r0, [r4, 0x30]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r4, 0x32]
+ movs r0, 0x80
+ strh r0, [r4, 0x36]
+_08089196:
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r2, r1
+ ldrh r0, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ movs r1, 0x20
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x78
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r2, 0x80
+ lsls r2, 1
+ cmp r0, r2
+ ble _080891D8
+ ldrh r0, [r4, 0x36]
+ subs r0, r1, r0
+ strh r0, [r4, 0x32]
+_080891D8:
+ ldrh r1, [r4, 0x36]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xFF
+ bgt _080891E8
+ adds r0, r1, 0
+ adds r0, 0x18
+ strh r0, [r4, 0x36]
+_080891E8:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xFF
+ bgt _080891F2
+ strh r2, [r4, 0x32]
+_080891F2:
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3B
+ ble _08089220
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08089220:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089228: .4byte gUnknown_0839F44C
+_0808922C: .4byte 0x0000ffe0
+ thumb_func_end sub_808914C
+
+ thumb_func_start sub_8089230
+sub_8089230: @ 8089230
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8088FC0
+ ldr r1, _08089254
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08089258
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089254: .4byte gSprites
+_08089258: .4byte sub_808914C
+ thumb_func_end sub_8089230
+
+ thumb_func_start sub_808925C
+sub_808925C: @ 808925C
+ push {lr}
+ ldr r0, _0808926C
+ movs r1, 0xFE
+ bl CreateTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808926C: .4byte sub_8089270
+ thumb_func_end sub_808925C
+
+ thumb_func_start sub_8089270
+sub_8089270: @ 8089270
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08089298
+ ldr r2, _0808929C
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089298: .4byte gUnknown_0839F454
+_0808929C: .4byte gTasks
+ thumb_func_end sub_8089270
+
+ thumb_func_start sub_80892A0
+sub_80892A0: @ 80892A0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _08089348
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0808934C
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080892CA
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08089342
+_080892CA:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x11
+ strh r0, [r5, 0xC]
+ ldrb r0, [r6]
+ strh r0, [r5, 0x26]
+ movs r0, 0x1
+ strb r0, [r6, 0x6]
+ bl SetPlayerAvatarStateMask
+ ldrh r1, [r5, 0x26]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080892F2
+ ldrb r0, [r4, 0x1A]
+ movs r1, 0
+ bl sub_8127ED0
+_080892F2:
+ movs r0, 0x3
+ bl GetPlayerAvatarGraphicsIdByStateId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_805B980
+ bl CameraObjectReset2
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl FieldObjectTurn
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08089350
+ adds r0, r1
+ movs r1, 0x16
+ bl StartSpriteAnim
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8088F60
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ bl sub_8088FC0
+ ldrb r0, [r5, 0xA]
+ ldrb r1, [r4, 0x4]
+ bl sub_8088FFC
+_08089342:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089348: .4byte gPlayerAvatar
+_0808934C: .4byte gMapObjects
+_08089350: .4byte gSprites
+ thumb_func_end sub_80892A0
+
+ thumb_func_start sub_8089354
+sub_8089354: @ 8089354
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0808936C
+ subs r0, r1, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080893AC
+_0808936C:
+ ldr r0, _080893B4
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080893B8
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080893BC
+ adds r4, r0
+ ldrb r0, [r5, 0xA]
+ movs r1, 0x40
+ bl sub_8088FFC
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xC]
+_080893AC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080893B4: .4byte gPlayerAvatar
+_080893B8: .4byte gMapObjects
+_080893BC: .4byte gSprites
+ thumb_func_end sub_8089354
+
+ thumb_func_start sub_80893C0
+sub_80893C0: @ 80893C0
+ push {r4,lr}
+ sub sp, 0x24
+ adds r4, r0, 0
+ ldr r1, _08089408
+ mov r0, sp
+ movs r2, 0x24
+ bl memcpy
+ ldr r0, _0808940C
+ ldrb r0, [r0, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08089410
+ adds r1, r0
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _080893FE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080893FE:
+ add sp, 0x24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089408: .4byte gUnknown_0839F470
+_0808940C: .4byte gPlayerAvatar
+_08089410: .4byte gSprites
+ thumb_func_end sub_80893C0
+
+ thumb_func_start sub_8089414
+sub_8089414: @ 8089414
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrb r0, [r6, 0xA]
+ bl sub_8088FA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08089478
+ ldr r0, _08089480
+ ldrb r0, [r0, 0x5]
+ lsls r5, r0, 3
+ adds r5, r0
+ lsls r5, 2
+ ldr r0, _08089484
+ adds r5, r0
+ ldrb r0, [r5, 0x4]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08089488
+ adds r4, r0
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x10
+ ldrsh r1, [r5, r0]
+ movs r0, 0x12
+ ldrsh r2, [r5, r0]
+ adds r0, r5, 0
+ bl sub_805C058
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+ bl sub_8059BF4
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_08089478:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089480: .4byte gPlayerAvatar
+_08089484: .4byte gMapObjects
+_08089488: .4byte gSprites
+ thumb_func_end sub_8089414
+
+ thumb_func_start sub_808948C
+sub_808948C: @ 808948C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080894BC
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080894C0
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080894B4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r4, 0xA]
+ bl sub_8089230
+_080894B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080894BC: .4byte gPlayerAvatar
+_080894C0: .4byte gMapObjects
+ thumb_func_end sub_808948C
+
+ thumb_func_start sub_80894C4
+sub_80894C4: @ 80894C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xA]
+ bl sub_8088FA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080894F0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080894F8
+ adds r0, r1
+ bl DestroySprite
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x10
+ strh r0, [r4, 0xA]
+_080894F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080894F8: .4byte gSprites
+ thumb_func_end sub_80894C4
+
+ thumb_func_start fishE
+fishE: @ 80894FC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08089566
+ ldr r6, _0808956C
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08089570
+ adds r4, r0, r1
+ movs r7, 0
+ ldrh r1, [r5, 0x26]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08089530
+ movs r7, 0x3
+ ldrb r0, [r4, 0x1A]
+ movs r1, 0x1
+ bl sub_8127ED0
+_08089530:
+ adds r0, r7, 0
+ bl GetPlayerAvatarGraphicsIdByStateId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_805B980
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl FieldObjectTurn
+ ldrh r0, [r5, 0x26]
+ strb r0, [r6]
+ movs r0, 0
+ strb r0, [r6, 0x6]
+ movs r0, 0x20
+ bl FieldEffectActiveListRemove
+ ldr r0, _08089574
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08089566:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808956C: .4byte gPlayerAvatar
+_08089570: .4byte gMapObjects
+_08089574: .4byte sub_8089270
+ thumb_func_end fishE
+
+ thumb_func_start remove_some_task
+remove_some_task: @ 8089578
+ push {r4,lr}
+ ldr r4, _080895A8
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _080895AC
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B0
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B4
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x18]
+ cmp r0, 0xFF
+ beq _080895A2
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r4, 0x18]
+_080895A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895A8: .4byte gUnknown_03004DC0
+_080895AC: .4byte 0x040000b0
+_080895B0: .4byte 0x0000c5ff
+_080895B4: .4byte 0x00007fff
+ thumb_func_end remove_some_task
+
+ thumb_func_start dp12_8087EA4
+dp12_8087EA4: @ 80895B8
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ movs r4, 0
+ strh r4, [r0]
+ ldr r1, _080895EC
+ ldr r2, _080895F0
+ bl CpuSet
+ ldr r0, _080895F4
+ movs r1, 0
+ str r1, [r0]
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ strb r4, [r0, 0x14]
+ strb r4, [r0, 0x15]
+ strb r4, [r0, 0x16]
+ strb r4, [r0, 0x17]
+ movs r1, 0xFF
+ strb r1, [r0, 0x18]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895EC: .4byte gUnknown_03004DE0
+_080895F0: .4byte 0x01000780
+_080895F4: .4byte gUnknown_03004DC0
+ thumb_func_end dp12_8087EA4
+
+ thumb_func_start sub_80895F8
+sub_80895F8: @ 80895F8
+ push {lr}
+ sub sp, 0xC
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ ldr r0, _0808961C
+ cmp r1, r0
+ bne _0808962C
+ ldr r0, _08089620
+ ldr r1, _08089624
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089628
+ b _0808963C
+ .align 2, 0
+_0808961C: .4byte 0xa2600001
+_08089620: .4byte gUnknown_03004DC0
+_08089624: .4byte gUnknown_03004DE2
+_08089628: .4byte sub_80896F4
+_0808962C:
+ ldr r0, _0808965C
+ ldr r1, _08089660
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089664
+_0808963C:
+ str r1, [r0, 0x10]
+ adds r1, r0, 0
+ ldr r0, [sp, 0x4]
+ str r0, [r1, 0xC]
+ ldr r0, [sp]
+ str r0, [r1, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ strb r0, [r1, 0x15]
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ strb r0, [r1, 0x16]
+ strb r0, [r1, 0x17]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808965C: .4byte gUnknown_03004DC0
+_08089660: .4byte gUnknown_03004DE4
+_08089664: .4byte sub_8089714
+ thumb_func_end sub_80895F8
+
+ thumb_func_start sub_8089668
+sub_8089668: @ 8089668
+ push {r4,lr}
+ ldr r4, _08089698
+ ldrb r0, [r4, 0x15]
+ cmp r0, 0
+ beq _080896E2
+ cmp r0, 0x3
+ bne _080896AC
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _0808969C
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A0
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A4
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r1, _080896A8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080896E2
+ .align 2, 0
+_08089698: .4byte gUnknown_03004DC0
+_0808969C: .4byte 0x040000b0
+_080896A0: .4byte 0x0000c5ff
+_080896A4: .4byte 0x00007fff
+_080896A8: .4byte gUnknown_0202FFA4
+_080896AC:
+ ldr r1, _080896E8
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896EC
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896F0
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x14]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r4, 0x8]
+ str r0, [r1, 0x4]
+ ldr r0, [r4, 0xC]
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, [r4, 0x10]
+ bl _call_via_r0
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4, 0x14]
+_080896E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080896E8: .4byte 0x040000b0
+_080896EC: .4byte 0x0000c5ff
+_080896F0: .4byte 0x00007fff
+ thumb_func_end sub_8089668
+
+ thumb_func_start sub_80896F4
+sub_80896F4: @ 80896F4
+ ldr r0, _0808970C
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089710
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0808970C: .4byte gUnknown_03004DC0
+_08089710: .4byte gUnknown_03004DE0
+ thumb_func_end sub_80896F4
+
+ thumb_func_start sub_8089714
+sub_8089714: @ 8089714
+ ldr r0, _0808972C
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089730
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_0808972C: .4byte gUnknown_03004DC0
+_08089730: .4byte gUnknown_03004DE0
+ thumb_func_end sub_8089714
+
+ thumb_func_start task00_for_dp12
+task00_for_dp12: @ 8089734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ ldr r0, _0808975C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08089764
+ mov r0, r12
+ bl DestroyTask
+ ldr r1, _08089760
+ movs r0, 0xFF
+ strb r0, [r1, 0x18]
+ b _080898E4
+ .align 2, 0
+_0808975C: .4byte gUnknown_0202FFA4
+_08089760: .4byte gUnknown_03004DC0
+_08089764:
+ ldr r1, _08089790
+ mov r0, r12
+ lsls r2, r0, 2
+ adds r0, r2, r0
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ mov r10, r1
+ mov r9, r2
+ cmp r0, 0
+ beq _08089810
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ bhi _08089810
+ lsls r0, 2
+ ldr r1, _08089794
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08089790: .4byte gTasks
+_08089794: .4byte _08089798
+ .align 2, 0
+_08089798:
+ .4byte _080897D4
+ .4byte _08089810
+ .4byte _080897DC
+ .4byte _08089810
+ .4byte _080897E4
+ .4byte _08089810
+ .4byte _080897EC
+ .4byte _08089810
+ .4byte _080897F4
+ .4byte _08089810
+ .4byte _080897FC
+ .4byte _08089810
+ .4byte _08089804
+ .4byte _08089810
+ .4byte _0808980C
+_080897D4:
+ ldr r0, _080897D8
+ b _0808980E
+ .align 2, 0
+_080897D8: .4byte gUnknown_030042A4
+_080897DC:
+ ldr r0, _080897E0
+ b _0808980E
+ .align 2, 0
+_080897E0: .4byte gUnknown_030042A0
+_080897E4:
+ ldr r0, _080897E8
+ b _0808980E
+ .align 2, 0
+_080897E8: .4byte gUnknown_030042C0
+_080897EC:
+ ldr r0, _080897F0
+ b _0808980E
+ .align 2, 0
+_080897F0: .4byte gUnknown_030041B4
+_080897F4:
+ ldr r0, _080897F8
+ b _0808980E
+ .align 2, 0
+_080897F8: .4byte gUnknown_03004288
+_080897FC:
+ ldr r0, _08089800
+ b _0808980E
+ .align 2, 0
+_08089800: .4byte gUnknown_03004280
+_08089804:
+ ldr r0, _08089808
+ b _0808980E
+ .align 2, 0
+_08089808: .4byte gUnknown_030041B0
+_0808980C:
+ ldr r0, _08089870
+_0808980E:
+ ldrh r6, [r0]
+_08089810:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r2, r10
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0808987C
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898E4
+ ldr r5, _08089874
+ ldr r0, _08089878
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+_0808984A:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _0808984A
+ b _080898E4
+ .align 2, 0
+_08089870: .4byte gUnknown_030041B8
+_08089874: .4byte gUnknown_03004DE0
+_08089878: .4byte gUnknown_03004DC0
+_0808987C:
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x10]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898C4
+ ldr r5, _080898F4
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+ ldr r0, _080898F8
+ mov r8, r0
+_080898A2:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _080898A2
+_080898C4:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r3, r10
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bne _080898E4
+ movs r0, 0
+ strh r0, [r2, 0xE]
+_080898E4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080898F4: .4byte gUnknown_03004DE0
+_080898F8: .4byte gUnknown_03004DC0
+ thumb_func_end task00_for_dp12
+
+ thumb_func_start sub_80898FC
+sub_80898FC: @ 80898FC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0
+ movs r2, 0
+ ldr r0, _08089940
+ mov r12, r0
+_08089910:
+ lsls r0, r1, 1
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ add r0, r12
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ muls r0, r4
+ cmp r0, 0
+ bge _08089924
+ adds r0, 0xFF
+_08089924:
+ asrs r0, 8
+ strh r0, [r3]
+ adds r0, r2, r5
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _08089910
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089940: .4byte gSineTable
+ thumb_func_end sub_80898FC
+
+ thumb_func_start sub_8089944
+sub_8089944: @ 8089944
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r5, r0, 0
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x40]
+ mov r8, r0
+ ldr r1, [sp, 0x44]
+ mov r9, r1
+ ldr r0, [sp, 0x48]
+ mov r10, r0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, [sp, 0x10]
+ lsls r1, 24
+ str r1, [sp, 0x14]
+ lsrs r0, r1, 24
+ str r0, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r3, r9
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl dp12_8087EA4
+ ldr r0, _08089A50
+ add r0, r9
+ str r0, [sp]
+ ldr r0, _08089A54
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _08089A58
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08089A5C
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ strh r5, [r4, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ldr r1, [sp, 0x18]
+ bl __divsi3
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ mov r1, r8
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ mov r3, r9
+ strh r3, [r4, 0x14]
+ mov r0, r10
+ strh r0, [r4, 0x16]
+ ldr r0, _08089A60
+ strb r7, [r0, 0x18]
+ ldr r0, _08089A64
+ movs r1, 0
+ strb r1, [r0]
+ ldr r4, _08089A68
+ ldr r3, [sp, 0xC]
+ subs r6, r3, r5
+ lsls r3, r6, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ ldr r1, [sp, 0x18]
+ ldr r2, [sp, 0x1C]
+ bl sub_80898FC
+ ldr r0, [sp, 0xC]
+ cmp r5, r0
+ bge _08089A3E
+ ldr r1, _08089A6C
+ adds r2, r4, r1
+ lsls r1, r5, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r1, r3
+ adds r3, r0, r2
+ adds r1, r2
+ adds r2, r4, 0
+ adds r5, r6, 0
+_08089A2A:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08089A2A
+_08089A3E:
+ adds r0, r7, 0
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08089A50: .4byte REG_BG0HOFS
+_08089A54: .4byte 0xa2600001
+_08089A58: .4byte task00_for_dp12
+_08089A5C: .4byte gTasks
+_08089A60: .4byte gUnknown_03004DC0
+_08089A64: .4byte gUnknown_0202FFA4
+_08089A68: .4byte gUnknown_03005060
+_08089A6C: .4byte 0xfffffd80
+ thumb_func_end sub_8089944
+
+ thumb_func_start sub_8089A70
+sub_8089A70: @ 8089A70
+ push {lr}
+ ldr r0, _08089A88
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl sub_806AFAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089A88: .4byte gPaletteFade
+ thumb_func_end sub_8089A70
+
+ thumb_func_start sub_8089A8C
+sub_8089A8C: @ 8089A8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _08089AD0
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _08089AD4
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089AD8
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08089AE0
+ ldr r4, _08089ADC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl AppendToList
+ b _08089BC8
+ .align 2, 0
+_08089AD0: .4byte gUnknown_0202FFA9
+_08089AD4: .4byte gUnknown_03005CE0
+_08089AD8: .4byte gPlayerParty
+_08089ADC: .4byte gUnknown_0202FFAA
+_08089AE0:
+ movs r6, 0
+ ldr r0, _08089B24
+ ldrh r0, [r0]
+ mov r8, r0
+_08089AE8:
+ movs r4, 0
+ adds r7, r6, 0x1
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _08089B48
+ ldr r5, _08089B24
+_08089AF4:
+ ldr r0, _08089B28
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089B2C
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08089B38
+ adds r2, r4, 0
+ adds r2, 0xA
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _08089B30
+ ldr r1, _08089B34
+ bl AppendToList
+ b _08089B48
+ .align 2, 0
+_08089B24: .4byte gUnknown_0839F554
+_08089B28: .4byte gUnknown_03005CE0
+_08089B2C: .4byte gPlayerParty
+_08089B30: .4byte gUnknown_0202FFAA
+_08089B34: .4byte gUnknown_0202FFA9
+_08089B38:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ bne _08089AF4
+_08089B48:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08089AE8
+ ldr r4, _08089BA4
+ ldr r5, _08089BA8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ ldr r6, _08089BAC
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08089B76
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+_08089B76:
+ ldr r0, _08089BB0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r6, 0
+ subs r1, 0x64
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _08089BB4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl AppendToList
+ b _08089BBE
+ .align 2, 0
+_08089BA4: .4byte gUnknown_0202FFAA
+_08089BA8: .4byte gUnknown_0202FFA9
+_08089BAC: .4byte gUnknown_030043C4
+_08089BB0: .4byte gUnknown_03005CE0
+_08089BB4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl AppendToList
+_08089BBE:
+ ldr r0, _08089BD4
+ ldr r1, _08089BD8
+ movs r2, 0x3
+ bl AppendToList
+_08089BC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089BD4: .4byte gUnknown_0202FFAA
+_08089BD8: .4byte gUnknown_0202FFA9
+ thumb_func_end sub_8089A8C
+
+ thumb_func_start sub_8089BDC
+sub_8089BDC: @ 8089BDC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r7, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x5
+ bl sub_806D538
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r3, r0, 1
+ adds r3, r6, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl MenuDrawTextWindow
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ str r7, [sp]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, r8
+ ldr r3, [sp, 0x1C]
+ bl PrintMenuItemsReordered
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089BDC
+
+ thumb_func_start sub_8089C50
+sub_8089C50: @ 8089C50
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r4, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_8089BDC
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089C50
+
+ thumb_func_start sub_8089C7C
+sub_8089C7C: @ 8089C7C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _08089CC8
+ ldrb r0, [r6]
+ lsls r0, 1
+ movs r4, 0x12
+ subs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r6]
+ ldr r0, _08089CCC
+ str r0, [sp]
+ ldr r0, _08089CD0
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ str r0, [sp, 0x8]
+ movs r0, 0x13
+ adds r1, r4, 0
+ movs r2, 0xA
+ bl sub_8089BDC
+ movs r2, 0x1
+ orrs r2, r4
+ ldrb r3, [r6]
+ str r5, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ bl InitMenu
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089CC8: .4byte gUnknown_0202FFA9
+_08089CCC: .4byte gUnknown_0839F494
+_08089CD0: .4byte gUnknown_0202FFAA
+ thumb_func_end sub_8089C7C
+
+ thumb_func_start sub_8089CD4
+sub_8089CD4: @ 8089CD4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089D00
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089D84
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08089D04
+ cmp r0, 0x2
+ beq _08089D60
+ b _08089D84
+ .align 2, 0
+_08089D00: .4byte gPaletteFade
+_08089D04:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08089D48
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089D4C
+ adds r0, r1
+ ldr r1, _08089D50
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r0, _08089D54
+ strb r5, [r0]
+ movs r0, 0
+ bl sub_8089C7C
+ ldr r1, _08089D58
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D5C
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089D84
+ .align 2, 0
+_08089D48: .4byte gUnknown_03005CE0
+_08089D4C: .4byte gPlayerParty
+_08089D50: .4byte gStringVar1
+_08089D54: .4byte gUnknown_0202FFA8
+_08089D58: .4byte gTasks
+_08089D5C: .4byte sub_8089D94
+_08089D60:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08089D8C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D90
+ str r1, [r0]
+_08089D84:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089D8C: .4byte gTasks
+_08089D90: .4byte sub_8089E4C
+ thumb_func_end sub_8089CD4
+
+ thumb_func_start sub_8089D94
+sub_8089D94: @ 8089D94
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _08089DC8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08089E44
+ ldr r2, _08089DCC
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _08089DD4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _08089DD0
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DC8: .4byte gPaletteFade
+_08089DCC: .4byte gMain
+_08089DD0: .4byte gUnknown_0202FFA8
+_08089DD4:
+ cmp r1, 0x80
+ bne _08089DF0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _08089DEC
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DEC: .4byte gUnknown_0202FFA8
+_08089DF0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E30
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08089E24
+ ldr r2, _08089E28
+ ldr r0, _08089E2C
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_08089E1A:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089E44
+ .align 2, 0
+_08089E24: .4byte gUnknown_0839F494
+_08089E28: .4byte gUnknown_0202FFAA
+_08089E2C: .4byte gUnknown_0202FFA8
+_08089E30:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E44
+ adds r0, r5, 0
+ bl sub_808A918
+ adds r0, r5, 0
+ bl sub_808B5B4
+_08089E44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089D94
+
+ thumb_func_start sub_8089E4C
+sub_8089E4C: @ 8089E4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089E78
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08089E72
+ ldr r0, _08089E7C
+ strb r1, [r0]
+ ldr r0, _08089E80
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08089E72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089E78: .4byte gPaletteFade
+_08089E7C: .4byte gUnknown_03005CE0
+_08089E80: .4byte sub_805469C
+ thumb_func_end sub_8089E4C
+
+ thumb_func_start sub_8089E84
+sub_8089E84: @ 8089E84
+ push {lr}
+ ldr r0, _08089EAC
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089EB0
+ adds r0, r1
+ ldr r1, _08089EB4
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r1, _08089EB8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_8089C7C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089EAC: .4byte gUnknown_03005CE0
+_08089EB0: .4byte gPlayerParty
+_08089EB4: .4byte gStringVar1
+_08089EB8: .4byte gUnknown_0202FFA8
+ thumb_func_end sub_8089E84
+
+ thumb_func_start sub_8089EBC
+sub_8089EBC: @ 8089EBC
+ push {r4,r5,lr}
+ ldr r4, _08089EC4
+ ldr r5, _08089EC8
+ b _08089ED8
+ .align 2, 0
+_08089EC4: .4byte 0x0201b260
+_08089EC8: .4byte gUnknown_020384F0
+_08089ECC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08089F04
+_08089ED8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08089ECC
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r1, _08089F0C
+ ldrb r0, [r5]
+ strb r0, [r1]
+ bl sub_8089E84
+ ldr r0, _08089F10
+ bl SetMainCallback2
+_08089F04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F0C: .4byte gUnknown_03005CE0
+_08089F10: .4byte sub_806AEDC
+ thumb_func_end sub_8089EBC
+
+ thumb_func_start sub_8089F14
+sub_8089F14: @ 8089F14
+ push {lr}
+ ldr r2, _08089F38
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _08089F3C
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08089F40
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F38: .4byte gPaletteFade
+_08089F3C: .4byte sub_8089D94
+_08089F40: .4byte sub_8089EBC
+ thumb_func_end sub_8089F14
+
+ thumb_func_start sub_8089F44
+sub_8089F44: @ 8089F44
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _08089FAC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089FA2
+ ldr r2, _08089FB0
+ ldr r1, _08089FB4
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _08089FB8
+ ldr r1, _08089FBC
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08089FC0
+ ldr r1, _08089FC4
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08089FC8
+ str r5, [sp]
+ adds r1, r4, 0
+ bl sub_809D8BC
+_08089FA2:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FAC: .4byte gPaletteFade
+_08089FB0: .4byte gSprites
+_08089FB4: .4byte gTasks
+_08089FB8: .4byte 0x0201b000
+_08089FBC: .4byte 0x00000262
+_08089FC0: .4byte gPlayerParty
+_08089FC4: .4byte gPlayerPartyCount
+_08089FC8: .4byte sub_8089F14
+ thumb_func_end sub_8089F44
+
+ thumb_func_start sub_8089FCC
+sub_8089FCC: @ 8089FCC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08089FFC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A000
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FFC: .4byte gTasks
+_0808A000: .4byte sub_8089F44
+ thumb_func_end sub_8089FCC
+
+ thumb_func_start sub_808A004
+sub_808A004: @ 808A004
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A024
+ ldr r2, _0808A028
+ bl SetTaskFuncWithFollowupFunc
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A024: .4byte sub_806CA60
+_0808A028: .4byte sub_8089CD4
+ thumb_func_end sub_808A004
+
+ thumb_func_start sub_808A02C
+sub_808A02C: @ 808A02C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r0, _0808A054
+ ldr r1, _0808A058
+ str r1, [r0, 0xC]
+ ldr r1, _0808A05C
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_808A004
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A054: .4byte 0x02001000
+_0808A058: .4byte sub_806CD5C
+_0808A05C: .4byte 0x0001a272
+ thumb_func_end sub_808A02C
+
+ thumb_func_start sub_808A060
+sub_808A060: @ 808A060
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A0D0
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0808A086
+ ldr r4, _0808A0D4
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0808A086
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A086:
+ ldr r0, _0808A0D0
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0808A0A4
+ ldr r4, _0808A0D4
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _0808A0A4
+ movs r0, 0x1
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A0A4:
+ ldr r0, _0808A0D0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0E0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A0D8
+ ldr r2, _0808A0DC
+ ldr r0, _0808A0D4
+ ldrb r3, [r0]
+ movs r0, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A0F6
+ .align 2, 0
+_0808A0D0: .4byte gMain
+_0808A0D4: .4byte gUnknown_0202FFA8
+_0808A0D8: .4byte gUnknown_0839F578
+_0808A0DC: .4byte gUnknown_0839F494
+_0808A0E0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0F6
+ ldr r1, _0808A0FC
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl sub_808A938
+_0808A0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A0FC: .4byte gUnknown_0839F578
+ thumb_func_end sub_808A060
+
+ thumb_func_start sub_808A100
+sub_808A100: @ 808A100
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A130
+ ldr r2, _0808A134
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ movs r0, 0xD
+ movs r1, 0x2
+ bl sub_806D538
+ ldr r1, _0808A138
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A13C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A130: .4byte gUnknown_0839F578
+_0808A134: .4byte gUnknown_0839F494
+_0808A138: .4byte gTasks
+_0808A13C: .4byte sub_808A060
+ thumb_func_end sub_808A100
+
+ thumb_func_start sub_808A140
+sub_808A140: @ 808A140
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r1, _0808A174
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A178
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A17C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A174: .4byte gUnknown_0202FFA8
+_0808A178: .4byte gTasks
+_0808A17C: .4byte sub_808A100
+ thumb_func_end sub_808A140
+
+ thumb_func_start sub_808A180
+sub_808A180: @ 808A180
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A1D0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A1CA
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A1D4
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A1D8
+ adds r1, r0
+ ldr r2, _0808A1DC
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808A1CA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A1D0: .4byte gPaletteFade
+_0808A1D4: .4byte gPlayerParty
+_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
+_0808A1DC: .4byte sub_808A520
+ thumb_func_end sub_808A180
+
+ thumb_func_start sub_808A1E0
+sub_808A1E0: @ 808A1E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A21C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808A216
+ adds r0, r4, 0
+ bl sub_806CA38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_806DF60
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A220
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A224
+ str r1, [r0]
+_0808A216:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A21C: .4byte gUnknown_0202E8F6
+_0808A220: .4byte gTasks
+_0808A224: .4byte sub_8089CD4
+ thumb_func_end sub_808A1E0
+
+ thumb_func_start sub_808A228
+sub_808A228: @ 808A228
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A268
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A278
+ ldr r0, _0808A26C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808A278
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A270
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A274
+ str r1, [r0]
+ b _0808A29A
+ .align 2, 0
+_0808A268: .4byte word_203855E
+_0808A26C: .4byte gUnknown_0202E8F4
+_0808A270: .4byte gTasks
+_0808A274: .4byte sub_808A180
+_0808A278:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _0808A2A4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808A2A8
+ str r0, [r1]
+_0808A29A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2A4: .4byte gTasks
+_0808A2A8: .4byte sub_8089CD4
+ thumb_func_end sub_808A228
+
+ thumb_func_start sub_808A2AC
+sub_808A2AC: @ 808A2AC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0808A2D0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A2CA
+ ldr r0, _0808A2D4
+ ldrh r1, [r0]
+ ldr r2, _0808A2D8
+ adds r0, r3, 0
+ bl sub_806E964
+_0808A2CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2D0: .4byte gPaletteFade
+_0808A2D4: .4byte word_203855E
+_0808A2D8: .4byte sub_808A228
+ thumb_func_end sub_808A2AC
+
+ thumb_func_start sub_808A2DC
+sub_808A2DC: @ 808A2DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A324
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A328
+ adds r1, r0
+ ldr r2, _0808A32C
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A324: .4byte gPlayerParty
+_0808A328: .4byte gSaveBlock1 + 0x2B4C
+_0808A32C: .4byte sub_808A520
+ thumb_func_end sub_808A2DC
+
+ thumb_func_start sub_808A330
+sub_808A330: @ 808A330
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A344
+ ldrh r1, [r1]
+ ldr r2, _0808A348
+ bl sub_806E964
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A344: .4byte word_203855E
+_0808A348: .4byte sub_808A2DC
+ thumb_func_end sub_808A330
+
+ thumb_func_start sub_808A34C
+sub_808A34C: @ 808A34C
+ push {lr}
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A34C
+
+ thumb_func_start sub_808A358
+sub_808A358: @ 808A358
+ push {r4,lr}
+ ldr r4, _0808A360
+ b _0808A370
+ .align 2, 0
+_0808A360: .4byte 0x0201b260
+_0808A364:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A394
+_0808A370:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A364
+ ldrb r0, [r4]
+ ldr r1, _0808A39C
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A3A0
+ bl SetMainCallback2
+_0808A394:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A39C: .4byte gUnknown_03005CE0
+_0808A3A0: .4byte sub_806AEDC
+ thumb_func_end sub_808A358
+
+ thumb_func_start sub_808A3A4
+sub_808A3A4: @ 808A3A4
+ push {r4,r5,lr}
+ ldr r4, _0808A3D8
+ adds r5, r4, 0x2
+_0808A3AA:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3E4
+ ldrb r0, [r4]
+ ldr r1, _0808A3DC
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ movs r0, 0x3
+ strb r0, [r5]
+ bl sub_8089E84
+ ldr r0, _0808A3E0
+ bl SetMainCallback2
+ b _0808A3F0
+ .align 2, 0
+_0808A3D8: .4byte 0x0201b260
+_0808A3DC: .4byte gUnknown_03005CE0
+_0808A3E0: .4byte sub_806AEDC
+_0808A3E4:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3AA
+_0808A3F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A3A4
+
+ thumb_func_start sub_808A3F8
+sub_808A3F8: @ 808A3F8
+ push {r4,lr}
+ ldr r0, _0808A460
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A47E
+ ldr r0, _0808A464
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _0808A468
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BD58
+ ldr r0, _0808A46C
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_806C994
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BF74
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A470
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808A478
+ ldr r0, _0808A474
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A460: .4byte word_203855E
+_0808A464: .4byte sub_808A330
+_0808A468: .4byte gPaletteFade
+_0808A46C: .4byte gUnknown_03005CE0
+_0808A470: .4byte gPlayerParty
+_0808A474: .4byte sub_808A34C
+_0808A478:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A47E:
+ ldr r2, _0808A4A4
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A4A8
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0808A4B4
+ ldr r2, _0808A4AC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808A4B0
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A4A4: .4byte gPaletteFade
+_0808A4A8: .4byte word_203855E
+_0808A4AC: .4byte sub_808A2AC
+_0808A4B0: .4byte sub_808A358
+_0808A4B4:
+ ldr r2, _0808A4CC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _0808A4D0
+ bl SetMainCallback2
+_0808A4C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A4CC: .4byte sub_8089D94
+_0808A4D0: .4byte sub_808A3A4
+ thumb_func_end sub_808A3F8
+
+ thumb_func_start sub_808A4D4
+sub_808A4D4: @ 808A4D4
+ push {r4,lr}
+ ldr r4, _0808A4DC
+ b _0808A4EC
+ .align 2, 0
+_0808A4DC: .4byte 0x0201b260
+_0808A4E0:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A510
+_0808A4EC:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A4E0
+ ldrb r0, [r4]
+ ldr r1, _0808A518
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A51C
+ bl SetMainCallback2
+_0808A510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A518: .4byte gUnknown_03005CE0
+_0808A51C: .4byte sub_806AEDC
+ thumb_func_end sub_808A4D4
+
+ thumb_func_start sub_808A520
+sub_808A520: @ 808A520
+ push {r4-r7,lr}
+ ldr r2, _0808A584
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A588
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808A59C
+ ldr r7, _0808A58C
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808A542
+ movs r1, 0x1
+ bl sub_80A9538
+_0808A542:
+ ldr r6, _0808A590
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808A594
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_80A9424
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl sub_80A2DF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r2, _0808A598
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ b _0808A5A8
+ .align 2, 0
+_0808A584: .4byte gPaletteFade
+_0808A588: .4byte gScriptResult
+_0808A58C: .4byte gUnknown_0202E8F8
+_0808A590: .4byte gUnknown_03005CE0
+_0808A594: .4byte gPlayerParty
+_0808A598: .4byte sub_8089CD4
+_0808A59C:
+ ldr r2, _0808A5B4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808A5A8:
+ ldr r0, _0808A5B8
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5B4: .4byte sub_808A5BC
+_0808A5B8: .4byte sub_808A4D4
+ thumb_func_end sub_808A520
+
+ thumb_func_start sub_808A5BC
+sub_808A5BC: @ 808A5BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A5F0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A5EA
+ ldr r0, _0808A5F4
+ ldrb r0, [r0]
+ ldr r1, _0808A5F8
+ ldrh r1, [r1]
+ movs r2, 0
+ bl sub_806EBF0
+ ldr r1, _0808A5FC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A600
+ str r1, [r0]
+_0808A5EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5F0: .4byte gPaletteFade
+_0808A5F4: .4byte gUnknown_03005CE0
+_0808A5F8: .4byte word_203855E
+_0808A5FC: .4byte gTasks
+_0808A600: .4byte sub_808A1E0
+ thumb_func_end sub_808A5BC
+
+ thumb_func_start sub_808A604
+sub_808A604: @ 808A604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A628
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A622
+ ldr r0, _0808A62C
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A622:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A628: .4byte gPaletteFade
+_0808A62C: .4byte sub_80A61D0
+ thumb_func_end sub_808A604
+
+ thumb_func_start sub_808A630
+sub_808A630: @ 808A630
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808A66C
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A670
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A674
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A66C: .4byte gUnknown_0202E8F5
+_0808A670: .4byte gTasks
+_0808A674: .4byte sub_808A604
+ thumb_func_end sub_808A630
+
+ thumb_func_start sub_808A678
+sub_808A678: @ 808A678
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808A8D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A678
+
+ thumb_func_start sub_808A688
+sub_808A688: @ 808A688
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6B4
+ adds r0, r4, 0
+ bl sub_806ECE8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6B4: .4byte sub_808A678
+ thumb_func_end sub_808A688
+
+ thumb_func_start sub_808A6B8
+sub_808A6B8: @ 808A6B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6E4
+ adds r0, r4, 0
+ bl sub_806EE08
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6E4: .4byte sub_808A678
+ thumb_func_end sub_808A6B8
+
+ thumb_func_start sub_808A6E8
+sub_808A6E8: @ 808A6E8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r1, _0808A728
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A72C
+ ldr r2, _0808A730
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ ldr r1, _0808A734
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A738
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A728: .4byte gUnknown_0202FFA8
+_0808A72C: .4byte gUnknown_0839F584
+_0808A730: .4byte gUnknown_0839F494
+_0808A734: .4byte gTasks
+_0808A738: .4byte sub_808A73C
+ thumb_func_end sub_808A6E8
+
+ thumb_func_start sub_808A73C
+sub_808A73C: @ 808A73C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A764
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x40
+ bne _0808A77A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A768
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0808A770
+ ldr r0, _0808A76C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A774
+ .align 2, 0
+_0808A764: .4byte gMain
+_0808A768: .4byte gUnknown_0202FFA8
+_0808A76C: .4byte gUnknown_0839F584
+_0808A770:
+ movs r0, 0x1
+ negs r0, r0
+_0808A774:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A77A:
+ ldr r0, _0808A7A0
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x80
+ bne _0808A7B4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A7A4
+ ldrb r0, [r4]
+ ldr r1, _0808A7A8
+ ldrb r2, [r1]
+ subs r1, r2, 0x1
+ cmp r0, r1
+ bne _0808A7AC
+ movs r0, 0x1
+ subs r0, r2
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A7AE
+ .align 2, 0
+_0808A7A0: .4byte gMain
+_0808A7A4: .4byte gUnknown_0202FFA8
+_0808A7A8: .4byte gUnknown_0839F584
+_0808A7AC:
+ movs r0, 0x1
+_0808A7AE:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A7B4:
+ ldr r0, _0808A7E0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A7F0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A7E4
+ ldr r2, _0808A7E8
+ ldr r0, _0808A7EC
+ ldrb r3, [r0]
+ movs r0, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A806
+ .align 2, 0
+_0808A7E0: .4byte gMain
+_0808A7E4: .4byte gUnknown_0839F584
+_0808A7E8: .4byte gUnknown_0839F494
+_0808A7EC: .4byte gUnknown_0202FFA8
+_0808A7F0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A806
+ ldr r1, _0808A80C
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl sub_808A918
+_0808A806:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A80C: .4byte gUnknown_0839F584
+ thumb_func_end sub_808A73C
+
+ thumb_func_start sub_808A810
+sub_808A810: @ 808A810
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A840
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A844
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A840: .4byte gTasks
+_0808A844: .4byte sub_808A848
+ thumb_func_end sub_808A810
+
+ thumb_func_start sub_808A848
+sub_808A848: @ 808A848
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A898
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A890
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A89C
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0808A8A0
+ adds r0, r1
+ ldr r1, _0808A8A4
+ movs r2, 0x1
+ bl sub_80F890C
+_0808A890:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A898: .4byte gPaletteFade
+_0808A89C: .4byte gPlayerParty
+_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
+_0808A8A4: .4byte sub_808A8A8
+ thumb_func_end sub_808A848
+
+ thumb_func_start sub_808A8A8
+sub_808A8A8: @ 808A8A8
+ push {lr}
+ ldr r1, _0808A8C4
+ ldr r0, _0808A8C8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0808A8CC
+ ldr r1, _0808A8D0
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ bl sub_8089F14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A8C4: .4byte gUnknown_020384F0
+_0808A8C8: .4byte gUnknown_03005CE0
+_0808A8CC: .4byte 0x0201b000
+_0808A8D0: .4byte 0x00000262
+ thumb_func_end sub_808A8A8
+
+ thumb_func_start sub_808A8D4
+sub_808A8D4: @ 808A8D4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A90C
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A910
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A914
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A90C: .4byte gUnknown_0202FFA8
+_0808A910: .4byte gTasks
+_0808A914: .4byte sub_8089CD4
+ thumb_func_end sub_808A8D4
+
+ thumb_func_start sub_808A918
+sub_808A918: @ 808A918
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_808A8D4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A918
+
+ thumb_func_start sub_808A938
+sub_808A938: @ 808A938
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808A978
+ ldrb r0, [r0]
+ bl sub_8089C7C
+ ldr r1, _0808A97C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A980
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A978: .4byte gUnknown_0202FFA8
+_0808A97C: .4byte gTasks
+_0808A980: .4byte sub_8089D94
+ thumb_func_end sub_808A938
+
+ thumb_func_start sub_808A984
+sub_808A984: @ 808A984
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0808A9D0
+ adds r4, r6, r7
+ bl sub_8072DEC
+ ldr r1, _0808A9D4
+ ldr r0, _0808A9D8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0xA
+ strh r0, [r4, 0x16]
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A9DC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0808AABA
+ movs r0, 0x9
+ b _0808AAB2
+ .align 2, 0
+_0808A9D0: .4byte gUnknown_03004B28
+_0808A9D4: .4byte gUnknown_0202FFAA
+_0808A9D8: .4byte gUnknown_0202FFA8
+_0808A9DC:
+ ldrh r1, [r4, 0x16]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ bgt _0808AA2C
+ ldr r2, _0808AA20
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AA2C
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808AA24
+ movs r1, 0x1
+ bl sub_806E834
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0808AA28
+ str r1, [r0]
+ b _0808AADA
+ .align 2, 0
+_0808AA20: .4byte 0x00000807
+_0808AA24: .4byte gOtherText_CantBeUsedBadge
+_0808AA28: .4byte sub_808AAF0
+_0808AA2C:
+ ldr r1, _0808AA78
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AA90
+ ldr r1, _0808AA7C
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0808AA88
+ ldr r1, _0808AA80
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808AA84
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0808AADA
+ .align 2, 0
+_0808AA78: .4byte gUnknown_0839F58C
+_0808AA7C: .4byte gUnknown_0202FFA8
+_0808AA80: .4byte gTasks
+_0808AA84: .4byte sub_808AB34
+_0808AA88:
+ adds r0, r5, 0
+ bl unref_sub_8133D28
+ b _0808AADA
+_0808AA90:
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _0808AABA
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AABA
+ movs r0, 0x8
+_0808AAB2:
+ movs r1, 0
+ bl sub_806D538
+ b _0808AACC
+_0808AABA:
+ ldr r0, _0808AAE4
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x4]
+ movs r1, 0
+ bl sub_806D538
+_0808AACC:
+ ldr r0, _0808AAE8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808AAEC
+ str r0, [r1]
+_0808AADA:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AAE4: .4byte gUnknown_0839F58C
+_0808AAE8: .4byte gTasks
+_0808AAEC: .4byte sub_808ABF4
+ thumb_func_end sub_808A984
+
+ thumb_func_start sub_808AAF0
+sub_808AAF0: @ 808AAF0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB2C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808AB24
+ ldr r0, _0808AB30
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB12
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AB24
+_0808AB12:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_808A918
+_0808AB24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB2C: .4byte gUnknown_0202E8F6
+_0808AB30: .4byte gMain
+ thumb_func_end sub_808AAF0
+
+ thumb_func_start sub_808AB34
+sub_808AB34: @ 808AB34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB6C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB84
+ ldr r0, _0808AB70
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x1E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bne _0808AB62
+ bl sub_8147588
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AB78
+_0808AB62:
+ ldr r0, _0808AB74
+ bl SetMainCallback2
+ b _0808AB7E
+ .align 2, 0
+_0808AB6C: .4byte gPaletteFade
+_0808AB70: .4byte gTasks
+_0808AB74: .4byte c2_exit_to_overworld_2_switch
+_0808AB78:
+ ldr r0, _0808AB8C
+ bl SetMainCallback2
+_0808AB7E:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808AB84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB8C: .4byte sub_80FC074
+ thumb_func_end sub_808AB34
+
+ thumb_func_start sub_808AB90
+sub_808AB90: @ 808AB90
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _0808ABA4
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABA4: .4byte sub_808ABA8
+ thumb_func_end sub_808AB90
+
+ thumb_func_start sub_808ABA8
+sub_808ABA8: @ 808ABA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808ABDE
+ ldr r0, _0808ABE4
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ABE8
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0808ABEC
+ str r0, [r1]
+ ldr r0, _0808ABF0
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r0, r4, 0
+ bl DestroyTask
+_0808ABDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABE4: .4byte gUnknown_03005CE0
+_0808ABE8: .4byte gPlayerParty
+_0808ABEC: .4byte gUnknown_0202FF84
+_0808ABF0: .4byte gUnknown_03005CE4
+ thumb_func_end sub_808ABA8
+
+ thumb_func_start sub_808ABF4
+sub_808ABF4: @ 808ABF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AC28
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AC0E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AC20
+_0808AC0E:
+ movs r0, 0x1
+ movs r1, 0x11
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_808A918
+_0808AC20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC28: .4byte gMain
+ thumb_func_end sub_808ABF4
+
+ thumb_func_start sub_808AC2C
+sub_808AC2C: @ 808AC2C
+ push {lr}
+ ldr r0, _0808AC40
+ ldr r1, _0808AC44
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x9
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC40: .4byte gUnknown_0202FF84
+_0808AC44: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AC2C
+
+ thumb_func_start sub_808AC48
+sub_808AC48: @ 808AC48
+ push {lr}
+ bl PartyHasMonWithSurf
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ ldr r1, _0808AC74
+ ldr r0, _0808AC78
+ str r0, [r1]
+ ldr r1, _0808AC7C
+ ldr r0, _0808AC80
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AC86
+ .align 2, 0
+_0808AC74: .4byte gUnknown_0300485C
+_0808AC78: .4byte sub_808AB90
+_0808AC7C: .4byte gUnknown_03005CE4
+_0808AC80: .4byte sub_808AC2C
+_0808AC84:
+ movs r0, 0
+_0808AC86:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808AC48
+
+ thumb_func_start sub_808AC8C
+sub_808AC8C: @ 808AC8C
+ push {lr}
+ ldr r0, _0808ACA0
+ ldr r1, _0808ACA4
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x1F
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ACA0: .4byte gUnknown_0202FF84
+_0808ACA4: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AC8C
+
+ thumb_func_start sub_808ACA8
+sub_808ACA8: @ 808ACA8
+ push {lr}
+ bl sub_8147588
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808ACD0
+ ldr r1, _0808ACC0
+ ldr r0, _0808ACC4
+ str r0, [r1]
+ ldr r1, _0808ACC8
+ ldr r0, _0808ACCC
+ b _0808ACF2
+ .align 2, 0
+_0808ACC0: .4byte gUnknown_0300485C
+_0808ACC4: .4byte sub_808AB90
+_0808ACC8: .4byte gUnknown_03005CE4
+_0808ACCC: .4byte sub_81475C4
+_0808ACD0:
+ ldr r0, _0808ACE4
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808ACE8
+ movs r0, 0
+ b _0808ACF6
+ .align 2, 0
+_0808ACE4: .4byte gMapHeader
+_0808ACE8:
+ ldr r1, _0808ACFC
+ ldr r0, _0808AD00
+ str r0, [r1]
+ ldr r1, _0808AD04
+ ldr r0, _0808AD08
+_0808ACF2:
+ str r0, [r1]
+ movs r0, 0x1
+_0808ACF6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ACFC: .4byte gUnknown_0300485C
+_0808AD00: .4byte sub_808AB90
+_0808AD04: .4byte gUnknown_03005CE4
+_0808AD08: .4byte sub_808AC8C
+ thumb_func_end sub_808ACA8
+
+ thumb_func_start sub_808AD0C
+sub_808AD0C: @ 808AD0C
+ push {r4,lr}
+ ldr r4, _0808AD14
+ b _0808AD24
+ .align 2, 0
+_0808AD14: .4byte 0x0201b260
+_0808AD18:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AD48
+_0808AD24:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AD18
+ ldrb r0, [r4]
+ ldr r1, _0808AD50
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808AD54
+ bl SetMainCallback2
+_0808AD48:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD50: .4byte gUnknown_03005CE0
+_0808AD54: .4byte sub_806AEDC
+ thumb_func_end sub_808AD0C
+
+ thumb_func_start sub_808AD58
+sub_808AD58: @ 808AD58
+ push {lr}
+ ldr r2, _0808AD7C
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _0808AD80
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ ldr r0, _0808AD84
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD7C: .4byte gPaletteFade
+_0808AD80: .4byte sub_8089CD4
+_0808AD84: .4byte sub_808AD0C
+ thumb_func_end sub_808AD58
+
+ thumb_func_start unref_sub_808AD88
+unref_sub_808AD88: @ 808AD88
+ push {lr}
+ ldr r0, _0808ADA4
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ADA8
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADA4: .4byte gUnknown_03005CE0
+_0808ADA8: .4byte gPlayerParty
+ thumb_func_end unref_sub_808AD88
+
+ thumb_func_start sub_808ADAC
+sub_808ADAC: @ 808ADAC
+ push {lr}
+ ldr r0, _0808ADC0
+ ldr r1, _0808ADC4
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ADC0: .4byte gUnknown_0202FF84
+_0808ADC4: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808ADAC
+
+ thumb_func_start sub_808ADC8
+sub_808ADC8: @ 808ADC8
+ push {lr}
+ bl sub_8068F18
+ ldr r1, _0808ADE0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0808ADE4
+ movs r0, 0
+ b _0808ADF2
+ .align 2, 0
+_0808ADE0: .4byte gUnknown_0202FF84
+_0808ADE4:
+ ldr r1, _0808ADF8
+ ldr r0, _0808ADFC
+ str r0, [r1]
+ ldr r1, _0808AE00
+ ldr r0, _0808AE04
+ str r0, [r1]
+ movs r0, 0x1
+_0808ADF2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADF8: .4byte gUnknown_0300485C
+_0808ADFC: .4byte sub_808AB90
+_0808AE00: .4byte gUnknown_03005CE4
+_0808AE04: .4byte sub_808ADAC
+ thumb_func_end sub_808ADC8
+
+ thumb_func_start sub_808AE08
+sub_808AE08: @ 808AE08
+ push {lr}
+ ldr r0, _0808AE1C
+ ldr r1, _0808AE20
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2B
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AE1C: .4byte gUnknown_0202FF84
+_0808AE20: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AE08
+
+ thumb_func_start hm_prepare_waterfall
+hm_prepare_waterfall: @ 808AE24
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ bl IsPlayerSurfingNorth
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ ldr r1, _0808AE70
+ ldr r0, _0808AE74
+ str r0, [r1]
+ ldr r1, _0808AE78
+ ldr r0, _0808AE7C
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AE82
+ .align 2, 0
+_0808AE70: .4byte gUnknown_0300485C
+_0808AE74: .4byte sub_808AB90
+_0808AE78: .4byte gUnknown_03005CE4
+_0808AE7C: .4byte sub_808AE08
+_0808AE80:
+ movs r0, 0
+_0808AE82:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end hm_prepare_waterfall
+
+ thumb_func_start sub_808AE8C
+sub_808AE8C: @ 808AE8C
+ push {r4-r6,lr}
+ ldr r0, _0808AED8
+ ldrb r0, [r0]
+ subs r0, 0x21
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_0808AE9A:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AEDC
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF10
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AECE
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8040374
+ cmp r0, 0
+ bne _0808AEE0
+_0808AECE:
+ adds r0, r5, 0
+ movs r1, 0x9A
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AED8: .4byte word_203855E
+_0808AEDC: .4byte gPlayerParty
+_0808AEE0:
+ ldr r0, _0808AF04
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AF08
+ adds r0, r5, 0
+ movs r1, 0xA8
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AF04: .4byte word_203855E
+_0808AF08:
+ adds r0, r5, 0
+ movs r1, 0x8C
+ bl sub_806BC3C
+_0808AF10:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AE9A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AE8C
+
+ thumb_func_start sub_808AF20
+sub_808AF20: @ 808AF20
+ push {r4,r5,lr}
+ movs r5, 0
+_0808AF24:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AF78
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF66
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AF58
+ ldr r0, _0808AF7C
+ ldrh r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ cmp r0, 0
+ bne _0808AF66
+_0808AF58:
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806BC3C
+_0808AF66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AF24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AF78: .4byte gPlayerParty
+_0808AF7C: .4byte word_203855E
+ thumb_func_end sub_808AF20
+
+ thumb_func_start sub_808AF80
+sub_808AF80: @ 808AF80
+ push {r4,r5,lr}
+ ldr r5, _0808AFB0
+_0808AF84:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B00C
+ ldr r0, _0808AFB4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808AFC6
+ ldr r0, _0808AFB8
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AFBC
+ cmp r0, 0x2
+ beq _0808AFC2
+ b _0808AFC6
+ .align 2, 0
+_0808AFB0: .4byte 0x0201b260
+_0808AFB4: .4byte gUnknown_02038561
+_0808AFB8: .4byte word_203855E
+_0808AFBC:
+ bl sub_808AE8C
+ b _0808AFC6
+_0808AFC2:
+ bl sub_808AF20
+_0808AFC6:
+ ldr r4, _0808B000
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bhi _0808AFE2
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B004
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AFE6
+_0808AFE2:
+ movs r0, 0
+ strb r0, [r4]
+_0808AFE6:
+ ldrb r0, [r5]
+ ldr r1, _0808B000
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B008
+ bl SetMainCallback2
+ b _0808B018
+ .align 2, 0
+_0808B000: .4byte gUnknown_03005CE0
+_0808B004: .4byte gPlayerParty
+_0808B008: .4byte sub_806AEDC
+_0808B00C:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AF84
+_0808B018:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AF80
+
+ thumb_func_start sub_808B020
+sub_808B020: @ 808B020
+ push {lr}
+ ldr r2, _0808B040
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808B044
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B0A0
+ cmp r0, 0x1
+ bgt _0808B048
+ cmp r0, 0
+ beq _0808B052
+ b _0808B0AC
+ .align 2, 0
+_0808B040: .4byte gPaletteFade
+_0808B044: .4byte gUnknown_02038561
+_0808B048:
+ cmp r0, 0x3
+ beq _0808B0A0
+ cmp r0, 0x4
+ beq _0808B08C
+ b _0808B0AC
+_0808B052:
+ ldr r0, _0808B070
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B078
+ ldr r2, _0808B074
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x14
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B070: .4byte word_203855E
+_0808B074: .4byte sub_808B0C0
+_0808B078:
+ ldr r2, _0808B088
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x3
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B088: .4byte sub_808B0C0
+_0808B08C:
+ ldr r2, _0808B09C
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B09C: .4byte sub_808B1EC
+_0808B0A0:
+ ldr r2, _0808B0B8
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x4
+ bl sub_806AF4C
+_0808B0AC:
+ ldr r0, _0808B0BC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B0B8: .4byte sub_808B0C0
+_0808B0BC: .4byte sub_808AF80
+ thumb_func_end sub_808B020
+
+ thumb_func_start sub_808B0C0
+sub_808B0C0: @ 808B0C0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B0EC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0808B1CE
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _0808B0F0
+ cmp r0, 0x2
+ beq _0808B184
+ b _0808B1CE
+ .align 2, 0
+_0808B0EC: .4byte gPaletteFade
+_0808B0F0:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B118
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B11C
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0808B120
+ movs r0, 0x20
+ bl PlaySE
+ b _0808B1CE
+ .align 2, 0
+_0808B118: .4byte gUnknown_03005CE0
+_0808B11C: .4byte gPlayerParty
+_0808B120:
+ bl sub_806D5A4
+ ldr r5, _0808B16C
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0808B13C
+ ldr r3, _0808B170
+ ldr r0, _0808B174
+ ldrh r1, [r0]
+ ldr r2, _0808B178
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B13C:
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _0808B154
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0808B174
+ ldrh r1, [r0]
+ ldr r2, _0808B17C
+ adds r0, r4, 0
+ bl sub_806E964
+_0808B154:
+ ldrb r0, [r5]
+ cmp r0, 0x3
+ bne _0808B1CE
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808B180
+ adds r0, r4, 0
+ bl sub_806EC44
+ b _0808B1CE
+ .align 2, 0
+_0808B16C: .4byte gUnknown_02038561
+_0808B170: .4byte gUnknown_03004AE4
+_0808B174: .4byte word_203855E
+_0808B178: .4byte sub_808B224
+_0808B17C: .4byte sub_808B2EC
+_0808B180: .4byte sub_808B2B4
+_0808B184:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B1D8
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _0808B1DC
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _0808B1BA
+ ldr r0, _0808B1E0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E4
+ str r0, [r1]
+_0808B1BA:
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _0808B1CE
+ ldr r0, _0808B1E0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E8
+ str r0, [r1]
+_0808B1CE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B1D8: .4byte gUnknown_03005CE0
+_0808B1DC: .4byte gUnknown_02038561
+_0808B1E0: .4byte gTasks
+_0808B1E4: .4byte sub_808B25C
+_0808B1E8: .4byte sub_808B2B4
+ thumb_func_end sub_808B0C0
+
+ thumb_func_start sub_808B1EC
+sub_808B1EC: @ 808B1EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B214
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B20E
+ ldr r3, _0808B218
+ ldr r0, _0808B21C
+ ldrh r1, [r0]
+ ldr r2, _0808B220
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B20E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B214: .4byte gPaletteFade
+_0808B218: .4byte gUnknown_03004AE4
+_0808B21C: .4byte word_203855E
+_0808B220: .4byte sub_808B224
+ thumb_func_end sub_808B1EC
+
+ thumb_func_start sub_808B224
+sub_808B224: @ 808B224
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B254
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B258
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B254: .4byte gTasks
+_0808B258: .4byte sub_808B25C
+ thumb_func_end sub_808B224
+
+ thumb_func_start sub_808B25C
+sub_808B25C: @ 808B25C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B280
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B27A
+ ldr r0, _0808B284
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B27A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B280: .4byte gPaletteFade
+_0808B284: .4byte sub_80A5B40
+ thumb_func_end sub_808B25C
+
+ thumb_func_start sub_808B288
+sub_808B288: @ 808B288
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B2AC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B2A6
+ ldr r0, _0808B2B0
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B2A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2AC: .4byte gPaletteFade
+_0808B2B0: .4byte sub_813B6F8
+ thumb_func_end sub_808B288
+
+ thumb_func_start sub_808B2B4
+sub_808B2B4: @ 808B2B4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B2E4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B2E8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2E4: .4byte gTasks
+_0808B2E8: .4byte sub_808B288
+ thumb_func_end sub_808B2B4
+
+ thumb_func_start sub_808B2EC
+sub_808B2EC: @ 808B2EC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B31C
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0808B328
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B320
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B324
+ str r1, [r0]
+ b _0808B32E
+ .align 2, 0
+_0808B31C: .4byte gUnknown_0202E8F4
+_0808B320: .4byte gTasks
+_0808B324: .4byte sub_808B338
+_0808B328:
+ adds r0, r4, 0
+ bl sub_808B224
+_0808B32E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B2EC
+
+ thumb_func_start sub_808B338
+sub_808B338: @ 808B338
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808B38C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B384
+ adds r0, r5, 0
+ bl sub_806CA38
+ ldr r1, _0808B390
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B394
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808B398
+ adds r1, r0
+ ldr r2, _0808B39C
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808B384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B38C: .4byte gPaletteFade
+_0808B390: .4byte gUnknown_03005CE0
+_0808B394: .4byte gPlayerParty
+_0808B398: .4byte gSaveBlock1 + 0x2B4C
+_0808B39C: .4byte sub_808B3EC
+ thumb_func_end sub_808B338
+
+ thumb_func_start sub_808B3A0
+sub_808B3A0: @ 808B3A0
+ push {r4,lr}
+ ldr r4, _0808B3A8
+ b _0808B3B8
+ .align 2, 0
+_0808B3A8: .4byte 0x0201b260
+_0808B3AC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B3DC
+_0808B3B8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B3AC
+ ldrb r0, [r4]
+ ldr r1, _0808B3E4
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B3E8
+ bl SetMainCallback2
+_0808B3DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B3E4: .4byte gUnknown_03005CE0
+_0808B3E8: .4byte sub_806AEDC
+ thumb_func_end sub_808B3A0
+
+ thumb_func_start sub_808B3EC
+sub_808B3EC: @ 808B3EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0808B464
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B468
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808B480
+ ldr r7, _0808B46C
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808B416
+ movs r1, 0x1
+ bl sub_80A9538
+_0808B416:
+ ldr r6, _0808B470
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808B474
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_80A9424
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl sub_80A2DF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r0, _0808B478
+ movs r1, 0x5
+ bl CreateTask
+ mov r0, r8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B47C
+ b _0808B48E
+ .align 2, 0
+_0808B464: .4byte gPaletteFade
+_0808B468: .4byte gScriptResult
+_0808B46C: .4byte gUnknown_0202E8F8
+_0808B470: .4byte gUnknown_03005CE0
+_0808B474: .4byte gPlayerParty
+_0808B478: .4byte sub_808B25C
+_0808B47C: .4byte sub_806AEDC
+_0808B480:
+ ldr r2, _0808B49C
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808B4A0
+_0808B48E:
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B49C: .4byte sub_808B4A4
+_0808B4A0: .4byte sub_808B3A0
+ thumb_func_end sub_808B3EC
+
+ thumb_func_start sub_808B4A4
+sub_808B4A4: @ 808B4A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B4D8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B4D2
+ ldr r0, _0808B4DC
+ ldrb r0, [r0]
+ ldr r1, _0808B4E0
+ ldrh r1, [r1]
+ movs r2, 0x1
+ bl sub_806EBF0
+ ldr r1, _0808B4E4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B4E8
+ str r1, [r0]
+_0808B4D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B4D8: .4byte gPaletteFade
+_0808B4DC: .4byte gUnknown_03005CE0
+_0808B4E0: .4byte word_203855E
+_0808B4E4: .4byte gTasks
+_0808B4E8: .4byte sub_808B4EC
+ thumb_func_end sub_808B4A4
+
+ thumb_func_start sub_808B4EC
+sub_808B4EC: @ 808B4EC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _0808B504
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B500
+ adds r0, r1, 0
+ bl sub_808B224
+_0808B500:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B504: .4byte gUnknown_0202E8F6
+ thumb_func_end sub_808B4EC
+
+ thumb_func_start sub_808B508
+sub_808B508: @ 808B508
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808B224
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B508
+
+ thumb_func_start sub_808B518
+sub_808B518: @ 808B518
+ push {r4,lr}
+ ldr r4, _0808B520
+ b _0808B530
+ .align 2, 0
+_0808B520: .4byte 0x0201b260
+_0808B524:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B554
+_0808B530:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B524
+ ldrb r0, [r4]
+ ldr r1, _0808B55C
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B560
+ bl SetMainCallback2
+_0808B554:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B55C: .4byte gUnknown_020384F0
+_0808B560: .4byte sub_806AEDC
+ thumb_func_end sub_808B518
+
+ thumb_func_start sub_808B564
+sub_808B564: @ 808B564
+ push {lr}
+ ldr r2, _0808B58C
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _0808B594
+ ldr r2, _0808B590
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B5A0
+ .align 2, 0
+_0808B58C: .4byte gPaletteFade
+_0808B590: .4byte sub_806F490
+_0808B594:
+ ldr r2, _0808B5AC
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808B5A0:
+ ldr r0, _0808B5B0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5AC: .4byte sub_806F588
+_0808B5B0: .4byte sub_808B518
+ thumb_func_end sub_808B564
+
+ thumb_func_start sub_808B5B4
+sub_808B5B4: @ 808B5B4
+ push {lr}
+ ldr r3, _0808B5D8
+ ldr r2, _0808B5DC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _0808B5E0
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5D8: .4byte gUnknown_03005CF0
+_0808B5DC: .4byte gTasks
+_0808B5E0: .4byte sub_808B5E4
+ thumb_func_end sub_808B5B4
+
+ thumb_func_start sub_808B5E4
+sub_808B5E4: @ 808B5E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0808B602
+ ldr r1, _0808B608
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B60C
+ ldr r1, [r1]
+ str r1, [r0]
+_0808B602:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B608: .4byte gTasks
+_0808B60C: .4byte gUnknown_03005CF0
+ thumb_func_end sub_808B5E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
new file mode 100644
index 000000000..8e04d4a4a
--- /dev/null
+++ b/asm/wild_encounter.s
@@ -0,0 +1,1746 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_8084978
+unref_sub_8084978: @ 8084978
+ ldr r1, _08084980
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08084980: .4byte gUnknown_0202FF7C
+ thumb_func_end unref_sub_8084978
+
+ thumb_func_start sub_8084984
+sub_8084984: @ 8084984
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08084A0C
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r2, r1, 1
+ adds r2, r3
+ adds r0, r1, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ mov r9, r0
+ adds r1, 0x2
+ lsls r1, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldrh r5, [r2]
+ cmp r5, r9
+ bhi _08084A2E
+ ldr r0, _08084A10
+ mov r10, r0
+_080849C6:
+ movs r4, 0
+ mov r1, r10
+ ldr r0, [r1]
+ ldr r0, [r0]
+ cmp r4, r0
+ bge _08084A24
+ ldr r1, [sp]
+ lsls r0, r1, 16
+ asrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r7, r0, 16
+_080849E0:
+ adds r0, r4, 0x7
+ adds r1, r5, 0x7
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_805759C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08084A14
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r8, r4
+ bne _08084A14
+ cmp r7, r5
+ bne _08084A14
+ adds r0, r6, 0
+ b _08084A34
+ .align 2, 0
+_08084A0C: .4byte gUnknown_0839DC00
+_08084A10: .4byte gMapHeader
+_08084A14:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ mov r1, r10
+ ldr r0, [r1]
+ ldr r0, [r0]
+ cmp r4, r0
+ blt _080849E0
+_08084A24:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r9
+ bls _080849C6
+_08084A2E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+_08084A34:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084984
+
+ thumb_func_start check_feebas
+check_feebas: @ 8084A44
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ movs r7, 0
+ ldr r0, _08084ABC
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x88
+ lsls r0, 6
+ cmp r1, r0
+ bne _08084B38
+ add r5, sp, 0xC
+ mov r4, sp
+ adds r4, 0xE
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldrh r0, [r5]
+ subs r0, 0x7
+ strh r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x7
+ strh r0, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r0, _08084AC0
+ mov r9, r5
+ mov r8, r4
+ ldrh r2, [r0, 0x6]
+ cmp r1, r2
+ blt _08084A8E
+ ldrh r3, [r0, 0x8]
+ cmp r1, r3
+ bgt _08084A8E
+ movs r7, 0x1
+_08084A8E:
+ mov r2, r8
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ ldrh r2, [r0, 0xC]
+ cmp r1, r2
+ blt _08084AA2
+ ldrh r0, [r0, 0xE]
+ cmp r1, r0
+ bgt _08084AA2
+ movs r7, 0x2
+_08084AA2:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bls _08084AC8
+ b _08084B38
+ .align 2, 0
+_08084ABC: .4byte gSaveBlock1
+_08084AC0: .4byte gUnknown_0839DC00
+_08084AC4:
+ movs r0, 0x1
+ b _08084B3A
+_08084AC8:
+ ldr r0, _08084B48
+ ldr r3, _08084B4C
+ adds r0, r3
+ ldrh r0, [r0]
+ bl sub_8084B74
+ movs r5, 0
+ ldr r6, _08084B50
+_08084AD8:
+ bl sub_8084B54
+ lsls r1, r5, 1
+ mov r2, sp
+ adds r4, r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __umodsi3
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08084AF6
+ strh r6, [r4]
+_08084AF6:
+ ldrh r0, [r4]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _08084B08
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08084B08:
+ cmp r5, 0x6
+ bne _08084AD8
+ mov r3, r9
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ mov r2, r8
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ adds r2, r7, 0
+ bl sub_8084984
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r5, 0
+_08084B24:
+ lsls r0, r5, 1
+ add r0, sp
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _08084AC4
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08084B24
+_08084B38:
+ movs r0, 0
+_08084B3A:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08084B48: .4byte gSaveBlock1
+_08084B4C: .4byte 0x00002dd6
+_08084B50: .4byte 0x000001bf
+ thumb_func_end check_feebas
+
+ thumb_func_start sub_8084B54
+sub_8084B54: @ 8084B54
+ ldr r2, _08084B68
+ ldr r1, [r2]
+ ldr r0, _08084B6C
+ muls r0, r1
+ ldr r1, _08084B70
+ adds r0, r1
+ str r0, [r2]
+ lsrs r0, 16
+ bx lr
+ .align 2, 0
+_08084B68: .4byte gUnknown_0202FF80
+_08084B6C: .4byte 0x41c64e6d
+_08084B70: .4byte 0x00003039
+ thumb_func_end sub_8084B54
+
+ thumb_func_start sub_8084B74
+sub_8084B74: @ 8084B74
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08084B80
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08084B80: .4byte gUnknown_0202FF80
+ thumb_func_end sub_8084B74
+
+ thumb_func_start wild_pokemon_rand_grass
+wild_pokemon_rand_grass: @ 8084B84
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bhi _08084BA0
+ movs r0, 0
+ b _08084C3A
+_08084BA0:
+ adds r0, r1, 0
+ subs r0, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08084BB0
+ movs r0, 0x1
+ b _08084C3A
+_08084BB0:
+ adds r0, r1, 0
+ subs r0, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _08084BC0
+ movs r0, 0x2
+ b _08084C3A
+_08084BC0:
+ adds r0, r1, 0
+ subs r0, 0x32
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _08084BD0
+ movs r0, 0x3
+ b _08084C3A
+_08084BD0:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _08084BE0
+ movs r0, 0x4
+ b _08084C3A
+_08084BE0:
+ adds r0, r1, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _08084BF0
+ movs r0, 0x5
+ b _08084C3A
+_08084BF0:
+ adds r0, r1, 0
+ subs r0, 0x50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08084C00
+ movs r0, 0x6
+ b _08084C3A
+_08084C00:
+ adds r0, r1, 0
+ subs r0, 0x55
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08084C10
+ movs r0, 0x7
+ b _08084C3A
+_08084C10:
+ adds r0, r1, 0
+ subs r0, 0x5A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08084C20
+ movs r0, 0x8
+ b _08084C3A
+_08084C20:
+ adds r0, r1, 0
+ subs r0, 0x5E
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08084C30
+ movs r0, 0x9
+ b _08084C3A
+_08084C30:
+ cmp r1, 0x62
+ beq _08084C38
+ movs r0, 0xB
+ b _08084C3A
+_08084C38:
+ movs r0, 0xA
+_08084C3A:
+ pop {r1}
+ bx r1
+ thumb_func_end wild_pokemon_rand_grass
+
+ thumb_func_start wild_pokemon_rand_water
+wild_pokemon_rand_water: @ 8084C40
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ cmp r1, 0x3B
+ bhi _08084C5E
+ movs r0, 0
+ b _08084C90
+_08084C5E:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1D
+ bhi _08084C6E
+ movs r0, 0x1
+ b _08084C90
+_08084C6E:
+ adds r0, r1, 0
+ subs r0, 0x5A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08084C7E
+ movs r0, 0x2
+ b _08084C90
+_08084C7E:
+ adds r0, r2, 0
+ subs r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08084C8E
+ movs r0, 0x4
+ b _08084C90
+_08084C8E:
+ movs r0, 0x3
+_08084C90:
+ pop {r1}
+ bx r1
+ thumb_func_end wild_pokemon_rand_water
+
+ thumb_func_start sub_8084C94
+sub_8084C94: @ 8084C94
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ movs r5, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, 0x1
+ beq _08084CCE
+ cmp r4, 0x1
+ bgt _08084CBE
+ cmp r4, 0
+ beq _08084CC4
+ b _08084D28
+_08084CBE:
+ cmp r6, 0x2
+ beq _08084CF2
+ b _08084D28
+_08084CC4:
+ movs r5, 0x1
+ cmp r1, 0x45
+ bhi _08084D28
+ movs r5, 0
+ b _08084D28
+_08084CCE:
+ cmp r1, 0x3B
+ bhi _08084CD4
+ movs r5, 0x2
+_08084CD4:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08084CE2
+ movs r5, 0x3
+_08084CE2:
+ adds r0, r1, 0
+ subs r0, 0x50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08084D28
+ movs r5, 0x4
+ b _08084D28
+_08084CF2:
+ cmp r1, 0x27
+ bhi _08084CF8
+ movs r5, 0x5
+_08084CF8:
+ adds r0, r1, 0
+ subs r0, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x27
+ bhi _08084D06
+ movs r5, 0x6
+_08084D06:
+ adds r0, r1, 0
+ subs r0, 0x50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xE
+ bhi _08084D14
+ movs r5, 0x7
+_08084D14:
+ adds r0, r1, 0
+ subs r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08084D22
+ movs r5, 0x8
+_08084D22:
+ cmp r1, 0x63
+ bne _08084D28
+ movs r5, 0x9
+_08084D28:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084C94
+
+ thumb_func_start random_number_in_range
+random_number_in_range: @ 8084D30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ cmp r0, r1
+ bcc _08084D40
+ ldrb r5, [r4]
+ b _08084D44
+_08084D40:
+ ldrb r5, [r4, 0x1]
+ ldrb r0, [r4]
+_08084D44:
+ subs r4, r0, r5
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r5, r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end random_number_in_range
+
+ thumb_func_start sub_8084D6C
+sub_8084D6C: @ 8084D6C
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r5, _08084D9C
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _08084DB8
+ adds r6, r5, 0
+ ldr r4, _08084DA0
+_08084D7C:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0, r6
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ bne _08084DA4
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x5
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ bne _08084DA4
+ adds r0, r3, 0
+ b _08084DBA
+ .align 2, 0
+_08084D9C: .4byte gWildMonHeaders
+_08084DA0: .4byte gSaveBlock1
+_08084DA4:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08084D7C
+_08084DB8:
+ ldr r0, _08084DC0
+_08084DBA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08084DC0: .4byte 0x0000ffff
+ thumb_func_end sub_8084D6C
+
+ thumb_func_start sub_8084DC4
+sub_8084DC4: @ 8084DC4
+ push {r4-r7,lr}
+ sub sp, 0x1C
+ bl GetSafariZoneFlag
+ cmp r0, 0x1
+ bne _08084E5E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4F
+ bhi _08084E5E
+ bl sub_80C8448
+ adds r7, r0, 0
+ cmp r7, 0
+ beq _08084E5E
+ movs r5, 0
+_08084DF2:
+ mov r1, sp
+ adds r0, r1, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x18
+ bls _08084DF2
+ movs r5, 0
+_08084E04:
+ adds r1, r5, 0x1
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ adds r6, r1, 0
+ cmp r4, 0x18
+ bhi _08084E34
+ add r5, sp
+_08084E12:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08084E2A
+ ldrb r2, [r5]
+ mov r0, sp
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ strb r0, [r5]
+ strb r2, [r1]
+_08084E2A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x18
+ bls _08084E12
+_08084E34:
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x17
+ bls _08084E04
+ movs r5, 0
+_08084E3E:
+ mov r1, sp
+ adds r4, r1, r5
+ ldrb r0, [r4]
+ adds r1, r7, 0
+ bl sub_810CAE4
+ lsls r0, 16
+ cmp r0, 0
+ ble _08084E54
+ ldrb r0, [r4]
+ b _08084E70
+_08084E54:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x18
+ bls _08084E3E
+_08084E5E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+_08084E70:
+ add sp, 0x1C
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084DC4
+
+ thumb_func_start sub_8084E78
+sub_8084E78: @ 8084E78
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ bl ZeroEnemyPartyMons
+ bl sub_8084DC4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08084EAC
+ str r0, [sp]
+ adds r0, r1, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x20
+ bl CreateMonWithNature
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08084EAC: .4byte gEnemyParty
+ thumb_func_end sub_8084E78
+
+ thumb_func_start sub_8084EB0
+sub_8084EB0: @ 8084EB0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r1, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0
+ cmp r1, 0x1
+ beq _08084EDA
+ cmp r1, 0x1
+ bgt _08084ECE
+ cmp r1, 0
+ beq _08084ED4
+ b _08084EE2
+_08084ECE:
+ cmp r3, 0x2
+ beq _08084EDA
+ b _08084EE2
+_08084ED4:
+ bl wild_pokemon_rand_grass
+ b _08084EDE
+_08084EDA:
+ bl wild_pokemon_rand_water
+_08084EDE:
+ lsls r0, 24
+ lsrs r0, 24
+_08084EE2:
+ lsls r4, r0, 2
+ ldr r0, [r6, 0x4]
+ adds r0, r4
+ bl random_number_in_range
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r7, 0x1
+ bne _08084F04
+ adds r0, r5, 0
+ bl sub_8085598
+ lsls r0, 24
+ cmp r0, 0
+ bne _08084F04
+ movs r0, 0
+ b _08084F12
+_08084F04:
+ ldr r0, [r6, 0x4]
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x2]
+ adds r1, r5, 0
+ bl sub_8084E78
+ movs r0, 0x1
+_08084F12:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084EB0
+
+ thumb_func_start sub_8084F18
+sub_8084F18: @ 8084F18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_8084C94
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 22
+ ldr r0, [r5, 0x4]
+ adds r0, r4
+ bl random_number_in_range
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, [r5, 0x4]
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x2]
+ bl sub_8084E78
+ ldr r0, [r5, 0x4]
+ adds r4, r0
+ ldrh r0, [r4, 0x2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084F18
+
+ thumb_func_start SetUpMassOutbreakEncounter
+SetUpMassOutbreakEncounter: @ 8084F50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08084F78
+ ldr r0, _08084F74
+ movs r1, 0xAC
+ lsls r1, 6
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8085598
+ lsls r0, 24
+ cmp r0, 0
+ bne _08084F78
+ movs r0, 0
+ b _08084FAC
+ .align 2, 0
+_08084F74: .4byte gSaveBlock1
+_08084F78:
+ ldr r4, _08084FB4
+ ldr r2, _08084FB8
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ adds r2, 0x4
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_8084E78
+ movs r5, 0
+ ldr r0, _08084FBC
+ adds r4, r0
+_08084F90:
+ lsls r0, r5, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ lsls r2, r5, 24
+ lsrs r2, 24
+ ldr r0, _08084FC0
+ bl SetMonMoveSlot
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _08084F90
+ movs r0, 0x1
+_08084FAC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08084FB4: .4byte gSaveBlock1
+_08084FB8: .4byte 0x00002afc
+_08084FBC: .4byte 0x00002b04
+_08084FC0: .4byte gEnemyParty
+ thumb_func_end SetUpMassOutbreakEncounter
+
+ thumb_func_start DoMassOutbreakEncounterTest
+DoMassOutbreakEncounterTest: @ 8084FC4
+ push {r4,lr}
+ ldr r4, _08085010
+ ldr r1, _08085014
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08085020
+ movs r1, 0x5
+ ldrsb r1, [r4, r1]
+ ldr r2, _08085018
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08085020
+ movs r1, 0x4
+ ldrsb r1, [r4, r1]
+ adds r2, 0x1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08085020
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ ldr r2, _0808501C
+ adds r1, r4, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08085020
+ movs r0, 0x1
+ b _08085022
+ .align 2, 0
+_08085010: .4byte gSaveBlock1
+_08085014: .4byte 0x00002afc
+_08085018: .4byte 0x00002afe
+_0808501C: .4byte 0x00002b0d
+_08085020:
+ movs r0, 0
+_08085022:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end DoMassOutbreakEncounterTest
+
+ thumb_func_start DoWildEncounterRateDiceRoll
+DoWildEncounterRateDiceRoll: @ 8085028
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ lsls r1, 4
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bcc _0808504C
+ movs r0, 0
+ b _0808504E
+_0808504C:
+ movs r0, 0x1
+_0808504E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end DoWildEncounterRateDiceRoll
+
+ thumb_func_start sub_8085054
+sub_8085054: @ 8085054
+ push {r4,lr}
+ sub sp, 0x4
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r0, 4
+ str r0, [sp]
+ movs r0, 0x6
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808507E
+ ldr r1, [sp]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ movs r1, 0x64
+ bl __udivsi3
+ str r0, [sp]
+_0808507E:
+ mov r0, sp
+ bl affects_encounter_rate_based_on_flags
+ mov r0, sp
+ bl ApplyCleanseTagWildEncounterRateReduction
+ cmp r4, 0
+ bne _080850BA
+ ldr r4, _080850DC
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _080850BA
+ adds r0, r4, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080850B0
+ ldr r0, [sp]
+ lsrs r0, 1
+ str r0, [sp]
+_080850B0:
+ cmp r1, 0x23
+ bne _080850BA
+ ldr r0, [sp]
+ lsls r0, 1
+ str r0, [sp]
+_080850BA:
+ ldr r0, [sp]
+ movs r1, 0xB4
+ lsls r1, 4
+ cmp r0, r1
+ bls _080850C6
+ str r1, [sp]
+_080850C6:
+ ldr r0, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ bl DoWildEncounterRateDiceRoll
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080850DC: .4byte gPlayerParty
+ thumb_func_end sub_8085054
+
+ thumb_func_start DoGlobalWildEncounterDiceRoll
+DoGlobalWildEncounterDiceRoll: @ 80850E0
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3B
+ bhi _080850FC
+ movs r0, 0x1
+ b _080850FE
+_080850FC:
+ movs r0, 0
+_080850FE:
+ pop {r1}
+ bx r1
+ thumb_func_end DoGlobalWildEncounterDiceRoll
+
+ thumb_func_start sub_8085104
+sub_8085104: @ 8085104
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r9, r6
+ lsls r1, 16
+ lsrs r7, r1, 16
+ mov r8, r7
+ ldr r0, _080851CC
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08085122
+ b _08085282
+_08085122:
+ bl sub_8084D6C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080851D0
+ cmp r5, r0
+ bne _08085132
+ b _08085282
+_08085132:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057468
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080851D8
+ ldr r1, _080851D4
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _0808515A
+ b _08085282
+_0808515A:
+ cmp r7, r6
+ beq _0808516A
+ bl DoGlobalWildEncounterDiceRoll
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808516A
+ b _08085282
+_0808516A:
+ ldr r1, _080851D4
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8085054
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08085188
+ b _08085282
+_08085188:
+ bl sub_81344CC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808524A
+ bl DoMassOutbreakEncounterTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080851AE
+ movs r0, 0x1
+ bl SetUpMassOutbreakEncounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808527A
+_080851AE:
+ ldr r1, _080851D4
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8084EB0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808527A
+ b _08085282
+ .align 2, 0
+_080851CC: .4byte gUnknown_0202FF7C
+_080851D0: .4byte 0x0000ffff
+_080851D4: .4byte gWildMonHeaders
+_080851D8:
+ adds r0, r4, 0
+ bl sub_8057494
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08085200
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085282
+ adds r0, r4, 0
+ bl sub_8057434
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085282
+_08085200:
+ ldr r1, _08085260
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ adds r4, r2, 0
+ cmp r0, 0
+ beq _08085282
+ cmp r8, r9
+ beq _08085222
+ bl DoGlobalWildEncounterDiceRoll
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085282
+_08085222:
+ ldr r1, _08085260
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r1, 0x8
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8085054
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085282
+ bl sub_81344CC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085268
+_0808524A:
+ ldr r0, _08085264
+ ldrb r0, [r0, 0xC]
+ bl sub_8085598
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085282
+ bl sub_8081A5C
+ movs r0, 0x1
+ b _08085284
+ .align 2, 0
+_08085260: .4byte gWildMonHeaders
+_08085264: .4byte gSaveBlock1 + 0x3144
+_08085268:
+ ldr r0, [r4]
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_8084EB0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085282
+_0808527A:
+ bl sub_8081A00
+ movs r0, 0x1
+ b _08085284
+_08085282:
+ movs r0, 0
+_08085284:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8085104
+
+ thumb_func_start rock_smash_wild_pokemon_encounter
+rock_smash_wild_pokemon_encounter: @ 8085290
+ push {r4,lr}
+ bl sub_8084D6C
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080852E0
+ cmp r2, r0
+ beq _080852EC
+ ldr r1, _080852E4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0xC
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _080852D8
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8085054
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080852EC
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0x1
+ bl sub_8084EB0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _080852EC
+ bl sub_8081A00
+_080852D8:
+ ldr r0, _080852E8
+ strh r4, [r0]
+ b _080852F2
+ .align 2, 0
+_080852E0: .4byte 0x0000ffff
+_080852E4: .4byte gWildMonHeaders
+_080852E8: .4byte gScriptResult
+_080852EC:
+ ldr r1, _080852F8
+ movs r0, 0
+ strh r0, [r1]
+_080852F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080852F8: .4byte gScriptResult
+ thumb_func_end rock_smash_wild_pokemon_encounter
+
+ thumb_func_start sub_80852FC
+sub_80852FC: @ 80852FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl PlayerGetDestCoords
+ bl sub_8084D6C
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0808536C
+ cmp r4, r0
+ beq _080853DA
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8057468
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085380
+ ldr r1, _08085370
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _080853DA
+ bl sub_81344CC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080853BC
+ bl DoMassOutbreakEncounterTest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085374
+ movs r0, 0
+ bl SetUpMassOutbreakEncounter
+ b _080853D2
+ .align 2, 0
+_0808536C: .4byte 0x0000ffff
+_08085370: .4byte gWildMonHeaders
+_08085374:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8084EB0
+ b _080853D2
+_08085380:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8057494
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080853DA
+ ldr r1, _080853C4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _080853DA
+ bl sub_81344CC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080853C8
+_080853BC:
+ bl sub_8081A5C
+ movs r0, 0x1
+ b _080853DC
+ .align 2, 0
+_080853C4: .4byte gWildMonHeaders
+_080853C8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8084EB0
+_080853D2:
+ bl sub_8081A00
+ movs r0, 0x1
+ b _080853DC
+_080853DA:
+ movs r0, 0
+_080853DC:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80852FC
+
+ thumb_func_start GetFishingWildMonListHeader
+GetFishingWildMonListHeader: @ 80853E4
+ push {lr}
+ bl sub_8084D6C
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _0808540C
+ cmp r2, r0
+ beq _08085414
+ ldr r0, _08085410
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x10
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08085414
+ movs r0, 0x1
+ b _08085416
+ .align 2, 0
+_0808540C: .4byte 0x0000ffff
+_08085410: .4byte gWildMonHeaders
+_08085414:
+ movs r0, 0
+_08085416:
+ pop {r1}
+ bx r1
+ thumb_func_end GetFishingWildMonListHeader
+
+ thumb_func_start sub_808541C
+sub_808541C: @ 808541C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl check_feebas
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808544C
+ ldr r4, _08085448
+ adds r0, r4, 0
+ bl random_number_in_range
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_8084E78
+ b _0808546C
+ .align 2, 0
+_08085448: .4byte gWildFeebasRoute119Data
+_0808544C:
+ ldr r4, _08085484
+ bl sub_8084D6C
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r4, 0x10
+ adds r1, r4
+ ldr r0, [r1]
+ adds r1, r5, 0
+ bl sub_8084F18
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0808546C:
+ movs r0, 0xC
+ bl sav12_xor_increment
+ adds r0, r4, 0
+ bl sub_80BEA50
+ bl sub_8081A00
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085484: .4byte gWildMonHeaders
+ thumb_func_end sub_808541C
+
+ thumb_func_start wild_pokemon_rand_for_map
+wild_pokemon_rand_for_map: @ 8085488
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r0, 0
+ strb r0, [r6]
+ bl sub_8084D6C
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080854C0
+ cmp r3, r0
+ beq _080854BA
+ ldr r2, _080854C4
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r5, [r0]
+ adds r2, 0x8
+ adds r1, r2
+ ldr r4, [r1]
+ cmp r5, 0
+ bne _080854C8
+ cmp r4, 0
+ bne _080854CE
+_080854BA:
+ movs r0, 0
+ b _0808550E
+ .align 2, 0
+_080854C0: .4byte 0x0000ffff
+_080854C4: .4byte gWildMonHeaders
+_080854C8:
+ cmp r4, 0
+ bne _080854DC
+ b _08085500
+_080854CE:
+ movs r0, 0x1
+ strb r0, [r6]
+ bl wild_pokemon_rand_water
+ lsls r0, 24
+ ldr r1, [r4, 0x4]
+ b _08085508
+_080854DC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4F
+ bls _08085500
+ movs r0, 0x1
+ strb r0, [r6]
+ bl wild_pokemon_rand_water
+ lsls r0, 24
+ ldr r1, [r4, 0x4]
+ b _08085508
+_08085500:
+ bl wild_pokemon_rand_grass
+ lsls r0, 24
+ ldr r1, [r5, 0x4]
+_08085508:
+ lsrs r0, 22
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+_0808550E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end wild_pokemon_rand_for_map
+
+ thumb_func_start sub_8085514
+sub_8085514: @ 8085514
+ push {r4,lr}
+ bl sub_8084D6C
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _08085548
+ cmp r2, r0
+ beq _08085550
+ ldr r1, _0808554C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _08085550
+ bl wild_pokemon_rand_water
+ lsls r0, 24
+ ldr r1, [r4, 0x4]
+ lsrs r0, 22
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _08085552
+ .align 2, 0
+_08085548: .4byte 0x0000ffff
+_0808554C: .4byte gWildMonHeaders
+_08085550:
+ movs r0, 0
+_08085552:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8085514
+
+ thumb_func_start sub_8085558
+sub_8085558: @ 8085558
+ push {r4,r5,lr}
+ ldr r5, _08085588
+ adds r0, r5, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _08085590
+ subs r4, r0, 0x1
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl VarSet
+ cmp r4, 0
+ bne _08085590
+ ldr r0, _0808558C
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+ b _08085592
+ .align 2, 0
+_08085588: .4byte 0x00004021
+_0808558C: .4byte Event_RepelWoreOff
+_08085590:
+ movs r0, 0
+_08085592:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8085558
+
+ thumb_func_start sub_8085598
+sub_8085598: @ 8085598
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080855E4
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ beq _080855DE
+ movs r5, 0
+_080855AC:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080855E8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080855EC
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080855EC
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bcc _080855F6
+_080855DE:
+ movs r0, 0x1
+ b _080855F8
+ .align 2, 0
+_080855E4: .4byte 0x00004021
+_080855E8: .4byte gPlayerParty
+_080855EC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080855AC
+_080855F6:
+ movs r0, 0
+_080855F8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8085598
+
+ thumb_func_start affects_encounter_rate_based_on_flags
+affects_encounter_rate_based_on_flags: @ 8085600
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0808561C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085620
+ ldr r0, [r4]
+ lsrs r1, r0, 1
+ adds r0, r1
+ b _08085632
+ .align 2, 0
+_0808561C: .4byte 0x0000084d
+_08085620:
+ ldr r0, _0808563C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08085634
+ ldr r0, [r4]
+ lsrs r0, 1
+_08085632:
+ str r0, [r4]
+_08085634:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808563C: .4byte 0x0000084e
+ thumb_func_end affects_encounter_rate_based_on_flags
+
+ thumb_func_start ApplyCleanseTagWildEncounterRateReduction
+ApplyCleanseTagWildEncounterRateReduction: @ 8085640
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08085664
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0xBE
+ bne _0808565C
+ ldr r0, [r4]
+ lsls r0, 1
+ movs r1, 0x3
+ bl __udivsi3
+ str r0, [r4]
+_0808565C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085664: .4byte gPlayerParty
+ thumb_func_end ApplyCleanseTagWildEncounterRateReduction
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 9fb8f8118..2f10e4a2b 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -75,6 +75,8 @@ SECTIONS {
asm/rom_8074BAC.o(.text);
src/task.o(.text);
asm/rom5.o(.text);
+ asm/wild_encounter.o(.text);
+ asm/rom_8085668.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
asm/rom5_part2.o(.text);